

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.

# Entornos de aprendizaje automático ofrecidos por Amazon SageMaker AI
<a name="machine-learning-environments"></a>

**importante**  
Amazon SageMaker Studio y Amazon SageMaker Studio Classic son dos de los entornos de aprendizaje automático que puede utilizar para interactuar con la SageMaker IA.  
Si su dominio se creó después del 30 de noviembre de 2023, Studio es su experiencia predeterminada.  
Si tu dominio se creó antes del 30 de noviembre de 2023, Amazon SageMaker Studio Classic es tu experiencia predeterminada. Para usar Studio si Amazon SageMaker Studio Classic es tu experiencia predeterminada, consulta[Migración desde Amazon SageMaker Studio Classic](studio-updated-migrate.md).  
Al migrar de Amazon SageMaker Studio Classic a Amazon SageMaker Studio, no se pierde la disponibilidad de las funciones. Studio Classic también existe como IDE en Amazon SageMaker Studio para ayudarlo a ejecutar sus flujos de trabajo de aprendizaje automático heredados.

SageMaker La IA es compatible con los siguientes entornos de aprendizaje automático:
+ *Amazon SageMaker Studio* (recomendado): la última experiencia basada en la web para ejecutar flujos de trabajo de aprendizaje automático con un conjunto de IDEs. Studio admite las aplicaciones siguientes:
  + Amazon SageMaker Studio Clásico
  + Editor de código, basado en Code-OSS, Visual Studio Code: Open Source
  + JupyterLab
  + Amazon SageMaker Canvas
  + RStudio
+ *Amazon SageMaker Studio Classic*: le permite crear, entrenar, depurar, implementar y supervisar sus modelos de aprendizaje automático.
+ *Amazon SageMaker Notebook Instances*: le permite preparar y procesar datos, y entrenar e implementar modelos de aprendizaje automático desde una instancia de cómputo que ejecuta la aplicación Jupyter Notebook.
+ *Amazon SageMaker Studio Lab*: Studio Lab es un servicio gratuito que le brinda acceso a recursos de AWS cómputo en un entorno basado en código abierto JupyterLab, sin necesidad de una AWS cuenta.
+ *Amazon SageMaker Canvas*: le permite utilizar el aprendizaje automático para generar predicciones sin necesidad de programar.
+ *Amazon SageMaker geospatial*: le ofrece la posibilidad de crear, entrenar e implementar modelos geoespaciales.
+ *RStudio en Amazon SageMaker AI*: RStudio es un IDE para [R](https://aws.amazon.com/blogs/opensource/getting-started-with-r-on-amazon-web-services/), con una consola, un editor de resaltado de sintaxis que admite la ejecución directa de código y herramientas para el trazado, el historial, la depuración y la gestión del espacio de trabajo.
+ *SageMaker HyperPod*: SageMaker HyperPod le permite aprovisionar clústeres resilientes para ejecutar cargas de trabajo de aprendizaje automático (ML) y desarrollar state-of-the-art modelos como modelos de lenguaje de gran tamaño (LLMs), modelos de difusión y modelos básicos (). FMs

Para usar estos entornos de aprendizaje automático, usted o el administrador de su organización deben crear un dominio de Amazon SageMaker AI. Las excepciones son Studio Lab, SageMaker Notebook Instances y SageMaker HyperPod.

En lugar de aprovisionar manualmente los recursos y gestionar los permisos para ti y tus usuarios, puedes crear un DataZone dominio de Amazon. El proceso de creación de un dominio de Amazon crea el DataZone dominio Amazon SageMaker AI correspondiente con AWS Glue las bases de datos de Amazon Redshift para sus flujos de trabajo de ETL. La configuración de un dominio a través de Amazon DataZone reduce el tiempo que se tarda en configurar los entornos de SageMaker IA para los usuarios. Para obtener más información sobre la configuración de un dominio de Amazon SageMaker AI en Amazon DataZone, consulte[Configurar SageMaker activos (guía del administrador)](sm-assets-set-up.md).

Los usuarios del DataZone dominio de Amazon tienen permisos para todas las acciones de Amazon SageMaker AI, pero sus permisos se limitan a los recursos del DataZone dominio de Amazon.

La creación de un DataZone dominio de Amazon agiliza la creación de un dominio que permite a los usuarios compartir datos y modelos entre sí. Para obtener información sobre cómo pueden compartir datos y modelos, consulte [Acceso controlado a los activos con Amazon SageMaker Assets](sm-assets.md).

**Topics**
+ [Amazon SageMaker Studio](studio-updated.md)
+ [SageMaker JupyterLab](studio-updated-jl.md)
+ [Instancias de Amazon SageMaker Notebook](nbi.md)
+ [Laboratorio Amazon SageMaker Studio](studio-lab.md)
+ [Amazon SageMaker Canvas](canvas.md)
+ [Capacidades SageMaker geoespaciales de Amazon](geospatial.md)
+ [RStudio en Amazon SageMaker AI](rstudio.md)
+ [Editor de código en Amazon SageMaker Studio](code-editor.md)
+ [Amazon SageMaker HyperPod](sagemaker-hyperpod.md)
+ [La IA generativa en entornos de ordenadores portátiles SageMaker](jupyterai.md)
+ [Amazon Q Developer](studio-updated-amazon-q.md)
+ [Descripción general de las aplicaciones de IA de Amazon SageMaker Partner](partner-apps.md)

# Amazon SageMaker Studio
<a name="studio-updated"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

 Amazon SageMaker Studio es la experiencia web más reciente para ejecutar flujos de trabajo de aprendizaje automático. Studio ofrece un conjunto de entornos de desarrollo integrados (IDEs). Estos incluyen Code Editor, basado en Code-OSS, Visual Studio Code - Open Source, una nueva JupyterLab aplicación RStudio, y Amazon SageMaker Studio Classic. Para obtener más información, consulte [Aplicaciones compatibles con Amazon SageMaker Studio](studio-updated-apps.md). 

La nueva interfaz de usuario basada en web de Studio es más rápida y proporciona acceso a todos los recursos de SageMaker IA, incluidos los trabajos y los puntos finales, en una sola interfaz. Los profesionales del machine learning también pueden elegir su IDE preferido para acelerar el desarrollo del machine learning. Un científico de datos puede JupyterLab utilizarla para explorar datos y ajustar modelos. Además, un ingeniero de operaciones de aprendizaje automático (MLOps) puede usar el editor de código con la herramienta Pipelines de Studio para implementar y monitorear los modelos en producción. 

 La experiencia anterior de Studio sigue siendo compatible con Amazon SageMaker Studio Classic. Studio Classic es la experiencia predeterminada para los clientes actuales y está disponible como aplicación en Studio. Para obtener más información sobre Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md). Para obtener información acerca de cómo migrar de Studio Classic a Studio, consulte [Migración desde Amazon SageMaker Studio Classic](studio-updated-migrate.md). 

 Studio ofrece los siguientes beneficios: 
+ Una nueva JupyterLab aplicación que tiene un tiempo de inicio más rápido y es más fiable que la aplicación Studio Classic existente. Para obtener más información, consulte [SageMaker JupyterLab](studio-updated-jl.md).
+ Un conjunto de ellas IDEs se abre en una pestaña aparte, e incluye el nuevo editor de código, basado en Code-OSS, Visual Studio Code, una aplicación de código abierto. Los usuarios pueden interactuar con Supported IDEs en una experiencia de pantalla completa. Para obtener más información, consulte [Aplicaciones compatibles con Amazon SageMaker Studio](studio-updated-apps.md).
+ Acceda a todos sus recursos de SageMaker IA en un solo lugar. Studio muestra las instancias en ejecución de todas sus aplicaciones.  
+ Acceda a todos los trabajos de formación en una sola vista, independientemente de si se programaron desde cuadernos o se iniciaron desde Amazon SageMaker JumpStart.
+ Flujos de trabajo de implementación de modelos simplificados y administración y supervisión de puntos de conexión directamente desde Studio. No necesitas acceder a la consola de SageMaker IA. 
+ Creación automática de todas las aplicaciones configuradas al realizar la incorporación a un dominio. Para obtener más información sobre cómo realizar la incorporación a un dominio, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).
+ Una JumpStart experiencia mejorada en la que puede descubrir, importar, registrar, ajustar e implementar un modelo básico. Para obtener más información, consulte [SageMaker JumpStart modelos preentrenados](studio-jumpstart.md).

**Topics**
+ [Inicie Amazon SageMaker Studio](studio-updated-launch.md)
+ [Descripción general de la interfaz de usuario de Amazon SageMaker Studio](studio-updated-ui.md)
+ [Montaje automático de Amazon EFS en Studio](studio-updated-automount.md)
+ [Cierre por inactividad](studio-updated-idle-shutdown.md)
+ [Aplicaciones compatibles con Amazon SageMaker Studio](studio-updated-apps.md)
+ [Conecte su IDE remoto a SageMaker espacios con acceso remoto](remote-access.md)
+ [Bring your own image (BYOI)](studio-updated-byoi.md)
+ [Configuraciones del ciclo de vida en Amazon SageMaker Studio](studio-lifecycle-configurations.md)
+ [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md)
+ [Propagación de identidades de confianza con Studio](trustedidentitypropagation.md)
+ [Realización de tareas comunes en la interfaz de usuario](studio-updated-common.md)
+ [NVMe tiendas con Amazon SageMaker Studio](studio-updated-nvme.md)
+ [Compatibilidad con el modo local en Amazon SageMaker Studio](studio-updated-local.md)
+ [Visualización de instancias, aplicaciones y espacios en ejecución de Studio](studio-updated-running.md)
+ [Detención y eliminación de aplicaciones y espacios en ejecución de Studio](studio-updated-running-stop.md)
+ [SageMaker Política de soporte de imágenes de Studio](sagemaker-distribution.md)
+ [Precios de Amazon SageMaker Studio](studio-updated-cost.md)
+ [Resolución de problemas](studio-updated-troubleshooting.md)
+ [Migración desde Amazon SageMaker Studio Classic](studio-updated-migrate.md)
+ [Amazon SageMaker Studio Clásico](studio.md)

# Inicie Amazon SageMaker Studio
<a name="studio-updated-launch"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

 Los temas de esta página muestran cómo lanzar Amazon SageMaker Studio desde la consola Amazon SageMaker AI y el AWS Command Line Interface (AWS CLI). 

**Topics**
+ [Requisitos previos](#studio-updated-launch-prereq)
+ [Lanzamiento desde la consola Amazon SageMaker AI](#studio-updated-launch-console)
+ [Lánzalo con el AWS CLI](#studio-updated-launch-cli)

## Requisitos previos
<a name="studio-updated-launch-prereq"></a>

 Antes de comenzar, complete los siguientes requisitos previos: 
+ Incorpórese a un dominio de SageMaker IA con acceso a Studio. Si no dispone de permisos para configurar Studio como experiencia predeterminada para su dominio, póngase en contacto con su administrador. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md). 
+  AWS CLI Actualízalo siguiendo los pasos que se indican en [Instalación de la AWS CLI versión actual](https://docs.aws.amazon.com//cli/latest/userguide/install-cliv1.html#install-tool-bundled). 
+ En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com//general/latest/gr/aws-sec-cred-types.html).

## Lanzamiento desde la consola Amazon SageMaker AI
<a name="studio-updated-launch-console"></a>

Complete el siguiente procedimiento para iniciar Studio desde la consola Amazon SageMaker AI.

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

1.  En el panel de navegación izquierdo, seleccione Studio. 

1.  En la página de inicio de Studio, seleccione el dominio y perfil de usuario para inicializar Studio. 

1.  Seleccione **Abrir Studio**. 

1.  Para inicializar Studio, seleccione **Lanzar Studio personal**. 

## Lánzalo con el AWS CLI
<a name="studio-updated-launch-cli"></a>

En esta sección se muestra cómo iniciar Studio con AWS CLI. El procedimiento para acceder a Studio mediante el AWS CLI depende de si el dominio utiliza la autenticación AWS Identity and Access Management (IAM) o la AWS IAM Identity Center autenticación. Puedes usarlo AWS CLI para iniciar Studio creando una URL de dominio prefirmada cuando tu dominio utilice la autenticación de IAM. Para obtener más información sobre cómo inicializar Studio con la autenticación de IAM Identity Center, consulte [Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md). 

### Inicialización si Studio es la experiencia predeterminada
<a name="studio-updated-launch-console-updated"></a>

 En el siguiente fragmento de código se muestra cómo inicializar Studio desde la AWS CLI mediante una URL de dominio prefirmada si Studio es la experiencia predeterminada. Para obtener más información, consulte [create-presigned-domain-url](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-presigned-domain-url.html). 

```
aws sagemaker create-presigned-domain-url \
--region region \
--domain-id domain-id \
--user-profile-name user-profile-name \
--session-expiration-duration-in-seconds 43200
```

### Lánzalo si Amazon SageMaker Studio Classic es tu experiencia predeterminada
<a name="studio-updated-launch-console-classic"></a>

 En el siguiente fragmento de código se muestra cómo inicializar Studio desde la AWS CLI mediante una URL de dominio prefirmada si Studio Classic es la experiencia predeterminada. Para obtener más información, consulte [create-presigned-domain-url](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-presigned-domain-url.html). 

```
aws sagemaker create-presigned-domain-url \
--region region \
--domain-id domain-id \
--user-profile-name user-profile-name \
--session-expiration-duration-in-seconds 43200 \
--landing-uri studio::
```

# Descripción general de la interfaz de usuario de Amazon SageMaker Studio
<a name="studio-updated-ui"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

 La interfaz de usuario de Amazon SageMaker Studio se divide en tres partes distintas. En esta página se proporciona información acerca de las distintas partes y sus componentes. 
+  **Barra de navegación**: esta sección de la interfaz de usuario incluye la URL, las rutas de navegación, las notificaciones y las opciones de usuario. 
+  **Panel de navegación**: esta sección de la interfaz de usuario incluye una lista de las aplicaciones compatibles con Studio, así como opciones de los principales flujos de trabajo de Studio. 
+  **Panel de contenido**: el área de trabajo principal que muestra la página actual de la interfaz de usuario de Studio que ha abierto.

![\[Página de inicio de Amazon SageMaker Studio con panel de navegación y panel de contenido (área de trabajo principal).\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/monarch/studio-updated-ui.png)


**Topics**
+ [Barra de navegación de Amazon SageMaker Studio](#studio-updated-ui-top)
+ [Panel de navegación de Amazon SageMaker Studio](#studio-updated-ui-left)
+ [Panel de contenido de Studio](#studio-updated-ui-working)

## Barra de navegación de Amazon SageMaker Studio
<a name="studio-updated-ui-top"></a>

 La barra de navegación de la interfaz de usuario de Studio incluye la URL, las rutas de navegación, las notificaciones y las opciones de usuario. 

 **Estructura de la URL** 

 La URL de Studio cambia a medida que se navega por la interfaz de usuario. Al navegar a otra página de la interfaz de usuario, la URL cambia para reflejar esa página. Con la URL actualizada, puede abrir cualquier página de la interfaz de usuario de Studio directamente sin tener que ir primero a la página de inicio. 

 **Ruta de navegación** 

 A medida que navega por la interfaz de usuario de Studio, la ruta de navegación permite realizar un seguimiento de las páginas principales de la página actual. Al elegir una ruta de navegación, puede ir a las páginas principales de la interfaz de usuario. 

 **Notificaciones** 

 En la sección de notificaciones de la interfaz de usuario se proporciona información sobre los cambios importantes de Studio, las actualizaciones de las aplicaciones y los problemas que hay que resolver. 

 **Opciones de usuario** 

Elija el icono de opciones de usuario (![\[User icon with a circular avatar placeholder and a downward-pointing arrow.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/monarch/user-settings.png)) para obtener información sobre el perfil de usuario que está utilizando Studio en ese momento. Además, ofrece la opción de cerrar la sesión de Studio.  

## Panel de navegación de Amazon SageMaker Studio
<a name="studio-updated-ui-left"></a>

 **Panel de navegación** 

 El panel de navegación de la interfaz de usuario incluye una lista de las aplicaciones compatibles con Studio. También ofrece opciones de los principales flujos de trabajo de Studio. 

 Esta sección de la interfaz de usuario se puede usar expandida o contraída. Para cambiar entre la sección expandida o contraída, seleccione el icono de **Contraer** (![\[Square icon with "ID" text representing an identity or identification concept.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/monarch/collapse-ui.png)). 

 **Aplicaciones** 

 En la sección de aplicaciones se enumeran las aplicaciones que están disponibles en Studio. Si elige uno de los tipos de aplicaciones, se le dirigirá a la página de inicio de esa aplicación. 

 **Flujos de trabajo** 

 La lista de flujos de trabajo incluye todas las acciones disponibles que puede realizar en Studio. Elija una de las opciones para ir a la página de inicio de ese flujo de trabajo. Si hay varios flujos de trabajo disponibles para esa opción, al seleccionar la opción se abre un menú desplegable en el que puede elegir la página de inicio que desee. 

 En la siguiente lista se describen las opciones y se proporciona un enlace para obtener más información. 
+  **Inicio**: la página de inicio principal con información general, la introducción y las novedades. 
+  **Instancias en ejecución**: todas las instancias que se están ejecutando en ese momento en Studio. Para obtener más información, consulte [Visualización de instancias, aplicaciones y espacios en ejecución de Studio](studio-updated-running.md). 
+  **Datos**: opciones de preparación de datos en las que puede colaborar para almacenar, explorar, preparar, transformar y compartir sus datos.  
  +  Para obtener más información sobre Amazon SageMaker Data Wrangler, consulte. [Preparación de datos](canvas-data-prep.md) 
  +  Para obtener más información sobre Amazon SageMaker Feature Store, consulte[Creación, almacenamiento y uso compartido de características con el Almacén de características](feature-store.md). 
  +  Para obtener más información sobre los clústeres de Amazon EMR, consulte [Preparación de datos con Amazon EMR](studio-notebooks-emr-cluster.md). 
+  **Auto ML**: cree, entrene, ajuste e implemente modelos de machine learning (ML) automáticamente. Para obtener más información, consulte [Amazon SageMaker Canvas](canvas.md). 
+  **Experimentos**: cree, administre, analice y compare sus experimentos de machine learning con Amazon SageMaker Experiments. Para obtener más información, consulte [Amazon SageMaker Experiments en Studio Classic](experiments.md). 
+  **Trabajos**: vea los trabajos creados en Studio.  
  +  Para obtener más información sobre el entrenamiento, consulte [Entrenamiento de modelos](train-model.md). 
  +  Para obtener información sobre la evaluación de modelos, consulte [Conozca las opciones para evaluar modelos de lenguaje de gran tamaño con SageMaker Clarify](clarify-foundation-model-evaluate.md). 
+  **Pipelines**: automatice su flujo de trabajo de aprendizaje automático con Amazon SageMaker Pipelines, que proporciona recursos para ayudarlo a crear, rastrear y administrar sus recursos de canalización. Para obtener más información, consulte [Canalizaciones](pipelines.md).
+  **Modelos**: organice sus modelos en grupos y colecciones en el registro de modelos, donde podrá administrar las versiones de los modelos, ver los metadatos e implementar los modelos en producción. Para obtener más información, consulte [Implementación del registro de modelos con el registro de modelos](model-registry.md).
+  **JumpStart**— Amazon SageMaker JumpStart proporciona modelos de código abierto previamente entrenados para una amplia gama de tipos de problemas para ayudarte a empezar con el aprendizaje automático. Para obtener más información, consulte. [SageMaker JumpStart modelos preentrenados](studio-jumpstart.md) 
+  **Implementaciones**: implemente sus modelos de machine learning (ML) para inferencia.
  +  Para obtener más información sobre Amazon SageMaker Inference Recommender, consulte. [Recomendador de SageMaker inferencias de Amazon](inference-recommender.md) 
  +  Para obtener más información acerca de los puntos de conexión, consulte [Implementar modelos para inferencia](deploy-model.md). 

## Panel de contenido de Studio
<a name="studio-updated-ui-working"></a>

 El área de trabajo principal también se denomina panel de contenido. Muestra la página de la interfaz de usuario de Studio que se ha abierto en ese momento. 

 **Página de inicio de Studio** 

 La página de inicio de Studio es la página de inicio principal del área de trabajo principal. La página de inicio incluye dos pestañas distintas. Hay una pestaña **Información general** y una pestaña **Introducción**. 

 **Información general** 

 La pestaña **Información general** incluye opciones que permiten abrir espacios para los tipos de aplicaciones más populares, empezar a utilizar soluciones prediseñadas y automatizadas en los flujos de trabajo de machine learning y enlaces a tareas habituales de la interfaz de usuario de Studio. 

 **Introducción** 

 La pestaña **Introducción** incluye información, orientación y recursos sobre cómo empezar a usar Studio. Incluye una visita guiada a la interfaz de usuario de Studio, un enlace a la documentación sobre Studio y una selección de consejos rápidos. 

# Montaje automático de Amazon EFS en Studio
<a name="studio-updated-automount"></a>

 Amazon SageMaker AI admite el montaje automático de una carpeta en un volumen de Amazon EFS para cada usuario de un dominio. Con esta carpeta, los usuarios pueden compartir datos entre sus propios espacios privados. Sin embargo, los usuarios no pueden compartir datos con otros usuarios del dominio. Los usuarios solo tienen acceso a su propia carpeta. 

 Se puede acceder a la carpeta del usuario a través de una carpeta denominada `user-default-efs`. Esta carpeta está presente en el directorio `$HOME` de la aplicación de Studio.

 Para obtener información sobre cómo dar de baja el montaje automático de Amazon EFS, consulte [Exclusión del montaje automático de Amazon EFS](studio-updated-automount-optout.md). 

 El montaje automático de Amazon EFS también facilita la migración de datos de Studio Classic a Studio. Para obtener más información, consulte [(Opcional) Migración de datos de Studio Classic a Studio](studio-updated-migrate-data.md). 

 **Información sobre puntos de acceso** 

 Cuando se activa el montaje automático, la SageMaker IA utiliza un punto de acceso de Amazon EFS para facilitar el acceso a los datos del volumen de Amazon EFS. Para obtener más información sobre los puntos de acceso, consulte [Trabajar con puntos de acceso de Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) La SageMaker IA crea un punto de acceso único para cada perfil de usuario del dominio durante la creación del perfil de usuario o durante la creación de la aplicación para un perfil de usuario existente. El valor de usuario POSIX del punto de acceso coincide con el `HomeEfsFileSystemUid` valor del perfil de usuario para el que SageMaker AI crea el punto de acceso. Para obtener el valor del usuario, consulte [DescribeUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeUserProfile.html#sagemaker-DescribeUserProfile-response-HomeEfsFileSystemUid). La ruta del directorio raíz también se establece en el mismo valor que el valor del usuario de POSIX.  

 SageMaker AI establece los permisos del nuevo directorio en los siguientes valores: 

 
+  ID de usuario del propietario: `POSIX user value` 
+  ID de grupo del propietario: `0` 
+  Permisos: `700` 

 El punto de acceso es necesario para acceder al volumen de Amazon EFS. A consecuencia de ello, no puede eliminar ni actualizar el punto de acceso sin perder el acceso al volumen de Amazon EFS. 

 **Resolución de errores** 

 Si SageMaker AI encuentra un problema al montar automáticamente la carpeta de usuario de Amazon EFS durante la creación de la aplicación, la aplicación seguirá creándose. Sin embargo, en este caso, SageMaker AI crea un archivo denominado `error.txt` en lugar de montar la carpeta Amazon EFS. Este archivo describe el error detectado, así como los pasos para resolverlo. SageMaker AI crea el `error.txt` archivo en la `user-default-efs` carpeta ubicada en el `$HOME` directorio de la aplicación. 

# Exclusión del montaje automático de Amazon EFS
<a name="studio-updated-automount-optout"></a>

 Puede inhabilitar las carpetas de usuario de Amazon EFS que montan automáticamente Amazon SageMaker AI durante la creación del dominio y el perfil de usuario o para un dominio o perfil de usuario existente. 

## Exclusión durante la creación del dominio
<a name="studio-updated-automount-optout-domain-creation"></a>

 Puede darse de baja del montaje automático de Amazon EFS al crear un dominio mediante la consola o la AWS Command Line Interface. 

### Consola
<a name="studio-updated-automount-optout-domain-creation-console"></a>

Lleve a cabo los siguientes pasos para darse de baja del montaje automático de Amazon EFS al crear un dominio desde la consola. 

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

1.  Lleve a cabo los pasos que se indican en [Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md) con la siguiente modificación para configurar un dominio. 
   +  En el paso **Configurar el almacenamiento**, desactive **Monte el almacenamiento y los datos de EFS de forma automática**. 

### AWS CLI
<a name="studio-updated-automount-optout-domain-creation-cli"></a>

 Utilice el siguiente comando para darse de baja del montaje automático de Amazon EFS durante la creación del dominio mediante la AWS CLI. Para obtener más información sobre cómo crear un dominio con AWS CLI, consulte[Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md).

```
aws --region region sagemaker create-domain \
--domain-name "my-domain-$(date +%s)" \
--vpc-id default-vpc-id \
--subnet-ids subnet-ids \
--auth-mode IAM \
--default-user-settings "ExecutionRole=execution-role-arn,AutoMountHomeEFS=Disabled" \
--default-space-settings "ExecutionRole=execution-role-arn"
```

## Exclusión para un dominio existente
<a name="studio-updated-automount-optout-domain-existing"></a>

 Puede darse de baja del montaje automático de Amazon EFS para un dominio existente mediante la consola o la AWS CLI. 

### Consola
<a name="studio-updated-automount-optout-domain-existing-console"></a>

 Lleve a cabo los siguientes pasos para darse de baja del montaje automático de Amazon EFS al actualizar un dominio desde la consola. 

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

1.  En el panel de navegación izquierdo, seleccione **Dominios** en **Configuraciones de administración**. 

1.  En la página **Dominios**, seleccione el dominio para el que desee darse de baja del montaje automático de Amazon EFS. 

1.  En la página de **Detalles del dominio**, seleccione la pestaña **Configuración del dominio**. 

1.  Vaya a la sección **Configuraciones de almacenamiento**. 

1.  Seleccione **Editar**. 

1.  En la página **Editar la configuración de almacenamiento**, desactive **Monte el almacenamiento y los datos de EFS de forma automática**. 

1.  Seleccione **Enviar**.

### AWS CLI
<a name="studio-updated-automount-optout-domain-existing-cli"></a>

 Utilice el siguiente comando para darse de baja del montaje automático de Amazon EFS durante la actualización de un dominio existente mediante la AWS CLI. 

```
aws --region region sagemaker update-domain \
--domain-id domain-id \
--default-user-settings "AutoMountHomeEFS=Disabled"
```

## Exclusión durante la creación de un perfil de usuario
<a name="studio-updated-automount-optout-user-creation"></a>

 Puede darse de baja del montaje automático de Amazon EFS al crear un perfil de usuario mediante la consola o la AWS CLI. 

### Consola
<a name="studio-updated-automount-optout-user-creation-console"></a>

 Lleve a cabo los siguientes pasos para darse de baja del montaje automático de Amazon EFS al crear un perfil de usuario desde la consola. 

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

1.  Lleve a cabo los pasos que se indican en [Adición de perfiles de usuario](domain-user-profile-add.md) con la siguiente modificación para crear un perfil de usuario. 
   +  En el paso **Datos y almacenamiento**, desactive **Herede la configuración del dominio**. Esto permite que el usuario tenga un valor diferente a los valores predeterminados que se establecen para el dominio.  
   +  Desactive **Monte el almacenamiento y los datos de EFS de forma automática**. 

### AWS CLI
<a name="studio-updated-automount-optout-user-creation-cli"></a>

 Utilice el siguiente comando para darse de baja del montaje automático de Amazon EFS durante la creación del perfil de usuario mediante la AWS CLI. Para obtener más información sobre cómo crear un perfil de usuario mediante el AWS CLI, consulte[Adición de perfiles de usuario](domain-user-profile-add.md).

```
aws --region region sagemaker create-user-profile \
--domain-id domain-id \
--user-profile-name "user-profile-$(date +%s)" \
--user-settings "ExecutionRole=arn:aws:iam::account-id:role/execution-role-name,AutoMountHomeEFS=Enabled/Disabled/DefaultAsDomain"
```

## Exclusión para un perfil de usuario existente
<a name="studio-updated-automount-optout-user-existing"></a>

 Puede darse de baja del montaje automático de Amazon EFS para un perfil de usuario existente mediante la consola o la AWS CLI. 

### Consola
<a name="studio-updated-automount-optout-user-existing-console"></a>

 Lleve a cabo los siguientes pasos para darse de baja del montaje automático de Amazon EFS al actualizar un perfil de usuario desde la consola. 

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

1.  En el panel de navegación izquierdo, seleccione **Dominios** en **Configuraciones de administración**. 

1.  En la página **Dominios**, seleccione el dominio que contiene el perfil de usuario para el que desee darse de baja del montaje automático de Amazon EFS. 

1.  En la página **Detalles del dominio**, elija la pestaña **Perfiles de usuario**. 

1.  Seleccione el perfil de usuario que quiera actualizar. 

1.  En la pestaña **Detalles del usuario**, vaya a la sección **AutoMountHomeEFS**. 

1.  Seleccione **Editar**. 

1.  En la página **Editar la configuración de almacenamiento**, desactive **Herede la configuración del dominio**. Esto permite que el usuario tenga un valor diferente a los valores predeterminados que se establecen para el dominio.  

1.  Desactive **Monte el almacenamiento y los datos de EFS de forma automática**. 

1.  Seleccione **Enviar**. 

### AWS CLI
<a name="studio-updated-automount-optout-user-existing-cli"></a>

 Utilice el siguiente comando para darse de baja del montaje automático de Amazon EFS durante la actualización de un perfil de usuario existente mediante la AWS CLI. 

```
aws --region region sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings "AutoMountHomeEFS=DefaultAsDomain"
```

# Cierre por inactividad
<a name="studio-updated-idle-shutdown"></a>

Amazon SageMaker AI permite cerrar los recursos inactivos para gestionar los costes y evitar sobrecostes debidos a los costes acumulados por los recursos inactivos y facturables. Para ello, detecta el estado de inactividad de una aplicación y la cierra cuando se cumplen los criterios de inactividad. 

SageMaker La IA admite el apagado en espera de las siguientes aplicaciones. El cierre por inactividad debe configurarse de forma independiente para cada tipo de aplicación. 
+  JupyterLab 
+  Editor de código, basado en Code-OSS, Visual Studio Code: Open Source 

 El cierre por inactividad se puede configurar para los dominios o para los perfiles de usuario. Cuando el cierre por inactividad se establece para un dominio, la configuración de cierre por inactividad se aplica a todas las aplicaciones creadas en el dominio. Cuando se establece para los perfiles de usuario, la configuración de cierre por inactividad se aplica solo a los usuarios específicos para los que se ha configurado. Tenga en cuenta que la configuración del perfil de usuario anula la configuración del dominio.  

**nota**  
Para el cierre por inactividad es preciso usar la imagen de `SageMaker-distribution` con la versión 2.0 o posteriores. Los dominios que usan una versión de SMD anterior no pueden usar la característica. En su lugar, estos usuarios deben usar una configuración de ciclo de vida para administrar el cierre automático. 

## Definición de inactividad
<a name="studio-updated-idle-shutdown-definition"></a>

 La configuración de cierre por inactividad se aplica únicamente cuando la aplicación queda inactiva sin ningún trabajo en ejecución. SageMaker La IA no inicia el tiempo de apagado en espera hasta que la instancia pasa a estar inactiva. La definición de inactividad varía en función de si el tipo de aplicación es JupyterLab o el de editor de código. 

 En el caso de JupyterLab las aplicaciones, la instancia se considera inactiva cuando se cumplen las siguientes condiciones: 
+  No hay sesiones activas del kernel de Jupyter. 
+  No hay sesiones activas de terminal de Jupyter. 

 En el caso de las aplicaciones del editor de código, la instancia se considera inactiva cuando se cumplen las siguientes condiciones: 
+  No hay cambios en el archivo de texto o en el cuaderno. 
+  No se está viendo ningún archivo. 
+  No hay ninguna interacción con el terminal.

# Configuración del cierre por inactividad
<a name="studio-updated-idle-shutdown-setup"></a>

 En las siguientes secciones se muestra cómo configurar el cierre por inactividad mediante la consola o la AWS CLI. El cierre por inactividad se puede configurar para los dominios o para los perfiles de usuario. 

## Requisitos previos
<a name="studio-updated-idle-shutdown-setup-prereq"></a>

 Para utilizar el cierre por inactividad con su aplicación, debe cumplir los siguientes requisitos previos. 
+ Asegúrese de que su aplicación utilice la versión 2.0 SageMaker de distribución (SMD). Puede seleccionar esta versión al crear la aplicación o actualizar la versión de imagen de la aplicación después de crearla. Para obtener más información, consulte [Actualiza la imagen SageMaker de distribución](studio-updated-jl-update-distribution-image.md) . 
+ Para las aplicaciones creadas con imágenes personalizadas, se admite el apagado por inactividad si la imagen personalizada se crea con la versión 2.0 o posterior de SageMaker Distribution (SMD) como imagen base. Si la imagen personalizada se crea con una imagen base diferente, debe instalar la extensión [jupyter-activity-monitor-extension >= 0.3.1](https://anaconda.org/conda-forge/jupyter-activity-monitor-extension) en la imagen y adjuntarla a su dominio Amazon SageMaker AI para JupyterLab las aplicaciones. Para obtener más información sobre las imágenes personalizadas, consulte [Bring your own image (BYOI)](studio-updated-byoi.md).

## En la consola
<a name="studio-updated-idle-shutdown-setup-console"></a>

 En las siguientes secciones se muestra cómo habilitar el cierre por inactividad mediante la consola. 

### Adición al crear un dominio nuevo
<a name="studio-updated-idle-shutdown-setup-console-new-domain"></a>

1. Cree un dominio siguiendo los pasos que se indican en [Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md). 

1.  Al configurar los ajustes de la aplicación en el dominio, vaya al editor de código o JupyterLab a la sección.  

1.  Seleccione **Activar el cierre por inactividad**. 

1.  Introduzca un tiempo de cierre por inactividad predeterminado en minutos. Este valor se establece en `10,080` de forma predeterminada si no se introduce ningún valor. 

1.  (Opcional) Seleccione **Permitir a los usuarios establecer un tiempo de cierre por inactividad personalizado** para que los usuarios puedan modificar el tiempo de cierre por inactividad. 
   +  Introduzca el valor máximo del tiempo de cierre por inactividad predeterminado que pueden establecer los usuarios. Debe introducir un valor máximo. El valor mínimo lo establece Amazon SageMaker AI y debe ser`60`. 

### Adición a un dominio existente
<a name="studio-updated-idle-shutdown-setup-console-existing-domain"></a>

**nota**  
Si el cierre por inactividad se configura mientras hay aplicaciones en ejecución, deben reiniciarse para que la configuración de cierre por inactividad surta efecto. 

1.  Vaya al dominio. 

1.  Elija la pestaña **Configuraciones de aplicaciones**. 

1.  En la pestaña **Configuraciones de aplicaciones**, diríjase al editor de código o a JupyterLab la sección. 

1.  Seleccione **Editar**. 

1.  Seleccione **Activar el cierre por inactividad**. 

1.  Introduzca un tiempo de cierre por inactividad predeterminado en minutos. Este valor se establece en `10,080` de forma predeterminada si no se introduce ningún valor. 

1.  (Opcional) Seleccione **Permitir a los usuarios establecer un tiempo de cierre por inactividad personalizado** para que los usuarios puedan modificar el tiempo de cierre por inactividad. 
   +  Introduzca el valor máximo del tiempo de cierre por inactividad predeterminado que pueden establecer los usuarios. Debe introducir un valor máximo. El valor mínimo lo establece Amazon SageMaker AI y debe ser`60`. 

1.  Seleccione **Enviar**. 

### Adición al crear un perfil de usuario nuevo
<a name="studio-updated-idle-shutdown-setup-console-new-userprofile"></a>

1. Agregue un perfil de usuario siguiendo los pasos que se indican en [Adición de perfiles de usuario](domain-user-profile-add.md) 

1.  Al configurar los ajustes de la aplicación para el perfil de usuario, vaya al editor de código o a la JupyterLab sección. 

1.  Seleccione **Activar el cierre por inactividad**. 

1.  Introduzca un tiempo de cierre por inactividad predeterminado en minutos. Este valor se establece en `10,080` de forma predeterminada si no se introduce ningún valor. 

1.  (Opcional) Seleccione **Permitir a los usuarios establecer un tiempo de cierre por inactividad personalizado** para que los usuarios puedan modificar el tiempo de cierre por inactividad. 
   +  Introduzca el valor máximo del tiempo de cierre por inactividad predeterminado que pueden establecer los usuarios. Debe introducir un valor máximo. El valor mínimo lo establece Amazon SageMaker AI y debe ser`60`. 

1.  Seleccione Guardar cambios. 

### Adición a un perfil de usuario existente
<a name="studio-updated-idle-shutdown-setup-console-existing-userprofile"></a>

 Nota: Si el cierre por inactividad se configura mientras hay aplicaciones en ejecución, deben reiniciarse para que la configuración de cierre por inactividad surta efecto. 

1.  Vaya al perfil de usuario. 

1.  Elija la pestaña **Configuraciones de aplicaciones**. 

1.  En la pestaña ****Configuraciones de aplicaciones****, diríjase al editor de código o a JupyterLab la sección.  

1.  Seleccione **Editar**. 

1.  De forma predeterminada, en la configuración de cierre por inactividad se muestra la configuración del dominio si está configurada para ese dominio. 

1.  Seleccione **Activar el cierre por inactividad**. 

1.  Introduzca un tiempo de cierre por inactividad predeterminado en minutos. Este valor se establece en `10,080` de forma predeterminada si no se introduce ningún valor. 

1.  (Opcional) Seleccione **Permitir a los usuarios establecer un tiempo de cierre por inactividad personalizado** para que los usuarios puedan modificar el tiempo de cierre por inactividad. 
   +  Introduzca el valor máximo del tiempo de cierre por inactividad predeterminado que pueden establecer los usuarios. Debe introducir un valor máximo. El valor mínimo lo establece Amazon SageMaker AI y debe ser`60`. 

1.  Seleccione **Save Changes (Guardar cambios)**. 

## Desde AWS CLI
<a name="studio-updated-idle-shutdown-setup-cli"></a>

 En las siguientes secciones se muestra cómo habilitar el cierre por inactividad mediante la AWS CLI. 

**nota**  
Para aplicar un valor de tiempo de espera específico desde AWS CLI, debe establecer `IdleTimeoutInMinutes``MaxIdleTimeoutInMinutes`, y `MinIdleTimeoutInMinutes` con el mismo valor.

### Dominio
<a name="studio-updated-idle-shutdown-setup-cli-domain"></a>

 En el siguiente comando se muestra cómo habilitar el apagado por inactividad al actualizar un dominio existente. Para agregar el cierre por inactividad para un nuevo dominio, utilice el comando `create-domain` en su lugar. 

**nota**  
Si el cierre por inactividad se configura mientras hay aplicaciones en ejecución, deben reiniciarse para que la configuración de cierre por inactividad surta efecto. 

```
aws sagemaker update-domain --region region --domain-id domain-id \
--default-user-settings file://default-user-settings.json

## default-user-settings.json example for enforcing the default timeout
{
    "JupyterLabAppSettings": {
        "AppLifecycleManagement": {
            "IdleSettings": {
                "LifecycleManagement": "ENABLED",
                "IdleTimeoutInMinutes": 120,
                "MaxIdleTimeoutInMinutes": 120,
                "MinIdleTimeoutInMinutes": 120
        }
    }
}

## default-user-settings.json example for letting users customize the default timeout, between 2-5 hours
{
    "JupyterLabAppSettings": {
        "AppLifecycleManagement": {
            "IdleSettings": {
                "LifecycleManagement": "ENABLED",
                "IdleTimeoutInMinutes": 120,
                "MinIdleTimeoutInMinutes": 120,
                "MaxIdleTimeoutInMinutes": 300
        }
    }
}
```

### Perfil de usuario
<a name="studio-updated-idle-shutdown-setup-cli-userprofile"></a>

 En el siguiente comando se muestra cómo habilitar el cierre por inactividad al actualizar un perfil de usuario existente. Para agregar el cierre por inactividad para un nuevo perfil de usuario, utilice el comando `create-user-profile` en su lugar. 

**nota**  
Si el cierre por inactividad se configura mientras hay aplicaciones en ejecución, deben reiniciarse para que la configuración de cierre por inactividad surta efecto. 

```
aws sagemaker update-user-profile --region region --domain-id domain-id \
--user-profile-name user-profile-name --user-settings file://user-settings.json

## user-settings.json example for enforcing the default timeout
{
    "JupyterLabAppSettings": {
        "AppLifecycleManagement": {
            "IdleSettings": {
                "LifecycleManagement": "ENABLED",
                "IdleTimeoutInMinutes": 120,
                "MaxIdleTimeoutInMinutes": 120,
                "MinIdleTimeoutInMinutes": 120
        }
    }
}

## user-settings.json example for letting users customize the default timeout, between 2-5 hours
{
    "JupyterLabAppSettings": {
        "AppLifecycleManagement": {
            "IdleSettings": {
                "LifecycleManagement": "ENABLED",
                "IdleTimeoutInMinutes": 120,
                "MinIdleTimeoutInMinutes": 120,
                "MaxIdleTimeoutInMinutes": 300
        }
    }
}
```

# Actualización de la configuración predeterminada de cierre por inactividad
<a name="studio-updated-idle-shutdown-update"></a>

 La configuración de cierre por inactividad se puede actualizar para los dominios o para los perfiles de usuario. 

**nota**  
Si el cierre por inactividad se configura mientras hay aplicaciones en ejecución, deben reiniciarse para que la configuración de cierre por inactividad surta efecto. 

## Actualización de la configuración de un dominio
<a name="studio-updated-idle-shutdown-update-domain"></a>

1.  Vaya al dominio. 

1.  Elija la pestaña **Configuraciones de aplicaciones**. 

1.  En la pestaña **Configuraciones de aplicaciones**, vaya al editor de código o a JupyterLab la sección.  

1.  En la sección de la aplicación cuyo límite de tiempo de cierre por inactividad desee modificar, seleccione **Editar**. 

1.  Actualice la configuración de cierre por inactividad del dominio. 

1.  Seleccione **Save Changes (Guardar cambios)**. 

## Actualización de la configuración de un perfil de usuario
<a name="studio-updated-idle-shutdown-update-userprofile"></a>

1.  Vaya al dominio. 

1.  Seleccione la pestaña **Perfiles de usuario**. 

1.  En la pestaña **Perfiles de usuario**, seleccione el perfil de usuario que desee editar. 

1.  En la página **Perfil de usuario**, seleccione la pestaña **Aplicaciones**. 

1.  En la pestaña **Aplicaciones**, vaya al editor de código o a JupyterLab la sección.  

1.  En la sección de la aplicación cuyo límite de tiempo de cierre por inactividad desee modificar, seleccione **Editar**. 

1.  Actualice la configuración de cierre por inactividad del perfil de usuario. 

1.  Seleccione **Save Changes (Guardar cambios)**. 

# Modificación del límite de tiempo de cierre por inactividad
<a name="studio-updated-idle-shutdown-modify"></a>

 Los usuarios pueden modificar el límite del tiempo de cierre por inactividad si el administrador les proporciona acceso al agregar la compatibilidad con el cierre por inactividad. Si se agrega la compatibilidad con el cierre por inactividad, es posible que se aplique un límite al tiempo máximo al cierre por inactividad. El usuario puede establecer cualquier valor comprendido entre el límite inferior y el límite superior. 

1.  Para iniciar Amazon SageMaker Studio, sigue los pasos que se indican a continuación[Inicie Amazon SageMaker Studio](studio-updated-launch.md). 

1.  En la sección **Aplicaciones**, seleccione el tipo de aplicación para el que desee actualizar el tiempo de cierre por inactividad. 

1.  Seleccione el espacio que desea actualizar. 

1.  Actualice **Tiempo de cierre por inactividad (minutos)** con el valor deseado. 
**nota**  
Si el cierre por inactividad se configura mientras hay aplicaciones en ejecución, deben reiniciarse para que la configuración de cierre por inactividad surta efecto. 

# Aplicaciones compatibles con Amazon SageMaker Studio
<a name="studio-updated-apps"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

 Amazon SageMaker Studio es compatible con las siguientes aplicaciones: 
+  **Editor de código, basado en Code-OSS, Visual Studio Code: Open Source**: el editor de código ofrece un entorno de desarrollo integrado (IDE) ligero y potente con capacidades avanzadas, como métodos abreviados, terminal, depuración avanzada y herramientas de refactorización. Se trata de una aplicación de Studio basada en navegador y totalmente administrada. Para obtener más información, consulte [Editor de código en Amazon SageMaker Studio](code-editor.md). 
+  **Amazon SageMaker Studio Classic**: Amazon SageMaker Studio Classic es un IDE basado en web para el aprendizaje automático. Con Studio Classic puede crear, entrenar, depurar, implementar y supervisar sus modelos de machine learning. Para obtener más información, consulte [Amazon SageMaker Studio Clásico](studio.md). 
+  **JupyterLab**— JupyterLab ofrece un conjunto de funciones que amplían la oferta de portátiles totalmente gestionados. Incluye kernels que se inician en cuestión de segundos, un tiempo de ejecución preconfigurado con la ciencia de datos más popular, marcos de trabajo de machine learning y almacenamiento en bloques de alto rendimiento. Para obtener más información, consulte [SageMaker JupyterLab](studio-updated-jl.md). 
+  **Amazon SageMaker Canvas**: con SageMaker Canvas, puede utilizar el aprendizaje automático para generar predicciones sin necesidad de escribir código. Con Canvas, puede chatear con modelos de lenguajes extensos populares (LLMs), acceder a ready-to-use modelos o crear un modelo personalizado basado en sus datos. Para obtener más información, consulte [Amazon SageMaker Canvas](canvas.md). 
+  **RStudio**— RStudio es un entorno de desarrollo integrado para R. Incluye una consola y un editor de resaltado de sintaxis que permite ejecutar código directamente. También incluye herramientas de trazado, de historial, de depuración y de administración de espacios de trabajo. Para obtener más información, consulte [RStudio en Amazon SageMaker AI](rstudio.md). 

# Conecte su IDE remoto a SageMaker espacios con acceso remoto
<a name="remote-access"></a>

Puedes conectarte remotamente desde tu IDE remoto a los espacios de Amazon SageMaker Studio. Puede utilizar su configuración IDE local personalizada, incluidas las herramientas de desarrollo asistidas por IA y las extensiones personalizadas, con los recursos informáticos escalables de Amazon SageMaker AI. En esta guía se proporcionan conceptos e instrucciones de configuración para administradores y usuarios.

Una conexión IDE remota establece una conexión segura entre su IDE local y SageMaker los espacios. Esta conexión le permite:
+ **Acceda a los recursos informáticos de SageMaker IA**: ejecute código en una infraestructura de SageMaker IA escalable desde su entorno local
+ **Mantenga los límites de seguridad**: trabaje dentro del mismo marco de seguridad que la SageMaker IA
+ **Mantenga su experiencia de IDE habitual**: utilice extensiones, temas y configuraciones locales compatibles que admitan el desarrollo remoto

**nota**  
No todas las extensiones IDE son compatibles con el desarrollo remoto. Las extensiones que requieren componentes de GUI locales, tienen dependencias de arquitectura o necesitan interacciones específicas entre el cliente y el servidor pueden no funcionar correctamente en el entorno remoto. Compruebe que las extensiones requeridas sean compatibles con el desarrollo remoto antes de utilizarlas.

**Topics**
+ [Conceptos clave](#remote-access-key-concepts)
+ [Métodos de conexión](#remote-access-connection-methods)
+ [Compatible IDEs](#remote-access-supported-ides)
+ [Requisitos de la versión IDE](#remote-access-ide-version-requirements)
+ [Requisitos del sistema operativo](#remote-access-os-requirements)
+ [Requisitos previos de la máquina local](#remote-access-local-prerequisites)
+ [Requisitos de imágenes](#remote-access-image-requirements)
+ [Requisitos de instancias](#remote-access-instance-requirements)
+ [Configuración del acceso remoto](remote-access-remote-setup.md)
+ [Configure el IDE remoto](remote-access-local-ide-setup.md)
+ [AWS Regiones compatibles](remote-access-supported-regions.md)

## Conceptos clave
<a name="remote-access-key-concepts"></a>
+ **Conexión remota**: un túnel seguro entre su IDE remoto y un SageMaker espacio. Esta conexión permite el desarrollo interactivo y la ejecución de código mediante recursos informáticos de SageMaker IA.
+ [https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-spaces.html](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-spaces.html): un entorno dedicado dentro de Amazon SageMaker Studio en el que puede gestionar el almacenamiento y los recursos de sus aplicaciones de Studio.
+ **Enlace profundo**: botón (URL directa) de la SageMaker interfaz de usuario que inicia una conexión remota con el IDE local.

## Métodos de conexión
<a name="remote-access-connection-methods"></a>

Existen tres formas principales de conectar tu IDE remoto a los SageMaker espacios:
+ **Acceso mediante enlaces profundos**: puedes conectarte directamente a un espacio específico mediante el botón de **espacio abierto con** SageMaker inteligencia artificial. Utiliza patrones de URL para establecer una conexión remota y abrir tu SageMaker espacio en tu IDE remoto.
+ [https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html): puede autenticarse con AWS Toolkit for Visual Studio Code. Esto le permite conectarse a espacios y abrir una ventana conectada remotamente desde su IDE remoto.
+ **Conexión de terminal SSH**: puede conectarse a través de la línea de comandos mediante la configuración de SSH.

## Compatible IDEs
<a name="remote-access-supported-ides"></a>

La conexión remota a los espacios de Studio admite:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursor](https://cursor.com/home)

## Requisitos de la versión IDE
<a name="remote-access-ide-version-requirements"></a>

En la siguiente tabla se enumeran los requisitos de versión mínimos para cada IDE remoto compatible.


| IDE | Versión mínima | 
| --- | --- | 
|  Visual Studio Code  |  [v1.90 o superior](https://code.visualstudio.com/updates/v1_90). Recomendamos utilizar la [última versión estable.](https://code.visualstudio.com/updates)  | 
|  Kiro  |  v0.10.78 o superior  | 
|  Cursor  |  v2.6.18 o superior  | 

La extensión AWS Toolkit es necesaria para conectar el IDE remoto a los espacios de Studio. Para Kiro y Cursor, se requiere la versión 3.100 o superior de la extensión AWS Toolkit.

## Requisitos del sistema operativo
<a name="remote-access-os-requirements"></a>

Para conectarse de forma remota a los espacios de Studio, necesita uno de los siguientes sistemas operativos:
+ macOS 13 o superior
+ Windows 10
  + [El soporte de Windows 10 finaliza el 14 de octubre de 2025](https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281)
+ Windows 11
+ Linux
  + Para VS Code, instale el [código VS Code oficial de Microsoft para Linux](https://code.visualstudio.com/docs/setup/linux), no una versión de código abierto

## Requisitos previos de la máquina local
<a name="remote-access-local-prerequisites"></a>

Antes de conectar el IDE remoto a los espacios de Studio, asegúrese de que su máquina local tenga las dependencias y el acceso a la red necesarios.

**importante**  
Los entornos con restricciones de instalación de software pueden impedir que los usuarios instalen las dependencias necesarias. Busca AWS Toolkit for Visual Studio Code automáticamente estas dependencias al iniciar conexiones remotas y, si falta alguna, solicitará la instalación. Coordínese con su departamento de TI para asegurarse de que estos componentes estén disponibles.

**Dependencias locales requeridas**

Su máquina local debe tener instalados los siguientes componentes:
+ Extensión **[Remote-SSH: extensión](https://code.visualstudio.com/docs/remote/ssh)** de desarrollo remoto para su IDE (disponible en el mercado de extensiones para VS Code, Kiro y Cursor)
+ **[Complemento de administrador de sesiones](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)**: necesario para una administración segura de las sesiones
+ **Cliente SSH**: componente estándar en la mayoría de las máquinas (se recomienda [OpenSSH para Windows](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse))
+ **Comando CLI IDE**: normalmente se incluye con la instalación del IDE (por ejemplo, `code` para VS Code, `kiro` para Kiro, `cursor` para Cursor)

**Requisitos específicos de la plataforma**
+ **Usuarios de Windows**: se requiere la PowerShell versión 5.1 o posterior para las conexiones de terminales SSH

**Requisitos de conectividad de red**

Su máquina local debe tener acceso de red a los [puntos finales del administrador de sesiones](https://docs.aws.amazon.com/general/latest/gr/ssm.html). Por ejemplo, en EE. UU. Este (Virginia del Norte) (us-east-1) pueden ser:
+ ssm.us-east-1.amazonaws.com
+ ssm.us-east-1.api.aws
+ ssmmessages.us-east-1.amazonaws.com
+ ec2messages.us-east-1.amazonaws.com

## Requisitos de imágenes
<a name="remote-access-image-requirements"></a>

**SageMaker Imágenes de distribución**

Cuando utilice SageMaker Distribution con acceso remoto, utilice la versión 2.7 o posterior de [SageMaker Distribution](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-distribution.html).

**Imágenes personalizadas**

Cuando utilice [Bring your own image (BYOI)](studio-updated-byoi.md) el acceso remoto, asegúrese de seguir las [especificaciones de imagen personalizadas](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi-specs.html) y de que estén instaladas las siguientes dependencias:
+ `curl`o `wget` — Necesario para descargar componentes AWS CLI 
+ `unzip`— Necesario para extraer los archivos AWS CLI de instalación
+ `tar`— Necesario para la extracción de archivos
+ `gzip`— Necesario para la gestión de archivos comprimidos

## Requisitos de instancias
<a name="remote-access-instance-requirements"></a>
+ **Memoria**: 8 GB o más
+ **Tipos de instancia**: use instancias con al menos 8 GB de memoria. *No* se admiten los siguientes tipos de instancia por falta de memoria (menos de 8 GB): `ml.t3.medium`, `ml.c7i.large`, `ml.c6i.large`, `ml.c6id.large` y `ml.c5.large`. Para obtener una lista más completa de los tipos de instancia, consulte la página [Precios de las instancias bajo demanda de Amazon EC2](https://aws.amazon.com/ec2/pricing/on-demand/).

**Topics**
+ [Conceptos clave](#remote-access-key-concepts)
+ [Métodos de conexión](#remote-access-connection-methods)
+ [Compatible IDEs](#remote-access-supported-ides)
+ [Requisitos de la versión IDE](#remote-access-ide-version-requirements)
+ [Requisitos del sistema operativo](#remote-access-os-requirements)
+ [Requisitos previos de la máquina local](#remote-access-local-prerequisites)
+ [Requisitos de imágenes](#remote-access-image-requirements)
+ [Requisitos de instancias](#remote-access-instance-requirements)
+ [Configuración del acceso remoto](remote-access-remote-setup.md)
+ [Configure el IDE remoto](remote-access-local-ide-setup.md)
+ [AWS Regiones compatibles](remote-access-supported-regions.md)

# Configuración del acceso remoto
<a name="remote-access-remote-setup"></a>

Antes de que los usuarios puedan conectar su IDE remoto a los espacios de Studio, el administrador debe configurar los permisos. En esta sección, se proporcionan instrucciones a los administradores sobre cómo configurar su dominio Amazon SageMaker AI con acceso remoto.

Los distintos métodos de conexión requieren distintos permisos de IAM. Configure los permisos adecuados en función de cómo se conectarán los usuarios. Utilice el siguiente flujo de trabajo junto con los permisos correspondientes al método de conexión.

**importante**  
Actualmente, las conexiones IDE remotas se autentican con credenciales de IAM, no con de IAM Identity Center. Esto afecta a los dominios que utilizan el [método de autenticación](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-custom.html#onboard-custom-authentication-details) de IAM Identity Center para que los usuarios accedan al dominio. Si prefiere no utilizar la autenticación de IAM para las conexiones remotas, puede desactivar esta característica con la clave condicional `RemoteAccess` de sus políticas de IAM. Para obtener más información, consulte [Aplicación del acceso remoto](remote-access-remote-setup-abac.md#remote-access-remote-setup-abac-remote-access-enforcement). Al utilizar las credenciales de IAM, las conexiones IDE remotas pueden mantener las sesiones activas incluso después de cerrar sesión en el IAM Identity Center. A veces, estas conexiones IDE remotas pueden persistir hasta 12 horas. Para garantizar la seguridad de su entorno, los administradores deben revisar la configuración de duración de la sesión siempre que sea posible y tener cuidado al utilizar estaciones de trabajo compartidas o redes públicas.

1. Elija uno de los siguientes permisos de método de conexión que se ajuste a los [Métodos de conexión](remote-access.md#remote-access-connection-methods) de sus usuarios.

1. [Cree una política de IAM personalizada](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) basada en el permiso del método de conexión.

**Topics**
+ [Paso 1: configuración de la seguridad y los permisos](#remote-access-remote-setup-permissions)
+ [Paso 2: activación del acceso remoto en su espacio](#remote-access-remote-setup-enable)
+ [Control de acceso avanzado](remote-access-remote-setup-abac.md)
+ [Configuración de Studio para que se ejecute con subredes sin acceso a Internet dentro de una VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md)
+ [Configura el filtrado automático del espacio de Studio cuando utilices el AWS kit de herramientas](remote-access-remote-setup-filter.md)

## Paso 1: configuración de la seguridad y los permisos
<a name="remote-access-remote-setup-permissions"></a>

**Topics**
+ [Método 1: permisos de enlace profundo](#remote-access-remote-setup-method-1-deep-link-permissions)
+ [Método 2: permisos del AWS kit de herramientas](#remote-access-remote-setup-method-2-aws-toolkit-permissions)
+ [Método 3: permisos de terminal SSH](#remote-access-remote-setup-method-3-ssh-terminal-permissions)

**importante**  
El uso de permisos amplios`sagemaker:StartSession`, especialmente con un recurso comodín, `*` crea el riesgo de que cualquier usuario con este permiso pueda iniciar una sesión en cualquier aplicación de SageMaker Space de la cuenta. Esto puede provocar que los científicos de datos accedan involuntariamente a los espacios de otros usuarios SageMaker . En el caso de los entornos de producción, debes limitar estos permisos a un espacio específico ARNs para aplicar el principio del privilegio mínimo. Consulte algunos ejemplos [Control de acceso avanzado](remote-access-remote-setup-abac.md) de políticas de permisos más detalladas que utilizan restricciones basadas en recursos ARNs, etiquetas y redes.

### Método 1: permisos de enlace profundo
<a name="remote-access-remote-setup-method-1-deep-link-permissions"></a>

Para los usuarios que se conecten a través de enlaces directos desde la SageMaker interfaz de usuario, utilice el siguiente permiso y adjúntelo a su [función de ejecución de SageMaker AI Space](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role-space) o de [ejecución de dominio](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role). Si el rol de ejecución del espacio no está configurado, se utiliza el rol de ejecución del dominio de forma predeterminada.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RestrictStartSessionOnSpacesToUserProfile",
            "Effect": "Allow",
            "Action": [
                "sagemaker:StartSession"
            ],
            "Resource": "arn:*:sagemaker:*:*:space/${sagemaker:DomainId}/*",
            "Condition": {
                "ArnLike": {
                    "sagemaker:ResourceTag/sagemaker:user-profile-arn": "arn:aws:sagemaker:*:*:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
                }
            }
        }
    ]
}
```

------

### Método 2: permisos del AWS kit de herramientas
<a name="remote-access-remote-setup-method-2-aws-toolkit-permissions"></a>

Para los usuarios que se conectan a través de la AWS Toolkit for Visual Studio Code extensión, adjunte la siguiente política a una de las siguientes opciones:
+ Para la autenticación de IAM, asocie esta política al rol o usuario de IAM.
+ Para la autenticación de IdC, asocie esta política a los [conjuntos de permisos](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) administrados por el IdC.

Para mostrar solo los espacios relevantes para el usuario autenticado, consulte[Información general sobre el filtrado](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-overview).

**importante**  
La siguiente política, que utiliza `*` como restricción de recursos, solo se recomienda para realizar pruebas rápidas. En el caso de los entornos de producción, debe limitar estos permisos a un espacio específico ARNs para aplicar el principio del privilegio mínimo. Consulte algunos ejemplos [Control de acceso avanzado](remote-access-remote-setup-abac.md) de políticas de permisos más detalladas que utilizan restricciones basadas en recursos ARNs, etiquetas y redes.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListSpaces",
                "sagemaker:DescribeSpace",
                "sagemaker:ListApps",
                "sagemaker:DescribeApp",
                "sagemaker:DescribeDomain",
                "sagemaker:UpdateSpace",
                "sagemaker:CreateApp",
                "sagemaker:DeleteApp",
                "sagemaker:AddTags"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowStartSessionOnSpaces",
            "Effect": "Allow",
            "Action": "sagemaker:StartSession",
            "Resource": [
                "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-1",
                "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-2"
            ]
        }
    ]
}
```

------

### Método 3: permisos de terminal SSH
<a name="remote-access-remote-setup-method-3-ssh-terminal-permissions"></a>

En el caso de las conexiones de terminales SSH, se `StartSession` invoca a la API mediante el siguiente script de comandos del proxy SSH, con las credenciales locales. AWS Consulte [Configurar la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) para obtener información e instrucciones sobre cómo configurar las credenciales locales AWS del usuario. Para utilizar estos permisos:

1. Asocie esta política al rol o usuario de IAM asociado a las credenciales de AWS locales.

1. Si utiliza un perfil de credenciales con nombre, modifique el comando proxy en su configuración de SSH:

   ```
   ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
   ```
**nota**  
La política debe adjuntarse a la identidad de IAM (usuario/rol) utilizada en la configuración de AWS credenciales locales, no a la función de ejecución del dominio de Amazon SageMaker AI.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowStartSessionOnSpecificSpaces",
               "Effect": "Allow",
               "Action": "sagemaker:StartSession",
               "Resource": [
                   "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-1",
                   "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-2"
               ]
           }
       ]
   }
   ```

------

Tras la configuración, los usuarios pueden ejecutar `ssh my_studio_space_abc` para iniciar el espacio. Para obtener más información, consulte [Método 3: conectarse desde el terminal a través de la CLI de SSH](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli).

## Paso 2: activación del acceso remoto en su espacio
<a name="remote-access-remote-setup-enable"></a>

Tras configurar los permisos, debes activar el **acceso remoto** e iniciar tu espacio en Studio para que el usuario pueda conectarse mediante su IDE remoto. Solo tiene que configurarlo una vez.

**nota**  
Si sus usuarios se conectan mediante este paso[Método 2: permisos del AWS kit de herramientas](#remote-access-remote-setup-method-2-aws-toolkit-permissions), no es necesario que realice este paso. AWS Toolkit for Visual Studio los usuarios pueden habilitar el acceso remoto desde el kit de herramientas.

**Activación del acceso remoto en su espacio de Studio**

1. [Abre Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html#studio-updated-launch-console).

1. Abra la interfaz de usuario de Studio.

1. Vaya a su espacio.

1. En los detalles del espacio, active **Acceso remoto**.

1. Seleccione **Ejecutar espacio**.

# Control de acceso avanzado
<a name="remote-access-remote-setup-abac"></a>

Amazon SageMaker AI admite el [control de acceso basado en atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) para lograr un control de acceso detallado para las conexiones IDE remotas mediante políticas ABAC. Los siguientes son ejemplos de políticas de ABAC para conexiones IDE remotas.

**Topics**
+ [Aplicación del acceso remoto](#remote-access-remote-setup-abac-remote-access-enforcement)
+ [Control de acceso basado en etiquetas](#remote-access-remote-setup-abac-tag-based-access-control)

## Aplicación del acceso remoto
<a name="remote-access-remote-setup-abac-remote-access-enforcement"></a>

Controle el acceso a los recursos con la clave de condición `sagemaker:RemoteAccess`. Esto es compatible con `CreateSpace` y. `UpdateSpace` APIs El siguiente ejemplo utiliza `CreateSpace`. 

Puede garantizar que los usuarios no puedan crear espacios con el acceso remoto activado. Esto ayuda a mantener la seguridad pues se establece una configuración de acceso más restringida de forma predeterminada. Con la siguiente política, los usuarios pueden:
+ Crear nuevos espacios de Studio en los que el acceso remoto está deshabilitado de forma explícita.
+ Crear nuevos espacios de Studio sin especificar ninguna configuración de acceso remoto.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyCreateSpaceRemoteAccessEnabled",
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateSpace",
                "sagemaker:UpdateSpace"
            ],
            "Resource": "arn:aws:sagemaker:*:*:space/*",
            "Condition": {
                "StringEquals": {
                    "sagemaker:RemoteAccess": [
                        "ENABLED"
                    ]
                }
            }
        },
        {
            "Sid": "AllowCreateSpace",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateSpace",
                "sagemaker:UpdateSpace"
            ],
            "Resource": "arn:aws:sagemaker:*:*:space/*"
        }
    ]
}
```

------

## Control de acceso basado en etiquetas
<a name="remote-access-remote-setup-abac-tag-based-access-control"></a>

Implemente un control de acceso [basado en etiquetas](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html) para restringir las conexiones en función de los recursos y las etiquetas de entidad principal.

Puede asegurarse de que los usuarios solo puedan acceder a los recursos adecuados según su rol y las asignaciones de proyectos. Puede utilizar la siguiente política para:
+ Permita que los usuarios se conecten solo a los espacios que coincidan con el equipo, entorno y centro de costos asignados.
+ Implementar el control de acceso detallado basado en la estructura organizativa.

En el siguiente ejemplo, el espacio se etiqueta con lo siguiente:

```
{ "Team": "ML", "Environment": "Production", "CostCenter": "12345" }
```

Puede tener un rol que contenga la siguiente política para hacer coincidir las etiquetas de recursos y entidad principal:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RestrictStartSessionOnTaggedSpacesInDomain",
            "Effect": "Allow",
            "Action": [
                "sagemaker:StartSession"
            ],
            "Resource": [
                "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Team": "${aws:PrincipalTag/Team}",
                    "aws:ResourceTag/Environment": "${aws:PrincipalTag/Environment}",
                    "aws:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}",
                    "aws:ResourceTag/IDC_UserName": "${aws:PrincipalTag/IDC_UserName}"
                }
            }
        }
    ]
}
```

------

Cuando las etiquetas del rol coinciden, el usuario tiene permiso para iniciar la sesión y conectarse de forma remota a su espacio. Para obtener más información, consulte [Control de acceso a los recursos de AWS mediante etiquetas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html).

# Configuración de Studio para que se ejecute con subredes sin acceso a Internet dentro de una VPC
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access"></a>

Esta guía le muestra cómo conectarse a los espacios de Amazon SageMaker Studio desde su IDE remoto cuando su dominio de Amazon SageMaker AI se ejecuta en subredes privadas sin acceso a Internet. También se enumeran los requisitos de conectividad y las opciones de configuración para establecer conexiones remotas seguras en entornos de red aislados.

Puede configurar Amazon SageMaker Studio para que se ejecute solo en modo VPC con subredes sin acceso a Internet. Esta configuración mejora la seguridad de sus cargas de trabajo de machine learning al operar en un entorno de red aislado en el que todo el tráfico fluye a través de la VPC. Para habilitar las comunicaciones externas y, al mismo tiempo, mantener la seguridad, utilice los puntos finales de la VPC para los AWS servicios y configure la PrivateLink VPC para las dependencias necesarias. AWS 

**Soporte IDE para conexiones de subredes privadas**

La siguiente tabla muestra los métodos de conexión compatibles con cada IDE remoto cuando se conecta a espacios de Studio en subredes privadas sin acceso a Internet.


| Método de conexión | VS Code | Kiro | Cursor | 
| --- | --- | --- | --- | 
|  Compatibilidad con proxy HTTP  |  Soportado  |   compatible  |  No compatible  | 
|  Servidor remoto y extensiones preempaquetados  |   compatible  |  No admitido  |  No admitido  | 

**importante**  
El cursor no es compatible para conectarse a espacios de Studio en subredes privadas sin acceso saliente a Internet.

**Topics**
+ [Requisitos de red del acceso remoto a Studio](#remote-access-remote-setup-vpc-subnets-without-internet-access-network-requirements)
+ [Configuración de la red de acceso remoto de Studio](#remote-access-remote-setup-vpc-subnets-without-internet-access-setup)

## Requisitos de red del acceso remoto a Studio
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-network-requirements"></a>

**Limitaciones del modo VPC**: Studio en el modo VPC solo admite subredes privadas. Studio no funciona con las subredes conectadas directamente a una puerta de enlace de Internet. Las conexiones IDE remotas comparten las mismas limitaciones que la IA. SageMaker Para obtener más información, consulte [Conexión de cuadernos de Studio en una VPC a recursos externos](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html).

### Requisitos de VPC PrivateLink
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-vpc-privatelink-requirements"></a>

Cuando la SageMaker IA se ejecute en subredes privadas, configure estos puntos de enlace de VPC de SSM además de los puntos de enlace de VPC estándar necesarios para ello. SageMaker Para obtener más información, consulte [Conexión de Studio a través de un punto de conexión de VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-interface-endpoint.html).
+ `com.amazonaws.REGION.ssm`
+ `com.amazonaws.REGION.ssmmessages`

**Recomendaciones de políticas de puntos finales de VPC**

Las siguientes son las políticas de puntos finales de VPC recomendadas que permiten realizar las acciones necesarias para el acceso remoto y, al mismo tiempo, utilizan la `aws:PrincipalIsAWSService` condición para garantizar que solo AWS servicios como Amazon SageMaker AI puedan realizar las llamadas. Para obtener más información sobre la clave de `aws:PrincipalIsAWSService` condición, consulta [la documentación](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice).

**Política de puntos finales de SSM**

Utilice la siguiente política para el `com.amazonaws.REGION.ssm` punto final:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "ssm:CreateActivation",
                "ssm:RegisterManagedInstance",
                "ssm:DeleteActivation",
                "ssm:DeregisterManagedInstance",
                "ssm:AddTagsToResource",
                "ssm:UpdateInstanceInformation",
                "ssm:UpdateInstanceAssociationStatus",
                "ssm:DescribeInstanceInformation",
                "ssm:ListInstanceAssociations",
                "ssm:ListAssociations",
                "ssm:GetDocument",
                "ssm:PutInventory"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:PrincipalIsAWSService": "true"
                }
            }
        }
    ]
}
```

**Política de puntos finales de SSM Messages**

Utilice la siguiente política para el `com.amazonaws.REGION.ssmmessages` punto final:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:PrincipalIsAWSService": "true"
                }
            }
        }
    ]
}
```

**Requisitos de red específicos de Visual Studio Code**

La conexión remota de Visual Studio Code requiere el desarrollo remoto de Visual Studio Code, que requiere un acceso de red específico para instalar el servidor remoto y las extensiones. Consulte las [preguntas frecuentes sobre el desarrollo remoto](https://code.visualstudio.com/docs/remote/faq) en la documentación de Visual Studio Code para ver todos los requisitos de red. A continuación se proporciona un resumen de los requisitos:
+ Se debe acceder a los puntos de conexión del servidor de Visual Studio Code de Microsoft para instalar y actualizar el servidor remoto de Visual Studio Code.
+ Se requiere acceso a Visual Studio Marketplace y a los puntos de conexión de CDN relacionados para instalar las extensiones de Visual Studio Code a través del panel de extensiones (como alternativa, las extensiones se pueden instalar manualmente con archivos VSIX sin conexión a Internet).
+ Es posible que algunas extensiones requieran acceso a puntos de conexión adicionales para descargar las dependencias específicas. Consulte la documentación de la extensión para ver los requisitos de conectividad específicos.

**Requisitos de red específicos de Kiro**

La conexión remota de Kiro requiere el desarrollo remoto de Kiro, que necesita un acceso a la red específico para instalar el servidor remoto y las extensiones. Para obtener información sobre la configuración del firewall y el servidor proxy, consulte Configuración del firewall de [Kiro.](https://kiro.dev/docs/privacy-and-security/firewalls/) Los requisitos son similares a los de VS Code:
+ Es necesario acceder a los puntos finales del servidor Kiro para instalar y actualizar el servidor remoto Kiro.
+ Para instalar las extensiones de Kiro a través del panel de extensiones, es necesario acceder al mercado de extensiones y a los puntos finales de CDN relacionados.
+ Es posible que algunas extensiones requieran acceso a puntos de conexión adicionales para descargar las dependencias específicas. Consulte la documentación de la extensión para ver los requisitos de conectividad específicos.

## Configuración de la red de acceso remoto de Studio
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup"></a>

Dispone de las siguientes opciones para conectar su IDE remoto a los espacios de Studio en subredes privadas:
+ Proxy HTTP (compatible con VS Code y Kiro)
+ Servidor remoto y extensiones preempaquetados (solo VS Code)

### Configuración del proxy HTTP con una lista de permisos controlada
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup-http-proxy-with-controlled-allow-listing"></a>

Cuando tu espacio de Studio esté protegido por un firewall o un proxy, permite el acceso a tu servidor IDE y a los puntos finales y relacionados con las extensiones CDNs .

1. Configure una subred pública para ejecutar el proxy HTTP (como Squid), donde podrá configurar los sitios web que quiere permitir. Asegúrate de que los espacios puedan acceder al proxy HTTP. SageMaker 

1. La subred pública puede estar en la misma VPC que usa el estudio o en una VPC independiente emparejada con todos los VPCs dominios de Amazon AI. SageMaker 

### Configure un servidor remoto y extensiones preempaquetados (solo en VS Code)
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup-pre-packaged-vs-code-remote-server-and-extensions"></a>

**nota**  
Esta opción solo está disponible para Visual Studio Code. Kiro y Cursor no admiten la configuración de servidor remoto preconfigurada.

Si sus espacios de Studio no pueden acceder a puntos de conexión externos para descargar el servidor remoto y las extensiones de Visual Studio Code, puede preempaquetarlos. Con este enfoque, se exporta un archivo tarball que contiene el directorio `.VS Code-server` de una versión específica de Visual Studio Code. A continuación, se utiliza un script de configuración del ciclo de vida de la SageMaker IA (LCC) para copiar y extraer el archivo tar en el directorio principal (`/home/sagemaker-user`) de los espacios de Studio. Esta solución basada en LCC funciona tanto AWS con imágenes personalizadas como proporcionadas por usted. Incluso si no utiliza subredes privadas, este enfoque acelera la configuración del servidor remoto de Visual Studio Code y las extensiones preinstaladas.

**Instrucciones para preempaquetar su servidor remoto de Visual Studio Code y las extensiones**

1. Instale Visual Studio Code en su equipo local.

1. Lance un contenedor de Docker basado en Linux (x64) con SSH habilitado, ya sea localmente o a través de un espacio de Studio con acceso a Internet. Para simplificar, recomendamos utilizar un espacio de Studio temporal con acceso remoto y acceso a Internet.

1. Conecte el Visual Studio Code instalado al contenedor de Docker local mediante SSH remoto o conéctese al espacio de Studio a través de la característica de Visual Studio Code remota de Studio. Visual Studio Code instala el servidor remoto en `.VS Code-server` en el directorio principal del contenedor remoto durante la conexión. Para obtener más información, consulte [Ejemplo de uso de Dockerfile para preempaquetar el servidor remoto y las extensiones de Visual Studio Code](remote-access-local-ide-setup-vpc-no-internet.md#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile).

1. Después de conectarse de forma remota, asegúrese de usar el perfil predeterminado de Visual Studio Code.

1. Instale las extensiones de Visual Studio Code requeridas y valide su funcionalidad. Por ejemplo, cree y ejecute un cuaderno para instalar las extensiones relacionadas con el cuaderno de Jupyter en el servidor remoto de Visual Studio Code.

   Asegúrese de [instalar la AWS Toolkit for Visual Studio Code extensión](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html) después de conectarse al contenedor remoto.

1. Archive el directorio `$HOME/.VS Code-server` (por ejemplo, `VS Code-server-with-extensions-for-1.100.2.tar.gz`) en el contenedor de Docker local o en la terminal del espacio de Studio conectado de forma remota.

1. Cargue el archivo tarball en Amazon S3.

1. Cree un [script de LCC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lifecycle-configurations.html) ([Ejemplo de script LCC (LCC-install-VS C ode-server-v 1.100.2)](remote-access-local-ide-setup-vpc-no-internet.md#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc)) que:
   + descargue el archivo específico de Amazon S3,
   + lo extraiga en el directorio principal cuando se abra un espacio de Studio en una subred privada.

1. (Opcional) Amplíe el script de LCC para admitir los archivos tarball del servidor de Visual Studio Code por usuario almacenados en carpetas de Amazon S3 específicas del usuario.

1. (Opcional) Mantenga scripts de LCC específicos para cada versión ([Ejemplo de script LCC (LCC-install-VS C ode-server-v 1.100.2)](remote-access-local-ide-setup-vpc-no-internet.md#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc)) que pueda asociar a sus espacios. De este modo, garantizará la compatibilidad entre su cliente local de Visual Studio Code y el servidor remoto.

# Configura el filtrado automático del espacio de Studio cuando utilices el AWS kit de herramientas
<a name="remote-access-remote-setup-filter"></a>

Los usuarios pueden filtrar los espacios en el AWS Toolkit for Visual Studio Code explorador para mostrar solo los espacios relevantes. En esta sección se proporciona información sobre el filtrado y cómo configurar el filtrado automático.

Esta configuración solo se aplica cuando se utiliza el [Método 2: AWS kit de herramientas en el IDE remoto](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code) método para conectarse desde su IDE remoto a los espacios de Amazon SageMaker Studio. Para obtener más información, consulte [Configuración del acceso remoto](remote-access-remote-setup.md).

**Topics**
+ [Información general sobre el filtrado](#remote-access-remote-setup-filter-overview)
+ [Configuración sobre la conexión con credenciales de IAM](#remote-access-remote-setup-filter-set-up-iam-credentials)

## Información general sobre el filtrado
<a name="remote-access-remote-setup-filter-overview"></a>

**El filtrado manual** permite a los usuarios seleccionar manualmente los perfiles de usuario para los que mostrar los espacios a través de la interfaz del AWS kit de herramientas. Este método funciona para todos los tipos de autenticación y tiene prioridad sobre el filtrado automático. Para filtrar manualmente, consulte [Filtrado manual](remote-access-local-ide-setup-filter.md#remote-access-local-ide-setup-filter-manual).

El **filtrado automatizado** muestra automáticamente solo los espacios pertinentes para el usuario autenticado. Este comportamiento de filtrado depende del método de autenticación durante el inicio de sesión. Consulte cómo [conectarse AWS desde el kit de herramientas](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html#connect-to-aws) en la Guía del usuario de Toolkit for VS Code para obtener más información. A continuación, se enumeran las opciones de inicio de sesión.
+ **Autenticación y conexión mediante el inicio de sesión único (SSO)**: el filtrado automático funciona de forma predeterminada.
+ **Autenticación y conexión con las credenciales de IAM**: el filtrado automático **requiere que el administrador configure** las siguientes credenciales de IAM. Sin esta configuración, AWS Toolkit no puede identificar qué espacios pertenecen al usuario, por lo que todos los espacios se muestran de forma predeterminada.
  + **Uso de credenciales de usuario de IAM**
  + **Uso de credenciales de sesión con un rol de IAM asumido**

## Configuración sobre la conexión con credenciales de IAM
<a name="remote-access-remote-setup-filter-set-up-iam-credentials"></a>

**Si se usan credenciales de usuario de IAM**

El Kit de herramientas de Visual Studio Code puede hacer coincidir los espacios que pertenecen a los perfiles de usuario que comienzan con el nombre de usuario de IAM autenticado o el nombre de sesión del rol asumido. Para configurarlo:

**nota**  
Los administradores deben configurar los nombres de los perfiles de usuario de Studio para que sigan esta convención de nomenclatura para que el filtrado automático funcione correctamente.
+ Los administradores deben asegurarse de que los nombres de los perfiles de usuario de Studio sigan la convención de nomenclatura:
  + Para los usuarios de IAM: prefijo con `IAM-user-name-`
  + Para roles asumidos: prefijo con `assumed-role-session-name-`
+ `aws sts get-caller-identity` devuelve la información de identidad utilizada para la coincidencia.
+ Los espacios que pertenezcan a los perfiles de usuario coincidentes se filtrarán automáticamente en el Kit de herramientas de Visual Studio Code.

**Al utilizar credenciales de sesión con roles de IAM asumidos** Además de la configuración que se indica anteriormente al usar las credenciales de usuario de IAM, deberá asegurarse de que la sesión ARNs incluya identificadores de usuario como prefijos que coincidan. Puede configurar políticas de confianza que garanticen que la sesión ARNs incluya identificadores de usuario como prefijos. [Cree una política de confianza](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) y asóciela al rol asumido que se utiliza para la autenticación.

Esta configuración no es necesaria para las credenciales de usuario de IAM directas ni para la autenticación de IdC.

**Configurar una política de confianza para un ejemplo de credenciales de sesión de rol de IAM**: cree una política de confianza que obligue a las sesiones de rol a incluir el nombre de usuario de IAM. A continuación se muestra un ejemplo de política:

```
{
    "Statement": [
        {
            "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::ACCOUNT:root"},
            "Condition": {
                "StringLike": {"sts:RoleSessionName": "${aws:username}"}
            }
        }
    ]
}
```

# Configure el IDE remoto
<a name="remote-access-local-ide-setup"></a>

Una vez que los administradores completen las instrucciones[Conecte su IDE remoto a SageMaker espacios con acceso remoto](remote-access.md), podrá conectar su IDE remoto a sus SageMaker espacios remotos.

**Topics**
+ [Configuración del entorno local](#remote-access-local-ide-setup-local-environment)
+ [Conéctese a su IDE remoto](#remote-access-local-ide-setup-local-vs-code)
+ [Conexión a una VPC con subredes sin acceso a Internet](remote-access-local-ide-setup-vpc-no-internet.md)
+ [Filtración de los espacios de Studio](remote-access-local-ide-setup-filter.md)

## Configuración del entorno local
<a name="remote-access-local-ide-setup-local-environment"></a>

Instale el IDE remoto que prefiera en su máquina local:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursor](https://cursor.com/home)

Para obtener información sobre los requisitos de la versión, consulte[Requisitos de la versión IDE](remote-access.md#remote-access-ide-version-requirements).

## Conéctese a su IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code"></a>

Antes de que pueda establecer una conexión desde su IDE remoto a sus SageMaker espacios remotos, su administrador debe hacerlo[Configuración del acceso remoto](remote-access-remote-setup.md). El administrador configura un método específico para que usted pueda establecer una conexión. Elija el método que se ha configurado para usted.

**Topics**
+ [Método 1: enlace profundo desde la interfaz de usuario de Studio](#remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui)
+ [Método 2: AWS kit de herramientas en el IDE remoto](#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code)
+ [Método 3: conectarse desde el terminal a través de la CLI de SSH](#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli)

### Método 1: enlace profundo desde la interfaz de usuario de Studio
<a name="remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui"></a>

Use el siguiente procedimiento para establecer una conexión mediante un enlace profundo.

1. [Abre Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html#studio-updated-launch-console).

1. En la interfaz de usuario de Studio, vaya a su espacio.

1. Selecciona el botón **Abrir en VS Code**, **Abrir en Kiro o** **Abrir en el cursor** para el IDE que prefieras. Asegúrese de que su IDE preferido ya esté instalado en su ordenador local.

1. Cuando se le solicite, confirme que desea abrir el IDE. El IDE se abre con otra ventana emergente para confirmarlo. Una vez completada, se establece la conexión remota.

### Método 2: AWS kit de herramientas en el IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code"></a>

Use el siguiente procedimiento para establecer una conexión mediante el AWS Toolkit for Visual Studio Code. Este método está disponible para VS Code, Kiro y Cursor.

1. Abre tu IDE remoto (VS Code, Kiro o Cursor).

1. Abre la extensión AWS Toolkit.

1. [Conéctese a AWS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html).

1. En el AWS Explorador, expande **SageMaker AI** y, a continuación, expande **Studio**.

1. Busque su espacio de Studio.

1. Elija el icono **Conectar** situado junto a su espacio para iniciarlo.
**nota**  
Detenga y reinicie el espacio del Kit de herramientas para Visual Studio para habilitar el acceso remoto, si todavía no está conectado.
Si el espacio no utiliza un [tamaño de instancia](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html#remote-access-instance-requirements) compatible, se le pedirá que cambie la instancia.

### Método 3: conectarse desde el terminal a través de la CLI de SSH
<a name="remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli"></a>

Elija una de las siguientes opciones de plataforma para ver el procedimiento para establecer una conexión mediante la CLI de SSH.

**nota**  
Asegúrese de tener [Requisitos previos de la máquina local](remote-access.md#remote-access-local-prerequisites) instaladas las versiones más recientes antes de seguir las instrucciones que aparecen a continuación.
Si es así[Bring your own image (BYOI)](studio-updated-byoi.md), asegúrese de haber instalado las dependencias necesarias que se enumeran en [Requisitos de imágenes](remote-access.md#remote-access-image-requirements) antes de continuar

------
#### [ Linux/macOS ]

Cree un script de intérprete de comandos (por ejemplo, `/home/user/sagemaker_connect.sh`):

```
#!/bin/bash
# Disable the -x option if printing each command is not needed.
set -exuo pipefail

SPACE_ARN="$1"
AWS_PROFILE="${2:-}"

# Validate ARN and extract region
if [[ "$SPACE_ARN" =~ ^arn:aws[-a-z]*:sagemaker:([a-z0-9-]+):[0-9]{12}:space\/[^\/]+\/[^\/]+$ ]]; then
    AWS_REGION="${BASH_REMATCH[1]}"
else
    echo "Error: Invalid SageMaker Studio Space ARN format."
    exit 1
fi

# Optional profile flag
PROFILE_ARG=()
if [[ -n "$AWS_PROFILE" ]]; then
    PROFILE_ARG=(--profile "$AWS_PROFILE")
fi

# Start session
START_SESSION_JSON=$(aws sagemaker start-session \
    --resource-identifier "$SPACE_ARN" \
    --region "${AWS_REGION}" \
    "${PROFILE_ARG[@]}")

# Extract fields using grep and sed
SESSION_ID=$(echo "$START_SESSION_JSON" | grep -o '"SessionId": "[^"]*"' | sed 's/.*: "//;s/"$//')
STREAM_URL=$(echo "$START_SESSION_JSON" | grep -o '"StreamUrl": "[^"]*"' | sed 's/.*: "//;s/"$//')
TOKEN=$(echo "$START_SESSION_JSON" | grep -o '"TokenValue": "[^"]*"' | sed 's/.*: "//;s/"$//')

# Validate extracted values
if [[ -z "$SESSION_ID" || -z "$STREAM_URL" || -z "$TOKEN" ]]; then
    echo "Error: Failed to extract session information from sagemaker start session response."
    exit 1
fi

# Call session-manager-plugin
session-manager-plugin \
    "{\"streamUrl\":\"$STREAM_URL\",\"tokenValue\":\"$TOKEN\",\"sessionId\":\"$SESSION_ID\"}" \
    "$AWS_REGION" "StartSession"
```

1. Haga que el script sea ejecutable.

   ```
   chmod +x /home/user/sagemaker_connect.sh
   ```

1. Configure `$HOME/.ssh/config` para agregar la siguiente entrada:

```
Host space-name
  HostName 'arn:PARTITION:sagemaker:us-east-1:111122223333:space/domain-id/space-name'
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h'
  ForwardAgent yes
  AddKeysToAgent yes
  StrictHostKeyChecking accept-new
```

Por ejemplo, el valor `PARTITION` puede ser `aws`.

Si necesita usar un [perfil de AWS credenciales con nombre](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-configure-files-using-profiles), cambie el comando proxy de la siguiente manera:

```
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
```
+ Conéctese a través de SSH o ejecute el comando SCP:

```
ssh space-name
scp file_abc space-name:/tmp/
```

------
#### [ Windows ]

**Requisitos previos para Windows:**
+ PowerShell 5.1 o posterior
+ Cliente SSH (se recomienda OpenSSH)

Cree un PowerShell script (por ejemplo,): `C:\Users\user-name\sagemaker_connect.ps1`

```
# sagemaker_connect.ps1
param(
    [Parameter(Mandatory=$true)]
    [string]$SpaceArn,

    [Parameter(Mandatory=$false)]
    [string]$AwsProfile = ""
)

# Enable error handling
$ErrorActionPreference = "Stop"

# Validate ARN and extract region
if ($SpaceArn -match "^arn:aws[-a-z]*:sagemaker:([a-z0-9-]+):[0-9]{12}:space\/[^\/]+\/[^\/]+$") {
    $AwsRegion = $Matches[1]
} else {
    Write-Error "Error: Invalid SageMaker Studio Space ARN format."
    exit 1
}

# Build AWS CLI command
$awsCommand = @("sagemaker", "start-session", "--resource-identifier", $SpaceArn, "--region", $AwsRegion)

if ($AwsProfile) {
    $awsCommand += @("--profile", $AwsProfile)
}

try {
    # Start session and capture output
    Write-Host "Starting SageMaker session..." -ForegroundColor Green
    $startSessionOutput = & aws @awsCommand

    # Try to parse JSON response
    try {
        $sessionData = $startSessionOutput | ConvertFrom-Json
    } catch {
        Write-Error "Failed to parse JSON response: $_"
        Write-Host "Raw response was:" -ForegroundColor Yellow
        Write-Host $startSessionOutput
        exit 1
    }

    $sessionId = $sessionData.SessionId
    $streamUrl = $sessionData.StreamUrl
    $token = $sessionData.TokenValue

    # Validate extracted values
    if (-not $sessionId -or -not $streamUrl -or -not $token) {
        Write-Error "Error: Failed to extract session information from sagemaker start session response."
        Write-Host "Parsed response was:" -ForegroundColor Yellow
        Write-Host ($sessionData | ConvertTo-Json)
        exit 1
    }

    Write-Host "Session started successfully. Connecting..." -ForegroundColor Green

    # Create session manager plugin command
    $sessionJson = @{
        streamUrl = $streamUrl
        tokenValue = $token
        sessionId = $sessionId
    } | ConvertTo-Json -Compress

    # Escape the JSON string
    $escapedJson = $sessionJson -replace '"', '\"'

    # Call session-manager-plugin
    & session-manager-plugin "$escapedJson" $AwsRegion "StartSession"

} catch {
    Write-Error "Failed to start session: $_"
    exit 1
}
```
+ Configure `C:\Users\user-name\.ssh\config` para agregar la siguiente entrada:

```
Host space-name                            
  HostName "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name"
  ProxyCommand "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy RemoteSigned -File "C:\\Users\\user-name\\sagemaker_connect.ps1" "%h"
  ForwardAgent yes
  AddKeysToAgent yes
  User sagemaker-user
  StrictHostKeyChecking accept-new
```

------

# Conexión a una VPC con subredes sin acceso a Internet
<a name="remote-access-local-ide-setup-vpc-no-internet"></a>

Antes de conectar su IDE remoto a espacios de Studio en subredes privadas sin acceso a Internet, asegúrese de que su administrador lo haya hecho[Configuración de Studio para que se ejecute con subredes sin acceso a Internet dentro de una VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md).

Dispones de las siguientes opciones para conectar tu IDE remoto a los espacios de Studio en subredes privadas:
+ Configura el proxy HTTP (compatible con VS Code y Kiro)
+ Servidor remoto y extensiones preempaquetados (solo VS Code)

**importante**  
El cursor no es compatible para conectarse a espacios de Studio en subredes privadas sin acceso saliente a Internet.

**Topics**
+ [Proxy HTTP con una lista de permisos controlada](#remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing)
+ [Servidor remoto y extensiones preempaquetados (solo VS Code)](#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions)

## Proxy HTTP con una lista de permisos controlada
<a name="remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing"></a>

Cuando tu espacio de Studio esté protegido por un firewall o un proxy, pídele al administrador que te permita acceder al servidor IDE y a los puntos finales y relacionados con las extensiones. CDNs Para obtener más información, consulte [Configuración del proxy HTTP con una lista de permisos controlada](remote-access-remote-setup-vpc-subnets-without-internet-access.md#remote-access-remote-setup-vpc-subnets-without-internet-access-setup-http-proxy-with-controlled-allow-listing).

------
#### [ VS Code ]

Configure el proxy HTTP para el desarrollo remoto de VS Code proporcionando la URL del proxy con la `remote.SSH.httpProxy` configuración o. `remote.SSH.httpsProxy`

**nota**  
Considere habilitar «Remote.ssh: Use Curl and Wget Configuration Files» para usar la configuración del entorno y los archivos remotos. `curlrc` `wgetrc` Esto es para que los `wgetrc` archivos `curlrc` y, colocados en sus respectivas ubicaciones predeterminadas en el SageMaker espacio, puedan usarse para habilitar ciertos casos.

------
#### [ Kiro ]

Configure el proxy HTTP para el desarrollo remoto de Kiro configurando la `aws.sagemaker.ssh.kiro.httpsProxy` configuración en su punto final de proxy HTTP o HTTPS.

Si utiliza servidores MCP (Model Context Protocol) en Kiro, también necesitará añadir las variables de entorno del proxy a la configuración de su servidor MCP:

```
"env": {
    "http_proxy": "${http_proxy}",
    "https_proxy": "${https_proxy}"
}
```

------

Esta opción funciona cuando se le permite configurar un proxy HTTP e instalar extensiones adicionales de forma flexible, ya que algunas extensiones requieren un punto de conexión público.

## Servidor remoto y extensiones preempaquetados (solo VS Code)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions"></a>

**nota**  
Esta opción solo está disponible para Visual Studio Code. Kiro y Cursor no admiten la configuración de servidor remoto preconfigurada.

Si sus espacios de Studio no pueden acceder a puntos de conexión externos para descargar el servidor remoto y las extensiones de Visual Studio Code, puede preempaquetarlos. Con este enfoque, su administrador puede exportar un archivo tarball que contiene el directorio `.VS Code-server` de una versión específica de Visual Studio Code. A continuación, el administrador utiliza un script de configuración del ciclo de vida de la SageMaker IA (LCC) para copiar y extraer el archivo tar en su directorio principal (). `/home/sagemaker-user` Para obtener más información, consulte [Configure un servidor remoto y extensiones preempaquetados (solo en VS Code)](remote-access-remote-setup-vpc-subnets-without-internet-access.md#remote-access-remote-setup-vpc-subnets-without-internet-access-setup-pre-packaged-vs-code-remote-server-and-extensions).

**Instrucciones para preempaquetar su servidor remoto de Visual Studio Code y las extensiones**

1. Instale Visual Studio Code en su equipo local.

1. Cuando te conectas al espacio: SageMaker 
   + Utilice el perfil predeterminado para garantizar que sea compatible con las extensiones preempaquetadas. De lo contrario, tendrá que instalar las extensiones con los archivos VSIX descargados después de conectarse al espacio de Studio.
   + Elija un script de LCC específico de la versión de Visual Studio Code para asociarlo al espacio cuando lo lance.

### Ejemplo de uso de Dockerfile para preempaquetar el servidor remoto y las extensiones de Visual Studio Code
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile"></a>

El siguiente es un ejemplo de Dockerfile para lanzar un contenedor local con el servidor SSH preinstalado, en el caso de que no se pueda crear un espacio con acceso remoto y a Internet.

**nota**  
En este ejemplo, el servidor SSH no requiere autenticación y solo se usa para exportar el servidor remoto de Visual Studio Code.
El contenedor debe diseñarse y ejecutarse en una arquitectura x64.

```
FROM amazonlinux:2023

# Install OpenSSH server and required tools
RUN dnf install -y \
    openssh-server \
    shadow-utils \
    passwd \
    sudo \
    tar \
    gzip \
    && dnf clean all

# Create a user with no password
RUN useradd -m -s /bin/bash sagemaker-user && \
    passwd -d sagemaker-user

# Add sagemaker-user to sudoers via wheel group
RUN usermod -aG wheel sagemaker-user && \
    echo 'sagemaker-user ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/sagemaker-user && \
    chmod 440 /etc/sudoers.d/sagemaker-user

# Configure SSH to allow empty passwords and password auth
RUN sed -i 's/^#\?PermitEmptyPasswords .*/PermitEmptyPasswords yes/' /etc/ssh/sshd_config && \
    sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config

# Generate SSH host keys
RUN ssh-keygen -A

# Expose SSH port
EXPOSE 22

WORKDIR /home/sagemaker-user
USER sagemaker-user

# Start SSH server
CMD ["bash"]
```

Use los siguientes comandos para diseñar y ejecutar el contenedor.

```
# Build the image
docker build . -t remote_server_export

# Run the container
docker run --rm -it -d \
  -v /tmp/remote_access/.VS Code-server:/home/sagemaker-user/.VS Code-server \
  -p 2222:22 \
  --name remote_server_export \
  remote_server_export
  
# change the permisson for the mounted folder
docker exec -i remote_server_export \
       bash -c 'sudo chown sagemaker-user:sagemaker-user ~/.VS Code-server'

# start the ssh server in the container 
docker exec -i remote_server_export bash -c 'sudo /usr/sbin/sshd -D &'
```

Conexión mediante el siguiente comando:

```
ssh sagemaker-user@localhost -p 2222
```

Para poder conectar este contenedor, debe configurar lo siguiente en el archivo `.ssh/config`. Después, cuando se conecte, podrá ver `remote_access_export` como nombre de host en el panel lateral de SSH remoto. Por ejemplo:

```
Host remote_access_export
  HostName localhost
  User=sagemaker-user
  Port 2222
  ForwardAgent yes
```

Archive `/tmp/remote_access/.VS Code-server` y siga los pasos del servidor remoto y las extensiones preempaquetadas de Visual Studio Code para conectar e instalar la extensión. Después de descomprimirla, asegúrese de que la carpeta `.VS Code-server` aparezca como la carpeta principal.

```
cd /tmp/remote_access/
sudo tar -czvf VS Code-server-with-extensions-for-1.100.2.tar.gz .VS Code-server
```

### Ejemplo de script LCC (LCC-install-VS C ode-server-v 1.100.2)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc"></a>

En el siguiente ejemplo se muestra cómo instalar una versión específica del servidor remoto de Visual Studio Code.

```
#!/bin/bash

set -x

remote_server_file=VS Code-server-with-extensions-for-1.100.2.tar.gz

if [ ! -d "${HOME}/.VS Code-server" ]; then
    cd /tmp
    aws s3 cp s3://S3_BUCKET/remote_access/${remote_server_file} .
    tar -xzvf ${remote_server_file}
    mv .VS Code-server "${HOME}"
    rm ${remote_server_file}
else
    echo "${HOME}/.VS Code-server already exists, skipping download and install."
fi
```

# Filtración de los espacios de Studio
<a name="remote-access-local-ide-setup-filter"></a>

Puede utilizar el filtrado para mostrar solo los espacios de Amazon SageMaker AI relevantes en el AWS Toolkit for Visual Studio Code explorador. A continuación, se proporciona información sobre el filtrado manual y el automático. Para obtener más información sobre las definiciones de filtrado manual y automático, consulte [Información general sobre el filtrado](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-overview).

Esta configuración solo se aplica cuando se utiliza el [Método 2: AWS kit de herramientas en el IDE remoto](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code) método para conectarse desde su IDE remoto a los espacios de Amazon SageMaker Studio. Para obtener más información, consulte [Configuración del acceso remoto](remote-access-remote-setup.md).

**Topics**
+ [Filtrado manual](#remote-access-local-ide-setup-filter-manual)
+ [Configuración del filtrado automático cuando se utilizan las credenciales de IAM para iniciar sesión](#remote-access-local-ide-setup-filter-automatic-IAM-credentials)

## Filtrado manual
<a name="remote-access-local-ide-setup-filter-manual"></a>

Para filtrar manualmente los espacios que se muestran, haga lo siguiente:
+ Abre tu IDE remoto y navega hasta el explorador del panel lateral del Toolkit for VS Code
+ Busca la sección de **SageMaker IA**
+ Elige el icono de filtro situado a la derecha del encabezado de la sección de SageMaker IA. A continuación, se abrirá un menú desplegable.
+ En dicho menú, seleccione los perfiles de usuario cuyos espacios desea ver.

## Configuración del filtrado automático cuando se utilizan las credenciales de IAM para iniciar sesión
<a name="remote-access-local-ide-setup-filter-automatic-IAM-credentials"></a>

El filtrado automático depende del método de autenticación durante el inicio de sesión. Consulte [Conexión a AWS desde el kit de herramientas](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html#connect-to-aws) en la Guía del usuario de Toolkit for VS Code para obtener más información.

Si se autentica y conecta con las **credenciales de IAM**, el filtrado automático requiere [Configuración sobre la conexión con credenciales de IAM](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-set-up-iam-credentials). Sin esta configuración, si los usuarios optan por el filtrado de identidad, no se mostrará ningún espacio.

Una vez configurado lo anterior, AWS Toolkit compara los espacios que pertenecen a los perfiles de usuario que comienzan con el nombre de usuario de IAM autenticado o el nombre de sesión del rol asumido.

El filtrado automático es opcional para los usuarios:
+ Abra la configuración de su IDE remoto
+ Navegue hasta la extensión de **AWS Toolkit**.
+ Busque **Habilitar el filtrado de identidad**.
+ Elija habilitar el filtrado automático de los espacios en función de su identidad de AWS .

# AWS Regiones compatibles
<a name="remote-access-supported-regions"></a>

En la siguiente tabla se enumeran las AWS regiones en las que se admiten las conexiones IDE remotas a los espacios de Studio, junto con las IDEs disponibles en cada región.


| AWS Región | VS Code | Kiro | Cursor | 
| --- | --- | --- | --- | 
| us-east-1 | Soportado | Soportado |  compatible | 
| us-east-2 | Soportado | Soportado |  compatible | 
| us-west-1 | Soportado | Soportado |  compatible | 
| us-west-2 | Soportado | Soportado |  compatible | 
| af-south-1 | Soportado | Soportado |  compatible | 
| ap-east-1 | Soportado | Soportado |  compatible | 
| ap-south-1 | Soportado | Soportado |  compatible | 
| ap-northeast-1 | Soportado | Soportado |  compatible | 
| ap-northeast-2 | Soportado | Soportado |  compatible | 
| ap-northeast-3 | Soportado | Soportado |  compatible | 
| ap-southeast-1 | Soportado | Soportado |  compatible | 
| ap-southeast-2 | Soportado | Soportado |  compatible | 
| ap-southeast-3 | Soportado | Soportado |  compatible | 
| ap-southeast-5 | Soportado | Soportado |  compatible | 
| ca-central-1 | Soportado | Soportado |  compatible | 
| eu-central-1 | Soportado | Soportado |  compatible | 
| eu-central-2 | Soportado | Soportado |  compatible | 
| eu-north-1 | Soportado | Soportado |  compatible | 
| eu-south-1 | Soportado | Soportado |  compatible | 
| eu-south-2 | Soportado | Soportado |  compatible | 
| eu-west-1 | Soportado | Soportado |  compatible | 
| eu-west-2 | Soportado | Soportado |  compatible | 
| eu-west-3 | Soportado | Soportado |  compatible | 
| il-central-1 | Soportado | Soportado |  compatible | 
| me-central-1 |  compatible | No admitido | No admitido | 
| me-south-1 |  compatible | No admitido | No admitido | 
| sa-east-1 | Soportado | Soportado |  compatible | 

# Bring your own image (BYOI)
<a name="studio-updated-byoi"></a>

Una imagen es un archivo que identifica los kernels, los paquetes de idioma y otras dependencias necesarias para ejecutar las aplicaciones. Incluye:
+ Lenguajes de programación (como Python o R)
+ Kernels
+ Bibliotecas y paquetes
+ Otro software necesario

Amazon SageMaker Distribution (`sagemaker-distribution`) es un conjunto de imágenes de Docker que incluye marcos y paquetes populares para el aprendizaje automático, la ciencia de datos y la visualización. Para obtener más información, consulte [SageMaker Política de soporte de imágenes de Studio](sagemaker-distribution.md).

Si necesita una funcionalidad diferente, puede incorporar sus propias imágenes personalizadas (BYOI, por sus siglas en inglés). Se recomienda crear una imagen personalizada si:
+ Necesita una versión específica de un lenguaje de programación o una biblioteca.
+ Quiere incluir herramientas o paquetes personalizados.
+ Está trabajando con un software especializado que no está disponible en las imágenes estándar.

## Terminología clave
<a name="studio-updated-byoi-basics"></a>

En la siguiente sección, se definen los términos clave para utilizar tu propia imagen con la SageMaker IA.
+ **Dockerfile:** es un documento basado en texto con instrucciones para crear una imagen de Docker. Este archivo identifica los paquetes de lenguaje y otras dependencias de la imagen de Docker.
+ **Imagen de Docker:** es un conjunto empaquetado de software y dependencias creado a partir de un Dockerfile.
+ **SageMaker Almacén de imágenes de IA:** almacenamiento de tus imágenes personalizadas en SageMaker IA.

**Topics**
+ [Terminología clave](#studio-updated-byoi-basics)
+ [Especificaciones de imágenes personalizadas](studio-updated-byoi-specs.md)
+ [Cómo incorporar su propia imagen](studio-updated-byoi-how-to.md)
+ [Inicio de una imagen personalizada en Studio](studio-updated-byoi-how-to-launch.md)
+ [Visualización de los detalles de la imagen personalizada](studio-updated-byoi-view-images.md)
+ [Acelere la puesta en marcha de contenedores con SOCI](soci-indexing.md)
+ [Desasociación y eliminación de los recursos de imágenes personalizadas](studio-updated-byoi-how-to-detach-from-domain.md)

# Especificaciones de imágenes personalizadas
<a name="studio-updated-byoi-specs"></a>

La imagen que especifique en su Dockerfile debe coincidir con las especificaciones de las siguientes secciones para crear la imagen correctamente.

**Topics**
+ [Ejecutar la imagen](#studio-updated-byoi-specs-run)
+ [Especificaciones para el usuario y el sistema de archivos](#studio-updated-byoi-specs-user-and-filesystem)
+ [Comprobación de estado y URL de las aplicaciones](#studio-updated-byoi-specs-app-healthcheck)
+ [Ejemplos de Dockerfile](#studio-updated-byoi-specs-dockerfile-templates)

## Ejecutar la imagen
<a name="studio-updated-byoi-specs-run"></a>

Puede realizar las siguientes configuraciones actualizando su [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html). Para ver un ejemplo, consulta [Actualización de la configuración de un contenedor](studio-updated-byoi-how-to-container-configuration.md).
+ `Entrypoint`: puede configurar `ContainerEntrypoint` y `ContainerArguments` que se pasan al contenedor en el tiempo de ejecución. Le recomendamos configurar su punto de entrada con `ContainerConfig`. Consulte el enlace anterior para ver un ejemplo.
+ `EnvVariables`: al usar Studio, puede definir variables de `ContainerEnvironment` personalizadas para su contenedor. Si lo desea, puede actualizar sus variables de entorno con `ContainerConfig`. Consulte el enlace anterior para ver un ejemplo.

  SageMaker Las variables de entorno específicas de la IA tienen prioridad y anularán cualquier variable con el mismo nombre. Por ejemplo, la SageMaker IA proporciona automáticamente las variables de entorno con el prefijo `AWS_` y `SAGEMAKER_` para garantizar una integración adecuada con los servicios y la funcionalidad de la IA. AWS SageMaker A continuación se muestran algunos ejemplos de variables de entorno SageMaker específicas de la IA:
  + `AWS_ACCOUNT_ID`
  + `AWS_REGION`
  + `AWS_DEFAULT_REGION`
  + `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`
  + `SAGEMAKER_SPACE_NAME`
  + `SAGEMAKER_APP_TYPE`

## Especificaciones para el usuario y el sistema de archivos
<a name="studio-updated-byoi-specs-user-and-filesystem"></a>
+ `WorkingDirectory`: el volumen de Amazon EBS de su espacio está montado en la ruta `/home/sagemaker-user`. No puede cambiar la ruta de montaje. Utilice la instrucción `WORKDIR` para establecer el directorio de trabajo de la imagen en una carpeta dentro de `/home/sagemaker-user`.
+ `UID`: ID del usuario del contenedor de Docker. UID=1000 es un valor admitido. Puede agregar acceso a sudo a sus usuarios. IDs Se han reasignado para evitar que un proceso que se ejecuta en el contenedor tenga más privilegios de los necesarios.
+ `GID`: ID del grupo del contenedor de Docker. GID=100 es un valor admitido. Puede agregar acceso a sudo a sus usuarios. IDs Se han reasignado para evitar que un proceso que se ejecute en el contenedor tenga más privilegios de los necesarios.
+ Directorios de metadatos: los `/opt/ml` directorios `/opt/.sagemakerinternal` y que utiliza. AWS El archivo de metadatos de `/opt/ml` contiene metadatos sobre recursos como `DomainId`.

  Utilice el siguiente comando para mostrar el contenido del sistema de archivos:

  ```
  cat /opt/ml/metadata/resource-metadata.json
  ```
+ Directorios de registro: `/var/log/studio` están reservados para los directorios de registro de sus aplicaciones y las extensiones asociadas. Le recomendamos que no utilice estas carpetas para crear la imagen.

## Comprobación de estado y URL de las aplicaciones
<a name="studio-updated-byoi-specs-app-healthcheck"></a>

La comprobación de estado y las URL dependen de las aplicaciones. Elija el siguiente enlace asociado a la aplicación para la que está creando la imagen.
+ [Comprobación de estado y URL de las aplicaciones](code-editor-custom-images.md#code-editor-custom-images-app-healthcheck) para Editor de código
+ [Comprobación de estado y URL de las aplicaciones](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-admin-guide-custom-images-app-healthcheck) para JupyterLab

## Ejemplos de Dockerfile
<a name="studio-updated-byoi-specs-dockerfile-templates"></a>

Para ver ejemplos de Dockerfile que cumplan tanto los requisitos de esta página como las necesidades específicas de su aplicación, navegue hasta los Dockerfiles de muestra en la sección de la aplicación correspondiente. Las siguientes opciones incluyen las aplicaciones de Amazon SageMaker Studio. 
+ [Ejemplos de Dockerfile](code-editor-custom-images.md#code-editor-custom-images-dockerfile-templates) para Editor de código
+ [Ejemplos de Dockerfile](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-custom-images-dockerfile-templates)para JupyterLab

**nota**  
Si va a traer su propia imagen a SageMaker Unified Studio, tendrá que seguir las [especificaciones de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) de la Guía del *usuario de Amazon SageMaker Unified Studio*.  
`Dockerfile`Puedes encontrar ejemplos de SageMaker Unified Studio en el [ejemplo de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) de la Guía del *usuario de Amazon SageMaker Unified Studio*.

# Cómo incorporar su propia imagen
<a name="studio-updated-byoi-how-to"></a>

En las siguientes páginas se dan instrucciones sobre cómo incorporar su propia imagen personalizada. Antes de continuar, asegúrese de que se cumplan los siguientes requisitos previos.

## Requisitos previos
<a name="studio-updated-byoi-how-to-prerequisites"></a>

Deberá cumplir los siguientes requisitos previos para incorporar su propia imagen a Amazon SageMaker AI.
+ Configurar la aplicación Docker. Para obtener más información, consulte [Get started](https://docs.docker.com/get-started/) en la *documentación de Docker*.
+ Instale la versión más reciente AWS CLI siguiendo los pasos [que se indican AWS CLI en la](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) *Guía del AWS Command Line Interface usuario de la versión 2*.
+ Permisos para acceder al servicio Amazon Elastic Container Registry (Amazon ECR). Para obtener más información, consulte [Políticas administradas de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr_managed_policies.html) en la *Guía del usuario de Amazon ECR*.
+ Un AWS Identity and Access Management rol al que se adjunta la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política.

**Topics**
+ [Requisitos previos](#studio-updated-byoi-how-to-prerequisites)
+ [Creación de una imagen personalizada y envío a Amazon ECR](studio-updated-byoi-how-to-prepare-image.md)
+ [Asociación de la imagen personalizada a su dominio](studio-updated-byoi-how-to-attach-to-domain.md)
+ [Actualización de la configuración de un contenedor](studio-updated-byoi-how-to-container-configuration.md)

# Creación de una imagen personalizada y envío a Amazon ECR
<a name="studio-updated-byoi-how-to-prepare-image"></a>

En esta página se proporcionan instrucciones sobre cómo crear un Dockerfile local, crear la imagen del contenedor y añadirlo a Amazon Elastic Container Registry (Amazon ECR).

**nota**  
En los siguientes ejemplos, las etiquetas no se especifican y la etiqueta `latest` se aplica de forma predeterminada. Si desea especificar una etiqueta, tendrá que añadir `:tag` al final de los nombres de las imágenes. Para obtener más información, consulte [docker image tag](https://docs.docker.com/reference/cli/docker/image/tag/) en la *documentación de Docker*.

**Topics**
+ [Creación de un Dockerfile local y diseño de la imagen de contenedor](#studio-updated-byoi-how-to-create-local-dockerfile)
+ [Adición de una imagen de Docker en Amazon ECR](#studio-updated-byoi-add-container-image)

## Creación de un Dockerfile local y diseño de la imagen de contenedor
<a name="studio-updated-byoi-how-to-create-local-dockerfile"></a>

Use las siguientes instrucciones para crear un Dockerfile con el software y las dependencias deseadas.

**Cómo crear el archivo Dockerfile**

1. En primer lugar, defina las variables para AWS CLI los comandos siguientes.

   ```
   LOCAL_IMAGE_NAME=local-image-name
   ```

   `local-image-name` es el nombre de la imagen del contenedor en su dispositivo local y que define aquí.

1. Cree un documento basado en texto, denominado `Dockerfile`, que cumpla con las especificaciones de [Especificaciones de imágenes personalizadas](studio-updated-byoi-specs.md).

   Puede consultar ejemplos de `Dockerfile` para aplicaciones compatibles en [Ejemplos de Dockerfile](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates).
**nota**  
Si va a traer su propia imagen a SageMaker Unified Studio, tendrá que seguir las [especificaciones de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) de la Guía del *usuario de Amazon SageMaker Unified Studio*.  
`Dockerfile`Puedes encontrar ejemplos de SageMaker Unified Studio en el [ejemplo de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) de la Guía del *usuario de Amazon SageMaker Unified Studio*.

1. En el directorio que contiene su `Dockerfile`, cree la imagen de Docker con el siguiente comando. El punto (`.`) especifica que `Dockerfile` debe estar en el contexto del comando de compilación.

   ```
   docker build -t ${LOCAL_IMAGE_NAME} .
   ```

   Una vez finalizada la compilación, puede enumerar la información de la imagen del contenedor con el siguiente comando.

   ```
   docker images
   ```

1. (Opcional) Puede usar el siguiente comando para probar la imagen.

   ```
   docker run -it ${LOCAL_IMAGE_NAME}
   ```

   En el resultado, verá que su servidor se ejecuta en una URL, como `http://127.0.0.1:8888/...`. Puede probar la imagen copiando la URL en el navegador. 

   Si esto no funciona, es posible que deba incluir `-p port:port` en el comando “docker run”. Esta opción asigna el puerto expuesto en el contenedor a un puerto del sistema de host. Para obtener más información sobre “docker run”, consulte [Running containers](https://docs.docker.com/engine/containers/run/) en la *documentación de Docker*.

   Después de comprobar que el servidor funciona, puede detenerlo y apagar todos los kernels antes de continuar. Las instrucciones se pueden ver en el resultado.

## Adición de una imagen de Docker en Amazon ECR
<a name="studio-updated-byoi-add-container-image"></a>

Siga estos pasos para agregar una imagen de contenedor en Amazon ECR.
+ Cree un repositorio de Amazon ECR.
+ Inicie sesión en su registro predeterminado.
+ Cargue la imagen en el repositorio de Amazon ECR.

**nota**  
El repositorio de Amazon ECR debe estar en el Región de AWS mismo dominio al que va a adjuntar la imagen.

**Cómo crear y añadir una imagen de contenedor en Amazon ECR**

1. En primer lugar, defina las variables para los AWS CLI comandos siguientes.

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   ECR_REPO_NAME=ecr-repository-name
   ```
   + `account-id` es su ID de cuenta. Puedes encontrarlo en la parte superior derecha de cualquier página de AWS consola. Por ejemplo, la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker).
   + `aws-region`es el Región de AWS de tu dominio de Amazon SageMaker AI. Puedes encontrarlo en la parte superior derecha de cualquier página de AWS consola. 
   + `ecr-repository-name` es el nombre de su repositorio de Amazon Elastic Container Registry, que define aquí. Para ver sus repositorios de Amazon ECR, consulte la [consola de Amazon ECR](https://console.aws.amazon.com/ecr).

1. Regístrese en Amazon ECR e inicie sesión en Docker.

   ```
   aws ecr get-login-password \
       --region ${REGION} | \
       docker login \
       --username AWS \
       --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com
   ```

   Si la autenticación se realiza correctamente, recibirá un mensaje de inicio de sesión correcto.
**importante**  
Si recibe un error, es posible que deba instalar o actualizar a la versión más reciente de la AWS CLI. Para obtener más información, consulte [Installing the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) en la *Guía del usuario de AWS Command Line Interface *.

1. Etiquete la imagen en un formato compatible con Amazon ECR para enviarla a su repositorio.

   ```
   docker tag \
       ${LOCAL_IMAGE_NAME} \
       ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

1. Cree un repositorio de Amazon ECR usando AWS CLI. Para crear el repositorio desde la consola de Amazon ECR, consulte [Creación de un repositorio privado de Amazon ECR para almacenar imágenes](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html).

   ```
   aws ecr create-repository \
       --region ${REGION} \
       --repository-name ${ECR_REPO_NAME}
   ```

1. Envíe la imagen a su repositorio de Amazon ECR. También puede etiquetar la imagen de Docker.

   ```
   docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

Una vez añadida correctamente la imagen al repositorio de Amazon ECR, puede verla en la [consola de Amazon ECR](https://console.aws.amazon.com/ecr).

# Asociación de la imagen personalizada a su dominio
<a name="studio-updated-byoi-how-to-attach-to-domain"></a>

En esta página se proporcionan instrucciones sobre cómo asociar la imagen personalizada a su dominio. Utilice el siguiente procedimiento para utilizar la consola Amazon SageMaker AI para navegar hasta su dominio e iniciar el proceso de **adjuntar imagen**.

En las instrucciones siguientes se presupone que ha subido una imagen a un repositorio de Amazon ECR en el Región de AWS mismo lugar que su dominio. Si aún no lo ha hecho, consulte [Creación de una imagen personalizada y envío a Amazon ECR](studio-updated-byoi-how-to-prepare-image.md).

Cuando elija asociar una imagen, tendrá dos opciones:
+ Adjuntar una **imagen nueva**: esta opción creará una imagen y una versión de la imagen en su almacén de imágenes de SageMaker IA y, a continuación, las adjuntará a su dominio.
**nota**  
Si continúa con el proceso de BYOI, en [Creación de una imagen personalizada y envío a Amazon ECR](studio-updated-byoi-how-to-prepare-image.md), utilice la opción **Nueva imagen**.
+ Adjuntar una **imagen existente**: si ya has creado la imagen personalizada que deseas en el almacén de imágenes de SageMaker IA, usa esta opción. Esta opción asocia una imagen personalizada existente a su dominio. Para ver las imágenes personalizadas en el almacén de imágenes de SageMaker IA, consulte[Visualización de los detalles de la imagen personalizada (consola)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

------
#### [ New image ]

**Cómo asociar una imagen nueva a su dominio**

1. Abre la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. Expanda la sección **Configuraciones de administración**, si aún no lo ha hecho.

1. En **Configuraciones de administración**, elija **Dominios**.

1. En la página **Dominios**, seleccione el dominio al que quiere asociar la imagen.
**nota**  
Si va a adjuntar la imagen a un proyecto de SageMaker Unified Studio y necesita que se le aclare qué dominio usar, consulte [Ver los detalles del dominio de SageMaker IA asociados a su proyecto](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain).

1. Abra la pestaña **Entorno**.

1. En la sección **Imágenes personalizadas para aplicaciones de Studio personales**, seleccione **Asociar imagen**.

1. En **Origen de la imagen**, seleccione **Nueva imagen**.

1. Incluya su URI de imagen de Amazon ECR. El formato es el siguiente.

   ```
   account-id.dkr.ecr.aws-region.amazonaws.com/repository-name:tag
   ```

   1. Para obtener su URI de imagen de Amazon ECR, vaya a la página [Repositorios privados de Amazon ECR](https://console.aws.amazon.com/ecr/private-registry/repositories).

   1. Elija el enlace del nombre de su repositorio.

   1. Seleccione el icono **Copiar URI** que se corresponda con la versión de su imagen (**etiqueta de imagen**).

1. Siga el resto de las instrucciones para asociar su imagen personalizada.
**nota**  
Asegúrese de utilizar el tipo de aplicación de forma coherente con su `Dockerfile`. Para obtener más información, consulte [Ejemplos de Dockerfile](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates).

Cuando la imagen se haya asociado correctamente con su dominio, podrá verla en la pestaña **Entorno**.

------
#### [ Existing image ]

**Cómo asociar una imagen existente con su dominio**

1. Abre la [consola de SageMaker IA.](https://console.aws.amazon.com/sagemaker)

1. Expanda la sección **Configuraciones de administración**, si aún no lo ha hecho.

1. En **Configuraciones de administración**, elija **Dominios**.

1. En la página **Dominios**, seleccione el dominio al que quiere asociar la imagen.
**nota**  
Si va a adjuntar la imagen a un proyecto de SageMaker Unified Studio y necesita que se le aclare qué dominio usar, consulte [Ver los detalles del dominio de SageMaker IA asociados a su proyecto](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain).

1. Abra la pestaña **Entorno**.

1. En la sección **Imágenes personalizadas para aplicaciones de Studio personales**, seleccione **Asociar imagen**.

1. En **Origen de la imagen**, seleccione **Imagen existente**.

1. Elija una imagen y una versión de la imagen existentes en el almacén de imágenes de SageMaker IA.

   Si no ve la versión de la imagen, es posible que tenga que crear una versión de la imagen. Para obtener más información, consulte [Visualización de los detalles de la imagen personalizada (consola)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

1. Siga el resto de las instrucciones para asociar su imagen personalizada.
**nota**  
Asegúrese de utilizar el tipo de aplicación de forma coherente con su `Dockerfile`. Para obtener más información, consulte [Ejemplos de Dockerfile](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates).

Cuando la imagen se haya asociado correctamente con su dominio, podrá verla en la pestaña **Entorno**.

------

Cuando la imagen se haya asociado correctamente a su dominio, los usuarios del dominio podrán elegir la imagen para su aplicación. Para obtener más información, consulte [Inicio de una imagen personalizada en Studio](studio-updated-byoi-how-to-launch.md).

**nota**  
Si ha adjuntado una imagen personalizada a su proyecto de SageMaker Unified Studio, tendrá que iniciar la aplicación desde SageMaker Unified Studio. Para obtener más información, consulte [Lance your custom image](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html) en la *Guía del usuario de Amazon SageMaker Unified Studio*.

# Actualización de la configuración de un contenedor
<a name="studio-updated-byoi-how-to-container-configuration"></a>

Puede incorporar imágenes de Docker personalizadas en sus flujos de trabajo de machine learning. Un aspecto clave de la personalización de estas imágenes es definir las configuraciones del contenedor o de [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html). En la página siguiente se proporciona un ejemplo de cómo definir su `ContainerConfig`. 

Un punto de entrada es el comando o script que se ejecuta cuando se inicia el contenedor. Los puntos de entrada personalizados le permiten configurar su entorno, inicializar los servicios o realizar cualquier configuración necesaria antes de que se inicie la aplicación. 

Este ejemplo proporciona instrucciones sobre cómo configurar un punto de entrada personalizado para su JupyterLab aplicación mediante el. AWS CLI En este ejemplo se supone que ya ha creado una imagen y un dominio personalizados. Para obtener instrucciones, consulte [Asociación de la imagen personalizada a su dominio](studio-updated-byoi-how-to-attach-to-domain.md).

1. En primer lugar, defina las variables para los AWS CLI comandos siguientes.

   ```
   APP_IMAGE_CONFIG_NAME=app-image-config-name
   ENTRYPOINT_FILE=entrypoint-file-name
   ENV_KEY=environment-key
   ENV_VALUE=environment-value
   REGION=aws-region
   DOMAIN_ID=domain-id
   IMAGE_NAME=custom-image-name
   IMAGE_VERSION=custom-image-version
   ```
   + `app-image-config-name` es el nombre de la configuración de la imagen de su aplicación.
   + `entrypoint-file-name` es el nombre del script de punto de entrada de su contenedor. Por ejemplo, `entrypoint.sh`.
   + `environment-key` es el nombre de su variable de entorno.
   + `environment-value` es el valor asignado a su variable de entorno.
   + `aws-region`es el Región de AWS de tu dominio de Amazon SageMaker AI. Puedes encontrarlo en la parte superior derecha de cualquier página de AWS consola. 
   + `domain-id` es su ID de dominio. Para ver sus dominios, consulte [Visualización de dominios](domain-view.md).
   + `custom-image-name` es el nombre de la imagen personalizada. Para ver los detalles de la imagen personalizada, consulte [Visualización de los detalles de la imagen personalizada (consola)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

     Si ha seguido las instrucciones que se indican en [Asociación de la imagen personalizada a su dominio](studio-updated-byoi-how-to-attach-to-domain.md), recomendamos utilizar el mismo nombre de imagen que utilizó en ese proceso.
   + `custom-image-version` es el número de versión de la imagen personalizada. Debe ser un número entero que represente la versión de la imagen. Para ver los detalles de la imagen personalizada, consulte [Visualización de los detalles de la imagen personalizada (consola)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

1. Use la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html) para crear una configuración de imagen.

   ```
   aws sagemaker create-app-image-config \
       --region ${REGION} \
       --app-image-config-name "${APP_IMAGE_CONFIG_NAME}" \
       --jupyter-lab-app-image-config "ContainerConfig = {
           ContainerEntrypoint = "${ENTRYPOINT_FILE}", 
           ContainerEnvironmentVariables = {
               "${ENV_KEY}"="${ENV_VALUE}"
           }
       }"
   ```

1. Use la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html) para actualizar la configuración predeterminada de su dominio. Esta acción asociará la imagen personalizada y la configuración de la imagen de la aplicación. 

   ```
   aws sagemaker update-domain \
       --region ${REGION} \
       --domain-id "${DOMAIN_ID}" \
       --default-user-settings "{
           \"JupyterLabAppSettings\": {
               \"CustomImages\": [
                   {
                       \"ImageName\": \"${IMAGE_NAME}\",
                       \"ImageVersionNumber\": ${IMAGE_VERSION},
                       \"AppImageConfigName\": \"${APP_IMAGE_CONFIG_NAME}\"
                   }
               ]
           }
       }"
   ```

# Inicio de una imagen personalizada en Studio
<a name="studio-updated-byoi-how-to-launch"></a>

Una vez que hayas adjuntado una imagen personalizada a tu dominio de Amazon SageMaker AI, la imagen estará disponible para los usuarios del dominio. Siga las instrucciones que se indican a continuación para iniciar una aplicación con la imagen personalizada.

**nota**  
Si ha adjuntado una imagen personalizada a su proyecto de SageMaker Unified Studio, tendrá que iniciar la aplicación desde SageMaker Unified Studio. Para obtener más información, consulte [Lance your custom image](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html) en la *Guía del usuario de Amazon SageMaker Unified Studio*.

1. Abre Amazon SageMaker Studio. Para obtener instrucciones, consulte [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. Si aún no lo ha hecho, expanda la sección **Aplicaciones**.

1. En la sección **Aplicaciones**, seleccione la aplicación. Si no ve la aplicación disponible, es posible que la aplicación esté oculta para usted. En ese caso, póngase en contacto con su administrador.

1. Para crear un espacio, selecciona **\$1 Crear *application* espacio** y sigue las instrucciones para crear el espacio.

   Para elegir un espacio existente, elija el nombre del enlace del espacio que desee abrir.

   

1. En **Imagen**, elija la imagen que quiere usar.

   Si el menú desplegable **Imagen** no está disponible, es posible que tenga que detener su espacio. Elija **Detener espacio** para hacerlo.

1. Confirme la configuración del espacio y elija **Ejecutar espacio**.

# Visualización de los detalles de la imagen personalizada
<a name="studio-updated-byoi-view-images"></a>

En la página siguiente, se proporcionan instrucciones sobre cómo ver los detalles de las imágenes personalizadas en el almacén de imágenes de SageMaker IA.

## Visualización de los detalles de la imagen personalizada (consola)
<a name="studio-updated-byoi-view-images-console"></a>

A continuación, se proporcionan instrucciones sobre cómo ver las imágenes personalizadas mediante la consola de SageMaker IA. En esta sección, puede ver y editar los detalles de la imagen.

**Visualización de las imágenes personalizadas (consola)**

1. Abre la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. Amplíe la sección **Configuraciones de administración**.

1. En **Configuraciones de administrador**, elija **Imágenes**.

1. En la lista de **imágenes personalizadas**, seleccione el hipervínculo del nombre de la imagen.

## Visualización de los detalles de la imagen personalizada (AWS CLI)
<a name="studio-updated-byoi-view-images-cli"></a>

En la siguiente sección se muestra un ejemplo de cómo visualizar las imágenes personalizadas desde la AWS CLI.

```
aws sagemaker list-images \
       --region aws-region
```

# Acelere la puesta en marcha de contenedores con SOCI
<a name="soci-indexing"></a>

[La indexación SOCI (Seekable Open Container Initiative) permite la carga diferida de imágenes de contenedores personalizadas en [Amazon SageMaker Studio](studio-updated.md) Amazon Unified Studio. SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html) El SOCI reduce considerablemente los tiempos de inicio de sus contenedores personalizados, aproximadamente entre un 30 y un 70%. [Bring your own image (BYOI)](studio-updated-byoi.md) La mejora de la latencia varía según el tamaño de la imagen, la disponibilidad de la instancia de alojamiento y otras dependencias de la aplicación. SOCI crea un índice que permite a los contenedores lanzarse solo con los componentes necesarios y obtener archivos adicionales a pedido según sea necesario.

El SOCI aborda los tiempos lentos de inicio de los contenedores, que interrumpen los flujos de trabajo de desarrollo del aprendizaje automático (ML) iterativo, para obtener imágenes personalizadas. A medida que las cargas de trabajo de aprendizaje automático se vuelven más complejas, las imágenes de los contenedores se hacen más grandes, lo que provoca retrasos en el inicio que dificultan los ciclos de desarrollo.

**Topics**
+ [Ventajas principales](#soci-indexing-key-benefits)
+ [¿Cómo funciona la indexación SOCI](#soci-indexing-how-works)
+ [Componentes de arquitectura](#soci-indexing-architecture-components)
+ [Herramientas admitidas](#soci-indexing-supported-tools)
+ [Permisos para la indexación de SOCI](soci-indexing-setup.md)
+ [Ejemplo de creación de índices SOCI con nerdctl y SOCI CLI](soci-indexing-example-create-indexes.md)
+ [Ejemplo de integración de imágenes indexadas en redes SOCIALES con Studio](soci-indexing-example-integrate-studio.md)

## Ventajas principales
<a name="soci-indexing-key-benefits"></a>
+ **Ciclos de iteración más rápidos**: reduzca el inicio de los contenedores, según los tipos de imagen e instancia
+ **Optimización universal**: amplíe las ventajas de rendimiento a todos los contenedores BYOI personalizados en Studio

## ¿Cómo funciona la indexación SOCI
<a name="soci-indexing-how-works"></a>

SOCI crea un índice de metadatos especializado que mapea la estructura de archivos interna de la imagen del contenedor. Este índice permite acceder a archivos individuales sin descargar la imagen completa. El índice SOCI se almacena como un artefacto compatible con la OCI (Open Container Initiative) en [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) y se vincula a la imagen del contenedor original, lo que preserva los resúmenes de imágenes y la validez de la firma.

Al lanzar un contenedor en Studio, el sistema utiliza el índice SOCI para identificar y descargar solo los archivos esenciales necesarios para el inicio. Los componentes adicionales se obtienen en paralelo a medida que la aplicación los requiera.

## Componentes de arquitectura
<a name="soci-indexing-architecture-components"></a>
+ **Imagen original del contenedor**: su contenedor base almacenado en Amazon ECR
+ **Artefacto del índice SOCI**: metadatos que mapean la estructura de archivos de la imagen
+ **Manifiesto del índice de imágenes OCI**: enlaza la imagen original con el índice SOCI
+ Tiempo de **ejecución del contenedor Finch**: permite la integración de carga diferida con Studio

## Herramientas admitidas
<a name="soci-indexing-supported-tools"></a>


| Herramienta | Integración | 
| --- | --- | 
| nerdctl | Requiere una configuración en containerd | 
| CLI de Finch | Soporte nativo de SOCI | 
| Docker \$1 SOCI CLI | Se requieren herramientas adicionales | 

**Topics**
+ [Ventajas principales](#soci-indexing-key-benefits)
+ [¿Cómo funciona la indexación SOCI](#soci-indexing-how-works)
+ [Componentes de arquitectura](#soci-indexing-architecture-components)
+ [Herramientas admitidas](#soci-indexing-supported-tools)
+ [Permisos para la indexación de SOCI](soci-indexing-setup.md)
+ [Ejemplo de creación de índices SOCI con nerdctl y SOCI CLI](soci-indexing-example-create-indexes.md)
+ [Ejemplo de integración de imágenes indexadas en redes SOCIALES con Studio](soci-indexing-example-integrate-studio.md)

# Permisos para la indexación de SOCI
<a name="soci-indexing-setup"></a>

[Cree índices SOCI para las imágenes de sus contenedores y almacénelos en Amazon ECR antes de utilizar la indexación SOCI con [Amazon SageMaker Studio](studio-updated.md) Amazon Unified Studio. SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html)

**Topics**
+ [Requisitos previos](#soci-indexing-setup-prerequisites)
+ [Permisos de IAM necesarios](#soci-indexing-setup-iam-permissions)

## Requisitos previos
<a name="soci-indexing-setup-prerequisites"></a>
+ Cuenta de AWS con un rol [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)(IAM) con permisos de administración
  + [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
  + [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html)
+ [Repositorios privados de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) para almacenar las imágenes de sus contenedores
+ [AWS CLI La versión 2.0\$1 está configurada](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) con las credenciales adecuadas
+ Las siguientes herramientas de contenedor:
  + Necesario: [soci-snapshotter](https://github.com/awslabs/soci-snapshotter)
  + Opciones:
    + [nerdctl](https://github.com/containerd/nerdctl)
    + [pinzón](https://github.com/runfinch/finch)

## Permisos de IAM necesarios
<a name="soci-indexing-setup-iam-permissions"></a>

Su función de IAM necesita permisos para:
+ Cree y gestione recursos de SageMaker IA (dominios, imágenes, configuraciones de aplicaciones).
  + Puede utilizar la política [SageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) AWS gestionada. Para obtener más información sobre los permisos, consulte[AWS política gestionada: AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess).
+ [Permisos de IAM para enviar una imagen a un repositorio privado de Amazon ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push-iam.html)

# Ejemplo de creación de índices SOCI con nerdctl y SOCI CLI
<a name="soci-indexing-example-create-indexes"></a>

La siguiente página proporciona un ejemplo sobre cómo crear índices SOCI con nerdctl y SOCI CLI.

**Ejemplo de creación de índices SOCI**

1. Primero defina las variables para los AWS CLI comandos siguientes. El siguiente es un ejemplo de cómo configurar las variables.

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   REPOSITORY_NAME="repository-name"
   ORIGINAL_IMAGE_TAG="original-image-tag"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   Definiciones de variables:
   + `ACCOUNT_ID`es tu Cuenta de AWS ID
   + `REGION`es el Región de AWS de su registro privado de Amazon ECR
   + `REPOSITORY_NAME`es el nombre de su registro privado de Amazon ECR
   + `ORIGINAL_IMAGE_TAG`es la etiqueta de tu imagen original
   + `SOCI_IMAGE_TAG`es la etiqueta de tu imagen indexada en redes sociales

1. Instale las herramientas necesarias:

   ```
   # Install SOCI CLI, containerd, and nerdctl
   sudo yum install soci-snapshotter
   sudo yum install containerd jq  
   sudo systemctl start soci-snapshotter
   sudo systemctl restart containerd
   sudo yum install nerdctl
   ```

1. Configure sus variables de registro:

   ```
   REGISTRY_USER=AWS
   REGISTRY="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com"
   ```

1. Exporte su región y autentifíquese en Amazon ECR:

   ```
   export AWS_REGION=$REGION
   REGISTRY_PASSWORD=$(/usr/local/bin/aws ecr get-login-password --region $AWS_REGION)
   echo $REGISTRY_PASSWORD | sudo nerdctl login -u $REGISTRY_USER --password-stdin $REGISTRY
   ```

1. Extraiga la imagen original del contenedor:

   ```
   sudo nerdctl pull $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG
   ```

1. Cree el índice SOCI:

   ```
   sudo nerdctl image convert --soci $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

1. Empuje la imagen indexada por el SOCII:

   ```
   sudo nerdctl push --platform linux/amd64 $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

Este proceso crea dos artefactos para la imagen del contenedor original en su repositorio de ECR:
+ Índice SOCI: los metadatos permiten la carga diferida
+ Manifiesto del índice de imágenes: manifiesto compatible con OCI

# Ejemplo de integración de imágenes indexadas en redes SOCIALES con Studio
<a name="soci-indexing-example-integrate-studio"></a>

Debe hacer referencia a la etiqueta de imagen indexada por la red SOCIAL para utilizar imágenes indexadas por la red SOCIAL en Studio, en lugar de a la etiqueta de imagen contenedora original. Usa la etiqueta que especificaste durante el proceso de conversión a SOCI (por ejemplo, en). `SOCI_IMAGE_TAG` [Ejemplo de creación de índices SOCI con nerdctl y SOCI CLI](soci-indexing-example-create-indexes.md)

**Ejemplo de integración de imágenes indexadas por SOCII**

1. Primero configura tus variables para los AWS CLI comandos siguientes. El siguiente es un ejemplo de cómo configurar las variables.

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   IMAGE_NAME="sagemaker-image-name"
   IMAGE_CONFIG_NAME="sagemaker-image-config-name"
   ROLE_ARN="your-role-arn"
   DOMAIN_ID="domain-id"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   Definiciones de variables:
   + `ACCOUNT_ID`es tu Cuenta de AWS ID
   + `REGION`es el Región de AWS de su registro privado de Amazon ECR
   + `IMAGE_NAME`es el nombre de tu imagen SageMaker 
   + `IMAGE_CONFIG_NAME`es el nombre de la configuración de SageMaker la imagen
   + `ROLE_ARN`es el ARN de su función de ejecución con los permisos que figuran en Permisos de IAM [obligatorios](soci-indexing-setup.md#soci-indexing-setup-iam-permissions)
   + `DOMAIN_ID`[es el ID de dominio](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html)
**nota**  
Si va a adjuntar la imagen a un proyecto de SageMaker Unified Studio y necesita que se le aclare qué dominio usar, consulte [Ver los detalles del dominio de SageMaker IA asociados a su proyecto](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain).
   + `SOCI_IMAGE_TAG`es la etiqueta de tu imagen indexada en redes SOCIALES

1. Exporta tu región:

   ```
   export AWS_REGION=$REGION
   ```

1. Crea una SageMaker imagen:

   ```
   aws sagemaker create-image \
       --image-name "$IMAGE_NAME" \
       --role-arn "$ROLE_ARN"
   ```

1. Cree una versión SageMaker de imagen utilizando su URI de índice SOCI:

   ```
   IMAGE_INDEX_URI="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$IMAGE_NAME:$SOCI_IMAGE_TAG"
   
   aws sagemaker create-image-version \
       --image-name "$IMAGE_NAME" \
       --base-image "$IMAGE_INDEX_URI"
   ```

1. Crea una configuración de imagen de aplicación y actualiza tu dominio de Amazon SageMaker AI para incluir la imagen personalizada de tu aplicación. Puede hacerlo para el editor de código, basado en Code-OSS, Visual Studio Code: Open Source (editor de código) y JupyterLab aplicaciones. Seleccione la opción de aplicación que aparece a continuación para ver los pasos.

------
#### [ Code Editor ]

   Cree una configuración de imagen de aplicación para Code Editor:

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --code-editor-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   Actualiza tu dominio de Amazon SageMaker AI para incluir la imagen personalizada para Code Editor:

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "CodeEditorAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------
#### [ JupyterLab ]

   Cree una configuración de imagen de aplicación para JupyterLab:

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --jupyter-lab-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   Actualiza tu dominio de Amazon SageMaker AI para incluir la imagen personalizada de JupyterLab:

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "JupyterLabAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------

1. Después de actualizar tu dominio para incluir tu imagen personalizada, puedes crear una aplicación en Studio con tu imagen personalizada. Cuando te [Inicio de una imagen personalizada en Studio](studio-updated-byoi-how-to-launch.md) asegures de usar tu imagen personalizada.

# Desasociación y eliminación de los recursos de imágenes personalizadas
<a name="studio-updated-byoi-how-to-detach-from-domain"></a>

En la siguiente página se proporcionan instrucciones sobre cómo separar las imágenes personalizadas y limpiar los recursos relacionados mediante la consola Amazon SageMaker AI o el AWS Command Line Interface (AWS CLI). 

**importante**  
Primero debes separar la imagen personalizada de tu dominio antes de eliminarla del almacén de imágenes de SageMaker IA. De lo contrario, es posible que se produzcan errores al consultar la información de su dominio o al asociar nuevas imágenes personalizadas a su dominio.   
Si se produce un error al cargar una imagen personalizada, consulte [Error al cargar la imagen personalizada](studio-updated-troubleshooting.md#studio-updated-troubleshooting-custom-image). 

## Desasociación y eliminación de imágenes personalizadas (consola)
<a name="studio-updated-byoi-how-to-detach-from-domain-console"></a>

A continuación, se proporcionan instrucciones sobre cómo separar tus imágenes personalizadas de la SageMaker IA y limpiar tus recursos de imágenes personalizadas mediante la consola.

**Desasociación de la imagen personalizada de su dominio**

1. Abre la [consola de SageMaker IA.](https://console.aws.amazon.com/sagemaker)

1. Amplíe la sección **Configuraciones de administración**.

1. En **Configuraciones de administración**, elija **Dominios**.

1. En la lista de **dominios**, seleccione un dominio.

1. Abra la pestaña **Entorno**.

1. En el caso de **Imágenes personalizadas para aplicaciones de Studio personales**, seleccione las casillas de verificación de las imágenes que quiere desasociar.

1. Elija **Desasociar**.

1. Siga las instrucciones para desasociar.

**Eliminación de la imagen personalizada**

1. Abre la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. Expanda la sección **Configuraciones de administración**, si aún no lo ha hecho.

1. En **Configuraciones de administrador**, elija **Imágenes**.

1. En la lista de **imágenes**, seleccione la imagen que quiera eliminar.

1. Elija **Eliminar**.

1. Sigue las instrucciones para eliminar tu imagen y todas sus versiones de la SageMaker IA.

**Eliminación de las imágenes personalizadas y el repositorio de Amazon ECR**
**importante**  
De este modo, también se eliminarán todas las imágenes y artefactos del contenedor que se encuentren en ese repositorio.

1. Abra la [consola de Amazon ECR](https://console.aws.amazon.com/ecr).

1. Expanda el panel de navegación de la izquierda, si todavía no lo ha hecho.

1. En **Registro privado**, seleccione **Repositorios**.

1. Seleccione los repositorios que desea eliminar.

1. Elija **Eliminar**.

1. Siga las instrucciones para eliminar.

## Desasociación y eliminación de imágenes personalizadas (AWS CLI)
<a name="studio-updated-byoi-how-to-detach-from-domain-cli"></a>

En la siguiente sección se muestra un ejemplo de cómo desasociar las imágenes personalizadas desde la AWS CLI.

1. Primero configura tus variables para los AWS CLI comandos siguientes.

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   APP_IMAGE_CONFIG=app-image-config
   SAGEMAKER_IMAGE_NAME=custom-image-name
   ```
   + `aws-region`es el Región de AWS de tu dominio de Amazon SageMaker AI. Puedes encontrarlo en la parte superior derecha de cualquier página de AWS consola. 
   + `app-image-config` es el nombre de la configuración de la imagen de su aplicación. Utilice el siguiente AWS CLI comando para enumerar las configuraciones de imagen de la aplicación en su Región de AWS.

     ```
     aws sagemaker list-app-image-configs \
            --region ${REGION}
     ```
   + `custom-image-name` es el nombre de la imagen personalizada. Utilice el siguiente AWS CLI comando para enumerar las imágenes de su Región de AWS.

     ```
     aws sagemaker list-images \
            --region ${REGION}
     ```

1. Para desasociar la imagen y las versiones de la imagen de su dominio siguiendo estas instrucciones, tendrás que crear o actualizar un archivo json de configuración del dominio.
**nota**  
Si ha seguido las instrucciones que se indican en [Asociación de la imagen personalizada a su dominio](studio-updated-byoi-how-to-attach-to-domain.md), es posible que haya actualizado su dominio con el archivo denominado `update-domain.json`.   
Si no tiene ese archivo, puede crear un nuevo archivo json en su lugar.

   Cree un archivo denominado `update-domain.json` que utilizará para actualizar su dominio.

1. Para eliminar las imágenes personalizadas, tendrá que dejar `CustomImages` en blanco, como, por ejemplo, `"CustomImages": []`. Elija una de las siguientes opciones para ver ejemplos de archivos de configuración para Code Editor o JupyterLab.

------
#### [ Code Editor: update domain configuration file example ]

   Ejemplo de archivo de configuración para Editor de código donde se utiliza [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CodeEditorAppSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CodeEditorAppSettings.html).

   ```
   {
       "DomainId": "domain-id",
       "DefaultUserSettings": {
           "CodeEditorAppSettings": {
               "CustomImages": [
               ]
           }
       }
   }
   ```

------
#### [ JupyterLab: update domain configuration file example ]

   Un ejemplo de archivo de configuración para JupyterLab usar [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_JupyterLabAppSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_JupyterLabAppSettings.html).

   ```
   {
       "DomainId": "domain-id",
       "DefaultUserSettings": {
           "JupyterLabAppSettings": {
               "CustomImages": [
               ]
           }
       }
   }
   ```

------

   `domain-id` es el ID de dominio al que está asociada su imagen. Utilice el siguiente comando para enumerar sus dominios.

   ```
   aws sagemaker list-domains \
         --region ${REGION}
   ```

1. Guarde el archivo.

1. Llame al [dominio de actualización](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) AWS CLI mediante el archivo de configuración del dominio de actualización,. `update-domain.json`
**nota**  
Para poder actualizar las imágenes personalizadas, primero debe eliminar todas las **aplicaciones** de su dominio. **No** necesita eliminar los perfiles de usuario ni los espacios compartidos. Para obtener instrucciones sobre cómo eliminar aplicaciones, elija una de las siguientes opciones.  
Si desea utilizar la consola de SageMaker IA, consulte. [Cierre los recursos de SageMaker IA de su dominio](sm-console-domain-resources-shut-down.md)
Si desea utilizar la AWS CLI, siga los pasos 1 a 3 de[Eliminar un dominio de Amazon SageMaker AI (AWS CLI)](gs-studio-delete-domain.md#gs-studio-delete-domain-cli).

   ```
   aws sagemaker update-domain \
       --cli-input-json file://update-domain.json \
       --region ${REGION}
   ```

1. Elimine la configuración de imágenes de la aplicación.

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name ${APP_IMAGE_CONFIG}
   ```

1. Elimine la imagen personalizada. Esto también elimina todas las versiones de la imagen. Esto no elimina la imagen del contenedor de Amazon ECR ni las versiones de la imagen. Para ello, siga los pasos opcionales que se indican a continuación.

   ```
   aws sagemaker delete-image \
       --image-name ${SAGEMAKER_IMAGE_NAME}
   ```

1. (Opcional) Elimine los recursos de Amazon ECR. La siguiente lista proporciona AWS CLI comandos para obtener la información de recursos de Amazon ECR para los pasos que se indican a continuación.

   1. Configure sus variables para los AWS CLI comandos siguientes.

      ```
      ECR_REPO_NAME=ecr-repository-name
      ```

      `ecr-repository-name` es el nombre de su repositorio de Amazon Elastic Container Registry. 

      Para obtener una lista de los detalles de sus repositorios, utilice el siguiente comando.

      ```
      aws ecr describe-repositories \
              --region ${REGION}
      ```

   1. Elimine su repositorio de Amazon ECR. 
**importante**  
De este modo, también se eliminarán todas las imágenes y artefactos del contenedor que se encuentren en ese repositorio.

      ```
      aws ecr delete-repository \
            --repository-name ${ECR_REPO_NAME} \
            --force \
            --region ${REGION}
      ```

# Configuraciones del ciclo de vida en Amazon SageMaker Studio
<a name="studio-lifecycle-configurations"></a>

Las configuraciones del ciclo de vida (LCCs) son scripts que los administradores y los usuarios pueden usar para automatizar la personalización de las siguientes aplicaciones en su entorno de Amazon SageMaker Studio:
+ Amazon SageMaker AI JupyterLab
+ Editor de código, basado en Code-OSS, Visual Studio Code: Open Source
+ Studio Classic
+ Instancia de bloc de notas

La personalización de la aplicación incluye:
+ Instalación de paquetes personalizados
+ Configuración de extensiones
+ Precarga de conjuntos de datos
+ Configuración de repositorios de código fuente

Los usuarios crean y asocian configuraciones de ciclo de vida integradas a sus propios perfiles de usuario. Los administradores crean y asocian configuraciones de ciclo de vida predeterminadas o integradas en dominios, espacios o perfiles de usuario.

**importante**  
Amazon SageMaker Studio ejecuta primero la configuración del ciclo de vida integrada y, a continuación, ejecuta la LCC predeterminada. Amazon SageMaker AI no resolverá los conflictos de paquetes entre el usuario y el administrador LCCs. Por ejemplo, si la configuración de ciclo de vida integrada instala `python3.11` y la predeterminada instala `python3.12`, Studio instala `python3.12`. 

# Creación y asociación de configuraciones de ciclo de vida
<a name="studio-lifecycle-configurations-create"></a>

Puede crear y adjuntar configuraciones de ciclo de vida utilizando el Consola de administración de AWS o el AWS Command Line Interface.

**Topics**
+ [Creación y asociación de configuraciones de ciclo de vida (AWS CLI)](#studio-lifecycle-configurations-create-cli)
+ [Creación y asociación de configuraciones de ciclo de vida (consola)](#studio-lifecycle-configurations-create-console)

## Creación y asociación de configuraciones de ciclo de vida (AWS CLI)
<a name="studio-lifecycle-configurations-create-cli"></a>

**importante**  
Antes de comenzar, complete los siguientes requisitos previos:   
 AWS CLI Actualícela siguiendo los pasos que se indican en [Instalación de la AWS CLI versión actual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
Desde su máquina local, ejecute `aws configure` y proporcione sus AWS credenciales. Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
Incorporado al dominio Amazon SageMaker AI. Para obtener información conceptual, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md). Para obtener una guía de inicio rápido, consulte [Utilice la configuración rápida para Amazon SageMaker AI](onboard-quick-start.md).

El siguiente procedimiento muestra cómo crear un script de configuración del ciclo de vida que se imprima `Hello World` en el editor de código o JupyterLab.

**nota**  
Cada script puede tener hasta **16 384 caracteres**.

1. En su equipo local, cree un archivo con el nombre `my-script.sh` que contenga lo siguiente:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Utilice lo siguiente para convertir su archivo `my-script.sh` al formato base64. Este requisito evita errores debidos a la codificación del espaciado y los saltos de línea.

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Cree una configuración del ciclo de vida para usar en Studio. Con el siguiente comando se crea una configuración de ciclo de vida que se ejecuta al inicializar una aplicación de `JupyterLab` asociada:

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type application-type
   ```

   En `studio-lifecycle-config-app-type`, especifique *CodeEditor* o *JupyterLab*.
**nota**  
El ARN de la configuración de ciclo de vida recién creada que se devuelve. Este ARN es necesario para asociar la configuración del ciclo de vida a la aplicación.

Para garantizar que los entornos se personalicen correctamente, los usuarios y los administradores utilizan diferentes comandos para asociar las configuraciones de ciclo de vida.

### Asociación de configuraciones de ciclo de vida predeterminadas (administrador)
<a name="studio-lifecycle-configurations-attach-cli-administrator"></a>

Para asociar la configuración de ciclo de vida, debe actualizar la `UserSettings` de su dominio o perfil de usuario. Todos los usuarios heredan los scripts de configuración del ciclo de vida que estén asociados a nivel de dominio. Sin embargo, los scripts que están asociados en el nivel de perfil de usuario están dirigidos a un usuario específico. 

Para crear un perfil de usuario, un dominio o un espacio con la configuración de ciclo de vida asociada, utilice los siguientes comandos:
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

El siguiente comando crea un perfil de usuario con una configuración del ciclo de vida de una JupyterLab aplicación. Agregue el ARN de configuración de ciclo de vida del paso anterior a la `JupyterLabAppSettings` del usuario. Puede agregar varias configuraciones de ciclo de vida al mismo tiempo pasando una lista de ellas. Cuando un usuario inicia una JupyterLab aplicación con AWS CLI, puede especificar una configuración de ciclo de vida en lugar de utilizar la configuración predeterminada. La configuración del ciclo de vida que pase el usuario debe pertenecer a la lista de configuraciones del ciclo de vida incluida en la `JupyterLabAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

Con el siguiente comando, se crea un perfil de usuario con una configuración de ciclo de vida de una aplicación del editor de código. Agregue el ARN de configuración de ciclo de vida del paso anterior a la `CodeEditorAppSettings` del usuario. Puede agregar varias configuraciones de ciclo de vida al mismo tiempo pasando una lista de ellas. Cuando un usuario inicializa una aplicación del editor de código con la AWS CLI, puede especificar una configuración de ciclo de vida en lugar de usar la predeterminada. La configuración del ciclo de vida que pase el usuario debe pertenecer a la lista de configuraciones del ciclo de vida incluida en la `CodeEditorAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

### Asociación de configuraciones de ciclo de vida integradas (usuario)
<a name="studio-lifecycle-configurations-attach-cli-user"></a>

Para asociar la configuración de ciclo de vida, debe actualizar la `UserSettings` de su perfil de usuario.

El siguiente comando crea un perfil de usuario con una configuración del ciclo de vida de una JupyterLab aplicación. Agregue el ARN de configuración de ciclo de vida del paso anterior a la `JupyterLabAppSettings` del perfil de usuario.

```
# Update a UserProfile
aws sagemaker update-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "BuiltInLifecycleConfigArn":"lifecycle-configuration-arn"
  }
}'
```

Con el siguiente comando, se crea un perfil de usuario con una configuración de ciclo de vida de una aplicación del editor de código. Agregue el ARN de configuración de ciclo de vida del paso anterior a la `CodeEditorAppSettings` del perfil de usuario. La configuración del ciclo de vida que pase el usuario debe pertenecer a la lista de configuraciones del ciclo de vida incluida en la `CodeEditorAppSettings`.

```
# Update a UserProfile
aws sagemaker update-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"CodeEditorAppSettings": {
  "BuiltInLifecycleConfigArn":"lifecycle-configuration-arn"
  }
}'
```

## Creación y asociación de configuraciones de ciclo de vida (consola)
<a name="studio-lifecycle-configurations-create-console"></a>

Para crear y adjuntar configuraciones de ciclo de vida en Consola de administración de AWS, navegue hasta la [consola de Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker) y elija **Configuraciones de ciclo** de vida en el menú de navegación de la izquierda. La consola le guiará a lo largo del proceso de creación de la configuración de ciclo de vida.

# Depuración de configuraciones del ciclo de vida
<a name="studio-lifecycle-configurations-debug"></a>

En los siguientes temas se muestra cómo obtener información y depurar las configuraciones del ciclo de vida.

**Topics**
+ [Verifique el proceso de configuración del ciclo de vida desde los registros CloudWatch](#studio-lifecycle-configurations-debug-logs)
+ [Tiempo de espera de configuración del ciclo de vida](studio-lifecycle-configurations-debug-timeout.md)

## Verifique el proceso de configuración del ciclo de vida desde los registros CloudWatch
<a name="studio-lifecycle-configurations-debug-logs"></a>

Las configuraciones del ciclo de vida solo registran `STDOUT` y `STDERR`.

`STDOUT` es el resultado predeterminado para los scripts bash. Se puede escribir en `STDERR` añadiendo `>&2` al final de un comando bash. Por ejemplo, `echo 'hello'>&2`. 

Los registros de las configuraciones de tu ciclo de vida se publican en Amazon CloudWatch. Cuenta de AWS Estos registros se encuentran en el flujo de `/aws/sagemaker/studio` registros de la CloudWatch consola.

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Seleccione **Registros** en el panel de navegación izquierdo. En el menú desplegable, seleccione **Grupos de registros**.

1. En la página **Grupos de registros**, busque `aws/sagemaker/studio`. 

1. Seleccione el grupo de registro.

1. En la página de **Detalles del grupo de registro**, seleccione la pestaña **Flujos de registro**.

1. Para encontrar los registros de un espacio y aplicación específicos, busque en los flujos de registro utilizando el siguiente formato:

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   Por ejemplo, para buscar los registros de configuración del ciclo de vida del ID de dominio `d-m85lcu8vbqmz`, nombre del espacio `i-sonic-js` y tipo de aplicación `JupyterLab`, utilice la siguiente cadena de búsqueda:

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

1. Para ver los registros de ejecución de scripts, seleccione el flujo de registro con `LifecycleConfigOnStart` anexado.

# Tiempo de espera de configuración del ciclo de vida
<a name="studio-lifecycle-configurations-debug-timeout"></a>

Existe una limitación de tiempo de espera de configuración del ciclo de vida de 5 minutos. Si un script de configuración de ciclo de vida tarda más de 5 minutos en ejecutarse, se obtiene un error.

Para resolver este error, asegúrese de que el script de configuración de ciclo de vida se complete en menos de 5 minutos. 

Para ayudar a reducir el tiempo de ejecución de los scripts, pruebe lo siguiente:
+ Reduzca los pasos innecesarios. Por ejemplo, limite los entornos de conda donde se instalarán paquetes de gran tamaño.
+ Ejecute tareas en procesos paralelos.
+ Utilice el comando nohup en el script para asegurarse de que se omitan las señales de bloqueo para que el script se ejecute sin detenerse.

# Espacios de Amazon SageMaker Studio
<a name="studio-updated-spaces"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

Los espacios se utilizan para gestionar las necesidades de almacenamiento y recursos de algunas aplicaciones de Amazon SageMaker Studio. Cada espacio consta de varios recursos y puede ser privado o compartido. Cada espacio tiene una relación 1:1 con una instancia de una aplicación. Cada aplicación compatible que se crea tiene su propio espacio. Las siguientes aplicaciones de Studio se ejecutan en espacios: 
+  [Editor de código en Amazon SageMaker Studio](code-editor.md)
+  [SageMaker JupyterLab](studio-updated-jl.md) 
+  [Amazon SageMaker Studio Clásico](studio.md) 

Un espacio consta de los siguientes recursos: 
+ Un volumen de almacenamiento. 
  + En Studio Classic, el espacio se conecta al volumen compartido de Amazon Elastic File System (Amazon EFS) del dominio. 
  + Para otras aplicaciones, se asocia al espacio un volumen distinto de Amazon Elastic Block Store (Amazon EBS). A todas las solicitudes se les asigna su propio volumen de Amazon EBS. Las aplicaciones no tienen acceso al volumen de Amazon EBS de otras aplicaciones. Para obtener más información sobre los volúmenes de Amazon EBS, consulte [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/AmazonEBS.html). 
+ El tipo de aplicación del espacio. 
+ La imagen en la que se basa la aplicación.

Los espacios pueden ser privados o compartidos:
+  **Privado**: el ámbito de los espacios privados es un único usuario de un dominio. Los espacios privados no se pueden compartir con otros usuarios. Todas las aplicaciones que admiten espacios también admiten espacios privados. 
+  **Compartido**: todos los usuarios del dominio pueden acceder a los espacios compartidos. Para obtener más información sobre los espacios compartidos, consulte [Colaboración con espacios compartidos](domain-space.md). 

Los espacios se pueden crear en dominios que utilizan la autenticación AWS IAM Identity Center o la autenticación AWS Identity and Access Management (IAM). En las siguientes secciones se proporciona información general sobre cómo obtener acceso a los espacios. Para obtener información específica sobre cómo crear un espacio y obtener acceso a él, consulte la documentación del tipo de aplicación correspondiente al espacio que va a crear. 

Para obtener información sobre cómo ver, detener o eliminar sus aplicaciones, instancias o espacios, consulte [Detención y eliminación de aplicaciones y espacios en ejecución de Studio](studio-updated-running-stop.md).

**Topics**
+ [Inicialización de espacios](studio-updated-spaces-access.md)
+ [Colaboración con espacios compartidos](domain-space.md)

# Inicialización de espacios
<a name="studio-updated-spaces-access"></a>

En las siguientes secciones se proporciona información sobre cómo obtener acceso a los espacios de un dominio. Se puede obtener acceso a los espacios de una de las siguientes formas:
+ desde la consola Amazon SageMaker AI
+ desde Studio
+ utilizando la AWS CLI

## Acceso a los espacios desde la consola Amazon SageMaker AI
<a name="studio-updated-spaces-access-console"></a>

**Para acceder a los espacios desde la consola Amazon SageMaker AI**

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

1. En **Configuraciones de administración**, elija **Dominios**.

1. En la lista de dominios, seleccione el dominio que contenga los espacios.

1. En la página **Detalles del dominio**, elija la pestaña **Administración del espacio**. Para obtener más información acerca de la administración de espacios, consulte [Colaboración con espacios compartidos](domain-space.md).

1. En la lista de espacios de ese dominio, seleccione el espacio que desee inicializar.

1. Seleccione **Lanzar Studio** para el espacio que desea inicializar.

## Acceso a espacios desde Studio
<a name="studio-updated-spaces-access-updated"></a>

Siga estos pasos para acceder a los espacios desde Studio para un tipo de aplicación específico. 

**Acceso a espacios desde Studio**

1. Abra Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md). 

1. Seleccione el tipo de aplicación con espacios a los que desea obtener acceso.

## Acceder a los espacios mediante el AWS CLI
<a name="studio-updated-spaces-access-cli"></a>

En las siguientes secciones se muestra cómo acceder a un espacio desde AWS Command Line Interface (AWS CLI). Los procedimientos son para los dominios que utilizan AWS Identity and Access Management (IAM) o AWS IAM Identity Center autenticación. 

### Autenticación de IAM
<a name="studio-updated-spaces-access-cli-iam"></a>

En general, en el siguiente procedimiento se describe cómo obtener acceso a un espacio mediante la autenticación de IAM desde la AWS CLI. 

1. Cree una URL de dominio prefirmada en la que se especifique el nombre del espacio al que desea obtener acceso.

   ```
   aws \
       --region region \
       sagemaker \
       create-presigned-domain-url \
       --domain-id domain-id \
       --user-profile-name user-profile-name \
       --space-name space-name
   ```

1. Vaya a la URL. 

### Acceso a un espacio en la autenticación de IAM Identity Center
<a name="studio-updated-spaces-access-identity-center"></a>

En el siguiente procedimiento se describe cómo obtener acceso a un espacio mediante la autenticación de IAM Identity Center desde la AWS CLI. 

1. Utilice el siguiente comando para devolver la URL asociada al espacio.

   ```
   aws \
       --region region \
       sagemaker \
       describe-space \
       --domain-id domain-id \
       --space-name space-name
   ```

1. Anexe el parámetro de redireccionamiento correspondiente al tipo de aplicación a la URL que se va a federar a través del IAM Identity Center. Para obtener más información sobre los parámetros de redireccionamiento, consulte [describe-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/describe-space.html). 

1. Vaya a la URL que desea federar a través del IAM Identity Center. 

# Colaboración con espacios compartidos
<a name="domain-space"></a>

Un espacio compartido de Amazon SageMaker Studio Classic consta de una JupyterServer aplicación compartida y un directorio compartido. Un espacio JupyterLab compartido consta de una JupyterLab aplicación compartida y un directorio compartido dentro de Amazon SageMaker Studio. Todos los perfiles de usuario de un dominio tienen acceso a todos los espacios compartidos del dominio. Amazon SageMaker AI delimita automáticamente los recursos de un espacio compartido dentro del contexto de la aplicación Amazon SageMaker Studio Classic que se lance en ese espacio compartido. Los recursos de un espacio compartido incluyen cuadernos, archivos, experimentos y modelos. Utilice los espacios compartidos para colaborar con otros usuarios en tiempo real mediante características como el etiquetado automático, la coedición de cuadernos en tiempo real y la personalización. 

Los espacios compartidos están disponibles en:
+ Amazon SageMaker Studio Clásico
+ JupyterLab

Un espacio compartido de Studio Classic solo es compatible con Studio Classic y sus KernelGateway aplicaciones. Un espacio compartido solo admite el uso de un Amazon Resource Name (ARN) de JupyterLab 3 imágenes. Para obtener más información, consulte [JupyterLab Control de versiones en Amazon SageMaker Studio Classic](studio-jl.md).

 Amazon SageMaker AI etiqueta automáticamente todos los recursos de SageMaker IA que cree en el ámbito de un espacio compartido. Puede utilizar estas etiquetas para supervisar los costos y planificar los presupuestos mediante herramientas como AWS Budgets. 

Un espacio compartido usa la misma configuración de VPC que el dominio en el que se creó. 

**nota**  
 Los espacios compartidos no admiten el uso de clústeres entre cuentas de Amazon SageMaker Data Wrangler o Amazon EMR. 

 **Etiquetado automático** 

 Todos los recursos creados en un espacio compartido se etiquetan automáticamente con una etiqueta de ARN de dominio y una etiqueta de ARN de espacio compartido. La etiqueta de ARN del dominio se basa en el ID del dominio, mientras que la etiqueta de ARN del espacio compartido se basa en el nombre del espacio compartido. 

 Puede utilizar estas etiquetas para supervisar el uso. AWS CloudTrail Para obtener más información, consulta [Registrar llamadas a la SageMaker API de Amazon con AWS CloudTrail](https://docs.aws.amazon.com//sagemaker/latest/dg/logging-using-cloudtrail.html). 

 También puedes usar estas etiquetas para monitorear los costos Administración de facturación y costos de AWS. Para obtener más información, consulte [Uso de etiquetas de asignación de AWS costes](https://docs.aws.amazon.com//awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). 

 **Edición conjunta de cuadernos en tiempo real** 

 Una ventaja clave de un espacio compartido es que facilita la colaboración entre los miembros del espacio compartido en tiempo real. Los usuarios que colaboran en un espacio de trabajo obtienen acceso a una aplicación de Studio Classic compartida en la que pueden acceder a sus cuadernos, leerlos y editarlos en tiempo real. La colaboración en tiempo real solo se admite para JupyterServer aplicaciones dentro de un espacio compartido. 

 Los usuarios con acceso a un espacio compartido pueden abrir, ver, editar y ejecutar simultáneamente las libretas de Jupyter en el Studio Classic o en la JupyterLab aplicación compartida de ese espacio. 

El cuaderno indica a cada usuario coeditor con un cursor diferente que muestra el nombre del perfil del usuario. Si bien varios usuarios pueden ver el mismo cuaderno, la edición conjunta es más adecuada para grupos pequeños de dos a cinco usuarios.

Para realizar un seguimiento de los cambios realizados por varios usuarios, se recomienda encarecidamente utilizar el control de versiones basado en Git integrado en Studio Classic.

 **JupyterServer 2** 

Para utilizar espacios compartidos en Studio Classic se requiere la versión 2 de Jupyter Server. Determinadas JupyterLab extensiones y paquetes pueden forzar la degradación de Jupyter Server a la versión 1. Esto impide el uso del espacio compartido. Ejecute lo siguiente desde la línea de comandos para cambiar el número de versión y seguir utilizando los espacios compartidos.

```
conda activate studio
pip install jupyter-server==2.0.0rc3
```

 **Personalización de un espacio compartido** 

Para asociar una configuración de ciclo de vida o una imagen personalizada a un espacio compartido, debe usar la AWS CLI. Para obtener más información acerca de la creación y asociación de configuraciones de ciclo de vida, consulte [Creación y asociación de una configuración de ciclo de vida con Amazon SageMaker Studio Classic](studio-lcc-create.md). Para obtener más información acerca de la creación y asociación de imágenes personalizadas, consulte [Imágenes personalizadas en Amazon SageMaker Studio Classic](studio-byoi.md).

# Creación de un espacio compartido
<a name="domain-space-create"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

 En el siguiente tema se muestra cómo crear un espacio compartido en un dominio de Amazon SageMaker AI existente. Si creó su dominio sin compatibilidad con espacios compartidos, debe agregar compatibilidad para espacios compartidos a su dominio existente antes de poder crear un espacio compartido. 

**Topics**
+ [Adición de compatibilidad para espacios compartidos a un dominio existente](#domain-space-add)
+ [Creación de un espacio compartido](#domain-space-create-app)

## Adición de compatibilidad para espacios compartidos a un dominio existente
<a name="domain-space-add"></a>

 Puede utilizar la consola de SageMaker IA o la AWS CLI para añadir soporte para espacios compartidos a un dominio existente. Si el dominio utiliza acceso a la red `VPC only`, solo puede añadir soporte para espacios compartidos mediante la AWS CLI.

### Consola
<a name="domain-space-add-console"></a>

 Realice el siguiente procedimiento para añadir la compatibilidad con los espacios compartidos de Studio Classic a un dominio existente desde la consola de SageMaker IA. 

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1.  En la lista de dominios, seleccione el dominio para el que quiera abrir la página **Configuración del dominio**. 

1.  En la página **Detalles del dominio**, elija la pestaña **Configuración del dominio**. 

1.  Elija **Edit (Edición de)**. 

1.  En **Rol de ejecución predeterminado del espacio**, defina un rol de IAM que se utilice de forma predeterminada para todos los espacios compartidos creados en el dominio. 

1.  Elija **Siguiente**. 

1.  Elija **Siguiente**. 

1.  Elija **Siguiente**. 

1.  Seleccione **Enviar**. 

### AWS CLI
<a name="domain-space-add-cli"></a>

------
#### [ Studio Classic ]

Ejecute el siguiente comando desde el terminal de su equipo local para agregar la configuración de espacio compartido predeterminada a un dominio desde la AWS CLI. Si va a agregar la configuración de espacio compartido predeterminada a un dominio de una Amazon VPC, también debe incluir una lista de grupos de seguridad. Los espacios compartidos de Studio Classic solo admiten el uso de JupyterLab 3 imágenes ARNs. Para obtener más información, consulte [JupyterLab Control de versiones en Amazon SageMaker Studio Classic](studio-jl.md).

```
# Public Internet domain
aws --region region \
sagemaker update-domain \
--domain-id domain-id \
--default-space-settings "ExecutionRole=execution-role-arn,JupyterServerAppSettings={DefaultResourceSpec={InstanceType=example-instance-type,SageMakerImageArn=sagemaker-image-arn}}"

# VPCOnly domain
aws --region region \
sagemaker update-domain \
--domain-id domain-id \
--default-space-settings "ExecutionRole=execution-role-arn,JupyterServerAppSettings={DefaultResourceSpec={InstanceType=system,SageMakerImageArn=sagemaker-image-arn}},SecurityGroups=[security-groups]"
```

Utilice el comando siguiente para comprobar que se haya actualizado la configuración de espacio compartido predeterminada. 

```
aws --region region \
sagemaker describe-domain \
--domain-id domain-id
```

------
#### [ JupyterLab ]

Ejecute el siguiente comando desde el terminal de su equipo local para agregar la configuración de espacio compartido predeterminada a un dominio desde la AWS CLI. Si va a agregar la configuración de espacio compartido predeterminada a un dominio de una Amazon VPC, también debe incluir una lista de grupos de seguridad. Los espacios compartidos de Studio Classic solo admiten el uso de JupyterLab 4 imágenes ARNs. Para obtener más información, consulte [JupyterLab Control de versiones en Amazon SageMaker Studio Classic](studio-jl.md).

```
# Public Internet domain
aws --region region \
sagemaker update-domain \
--domain-id domain-id \
--default-space-settings "ExecutionRole=execution-role-arn", JupyterLabAppSettings={DefaultResourceSpec={InstanceType=example-instance-type,SageMakerImageArn=sagemaker-image-arn}}"

# VPCOnly domain
aws --region region \
sagemaker update-domain \
--domain-id domain-id \
--default-space-settings "ExecutionRole=execution-role-arn, SecurityGroups=[security-groups]"
```

Utilice el comando siguiente para comprobar que se haya actualizado la configuración de espacio compartido predeterminada. 

```
aws --region region \
sagemaker describe-domain \
--domain-id domain-id
```

------

## Creación de un espacio compartido
<a name="domain-space-create-app"></a>

En las siguientes secciones se muestra cómo crear un espacio compartido desde la consola Amazon SageMaker AI, Amazon SageMaker Studio o el AWS CLI.

### Creación desde Studio
<a name="domain-space-create-updated"></a>

Utilice los siguientes procedimientos para crear un espacio compartido en un dominio desde Studio.

------
#### [ Studio Classic ]

1. Vaya a Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. En la IU de Studio, busque el panel de aplicaciones en la parte izquierda.

1. En el panel de aplicaciones, seleccione **Studio Classic**.

1. Elija **Crear espacio de Studio Classic**

1. En la ventana emergente, escriba un nombre para el espacio.

1. Elija **Crear espacio**.

------
#### [ JupyterLab ]

1. Vaya a Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. En la IU de Studio, busque el panel de aplicaciones en la parte izquierda.

1. En el panel de aplicaciones, selecciona **JupyterLab**.

1. Elija **Crear JupyterLab espacio**

1. En la ventana emergente, escriba un nombre para el espacio.

1. Elija **Crear espacio**.

------

### Creación desde la consola
<a name="domain-space-create-console"></a>

 Realice el siguiente procedimiento para crear un espacio compartido en un dominio desde la consola de SageMaker IA. 

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1.  En la lista de dominios, seleccione el dominio para el que desea crear un espacio compartido. 

1.  En la página **Detalles del dominio**, elija la pestaña **Administración del espacio**. 

1.  Seleccione **Crear**. 

1.  Ingrese un nombre para el espacio compartido. Los nombres de los espacios compartidos de un dominio deben ser únicos. El rol de ejecución del espacio compartido se establece en el rol de ejecución de IAM del dominio. 

### Crea desde AWS CLI
<a name="domain-space-create-cli"></a>

En esta sección se muestra cómo crear un espacio compartido desde la AWS CLI. 

No se puede establecer el rol de ejecución de un espacio compartido al crearlo o actualizarlo. Solo se `DefaultDomainExecRole` puede configurar al crear o actualizar el dominio. Los espacios compartidos solo admiten el uso de JupyterLab 3 imágenes ARNs. Para obtener más información, consulte [JupyterLab Control de versiones en Amazon SageMaker Studio Classic](studio-jl.md).

Para crear un espacio compartido desde AWS CLI, ejecute uno de los siguientes comandos desde la terminal de su máquina local.

------
#### [ Studio Classic ]

```
aws --region region \
sagemaker create-space \
--domain-id domain-id \
--space-name space-name \
--space-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "sagemaker-image-arn",
      "InstanceType": "system"
    }
  }
}'
```

------
#### [ JupyterLab ]

```
aws --region region \
sagemaker create-space \
--domain-id domain-id \
--space-name space-name \
--ownership-settings "{\"OwnerUserProfileName\": \"user-profile-name\"}" \
--space-sharing-settings "{\"SharingType\": \"Shared\"}" \
--space-settings "{\"AppType\": \"JupyterLab\"}"
```

------

# Obtención de información sobre espacios compartidos
<a name="domain-space-list"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos que [migres tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

 En esta guía se muestra cómo acceder a una lista de espacios compartidos en un dominio de Amazon SageMaker AI con la consola Amazon AI, Amazon SageMaker Studio o el AWS CLI. SageMaker También muestra cómo ver los detalles de un espacio compartido desde la AWS CLI. 

**Topics**
+ [Enumerar los espacios compartidos](#domain-space-list-spaces)
+ [Ver los detalles del espacio compartido](#domain-space-describe)

## Enumerar los espacios compartidos
<a name="domain-space-list-spaces"></a>

 En el siguiente tema se describe cómo ver una lista de espacios compartidos dentro de un dominio desde la consola SageMaker AI o desde la AWS CLI. 

### Lista de espacios compartidos desde Studio
<a name="domain-space-list-updated"></a>

 Complete el siguiente procedimiento para ver una lista de espacios compartidos en un dominio desde Studio.

1. Vaya a Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. En la IU de Studio, busque el panel de aplicaciones en la parte izquierda.

1. En el panel de aplicaciones, selecciona **Studio Classic** o **JupyterLab**. Puede ver los espacios que se utilizan para ejecutar el tipo de aplicación.

### Enumerar los espacios compartidos desde la consola
<a name="domain-space-list-console"></a>

 Complete el siguiente procedimiento para ver una lista de los espacios compartidos de un dominio desde la consola de SageMaker IA. 

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1.  En la lista de dominios, seleccione el dominio del que desea ver la lista de espacios compartidos. 

1.  En la página **Detalles del dominio**, elija la pestaña **Administración del espacio**. 

### Enumere los espacios compartidos desde AWS CLI
<a name="domain-space-list-cli"></a>

 Para enumerar los espacios compartidos de un dominio desde el AWS CLI, ejecute el siguiente comando desde la terminal de su máquina local.

```
aws --region region \
sagemaker list-spaces \
--domain-id domain-id
```

## Ver los detalles del espacio compartido
<a name="domain-space-describe"></a>

 En la siguiente sección se describe cómo ver los detalles de los espacios compartidos desde la consola SageMaker AI, Studio o el AWS CLI. 

### Visualización de detalles de espacio compartido desde Studio
<a name="domain-space-describe-updated"></a>

 Complete el siguiente procedimiento para ver los detalles de un espacio compartido en un dominio desde Studio.

1. Vaya a Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. En la IU de Studio, busque el panel de aplicaciones en la parte izquierda.

1. En el panel de aplicaciones, selecciona **Studio Classic** o **JupyterLab**. Puede ver los espacios que están ejecutando la aplicación.

1. Seleccione el nombre del espacio del que quiera ver más detalles.

### Ver los detalles del espacio compartido desde la consola
<a name="domain-space-describe-console"></a>

 Puede ver los detalles de un espacio compartido desde la consola de SageMaker IA mediante el siguiente procedimiento. 

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1.  En la lista de dominios, seleccione el dominio del que desea ver la lista de espacios compartidos. 

1.  En la página **Detalles del dominio**, elija la pestaña **Administración del espacio**. 

1.  Seleccione el nombre del espacio para abrir una nueva página con información sobre el espacio compartido. 

### Vea los detalles del espacio compartido desde el AWS CLI
<a name="domain-space-describe-cli"></a>

Para ver los detalles de un espacio compartido desde el AWS CLI, ejecute el siguiente comando desde la terminal de su máquina local.

```
aws --region region \
sagemaker describe-space \
--domain-id domain-id \
--space-name space-name
```

# Edición de un espacio compartido
<a name="domain-space-edit"></a>

 Solo puedes editar los detalles de un Amazon SageMaker Studio Classic o un espacio JupyterLab compartido mediante AWS CLI. No puedes editar los detalles de un espacio compartido desde la consola Amazon SageMaker AI. Solo puede actualizar los atributos del espacio de trabajo cuando no haya aplicaciones en ejecución en el espacio compartido. 

------
#### [ Studio Classic ]

Para editar los detalles de un espacio compartido de Studio Classic desde el AWS CLI, ejecute uno de los siguientes comandos desde el terminal de su máquina local. Los espacios compartidos solo admiten el uso de JupyterLab 3 imágenes. ARNs Para obtener más información, consulte [JupyterLab Control de versiones en Amazon SageMaker Studio Classic](studio-jl.md).

```
aws --region region \
sagemaker update-space \
--domain-id domain-id \
--space-name space-name \
--query SpaceArn --output text \
--space-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "sagemaker-image-arn",
      "InstanceType": "system"
    }
  }
}'
```

------
#### [ JupyterLab ]

Para editar los detalles de un espacio JupyterLab compartido desde el AWS CLI, ejecute uno de los siguientes comandos desde el terminal de su máquina local. Los espacios compartidos solo admiten el uso de 4 imágenes. JupyterLab ARNs Para obtener más información, consulte [SageMaker JupyterLab](studio-updated-jl.md).

```
aws --region region \
sagemaker update-space \
--domain-id domain-id \
--space-name space-name \
--space-settings "{
      "SpaceStorageSettings": {
      "EbsStorageSettings": { 
      "EbsVolumeSizeInGb":100
    }
    }
  }
}"
```

------

# Eliminación de un espacio compartido
<a name="domain-space-delete"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos que [migres tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

 En el siguiente tema se muestra cómo eliminar un espacio compartido de Amazon SageMaker Studio Classic de la consola Amazon SageMaker AI o AWS CLI. Solo es posible eliminar un espacio compartido si no tiene aplicaciones en ejecución. 

**Topics**
+ [Consola](#domain-space-delete-console)
+ [AWS CLI](#domain-space-delete-cli)

## Consola
<a name="domain-space-delete-console"></a>

 Complete el siguiente procedimiento para eliminar un espacio compartido en el dominio Amazon SageMaker AI de la consola SageMaker AI. 

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1.  En la lista de dominios, seleccione el dominio para el que desea crear un espacio compartido. 

1.  En la página **Detalles del dominio**, elija la pestaña **Administración del espacio**. 

1.  Seleccione el espacio compartido que desea eliminar. El espacio compartido no debe contener ninguna aplicación que no haya presentado errores. 

1.  Elija **Eliminar**. Se abre una nueva ventana. 

1.  Elija **Sí, eliminar espacio**. 

1.  Escribe *delete* en el campo. 

1.  Elija **Eliminar espacio**. 

## AWS CLI
<a name="domain-space-delete-cli"></a>

Para eliminar un espacio compartido de AWS CLI, ejecute el siguiente comando desde la terminal de su máquina local.

```
aws --region region \
sagemaker delete-space \
--domain-id domain-id \
--space-name space-name
```

# Propagación de identidades de confianza con Studio
<a name="trustedidentitypropagation"></a>

La propagación fiable de la identidad es una AWS IAM Identity Center función que los administradores de los AWS servicios conectados pueden utilizar para conceder y auditar el acceso a los datos del servicio. El acceso a estos datos se basa en los atributos del usuario, como las asociaciones de grupo. La configuración de una propagación de identidad fiable requiere la colaboración entre los administradores de los AWS servicios conectados y el administrador del Centro de Identidad de IAM. Para obtener más información, consulte [Requisitos previos y consideraciones](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html).

Los administradores de Amazon SageMaker Studio e IAM Identity Center pueden colaborar para conectar los servicios y así poder propagar identidades de forma fiable. La propagación fiable de la identidad responde a las necesidades de autenticación empresarial en todos AWS los servicios al simplificar:
+ Auditoría mejorada que rastrea las acciones de usuarios específicos
+ Gestión del acceso a las cargas de trabajo de ciencia de datos y aprendizaje automático mediante la integración con servicios compatibles AWS 
+ Requisitos de conformidad en los sectores regulados

Studio admite la propagación fiable de la identidad con fines de auditoría y el control de acceso con AWS los servicios conectados. La propagación de identidades de confianza en Studio no administra directamente las decisiones de autenticación o autorización dentro del propio Studio. En su lugar, propaga la información del contexto de la identidad a servicios compatibles que pueden usar esta información para el control de acceso.

Cuando utilizas la propagación de identidades fiable con Studio, la identidad de tu centro de identidad de IAM se propaga a los AWS servicios conectados, lo que crea permisos y una gobernanza de seguridad más detallados.

**Topics**
+ [Compatibilidad y arquitectura de propagación de identidades de confianza](trustedidentitypropagation-compatibility.md)
+ [Configuración de la propagación de identidades de confianza para Studio](trustedidentitypropagation-setup.md)
+ [Supervisión y auditoría con CloudTrail](trustedidentitypropagation-auditing.md)
+ [Sesiones de usuario en segundo plano](trustedidentitypropagation-user-background-sessions.md)
+ [¿Cómo conectarse con otros AWS servicios que tengan habilitada la propagación de identidades confiable?](trustedidentitypropagation-connect-other.md)

# Compatibilidad y arquitectura de propagación de identidades de confianza
<a name="trustedidentitypropagation-compatibility"></a>

La propagación de identidad confiable se integra AWS IAM Identity Center con Amazon SageMaker Studio y otros AWS servicios conectados para propagar el contexto de identidad de los usuarios en todos los servicios. En la siguiente página, se resume la arquitectura de propagación de identidades confiable y su compatibilidad con SageMaker la IA. Para obtener una descripción general completa de cómo funciona la propagación de identidades confiables AWS, consulte [Descripción general de la propagación de identidades confiables](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overview.html).

Entre los componentes clave de la arquitectura de propagación de identidades de confianza se incluyen:
+ **Propagación de identidades de confianza**: metodología para propagar el contexto de identidad del usuario entre aplicaciones y servicios.
+ **Contexto de identidad**: información sobre un usuario.
+ Sesión de **rol de IAM con identidad mejorada: las sesiones** de rol de IAM con identidad mejorada tienen un contexto de identidad adicional que incluye un identificador de usuario al servicio al que llaman AWS 
+ ** AWS Servicios conectados: otros AWS servicios** que pueden reconocer el contexto de identidad que se propaga mediante una propagación de identidad fiable

La propagación fiable de la identidad permite a AWS los servicios conectados tomar decisiones de acceso en función de la identidad del usuario. En el propio Studio, los roles de IAM se utilizan como portadores del contexto de identidad y no para tomar decisiones de control de acceso. El contexto de identidad se propaga a los AWS servicios conectados, donde se puede utilizar tanto con fines de control de acceso como de auditoría. Consulte las [trusted identity propagation considerations](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html#trustedidentitypropagation-considerations) para obtener más información.

Cuando habilitas la propagación fiable de la identidad con Studio y te autenticas a través del IAM Identity Center, la IA: SageMaker 
+ Captura el contexto de identidad del usuario del IAM Identity Center.
+ Crea una sesión de rol de IAM con identidad mejorada que incluye el contexto de identidad del usuario.
+ Transfiere la sesión de rol de IAM con identidad mejorada a AWS servicios compatibles cuando el usuario accede a los recursos
+ Permite que AWS los servicios intermedios tomen decisiones de acceso y registren las actividades en función de la identidad del usuario

## Funciones de SageMaker IA compatibles
<a name="trustedidentitypropagation-compatibility-compatible-features"></a>

La propagación de identidades de confianza funciona con las siguientes características de Studio:
+ Espacios privados de [Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) (JupyterLab y editor de código, basado en Code-OSS, código de Visual Studio, código abierto)

**nota**  
Cuando Studio se lanza con la propagación de identidades de confianza habilitada, utiliza el contexto de su identidad además de los permisos del rol de ejecución. Sin embargo, los siguientes procesos durante la configuración de la instancia solo utilizarán los permisos de la función de ejecución, sin el contexto de identidad: configuración del ciclo de vida Bring-Your-Own-Image, CloudWatch agente para el reenvío de registros de usuarios.
En la actualidad, la propagación de identidades de confianza no [admite el acceso remoto](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html).
Cuando utilizas las operaciones de asumir roles en los cuadernos de Studio, los roles asumidos no propagan un contexto de propagación de identidades confiable. Solo el rol de ejecución original mantiene el contexto de identidad.
+  [SageMakerCapacitación](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html) 
+  [SageMakerProcesamiento](https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html) 
+  [SageMaker Alojamiento de IA en tiempo real](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-options.html) 
+  [SageMakerTuberías](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-overview.html) 
+  [SageMakerinferencia en tiempo real](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html) 
+  [SageMakerInferencia asíncrona](https://docs.aws.amazon.com/sagemaker/latest/dg/async-inference.html) 
+  [Administrado MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html) 

## Servicios AWS compatibles
<a name="trustedidentitypropagation-compatibility-compatible-services"></a>

La propagación de identidades de confianza para Amazon SageMaker Studio se integra con AWS los servicios compatibles, en los que está habilitada la propagación de identidades de confianza. Consulte los [casos de uso](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-integrations.html) para obtener una lista completa con ejemplos sobre cómo habilitar la propagación de identidades de confianza. Los servicios de propagación de identidades de confianza compatibles son los siguientes.
+  [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/workgroups-identity-center.html) 
+  [Amazon EMR en EC2](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-idc-start.html) 
+  [EMR sin servidor](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-service-trusted-prop.html) 
+  [AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/identity-center-integration.html) 
+  [API de datos de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-trusted-identity-propagation.html) 
+ Amazon S3 (mediante [Concesiones de acceso a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-get-started.html))
+ [AWS Glue Connections](https://docs.aws.amazon.com/glue/latest/dg/security-trusted-identity-propagation.html)

Cuando la propagación de identidad confiable está habilitada con la SageMaker IA, se conectan todos los demás AWS servicios con la propagación de identidad confiable habilitada. Una vez conectados, reconocen y utilizan el contexto de identidad del usuario para el control de acceso y la auditoría.

## Compatible Regiones de AWS
<a name="trustedidentitypropagation-compatibility-supported-regions"></a>

Studio admite la propagación de identidades de confianza cuando [se admite IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/regions.html) y la autenticación de Studio con IAM Identity Center. Studio admite la propagación de identidades fiables en los siguientes casos Regiones de AWS:
+ af-south-1
+ ap-east-1
+ ap-northeast-1
+ ap-northeast-2
+ ap-northeast-3
+ ap-south-1
+ ap-southeast-1
+ ap-southeast-2
+ ap-southeast-3
+ ca-central-1
+ eu-central-1
+ eu-central-2
+ eu-north-1
+ eu-south-1
+ eu-west-1
+ eu-west-2
+ eu-west-3
+ il-central-1
+ me-south-1
+ sa-east-1
+ us-east-1
+ us-east-2
+ us-west-1
+ us-west-2

# Configuración de la propagación de identidades de confianza para Studio
<a name="trustedidentitypropagation-setup"></a>

La configuración de la propagación de identidades de confianza para Amazon SageMaker Studio requiere que su dominio de Amazon SageMaker AI tenga configurado el método de autenticación del Centro de Identidad de IAM. En esta sección se explican los requisitos previos y los pasos necesarios para habilitar y configurar la propagación de identidades de confianza para los usuarios de Studio.

**Topics**
+ [Requisitos previos](#trustedidentitypropagation-setup-prerequisites)
+ [Habilite la propagación de identidad confiable para su dominio de Amazon SageMaker AI](#trustedidentitypropagation-setup-enable)
+ [Configura tu función de ejecución de SageMaker IA](#trustedidentitypropagation-setup-permissions)

## Requisitos previos
<a name="trustedidentitypropagation-setup-prerequisites"></a>

Antes de configurar la propagación de identidad fiable para la SageMaker IA, configure su centro de identidad de IAM siguiendo las instrucciones siguientes.

**nota**  
Asegúrese de que su IAM Identity Center y su dominio estén en la misma región.
+  [Requisitos previos de propagación de identidades de confianza de IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html#trustedidentitypropagation-prerequisites) 
+  [Configuración de IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) 
+  [Adición de usuarios a su directorio de IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html) 

## Habilite la propagación de identidad confiable para su dominio de Amazon SageMaker AI
<a name="trustedidentitypropagation-setup-enable"></a>

**importante**  
Solo puede habilitar la propagación de identidades de confianza para los dominios con el método de autenticación de AWS IAM Identity Center configurado.
El centro de identidad de IAM y el dominio de Amazon SageMaker AI deben estar en el mismo Región de AWS lugar.

Utilice una de las siguientes opciones para aprender a habilitar la propagación de identidades de confianza para un dominio nuevo o existente.

------
#### [ New domain - console ]

**Habilite la propagación de identidad confiable para un nuevo dominio mediante la consola de SageMaker IA**

1. Abre la [consola Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Vaya a **Dominios**.

1. [Cree un dominio personalizado](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-custom.html). El dominio debe tener configurado el método de autenticación de **AWS IAM Identity Center**.

1. En la sección **Propagación de identidad de confianza**, seleccione **Habilitar la propagación de identidades de confianza para todos los usuarios de este dominio**.

1. Complete el proceso de creación personalizado.

------
#### [ Existing domain - console ]

**Habilite la propagación de identidad confiable para un dominio existente mediante la consola de SageMaker IA**
**nota**  
Para que la propagación de identidades de confianza funcione correctamente una vez habilitada para un dominio existente, los usuarios deberán reiniciar sus sesiones actuales del IAM Identity Center. Para hacerlo, haga lo siguiente:  
Los usuarios deberán cerrar sesión y volver a iniciarla en sus sesiones actuales del IAM Identity Center
Los administradores pueden [finalizar las sesiones activas para los usuarios de sus empleados](https://docs.aws.amazon.com/singlesignon/latest/userguide/end-active-sessions.html).

1. Abre la [consola Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Vaya a **Dominios**.

1. Seleccione el dominio existente. El dominio debe tener configurado el método de autenticación de **AWS IAM Identity Center**.

1. En la pestaña **Configuración del dominio**, seleccione **Editar** en la sección **Autenticación y permisos**.

1. Seleccione **Habilitar la propagación de identidades de confianza para todos los usuarios de este dominio**.

1. Rellene la configuración del dominio.

------
#### [ Existing domain - AWS CLI ]

Habilite la propagación de identidad confiable para un dominio existente mediante el AWS CLI

**nota**  
Para que la propagación de identidades de confianza funcione correctamente una vez habilitada para un dominio existente, los usuarios deberán reiniciar sus sesiones actuales del IAM Identity Center. Para hacerlo, haga lo siguiente:  
Los usuarios deberán cerrar sesión y volver a iniciarla en sus sesiones actuales del IAM Identity Center
Los administradores pueden [finalizar las sesiones activas para los usuarios de sus empleados](https://docs.aws.amazon.com/singlesignon/latest/userguide/end-active-sessions.html).

```
aws sagemaker update-domain \
    --region $REGION \
    --domain-id $DOMAIN_ID \
    --domain-settings "TrustedIdentityPropagationSettings={Status=ENABLED}"
```
+ `DOMAIN_ID`es el ID de dominio de Amazon SageMaker AI. Para obtener más información, consulte [Ver dominios](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html).
+ `REGION`es el Región de AWS de tu dominio de Amazon SageMaker AI. Puedes encontrarlo en la parte superior derecha de cualquier página de AWS consola.

------

## Configura tu función de ejecución de SageMaker IA
<a name="trustedidentitypropagation-setup-permissions"></a>

Para habilitar la propagación de identidades de confianza para sus usuarios de Studio, todos los roles de propagación de identidades de confianza deben definir los siguientes permisos de contexto. Actualice la política de confianza de todos los roles para incluir las acciones `sts:AssumeRole` y `sts:SetContext`. Use la siguiente política cuando [actualice la política de confianza de su rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "sagemaker.amazonaws.com"
                ]
            },
            "Action": [
                "sts:AssumeRole",
                "sts:SetContext"
            ]
        }
    ]
}
```

------

# Supervisión y auditoría con CloudTrail
<a name="trustedidentitypropagation-auditing"></a>

Con la propagación de identidades fiable habilitada, AWS CloudTrail los registros incluyen la información de identidad del usuario específico que realizó una acción, y no solo la función de IAM. Esto proporciona capacidades de auditoría mejoradas para garantizar el cumplimiento y la seguridad.

Para ver la información de identidad en CloudTrail los registros:
+ Abra la [consola de CloudTrail ](https://console.aws.amazon.com/cloudtrail).
+ Elija **Historial de eventos** en el panel de navegación izquierdo
+ Elija eventos de SageMaker AI y servicios relacionados.
+ En **Registro de eventos**, busque la clave `onBehalfOf`. Contiene la clave `userId` y otra información de identificación del usuario que se puede asignar a un usuario específico de IAM Identity Center.

  Consulte [los casos de CloudTrail uso del IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/sso-cloudtrail-use-cases.html) para obtener más información.

# Sesiones de usuario en segundo plano
<a name="trustedidentitypropagation-user-background-sessions"></a>

Las sesiones de usuario en segundo plano continúan incluso si el usuario ya no está activo. Estas sesiones permiten realizar trabajos de larga duración que pueden continuar incluso después de que el usuario haya cerrado su sesión. Esto se puede activar mediante la fiable propagación de identidades de la SageMaker IA. En la siguiente página se explican las opciones de configuración y los comportamientos de las sesiones de usuario en segundo plano.

**nota**  
Las sesiones de usuario activas existentes no se ven afectadas cuando se habilita la propagación de identidades de confianza. La duración predeterminada solo se aplica a las sesiones de usuario nuevas o a las sesiones reiniciadas.
Las sesiones de usuario en segundo plano se aplican a cualquier flujo de trabajo de SageMaker IA de larga duración o a cualquier trabajo con estados persistentes. Esto incluye, pero no se limita a, cualquier recurso de SageMaker IA que mantenga el estado de ejecución o requiera una supervisión continua. Por ejemplo, los trabajos de SageMaker formación, procesamiento y ejecución de canalizaciones.

**Topics**
+ [Configuración de la sesión de usuario en segundo plano](#configure-user-background-sessions)
+ [Duración predeterminada de la sesión de usuario en segundo plano](#default-user-background-session-duration)
+ [Efecto de deshabilitar la propagación de identidades de confianza en Studio](#user-background-session-impact-disable-trustedidentitypropagation-studio)
+ [Efecto de deshabilitar las sesiones de usuario en segundo plano en la consola de IAM Identity Center](#user-background-session-impact-disable-trustedidentitypropagation-identity-center)
+ [Consideraciones sobre el tiempo de ejecución](#user-background-session-runtime-considerations)

## Configuración de la sesión de usuario en segundo plano
<a name="configure-user-background-sessions"></a>

Una vez que se habilita la propagación de identidades de confianza para Amazon SageMaker Studio, los límites de duración predeterminados se pueden configurar mediante las [sesiones en segundo plano de los usuarios en el Centro de identidades de IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html).

## Duración predeterminada de la sesión de usuario en segundo plano
<a name="default-user-background-session-duration"></a>

De forma predeterminada, todas las sesiones de usuario en segundo plano tienen un límite de duración de 7 días. Los administradores pueden [modificar esta duración en la consola de IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html). Esta configuración se aplica a la instancia de IAM Identity Center y afecta a todas las aplicaciones de IAM Identity Center y a los dominios de Studio dentro de dicha instancia.

Cuando la propagación de identidad confiable esté habilitada, los administradores de la consola de SageMaker IA encontrarán un banner con la siguiente información:
+ El límite de duración de las sesiones de usuario en segundo plano
+ Un enlace a la consola de IAM Identity Center, donde los administradores pueden cambiar esta configuración
  + La duración se puede establecer en cualquier valor, desde 15 minutos hasta 90 días

Cuando la sesión de usuario en segundo plano haya caducado aparecerá un mensaje de error. Puede utilizar el enlace a la consola de IAM Identity Center para actualizar la duración.

## Efecto de deshabilitar la propagación de identidades de confianza en Studio
<a name="user-background-session-impact-disable-trustedidentitypropagation-studio"></a>

Si un administrador desactiva la propagación de identidad fiable, después de haberla activado inicialmente, en la consola de SageMaker IA:
+ Los trabajos existentes seguirán ejecutándose sin interrupción cuando las sesiones de usuario en segundo plano están habilitadas.
+ Cuando las sesiones de usuario en segundo plano están inhabilitadas, todos los flujos de trabajo de SageMaker IA prolongados o los trabajos con estados persistentes pasarán a utilizar sesiones interactivas. Esto incluye, pero no se limita a, cualquier recurso de SageMaker IA que mantenga el estado de ejecución o requiera una supervisión continua. Por ejemplo, los trabajos de Amazon SageMaker Training and Processing.
+ Los usuarios pueden reiniciar los trabajos que hayan caducado desde los puntos de comprobación.
+ Los nuevos trabajos se ejecutan con credenciales de rol de IAM y no propagan el contexto de identidad.

## Efecto de deshabilitar las sesiones de usuario en segundo plano en la consola de IAM Identity Center
<a name="user-background-session-impact-disable-trustedidentitypropagation-identity-center"></a>

Cuando la sesión del usuario en segundo plano está **deshabilitada** para la instancia del IAM Identity Center, el trabajo de SageMaker IA utiliza las sesiones interactivas del usuario. Al utilizar sesiones interactivas, un trabajo de SageMaker IA fallará en 15 minutos si:
+ el usuario cierra sesión,
+ el administrador revoca la sesión interactiva.

Cuando la sesión del usuario en segundo plano está **habilitada** para la instancia del IAM Identity Center, el trabajo de SageMaker IA utiliza las sesiones en segundo plano del usuario. Al utilizar sesiones interactivas, un trabajo de SageMaker IA fallará en 15 minutos si:
+ la sesión de usuario en segundo plano caduca,
+ un administrador revoca manualmente la sesión de usuario en segundo plano.

A continuación, se proporciona un ejemplo de comportamiento con los trabajos de SageMaker formación. Cuando un administrador habilita la propagación de identidades de confianza pero desactiva las [sesiones de usuario en segundo plano](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html) en la consola de IAM Identity Center:
+ Si un usuario permanece conectado, los trabajos de entrenamiento creados durante las sesiones en segundo plano estarán desactivados y recurrirán a la sesión interactiva.
+ Si el usuario cierra su sesión, la sesión caduca y los trabajos de entrenamiento que dependen de la sesión interactiva darán error.
+ Los usuarios pueden reiniciar su trabajo de entrenamiento desde el último punto de comprobación. La duración de la sesión se determina en función de lo establecido para la duración de la sesión interactiva en la consola de IAM Identity Center.
+ Si un usuario desactiva las sesiones en segundo plano **después** de iniciar un trabajo, el trabajo seguirá utilizando las sesiones en segundo plano existentes. En otras palabras, la SageMaker IA no creará nuevas sesiones en segundo plano.

El mismo comportamiento se aplica si las sesiones en segundo plano están habilitadas en el nivel de instancia del IAM Identity Center, pero se deshabilitan específicamente para la aplicación Studio mediante el [IAM Identity](https://docs.aws.amazon.com/singlesignon/latest/APIReference/welcome.html) Center. APIs

## Consideraciones sobre el tiempo de ejecución
<a name="user-background-session-runtime-considerations"></a>

Cuando un administrador establece tareas `MaxRuntimeInSeconds` de formación o procesamiento de larga duración que son inferiores a la duración de la sesión en segundo plano del usuario, SageMaker AI ejecuta la tarea durante el tiempo mínimo de la sesión en segundo plano del usuario. `MaxRuntimeInSeconds` Para obtener más información acerca de `MaxRuntimeInSeconds`, consulte [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-StoppingCondition). Consulte las [sesiones de usuario en segundo plano en IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html) para obtener más información sobre cómo configurar el tiempo de ejecución.

# ¿Cómo conectarse con otros AWS servicios que tengan habilitada la propagación de identidades confiable?
<a name="trustedidentitypropagation-connect-other"></a>

Cuando la propagación de identidad confiable está habilitada para su dominio de Amazon SageMaker AI, los usuarios del dominio pueden conectarse a otros AWS servicios confiables habilitados para la propagación de identidad. Cuando la propagación de identidades de confianza está habilitada, el contexto de su identidad se propaga automáticamente a los servicios compatibles, lo que permite un control de acceso detallado y una mejor auditoría de todos sus flujos de trabajo de machine learning. Esta integración elimina la necesidad de cambios complejos de funciones de IAM y proporciona una experiencia de identidad unificada en todos AWS los servicios. En las siguientes páginas se proporciona información sobre cómo conectar Amazon SageMaker Studio a otros AWS servicios cuando está habilitada la propagación de identidades de confianza.

**Topics**
+ [Conecte las JupyterLab libretas Studio a Amazon S3 Access Grants con la propagación de identidad confiable habilitada](trustedidentitypropagation-s3-access-grants.md)
+ [Conecte las JupyterLab libretas Studio a Amazon EMR con la propagación de identidad confiable habilitada](trustedidentitypropagation-emr-ec2.md)
+ [Conecte sus JupyterLab cuadernos Studio a EMR Serverless con la propagación de identidad confiable habilitada](trustedidentitypropagation-emr-serverless.md)
+ [Conecte JupyterLab los cuadernos de Studio a la API de Redshift Data con la propagación de identidad confiable habilitada](trustedidentitypropagation-redshift-data-apis.md)
+ [Conecte JupyterLab los cuadernos de Studio a Lake Formation y Athena con la función de propagación de identidad fiable habilitada](trustedidentitypropagation-lake-formation-athena.md)

# Conecte las JupyterLab libretas Studio a Amazon S3 Access Grants con la propagación de identidad confiable habilitada
<a name="trustedidentitypropagation-s3-access-grants"></a>

Puede utilizar [Concesiones de acceso a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) para otorgar control de acceso detallado y basado en la identidad a las ubicaciones de Amazon S3 de forma flexible. Esto concede a los buckets de Amazon S3 acceso directo a los usuarios y grupos corporativos. En las siguientes páginas se proporciona información e instrucciones sobre cómo utilizar Amazon S3 Access Grants con una propagación de identidad fiable para SageMaker IA.

## Requisitos previos
<a name="s3-access-grants-prerequisites"></a>

Para conectar Studio con Lake Formation y Athena con la propagación de identidades de confianza habilitada, debe haber completado los siguientes requisitos previos:
+  [Configuración de la propagación de identidades de confianza para Studio](trustedidentitypropagation-setup.md) 
+ Siga las instrucciones de [Introducción a Concesiones de acceso a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-get-started.html) para configurar Concesiones de acceso a Amazon S3 para su bucket. Para obtener más información, consulte [Administración del acceso con Concesiones de acceso a Amazon S3](https://aws.amazon.com/blogs/storage/scaling-data-access-with-amazon-s3-access-grants/).
**nota**  
Los Amazon S3 estándar APIs no funcionan automáticamente con las concesiones de acceso de Amazon S3. Debe usar Amazon S3 Access Grants de forma explícita APIs. Para obtener más información, consulte [Administración del acceso con Concesiones de acceso a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html).

**Topics**
+ [Requisitos previos](#s3-access-grants-prerequisites)
+ [Conecta Amazon S3 Access Grants con las JupyterLab libretas Studio](s3-access-grants-setup.md)
+ [Conecte las JupyterLab libretas Studio a Amazon S3 Access Grants con tareas de formación y procesamiento](trustedidentitypropagation-s3-access-grants-jobs.md)

# Conecta Amazon S3 Access Grants con las JupyterLab libretas Studio
<a name="s3-access-grants-setup"></a>

Utilice la siguiente información para conceder subvenciones de acceso a Amazon S3 en las JupyterLab libretas Studio.

Después de configurar Concesiones de acceso a Amazon S3, [añada los siguientes permisos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) a su dominio o [rol de ejecución](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role) de usuario.
+ `us-east-1` es su Región de AWS.
+ `111122223333` es su ID de Cuenta de AWS .
+ `S3-ACCESS-GRANT-ROLE` es su rol de Concesiones de acceso a Amazon S3.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDataAccessAPI",
            "Effect": "Allow",
            "Action": [
                "s3:GetDataAccess"
            ],
            "Resource": [
                "arn:aws:s3:us-east-1:111122223333:access-grants/default"
            ]
        },
        {
            "Sid": "RequiredForTIP",
            "Effect": "Allow",
            "Action": "sts:SetContext",
            "Resource": "arn:aws:iam::111122223333:role/S3-ACCESS-GRANT-ROLE"
        }
    ]
}
```

------

Asegúrese de que la política de confianza de su rol de Concesiones de acceso a Amazon S3 permita las acciones `sts:SetContext` y `sts:AssumeRole`. Use la siguiente política de ejemplo cuando [actualice la política de confianza de su rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "access-grants.s3.amazonaws.com"
                ]
            },
            "Action": [
                "sts:AssumeRole",
                "sts:SetContext"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                }
            }
        }
    ]
}
```

------

## Uso de Concesiones de acceso a Amazon S3 para llamar a Amazon S3
<a name="s3-access-grants-python-example"></a>

A continuación, se muestra un ejemplo de script de Python que muestra cómo se puede utilizar Concesiones de acceso a Amazon S3 para llamar a Amazon S3. Esto supone que ya ha configurado correctamente la propagación de identidades confiable con SageMaker IA.

```
import boto3
from botocore.config import Config

def get_access_grant_credentials(account_id: str, target: str, 
                                 permission: str = 'READ'):
    s3control = boto3.client('s3control')
    response = s3control.get_data_access(
        AccountId=account_id,
        Target=target,
        Permission=permission
    )
    return response['Credentials']

def create_s3_client_from_credentials(credentials) -> boto3.client:
    return boto3.client(
        's3',
        aws_access_key_id=credentials['AccessKeyId'],
        aws_secret_access_key=credentials['SecretAccessKey'],
        aws_session_token=credentials['SessionToken']
    )

# Create client
credentials = get_access_grant_credentials('111122223333',
                                        "s3://tip-enabled-bucket/tip-enabled-path/")
s3 = create_s3_client_from_credentials(credentials)

s3.list_objects(Bucket="tip-enabled-bucket", Prefix="tip-enabled-path/")
```

Si utiliza una ruta a un bucket de Amazon S3 donde la concesión de acceso a Amazon S3 no está habilitada, se producirá un error en la llamada.

Para otros lenguajes de programación, consulte [Administración del acceso con Concesiones de acceso a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) para obtener más información.

# Conecte las JupyterLab libretas Studio a Amazon S3 Access Grants con tareas de formación y procesamiento
<a name="trustedidentitypropagation-s3-access-grants-jobs"></a>

Utilice la siguiente información para conceder subvenciones de acceso a Amazon S3 para acceder a los datos en los trabajos de SageMaker formación y procesamiento de Amazon.

Cuando un usuario con la propagación de identidad fiable habilitada lanza un trabajo de SageMaker formación o procesamiento que necesita acceder a los datos de Amazon S3:
+ SageMaker AI solicita Amazon S3 Access Grants para obtener credenciales temporales basadas en la identidad del usuario
+ Si se ejecutan correctamente, estas credenciales temporales acceden a los datos de Amazon S3.
+ Si no lo consigue, SageMaker AI vuelve a utilizar las credenciales del rol de IAM

**nota**  
Para garantizar que todos los permisos se concedan mediante Concesiones de acceso a Amazon S3, tendrá que eliminar el permiso de acceso a Amazon S3 relacionado con su rol de ejecución y asociarlo a su [Concesiones de acceso a Amazon S3](https://docs.aws.amazon.com/singlesignon/latest/userguide/tip-tutorial-s3.html#tip-tutorial-s3-create-grant) correspondiente.

**Topics**
+ [Consideraciones](#s3-access-grants-jobs-considerations)
+ [Configuración de los trabajos de entrenamiento y procesamiento con Concesiones de acceso a Amazon S3](#s3-access-grants-jobs-setup)

## Consideraciones
<a name="s3-access-grants-jobs-considerations"></a>

Las subvenciones de acceso de Amazon S3 no se pueden utilizar con el [modo Pipe](https://docs.aws.amazon.com/sagemaker/latest/dg/augmented-manifest-stream.html) tanto para el SageMaker entrenamiento como para el procesamiento de las entradas de Amazon S3.

Cuando la propagación de identidad confiable está habilitada, no puede iniciar un trabajo de SageMaker formación con la siguiente función
+ Depuración remota
+ Depurador
+ Profiler

Si la propagación de identidades de confianza está habilitada, no puede iniciar un trabajo de procesamiento con la siguiente característica:
+ DatasetDefinition

## Configuración de los trabajos de entrenamiento y procesamiento con Concesiones de acceso a Amazon S3
<a name="s3-access-grants-jobs-setup"></a>

Después de configurar Concesiones de acceso a Amazon S3, [añada los siguientes permisos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) a su dominio o [rol de ejecución](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role) de usuario.
+ `us-east-1` es su Región de AWS.
+ `111122223333` es su ID de Cuenta de AWS .
+ `S3-ACCESS-GRANT-ROLE` es su rol de Concesiones de acceso a Amazon S3.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDataAccessAPI",
            "Effect": "Allow",
            "Action": [
                "s3:GetDataAccess",
                "s3:GetAccessGrantsInstanceForPrefix"
            ],
            "Resource": [
                "arn:aws:s3:us-east-1:111122223333:access-grants/default"
            ]
        },
        {
            "Sid": "RequiredForIdentificationPropagation",
            "Effect": "Allow",
            "Action": "sts:SetContext",
            "Resource": "arn:aws:iam::111122223333:role/S3-ACCESS-GRANT-ROLE"
        }
    ]
}
```

------

# Conecte las JupyterLab libretas Studio a Amazon EMR con la propagación de identidad confiable habilitada
<a name="trustedidentitypropagation-emr-ec2"></a>

La conexión de las JupyterLab libretas Amazon SageMaker Studio a los clústeres de Amazon EMR le permite aprovechar la potencia informática distribuida de Amazon EMR para cargas de trabajo de análisis y procesamiento de datos a gran escala. Con la propagación de identidades de confianza habilitada, el contexto de identidad se propaga a Amazon EMR, lo que permite un control de acceso detallado y registros de auditoría integrales. En la página siguiente se proporcionan instrucciones sobre cómo conectar su cuaderno de Studio a los clústeres de Amazon EMR. Una vez configurado, puede utilizar la opción `Connect to Cluster` en su cuaderno de Studio.

Para conectar Studio con Amazon EMR con la propagación de identidades de confianza habilitada, debe haber completado la siguiente configuración:
+  [Configuración de la propagación de identidades de confianza para Studio](trustedidentitypropagation-setup.md) 
+  [Introducción a la AWS IAM Identity Center integración para Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-idc-start.html) 
+  [Habilitación de las comunicaciones entre los clústeres de Studio y Amazon EMR](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster.html) 

 **Conexión a un clúster de Amazon EMR** 

Para obtener una lista completa de opciones sobre cómo conectar su JupyterLab portátil a Amazon EMR, consulte [Conectarse a un clúster de Amazon EMR.](https://docs.aws.amazon.com/sagemaker/latest/dg/connect-emr-clusters.html)

# Conecte sus JupyterLab cuadernos Studio a EMR Serverless con la propagación de identidad confiable habilitada
<a name="trustedidentitypropagation-emr-serverless"></a>

Amazon EMR sin servidor ofrece una opción sin servidor para ejecutar aplicaciones de Apache Spark y Apache Hive sin administrar clústeres. Cuando se integra con la propagación de identidades de confianza, EMR sin servidor escala automáticamente los recursos de computación y, al mismo tiempo, mantiene su contexto de identidad para el control de acceso y la auditoría. Este enfoque elimina la sobrecarga operativa de la administración de clústeres y, al mismo tiempo, preserva las ventajas para la seguridad del control de acceso basado en la identidad. En la siguiente sección se proporciona información sobre cómo conectar su Studio habilitado para la propagación de identidades de confianza con EMR sin servidor.

Para conectar Studio con Amazon EMR sin servidor con la propagación de identidades de confianza habilitada, debe haber completado la siguiente configuración:
+  [Configuración de la propagación de identidades de confianza para Studio](trustedidentitypropagation-setup.md) 
+  [Propagación de identidades de confianza con EMR sin servidor](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-service-trusted-prop.html) 
+  [Habilitación de las comunicaciones entre Studio y EMR sin servidor](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-serverless.html) 

 **Conexión a la aplicación de EMR sin servidor** 

Para obtener una lista completa de opciones sobre cómo conectar su JupyterLab portátil a EMR Serverless, consulte [Conectarse a una aplicación EMR](https://docs.aws.amazon.com/sagemaker/latest/dg/connect-emr-serverless-application.html) Serverless.

# Conecte JupyterLab los cuadernos de Studio a la API de Redshift Data con la propagación de identidad confiable habilitada
<a name="trustedidentitypropagation-redshift-data-apis"></a>

La API de datos de Amazon Redshift le permite interactuar con sus clústeres de Amazon Redshift mediante programación sin administrar las conexiones persistentes. Cuando se combina con una propagación de identidades de confianza, la API de datos de Redshift proporciona un acceso seguro y basado en la identidad a su almacén de datos, lo que le permite ejecutar consultas SQL y obtener resultados, al tiempo que mantiene un registro de auditoría completo de las actividades de los usuarios. Esta integración es particularmente valiosa para los flujos de trabajo de ciencia de datos que requieren acceso a datos estructurados almacenados en Redshift. La siguiente página incluye información e instrucciones sobre cómo conectar la propagación de identidades de confianza con Amazon SageMaker Studio a la API de datos de Redshift.

Para conectar Studio con la API de datos de Redshift con la propagación de identidades de confianza habilitada, debe haber completado la siguiente configuración:
+  [Configuración de la propagación de identidades de confianza para Studio](trustedidentitypropagation-setup.md) 
+  [Uso de la API de datos de Redshift con propagación de identidades de confianza](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-trusted-identity-propagation.html) 
  + Asegúrese de que su rol de ejecución tenga los permisos pertinentes para la API de datos de Redshift. Para obtener más información, consulte la sección sobre cómo [autorizar el acceso](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-access.html).
+  [Simplifique la administración del acceso con Amazon Redshift y AWS Lake Formation para los usuarios de un proveedor de identidad externo](https://aws.amazon.com/blogs/big-data/simplify-access-management-with-amazon-redshift-and-aws-lake-formation-for-users-in-an-external-identity-provider/) 

# Conecte JupyterLab los cuadernos de Studio a Lake Formation y Athena con la función de propagación de identidad fiable habilitada
<a name="trustedidentitypropagation-lake-formation-athena"></a>

AWS Lake Formation y Amazon Athena trabajan juntos para ofrecer una solución integral de lago de datos con funciones detalladas de control de acceso y consultas sin servidor. Lake Formation centraliza la gestión de permisos para su lago de datos, mientras que Athena ofrece servicios de consulta interactiva. Cuando se integra con la propagación de identidades de confianza, esta combinación permite a los científicos de datos acceder solo a los datos que pueden ver. Además, tienen todas las consultas y el acceso a los datos registradas automáticamente con fines de cumplimiento y auditoría. En la siguiente página se proporciona información e instrucciones sobre cómo conectar la propagación de identidades de confianza con Amazon SageMaker Studio a Lake Formation y Athena.

Para conectar Studio con Lake Formation y Athena con la propagación de identidades de confianza habilitada, debe haber completado los siguientes requisitos previos:
+  [Configuración de la propagación de identidades de confianza para Studio](trustedidentitypropagation-setup.md) 
+  [Creación de un rol en Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/prerequisites-identity-center.html) 
+  [Conexión de Lake Formation con IAM Identity Center](https://docs.aws.amazon.com/lake-formation/latest/dg/connect-lf-identity-center.html) 
+ Creación de recursos de Lake Formation:
  +  [Base de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/creating-database.html) 
  +  [Tablas](https://docs.aws.amazon.com/lake-formation/latest/dg/creating-tables.html) 
+  [Creación de un grupo de trabajo de Athena](https://docs.aws.amazon.com/athena/latest/ug/creating-workgroups.html) 
  + Elección de **AthenaSQL** como motor.
  + Elección de **IAM Identity Center** como método de autenticación.
  + Creación de un rol de servicio nuevo.
    + Asegúrese de que los usuarios de IAM Identity Center tengan acceso a la ubicación de los resultados de la consulta mediante Concesiones de acceso a Amazon S3.
+  [Concesión de permisos de base de datos mediante el método de recurso con nombre](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-database-permissions.html) 

# Realización de tareas comunes en la interfaz de usuario
<a name="studio-updated-common"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

 En las siguientes secciones se describe cómo realizar tareas comunes en la interfaz de usuario de Amazon SageMaker Studio. Para obtener información general de la interfaz de Studio, consulte [Descripción general de la interfaz de usuario de Amazon SageMaker Studio](studio-updated-ui.md). 

 **Configuración de las preferencias de cookies** 

1. Lance Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md). 

1.  En la parte inferior de la interfaz de usuario de Studio, elija **Preferencias de cookies**. 

1.  Selecciona la casilla de verificación de cada tipo de cookie que quieras que utilice Amazon SageMaker AI. 

1.  Elija **Guardar preferencias**. 

 **Administración de las notificaciones** 

En las notificaciones se proporciona información sobre los cambios importantes de Studio, las actualizaciones de las aplicaciones y los problemas que hay que resolver. 

1. Lance Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md). 

1.  En la barra de navegación superior, elija el icono de **Notificaciones** (![\[Logo for Notifications, a cloud service with a stylized bell icon.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/monarch/notification.png)). 

1.  En la lista de notificaciones, seleccione la notificación para obtener información sobre ella. 

 **Aportación de comentarios** 

 Nos tomamos muy en serio sus comentarios. Le animamos a que nos envíe sus comentarios. 

 En la parte superior de la barra de navegación de Studio, seleccione **Proporcione comentarios**. 

 **Cierre de sesión** 

 Cerrar sesión en la interfaz de usuario de Studio no es lo mismo que cerrar la ventana del navegador. Al cerrar sesión, se borran los datos de la sesión del navegador y se eliminan los cambios no guardados. 

Este mismo comportamiento también ocurre cuando se agota el tiempo de espera de la sesión de Studio. Esto sucede al cabo de 5 minutos. 

1. Lance Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md). 

1. Seleccione el icono de **Opciones de usuario** (![\[User icon with a circular avatar placeholder and a downward-pointing arrow.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/monarch/user-settings.png)). 

1.  Elija **Cerrar sesión**. 

1. En la ventana emergente, elija **Cerrar sesión**. 

# NVMe tiendas con Amazon SageMaker Studio
<a name="studio-updated-nvme"></a>

Las aplicaciones de Amazon SageMaker Studio y sus libretas asociadas se ejecutan en instancias de Amazon Elastic Compute Cloud (Amazon EC2). Algunos tipos de instancias de Amazon EC2, como la familia de instancias, ofrecen almacenes de `ml.m5d` instancias de unidades de estado sólido (SSDNVMe) de memoria no volátil Express (). NVMe Los almacenes de instancias son almacenes de discos efímeros locales que están conectados físicamente a una instancia para un almacenamiento temporal rápido. Las aplicaciones de Studio admiten almacenes de NVMe instancias para los tipos de instancias compatibles. Para obtener más información sobre los tipos de instancias y sus volúmenes de NVMe almacenamiento asociados, consulte los [detalles del tipo de instancia de Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/). En este tema se proporciona información sobre el acceso a los almacenes de NVMe instancias y su uso, así como algunas consideraciones a tener en cuenta a la hora de utilizar los almacenes de NVMe instancias con Studio.

## Consideraciones
<a name="studio-updated-nvme-considerations"></a>

Cuando se usan almacenes de NVMe instancias con Studio, se tienen en cuenta las siguientes consideraciones.
+ Un almacén de NVMe instancias es un almacenamiento temporal. Los datos almacenados en el NVMe almacén se eliminan cuando la instancia finaliza, se detiene o se pone en hibernación. Cuando se utilizan NVMe almacenes con aplicaciones de Studio, los datos del almacén de NVMe instancias se pierden cada vez que se elimina, se reinicia o se aplica un parche a la aplicación. Recomendamos hacer copias de seguridad de los datos valiosos en soluciones de almacenamiento persistente, como Amazon Elastic Block Store, Amazon Elastic File System o Amazon Simple Storage Service. 
+ Studio parchea las instancias periódicamente para instalar nuevas actualizaciones de seguridad. Cuando se parchea una instancia, esta se reinicia. Este reinicio provoca la eliminación de los datos almacenados en el NVMe almacén de instancias. Te recomendamos que hagas copias de seguridad frecuentes de los datos necesarios del almacén de NVMe instancias en soluciones de almacenamiento persistente, como Amazon Elastic Block Store, Amazon Elastic File System o Amazon Simple Storage Service. 
+ Las siguientes aplicaciones de Studio admiten el uso del NVMe almacenamiento:
  + JupyterLab
  + Editor de código, basado en Code-OSS, Visual Studio Code: Open Source
  + KernelGateway

## Accede a los almacenes de NVMe instancias
<a name="studio-updated-nvme-access"></a>

Cuando seleccionas un tipo de instancia con almacenes de NVMe instancias adjuntos para alojar una aplicación de Studio, el directorio del almacén de NVMe instancias se monta en el contenedor de aplicaciones en la siguiente ubicación:

```
/mnt/sagemaker-nvme
```

Si una instancia tiene más de un almacén de NVMe instancias adjunto, Studio crea un volumen lógico segmentado que abarca todos los discos locales conectados. A continuación, Studio monta este volumen lógico segmentado en el directorio `/mnt/sagemaker-nvme`. Como resultado, el tamaño de almacenamiento del directorio es la suma de todos los tamaños de los volúmenes del almacén de instancias adjuntos a la NVMe instancia. 

Si el `/mnt/sagemaker-nvme` directorio no existe, comprueba que el tipo de instancia que aloja la aplicación tenga un volumen de almacén de NVMe instancias adjunto.

# Compatibilidad con el modo local en Amazon SageMaker Studio
<a name="studio-updated-local"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Las aplicaciones de Amazon SageMaker Studio admiten el uso del modo local para crear estimadores, procesadores y canalizaciones y, a continuación, implementarlos en un entorno local. Con el modo local, puede probar los scripts de aprendizaje automático antes de ejecutarlos en entornos de alojamiento o formación gestionados por Amazon SageMaker AI. Studio admite el modo local en las aplicaciones siguientes:
+ Amazon SageMaker Studio Clásico
+ JupyterLab
+ Editor de código, basado en Code-OSS, Visual Studio Code: Open Source

El modo local en las aplicaciones de Studio se invoca mediante el SDK de SageMaker Python. En las aplicaciones de Studio, el modo local funciona de forma similar a como funciona en las instancias de Amazon SageMaker Notebook, con algunas diferencias. Si la opción [Configuración de Docker sin raíz](studio-updated-local-get-started.md#studio-updated-local-rootless) está habilitada, también puede acceder a registros de Docker adicionales a través de su configuración de VPC, incluidos los repositorios en las instalaciones y los registros públicos. Para obtener más información sobre el uso del modo local con el SDK de SageMaker Python, consulte [Modo local](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode).

**nota**  
Las aplicaciones de Studio no admiten trabajos de varios contenedores en modo local. Los trabajos en modo local se limitan a una sola instancia para trabajos de entrenamiento, inferencia y procesamiento. Al crear un trabajo en modo local, la configuración del recuento de instancias debe ser `1`. 

## Compatibilidad con Docker
<a name="studio-updated-local-docker"></a>

En el marco de la compatibilidad con el modo local, las aplicaciones de Studio admiten capacidades limitadas de acceso a Docker. Con esta compatibilidad, los usuarios pueden interaccionar con la API de Docker desde los cuadernos de Jupyter o desde el terminal de imágenes de la aplicación. Los clientes pueden interactuar Docker mediante una de las interfaces siguientes:
+ [CLI de Docker](https://docs.docker.com/engine/reference/run/)
+ [CLI de Docker Compose](https://docs.docker.com/compose/reference/)
+ Clientes de Docker SDK específicos de cada lenguaje

Studio también admite capacidades de acceso limitado a Docker con las siguientes restricciones:
+ No se admite el uso de redes de Docker.
+ No se admite el uso de [volúmenes](https://docs.docker.com/storage/volumes/) de Docker durante la ejecución del contenedor. Durante la orquestación del contenedor, solo se permiten las entradas de montaje de unión de volúmenes. Las entradas de montaje de unión de volúmenes deben estar ubicadas en el volumen de Amazon Elastic File System (Amazon EFS) de Studio Classic. Para las aplicaciones JupyterLab y el editor de código, debe estar ubicado en el volumen Amazon Elastic Block Store (Amazon EBS).
+ Se permiten las operaciones de inspección de contenedores.
+ No se permite el mapeo del puerto del contenedor al host. Sin embargo, se puede especificar un puerto para el alojamiento. A continuación, se puede obtener acceso al punto de conexión desde Studio mediante la siguiente URL:

  ```
  http://localhost:port
  ```

### Operaciones de Docker admitidas
<a name="studio-updated-local-docker-supported"></a>

En la tabla siguiente se enumeran todos los puntos de conexión de la Docker API compatibles con Studio, incluidas las limitaciones de compatibilidad. Si algún punto de conexión de la API no figura en la tabla, Studio no lo admite.


|  Documentación de la API  |  Limitaciones  | 
| --- | --- | 
|  [SystemAuth](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemAuth)  |   | 
|  [SystemEvents](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemEvents)  |   | 
|  [SystemVersion](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemVersion)  |   | 
|  [SystemPing](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemPing)  |   | 
|  [SystemPingHead](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemPingHead)  |   | 
|  [ContainerCreate](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerCreate)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/studio-updated-local.html)  | 
|  [ContainerStart](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerStart)  |   | 
|  [ContainerStop](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerStop)  |   | 
|  [ContainerKill](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerKill)  |   | 
|  [ContainerDelete](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerDelete)  |   | 
|  [ContainerList](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerList)  |   | 
|  [ContainerLogs](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerLogs)  |   | 
|  [ContainerInspect](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerInspect)  |   | 
|  [ContainerWait](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerWait)  |   | 
|  [ContainerAttach](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerAttach)  |   | 
|  [ContainerPrune](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerPrune)  |   | 
|  [ContainerResize](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerResize)  |   | 
|  [ImageCreate](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageCreate)  |  La compatibilidad con el modo VPC-only se limita a las imágenes de Amazon ECR en las cuentas incluidas en la lista de permitidos. Si la opción [Configuración de Docker sin raíz](studio-updated-local-get-started.md#studio-updated-local-rootless) está habilitada, también puede acceder a registros de Docker adicionales a través de su configuración de VPC, incluidos los repositorios en las instalaciones y los registros públicos. | 
|  [ImagePrune](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImagePrune)  |   | 
|  [ImagePush](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImagePush)  |  La compatibilidad con el modo VPC-only se limita a las imágenes de Amazon ECR en las cuentas incluidas en la lista de permitidos. Si la opción [Configuración de Docker sin raíz](studio-updated-local-get-started.md#studio-updated-local-rootless) está habilitada, también puede acceder a registros de Docker adicionales a través de su configuración de VPC, incluidos los repositorios en las instalaciones y los registros públicos. | 
|  [ImageList](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageList)  |   | 
|  [ImageInspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect)  |   | 
|  [ImageGet](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageGet)  |   | 
|  [ImageDelete](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageDelete)  |   | 
|  [ImageBuild](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageBuild)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/studio-updated-local.html)  | 

**Topics**
+ [Compatibilidad con Docker](#studio-updated-local-docker)
+ [Introducción al modo local](studio-updated-local-get-started.md)

# Introducción al modo local
<a name="studio-updated-local-get-started"></a>

En las siguientes secciones se describen los pasos necesarios para empezar a utilizar el modo local en Amazon SageMaker Studio, entre los que se incluyen:
+ Cumplimiento de los requisitos previos
+ Configuración de `EnableDockerAccess`
+ Instalación de Docker

## Requisitos previos
<a name="studio-updated-local-prereq"></a>

Complete los siguientes requisitos previos para usar el modo local en las aplicaciones de Studio:
+ Para extraer imágenes de un repositorio de Amazon Elastic Container Registry, la cuenta en la que se aloja la imagen de Amazon ECR debe proporcionar permiso de acceso para el rol de ejecución del usuario. El rol de ejecución del dominio también debe permitir el acceso a Amazon ECR.
+ Compruebe que está utilizando la versión más reciente del Studio Python SDK mediante el siguiente comando: 

  ```
  pip install -U sagemaker
  ```
+ Para usar el modo local y las capacidades de Docker, establezca el siguiente parámetro de la `DockerSettings` del dominio mediante la AWS Command Line Interface (AWS CLI): 

  ```
  EnableDockerAccess : ENABLED
  ```
+ Con `EnableDockerAccess`, también puede controlar si los usuarios del dominio pueden usar el modo local. De forma predeterminada, el modo local y las capacidades de Docker no están permitidos en las aplicaciones de Studio. Para obtener más información, consulte [Configuración de `EnableDockerAccess`](#studio-updated-local-enable).
+ Instale la Docker CLI en la aplicación de Studio siguiendo los pasos que se indican en [Instalación de Docker](#studio-updated-local-docker-installation).
+ Para [Configuración de Docker sin raíz](#studio-updated-local-rootless), asegúrese de que su VPC tenga configurados los puntos de conexión y el enrutamiento adecuados para los registros de Docker que desee.

## Configuración de `EnableDockerAccess`
<a name="studio-updated-local-enable"></a>

En las siguientes secciones se muestra cómo configurar `EnableDockerAccess` cuándo el dominio tiene acceso público a Internet o está en modo `VPC-only`.

**nota**  
Los cambios de `EnableDockerAccess` se aplicarán únicamente a las aplicaciones creadas después de actualizar el dominio. Debe crear una nueva aplicación después de actualizar el dominio.

**Acceso público a Internet**

Los siguientes comandos de ejemplo muestran cómo configurar `EnableDockerAccess` al crear un nuevo dominio o actualizar un dominio existente con acceso público a Internet:

```
# create new domain
aws --region region \
    sagemaker create-domain --domain-name domain-name \
    --vpc-id vpc-id \
    --subnet-ids subnet-ids \
    --auth-mode IAM \
    --default-user-settings "ExecutionRole=execution-role" \
    --domain-settings '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}' \
    --query DomainArn \
    --output text

# update domain
aws --region region \
    sagemaker update-domain --domain-id domain-id \
    --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'
```

**Modo `VPC-only`**

Cuando se utiliza un dominio en modo `VPC-only`, las solicitudes de inserción y extracción de imágenes de Docker se enrutan a través de la VPC del servicio en lugar de a través de la VPC configurada por el cliente. Gracias a esta funcionalidad, los administradores pueden configurar una lista de Cuentas de AWS de confianza a las que los usuarios pueden enviar solicitudes de operaciones de Docker de inserción y extracción de Amazon ECR.

Si se envía una solicitud de inserción o extracción de Docker imágenes a un usuario Cuenta de AWS que no figura en la lista de sitios de confianza Cuentas de AWS, se produce un error en la solicitud. DockerLas operaciones de arrastrar y empujar fuera de Amazon Elastic Container Registry (Amazon ECR) no se admiten en este modo. `VPC-only`

De forma predeterminada, Cuentas de AWS se confía en los siguientes elementos:
+ La cuenta que aloja el dominio de SageMaker IA.
+ SageMaker Cuentas de IA que alojan las siguientes SageMaker imágenes:
  + Imágenes de marco de trabajo de DLC
  + SklearnSpark, XGBoost procesando imágenes

Para configurar una lista de fuentes de confianza adicionales Cuentas de AWS, especifique el `VpcOnlyTrustedAccounts` valor de la siguiente manera:

```
aws --region region \
    sagemaker update-domain --domain-id domain-id \
    --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED", "VpcOnlyTrustedAccounts": ["account-list"]}}'
```

**nota**  
Cuando la [Configuración de Docker sin raíz](#studio-updated-local-rootless) está habilitada, `VpcOnlyTrustedAccounts` se ignora y el tráfico de Docker se redirige a través de la configuración de la VPC, lo que permite el acceso a cualquier registro al que pueda acceder la VPC.

## Configuración de Docker sin raíz
<a name="studio-updated-local-rootless"></a>

Cuando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DockerSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DockerSettings.html) está habilitado, Studio usa un [daemon de Docker sin raíz](https://docs.docker.com/engine/security/rootless/) que enruta el tráfico a través de la VPC. Esto mejora la seguridad y permite acceder a registros de Docker adicionales. Las principales diferencias con `RootlessDocker` son:
+ La configuración de la VPC determina a qué registros pueden acceder las operaciones de Docker. `VpcOnlyTrustedAccounts` se ignora y el tráfico de Docker se enruta a través de la configuración de su VPC.

Para usar Docker sin raíz, tendrá que configurar `EnableDockerAccess` y `RootlessDocker` en `ENABLED` para la `DockerSettings`. Por ejemplo, en los ejemplos de [Configuración de `EnableDockerAccess`](#studio-updated-local-enable) anteriores, puede modificar la configuración del dominio para que incluya:

```
'{"DockerSettings": {"EnableDockerAccess": "ENABLED", "RootlessDocker": "ENABLED"}}'
```

## Instalación de Docker
<a name="studio-updated-local-docker-installation"></a>

Para utilizar Docker, debe instalar manualmente Docker desde el terminal de su aplicación de Studio. Los pasos para instalar Docker son diferentes si el dominio tiene acceso a Internet o no.

### Acceso a Internet
<a name="studio-updated-local-docker-installation-internet"></a>

Si el dominio se crea con acceso público a Internet o en un modo `VPC-only` con acceso limitado a Internet, siga estos pasos para instalar Docker.

1. (Opcional) Si el dominio se crea en modo `VPC-only` con acceso limitado a Internet, cree una puerta de enlace NAT pública con acceso al sitio web de Docker. Para obtener instrucciones, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html).

1. Vaya al terminal de la aplicación de Studio en la que desee instalar Docker.

1. Para devolver el sistema operativo de la aplicación, ejecute el siguiente comando desde el terminal:

   ```
   cat /etc/os-release
   ```

1. Realice la instalación Docker siguiendo las instrucciones del sistema operativo de la aplicación en el [repositorio Amazon SageMaker AI Local Mode Examples](https://github.com/aws-samples/amazon-sagemaker-local-mode/tree/main/sagemaker_studio_docker_cli_install).

   Por ejemplo, instálelo Ubuntu siguiendo Docker el script que se encuentra en [https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker\$1studio\$1docker\$1cli\$1install/sagemaker- ubuntu-focal-docker-cli -install.sh](https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker_studio_docker_cli_install/sagemaker-ubuntu-focal-docker-cli-install.sh) teniendo en cuenta las siguientes consideraciones:
   + Si se produce un error en los comandos encadenados, ejecute los comandos de uno en uno.
   + Studio solo admite Docker, versión `20.10.X.` y la Docker Engine API, versión `1.41`.
   + Los siguientes paquetes no son necesarios para usar la Docker CLI en Studio y su instalación se puede omitir:
     + `containerd.io`
     + `docker-ce`
     + `docker-buildx-plugin`
**nota**  
No es necesario iniciar el servicio Docker en sus aplicaciones. La instancia en la que se aloja la aplicación de Studio ejecuta el servicio Docker de forma predeterminada. Todas las llamadas a la API de Docker se enrutan automáticamente a través del servicio Docker.

1. Utilice el socket de Docker expuesto para las interacciones de Docker dentro de las aplicaciones de Studio. De forma predeterminada, se expone el siguiente socket:

   ```
   unix:///docker/proxy.sock
   ```

   La siguiente variable de entorno de la aplicación de Studio del `USER` predeterminado utiliza este socket expuesto:

   ```
   DOCKER_HOST
   ```

### Sin acceso a Internet
<a name="studio-updated-local-docker-installation-no-internet"></a>

Si el dominio se crea en modo `VPC-only` sin acceso a Internet, siga estos pasos para instalar Docker.

1. Vaya al terminal de la aplicación de Studio en la que desee instalar Docker.

1. Para devolver el sistema operativo de la aplicación, ejecute el siguiente comando desde el terminal:

   ```
   cat /etc/os-release
   ```

1. Descargue los archivos `.deb` de Docker en el equipo local. Para obtener instrucciones sobre cómo descargar los archivos necesarios para el sistema operativo de la aplicación de Studio, consulte [Install Docker Engine](https://docs.docker.com/engine/install/).

   Por ejemplo, instale Docker desde un paquete en Ubuntu siguiendo los pasos 1 a 4 de [Install from a package](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) teniendo en cuenta las siguientes consideraciones:
   + Instale Docker desde un paquete. Si se utilizan otros métodos para instalar Docker, se producirá un error.
   + Instale los paquetes más recientes correspondientes a la versión `20.10.X` de Docker.
   + Los siguientes paquetes no son obligatorios para usar la Docker CLI en Studio. No es necesario instalar lo siguiente:
     + `containerd.io`
     + `docker-ce`
     + `docker-buildx-plugin`
**nota**  
No es necesario iniciar el servicio Docker en sus aplicaciones. La instancia en la que se aloja la aplicación de Studio ejecuta el servicio Docker de forma predeterminada. Todas las llamadas a la API de Docker se enrutan automáticamente a través del servicio Docker.

1. Cargue los archivos `.deb` en el sistema de archivos de Amazon EFS o en el sistema de archivos de Amazon EBS de la aplicación.

1. Instale manualmente los paquetes `.deb` de `docker-ce-cli` y `docker-compose-plugin` desde el terminal de la aplicación de Studio. Para obtener más información e instrucciones, consulte el paso 5 de [Install from a package](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) en el sitio web de documentación de Docker.

1. Utilice el socket de Docker expuesto para las interacciones de Docker dentro de las aplicaciones de Studio. De forma predeterminada, se expone el siguiente socket:

   ```
   unix:///docker/proxy.sock
   ```

   La siguiente variable de entorno de la aplicación de Studio del `USER` predeterminado utiliza este socket expuesto:

   ```
   DOCKER_HOST
   ```

# Visualización de instancias, aplicaciones y espacios en ejecución de Studio
<a name="studio-updated-running"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

En los siguientes temas se incluyen información e instrucciones sobre cómo ver las instancias, aplicaciones y espacios en ejecución de Studio. Para obtener más información sobre los espacios de Studio, consulte [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md).

## Visualización de instancias y aplicaciones en ejecución de Studio
<a name="studio-updated-running-view-app"></a>

La página **Instancias en ejecución** proporciona información sobre todas las instancias de aplicaciones en ejecución que el usuario creó en Amazon SageMaker Studio o que se compartieron con el usuario. 

Puede ver y detener las instancias en ejecución de todas sus aplicaciones y espacios. Si una instancia está detenida, no aparece en esta página. Las instancias detenidas se pueden ver en la página de inicio de sus respectivos tipos de aplicación. 

Puede ver una lista de las aplicaciones en ejecución y sus detalles en Studio.

**Visualización de instancias en ejecución**

1. Lance Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md). 

1. En el panel de navegación izquierdo, elija **Instancias en ejecución**. 

1. En la página **Instancias en ejecución** puede ver una lista de aplicaciones en ejecución y detalles sobre ellas. 

   Para ver las instancias que no están en ejecución, en el panel de navegación izquierdo, elija la aplicación correspondiente en **Aplicaciones**. Las aplicaciones que no se estén ejecutando tendrán el estado **Detenido** en la columna **Estado**.

## Visualización de los espacios de Studio
<a name="studio-updated-running-view-space"></a>

En la sección **Espacios** de la página **Detalles del dominio** se proporciona información sobre los espacios de Studio de su dominio. Puede ver, crear y eliminar espacios en esta página. 

Los espacios que aparecen en la sección **Espacios** son espacios en ejecución para lo siguiente:
+ JupyterLab espacio privado. Para obtener información sobre JupyterLab, consulte[SageMaker JupyterLab](studio-updated-jl.md).
+ Espacio privado del editor de código. Para obtener información sobre el editor de código, basado en Code-OSS, Visual Studio Code: Open Source, consulte [Editor de código en Amazon SageMaker Studio](code-editor.md).
+ Espacio compartido de Studio Classic. Para obtener información sobre el espacio compartido de Studio Classic, consulte [Colaboración con espacios compartidos](domain-space.md).

No hay espacios para SageMaker Canvas, Studio Classic (privado) o RStudio. 

**Vea sus espacios de Studio en un dominio**

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

1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**.

1. Elija el dominio cuyos espacios desee ver.

1. En la página **Detalles del dominio**, elija la pestaña **Administración del espacio** y abra la sección **Espacios**.

**Vea los espacios de su estudio utilizando el AWS CLI**

Usa el siguiente comando para enumerar todos los espacios de tu dominio:

```
aws sagemaker list-spaces --region us-east-1 --domain-id domain-id
```
+ `us-east-1`es tu Región de AWS.
+ *domain-id* es su ID de dominio. Para obtener más información, consulte [Visualización de dominios](domain-view.md).

# Detención y eliminación de aplicaciones y espacios en ejecución de Studio
<a name="studio-updated-running-stop"></a>

La siguiente página incluye información e instrucciones sobre cómo detener y eliminar los recursos de Amazon SageMaker Studio no utilizados para evitar costes adicionales no deseados. En el caso de los recursos de Studio que ya no desee utilizar, deberá hacer las dos cosas siguientes:
+ Detener la aplicación: esto detiene la aplicación y elimina la instancia en la que se está ejecutando la aplicación. Después de detener una aplicación, se puede volver a iniciar.
+ Eliminar el espacio: se elimina el volumen de Amazon EBS que se creó para la aplicación y la instancia.
**importante**  
Si elimina el espacio, perderá el acceso a los datos de ese espacio. No elimine el espacio a menos que esté seguro de que desea hacerlo.

Para obtener más información sobre las diferencias entre espacios y aplicaciones de Studio, consulte [Visualización de instancias, aplicaciones y espacios en ejecución de Studio](studio-updated-running.md).

**Topics**
+ [Detenga su aplicación Amazon SageMaker Studio](#studio-updated-running-stop-app)
+ [Eliminación de un espacio de Studio](#studio-updated-running-stop-space)

## Detenga su aplicación Amazon SageMaker Studio
<a name="studio-updated-running-stop-app"></a>

Para evitar cargos adicionales por aplicaciones en ejecución que no se utilizan, debe detenerlas. A continuación, se incluye información sobre lo que hace detener una aplicación y cómo hacerlo.
+ Las siguientes instrucciones utilizan la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html) para detener la aplicación. Esto también detiene la instancia en la que se está ejecutando la aplicación.
+ Tras detener una aplicación, puede volver a iniciar la aplicación más adelante.
  + Al eliminar una aplicación, los archivos del espacio se conservan. Puede volver a ejecutar la aplicación y contar con tener acceso a los mismos archivos que están almacenados en el espacio, del mismo modo que antes de eliminar la aplicación.

    
  + Al eliminar una detener una aplicación, los *metadatos* de la aplicación se eliminarán en un plazo de 24 horas. Para obtener más información, consulta la nota del elemento de `CreationTime` respuesta de la [DescribeApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeApp.html#sagemaker-DescribeApp-response-CreationTime)API.

**nota**  
Si el servicio detecta que una aplicación no está en buen estado, asume el rol vinculado al servicio [AmazonSageMakerNotebooksServiceRolePolicy](security-iam-awsmanpol-notebooks.md#security-iam-awsmanpol-AmazonSageMakerNotebooksServiceRolePolicy) y elimina la aplicación mediante la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html).

En las siguientes pestañas se proporcionan instrucciones para detener una aplicación de tu dominio mediante la interfaz de usuario de Studio, la consola de SageMaker IA o la AWS CLI.

**nota**  
Para ver y detener todas las instancias en ejecución de Studio en un solo lugar, recomendamos seguir el flujo de trabajo [Detención de aplicaciones desde la interfaz de usuario de Studio](#studio-updated-running-stop-app-using-studio-updated-ui) con las siguientes opciones.

### Detención de aplicaciones desde la interfaz de usuario de Studio
<a name="studio-updated-running-stop-app-using-studio-updated-ui"></a>

Para detener sus aplicaciones de Studio desde la interfaz de usuario de Studio, siga estas instrucciones.

**Cómo eliminar las aplicaciones (interfaz de usuario de Studio)**

1. Inicie Studio. Este proceso puede variar en función de la configuración. Para obtener información sobre cómo inicializar Studio, consulte [Inicie Amazon SageMaker Studio](studio-updated-launch.md). 

1. En el panel de navegación izquierdo, elija **Instancias en ejecución**. 

   Si la tabla de la página está vacía, significa que no hay ninguna instancia o aplicación en ejecución en sus espacios.

1. En la tabla situada debajo de las columnas **Nombre** y **Aplicación**, busque el nombre del espacio y la aplicación que desea detener.

1. Pulse el botón **Parar** correspondiente para detener la aplicación.

### Detenga las aplicaciones mediante la consola de SageMaker IA
<a name="studio-updated-running-stop-app-using-sagemaker-console"></a>

Para ver o detener las instancias en ejecución de Studio desde una ubicación centralizada, consulte [Detención de aplicaciones desde la interfaz de usuario de Studio](#studio-updated-running-stop-app-using-studio-updated-ui). De lo contrario, utilice las instrucciones siguientes.

En la consola de SageMaker IA, solo puedes detener las aplicaciones de Studio en ejecución para los espacios que puedas ver en la sección **Spaces** de la consola. Para obtener una lista de espacios visibles, consulte [Visualización de los espacios de Studio](studio-updated-running.md#studio-updated-running-view-space).

Estos pasos muestran cómo detener las aplicaciones de Studio mediante la consola de SageMaker IA.

**Para detener las aplicaciones (consola de SageMaker IA)**

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

1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

1. Elija el dominio que desea revertir.

1. En la página **Detalles del dominio**, elija la pestaña **Administración del espacio**.

1. 
**importante**  
En la pestaña **Administración del espacio** tiene la opción de eliminar el espacio. No es lo mismo eliminar el espacio que eliminar una aplicación. Si elimina el espacio, perderá el acceso a los datos de ese espacio. No elimine el espacio a menos que esté seguro de que desea hacerlo.

   Para detener la aplicación, en la pestaña **Administración del espacio** y en la columna **Nombre**, elija el espacio de la aplicación.

1. En la sección **Aplicaciones** y en la columna **Tipo de aplicación**, busque la aplicación que desea detener.

1. En la columna **Acción**, seleccione el botón **Eliminar aplicación** correspondiente.

1. En el cuadro emergente, elija **Sí, eliminar aplicación**. A continuación, se vuelve disponible el campo de entrada para la eliminación.

1. Escriba **delete** en el campo de entrada de eliminación para confirmar la eliminación.

1. Elija **Eliminar**.

### Detenga sus aplicaciones de dominio mediante el AWS CLI
<a name="studio-updated-running-stop-app-using-cli"></a>

Para ver o detener cualquiera de sus instancias en ejecución de Studio desde una ubicación centralizada, consulte [Detención de aplicaciones desde la interfaz de usuario de Studio](#studio-updated-running-stop-app-using-studio-updated-ui). De lo contrario, utilice las instrucciones siguientes.

En los siguientes ejemplos de código se utiliza la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html) para detener una aplicación en un ejemplo de dominio. 

Para detener las instancias en ejecución **JupyterLab**o **del editor de código**, usa el siguiente ejemplo de código:

```
aws sagemaker delete-app \
--domain-id example-domain-id \
--region Región de AWS \
--app-name default \
--app-type example-app-type \
--space-name example-space-name
```
+ Para obtener su `example-domain-id`, siga estas instrucciones:

**Obtención de `example-domain-id`**

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

  1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

  1. Elija el dominio correspondiente.

  1. En la página **Detalles del dominio**, elija la pestaña **Configuración del dominio**.

  1. Copie el **ID de dominio**.
+ Para obtener su `Región de AWS`, siga estas instrucciones para asegurarse de utilizar la Región de AWS correcta para su dominio: 

**Obtención de `Región de AWS`**

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

  1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

  1. Elija el dominio correspondiente.

  1. En la página **Detalles del dominio** compruebe que se trata del dominio correspondiente.

  1. Amplíe la lista desplegable de regiones en la parte superior derecha de la consola de SageMaker IA y utilice el Región de AWS ID correspondiente a la derecha de su Región de AWS nombre. Por ejemplo, `us-west-1`.
+ Para `example-app-type`, utilice el tipo de aplicación correspondiente a la aplicación que desee detener. Por ejemplo, reemplace `example-app-type` por uno de los tipos de aplicación siguientes:
  + JupyterLab tipo de aplicación:`JupyterLab`. Para obtener información sobre JupyterLab, consulte[SageMaker JupyterLab](studio-updated-jl.md).
  + Tipo de aplicación del editor de código: `CodeEditor`. Para obtener información sobre el editor de código, basado en Code-OSS, Visual Studio Code: Open Source, consulte [Editor de código en Amazon SageMaker Studio](code-editor.md).
+ Para obtener su `example-space-name`, use los pasos siguientes: 

**Obtención de `example-space-name`**

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

  1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

  1. Elija el dominio correspondiente.

  1. En la página **Detalles del dominio**, elija la pestaña **Administración del espacio**.

  1. Copie el nombre del espacio correspondiente.

Para dejar de ejecutar instancias para **SageMaker Canvas**, **Studio Classic** o **RStudio**, usa el siguiente ejemplo de código:

```
aws sagemaker delete-app \
--domain-id example-domain-id \
--region Región de AWS \
--app-name default \
--app-type example-app-type \
--user-profile example-user-name
```
+ Para `example-app-type`, utilice el tipo de aplicación correspondiente a la aplicación que desee detener. Por ejemplo, reemplace `example-app-type` por uno de los tipos de aplicación siguientes:
  + SageMaker Tipo de aplicación Canvas:`Canvas`. Para obtener información sobre SageMaker Canvas, ver[Amazon SageMaker Canvas](canvas.md).
  + Tipo de aplicación de Studio Classic: `JupyterServer`. Para obtener información sobre Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).
  + RStudio tipo de aplicación:`RStudioServerPro`. Para obtener información sobre RStudio, consulte[RStudio en Amazon SageMaker AI](rstudio.md).
+ Para obtener su `example-user-name`, vaya a la página **Detalles del dominio**. 
  + A continuación, seleccione la pestaña **Perfiles de usuario** y copie el nombre del espacio correspondiente.

Para obtener instrucciones alternativas sobre cómo detener las aplicaciones de Studio en ejecución, consulte: 
+ JupyterLab: [Eliminación de recursos sin usar](studio-updated-jl-admin-guide-clean-up.md).
+ Editor de código: [Cierre de los recursos del editor de código](code-editor-use-log-out.md).
+ SageMaker Lienzo:[Cerrar sesión en Amazon SageMaker Canvas](canvas-log-out.md).
+ Studio Classic: [Cierre y actualice Amazon SageMaker Studio Classic y sus aplicaciones](studio-tasks-update.md).
+ RStudio: [Apagar RStudio](rstudio-shutdown.md).

## Eliminación de un espacio de Studio
<a name="studio-updated-running-stop-space"></a>

**importante**  
Tras eliminar el espacio, perderá todos los datos almacenados en él. Recomendamos que haga una copia de seguridad de los datos antes de eliminar el espacio.

Para eliminar un espacio de Studio, necesita permisos de administrador o, al menos, permiso para actualizar el dominio, IAM y Amazon S3.
+ Los espacios se utilizan para administrar las necesidades de almacenamiento y recursos de la aplicación correspondiente. Al eliminar un espacio, el volumen de almacenamiento también se elimina. Por lo tanto, pierde el acceso a los archivos almacenados en ese espacio. Para obtener más información sobre los espacios de Studio, consulte [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md).

  Recomendamos que haga una copia de seguridad de los datos si decide eliminar un espacio.
+ No puede volver a acceder a él después de haberlo eliminado.

Puede eliminar los espacios de Studio que están visibles en la sección **Espacios** de la consola. Para obtener una lista de espacios visibles, consulte [Visualización de los espacios de Studio](studio-updated-running.md#studio-updated-running-view-space). 

No hay espacios para SageMaker Canvas, Studio Classic (privado) y RStudio. Para detener y eliminar su SageMaker Canvas, Studio Classic (privado) o RStudio aplicaciones, consulte[Detenga su aplicación Amazon SageMaker Studio](#studio-updated-running-stop-app).

### Elimine un espacio mediante la consola de SageMaker IA
<a name="studio-updated-running-stop-space-using-sagemaker-console"></a>

En la sección **Espacios** de la página **Detalles del dominio** se proporciona información sobre los espacios de Studio de su dominio. Puede ver, crear y eliminar espacios en esta página. 

**Visualización de espacios de Studio en un dominio**

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

1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

1. Elija el dominio cuyos espacios desee ver.

1. En **Detalles del dominio**, seleccione **Administración de espacios** para abrir la sección **Espacios**.

1. Seleccione el espacio que desea eliminar.

1. Elija **Eliminar**. 

1. En el cuadro emergente titulado **Eliminar espacio**, tiene dos opciones: 
   + Si ya ha cerrado todas las aplicaciones del espacio, seleccione **Sí, eliminar espacio**.
   + Si aún tiene aplicaciones en ejecución en el espacio, seleccione **Sí, cerrar todas las aplicaciones y eliminar espacio**.

1. Escriba **delete** en el campo de entrada de eliminación para confirmar la eliminación.

1. Para eliminar el espacio, dispone de dos opciones:
   + Si ya ha cerrado todas las aplicaciones del espacio, seleccione **Eliminar espacio**.
   + Si aún tiene aplicaciones en ejecución en el espacio, seleccione **Cerrar todas las aplicaciones y eliminar espacio**.

### Elimine un espacio mediante el AWS CLI
<a name="studio-updated-running-stop-space-using-cli"></a>

Para poder eliminar un espacio mediante el AWS CLI, debe eliminar la aplicación asociada a él. Para obtener información sobre cómo detener sus aplicaciones de Studio, consulte [Detenga su aplicación Amazon SageMaker Studio](#studio-updated-running-stop-app).

Utilice el siguiente AWS CLI comando para eliminar un espacio de un dominio:

```
aws sagemaker delete-space \
--domain-id example-domain-id \
--region Región de AWS \
--space-name example-space-name
```
+ Para obtener su `example-domain-id`, siga estas instrucciones:

**Obtención de `example-domain-id`**

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

  1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

  1. Elija el dominio correspondiente.

  1. En la página **Detalles del dominio**, elija la pestaña **Configuración del dominio**.

  1. Copie el **ID de dominio**.
+ Para obtener su `Región de AWS`, siga estas instrucciones para asegurarse de utilizar la Región de AWS correcta para su dominio: 

**Obtención de `Región de AWS`**

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

  1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

  1. Elija el dominio correspondiente.

  1. En la página **Detalles del dominio** compruebe que se trata del dominio correspondiente.

  1. Amplíe la lista desplegable de regiones en la parte superior derecha de la consola de SageMaker IA y utilice el Región de AWS ID correspondiente a la derecha de su Región de AWS nombre. Por ejemplo, `us-west-1`.
+ Para obtener su `example-space-name`, use los pasos siguientes: 

**Obtención de `example-space-name`**

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

  1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

  1. Elija el dominio correspondiente.

  1. En la página **Detalles del dominio**, elija la pestaña **Administración del espacio**.

  1. Copie el nombre del espacio correspondiente.

# SageMaker Política de soporte de imágenes de Studio
<a name="sagemaker-distribution"></a>

**importante**  
Actualmente, todos los paquetes de las imágenes de SageMaker distribución tienen licencia para su uso con Amazon SageMaker AI y no requieren licencias comerciales adicionales. Sin embargo, esto podría estar sujeto a cambios en el futuro, por lo que recomendamos revisar los términos de licencia con regularidad para comprobar las actualizaciones.

Amazon SageMaker Distribution es un conjunto de imágenes de Docker disponibles en SageMaker Studio que incluyen marcos populares para el aprendizaje automático, la ciencia de datos y la visualización.

Las imágenes incluyen marcos de aprendizaje profundo como PyTorch TensorFlow y Keras; paquetes populares de Python como numpy, scikit-learn y pandas; y like y Code Editor, basado en IDEs JupyterLab Code-OSS, Visual Studio Code - Open Source. La distribución contiene las versiones más recientes de todos estos paquetes, por lo que son compatibles entre sí.

En esta página se detalla la política de soporte y la disponibilidad de imágenes de distribución en Studio. SageMaker SageMaker

## Control de versiones, cadencia de lanzamiento y política de soporte
<a name="sm-distribution-versioning"></a>

En la siguiente tabla se describe el calendario de lanzamiento de las versiones de SageMaker Distribution Image y su soporte previsto. AWS proporciona actualizaciones continuas de funcionalidad y seguridad para las versiones de imágenes compatibles. Se lanzan nuevas versiones secundarias para las versiones principales durante 12 meses. Las versiones secundarias compatibles reciben parches continuos de funcionalidad y seguridad. En algunos casos, es posible que sea necesario declarar el fin del soporte de una versión de imagen antes de lo previsto originalmente si (a) no se pueden abordar los problemas de seguridad mientras se mantienen las pautas de control de versiones semántico o (b) si alguna de nuestras principales dependencias, como Python, alcanza. end-of-life AWS publica versiones principales o secundarias ad hoc según sea necesario.


| Versión | Description (Descripción) | Liberar cadencia | Soporte planificado | 
| --- | --- | --- | --- | 
| Principales | Los lanzamientos de las principales versiones de Amazon SageMaker Distribution implican la actualización de todas sus dependencias principales a las versiones compatibles más recientes. Estas versiones principales también pueden añadir o eliminar paquetes como parte de la actualización. Las versiones principales se indican con el primer número de la cadena de versiones, por ejemplo, 1.0, 2.0 o 3.0. | 6 meses | 18 meses | 
| Secundarias | Las versiones secundarias de Amazon SageMaker Distribution incluyen la actualización de todas sus dependencias principales a las últimas versiones secundarias compatibles dentro de la misma versión principal. SageMaker La distribución puede añadir nuevos paquetes durante el lanzamiento de una versión secundaria. Las versiones secundarias se indican con el segundo número de la cadena de versión, por ejemplo, 1.1, 1.2 o 2.1. | 1 mes | 6 meses | 
| Parche | Las versiones de parches de Amazon SageMaker Distribution incluyen la actualización de todas sus dependencias principales a las últimas versiones de parches compatibles dentro de la misma versión secundaria. SageMaker La distribución no añade ni elimina ningún paquete durante el lanzamiento de una versión de parche. Las versiones de parche se indican con el tercer número de la cadena de versión, por ejemplo, 1.1.1, 1.2.1 o 2.1.3. Dado que las versiones de parche suelen lanzarse para corregir vulnerabilidades de seguridad, recomendamos actualizar siempre a la versión de parche más reciente cuando esté disponible. | Cuando sea necesario para corregir vulnerabilidades de seguridad | Hasta que se publique una nueva versión de parche | 

Cada versión principal de Amazon SageMaker Distribution está disponible durante 18 meses. Durante los primeros 12 meses se publican nuevas versiones secundarias cada mes. Durante los 6 meses restantes se seguirá ofreciendo soporte a las versiones secundarias existentes.

## Versiones de imágenes compatibles
<a name="sagemaker-distribution-supported-packages"></a>

En las tablas siguientes se muestran las versiones de imágenes de SageMaker distribución compatibles, sus fechas de finalización del soporte técnico previstas y su disponibilidad en SageMaker Studio. En el caso de las versiones de imágenes cuyo soporte finalice antes de la fecha de finalización de soporte prevista, seguirán estando disponibles en Studio hasta la fecha de disponibilidad designada. Puede seguir usando la imagen para inicializar aplicaciones durante un máximo de 90 días o hasta la fecha de disponibilidad en Studio, lo que ocurra primero. Para obtener más información sobre estos casos, ponte en contacto con Soporte.

Puede migrar a una versión compatible más reciente lo antes posible para asegurarse de recibir actualizaciones continuas de funcionalidad y seguridad. Al elegir una versión de imagen en SageMaker Studio, te recomendamos que elijas una versión de imagen compatible de las tablas siguientes.

### Versiones principales compatibles
<a name="sm-distribution-major-versions"></a>

En la siguiente tabla se muestran las principales versiones de imágenes de SageMaker distribución compatibles.


| Versión de imagen | Último lanzamiento de la versión secundaria | Compatible hasta | Description (Descripción) | 
| --- | --- | --- | --- | 
| 1.x.x | 30 de abril de 2025 | 30 de octubre de 2025 | SageMaker La versión principal de distribución 1 está construida con Python 3.10. | 
| 2.x.x | 25 de agosto de 2025 | 25 de febrero de 2026 | SageMaker La versión principal de distribución 2 está construida con Python 3.11. | 
|  3.x.x  | 29 de marzo de 2026 | 29 de septiembre de 2026 |  SageMaker La versión principal de distribución 3 está construida con Python 3.12.  | 

### Versiones secundarias de imágenes de CPU
<a name="sm-distribution-cpu-versions"></a>

En la siguiente tabla se enumeran las versiones de imágenes secundarias de SageMaker distribución compatibles para CPUs.


| Versión de imagen | URI de imagen de Amazon ECR | Fecha prevista de finalización del soporte | Disponibilidad en Studio hasta | Notas de la versión | 
| --- | --- | --- | --- | --- | 
| 3.1.x | public.ecr. aws/sagemaker/sagemaker- distribución: 3.1 - cpu | 19 de noviembre de 2025 | 19 de noviembre de 2025 | [Notas de la versión](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.1) | 
| 3.0.x  | public.ecr. aws/sagemaker/sagemaker- distribución: 3.0-cpu  | 30 de junio de 2025 | 29 de septiembre de 2025 | [Notas de la versión](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.0) | 
| 2.6.x | public.ecr. aws/sagemaker/sagemaker- distribución: 2.6 CPU | 30 de junio de 2025 | 28 de octubre de 2025 | [Notas de la versión](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v2/v2.6) | 

### Versiones secundarias de imágenes de GPU
<a name="sm-distribution-gpu-versions"></a>

En la siguiente tabla se enumeran las versiones de imágenes secundarias de distribución compatibles SageMaker para. GPUs


| Versión de imagen | URI de imagen de Amazon ECR | Fecha prevista de finalización del soporte | Disponibilidad en Studio hasta | Notas de la versión del parche más reciente | 
| --- | --- | --- | --- | --- | 
| 3.1.x | public.ecr. aws/sagemaker/sagemaker- distribución: 3.1 - gpu | 19 de noviembre de 2025 | 19 de noviembre de 2025 | [Notas de la versión](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.1) | 
| 3.0.x | public.ecr. aws/sagemaker/sagemaker- distribución: 3.0-gpu | 30 de junio de 2025 | 29 de septiembre de 2025 | [Notas de la versión](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.0) | 
| 2.6.x | public.ecr. aws/sagemaker/sagemaker- distribución: 2.6 GPU | 30 de junio de 2025 | 28 de octubre de 2025 | [Notas de la versión](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v2/v2.6) | 

### Imágenes compatibles
<a name="sm-distribution-unsupported-images"></a>

La siguiente tabla muestra las versiones de imágenes de distribución no compatibles. SageMaker 


| Versión de imagen | URI de imagen de Amazon ECR | Fecha de finalización del soporte | Disponibilidad en Studio hasta | 
| --- | --- | --- | --- | 
| 2.4.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 2.4 CPU public.ecr. aws/sagemaker/sagemaker- distribución: 2.4 CPU  | 7 de septiembre de 2025 | 7 de septiembre de 2025 | 
| 2.3.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 2.3 CPU public.ecr. aws/sagemaker/sagemaker- distribución: 2.3 CPU  | 27 de julio de 2025 | 27 de julio de 2025 | 
| 2.2.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 2.2 CPU public.ecr. aws/sagemaker/sagemaker- distribución: 2.2-gpu  | 15 de mayo de 2025 | 15 de mayo de 2025 | 
| 2.1.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 2.1 - cpu public.ecr. aws/sagemaker/sagemaker- distribución: 2.1 - gpu  | 25 de abril de 2025 | 12 de mayo de 2025 | 
| 2.0.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 2.0-cpu public.ecr. aws/sagemaker/sagemaker- distribución: 2.0-gpu  | 25 de febrero de 2025 | 21 de abril de 2025 | 
| 1.13.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.13 - cpu public.ecr. aws/sagemaker/sagemaker- distribución: 1.13-gpu  | 15 de mayo de 2025 | 20 de septiembre de 2025 | 
| 1.12.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.12-cpu public.ecr. aws/sagemaker/sagemaker- distribución: 1.12-gpu  | 23 de julio de 2025 | 23 de julio de 2025 | 
| 1.11.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.11-cpu public.ecr. aws/sagemaker/sagemaker- distribución: 1.11-gpu  | 1 de abril de 2025 | 12 de mayo de 2025 | 
| 1.10.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.10-cpu public.ecr. aws/sagemaker/sagemaker- distribución: 1.10-gpu  | 5 de febrero de 2025 | 10 de abril de 2025 | 
| 1.9.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.9 CPU public.ecr. aws/sagemaker/sagemaker- distribución: 1.9-gpu  | 15 de enero de 2025 | 10 de abril de 2025 | 
| 1.8.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.8 CPU public.ecr. aws/sagemaker/sagemaker- distribución: 1.8 - gpu  | 31 de diciembre de 2024 | 10 de abril de 2025 | 
| 1.7.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.7 CPU public.ecr. aws/sagemaker/sagemaker- distribución: 1.7 -gpu  | 15 de diciembre de 2024 | 10 de abril de 2025 | 
| 1.6.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.6 CPU public.ecr. aws/sagemaker/sagemaker- distribución: 1.6 GPU  | 15 de diciembre de 2024 | 10 de abril de 2025 | 
| 1.5.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.5 CPU public.ecr. aws/sagemaker/sagemaker- distribución: 1.5 GPU  | 31 de octubre de 2024 | 1 de noviembre de 2024 | 
| 1.4.x |  public.ecr. aws/sagemaker/sagemaker- distribución: 1.4 CPU public.ecr. aws/sagemaker/sagemaker- distribución: 1.4 -gpu  | 31 de octubre de 2024 | 1 de noviembre de 2024 | 
| 1.3.x | public.ecr. aws/sagemaker/sagemaker- distribución: 1.3 CPU | 28 de junio de 2024 | 18 de octubre de 2024 | 
| 1.2.x | public.ecr. aws/sagemaker/sagemaker- distribución: 1.2 CPU | 28 de junio de 2024 | 18 de octubre de 2024 | 

### Preguntas frecuentes
<a name="sm-distribution-faqs"></a>

**¿Qué constituye el lanzamiento de una versión de imagen principal?**

Las versiones de imágenes principales se publican cada 6 meses. El lanzamiento de una versión de imagen importante para Amazon SageMaker Distribution implica la actualización de todas las dependencias principales a las últimas versiones compatibles y puede incluir la adición o eliminación de paquetes. El marco de Python solo se actualiza con las versiones principales nuevas. Por ejemplo, con la versión 2 principal, el marco Python se actualizó de 3.10 a 3.11, PyTorch se actualizó de 2.0 a 2.3, TensorFlow se actualizó de 2.14 a 2.17, Autogluon se actualizó de 0.8 a 1.1 y se agregaron 4 paquetes a la imagen.

**¿Qué constituye el lanzamiento de una versión de imagen secundaria?**

Mensualmente se publican versiones de imágenes secundarias para todas las versiones principales compatibles. El lanzamiento de una versión de imagen secundaria para Amazon SageMaker Distribution implica la actualización de todas las dependencias principales, excepto Python y CUDA, a las últimas versiones secundarias compatibles dentro de la misma versión principal y puede incluir la adición de nuevos paquetes. Por ejemplo, con una versión secundaria, langchain podría actualizarse de 0.1 a 0.2 y jupyter-ai de 2.18 a 2.20.

**¿Qué constituye el lanzamiento de una versión de imagen de parche?**

Las versiones de imagen de parche se publican según sea necesario para corregir las vulnerabilidades de seguridad. El lanzamiento de una versión con imagen de parche para Amazon SageMaker Distribution implica la actualización de todas sus dependencias principales a las últimas versiones de parches compatibles dentro de la misma versión secundaria. SageMaker La distribución no añade ni elimina ningún paquete durante el lanzamiento de una versión de parche. Por ejemplo, con el lanzamiento de una versión de parche, matplotlib podría actualizarse de 3.9.1 a 3.9.2 y boto3 de 1.34.131 a 1.34.162.

**¿Dónde puedo encontrar los paquetes disponibles en una versión de imagen específica?**

Cada versión de imagen tiene un `release.md` archivo en la `build_artifacts` carpeta [del GitHub repositorio](https://github.com/aws/sagemaker-distribution) que muestra todos los paquetes y las versiones de los paquetes de las imágenes de la CPU y la GPU. Los archivos de registro de cambios individuales para las versiones de CPU y GPU detallan las actualizaciones de los paquetes. Los registros de cambios comparan la nueva versión de imagen con la anterior. Por ejemplo, la versión 1.9.0 se compara con la última versión del parche 1.8, la versión 1.9.1 con 1.9.0 y la versión 2.0.0 con la última versión de parche de la última versión secundaria disponible en ese momento.

**¿Cómo se escanean las imágenes para detectar vulnerabilidades y exposiciones comunes (CVEs)?**

Amazon SageMaker AI aprovecha el [escaneo mejorado de Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning-enhanced.html) para detectar automáticamente las vulnerabilidades y corregir las imágenes de distribución. SageMaker AWS ejecuta continuamente el escaneo mejorado con ECR para obtener la última versión del parche de todas las versiones de imágenes compatibles. Cuando se detectan vulnerabilidades y hay una solución disponible, AWS publica una versión de imagen actualizada para solucionar el problema.

**¿Puedo seguir utilizando imágenes antiguas cuando una imagen deja ser compatible?**

Las imágenes están disponibles en SageMaker Studio hasta la fecha de disponibilidad designada. Las imágenes antiguas permanecen disponibles en ECR cuando llegan al fin del soporte y se eliminan de Studio. Puede descargar versiones anteriores de imágenes desde ECR y [crear una SageMaker imagen personalizada](studio-byoi-create.md). Sin embargo, le recomendamos encarecidamente que se actualice a una versión de imagen compatible que reciba actualizaciones de seguridad y correcciones de errores de forma continua. Los clientes que crean sus propias imágenes personalizadas son responsables de escanearlas y aplicarles parches. Para obtener más información, consulte [Modelo de responsabilidad compartida de AWS](https://aws.amazon.com/compliance/shared-responsibility-model/).

**importante**  
SageMaker La distribución v0.x.y solo se usa en Studio Classic. SageMaker La distribución v1.x.y solo se usa en. JupyterLab

# Precios de Amazon SageMaker Studio
<a name="studio-updated-cost"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

El uso de la interfaz de usuario de Amazon SageMaker Studio no conlleva ningún coste adicional.  

Los siguientes gastos conllevan costos:
+ Volúmenes de Amazon Elastic Block Store o Amazon Elastic File System que se montan con las aplicaciones.
+ Todos los trabajos y recursos que los usuarios inicializan desde las aplicaciones de Studio.
+ Lanzar una JupyterLab aplicación, incluso si no se han lanzado recursos o trabajos en la aplicación. 

Para obtener información sobre cómo se factura Amazon SageMaker Studio Classic, consulte[Precios de Amazon SageMaker Studio Classic](studio-pricing.md). 

Para obtener más información sobre la facturación y ejemplos de precios, consulta [Amazon SageMaker Pricing](https://aws.amazon.com//sagemaker/pricing/). 

# Resolución de problemas
<a name="studio-updated-troubleshooting"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

En esta sección se muestra cómo solucionar problemas comunes en Amazon SageMaker Studio.

## Método de recuperación
<a name="studio-updated-troubleshooting-recovery-mode"></a>

El modo de recuperación le permite acceder a su aplicación de Studio cuando un problema de configuración impide que se pueda iniciar de forma normal. Este método proporciona un entorno simplificado con funciones esenciales para diagnosticar y solucionar el problema.

Cuando una aplicación no se inicia, es posible que aparezca un mensaje de error sobre el acceso al modo de recuperación para solucionar uno de los siguientes problemas de configuración.
+ Archivo [https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html](https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html) dañado.

  Para obtener más información sobre la solución de problemas del archivo `.condarc`, consulte la página de [solución de problemas](https://docs.conda.io/projects/conda/en/latest/user-guide/troubleshooting.html) de la *Guía del usuario de Conda*.
+ Volumen de almacenamiento disponible insuficiente. 

  Puede aumentar el espacio de almacenamiento de Amazon EBS disponible para la aplicación o entrar en el modo de recuperación para eliminar los datos innecesarios.

  Para obtener más información sobre cómo aumentar el tamaño del volumen de Amazon EBS, consulte [solicitar un tamaño de cuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) en la *Guía para desarrolladores de Service Quotas*.

En el modo de recuperación:
+ Su directorio de inicio será diferente al de su inicio normal. Este directorio es temporal y garantiza que cualquier configuración dañada de su directorio de inicio estándar no afecte a las operaciones del modo de recuperación. Puede navegar hasta su directorio de inicio estándar mediante el comando `cd /home/sagemaker-user`.
  + Modo estándar: `/home/sagemaker-user`
  + Método de recuperación: `/tmp/sagemaker-recovery-mode-home`
+ El entorno conda utiliza un entorno conda básico mínimo con solo los paquetes esenciales. La configuración simplificada de conda ayuda a aislar los problemas relacionados con el entorno y proporciona funciones básicas para la solución de problemas.

Puede utilizar la interfaz de usuario de Studio o la AWS CLI para acceder a la aplicación en modo de recuperación.

### Uso de la interfaz de usuario de Studio para acceder a la aplicación en modo de recuperación.
<a name="studio-updated-troubleshooting-recovery-mode-console"></a>

A continuación, se proporcionan instrucciones para acceder a la aplicación en modo de recuperación.

1. Si aún no lo ha hecho, siga las instrucciones indicadas en [Lanzamiento desde la consola Amazon SageMaker AI](studio-updated-launch.md#studio-updated-launch-console) para lanzar la interfaz de usuario de Studio.

1. En el menú de navegación de la izquierda, elija la aplicación en **Aplicaciones**.

1. Elija el espacio con el que tiene problemas de configuración.

   Los siguientes pasos estarán disponibles cuando se tope con uno o más de los problemas de configuración mencionados anteriormente. En este caso, verá un cartel de advertencia y el mensaje **Modo de recuperación**. 
**nota**  
El banner de advertencia debería incluir una solución recomendada para solucionar el problema. Tome nota de ello antes de continuar.

1. Seleccione **Ejecutar espacio (modo de recuperación)**. 

1. Para acceder a la aplicación en modo de recuperación, selecciona **Abrir *application* (modo de recuperación)**.

### AWS CLI Utilícela para acceder a la aplicación en modo de recuperación
<a name="studio-updated-troubleshooting-recovery-mode-cli"></a>

Para acceder a la aplicación en modo de recuperación, debe agregarla `--recovery-mode` al comando [create-app](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-app.html) AWS CLI . A continuación, se proporciona un ejemplo sobre cómo acceder a la aplicación en modo de recuperación. 

Para el siguiente ejemplo, necesitará lo siguiente:
+ *domain-id*

  Para obtener los detalles de su dominio, consulte [Visualización de dominios](domain-view.md).
+ *space-name*

  Para obtener los nombres de los espacios asociados a su dominio, consulte [AWS CLI Utilícela para ver los espacios de SageMaker IA de su dominio](sm-console-domain-resources-view.md#sm-console-domain-resources-view-spaces-cli).
+ *app-name*

  El nombre de su aplicación de . Para ver sus aplicaciones, consulte [Úselo AWS CLI para ver las aplicaciones de SageMaker IA de su dominio](sm-console-domain-resources-view.md#sm-console-domain-resources-view-apps-cli).

------
#### [ Access Code Editor application in recovery mode ]

```
aws sagemaker create-app \
    --app-name app-name \
    --app-type CodeEditor \
    --domain-id domain-id \
    --space-name space-name \
    --recovery-mode
```

------
#### [ Access JupyterLab application in recovery mode ]

```
aws sagemaker create-app \
    --app-name app-name \
    --app-type JupyterLab \
    --domain-id domain-id \
    --space-name space-name \
    --recovery-mode
```

------

## No se puede eliminar el editor de código ni la aplicación JupyterLab
<a name="studio-updated-troubleshooting-cannot-delete-application"></a>

Este problema se produce cuando un usuario crea una aplicación desde Amazon SageMaker Studio, que solo está disponible en Studio, y luego revierte su experiencia predeterminada a Studio Classic. Como resultado, el usuario no puede eliminar una aplicación de Code Editor, basada en Code-OSS, Visual Studio Code (Open Source) o JupyterLab porque no puede acceder a la interfaz de usuario de Studio.

Para resolver este problema, notifique al administrador para que pueda eliminar la aplicación manualmente con la tecla AWS Command Line Interface ()AWS CLI. 

## EC2InsufficientCapacityError
<a name="studio-updated-troubleshooting-ec2-capacity"></a>

Este problema se produce cuando intentas administrar un espacio y, en este momento, AWS no hay suficiente capacidad disponible bajo demanda para atender tu solicitud. 

Para resolver este problema, siga este procedimiento. 
+ Espere unos minutos. A continuación, vuelva a enviar la solicitud. La capacidad puede cambiar con frecuencia.
+ Ejecute el espacio con un tamaño o tipo de instancia alternativo.

**nota**  
La capacidad está disponible en zonas de disponibilidad diferentes. Para maximizar la disponibilidad de capacidad para los usuarios, recomendamos configurar subredes en todas las zonas de disponibilidad. Studio vuelve a intentar todas las zonas de disponibilidad disponibles para el dominio.   
La disponibilidad de los tipos de instancia varía según las regiones. Para ver una lista de los tipos de instancias compatibles por región, consulta los [precios de Amazon SageMaker AI](https://aws.amazon.com/sagemaker/pricing/).

En la siguiente tabla se enumeran las familias de instancias y sus alternativas recomendadas.


| Familia de instancias | Tipo de CPU | v CPUs | Memoria (GiB) | Tipo de GPU | GPUs | Memoria de GPU (GiB) | Alternativa recomendada | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| G4dn | Procesadores escalables Intel Xeon de 2.ª generación | De 4 a 96 | De 16 a 384 | NVIDIA T4 Tensor Core | De 1 a 8 | 16 por GPU | G6 | 
| G5 | Procesadores AMD EPYC de 2.ª generación | De 4 a 192 | De 16 a 768 | Núcleo Tensor NVIDIA A10G | De 1 a 8 | 24 por GPU | G6e | 
| G6 | Procesadores AMD EPYC de 3.ª generación | De 4 a 192 | De 16 a 768 | Núcleo NVIDIA L4 Tensor | De 1 a 8 | 24 por GPU | G4dn | 
| G6e | Procesadores AMD EPYC de 3.ª generación | De 4 a 192 | De 32 a 1536 | Núcleo NVIDIA L40S Tensor | De 1 a 8 | 48 por GPU | G5, P4 | 
| P3 | Procesadores escalables Intel Xeon | De 8 a 96 | De 61 a 768 | NVIDIA Tesla V100 | De 1 a 8 | 16 por GPU (32 por GPU para P3dn) | G6e, P4 | 
| P4 | Procesadores escalables Intel Xeon de 2.ª generación | 96 | 1152 | Núcleo Tensor NVIDIA A100 | 8 | 320 (640 para P4de) | G6e | 
| P5 | Procesadores AMD EPYC de 3.ª generación | 192 | 2000 | Núcleo Tensor NVIDIA H100 | 8 | 640 | P4de | 

## Límite insuficiente (es necesario aumentar la cuota)
<a name="studio-updated-troubleshooting-insufficient-limit"></a>

Este problema se produce cuando aparece el siguiente mensaje de error al ejecutar un espacio. 

```
Error when creating application for space: ... : The account-level service limit is X Apps, with current utilization Y Apps and a request delta of 1 Apps. Please use Service Quotas to request an increase for this quota.
```

Hay un límite predeterminado del número de instancias que se puede ejecutar en cada Región de AWS, que se determina por tipo de instancia. Este error significa que ha alcanzado ese límite. 

Para resolver este problema, solicita un aumento del límite de instancias para el espacio en el Región de AWS que vas a lanzar el espacio. Para obtener más información, consulte [Solicitud de un aumento de cuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).

## Error al cargar la imagen personalizada
<a name="studio-updated-troubleshooting-custom-image"></a>

Este problema se produce cuando se elimina una imagen de SageMaker IA antes de separarla de tu dominio. Lo puede comprobar al acceder a la pestaña **Entorno** de su dominio.

Para resolver este problema, tendrá que crear una nueva imagen temporal con el mismo nombre que la eliminada, desasociar la imagen y, a continuación, eliminar la imagen temporal. Use las siguientes instrucciones para probarlo.

1. Si aún no lo ha hecho, inicie la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. En el panel de navegación de la izquierda, seleccione **Dominios** en **Configuraciones de administración**.

1. Seleccione su dominio.

1. Seleccione la pestaña **Entorno**. En esta página verá el mensaje de error.

1. Copie el nombre de la imagen del ARN de la imagen.

1. En el panel de navegación de la izquierda, seleccione **Imágenes** en **Configuraciones de administración**.

1. Elija **Crear imagen**.

1. Siga los pasos del procedimiento, pero asegúrese de que el nombre de la imagen sea el mismo que el nombre de la imagen que aparece arriba. 

   Si no tiene ninguna imagen en un directorio de Amazon ECR, consulte las instrucciones en [Creación de una imagen personalizada y envío a Amazon ECR](studio-updated-byoi-how-to-prepare-image.md).

1. Una vez que hayas creado tu imagen de SageMaker IA, vuelve a la pestaña **Entorno** de tu dominio. Verá la imagen asociada a su dominio.

1. Seleccione la imagen y elija **Desasociar**.

1. Sigue las instrucciones para separar y eliminar la imagen de SageMaker IA temporal.

# Migración desde Amazon SageMaker Studio Classic
<a name="studio-updated-migrate"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Al abrir Amazon SageMaker Studio, la interfaz de usuario basada en la web se basa en la experiencia predeterminada elegida. Amazon SageMaker AI admite actualmente dos experiencias predeterminadas diferentes: la experiencia Amazon SageMaker Studio y la experiencia Amazon SageMaker Studio Classic. Para acceder a las funciones más recientes de Amazon SageMaker Studio, debe migrar los dominios existentes desde la experiencia Amazon SageMaker Studio Classic. Al migrar su experiencia predeterminada de Studio Classic a Studio, no pierde ninguna característica y puede seguir accediendo al IDE de Studio Classic desde Studio. Para obtener información sobre las ventajas adicionales de la experiencia de Studio, consulte [Amazon SageMaker Studio](studio-updated.md).

**nota**  
Para los clientes actuales que han creado sus cuentas antes del 30 de noviembre de 2023, puede que Studio Classic sea la experiencia predeterminada. Puede habilitar Studio como experiencia predeterminada mediante AWS Command Line Interface (AWS CLI) o la consola Amazon SageMaker AI. Para obtener más información sobre Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md). 
Para los clientes que crearon sus cuentas después del 30 de noviembre de 2023, recomendamos usar Studio como experiencia predeterminada, ya que contiene varios entornos de desarrollo integrados (IDEs), incluido el IDE Studio Classic, y otras funciones nuevas.  
JupyterLab 3 alcanzó su fecha de fin de mantenimiento el 15 de mayo de 2024. A partir del 31 de diciembre de 2024, solo podrás crear nuevas libretas Studio Classic en JupyterLab 3 durante un periodo limitado. Sin embargo, a partir del 31 de diciembre de 2024, la SageMaker IA dejará de ofrecer soluciones a los problemas críticos de los portátiles Studio Classic en JupyterLab versión 3. Te recomendamos migrar tus cargas de trabajo a la nueva experiencia de Studio, que es compatible con JupyterLab 4.
+ Si Studio es su experiencia predeterminada, la interfaz de usuario es similar a las imágenes que se encuentran en [Descripción general de la interfaz de usuario de Amazon SageMaker Studio](studio-updated-ui.md).
+ Si su experiencia predeterminada es Studio Classic, la interfaz de usuario es similar a las imágenes que aparecen en [Descripción general de la interfaz de usuario clásica de Amazon SageMaker Studio](studio-ui.md).

Para realizar la migración, debe actualizar un dominio existente. Para migrar un dominio existente de Studio Classic a Studio se requieren tres fases diferenciadas:

1. ** Migración de la interfaz de usuario de Studio Classic a Studio**: tarea única y sencilla que requiere crear un dominio de prueba para asegurarse de que Studio es compatible con las configuraciones de red de su organización antes de migrar la interfaz de usuario del dominio existente de Studio Classic a Studio.

1. **(Opcional) Migración de las imágenes personalizadas y los scripts de configuración del ciclo de vida**: tarea de dificultad intermedia que permite migrar las imágenes personalizadas y los scripts de LCC de Studio Classic a Studio.

1. **(Opcional) Migración de datos de Studio Classic a Studio**: tarea complicada que requiere utilizar AWS DataSync para migrar los datos del volumen de Amazon Elastic File System de Studio Classic a un volumen de destino de Amazon EFS o Amazon Elastic Block Store.

   1. **(Opcional) Migre los flujos de datos de Data Wrangler en Studio Classic**: una tarea sencilla y única para migrar sus flujos de datos de Data Wrangler en Studio Classic a Studio, al que podrá acceder en la última versión de Studio a través de Canvas. SageMaker Para obtener más información, consulte [Migración de los flujos de datos desde Data Wrangler](studio-updated-migrate-data.md#studio-updated-migrate-flows).

 En los siguientes temas se muestra cómo llevar a cabo estas fases para migrar un dominio existente de Studio Classic a Studio.

## Migración automática
<a name="studio-updated-migrate-auto"></a>

Entre julio y agosto de 2024, actualizamos automáticamente la experiencia de inicio predeterminada para los usuarios a la nueva experiencia de Studio. Esto solo cambia la interfaz de usuario de inicio predeterminada, que pasa a ser la interfaz de usuario de Studio actualizada. La aplicación de Studio Classic sigue estando accesible desde la nueva interfaz de usuario de Studio.

Para asegurarse de que la migración funcione correctamente para sus usuarios, consulte [Migración de la interfaz de usuario de Studio Classic a Studio](studio-updated-migrate-ui.md). En concreto, asegúrese de lo siguiente:
+ El rol de ejecución del dominio cuenta con los permisos correctos.
+ Se ha establecido Studio como experiencia de inicio predeterminada.
+ La Amazon VPC del dominio, si corresponde, está configurada para Studio mediante el punto de conexión de VPC de Studio.

Sin embargo, si necesita que Studio Classic siga siendo su interfaz de usuario predeterminada durante un tiempo limitado, configure la experiencia de inicio en Studio Classic de forma explícita. Para obtener más información, consulte [Establecimiento de Studio Classic como experiencia predeterminada](studio-updated-migrate-ui.md#studio-updated-migrate-revert).

**Topics**
+ [Migración automática](#studio-updated-migrate-auto)
+ [Requisitos previos completos para migrar la experiencia de Studio](studio-updated-migrate-prereq.md)
+ [Migración de la interfaz de usuario de Studio Classic a Studio](studio-updated-migrate-ui.md)
+ [(Opcional) Migración de imágenes personalizadas y configuraciones de ciclo de vida](studio-updated-migrate-lcc.md)
+ [(Opcional) Migración de datos de Studio Classic a Studio](studio-updated-migrate-data.md)

# Requisitos previos completos para migrar la experiencia de Studio
<a name="studio-updated-migrate-prereq"></a>

La migración de la experiencia predeterminada de Studio Classic a Studio corre a cargo del administrador del dominio existente. Si no dispone de permisos para configurar Studio como experiencia predeterminada para el dominio existente, póngase en contacto con su administrador. Para migrar tu experiencia predeterminada, debes tener permisos de administrador o, al menos, tener permisos para actualizar el dominio existente AWS Identity and Access Management (IAM) y Amazon Simple Storage Service (Amazon S3). Cumpla los siguientes requisitos previos antes de migrar un dominio existente de Studio Classic a Studio.
+ El AWS Identity and Access Management rol utilizado para completar la migración debe tener una política asociada con al menos los siguientes permisos. Para obtener más información sobre cómo crear una política de IAM, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html).
**nota**  
La versión de Studio incluye actualizaciones de las políticas AWS administradas. Para obtener más información, consulte [SageMaker Actualizaciones de IA de las políticas AWS gestionadas](security-iam-awsmanpol.md#security-iam-awsmanpol-updates).
  + Permisos necesarios para la fase 1:
    + `iam:CreateServiceLinkedRole`
    + `iam:PassRole`
    + `sagemaker:DescribeDomain`
    + `sagemaker:UpdateDomain`
    + `sagemaker:CreateDomain`
    + `sagemaker:CreateUserProfile`
    + `sagemaker:ListApps`
    + `sagemaker:AddTags`
    + `sagemaker:DeleteApp`
    + `sagemaker:DeleteSpace`
    + `sagemaker:UpdateSpace`
    + `sagemaker:DeleteUserProfile`
    + `sagemaker:DeleteDomain`
    + `s3:PutBucketCORS`
  + Permisos necesarios para la fase 2 (opcionales, solo si se utilizan scripts de configuración del ciclo de vida):

    No es necesario ningún otro permiso. Si el dominio existente tiene configuraciones de ciclo de vida e imágenes personalizadas, el administrador ya tendrá los permisos necesarios.
  + Permisos necesarios para la fase 3 si se usa Amazon Elastic File System personalizado (opcional, solo si se transfieren datos):
    + `efs:CreateFileSystem`
    + `efs:CreateMountTarget`
    + `efs:DescribeFileSystems`
    + `efs:DescribeMountTargets`
    + `efs:DescribeMountTargetSecurityGroups`
    + `efs:ModifyMountTargetSecurityGroups`
    + `ec2:DescribeSubnets`
    + `ec2:DescribeSecurityGroups`
    + `ec2:DescribeNetworkInterfaceAttribute`
    + `ec2:DescribeNetworkInterfaces`
    + `ec2:AuthorizeSecurityGroupEgress`
    + `ec2:AuthorizeSecurityGroupIngress`
    + `ec2:CreateNetworkInterface`
    + `ec2:CreateNetworkInterfacePermission`
    + `ec2:RevokeSecurityGroupIngress`
    + `ec2:RevokeSecurityGroupEgress`
    + `ec2:DeleteSecurityGroup`
    + `datasync:CreateLocationEfs`
    + `datasync:CreateTask`
    + `datasync:StartTaskExecution`
    + `datasync:DeleteTask`
    + `datasync:DeleteLocation`
    + `sagemaker:ListUserProfiles`
    + `sagemaker:DescribeUserProfile`
    + `sagemaker:UpdateDomain`
    + `sagemaker:UpdateUserProfile`
  + Permisos necesarios para la fase 3 si se usa Amazon Simple Storage Service (opcional, solo si se transfieren datos):
    + `iam:CreateRole`
    + `iam:GetRole`
    + `iam:AttachRolePolicy`
    + `iam:DetachRolePolicy`
    + `iam:DeleteRole`
    + `efs:DescribeFileSystems`
    + `efs:DescribeMountTargets`
    + `efs:DescribeMountTargetSecurityGroups`
    + `ec2:DescribeSubnets`
    + `ec2:CreateSecurityGroup`
    + `ec2:DescribeSecurityGroups`
    + `ec2:DescribeNetworkInterfaces`
    + `ec2:CreateNetworkInterface`
    + `ec2:CreateNetworkInterfacePermission`
    + `ec2:DetachNetworkInterfaces`
    + `ec2:DeleteNetworkInterface`
    + `ec2:DeleteNetworkInterfacePermission`
    + `ec2:CreateTags`
    + `ec2:AuthorizeSecurityGroupEgress`
    + `ec2:AuthorizeSecurityGroupIngress`
    + `ec2:RevokeSecurityGroupIngress`
    + `ec2:RevokeSecurityGroupEgress`
    + `ec2:DeleteSecurityGroup`
    + `datasync:CreateLocationEfs`
    + `datasync:CreateLocationS3`
    + `datasync:CreateTask`
    + `datasync:StartTaskExecution`
    + `datasync:DescribeTaskExecution`
    + `datasync:DeleteTask`
    + `datasync:DeleteLocation`
    + `sagemaker:CreateStudioLifecycleConfig`
    + `sagemaker:UpdateDomain`
    + `s3:ListBucket`
    + `s3:GetObject`
+ Acceda a AWS los servicios desde un entorno de terminal en:
  + Su máquina local utiliza la AWS CLI versión`2.13+`. Utilice el siguiente comando para comprobar la AWS CLI versión.

    ```
    aws --version
    ```
  + AWS CloudShell. Para obtener más información, consulte [¿Qué es AWS CloudShell?](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)
+ Desde su máquina local o bien AWS CloudShell, ejecute el siguiente comando e introduzca sus AWS credenciales. Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html).

  ```
  aws configure
  ```
+ Compruebe que el procesador JSON ligero esté instalado en el entorno de terminal. jq jqes necesario para analizar AWS CLI las respuestas.

  ```
  jq --version
  ```

  Si jq no está instalado, instálelo mediante uno de los siguientes comandos.
  + 

    ```
    sudo apt-get install -y jq
    ```
  + 

    ```
    sudo yum install -y jq
    ```

# Migración de la interfaz de usuario de Studio Classic a Studio
<a name="studio-updated-migrate-ui"></a>

La primera fase de la migración de un dominio existente implica la migración de la interfaz de usuario de Amazon SageMaker Studio Classic a Amazon SageMaker Studio. Esta fase no incluye la migración de datos. Los usuarios pueden seguir trabajando con sus datos de la misma forma que lo hacían antes de la migración. Para obtener información sobre cómo migrar datos, consulte [(Opcional) Migración de datos de Studio Classic a Studio](studio-updated-migrate-data.md).

La fase 1 consta de los siguientes pasos:

1. Actualice los permisos de creación de aplicaciones para las nuevas aplicaciones disponibles en Studio.

1. Actualice la configuración de la VPC para el dominio.

1. Actualice el dominio para utilizar la interfaz de usuario de Studio.

## Requisitos previos
<a name="studio-updated-migrate-ui-prereq"></a>

Antes de llevar a cabo estos pasos, debe cumplir los requisitos previos de [Requisitos previos completos para migrar la experiencia de Studio](studio-updated-migrate-prereq.md).

## Paso 1: actualización de permisos de creación de aplicaciones
<a name="studio-updated-migrate-limit-apps"></a>

Antes de migrar el dominio, actualice el rol de ejecución del dominio para conceder a los usuarios permisos para crear aplicaciones.

1. Cree una AWS Identity and Access Management política con uno de los siguientes contenidos siguiendo los pasos que se indican en [Creación de políticas de IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html): 
   + Utilice la siguiente política para conceder permisos a todos los espacios y tipos de aplicaciones.
**nota**  
Si en el dominio se utiliza la política `SageMakerFullAccess`, no es necesario que realice esta acción. `SageMakerFullAccess` concede permisos para crear todas las aplicaciones.

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "SMStudioUserProfileAppPermissionsCreateAndDelete",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateApp",
                     "sagemaker:DeleteApp"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/*",
                 "Condition": {
                     "Null": {
                         "sagemaker:OwnerUserProfileArn": "true"
                     }
                 }
             },
             {
                 "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreatePresignedDomainUrl"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
             },
             {
                 "Sid": "SMStudioAppPermissionsListAndDescribe",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:ListApps",
                     "sagemaker:ListDomains",
                     "sagemaker:ListUserProfiles",
                     "sagemaker:ListSpaces",
                     "sagemaker:DescribeApp",
                     "sagemaker:DescribeDomain",
                     "sagemaker:DescribeUserProfile",
                     "sagemaker:DescribeSpace"
                 ],
                 "Resource": "*"
             },
             {
                 "Sid": "SMStudioAppPermissionsTagOnCreate",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:AddTags"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:*/*",
                 "Condition": {
                     "Null": {
                         "sagemaker:TaggingAction": "false"
                     }
                 }
             },
             {
                 "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateSpace",
                     "sagemaker:UpdateSpace",
                     "sagemaker:DeleteSpace"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/${sagemaker:DomainId}/*",
                 "Condition": {
                     "Null": {
                         "sagemaker:OwnerUserProfileArn": "true"
                     }
                 }
             },
             {
                 "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateSpace",
                     "sagemaker:UpdateSpace",
                     "sagemaker:DeleteSpace"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/${sagemaker:DomainId}/*",
                 "Condition": {
                     "ArnLike": {
                         "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
                     },
                     "StringEquals": {
                         "sagemaker:SpaceSharingType": [
                             "Private",
                             "Shared"
                         ]
                     }
                 }
             },
             {
                 "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateApp",
                     "sagemaker:DeleteApp"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/${sagemaker:DomainId}/*",
                 "Condition": {
                     "ArnLike": {
                         "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
                     },
                     "StringEquals": {
                         "sagemaker:SpaceSharingType": [
                             "Private"
                         ]
                     }
                 }
             },
             {
                 "Sid": "AllowAppActionsForSharedSpaces",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateApp",
                     "sagemaker:DeleteApp"
                 ],
                 "Resource": "arn:aws:sagemaker:*:*:app/${sagemaker:DomainId}/*/*/*",
                 "Condition": {
                     "StringEquals": {
                         "sagemaker:SpaceSharingType": [
                             "Shared"
                         ]
                     }
                 }
             }
         ]
     }
     ```

------
   + Como Studio muestra un conjunto ampliado de aplicaciones, es posible que los usuarios tengan acceso a aplicaciones que no se mostraban antes. Los administradores pueden limitar el acceso a estas aplicaciones predeterminadas mediante la creación de una política AWS Identity and Access Management (IAM) que deniegue los permisos de algunas aplicaciones a usuarios específicos.
**nota**  
El tipo de aplicación pueden ser de `jupyterlab` o de `codeeditor`.

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "DenySageMakerCreateAppForSpecificAppTypes",
                 "Effect": "Deny",
                 "Action": "sagemaker:CreateApp",
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/domain-id/*/app-type/*"
             }
         ]
     }
     ```

------

1. Asocie la política al rol de ejecución del dominio. Para obtener instrucciones, siga los pasos que se indican en [Adición de permisos de identidad de IAM (consola)](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console).

## Paso 2: actualización de una configuración de VPC
<a name="studio-updated-migrate-vpc"></a>

Si usa su dominio en modo `VPC-Only`, asegúrese de que la configuración de la VPC cumpla los requisitos para usar Studio en modo `VPC-Only`. Para obtener más información, consulte [Connect Amazon SageMaker Studio de una VPC a recursos externos](studio-updated-and-internet-access.md).

## Paso 3: actualización a la interfaz de usuario de Studio
<a name="studio-updated-migrate-set-studio-updated"></a>

Antes de migrar su dominio actual de Studio Classic a Studio, recomendamos crear un dominio de prueba con Studio con las mismas configuraciones que su dominio actual.

### (Opcional) Creación de un dominio de prueba
<a name="studio-updated-migrate-ui-create-test"></a>

Utilice este dominio de prueba para interaccionar con Studio, probar las configuraciones de red e inicializar aplicaciones antes de migrar el dominio existente.

1. Obtenga el ID de dominio de su dominio actual.

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

   1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

   1. Elija el dominio existente.

   1. En la página **Detalles del dominio**, elija la pestaña **Configuración del dominio**.

   1. Copie el **ID de dominio**.

1. Agregue el ID de dominio de su dominio existente.

   ```
   export REF_DOMAIN_ID="domain-id"
   export SM_REGION="region"
   ```

1. Use `describe-domain` para obtener información importante sobre el dominio existente.

   ```
   export REF_EXECROLE=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.DefaultUserSettings.ExecutionRole')
   export REF_VPC=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.VpcId')
   export REF_SIDS=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.SubnetIds | join(",")')
   export REF_SGS=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.DefaultUserSettings.SecurityGroups | join(",")')
   export AUTHMODE=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.AuthMode')
   ```

1. Valide los parámetros.

   ```
   echo "Execution Role: $REF_EXECROLE || VPCID: $REF_VPC || SubnetIDs: $REF_SIDS || Security GroupIDs: $REF_SGS || AuthMode: $AUTHMODE"
   ```

1. Cree un dominio de prueba con las configuraciones del dominio existente.

   ```
   IFS=',' read -r -a subnet_ids <<< "$REF_SIDS"
   IFS=',' read -r -a security_groups <<< "$REF_SGS"
   security_groups_json=$(printf '%s\n' "${security_groups[@]}" | jq -R . | jq -s .)
   
   aws sagemaker create-domain \
   --domain-name "TestV2Config" \
   --vpc-id $REF_VPC \
   --auth-mode $AUTHMODE \
   --subnet-ids "${subnet_ids[@]}" \
   --app-network-access-type VpcOnly \
   --default-user-settings "
   {
       \"ExecutionRole\": \"$REF_EXECROLE\",
       \"StudioWebPortal\": \"ENABLED\",
       \"DefaultLandingUri\": \"studio::\",
       \"SecurityGroups\": $security_groups_json
   }
   "
   ```

1. Una vez que el dominio de prueba se encuentre en el estado `In Service`, utilice el ID del dominio de prueba para crear un perfil de usuario. Este perfil de usuario se utiliza para inicializar y probar aplicaciones.

   ```
   aws sagemaker create-user-profile \
   --region="$SM_REGION" --domain-id=test-domain-id \
   --user-profile-name test-network-user
   ```

#### Comprobación de la funcionalidad de Studio
<a name="studio-updated-migrate-ui-testing"></a>

Lance el dominio de prueba con el perfil de usuario `test-network-user`. Sugerimos probar minuciosamente la interfaz de usuario de Studio y crear aplicaciones para probar la funcionalidad de Studio en el modo `VPCOnly`. Pruebe los siguientes flujos de trabajo:
+ Cree un nuevo JupyterLab espacio, pruebe el entorno y la conectividad.
+ Cree un nuevo espacio del editor de código, basado en Code-OSS, Visual Studio Code: ☺Open Source, un entorno de pruebas y una conectividad.
+ Lance una nueva aplicación de Studio Classic, un entorno de pruebas y una conectividad.
+ Pruebe la conectividad de Amazon Simple Storage Service mediante acciones de lectura y escritura de prueba.

Si estas pruebas se realizan correctamente, actualice el dominio existente. Si detecta cualquier error, recomendamos corregir los problemas del entorno y de la conectividad antes de actualizar el dominio existente.

#### Eliminación de los recursos del dominio de prueba
<a name="studio-updated-migrate-ui-clean"></a>

Después de migrar el dominio existente, elimine los recursos del dominio de prueba.

1. Agregue el ID del dominio de prueba.

   ```
   export TEST_DOMAIN="test-domain-id"
   export SM_REGION="region"
   ```

1. Enumere todas las aplicaciones del dominio que se encuentren en estado de ejecución.

   ```
   active_apps_json=$(aws sagemaker list-apps --region=$SM_REGION --domain-id=$TEST_DOMAIN)
   echo $active_apps_json
   ```

1. Analice la lista de JSON de aplicaciones en ejecución y elimínelas. Si los usuarios han intentado crear una aplicación para la que no tienen permisos, es posible que haya espacios que no se capturen en el siguiente script. Debe eliminar esos espacios manualmente.

   ```
   echo "$active_apps_json" | jq -c '.Apps[]' | while read -r app;
   do
       if echo "$app" | jq -e '. | has("SpaceName")' > /dev/null;
       then
           app_type=$(echo "$app" | jq -r '.AppType')
           app_name=$(echo "$app" | jq -r '.AppName')
           domain_id=$(echo "$app" | jq -r '.DomainId')
           space_name=$(echo "$app" | jq -r '.SpaceName')
   
           echo "Deleting App - AppType: $app_type || AppName: $app_name || DomainId: $domain_id || SpaceName: $space_name"
           aws sagemaker delete-app --region=$SM_REGION --domain-id=$domain_id \
           --app-type $app_type --app-name $app_name --space-name $space_name
   
           echo "Deleting Space - AppType: $app_type || AppName: $app_name || DomainId: $domain_id || SpaceName: $space_name"
           aws sagemaker delete-space --region=$SM_REGION --domain-id=$domain_id \
           --space-name $space_name
       else
   
           app_type=$(echo "$app" | jq -r '.AppType')
           app_name=$(echo "$app" | jq -r '.AppName')
           domain_id=$(echo "$app" | jq -r '.DomainId')
           user_profile_name=$(echo "$app" | jq -r '.UserProfileName')
   
           echo "Deleting Studio Classic - AppType: $app_type || AppName: $app_name || DomainId: $domain_id || UserProfileName: $user_profile_name"
           aws sagemaker delete-app --region=$SM_REGION --domain-id=$domain_id \
           --app-type $app_type --app-name $app_name --user-profile-name $user_profile_name
   
       fi
   
   done
   ```

1. Elimine el perfil de usuario de prueba.

   ```
   aws sagemaker delete-user-profile \
   --region=$SM_REGION --domain-id=$TEST_DOMAIN \
   --user-profile-name "test-network-user"
   ```

1. Elimine el dominio de prueba.

   ```
   aws sagemaker delete-domain \
   --region=$SM_REGION --domain-id=$TEST_DOMAIN
   ```

Una vez que haya probado la funcionalidad de Studio con las configuraciones del dominio de prueba, migre el dominio existente. Cuando Studio es la experiencia predeterminada en un dominio, también es la experiencia predeterminada para todos los usuarios del dominio. Sin embargo, la configuración de usuario tiene prioridad sobre la configuración del dominio. Por lo tanto, si un usuario establece su experiencia predeterminada en Studio Classic en su configuración de usuario, la experiencia predeterminada de ese usuario será Studio Classic. 

Puedes migrar el dominio existente actualizándolo desde la consola de SageMaker IA AWS CLI, la consola o AWS CloudFormation. Elija una de las siguientes pestañas para ver las instrucciones correspondientes.

### Configura Studio como la experiencia predeterminada para el dominio existente mediante la consola de SageMaker IA
<a name="studio-updated-migrate-set-studio-updated-console"></a>

Puedes configurar Studio como la experiencia predeterminada para el dominio existente mediante la consola de SageMaker IA.

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

1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

1. Elija el dominio existente para el cual desee habilitar Studio como experiencia predeterminada.

1. En la página **Detalles del dominio**, expanda **Activar el nuevo Studio**.

1. (Opcional) Para ver información sobre los pasos necesarios para habilitar Studio como experiencia predeterminada, seleccione **Ver detalles**. En la página se muestra lo siguiente:
   + En la sección **Descripción general de SageMaker Studio**, puede ver las aplicaciones que se incluyen o están disponibles en la interfaz web de Studio. 
   + En la sección **Proceso de habilitación**, se muestran las descripciones de las tareas del flujo de trabajo de habilitación de Studio.
**nota**  
Tendrá que migrar los datos manualmente. Para obtener instrucciones sobre la migración de los datos, consulte [(Opcional) Migración de datos de Studio Classic a Studio](studio-updated-migrate-data.md).
   + En la sección **Revertir a la experiencia de Studio Classic**, se indica cómo revertir a Studio Classic después de haber habilitado Studio como experiencia predeterminada.

1. Para iniciar el proceso de habilitación de Studio como experiencia predeterminada, seleccione **Activar el nuevo Studio**.

1. En la sección **Especificar y configurar el rol**, se muestran las aplicaciones predeterminadas que se incluyen automáticamente en Studio.

   Para evitar que los usuarios ejecuten estas aplicaciones, elija el rol de AWS Identity and Access Management (IAM) cuya política de IAM deniegue el acceso. Para obtener información sobre cómo crear una política que limite el acceso, consulte [Paso 1: actualización de permisos de creación de aplicaciones](#studio-updated-migrate-limit-apps).

1. En la sección **Elegir el bucket de S3 predeterminado para asociar la política de CORS**, puede conceder a Studio acceso a los buckets de Amazon S3. El bucket de Amazon S3 predeterminado, en este caso, es el bucket de Amazon S3 predeterminado de Studio Classic. En este paso, puede hacer lo siguiente:
   + Comprobar el bucket de Amazon S3 predeterminado del dominio al que desea asociar la política de CORS. Si su dominio no tiene un bucket de Amazon S3 predeterminado, SageMaker AI crea un bucket de Amazon S3 con la política CORS correcta adjunta.
   + Puede incluir 10 buckets de Amazon S3 adicionales a los que asociar la política de CORS.

     Si desea incluir más de 10 buckets, puede agregarlos manualmente. Para obtener más información sobre cómo asociar manualmente la política de CORS a sus buckets de Amazon S3, consulte [(Opcional) Actualización de la política de CORS para obtener acceso a los buckets de Amazon S3](#studio-updated-migrate-cors).

   Para continuar, seleccione la casilla de verificación situada junto a **¿Acepta anular todas las políticas de CORS existentes en los buckets de Amazon S3 elegidos?**

1. La sección **Migrar datos** contiene información sobre los distintos volúmenes de almacenamiento de datos de Studio Classic y Studio. Los datos no se migrarán automáticamente mediante este proceso. Para obtener instrucciones sobre la migración de los datos, las configuraciones del ciclo de vida y las JupyterLab extensiones, consulte. [(Opcional) Migración de datos de Studio Classic a Studio](studio-updated-migrate-data.md)

1. Cuando haya completado las tareas de la página y haya comprobado la configuración, seleccione **Activar el nuevo Studio**.

### Configura Studio como la experiencia predeterminada para el dominio existente mediante el AWS CLI
<a name="studio-updated-migrate-set-studio-updated-cli"></a>

Para establecer Studio como experiencia predeterminada para el dominio existente mediante la AWS CLI, utilice la llamada [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html). Debe establecer `ENABLED` como el valor de `StudioWebPortal` y establecer `studio::` como el valor de `DefaultLandingUri` como parte del parámetro `default-user-settings`. 

`StudioWebPortal` indica si la experiencia de Studio es la experiencia predeterminada y `DefaultLandingUri` indica la experiencia predeterminada a la que se dirige al usuario cuando accede al dominio. En este ejemplo, si se establecen estos valores en un nivel de dominio (en `default-user-settings`), Studio se convierte en la experiencia predeterminada para los usuarios del dominio.

Si un usuario del dominio tiene su `StudioWebPortal` establecido en `DISABLED` y `DefaultLandingUri` establecido en `app:JupyterServer:` para el usuario (en `UserSettings`), esto tiene prioridad sobre la configuración del dominio. En otras palabras, la experiencia predeterminada de ese usuario será Studio Classic, independientemente de la configuración del dominio. 

En el siguiente ejemplo de código, se muestra cómo configurar Studio como experiencia predeterminada para los usuarios del dominio:

```
aws sagemaker update-domain \
--domain-id existing-domain-id \
--region Región de AWS \
--default-user-settings '
{
    "StudioWebPortal": "ENABLED",
    "DefaultLandingUri": "studio::"
}
'
```
+ Para obtener su `existing-domain-id`, siga estas instrucciones:

**Obtención de `existing-domain-id`**

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

  1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

  1. Elija el dominio existente.

  1. En la página **Detalles del dominio**, elija la pestaña **Configuración del dominio**.

  1. Copie el **ID de dominio**.
+ Para asegurarte de que estás utilizando la correcta Región de AWS para tu dominio, sigue las siguientes instrucciones: 

**Obtención de `Región de AWS`**

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

  1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

  1. Elija el dominio existente.

  1. En la página **Detalles del dominio** compruebe que se trata del dominio existente.

  1. Amplía la lista Región de AWS desplegable desde la parte superior derecha de la consola de SageMaker IA y usa el Región de AWS ID correspondiente a la derecha de tu Región de AWS nombre. Por ejemplo, `us-west-1`.

Tras migrar la experiencia predeterminada a Studio, puede conceder a Studio acceso a los buckets de Amazon S3. Por ejemplo, puede incluir el acceso a su bucket de Amazon S3 predeterminado de Studio Classic y a otros buckets de Amazon S3. Para ello, debe asociar manualmente una configuración de [uso compartido de recursos entre orígenes](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) a los buckets de Amazon S3. Para obtener más información sobre cómo asociar manualmente la política de CORS a sus buckets de Amazon S3, consulte [(Opcional) Actualización de la política de CORS para obtener acceso a los buckets de Amazon S3](#studio-updated-migrate-cors).

Del mismo modo, puedes configurar Studio como la experiencia predeterminada al crear un dominio a partir de la AWS CLI llamada [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html). 

### Configura Studio como la experiencia predeterminada para el dominio existente mediante AWS CloudFormation
<a name="studio-updated-migrate-set-studio-updated-cloud-formation"></a>

Puede configurar la experiencia predeterminada al crear un dominio mediante AWS CloudFormation. Para obtener una plantilla de CloudFormation migración, consulte [Plantillas iAC de SageMaker Studio Administrator](https://github.com/aws-samples/sagemaker-studio-admin-iac-templates/tree/main?tab=readme-ov-file#phase-1-migration). Para obtener más información sobre cómo crear un dominio mediante CloudFormation, consulte [Crear un dominio de Amazon SageMaker AI mediante CloudFormation](https://github.com/aws-samples/cloudformation-studio-domain?tab=readme-ov-file#creating-sagemaker-studio-domains-using-cloudformation).

Para obtener información sobre el recurso de dominio que admite AWS CloudFormation, consulte [AWS: SageMaker AI: :Domain](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html#cfn-sagemaker-domain-defaultusersettings).

Tras migrar la experiencia predeterminada a Studio, puede conceder a Studio acceso a los buckets de Amazon S3. Por ejemplo, puede incluir el acceso a su bucket de Amazon S3 predeterminado de Studio Classic y a otros buckets de Amazon S3. Para ello, debe asociar manualmente una configuración de [uso compartido de recursos entre orígenes](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) a los buckets de Amazon S3. Para obtener información sobre cómo asociar manualmente la política de CORS a sus buckets de Amazon S3, consulte [(Opcional) Actualización de la política de CORS para obtener acceso a los buckets de Amazon S3](#studio-updated-migrate-cors).

### (Opcional) Actualización de la política de CORS para obtener acceso a los buckets de Amazon S3
<a name="studio-updated-migrate-cors"></a>

En Studio Classic, los usuarios pueden crear, enumerar y cargar archivos en buckets de Amazon Simple Storage Service (Amazon S3). Para ofrecer la misma experiencia en Studio, los administradores deben asociar una configuración de [uso compartido de recursos entre orígenes](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) a los buckets de Amazon S3. Esto es obligatorio porque Studio realiza llamadas a Amazon S3 desde el navegador de Internet. El navegador invoca CORS en nombre de los usuarios. Por ello, todas las solicitudes a los buckets de Amazon S3 darán un error a menos que la política de CORS esté asociada a los buckets de Amazon S3.

Es posible que tenga que asociar manualmente la política de CORS a los buckets de Amazon S3 por los siguientes motivos.
+ Si ya existe un bucket predeterminado de Amazon S3 que no tiene asociada la política CORS correcta al migrar la experiencia predeterminada del dominio existente a Studio.
+ Si lo utilizas AWS CLI para migrar la experiencia predeterminada del dominio existente a Studio. Para obtener información sobre cómo usar el AWS CLI para migrar, consulte[Configura Studio como la experiencia predeterminada para el dominio existente mediante el AWS CLI](#studio-updated-migrate-set-studio-updated-cli).
+ Si desea asociar la política de CORS a buckets de Amazon S3 adicionales.

**nota**  
Si planea usar la consola de SageMaker IA para habilitar Studio como experiencia predeterminada, las políticas de CORS existentes se anularán durante la migración de los buckets de Amazon S3 a los que adjunte la política de CORS. Por este motivo, puede hacer caso omiso de las siguientes instrucciones manuales.  
Sin embargo, si ya ha utilizado la consola SageMaker AI para realizar la migración y desea incluir más buckets de Amazon S3 a los que adjuntar la política CORS, continúe con las siguientes instrucciones manuales.

En el siguiente procedimiento, se muestra cómo agregar manualmente una configuración de CORS a un bucket de Amazon S3.

**Adición de una configuración de CORS a un bucket de S3**

1. Compruebe que haya un bucket de Amazon S3 en el Región de AWS mismo dominio existente con el siguiente nombre. Para obtener instrucciones, consulte [Visualización de las propiedades para un bucket de S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/view-bucket-properties.html). 

   ```
   sagemaker-region-account-id
   ```

1. Agregue una configuración de CORS con el siguiente contenido al bucket de Amazon S3 predeterminado. Para obtener instrucciones, consulte [Configuración del uso compartido de recursos entre orígenes (CORS)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/enabling-cors-examples.html).

   ```
   [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "POST",
               "PUT",
               "GET",
               "HEAD",
               "DELETE"
           ],
           "AllowedOrigins": [
               "https://*.sagemaker.aws"
           ],
           "ExposeHeaders": [
               "ETag",
               "x-amz-delete-marker",
               "x-amz-id-2",
               "x-amz-request-id",
               "x-amz-server-side-encryption",
               "x-amz-version-id"
           ]
       }
   ]
   ```

### (Opcional) Migre de Data Wrangler en Studio Classic a Canvas SageMaker
<a name="studio-updated-migrate-dw"></a>

Amazon SageMaker Data Wrangler existe como una función propia en la experiencia Studio Classic. Cuando habilita Studio como experiencia predeterminada, utilice la aplicación [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) para acceder a la funcionalidad de Data Wrangler. SageMaker Canvas es una aplicación en la que puede entrenar e implementar modelos de aprendizaje automático sin escribir ningún código, y Canvas proporciona funciones de preparación de datos con la tecnología de Data Wrangler.

La nueva experiencia de Studio no es compatible con la interfaz de usuario clásica de Data Wrangler, por lo que debe crear una aplicación de Canvas si desea continuar utilizando Data Wrangler. Sin embargo, debe contar con los permisos necesarios para crear y utilizar aplicaciones de Canvas.

Complete los siguientes pasos para adjuntar las políticas de permisos necesarias a la función de AWS IAM de su dominio de SageMaker IA o usuario.

**Concesión de permisos para la funcionalidad de Data Wrangler en Canvas**

1. Adjunta la política AWS gestionada [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonSageMakerFullAccess)a la función de IAM de tu usuario. Para obtener más información sobre cómo asociar políticas de IAM a un rol, consulte [Adición de permisos de identidad de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) en la *AWS Guía del usuario de IAM*.

   Si esta política de permisos es demasiado permisiva para su caso de uso, puede crear políticas específicas que incluyan al menos los siguientes permisos:

   ```
   {
       "Sid": "AllowStudioActions",
       "Effect": "Allow",
       "Action": [
           "sagemaker:CreatePresignedDomainUrl",
           "sagemaker:DescribeDomain",
           "sagemaker:ListDomains",
           "sagemaker:DescribeUserProfile",
           "sagemaker:ListUserProfiles",
           "sagemaker:DescribeSpace",
           "sagemaker:ListSpaces",
           "sagemaker:DescribeApp",
           "sagemaker:ListApps"
       ],
       "Resource": "*"
   },
   {
       "Sid": "AllowAppActionsForUserProfile",
       "Effect": "Allow",
       "Action": [
           "sagemaker:CreateApp",
           "sagemaker:DeleteApp"
       ],
       "Resource": "arn:aws:sagemaker:region:account-id:app/domain-id/user-profile-name/canvas/*",
       "Condition": {
           "Null": {
               "sagemaker:OwnerUserProfileArn": "true"
           }
       }
   }
   ```

1. Adjunta la política AWS gestionada [AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)a la función de IAM de tu usuario.

Tras asociar los permisos necesarios, puede crear una aplicación de Canvas e iniciar sesión. Para obtener más información, consulte [Cómo empezar a usar Amazon SageMaker Canvas](canvas-getting-started.md).

Cuando haya iniciado sesión en Canvas, podrá acceder directamente a Data Wrangler y empezar a crear flujos de datos. Para obtener más información, consulte [Preparación de datos](canvas-data-prep.md) en la documentación de Canvas.

### (Opcional) Migre del piloto automático de Studio Classic a Canvas SageMaker
<a name="studio-updated-migrate-autopilot"></a>

[Amazon SageMaker Autopilot](https://docs.aws.amazon.com/sagemaker/AWSIronmanApiDoc/integ/npepin-studio-migration-autopilot-to-canvas/latest/dg/autopilot-automate-model-development.html) existe como una función propia en la experiencia Studio Classic. Al migrar a la experiencia de Studio actualizada, utilice la aplicación [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) para seguir utilizando las mismas capacidades de aprendizaje automático automático (AutomL) a través de una interfaz de usuario (UI). SageMaker Canvas es una aplicación en la que puede entrenar e implementar modelos de aprendizaje automático sin escribir ningún código, y Canvas proporciona una interfaz de usuario para ejecutar sus tareas de AutoML.

La nueva experiencia de Studio no es compatible con la interfaz de usuario clásica de la interfaz de usuario de Piloto automático. Debe crear una aplicación de Canvas si desea seguir utilizando las características de AutoML de Piloto automático mediante una interfaz de usuario. 

Sin embargo, debe contar con los permisos necesarios para crear y utilizar aplicaciones de Canvas.
+ Si accede a SageMaker Canvas desde Studio, añada esos permisos a la función de ejecución de su dominio de SageMaker IA o perfil de usuario.
+ Si accede a SageMaker Canvas desde la consola, añada esos permisos a la función de AWS IAM de su usuario.
+ Si accede a SageMaker Canvas a través de una [URL prefirmada](https://docs.aws.amazon.com/sagemaker/latest/dg/setting-up-canvas-sso.html#canvas-optional-access), añada esos permisos a la función de IAM que está utilizando para acceder al SSO de Okta.

Para habilitar las capacidades de AutoML en Canvas, agregue las siguientes políticas a su rol de ejecución o rol de usuario de IAM.
+ AWS [política gestionada:. `CanvasFullAccess`](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess) 
+ Política insertada:

  ```
  {
      "Sid": "AllowAppActionsForUserProfile",
      "Effect": "Allow",
      "Action": [
          "sagemaker:CreateApp",
          "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:region:account-id:app/domain-id/user-profile-name/canvas/*",
      "Condition": {
          "Null": {
              "sagemaker:OwnerUserProfileArn": "true"
          }
      }
  }
  ```

**Para asociar políticas de IAM a un rol de ejecución**

1. 

**Encuentre el rol de ejecución adjunto a su perfil de usuario de SageMaker IA**

   1. En la consola de SageMaker IA[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/), dirígete a **Dominios** y, a continuación, elige tu dominio de SageMaker IA.

   1. El ARN del rol de ejecución aparece en la sección *Rol de ejecución* de la página **Detalles del usuario** de su perfil de usuario. Anote el nombre del rol de ejecución que figura en el ARN.

   1. En la consola de IAM [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), selecciona **Roles**.

   1. Busque su rol por nombre en el campo de búsqueda.

   1. Seleccione el rol.

1. Agregue políticas al rol.

   1. **En la consola de IAM [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), elija Roles.**

   1. Busque su rol por nombre en el campo de búsqueda.

   1. Seleccione el rol.

   1. En la pestaña **Permisos**, vaya al menú desplegable **Agregar permisos**.

   1. 
      + Para políticas administradas: seleccione **Asociar políticas** y busque el nombre de la política de administración que desea asociar.

        Seleccione la política y, a continuación, seleccione **Agregar permisos**.
      + Para las políticas en línea: seleccione **Crear política insertada**, pegue la política en la pestaña JSON, seleccione Siguiente, asigne un nombre a la política y seleccione **Crear**.

Para obtener más información sobre cómo asociar políticas de IAM a un rol, consulte [Adición de permisos de identidad de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) en la *AWS Guía del usuario de IAM*.

Tras asociar los permisos necesarios, puede crear una aplicación de Canvas e iniciar sesión. Para obtener más información, consulte [Cómo empezar a usar Amazon SageMaker Canvas](canvas-getting-started.md).

## Establecimiento de Studio Classic como experiencia predeterminada
<a name="studio-updated-migrate-revert"></a>

Los administradores pueden volver a la experiencia predeterminada de Studio Classic para un dominio existente. Esta acción puede llevarse a cabo desde la AWS CLI.

**nota**  
Cuando Studio Classic se define como la experiencia predeterminada en un dominio, también es la experiencia predeterminada para todos los usuarios del dominio. Sin embargo, la configuración de usuario tiene prioridad sobre la configuración del dominio. Por lo tanto, si un usuario establece su experiencia predeterminada en Studio, la experiencia predeterminada de ese usuario será Studio. 

Para volver a Studio Classic como experiencia predeterminada para el dominio existente mediante la llamada AWS CLI[update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html). En el campo `default-user-settings`, debe configurar:
+ el valor `StudioWebPortal` como `DISABLED`.
+ el valor `DefaultLandingUri` como `app:JupyterServer:`.

`StudioWebPortal` indica si la experiencia de Studio es la experiencia predeterminada y `DefaultLandingUri` indica la experiencia predeterminada a la que se dirige al usuario cuando accede al dominio. En este ejemplo, si se establecen estos valores en un nivel de dominio (en `default-user-settings`), Studio Classic se convierte en la experiencia predeterminada para los usuarios del dominio.

Si un usuario del dominio tiene su `StudioWebPortal` establecido en `ENABLED` y `DefaultLandingUri` en `studio::` para el usuario (en `UserSettings`), esta configuración tiene prioridad sobre la del dominio. En otras palabras, la experiencia predeterminada de ese usuario será Studio, independientemente de la configuración del dominio. 

En el siguiente ejemplo de código, se muestra cómo configurar Studio Classic como experiencia predeterminada para los usuarios del dominio:

```
aws sagemaker update-domain \
--domain-id existing-domain-id \
--region Región de AWS \
--default-user-settings '
{
    "StudioWebPortal": "DISABLED",
    "DefaultLandingUri": "app:JupyterServer:"
}
'
```

Para obtener su `existing-domain-id`, siga estas instrucciones:

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

1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

1. Elija el dominio existente.

1. En la página **Detalles del dominio**, elija la pestaña **Configuración del dominio**.

1. Copie el **ID de dominio**.

Para obtener la tuya`Región de AWS`, sigue las siguientes instrucciones para asegurarte de que estás utilizando la correcta Región de AWS para tu dominio.

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

1. En el panel de navegación izquierdo, expanda **Configuraciones de administración** y elija **Dominios**. 

1. Elija el dominio existente.

1. En la página **Detalles del dominio** compruebe que se trata del dominio existente.

1. Amplía la lista Región de AWS desplegable desde la parte superior derecha de la consola de SageMaker IA y usa el Región de AWS ID correspondiente a la derecha de tu Región de AWS nombre. Por ejemplo, `us-west-1`.

# (Opcional) Migración de imágenes personalizadas y configuraciones de ciclo de vida
<a name="studio-updated-migrate-lcc"></a>

Debe actualizar las imágenes personalizadas y los scripts de configuración del ciclo de vida (LCC) para que funcionen con el modelo de ejecución local simplificado de Amazon SageMaker Studio. Si no ha creado imágenes personalizadas o configuraciones de ciclo de vida en su dominio, omita esta fase.

Amazon SageMaker Studio Classic funciona en un entorno dividido con:
+ Una aplicación de `JupyterServer` que ejecuta el Jupyter Server. 
+ Cuadernos Studio Classic que se ejecutan en una o más aplicaciones de `KernelGateway`. 

Studio ha dejado de ser un entorno dividido. Studio ejecuta el editor de código JupyterLab y, basado en aplicaciones Code-OSS y Visual Studio Code y código abierto, en un modelo de tiempo de ejecución local. Para obtener más información sobre el cambio de arquitectura, consulte [Aumentar la productividad en Amazon SageMaker Studio](https://aws.amazon.com/blogs//machine-learning/boost-productivity-on-amazon-sagemaker-studio-introducing-jupyterlab-spaces-and-generative-ai-tools/). 

## Migración de imágenes personalizadas
<a name="studio-updated-migrate-lcc-custom"></a>

Es posible que las imágenes personalizadas de Studio Classic que ya tenga no funcionen en Studio. Recomendamos crear una nueva imagen personalizada que cumpla los requisitos para su uso en Studio. La versión de Studio simplifica el proceso de creación de imágenes personalizadas al proporcionar[SageMaker Política de soporte de imágenes de Studio](sagemaker-distribution.md). SageMaker Las imágenes de AI Distribution incluyen bibliotecas y paquetes populares para el aprendizaje automático, la ciencia de datos y la visualización del análisis de datos. Para obtener una lista de las imágenes de SageMaker distribución base y la información de la cuenta de Amazon Elastic Container Registry, consulte[SageMaker Imágenes de Amazon disponibles para su uso con las libretas Studio Classic](notebooks-available-images.md).

Para crear una imagen personalizada, lleve a cabo una de las siguientes acciones.
+ Amplíe una imagen de SageMaker distribución con paquetes y módulos personalizados. Estas imágenes vienen preconfiguradas con un JupyterLab editor de código, basado en Code-OSS, Visual Studio Code: Open Source.
+ Siga las instrucciones que se indican en [Bring your own image (BYOI)](studio-updated-byoi.md) para crear un archivo de Dockerfile personalizado. Debe instalar JupyterLab el código abierto de CodeServer la imagen para que sea compatible con Studio.

## Migración de configuraciones de ciclo de vida
<a name="studio-updated-migrate-lcc-lcc"></a>

Debido al modelo de tiempo de ejecución local simplificado de Studio, te recomendamos migrar la estructura de tu Studio Classic actual. LCCs En Studio Classic, a menudo es preciso crear configuraciones de ciclo de vida independientes para las aplicaciones de KernelGateway y de JupyterServer. Como KernelGateway las aplicaciones JupyterServer y se ejecutan en recursos de cómputo independientes en Studio Classic, Studio Classic LCCs puede ser de uno de los dos tipos: 
+ JupyterServerLCC: LCCs En su mayoría, rigen las acciones domésticas del usuario, incluida la configuración del proxy, la creación de variables de entorno y el cierre automático de los recursos.
+ KernelGatewayLCC: LCCs rigen las optimizaciones del entorno de los portátiles Studio Classic. Esto incluye actualizar las versiones de los paquetes numpy en el kernel de `Data Science 3.0` e instalar el paquete de snowflake en el kernel de `Pytorch 2.0 GPU`.

En la arquitectura simplificada de Studio, solo se necesita un script de LCC, que se ejecuta al iniciar la aplicación. Si bien la migración de los scripts de la LCC varía según el entorno de desarrollo, recomendamos combinar JupyterServer y KernelGateway LCCs crear una LCC combinada.

LCCs in Studio se puede asociar a una de las siguientes aplicaciones: 
+ JupyterLab 
+ Editor de código

Los usuarios pueden seleccionar la LCC para el tipo de aplicación correspondiente al crear un espacio o usar la LCC predeterminada establecida por el administrador.

**nota**  
Los scripts de cierre automático de Studio Classic existentes no funcionan con Studio. Para ver un ejemplo de script de apagado automático de Studio, consulta los [ejemplos de configuración del ciclo de vida de SageMaker Studio](https://github.com/aws-samples/sagemaker-studio-apps-lifecycle-config-examples).

### Consideraciones a la hora de refactorizar LCCs
<a name="studio-updated-migrate-lcc-considerations"></a>

Tenga en cuenta las siguientes diferencias entre Studio Classic y Studio al refactorizar su. LCCs
+ JupyterLab y las aplicaciones del editor de código, una vez creadas, se ejecutan igual que `sagemaker-user` con `UID:1001` y. `GID:101` De forma predeterminada, `sagemaker-user` tiene permisos para asumir sudo/root permisos. KernelGatewaylas aplicaciones se ejecutan de forma `root` predeterminada.
+ SageMaker Las imágenes de distribución que se ejecutan dentro de las aplicaciones JupyterLab y el editor de código utilizan el administrador de paquetes Debian basado,`apt-get`.
+ Las aplicaciones Studio JupyterLab y Code Editor utilizan el administrador de Conda paquetes. SageMaker La IA crea un Python3 Conda entorno base único cuando se lanza una aplicación de Studio. Para obtener información sobre la actualización de paquetes en el entorno base de Conda y crear nuevos entornos de Conda, consulte [JupyterLab guía del usuario](studio-updated-jl-user-guide.md). En cambio, no todas las aplicaciones de KernelGateway utilizan Conda como administrador de paquetes.
+ La JupyterLab aplicación Studio usa`JupyterLab 4.0`, mientras que Studio Classic usa`JupyterLab 3.0`. Compruebe que todas las extensiones de JupyterLab que utilice sean compatibles con `JupyterLab 4.0`. Para obtener más información sobre las extensiones, consulte [Compatibilidad de extensiones con la JupyterLab versión 4.0](https://github.com/jupyterlab/jupyterlab/issues/14590).

# (Opcional) Migración de datos de Studio Classic a Studio
<a name="studio-updated-migrate-data"></a>

Studio Classic y Studio utilizan dos tipos diferentes de volúmenes de almacenamiento. Studio Classic utiliza un solo volumen de Amazon Elastic File System (Amazon EFS) para almacenar datos de todos los usuarios y espacios compartidos del dominio. En Studio, cada espacio tiene su propio volumen de Amazon Elastic Block Store (Amazon EBS). Al actualizar la experiencia predeterminada de un dominio existente, SageMaker AI monta automáticamente una carpeta en un volumen de Amazon EFS para cada usuario de un dominio. A consecuencia de ello, los usuarios pueden obtener acceso a los archivos de Studio Classic en sus aplicaciones de Studio. Para obtener más información, consulte [Montaje automático de Amazon EFS en Studio](studio-updated-automount.md). 

También puede dar de baja el montaje automático de Amazon EFS y migrar los datos manualmente para que los usuarios puedan obtener acceso a los archivos de Studio Classic en las aplicaciones de Studio. Para ello, debe transferir los archivos de los directorios principales de los usuarios a los volúmenes de Amazon EBS asociados a esos espacios. En la siguiente sección se proporciona información sobre este flujo de trabajo. Para obtener más información sobre cómo dar de baja el montaje automático de Amazon EFS, consulte [Exclusión del montaje automático de Amazon EFS](studio-updated-automount-optout.md).

## Migración manual de todos los datos desde Studio Classic
<a name="studio-updated-migrate-data-all"></a>

En la siguiente sección se describe cómo migrar todos los datos del volumen de almacenamiento de Studio Classic a la nueva experiencia de Studio.

Al migrar manualmente los datos, el código y los artefactos de un usuario de Studio Classic a Studio, recomendamos uno de los siguientes enfoques:

1. Uso de un volumen personalizado de Amazon EFS

1. Uso de Amazon Simple Storage Service (Amazon S3)

Si utilizó Amazon SageMaker Data Wrangler en Studio Classic y desea migrar los archivos de flujo de datos, elija una de las siguientes opciones de migración:
+ Si desea migrar todos los datos de su volumen de almacenamiento de Studio Classic, incluidos los archivos de flujo de datos, vaya a [Migración manual de todos los datos desde Studio Classic](#studio-updated-migrate-data-all) y lleve a cabo la sección **Uso de Amazon S3 para migrar datos**. Después, vaya directamente a la sección [Importación de los archivos de flujo a Canvas](#studio-updated-migrate-flows-import).
+ Si solo quiere migrar sus archivos de flujo de datos y ningún otro dato de su volumen de almacenamiento de Studio Classic, vaya directamente a la sección [Migración de los flujos de datos desde Data Wrangler](#studio-updated-migrate-flows).

### Requisitos previos
<a name="studio-updated-migrate-data-prereq"></a>

Antes de llevar a cabo estos pasos, debe cumplir los requisitos previos de [Requisitos previos completos para migrar la experiencia de Studio](studio-updated-migrate-prereq.md). También debe realizar los pasos que se indican en [Migración de la interfaz de usuario de Studio Classic a Studio](studio-updated-migrate-ui.md).

### Elección de un enfoque
<a name="studio-updated-migrate-data-choose"></a>

Tenga en cuenta lo siguiente al elegir un enfoque para migrar los datos de Studio Classic.

**Pros y contras de usar un volumen personalizado de Amazon EFS**

En este enfoque, utiliza una AWS DataSync tarea de Amazon EFS-to-Amazon EFS (una vez o cada vez) para copiar los datos y, a continuación, montar el volumen de Amazon EFS de destino en los espacios de un usuario. Esto permite a los usuarios obtener acceso a los datos de sus entornos de computación de Studio desde Studio Classic.

Ventajas:
+ Solo los datos del directorio principal del usuario están visibles en los espacios del usuario. No se produce polinización cruzada entre los datos.
+ La sincronización desde el volumen de Amazon EFS de origen con un volumen de Amazon EFS de destino es más segura que montar directamente el volumen de Amazon EFS de origen gestionado por la SageMaker IA en espacios. Esto evita la posibilidad de que los archivos de usuario del directorio principal se vean afectados.
+ Los usuarios tienen la flexibilidad de seguir trabajando en las aplicaciones de Studio Classic y Studio, mientras tienen los datos disponibles en ambas aplicaciones si AWS DataSync se ha configurado con una cadencia periódica.
+ No es necesario insertar y extraer los datos repetidamente con Amazon S3.

Desventajas:
+ No se produce ningún acceso de escritura al volumen de Amazon EFS de destino montado en los espacios del usuario. Para obtener acceso de escritura al volumen de Amazon EFS de destino, los clientes deberán montar el volumen de Amazon EFS de destino en una instancia de Amazon Elastic Compute Cloud y proporcionar los permisos adecuados para que los usuarios escriban en el prefijo de Amazon EFS.
+ Es necesario modificar los grupos de seguridad gestionados por la SageMaker IA para permitir el flujo de entrada y salida del sistema de archivos de red (NFS).
+ Es más costoso que usar Amazon S3.
+ Si [migra flujos de datos desde Data Wrangler en Studio Classic](#studio-updated-migrate-flows), debe seguir los pasos para exportar manualmente los archivos de flujo.

**Pros y contras de usar Amazon S3**

En este enfoque, utiliza una AWS DataSync tarea de Amazon EFS-to-Amazon S3 (una vez o cada vez) para copiar los datos y, a continuación, crea una configuración de ciclo de vida para copiar los datos del usuario de Amazon S3 al volumen de Amazon EBS de su espacio privado.

Ventajas:
+ Si la configuración de ciclo de vida está asociada al dominio, los usuarios pueden usarla para copiar los datos en su espacio o administrar el espacio sin un script de configuración de ciclo de vida. Esto les permite copiar los archivos solo en los espacios que necesiten.
+ Si una AWS DataSync tarea se configura de forma continua, los usuarios pueden reiniciar la aplicación Studio para obtener los archivos más recientes.
+ Como los datos se copian en Amazon EBS, los usuarios tienen permisos de escritura en los archivos.
+ El almacenamiento de Amazon S3 es más económico que el de Amazon EFS.
+ Si [migra flujos de datos desde Data Wrangler en Studio Classic](#studio-updated-migrate-flows), puede omitir los pasos de exportación manual e importar directamente los flujos de datos a SageMaker Canvas desde Amazon S3.

Desventajas:
+ Si los administradores necesitan evitar la polinización cruzada, deben crear políticas de AWS Identity and Access Management para usuarios a fin de garantizar que estos solo puedan obtener acceso al prefijo de Amazon S3 que contiene sus propios archivos.

### Uso de un volumen de Amazon EFS personalizado para migrar datos
<a name="studio-updated-migrate-data-approach1"></a>

En este enfoque, se utiliza un Amazon EFS-to-Amazon EFS AWS DataSync para copiar el contenido de un volumen Amazon EFS de Studio Classic a un volumen Amazon EFS de destino una vez o con una cadencia normal y, a continuación, se monta el volumen Amazon EFS de destino en los espacios de un usuario. Esto permite a los usuarios obtener acceso a los datos de sus entornos de computación de Studio desde Studio Classic.

1. Cree un volumen de Amazon EFS de destino. Transferirá los datos a este volumen de Amazon EFS y lo montará en el espacio del usuario correspondiente mediante un montaje por prefijo.

   ```
   export SOURCE_DOMAIN_ID="domain-id"
   export AWS_REGION="region"
   
   export TARGET_EFS=$(aws efs create-file-system --performance-mode generalPurpose --throughput-mode bursting --encrypted --region $REGION | jq -r '.FileSystemId')
   
   echo "Target EFS volume Created: $TARGET_EFS"
   ```

1. Agregue variables para el volumen de Amazon EFS de origen que se encuentra asociado al dominio y que utilizan todos los usuarios. La información de Amazon Virtual Private Cloud del dominio es necesaria para asegurarse de que el volumen de Amazon EFS de destino se cree en la misma subred y VPC de Amazon y con la misma configuración de grupo de seguridad.

   ```
   export SOURCE_EFS=$(aws sagemaker describe-domain --domain-id $SOURCE_DOMAIN_ID | jq -r '.HomeEfsFileSystemId')
   export VPC_ID=$(aws sagemaker describe-domain --domain-id $SOURCE_DOMAIN_ID | jq -r '.VpcId')
   
   echo "EFS managed by SageMaker: $SOURCE_EFS | VPC: $VPC_ID"
   ```

1. Cree un destino de montaje de Amazon EFS en la misma subred y VPC de Amazon que el volumen de Amazon EFS de origen y con la misma configuración de grupo de seguridad. El destino de montaje tarda unos minutos en estar disponible.

   ```
   export EFS_VPC_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].VpcId")
   export EFS_AZ_NAME=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].AvailabilityZoneName")
   export EFS_AZ_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].AvailabilityZoneId")
   export EFS_SUBNET_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].SubnetId")
   export EFS_MOUNT_TARG_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].MountTargetId")
   export EFS_SG_IDS=$(aws efs describe-mount-target-security-groups --mount-target-id $EFS_MOUNT_TARG_ID | jq -r '.SecurityGroups[]')
   
   aws efs create-mount-target \
   --file-system-id $TARGET_EFS \
   --subnet-id $EFS_SUBNET_ID \
   --security-groups $EFS_SG_IDS
   ```

1. Cree las ubicaciones de origen y destino de Amazon EFS para la AWS DataSync tarea.

   ```
   export SOURCE_EFS_ARN=$(aws efs describe-file-systems --file-system-id $SOURCE_EFS | jq -r ".FileSystems[0].FileSystemArn")
   export TARGET_EFS_ARN=$(aws efs describe-file-systems --file-system-id $TARGET_EFS | jq -r ".FileSystems[0].FileSystemArn")
   export EFS_SUBNET_ID_ARN=$(aws ec2 describe-subnets --subnet-ids $EFS_SUBNET_ID | jq -r ".Subnets[0].SubnetArn")
   export ACCOUNT_ID=$(aws ec2 describe-security-groups --group-id $EFS_SG_IDS | jq -r ".SecurityGroups[0].OwnerId")
   export EFS_SG_ID_ARN=arn:aws:ec2:$REGION:$ACCOUNT_ID:security-group/$EFS_SG_IDS
   
   export SOURCE_LOCATION_ARN=$(aws datasync create-location-efs --subdirectory "/" --efs-filesystem-arn $SOURCE_EFS_ARN --ec2-config SubnetArn=$EFS_SUBNET_ID_ARN,SecurityGroupArns=$EFS_SG_ID_ARN --region $REGION | jq -r ".LocationArn")
   export DESTINATION_LOCATION_ARN=$(aws datasync create-location-efs --subdirectory "/" --efs-filesystem-arn $TARGET_EFS_ARN --ec2-config SubnetArn=$EFS_SUBNET_ID_ARN,SecurityGroupArns=$EFS_SG_ID_ARN --region $REGION | jq -r ".LocationArn")
   ```

1. Permita el tráfico entre los montajes del sistema de archivos de red (NFS) de origen y de destino. Cuando se crea un dominio nuevo, la SageMaker IA crea 2 grupos de seguridad.
   + Un grupo de seguridad entrante de NFS que solo tiene tráfico entrante.
   + Un grupo de seguridad saliente de NFS que solo tiene tráfico saliente.

   Los NFS de origen y de destino se encuentran dentro de los mismos grupos de seguridad. Puede permitir el tráfico entre estos soportes desde el Consola de administración de AWS quirófano AWS CLI.
   + Permita el tráfico procedente del Consola de administración de AWS

     1. Inicie sesión en la consola de Amazon VPC Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

     1. Seleccione **Security Groups**.

     1. Busque el ID del dominio existente en la página **Grupos de seguridad**.

        ```
        d-xxxxxxx
        ```

        Los resultados deberían devolver dos grupos de seguridad en cuyo nombre se incluya el ID de dominio.
        + `security-group-for-inbound-nfs-domain-id`
        + `security-group-for-outbound-nfs-domain-id`

     1. Seleccione el ID del grupo de seguridad entrante. Se abre una nueva página con detalles sobre el grupo de seguridad.

     1. Seleccione la pestaña **Reglas de salida**.

     1. Seleccione **Editar reglas de salida**.

     1. Actualice las reglas de salida existentes o agregue una nueva regla de salida con los siguientes valores:
        + **Type (Tipo)**: NFS
        + **Protocolo**: TCP
        + **Rango de puertos**: 2049
        + **Destino**: security-group-for-outbound -nfs- \$1 *domain-id* *security-group-id*

     1. Seleccione **Guardar reglas**.

     1. Seleccione la pestaña **Reglas de entrada**.

     1. A continuación, seleccione **Editar reglas de entrada**.

     1. Actualice las reglas de entrada existentes o agregue una nueva regla de salida con los siguientes valores:
        + **Type (Tipo)**: NFS
        + **Protocolo**: TCP
        + **Rango de puertos**: 2049
        + **Destino**: security-group-for-outbound -nfs- \$1 *domain-id* *security-group-id*

     1. Seleccione **Guardar reglas**.
   + Permita el tráfico procedente del AWS CLI

     1.  Actualice las reglas de entrada y salida de los grupos de seguridad con los valores siguientes:
        + **Protocolo**: TCP
        + **Rango de puertos**: 2049
        + **ID de grupo**: del grupo de seguridad entrante o ID del grupo de seguridad saliente

        ```
        export INBOUND_SG_ID=$(aws ec2 describe-security-groups --filters "Name=group-name,Values=security-group-for-inbound-nfs-$SOURCE_DOMAIN_ID" | jq -r ".SecurityGroups[0].GroupId")
        export OUTBOUND_SG_ID=$(aws ec2 describe-security-groups --filters "Name=group-name,Values=security-group-for-outbound-nfs-$SOURCE_DOMAIN_ID" | jq -r ".SecurityGroups[0].GroupId")
        
        echo "Outbound SG ID: $OUTBOUND_SG_ID | Inbound SG ID: $INBOUND_SG_ID"
        aws ec2 authorize-security-group-egress \
        --group-id $INBOUND_SG_ID \
        --protocol tcp --port 2049 \
        --source-group $OUTBOUND_SG_ID
        
        aws ec2 authorize-security-group-ingress \
        --group-id $OUTBOUND_SG_ID \
        --protocol tcp --port 2049 \
        --source-group $INBOUND_SG_ID
        ```

     1.  Agregue los grupos de seguridad entrantes y salientes a los destinos de montaje de Amazon EFS de origen y destino. Esto permite el tráfico entre los dos montajes de Amazon EFS.

        ```
        export SOURCE_EFS_MOUNT_TARGET=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].MountTargetId")
        export TARGET_EFS_MOUNT_TARGET=$(aws efs describe-mount-targets --file-system-id $TARGET_EFS | jq -r ".MountTargets[0].MountTargetId")
        
        aws efs modify-mount-target-security-groups \
        --mount-target-id $SOURCE_EFS_MOUNT_TARGET \
        --security-groups $INBOUND_SG_ID $OUTBOUND_SG_ID
        
        aws efs modify-mount-target-security-groups \
        --mount-target-id $TARGET_EFS_MOUNT_TARGET \
        --security-groups $INBOUND_SG_ID $OUTBOUND_SG_ID
        ```

1. Crea una AWS DataSync tarea. Esto devuelve un ARN de tarea que se puede usar para ejecutar la tarea bajo demanda o como parte de una cadencia normal.

   ```
   export EXTRA_XFER_OPTIONS='VerifyMode=ONLY_FILES_TRANSFERRED,OverwriteMode=ALWAYS,Atime=NONE,Mtime=NONE,Uid=NONE,Gid=NONE,PreserveDeletedFiles=REMOVE,PreserveDevices=NONE,PosixPermissions=NONE,TaskQueueing=ENABLED,TransferMode=CHANGED,SecurityDescriptorCopyFlags=NONE,ObjectTags=NONE'
   export DATASYNC_TASK_ARN=$(aws datasync create-task --source-location-arn $SOURCE_LOCATION_ARN --destination-location-arn $DESTINATION_LOCATION_ARN --name "SMEFS_to_CustomEFS_Sync" --region $REGION --options $EXTRA_XFER_OPTIONS | jq -r ".TaskArn")
   ```

1. Inicie una AWS DataSync tarea para copiar automáticamente los datos del Amazon EFS de origen al montaje de Amazon EFS de destino. Con esto, no se retienen los permisos de POSIX del archivo, lo que permite a los usuarios leer el montaje de Amazon EFS de destino, pero no escribir en él.

   ```
   aws datasync start-task-execution --task-arn $DATASYNC_TASK_ARN
   ```

1. Monte el volumen de Amazon EFS de destino en el nivel raíz del dominio.

   ```
   aws sagemaker update-domain --domain-id $SOURCE_DOMAIN_ID \
   --default-user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig": {"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "/"}}]}'
   ```

1. Sobrescriba todos los perfiles de usuario con un prefijo `FileSystemPath`. El prefijo incluye el UID del usuario, creado por SageMaker AI. Esto garantiza que los usuarios solo tengan acceso a sus datos y evita la polinización cruzada. Cuando se crea un espacio en el dominio y el volumen de Amazon EFS de destino se monta en la aplicación, el prefijo del usuario sobrescribe el prefijo del dominio. Como resultado, SageMaker AI solo monta el `/user-id` directorio en la aplicación del usuario.

   ```
   aws sagemaker list-user-profiles --domain-id $SOURCE_DOMAIN_ID | jq -r '.UserProfiles[] | "\(.UserProfileName)"' | while read user; do
   export uid=$(aws sagemaker describe-user-profile --domain-id $SOURCE_DOMAIN_ID --user-profile-name $user | jq -r ".HomeEfsFileSystemUid")
   echo "$user $uid"
   aws sagemaker update-user-profile --domain-id $SOURCE_DOMAIN_ID --user-profile-name $user --user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig":{"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "'"/$uid/"'"}}]}'
   done
   ```

1. A continuación, los usuarios pueden seleccionar el sistema de archivos de Amazon EFS personalizado al inicializar una aplicación. Para obtener más información, consulte [JupyterLab guía del usuario](studio-updated-jl-user-guide.md) o [Inicialización de una aplicación de editor de código en Studio](code-editor-use-studio.md).

### Uso de Amazon S3 para migrar datos
<a name="studio-updated-migrate-data-approach2"></a>

En este enfoque, utiliza una AWS DataSync tarea de Amazon EFS-to-Amazon S3 para copiar el contenido de un volumen Amazon EFS de Studio Classic a un bucket de Amazon S3 una vez o siguiendo un ritmo normal y, a continuación, crea una configuración de ciclo de vida para copiar los datos del usuario de Amazon S3 al volumen Amazon EBS de su espacio privado.

**nota**  
Este enfoque solo funciona para los dominios que tienen acceso a Internet.

1. Establezca el ID del volumen de Amazon EFS de origen del dominio que contiene los datos que se van a migrar.

   ```
   timestamp=$(date +%Y%m%d%H%M%S)
   export SOURCE_DOMAIN_ID="domain-id"
   export AWS_REGION="region"
   export ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
   export EFS_ID=$(aws sagemaker describe-domain --domain-id $SOURCE_DOMAIN_ID | jq -r '.HomeEfsFileSystemId')
   ```

1. Establezca el nombre del bucket de Amazon S3 de destino. Para obtener información sobre la creación de un bucket de Amazon S3, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). El bucket utilizado debe tener una política de CORS, tal y como se describe en [(Opcional) Actualización de la política de CORS para obtener acceso a los buckets de Amazon S3](studio-updated-migrate-ui.md#studio-updated-migrate-cors). Los usuarios del dominio también deben tener permisos para obtener acceso al bucket de Amazon S3.

   En este ejemplo, copiamos archivos en un prefijo denominado `studio-new`. Si utiliza un único bucket de Amazon S3 para migrar varios dominios, utilice el prefijo `studio-new/<domain-id>` para restringir los permisos sobre los archivos mediante IAM.

   ```
   export BUCKET_NAME=s3-bucket-name
   export S3_DESTINATION_PATH=studio-new
   ```

1. Cree una política de confianza que otorgue AWS DataSync permisos para asumir la función de ejecución de su cuenta. 

   ```
   export TRUST_POLICY=$(cat <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "datasync.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "$ACCOUNT_ID"
                   },
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:datasync:$REGION:$ACCOUNT_ID:*"
                   }
               }
           }
       ]
   }
   EOF
   )
   ```

1. Cree un rol de IAM y asóciele la política de confianza.

   ```
   export timestamp=$(date +%Y%m%d%H%M%S)
   export ROLE_NAME="DataSyncS3Role-$timestamp"
   
   aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document "$TRUST_POLICY"
   aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
   echo "Attached IAM Policy AmazonS3FullAccess"
   aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
   echo "Attached IAM Policy AmazonSageMakerFullAccess"
   export ROLE_ARN=$(aws iam get-role --role-name $ROLE_NAME --query 'Role.Arn' --output text)
   echo "Created IAM Role $ROLE_ARN"
   ```

1. Cree un grupo de seguridad para dar acceso a la ubicación de Amazon EFS.

   ```
   export EFS_ARN=$(aws efs describe-file-systems --file-system-id $EFS_ID | jq -r '.FileSystems[0].FileSystemArn' )
   export EFS_SUBNET_ID=$(aws efs describe-mount-targets --file-system-id $EFS_ID | jq -r '.MountTargets[0].SubnetId')
   export EFS_VPC_ID=$(aws efs describe-mount-targets --file-system-id $EFS_ID | jq -r '.MountTargets[0].VpcId')
   export MOUNT_TARGET_ID=$(aws efs describe-mount-targets --file-system-id $EFS_ID | jq -r '.MountTargets[0].MountTargetId ')
   export EFS_SECURITY_GROUP_ID=$(aws efs describe-mount-target-security-groups --mount-target-id $MOUNT_TARGET_ID | jq -r '.SecurityGroups[0]')
   export EFS_SUBNET_ARN=$(aws ec2 describe-subnets --subnet-ids $EFS_SUBNET_ID | jq -r '.Subnets[0].SubnetArn')
   echo "Subnet ID: $EFS_SUBNET_ID"
   echo "Security Group ID: $EFS_SECURITY_GROUP_ID"
   echo "Subnet ARN: $EFS_SUBNET_ARN"
   
   timestamp=$(date +%Y%m%d%H%M%S)
   sg_name="datasync-sg-$timestamp"
   export DATASYNC_SG_ID=$(aws ec2 create-security-group --vpc-id $EFS_VPC_ID --group-name $sg_name --description "DataSync SG" --output text --query 'GroupId')
   aws ec2 authorize-security-group-egress --group-id $DATASYNC_SG_ID --protocol tcp --port 2049 --source-group $EFS_SECURITY_GROUP_ID
   aws ec2 authorize-security-group-ingress --group-id $EFS_SECURITY_GROUP_ID --protocol tcp --port 2049 --source-group $DATASYNC_SG_ID
   export DATASYNC_SG_ARN="arn:aws:ec2:$REGION:$ACCOUNT_ID:security-group/$DATASYNC_SG_ID"
   echo "Security Group ARN: $DATASYNC_SG_ARN"
   ```

1. Cree una ubicación Amazon EFS de origen para la AWS DataSync tarea.

   ```
   export SOURCE_ARN=$(aws datasync create-location-efs --efs-filesystem-arn $EFS_ARN --ec2-config "{\"SubnetArn\": \"$EFS_SUBNET_ARN\", \"SecurityGroupArns\": [\"$DATASYNC_SG_ARN\"]}" | jq -r '.LocationArn')
   echo "Source Location ARN: $SOURCE_ARN"
   ```

1. Cree una ubicación de Amazon S3 de destino para la AWS DataSync tarea.

   ```
   export BUCKET_ARN="arn:aws:s3:::$BUCKET_NAME"
   export DESTINATION_ARN=$(aws datasync create-location-s3 --s3-bucket-arn $BUCKET_ARN --s3-config "{\"BucketAccessRoleArn\": \"$ROLE_ARN\"}" --subdirectory $S3_DESTINATION_PATH | jq -r '.LocationArn')
   echo "Destination Location ARN: $DESTINATION_ARN"
   ```

1. Cree una AWS DataSync tarea.

   ```
   export TASK_ARN=$(aws datasync create-task --source-location-arn $SOURCE_ARN --destination-location-arn $DESTINATION_ARN | jq -r '.TaskArn')
   echo "DataSync Task: $TASK_ARN"
   ```

1. Inicie la AWS DataSync tarea. Esta tarea copia automáticamente los datos del volumen de Amazon EFS de origen al bucket de Amazon S3 de destino. Espere a que la tarea se lleve a cabo.

   ```
   aws datasync start-task-execution --task-arn $TASK_ARN
   ```

1. Compruebe el estado de la AWS DataSync tarea para comprobar que se ha completado. Utilice el ARN devuelto en el paso anterior.

   ```
   export TASK_EXEC_ARN=datasync-task-arn
   echo "Task execution ARN: $TASK_EXEC_ARN"
   export STATUS=$(aws datasync describe-task-execution --task-execution-arn $TASK_EXEC_ARN | jq -r '.Status')
   echo "Execution status: $STATUS"
   while [ "$STATUS" = "QUEUED" ] || [ "$STATUS" = "LAUNCHING" ] || [ "$STATUS" = "PREPARING" ] || [ "$STATUS" = "TRANSFERRING" ] || [ "$STATUS" = "VERIFYING" ]; do
       STATUS=$(aws datasync describe-task-execution --task-execution-arn $TASK_EXEC_ARN | jq -r '.Status')
       if [ $? -ne 0 ]; then
           echo "Error Running DataSync Task"
           exit 1
       fi
       echo "Execution status: $STATUS"
       sleep 30
   done
   ```

1. Una vez completada la AWS DataSync tarea, limpie los recursos creados anteriormente.

   ```
   aws datasync delete-task --task-arn $TASK_ARN
   echo "Deleted task $TASK_ARN"
   aws datasync delete-location --location-arn $SOURCE_ARN
   echo "Deleted location source $SOURCE_ARN"
   aws datasync delete-location --location-arn $DESTINATION_ARN
   echo "Deleted location source $DESTINATION_ARN"
   aws iam detach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
   aws iam detach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
   aws iam delete-role --role-name $ROLE_NAME
   echo "Deleted IAM Role $ROLE_NAME"
   echo "Wait 5 minutes for the elastic network interface to detach..."
   start_time=$(date +%s)
   while [[ $(($(date +%s) - start_time)) -lt 300 ]]; do
       sleep 1
   done
   aws ec2 revoke-security-group-ingress --group-id $EFS_SECURITY_GROUP_ID --protocol tcp --port 2049 --source-group $DATASYNC_SG_ID
   echo "Revoked Ingress from $EFS_SECURITY_GROUP_ID"
   aws ec2 revoke-security-group-egress --group-id $DATASYNC_SG_ID --protocol tcp --port 2049 --source-group $EFS_SECURITY_GROUP_ID
   echo "Revoked Egress from $DATASYNC_SG_ID"
   aws ec2 delete-security-group --group-id $DATASYNC_SG_ID
   echo "Deleted DataSync SG $DATASYNC_SG_ID"
   ```

1. En su equipo local, cree un archivo con el nombre `on-start.sh` que contenga lo siguiente. En este script se copia el directorio principal de Amazon EFS del usuario de Amazon S3 en el volumen de Amazon EBS del usuario de Studio y se crea un prefijo para cada perfil de usuario.

   ```
   #!/bin/bash
   set -eo pipefail
   
   sudo apt-get install -y jq
   
   # Studio Variables
   DOMAIN_ID=$(cat /opt/ml/metadata/resource-metadata.json | jq -r '.DomainId')
   SPACE_NAME=$(cat /opt/ml/metadata/resource-metadata.json | jq -r '.SpaceName')
   USER_PROFILE_NAME=$(aws sagemaker describe-space --domain-id=$DOMAIN_ID --space-name=$SPACE_NAME | jq -r '.OwnershipSettings.OwnerUserProfileName')
   
   # S3 bucket to copy from
   BUCKET=s3-bucket-name
   # Subfolder in bucket to copy
   PREFIX=studio-new
   
   # Getting HomeEfsFileSystemUid for the current user-profile
   EFS_FOLDER_ID=$(aws sagemaker describe-user-profile --domain-id $DOMAIN_ID --user-profile-name $USER_PROFILE_NAME | jq -r '.HomeEfsFileSystemUid')
   
   # Local destination directory
   DEST=./studio-classic-efs-backup
   mkdir -p $DEST
   
   echo "Bucket: s3://$BUCKET/$PREFIX/$EFS_FOLDER_ID/"
   echo "Destination $DEST/"
   echo "Excluding .*"
   echo "Excluding .*/*"
   
   aws s3 cp s3://$BUCKET/$PREFIX/$EFS_FOLDER_ID/ $DEST/ \
       --exclude ".*" \
       --exclude "**/.*" \
       --recursive
   ```

1. Convierta el script al formato base64. Este requisito evita errores debidos a la codificación del espaciado y los saltos de línea. El tipo de script puede ser `JupyterLab` o `CodeEditor`.

   ```
   export LCC_SCRIPT_NAME='studio-classic-sync'
   export SCRIPT_FILE_NAME='on-start.sh'
   export SCRIPT_TYPE='JupyterLab-or-CodeEditor'
   LCC_CONTENT=`openssl base64 -A -in ${SCRIPT_FILE_NAME}`
   ```

1. Compruebe lo siguiente antes de utilizar el script: 
   + Que el volumen de Amazon EBS sea lo bastante grande como para almacenar los objetos que se van a exportar.
   + Que no se migren archivos y carpetas ocultos, por ejemplo `.bashrc` y `.condarc`, si no se tiene intención de hacerlo.
   + La función de ejecución AWS Identity and Access Management (IAM) asociada a los perfiles de usuario de Studio tiene las políticas configuradas para acceder únicamente al directorio principal correspondiente en Amazon S3.

1. Cree un script de configuración de ciclo de vida.

   ```
   aws sagemaker create-studio-lifecycle-config \
       --studio-lifecycle-config-name $LCC_SCRIPT_NAME \
       --studio-lifecycle-config-content $LCC_CONTENT \
       --studio-lifecycle-config-app-type $SCRIPT_TYPE
   ```

1. Asocie la configuración de ciclo de vida al dominio.

   ```
   aws sagemaker update-domain \
       --domain-id $SOURCE_DOMAIN_ID \
       --default-user-settings '
           {"JupyterLabAppSettings":
               {"LifecycleConfigArns":
                   [
                       "lifecycle-config-arn"
                   ]
               }
           }'
   ```

1. A continuación, los usuarios pueden seleccionar el script de la configuración de ciclo de vida al inicializar una aplicación. Para obtener más información, consulte [JupyterLab guía del usuario](studio-updated-jl-user-guide.md) o [Inicialización de una aplicación de editor de código en Studio](code-editor-use-studio.md). Con ello, se sincronizan automáticamente los archivos de Amazon S3 con el almacenamiento de Amazon EBS del espacio del usuario.

## Migración de los flujos de datos desde Data Wrangler
<a name="studio-updated-migrate-flows"></a>

Si ha utilizado anteriormente Amazon SageMaker Data Wrangler en Amazon SageMaker Studio Classic para tareas de preparación de datos, puede migrar al nuevo Amazon SageMaker Studio y acceder a la versión más reciente de Data Wrangler en Amazon Canvas. SageMaker Data Wrangler en SageMaker Canvas le proporciona una experiencia de usuario mejorada y acceso a las funciones más recientes, como una interfaz en lenguaje natural y un rendimiento más rápido.

Puede incorporarse a SageMaker Canvas en cualquier momento para empezar a utilizar la nueva experiencia de Data Wrangler. Para obtener más información, consulte [Cómo empezar a usar Amazon SageMaker Canvas](canvas-getting-started.md).

Si tiene archivos de flujo de datos guardados en Studio Classic en los que estaba trabajando anteriormente, puede realizar la incorporación a Studio y, a continuación, importarlos a Canvas. Dispone de las siguientes opciones de migración:
+ Migración con un clic: al iniciar sesión en Canvas, puede usar una opción de importación única que migre todos sus archivos de flujo en su nombre.
+ Migración manual: puede importar manualmente sus archivos de flujo a Canvas. Desde Studio Classic, exporte los archivos a Amazon S3 o descárguelos a su máquina local. A continuación, inicia sesión en la aplicación SageMaker Canvas, importa los archivos de flujo y continúa con las tareas de preparación de datos.

En la siguiente guía se describen los requisitos previos para la migración y cómo migrar los archivos de flujo de datos mediante la opción manual o con un solo clic.

### Requisitos previos
<a name="studio-updated-migrate-flows-prereqs"></a>

Revise los siguientes requisitos previos antes de comenzar a migrar los archivos de flujo.

**Paso 1. Migre el dominio y conceda permisos**

Antes de migrar los archivos de flujo de datos, debe seguir los pasos específicos de la [Migración desde Amazon SageMaker Studio Classic](studio-updated-migrate.md) guía para asegurarse de que la función de ejecución de AWS IAM de su perfil de usuario tenga los permisos necesarios. Antes de continuar, cumpla los [requisitos previos](studio-updated-migrate-prereq.md) y las instrucciones de [Migración de la interfaz de usuario de Studio Classic a Studio](studio-updated-migrate-ui.md), en los que se describe cómo conceder los permisos necesarios, configurar Studio como nueva experiencia y migrar el dominio existente.

En concreto, debe tener permisos para crear una aplicación de SageMaker Canvas y utilizar las funciones de preparación de datos de SageMaker Canvas. Para obtener estos permisos, puede:
+ Añada la [ AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)política a su función de IAM, o
+ Adjunta una política de permisos mínimos, como se muestra en la sección **Migración (opcional) de Data Wrangler en Studio Classic a SageMaker ** Canvas de la página. [Migración de la interfaz de usuario de Studio Classic a Studio](studio-updated-migrate-ui.md)

Asegúrese de utilizar el mismo perfil de usuario para Studio y Canvas. SageMaker 

Tras cumplir los requisitos previos descritos en la guía de migración, debería disponer de un nuevo dominio con los permisos necesarios para acceder a SageMaker Canvas a través de Studio.

**Paso 2. (Opcional) Prepare una ubicación de Amazon S3**

Si va a realizar una migración manual y tiene previsto utilizar Amazon S3 para transferir los archivos de flujo en lugar de utilizar la opción de descarga local, debe tener un bucket de Amazon S3 en la cuenta que desee utilizar para almacenar los archivos de flujo.

### Método de migración con un clic
<a name="studio-updated-migrate-flows-auto"></a>

SageMaker Canvas ofrece una opción de importación única para migrar sus flujos de datos de Data Wrangler en Studio Classic a Data Wrangler en Canvas. SageMaker Siempre y cuando sus aplicaciones de Studio Classic y Canvas compartan el mismo volumen de almacenamiento de Amazon EFS, puede realizar la migración desde Canvas con un solo clic. Con este proceso simplificado, se elimina la necesidad de realizar pasos de exportación e importación manuales, y es posible importar todos los flujos a la vez.

Utilice el siguiente procedimiento para migrar todos los archivos de flujo:

1. Abra la versión más reciente de Studio.

1. En Studio, seleccione el menú desplegable **Datos** en el panel de navegación izquierdo.

1. En las opciones de navegación, elija **Data Wrangler**.

1. En la página **Data Wrangler**, seleccione **Ejecutar en Canvas**. Si ha configurado correctamente los permisos, se creará su aplicación de Canvas. La aplicación de Canvas puede tardar unos minutos en estar lista. 

1. Cuando Canvas esté listo, seleccione **Abrir en Canvas**.

1. Canvas se abre en la página **Data Wrangler** y aparece un encabezado en la parte superior de la página que dice Importe sus flujos de datos de Data Wrangler en Studio Classic a Canvas. Esta es una importación que se realiza una sola vez. Más información. En el banner, seleccione **Importar todo**.
**aviso**  
Si cierra la notificación del banner, no podrá volver a abrirla ni utilizar el método de migración con un clic. 

Aparece una notificación emergente que indica que Canvas está importando los archivos de flujo de Studio Classic. Si la importación se realiza correctamente, recibirá otra notificación que le indicará que `X` archivos de flujo se han importado y podrá ver los archivos de flujo en la página **Data Wrangler** de la aplicación de Canvas. Cualquier archivo de flujo importado que tenga el mismo nombre que los flujos de datos existentes en su aplicación de Canvas se renombrará con un sufijo. Puede abrir un flujo de datos para comprobar que tiene el aspecto esperado.

En caso de que alguno de los archivos de flujo no se importe correctamente, recibirá una notificación en la que se indica que la importación se ha realizado solo parcialmente o no se ha realizado. Seleccione **Ver errores** en el mensaje de notificación para comprobar los mensajes de error individuales y obtener instrucciones sobre cómo reformatear los archivos de flujo cuyo formato sea incorrecto.

Tras importar los archivos de flujo, ahora debería poder seguir utilizando Data Wrangler para preparar los datos en Canvas. SageMaker 

### Método de migración manual
<a name="studio-updated-migrate-flows-manual"></a>

En las siguientes secciones se describe cómo importar manualmente los archivos de flujo a Canvas en caso de que el método de migración con un clic no haya funcionado.

#### Exportación de los archivos de flujo desde Studio Classic
<a name="studio-updated-migrate-flows-export"></a>

**nota**  
Si ya ha migrado sus datos de Studio Classic a Amazon S3 siguiendo las instrucciones de [(Opcional) Migración de datos de Studio Classic a Studio](#studio-updated-migrate-data), puede omitir este paso e ir directamente a la sección [Importación de los archivos de flujo a Canvas](#studio-updated-migrate-flows-import) en la que se importan los archivos de flujo desde la ubicación de Amazon S3 en la que están almacenados los datos de Studio Classic.

Para exportar sus archivos de flujo, puede guardarlos en Amazon S3 o descargarlos en su máquina local. Cuando importe sus archivos de flujo a SageMaker Canvas en el siguiente paso, si elige la opción de carga local, solo podrá cargar 20 archivos de flujo a la vez. Si tiene que importar gran cantidad de archivos de flujo, recomendamos utilizar Amazon S3 en su lugar.

Siga las instrucciones que se indican en [Método 1: uso de Amazon S3 para transferir archivos de flujo](#studio-updated-migrate-flows-export-s3) o en [Método 2: uso de su equipo local para transferir los archivos de flujo](#studio-updated-migrate-flows-export-local) para continuar.

##### Método 1: uso de Amazon S3 para transferir archivos de flujo
<a name="studio-updated-migrate-flows-export-s3"></a>

Con este método, utiliza Amazon S3 como intermediario entre Data Wrangler en Studio Classic y Data Wrangler en SageMaker Canvas (se accede a través de la última versión de Studio). Se exportan los archivos de flujo de Studio Classic a Amazon S3 y, a continuación, en el siguiente paso, se accede a Canvas a través de Studio y se importan los archivos de flujo desde Amazon S3.

Asegúrese de tener un bucket de Amazon S3 preparado como ubicación de almacenamiento para los archivos de flujo.

Utilice el siguiente procedimiento para exportar los archivos de flujo de Studio Classic a Amazon S3:

1. Abra Studio Classic.

1. Abra un nuevo terminal de la siguiente manera:

   1. En la barra de navegación, elija **Archivo**.

   1. En el menú contextual, sitúe el cursor sobre **Nuevo** y, a continuación, seleccione **Terminal**.

1. De forma predeterminada, el terminal debería abrirse en su directorio principal. Acceda la carpeta que contiene todos los archivos de flujo que desea migrar.

1. Utilice el siguiente comando para sincronizar todos los archivos de flujo con la ubicación de Amazon S3 especificada. Sustituya `{bucket-name}` y `{folder}` por la ruta de la ubicación de Amazon S3 que desee. Para obtener más información sobre el comando y los parámetros, consulte el comando [sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) en la Referencia de comandos. AWS AWS CLI 

   ```
   aws s3 sync . s3://{bucket-name}/{folder}/ --exclude "*.*" --include "*.flow"
   ```

   Si utiliza el suyo propio AWS KMS key, utilice el siguiente comando en su lugar para sincronizar los archivos y especifique su ID de clave de KMS. Asegúrese de que al rol de ejecución de IAM del usuario (que debe ser el mismo que se ha utilizado en **Paso 1. Migre el dominio y conceda permisos** de los [Requisitos previos](#studio-updated-migrate-flows-prereqs) anteriores) se le haya concedido acceso para usar la clave de KMS.

   ```
   aws s3 sync . s3://{bucket-name}/{folder}/ --exclude "*.*" --include "*.flow" --sse-kms-key-id {your-key-id}
   ```

Sus archivos de flujo deberían exportarse ahora. Puede comprobar su bucket de Amazon S3 para asegurarse de que los archivos de flujo se han sincronizado correctamente.

Para importar estos archivos en la versión más reciente de Data Wrangler, siga los pasos que se indican en [Importación de los archivos de flujo a Canvas](#studio-updated-migrate-flows-import).

##### Método 2: uso de su equipo local para transferir los archivos de flujo
<a name="studio-updated-migrate-flows-export-local"></a>

Con este método, se descargan los archivos de flujo de Studio Classic a su equipo local. Puede descargar los archivos directamente o comprimirlos en un archivo zip. A continuación, descomprima el archivo zip localmente (si corresponde), inicie sesión en Canvas y cargue los archivos de flujo desde su máquina local para importarlos.

Utilice el siguiente procedimiento para descargar los archivos desde flujo de Studio Classic:

1. Abra Studio Classic.

1. (Opcional) Si desea comprimir varios archivos de flujo en un archivo zip y descargarlos todos a la vez, haga lo siguiente:

   1. En la barra de navegación de Studio Classic, elija **Archivo**.

   1. En el menú contextual, sitúe el cursor sobre **Nuevo** y, a continuación, seleccione **Terminal**.

   1. De forma predeterminada, el terminal se abre en su directorio principal. Acceda la carpeta que contiene todos los archivos de flujo que desea migrar.

   1. Utilice el siguiente comando para comprimir los archivos de flujo del directorio actual en un archivo zip. El comando excluye todos los archivos ocultos:

      ```
      find . -not -path "*/.*" -name "*.flow" -print0 | xargs -0 zip my_archive.zip
      ```

1. Descargue el archivo zip o los archivos de flujo individuales a su máquina local de la siguiente manera:

   1. En el panel de navegación izquierdo de Studio Classic, seleccione **Explorador de archivos**.

   1. Busque el archivo que desee descargar en el explorador de archivos.

   1. Haga clic con el botón derecho en el archivo y, en el menú contextual, seleccione **Descargar**.

El archivo debería descargarse en el equipo local. Si ha comprimido los archivos en un archivo zip, extráigalos localmente. Después de extraer los archivos, para importarlos en la versión más reciente de Data Wrangler, siga los pasos que se indican en [Importación de los archivos de flujo a Canvas](#studio-updated-migrate-flows-import). 

#### Importación de los archivos de flujo a Canvas
<a name="studio-updated-migrate-flows-import"></a>

Después de exportar los archivos de flujo, obtenga acceso a Canvas a través de Studio e importe los archivos.

Utilice el siguiente procedimiento para importar los archivos de flujo a Canvas:

1. Abra la versión más reciente de Studio.

1. En Studio, seleccione el menú desplegable **Datos** en el panel de navegación izquierdo.

1. En las opciones de navegación, elija **Data Wrangler**.

1. En la página **Data Wrangler**, seleccione **Ejecutar en Canvas**. Si ha configurado correctamente los permisos, se creará su aplicación de Canvas. La aplicación de Canvas puede tardar unos minutos en estar lista. 

1. Cuando Canvas esté listo, seleccione **Abrir en Canvas**.

1. Canvas se abre en la página **Data Wrangler**. En el panel superior, seleccione **Importar flujos de datos**.

1. En el menú desplegable **Origen de datos**, seleccione **Amazon S3** o **Carga local**.

1. Seleccione los archivos de flujo de su bucket de Amazon S3 o cargue los archivos desde su equipo local.
**nota**  
En la carga local, puede cargar un máximo de 20 archivos de flujo a la vez. Para importaciones mayores, utilice Amazon S3. Si selecciona una carpeta para importarla, también se importarán todos los archivos de flujo de las subcarpetas.

1. Elija **Importar datos**.

Si la importación se ha realizado correctamente, recibirá una notificación en la que se indicará que `X` archivos de flujo se han importado correctamente.

En caso de que sus archivos de flujo no se importen correctamente, recibirá una notificación en la aplicación SageMaker Canvas. Seleccione **Ver errores** en el mensaje de notificación para comprobar los mensajes de error individuales y obtener instrucciones sobre cómo reformatear los archivos de flujo cuyo formato sea incorrecto.

Una vez que los archivos de flujo hayan terminado de importarse, vaya a la página **Data Wrangler** de la aplicación SageMaker Canvas para ver los flujos de datos. Puede intentar abrir un flujo de datos para comprobar que tiene el aspecto esperado.

# Amazon SageMaker Studio Clásico
<a name="studio"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos que [migres tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic es un entorno de desarrollo integrado (IDE) basado en la web para el aprendizaje automático (ML). Studio Classic permite crear, entrenar, depurar, implementar y supervisar modelos de ML. Studio Classic incluye todas las herramientas que necesita para llevar sus modelos desde la preparación de datos hasta la experimentación y la producción con mayor productividad. En una interfaz visual única puede realizar las siguientes tareas:
+ Escribir y ejecutar código en cuadernos de Jupyter
+ Preparar datos para el machine learning
+ Crear y entrenar modelos de ML
+ Implementar los modelos y monitorizar el rendimiento de sus predicciones
+ Realizar un seguimiento y depurar experimentos de ML
+ Colaborar con otros usuarios en tiempo real

Para obtener información sobre los pasos de incorporación para Studio Classic, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

Para obtener información sobre cómo colaborar con otros usuarios en tiempo real, consulte [Colaboración con espacios compartidos](domain-space.md).

Para conocer las AWS regiones compatibles con Studio Classic, consulte[Regiones y cuotas admitidas](regions-quotas.md).

## Plan de fases de mantenimiento de Amazon SageMaker Studio Classic
<a name="studio-deprecation"></a>

En la siguiente tabla se proporciona información sobre el plazo en el que Amazon SageMaker Studio Classic entró en la fase de mantenimiento ampliado.




| Date | Description (Descripción) | 
| --- | --- | 
|  31/12/2024  |  A partir del 31 de diciembre, finalizará el mantenimiento de Studio Classic. A partir de ese momento, Studio Classic dejará de recibir actualizaciones y correcciones de seguridad. Todos los dominios nuevos se crearán con Amazon SageMaker Studio como predeterminado.  | 
|  31/1/2025  |  A partir del 31 de enero, los usuarios ya no podrán crear JupyterLab tres libretas nuevas en Studio Classic. Los usuarios tampoco podrán reiniciar ni actualizar los cuadernos existentes. Los usuarios solo podrán acceder a las aplicaciones de Studio Classic existentes desde Studio para eliminar o detener los cuadernos existentes.  | 

**nota**  
Su dominio de Studio Classic actual no se migra a Studio de forma automática. Para obtener información sobre la migración, consulte [Migración desde Amazon SageMaker Studio Classic](studio-updated-migrate.md).

**Topics**
+ [Plan de fases de mantenimiento de Amazon SageMaker Studio Classic](#studio-deprecation)
+ [Características clásicas de Amazon SageMaker Studio](#studio-features)
+ [Descripción general de la interfaz de usuario clásica de Amazon SageMaker Studio](studio-ui.md)
+ [Inicie Amazon SageMaker Studio Classic](studio-launch.md)
+ [JupyterLab Control de versiones en Amazon SageMaker Studio Classic](studio-jl.md)
+ [Usa el Amazon SageMaker Studio Classic Launcher](studio-launcher.md)
+ [Usa las libretas clásicas de Amazon SageMaker Studio](notebooks.md)
+ [Personaliza Amazon SageMaker Studio Classic](studio-customize.md)
+ [Realice tareas habituales en Amazon SageMaker Studio Classic](studio-tasks.md)
+ [Precios de Amazon SageMaker Studio Classic](studio-pricing.md)
+ [Solución de problemas de Amazon SageMaker Studio Classic](studio-troubleshooting.md)

## Características clásicas de Amazon SageMaker Studio
<a name="studio-features"></a>

Studio Classic incluye las siguientes características:
+ [SageMaker Piloto automático](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html)
+ [SageMaker Aclare](https://docs.aws.amazon.com/sagemaker/latest/dg/model-explainability.html)
+ [SageMaker Data Wrangler](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler.html)
+ [SageMaker Debugger (Depurador)](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-on-studio.html)
+ [SageMaker Experimentos](https://docs.aws.amazon.com/sagemaker/latest/dg/experiments.html)
+ [SageMaker Tienda de funciones](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store-use-with-studio.html)
+ [SageMaker JumpStart](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-jumpstart.html)
+ [Amazon SageMaker Pipelines](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-studio.html)
+ [SageMaker Registro de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html)
+ [SageMaker Proyectos](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-projects.html)
+ [SageMakerCuadernos Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks.html)
+ [SageMaker Cuaderno universal Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster.html)

# Descripción general de la interfaz de usuario clásica de Amazon SageMaker Studio
<a name="studio-ui"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos que [migres tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic amplía las capacidades JupyterLab con recursos personalizados que pueden acelerar el proceso de Machine Learning (ML) al aprovechar la potencia de AWS la computación. Los usuarios anteriores de JupyterLab notarán la similitud de la interfaz de usuario. Las adiciones más destacadas se detallan en las secciones siguientes. Para obtener una descripción general de la JupyterLab interfaz original, consulte [La JupyterLab interfaz](https://jupyterlab.readthedocs.io/en/latest/user/interface.html). 

La siguiente imagen muestra la vista predeterminada al lanzar Amazon SageMaker Studio Classic. El panel de *navegación izquierdo* muestra todas las categorías de funciones de nivel superior y hay una *[Página de inicio de Amazon SageMaker Studio Classic](#studio-ui-home)* abierta en el *área de trabajo principal*. Para volver a este punto central de orientación, seleccione el icono de **Inicio** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/house.png)) en cualquier momento y, a continuación, seleccione el nodo de **Inicio** en el menú de navegación.

Pruebe el **cuaderno de introducción para obtener** una guía práctica incluida en el producto sobre cómo configurar y familiarizarse con las funciones de Amazon SageMaker Studio Classic. En la sección **Acciones rápidas** de la página de inicio de Studio Classic, seleccione **Abrir el cuaderno de introducción**.

![\[SageMaker Página de inicio de Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-home.png)


**nota**  
Este capítulo se basa en la interfaz de usuario (UI) actualizada de Studio Classic, disponible en la versión JupyterLab 3 `v5.38.x` y superiores.  
Para recuperar su versión de la interfaz de usuario de Studio Classic, abra un terminal del sistema desde el [lanzador de Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launcher.html) y, a continuación  
Ejecute `conda activate studio`
Ejecute `jupyter labextension list`
Busque la versión que aparece después de `@amzn/sagemaker-ui version` en el resultado.
Para obtener información sobre la actualización de Amazon SageMaker Studio Classic, consulte[Cierre y actualice Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

**Topics**
+ [Página de inicio de Amazon SageMaker Studio Classic](#studio-ui-home)
+ [Maquetación Amazon SageMaker Studio Classic](#studio-ui-layout)

## Página de inicio de Amazon SageMaker Studio Classic
<a name="studio-ui-home"></a>

La página de inicio proporciona acceso a tareas y flujos de trabajo comunes. En concreto, incluye una lista de **acciones rápidas** para tareas habituales, como **Abrir lanzador**, para crear libretas y otros recursos, o **Importar y preparar datos de forma visual** para crear un nuevo flujo en Data Wrangler. La página de **Inicio** también ofrece información sobre herramientas sobre los principales controles de la interfaz de usuario.

Las **soluciones prediseñadas y automatizadas** le ayudan a empezar rápidamente con las soluciones de bajo código de la SageMaker IA, como Amazon SageMaker JumpStart y Autopilot.

En **Flujos de trabajo y tareas**, encontrará una lista de tareas relevantes para cada paso de su flujo de trabajo de machine learning que le llevará a la herramienta adecuada para cada tarea. Por ejemplo, si **selecciona Transformar, analizar y exportar datos**, accede a Amazon SageMaker Data Wrangler y abre el flujo de trabajo para crear un nuevo flujo de datos, o **Ver todos los experimentos** lo lleva a SageMaker Experimentos y abre la vista de lista de experimentos.

Al iniciar Studio Classic, se abre la página de **Inicio** en el área de trabajo principal. Puede personalizar su página de **inicio** de SageMaker IA seleccionando el icono **Personalizar el diseño** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/layout.png)) situado en la parte superior derecha de la pestaña de **inicio**.

## Maquetación Amazon SageMaker Studio Classic
<a name="studio-ui-layout"></a>

La interfaz de Amazon SageMaker Studio Classic consta de una *barra de menús* en la parte superior, una barra *lateral izquierda* plegable que muestra una variedad de iconos, como el icono de **inicio** y el **explorador de archivos**, una *barra de estado* en la parte inferior de la pantalla y un *área central* dividida horizontalmente en dos paneles. El panel izquierdo es un *panel de navegación* que se puede contraer. El panel derecho, o área de trabajo principal, contiene una o más pestañas para recursos como lanzadores, cuadernos, terminales, métricas y gráficos, y se puede dividir aún más.

**Informe de un error** en Studio Classic o elija el icono de notificación (![\[Red circle icon with white exclamation mark, indicating an alert or warning.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Notification.png)) para ver las notificaciones de Studio Classic, como las nuevas versiones de Studio Classic y las nuevas funciones de SageMaker IA, en la esquina derecha de la barra de menús. Para actualizar a una nueva versión de Studio Classic, consulte [Cierre y actualice Amazon SageMaker Studio Classic y sus aplicaciones](studio-tasks-update.md).

En las secciones siguientes se describen las áreas principales de la interfaz de usuario de Studio Classic.

### Barra lateral izquierda
<a name="studio-ui-nav-bar"></a>

La *barra lateral izquierda* incluye los siguientes iconos. Al pasar el cursor sobre un icono, aparece información sobre herramientas con el nombre del icono. Con un solo clic en un icono, se abre el panel de navegación izquierdo con la funcionalidad descrita. Al hacer doble clic, se minimiza el panel de navegación izquierdo.


| Icono | Description (Descripción) | 
| --- | --- | 
|  ![\[El icono de Inicio.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/house@2x.png)  | **Inicio** Seleccione el icono de **inicio** para abrir un menú de navegación de nivel superior en el panel de *navegación izquierdo*. Con el menú de navegación de **inicio**, puede descubrir las herramientas adecuadas para cada paso de su flujo de trabajo de machine learning y navegar por ellas. El menú también proporciona atajos a soluciones de inicio rápido y recursos de aprendizaje, como documentación y tutoriales guiados. En las categorías del menú se agrupan las funciones relevantes. Al elegir **Datos**, por ejemplo, se amplían las capacidades de SageMaker IA relevantes para las tareas de preparación de datos. Desde aquí, puede preparar sus datos con Data Wrangler, crear y almacenar funciones de aprendizaje automático con Amazon SageMaker Feature Store y gestionar los clústeres de Amazon EMR para el procesamiento de datos a gran escala. Las categorías se ordenan siguiendo un flujo de trabajo de machine learning típico, desde la preparación de los datos hasta la creación, el entrenamiento y la implementación de modelos de machine learning (datos, canalizaciones, modelos e implementaciones). Al elegir un nodo específico (como Data Wrangler), se abre la página correspondiente en el área de trabajo principal. Seleccione **Inicio** en el menú de navegación para abrir el [Página de inicio de Amazon SageMaker Studio Classic](#studio-ui-home) | 
|  ![\[El icono del Explorador de archivos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder@2x.png)  |  **Explorador de archivos** El **explorador de archivos** muestra listas de los cuadernos, experimentos, pruebas, componentes de prueba, puntos de conexión y soluciones con poco código. El hecho de que se encuentre en un espacio personal o compartido determinará quién tiene acceso a sus archivos. Puede identificar el tipo de espacio en el que se encuentra mirando la esquina superior derecha. **Si está en una aplicación personal, verá un icono de usuario seguido de *[user\$1name]***/Personal Studio** y, si se encuentra en un espacio colaborativo, verá un icono de globo terráqueo seguido de «/» *[user\$1name] *** *[space\$1name].* [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/studio-ui.html) Para las entradas jerárquicas, una ruta de navegación seleccionable en la parte superior del explorador muestra su ubicación en la jerarquía.  | 
|  ![\[El icono del Inspector de propiedades.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/gears@2x.png)  |  **Inspector de propiedades** El Inspector de propiedades es un inspector de herramientas de celda de cuaderno que, cuando está abierto, muestra la configuración contextual de las propiedades.  | 
|  ![\[El icono de Terminales y kernels en ejecución.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels@2x.png)  |  **Ejecución de terminales y kernels** Puede consultar la lista de todos los *kernels* y *terminales* que se ejecutan actualmente en todos los cuadernos, consolas de códigos y directorios. Puede cerrar recursos individuales, incluidos portátiles, terminales, kernels, aplicaciones e instancias. También puede cerrar todos los recursos de una de estas categorías al mismo tiempo. Para obtener más información, consulte [Cierre los recursos de Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md).  | 
|  ![\[El icono de Git.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/git@2x.png)  |  **Git** Puede conectarse a un repositorio Git y luego acceder a una gama completa de herramientas y operaciones de Git. Para obtener más información, consulte [Clonar un repositorio de Git en Amazon SageMaker Studio Classic](studio-tasks-git.md).  | 
|  ![\[El icono de Índice.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/table-of-contents@2x.png)  | **Índice**Puede navegar por la estructura de un documento cuando hay un cuaderno o archivos de Python abiertos. Una tabla de contenido se genera automáticamente en el panel de navegación izquierdo al abrir un cuaderno, archivos Markdown o archivos Python. Se puede hacer clic en las entradas y desplazar el documento hasta el encabezado en cuestión. | 
|  ![\[El icono de Extensiones.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/extensions@2x.png)  |  **Extensiones** Puedes activar y gestionar extensiones de terceros JupyterLab . Puede comprobar las extensiones ya instaladas y buscarlas escribiendo su nombre en la barra de búsqueda. Cuando haya encontrado la extensión que quiera instalar, seleccione **Instalar**. Tras instalar las nuevas extensiones, asegúrate de reiniciarlas JupyterLab actualizando el navegador. Para obtener más información, consulta la [documentación JupyterLab de extensiones](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html).  | 

### Panel de navegación izquierdo
<a name="studio-ui-browser"></a>

El contenido del panel de navegación izquierdo varía según el icono seleccionado en la barra lateral izquierda.

Por ejemplo, al seleccionar el icono de **Inicio** se muestra el menú de navegación. Al seleccionar el **Explorador de archivos**, se muestran todos los archivos y directorios disponibles en su espacio de trabajo (cuadernos, experimentos, flujos de datos, ensayos, componentes de prueba, puntos de conexión o soluciones con poco código).

En el menú de navegación, al seleccionar un nodo, aparecerá la página de la función correspondiente en el área de trabajo principal. Por ejemplo, si selecciona **Data Wrangler** en el menú **Datos**, se abre la pestaña **Data Wrangler** con todos los flujos existentes.

### Área de trabajo principal
<a name="studio-ui-work"></a>

El área de trabajo principal consta de varias pestañas que contienen los cuadernos y terminales abiertos, así como información detallada sobre los experimentos y puntos de conexión. En el área de trabajo principal, puede organizar los documentos (como cuadernos y archivos de texto) y otras actividades (como terminales y consolas de códigos) en paneles de pestañas que puede cambiar de tamaño o subdividir. Arrastre una pestaña hasta el centro de un panel de pestañas para moverla al panel. Para subdividir un panel de pestañas, arrastre una pestaña hacia la izquierda, la derecha, la parte superior o la parte inferior del panel. La pestaña de la actividad actual está marcada con un borde superior coloreado (en color azul, de forma predeterminada).

**nota**  
Todas las páginas de funciones ofrecen ayuda contextual integrada en el producto. Para acceder a la ayuda, seleccione **Mostrar información**. La interfaz de ayuda proporciona una breve introducción a la herramienta y enlaces a recursos adicionales, como vídeos, tutoriales o blogs.

# Inicie Amazon SageMaker Studio Classic
<a name="studio-launch"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Una vez que se haya incorporado a un dominio de Amazon SageMaker AI, puede lanzar una aplicación Amazon SageMaker Studio Classic desde la consola de SageMaker IA o desde. AWS CLI Para obtener más información sobre cómo añadir un dominio, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

**Topics**
+ [Inicie Amazon SageMaker Studio Classic con la consola Amazon SageMaker AI](#studio-launch-console)
+ [Inicie Amazon SageMaker Studio Classic con la AWS CLI](#studio-launch-cli)

## Inicie Amazon SageMaker Studio Classic con la consola Amazon SageMaker AI
<a name="studio-launch-console"></a>

El proceso para navegar a Studio Classic desde Amazon SageMaker AI Console varía en función de si Studio Classic o Amazon SageMaker Studio están configuradas como la experiencia predeterminada para tu dominio. Para obtener más información acerca de cómo configurar la experiencia predeterminada para su dominio, consulte [Migración desde Amazon SageMaker Studio Classic](studio-updated-migrate.md).

**Topics**
+ [Requisito previo](#studio-launch-console-prerequisites)

### Requisito previo
<a name="studio-launch-console-prerequisites"></a>

 Para completar este procedimiento, debes incorporarte a un dominio siguiendo los pasos que se indican en [Incorporar un dominio de Amazon SageMaker AI](https://docs.aws.amazon.com//sagemaker/latest/dg/gs-studio-onboard.html). 

### Inicio de Studio Classic si Studio es su experiencia predeterminada
<a name="studio-launch-console-updated"></a>

1. Vaya a Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. En la IU de Studio, busque el panel de aplicaciones en la parte izquierda.

1. En el panel de aplicaciones, seleccione **Studio Classic**.

1. En la página de inicio de Studio Classic, seleccione la instancia de Studio Classic que desee abrir.

1. Elija “Abrir”.

## Inicie Amazon SageMaker Studio Classic con la AWS CLI
<a name="studio-launch-cli"></a>

Puede usar AWS Command Line Interface (AWS CLI) para lanzar Amazon SageMaker Studio Classic mediante la creación de una URL de dominio prefirmada.

 **Requisitos previos** 

 Antes de comenzar, complete los siguientes requisitos previos: 
+  Incorporado al dominio Amazon SageMaker AI. Para obtener más información, consulta [Cómo incorporarse al dominio Amazon SageMaker AI](https://docs.aws.amazon.com//sagemaker/latest/dg/gs-studio-onboard.html). 
+  AWS CLI Actualízalo siguiendo los pasos que se indican en [Instalación de la AWS CLI versión actual](https://docs.aws.amazon.com//cli/latest/userguide/install-cliv1.html#install-tool-bundled). 
+  Desde su máquina local, ejecute `aws configure` y proporcione sus AWS credenciales. Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com//general/latest/gr/aws-sec-cred-types.html). 

El siguiente fragmento de código muestra cómo lanzar Amazon SageMaker Studio Classic desde una URL de AWS CLI dominio prefirmada. Para obtener más información, consulte [create-presigned-domain-url](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-presigned-domain-url.html).

```
aws sagemaker create-presigned-domain-url \
--region region \
--domain-id domain-id \
--space-name space-name \
--user-profile-name user-profile-name \
--session-expiration-duration-in-seconds 43200
```

# JupyterLab Control de versiones en Amazon SageMaker Studio Classic
<a name="studio-jl"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

La interfaz Amazon SageMaker Studio Classic se basa en JupyterLab, que es un entorno de desarrollo interactivo basado en la web para cuadernos, código y datos. Studio Classic solo admite el uso de JupyterLab 3.

Si creaste tu dominio y perfil de usuario Consola de administración de AWS antes del 31/08/2022 o antes del 22/02/23, tu instancia de Studio Classic tendrá el AWS Command Line Interface valor predeterminado de 1. JupyterLab Después del 1 de julio de 2024, no podrás crear ninguna aplicación de Studio Classic que ejecute 1. JupyterLab 

## JupyterLab 3
<a name="jl3"></a>

JupyterLab 3 incluye las siguientes funciones que no están disponibles en las versiones anteriores. Para obtener más información sobre estas funciones, consulte ¡[Se ha lanzado la JupyterLab versión 3.0\$1](https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb) . 
+ Depurador visual cuando se utilizan los kernels de Base Python 2.0 y Data Science 2.0.
+ Filtro de explorador de archivos 
+ Índice 
+ Compatibilidad con varios idiomas 
+ Modo simple 
+ Modo de interfaz única 

### Cambios importantes en JupyterLab 3
<a name="jl3-changes"></a>

 Tenga en cuenta lo siguiente cuando utilice JupyterLab 3: 
+ Al configurar la JupyterLab versión mediante el AWS CLI, seleccione la imagen correspondiente a su región y JupyterLab versión en la lista de imágenes de[Desde AWS CLI](#studio-jl-set-cli).
+ En JupyterLab 3, debe activar el entorno `studio` conda antes de instalar las extensiones. Para obtener más información, consulte [Instalación JupyterLab y extensiones de Jupyter Server](#studio-jl-install).
+ El depurador solo es compatible si se utilizan las siguientes imágenes: 
  + Base Python 2.0
  + Data Science 2.0
  + Base Python 3.0
  + Data Science 3.0

## Restringir JupyterLab la versión predeterminada mediante una clave de condición de política de IAM
<a name="iam-policy"></a>

Puede utilizar las claves de condición de la política de IAM para restringir la versión JupyterLab que pueden lanzar sus usuarios.

La siguiente política muestra cómo limitar la JupyterLab versión a nivel de dominio. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BlockJupyterLab3DomainLevelAppCreation",
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateDomain",
                "sagemaker:UpdateDomain"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:ArnLike": {
                    "sagemaker:ImageArns": "arn:aws:sagemaker:us-east-1:111122223333:image/jupyter-server-3"
                }
            }
        }
    ]
}
```

------

La siguiente política muestra cómo limitar la JupyterLab versión a nivel del perfil de usuario. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BlockUsersFromCreatingJupyterLab3Apps",
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateUserProfile",
                "sagemaker:UpdateUserProfile"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:ArnLike": {
                    "sagemaker:ImageArns": "arn:aws:sagemaker:us-east-1:111122223333:image/jupyter-server-3"
                }
            }
        }
    ]
}
```

------

La siguiente política muestra cómo limitar la JupyterLab versión a nivel de aplicación. La solicitud de `CreateApp` debe incluir el ARN de la imagen que deba aplicar esta política.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BlockJupyterLab3AppLevelAppCreation",
            "Effect": "Deny",
            "Action": "sagemaker:CreateApp",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:ArnLike": {
                    "sagemaker:ImageArns": "arn:aws:sagemaker:us-east-1:111122223333:image/jupyter-server-3"
                }
            }
        }
    ]
}
```

------

## Establecer una JupyterLab versión predeterminada
<a name="studio-jl-set"></a>

En las siguientes secciones se muestra cómo configurar una JupyterLab versión predeterminada para Studio Classic mediante la consola o el AWS CLI.  

### Desde la consola de
<a name="studio-jl-set-console"></a>

 Puede seleccionar la JupyterLab versión predeterminada para usarla a nivel de dominio o perfil de usuario durante la creación del recurso. Para configurar la JupyterLab versión predeterminada mediante la consola, consulte[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).  

### Desde AWS CLI
<a name="studio-jl-set-cli"></a>

 Puede seleccionar la JupyterLab versión predeterminada para usarla a nivel de dominio o perfil de usuario mediante el AWS CLI.  

 Para establecer la JupyterLab versión predeterminada mediante el AWS CLI, debe incluir el ARN de la JupyterLab versión predeterminada deseada como parte de un AWS CLI comando. Este ARN varía según la versión y la región del dominio de SageMaker IA.  

En la siguiente tabla se muestran ARNs las JupyterLab versiones disponibles para cada región:


|  Region  |  JL3  | 
| --- | --- | 
|  us-east-1  |  arn:aws:sagemaker:us-east-1:081325390199:image/jupyter-server-3  | 
|  us-east-2  |  arn:aws:sagemaker:us-east-2:429704687514:image/jupyter-server-3  | 
|  us-west-1  |  arn:aws:sagemaker:us-west-1:742091327244:image/jupyter-server-3  | 
|  us-west-2  |  arn:aws:sagemaker:us-west-2:236514542706:image/jupyter-server-3  | 
|  af-south-1  |  arn:aws:sagemaker:af-south-1:559312083959:image/jupyter-server-3  | 
|  ap-east-1  |  arn:aws:sagemaker:ap-east-1:493642496378:image/jupyter-server-3  | 
|  ap-south-1  |  arn:aws:sagemaker:ap-south-1:394103062818:image/jupyter-server-3  | 
|  ap-northeast-2  |  arn:aws:sagemaker:ap-northeast-2:806072073708:image/jupyter-server-3  | 
|  ap-southeast-1  |  arn:aws:sagemaker:ap-southeast-1:492261229750:image/jupyter-server-3  | 
|  ap-southeast-2  |  arn:aws:sagemaker:ap-southeast-2:452832661640:image/jupyter-server-3  | 
|  ap-northeast-1  |  arn:aws:sagemaker:ap-northeast-1:102112518831:image/jupyter-server-3  | 
|  ca-central-1  |  arn:aws:sagemaker:ca-central-1:310906938811:image/jupyter-server-3  | 
|  eu-central-1  |  arn:aws:sagemaker:eu-central-1:936697816551:image/jupyter-server-3  | 
|  eu-west-1  |  arn:aws:sagemaker:eu-west-1:470317259841:image/jupyter-server-3  | 
|  eu-west-2  |  arn:aws:sagemaker:eu-west-2:712779665605:image/jupyter-server-3  | 
|  eu-west-3  |  arn:aws:sagemaker:eu-west-3:615547856133:image/jupyter-server-3  | 
|  eu-north-1  |  arn:aws:sagemaker:eu-north-1:243637512696:image/jupyter-server-3  | 
|  eu-south-1  |  arn:aws:sagemaker:eu-south-1:592751261982:image/jupyter-server-3  | 
|  eu-south-2  |  arn:aws:sagemaker:eu-south-2:127363102723:image/jupyter-server-3  | 
|  sa-east-1  |  arn:aws:sagemaker:sa-east-1:782484402741:image/jupyter-server-3  | 
|  cn-north-1  |  arn:aws-cn:sagemaker:cn-north-1:390048526115:image/jupyter-server-3  | 
|  cn-northwest-1  |  arn:aws-cn:sagemaker:cn-northwest-1:390780980154:image/jupyter-server-3  | 

#### Creación o actualización de un dominio
<a name="studio-jl-set-cli-domain"></a>

 Puede establecer una JupyterServer versión predeterminada a nivel de dominio invocando [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)o [UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)pasando el `UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn` campo. 

 A continuación, se muestra cómo crear un dominio con JupyterLab 3 como valor predeterminado mediante: AWS CLI

```
aws --region <REGION> \
sagemaker create-domain \
--domain-name <NEW_DOMAIN_NAME> \
--auth-mode <AUTHENTICATION_MODE> \
--subnet-ids <SUBNET-IDS> \
--vpc-id <VPC-ID> \
--default-user-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",
      "InstanceType": "system"
    }
  }
}'
```

 A continuación, se muestra cómo actualizar un dominio para que utilice JupyterLab 3 como predeterminado mediante AWS CLI: 

```
aws --region <REGION> \
sagemaker update-domain \
--domain-id <YOUR_DOMAIN_ID> \
--default-user-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",
      "InstanceType": "system"
    }
  }
}'
```

#### Creación o actualización del perfil de usuario
<a name="studio-jl-set-cli-user"></a>

 Puede establecer una JupyterServer versión predeterminada a nivel de perfil de usuario invocando [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)o [UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html)pasando el `UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn` campo. 

 A continuación se muestra cómo crear un perfil de usuario con JupyterLab 3 como valor predeterminado en un dominio existente, mediante: AWS CLI

```
aws --region <REGION> \
sagemaker create-user-profile \
--domain-id <YOUR_DOMAIN_ID> \
--user-profile-name <NEW_USERPROFILE_NAME> \
--query UserProfileArn --output text \
--user-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",
      "InstanceType": "system"
    }
  }
}'
```

 A continuación, se muestra cómo actualizar un perfil de usuario para usar JupyterLab 3 como predeterminado, mediante AWS CLI: 

```
aws --region <REGION> \
sagemaker update-user-profile \
 --domain-id <YOUR_DOMAIN_ID> \
 --user-profile-name <EXISTING_USERPROFILE_NAME> \
--user-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",
      "InstanceType": "system"
    }
  }
}'
```

## Vea y actualice la JupyterLab versión de una aplicación desde la consola
<a name="studio-jl-view"></a>

 A continuación, se muestra cómo ver y actualizar la JupyterLab versión de una aplicación. 

1.  Navegue a la página de **dominios** de SageMaker IA. 

1.  Seleccione un dominio para ver sus perfiles de usuario. 

1.  Seleccione un usuario para ver sus aplicaciones. 

1.  Para ver la JupyterLab versión de una aplicación, seleccione el nombre de la aplicación. 

1.  Para actualizar la JupyterLab versión, seleccione **Acción**. 

1.  En el menú desplegable, selecciona **Cambiar JupyterLab versión**. 

1.  En la página de **configuración de Studio Classic**, selecciona la JupyterLab versión en el menú desplegable. 

1.  Una vez que la JupyterLab versión del perfil de usuario se haya actualizado correctamente, reinicie la JupyterServer aplicación para que los cambios de versión se hagan efectivos. Para obtener más información sobre el reinicio de una JupyterServer aplicación, consulte. [Cierre y actualice Amazon SageMaker Studio Classic](studio-tasks-update-studio.md)

## Instalación JupyterLab y extensiones de Jupyter Server
<a name="studio-jl-install"></a>

En JupyterLab 3, debe activar el entorno `studio` conda antes de instalar las extensiones. El método para ello varía en función de si se instalan las extensiones desde Studio Classic o si se utiliza un script de configuración del ciclo de vida.

### Instalación de la extensión desde Studio Classic
<a name="studio-jl-install-studio"></a>

Para instalar extensiones desde Studio Classic, debe activar el entorno de `studio` antes de instalar las extensiones. 

```
# Before installing extensions
conda activate studio

# Install your extensions
pip install <JUPYTER_EXTENSION>

# After installing extensions
conda deactivate
```

### Instalación de extensiones mediante un script de configuración del ciclo de vida
<a name="studio-jl-install-lcc"></a>

Si está JupyterLab instalando extensiones de Jupyter Server en su script de configuración del ciclo de vida, debe modificar el script para que funcione con 3. JupyterLab En las siguientes secciones se muestra el código necesario para los scripts de configuración del ciclo de vida nuevos y existentes.

#### Script de configuración del ciclo de vida existente
<a name="studio-jl-install-lcc-existing"></a>

Si va a reutilizar un script de configuración del ciclo de vida existente que debe funcionar con ambas versiones de JupyterLab, utilice el siguiente código en el script:

```
# Before installing extension
export AWS_SAGEMAKER_JUPYTERSERVER_IMAGE="${AWS_SAGEMAKER_JUPYTERSERVER_IMAGE:-'jupyter-server'}"
if [ "$AWS_SAGEMAKER_JUPYTERSERVER_IMAGE" = "jupyter-server-3" ] ; then
   eval "$(conda shell.bash hook)"
   conda activate studio
fi;

# Install your extensions
pip install <JUPYTER_EXTENSION>


# After installing extension
if [ "$AWS_SAGEMAKER_JUPYTERSERVER_IMAGE" = "jupyter-server-3" ]; then
   conda deactivate
fi;
```

#### Nuevo script de configuración del ciclo de vida
<a name="studio-jl-install-lcc-new"></a>

Si está escribiendo un nuevo script de configuración del ciclo de vida que solo usa JupyterLab 3, puede usar el siguiente código en el script:

```
# Before installing extension
eval "$(conda shell.bash hook)"
conda activate studio


# Install your extensions
pip install <JUPYTER_EXTENSION>


conda deactivate
```

# Usa el Amazon SageMaker Studio Classic Launcher
<a name="studio-launcher"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Puede usar Amazon SageMaker Studio Classic Launcher para crear blocs de notas y archivos de texto, así como para lanzar terminales y shells de Python interactivos.

Puede abrir el lanzador de Studio Classic de las siguientes maneras.
+ Elige **Amazon SageMaker Studio Classic** en la parte superior izquierda de la interfaz de Studio Classic.
+ Use el método abreviado de teclado `Ctrl + Shift + L`.
+ En el menú Studio Classic, seleccione **Archivo** y luego **Nuevo lanzador**.
+ Si el explorador de archivos SageMaker AI está abierto, seleccione el signo más (**\$1**) en el menú del explorador de archivos de Studio Classic.
+ En la sección **Acciones rápidas** de la pestaña **Inicio**, seleccione **Abrir lanzador**. El lanzador se abre en una nueva pestaña. La sección de **Acciones rápidas** está visible de forma predeterminada, pero se puede desactivar. Seleccione **Personalizar diseño** para volver a activar esta sección.

![\[SageMaker Lanzador de Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-new-launcher.png)


El lanzador consta de las secciones siguientes:

**Topics**
+ [Cuadernos y recursos informáticos](#studio-launcher-launch)
+ [Utilidades y archivos](#studio-launcher-other)

## Cuadernos y recursos informáticos
<a name="studio-launcher-launch"></a>

En esta sección, puede crear un cuaderno, abrir un terminal de imágenes o abrir una consola Python.

Para crear o lanzar uno de estos elementos:

1. Elija **Cambiar entorno** para seleccionar una SageMaker imagen, un núcleo, un tipo de instancia y, si lo desea, añadir un script de configuración del ciclo de vida que se ejecute al iniciar la imagen. Para obtener más información sobre los scripts de configuración del ciclo de vida, consulte [Utilice las configuraciones del ciclo de vida para personalizar Amazon SageMaker Studio Classic](studio-lcc.md). Para obtener más información acerca de las actualizaciones del kernel, consulte [Cambiar la imagen o el núcleo de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).

1. Seleccione un elemento.

**nota**  
Si selecciona un elemento de esta sección, puede incurrir en cargos de uso adicionales. Para obtener más información, consulte [Medición de uso para los portátiles Amazon SageMaker Studio Classic](notebooks-usage-metering.md).

Están disponibles los siguientes elementos:
+ **Cuaderno**

  Lanza el bloc de notas en una sesión de núcleo con la SageMaker imagen elegida.

  Crea el cuaderno en la carpeta que ha seleccionado actualmente en el explorador de archivos. En la barra lateral izquierda de Studio Classic, seleccione el icono del **Explorador de archivos** para mostrar el explorador de archivos.
+ **Consola**

  Lanza el shell en una sesión de núcleo en la SageMaker imagen elegida.

  Abre el intérprete de comandos de la carpeta que ha seleccionado actualmente en el explorador de archivos.
+ **Terminal de imagen**

  Lanza el terminal en una sesión de terminal en la SageMaker imagen elegida.

  Abre el terminal en la carpeta raíz del usuario (como lo muestra la carpeta **Inicio** en el explorador de archivos).

**nota**  
De forma predeterminada, las instancias de CPU se lanzan en una instancia `ml.t3.medium`, mientras que las instancias de GPU se lanzan en una instancia `ml.g4dn.xlarge`.

## Utilidades y archivos
<a name="studio-launcher-other"></a>

En esta sección, puede añadir ayuda contextual en un cuaderno, crear archivos de Python, Markdown y texto, y abrir una terminal del sistema.

**nota**  
Los artículos de esta sección se publican en el contexto de Amazon SageMaker Studio Classic y no conllevan cargos por uso.

Están disponibles los siguientes elementos:
+ **Mostrar ayuda contextual**

  Abre una nueva pestaña que muestra ayuda contextual para las funciones de un cuaderno de Studio Classic. Para mostrar la ayuda, elija una función de un cuaderno activo. Para facilitar la visualización de la ayuda en contexto, arrastre la pestaña de ayuda para que quede adyacente a la pestaña del cuaderno. Para abrir la pestaña de ayuda desde un cuaderno, pulse `Ctrl + I`.

  En la siguiente captura de pantalla se muestra la ayuda contextual del método `Experiment.create`.  
![\[SageMaker Ayuda contextual de Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-context-help.png)
+ **Terminal del sistema**

  Abre un intérprete de comandos `bash` en la carpeta raíz del usuario (como lo muestra la carpeta **Inicio** en el explorador de archivos).
+ **Archivo de texto** y **Archivo Markdown**

  Crea un archivo del tipo asociado en la carpeta que ha seleccionado actualmente en el explorador de archivos. En la barra lateral izquierda, seleccione el icono del **Explorador de archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)) para mostrar el explorador de archivos.

# Usa las libretas clásicas de Amazon SageMaker Studio
<a name="notebooks"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Las libretas Amazon SageMaker Studio Classic son libretas colaborativas que puede lanzar rápidamente porque no necesita configurar las instancias de procesamiento ni el almacenamiento de archivos de antemano. Los cuadernos de Studio Classic proporcionan almacenamiento persistente, lo que permite verlos y compartirlos incluso si las instancias en las que se ejecutan están cerradas.

Puede compartir sus cuadernos con otras personas para que puedan reproducir fácilmente sus resultados y colaborar al construir modelos y explorar sus datos. Proporcione acceso a una copia de solo lectura del cuaderno a través de una URL segura. Las dependencias del cuaderno se incluyen en los metadatos de dicho bloc. Cuando sus compañeros copian el cuaderno, se abre en el mismo entorno que el cuaderno original.

Un cuaderno de Studio Classic se ejecuta en un entorno definido por lo siguiente:
+ Tipo de instancia de Amazon EC2: configuración de hardware en la que se ejecuta el cuaderno. La configuración incluye el número y el tipo de procesadores (vCPU y GPU), así como la cantidad y el tipo de memoria. El tipo de instancia determina la tasa de asignación de precios.
+ SageMaker imagen: una imagen contenedora compatible con SageMaker Studio Classic. La imagen consta de los kernels, paquetes de idiomas y otros archivos necesarios para ejecutar un cuaderno en Studio Classic. Puede haber varias imágenes en una instancia. Para obtener más información, consulte [Imágenes personalizadas en Amazon SageMaker Studio Classic](studio-byoi.md).
+ KernelGateway aplicación: una SageMaker imagen se ejecuta como una KernelGateway aplicación. La aplicación proporciona acceso a los kernels de la imagen. Existe una one-to-one correspondencia entre una imagen de SageMaker IA y una KernelGateway aplicación.
+ Kernel: proceso que inspecciona y ejecuta el código contenido en el cuaderno. Un kernel se define mediante una *especificación del kernel* en la imagen. Puede haber varios kernels en una imagen.

Puede cambiar cualquiera de estos recursos desde el cuaderno.

El siguiente diagrama describe cómo funciona el núcleo de un portátil en relación con la KernelGateway aplicación, el usuario y el dominio.

![\[Cómo funciona el núcleo de un portátil en relación con la KernelGateway aplicación, el usuario y el dominio.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-components.png)


[Los cuadernos de muestra de SageMaker Studio Classic están disponibles en la carpeta [aws\$1sagemaker\$1studio](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_sagemaker_studio) del repositorio de ejemplos de Amazon. SageMaker GitHub ](https://github.com/awslabs/amazon-sagemaker-examples) Cada bloc de notas viene con la SageMaker imagen necesaria que abre el bloc de notas con el núcleo correspondiente.

Le recomendamos que se familiarice con la interfaz de SageMaker Studio Classic y la barra de herramientas del bloc de notas de Studio Classic antes de crear o utilizar un bloc de notas de Studio Classic. Para obtener más información, consulte [Descripción general de la interfaz de usuario clásica de Amazon SageMaker Studio](studio-ui.md) y [Uso de la barra de herramientas de cuadernos de Studio Classic](notebooks-menu.md).

**Topics**
+ [¿En qué se diferencian las libretas clásicas de Amazon SageMaker Studio de las instancias de Notebook?](notebooks-comparison.md)
+ [Comience con las libretas clásicas de Amazon SageMaker Studio](notebooks-get-started.md)
+ [Visita clásica a Amazon SageMaker Studio](gs-studio-end-to-end.md)
+ [Crear o abrir un bloc de notas Amazon SageMaker Studio Classic](notebooks-create-open.md)
+ [Uso de la barra de herramientas de cuadernos de Studio Classic](notebooks-menu.md)
+ [Instalación de bibliotecas y núcleos externos en Amazon SageMaker Studio Classic](studio-notebooks-add-external.md)
+ [Compartir y usar un bloc de notas Amazon SageMaker Studio Classic](notebooks-sharing.md)
+ [Obtenga metadatos de aplicaciones y cuadernos clásicos de Amazon SageMaker Studio](notebooks-run-and-manage-metadata.md)
+ [Descubre las diferencias entre los portátiles en Amazon SageMaker Studio Classic](notebooks-diff.md)
+ [Administra los recursos de las libretas clásicas de Amazon SageMaker Studio](notebooks-run-and-manage.md)
+ [Medición de uso para los portátiles Amazon SageMaker Studio Classic](notebooks-usage-metering.md)
+ [Recursos disponibles para los portátiles Amazon SageMaker Studio Classic](notebooks-resources.md)

# ¿En qué se diferencian las libretas clásicas de Amazon SageMaker Studio de las instancias de Notebook?
<a name="notebooks-comparison"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Cuando inicie un bloc de notas nuevo, le recomendamos que lo cree en Amazon SageMaker Studio Classic en lugar de lanzar una instancia de bloc de notas desde la consola Amazon SageMaker AI. El uso de un cuaderno de Studio Classic ofrece muchas ventajas, entre las que se incluyen las siguientes:
+ **Más rápido: **iniciar un cuaderno de Studio Classic es más rápido que inicializar un cuaderno basado en instancias. Por lo general, es de 5 a 10 veces más rápido que los cuadernos basados en instancias.
+ **Uso compartido sencillo de cuadernos:** el uso compartido de cuadernos es una característica integrada en Studio Classic. Los usuarios pueden generar un enlace para compartir que reproduzca el código del cuaderno y también la SageMaker imagen necesaria para ejecutarlo, con solo unos pocos clics.
+ **SDK de Python más reciente:** los portátiles Studio Classic vienen preinstalados con el SDK de [ SageMaker Python](https://sagemaker.readthedocs.io/en/stable) más reciente de Amazon.
+ **Acceso a todas las características de Studio Classic: **puede acceder a los cuadernos de Studio Classic desde Studio Classic. Esto le permite construir, entrenar, depurar, rastrear y monitorear sus modelos sin salir de Studio Classic.
+ **Directorios de usuario persistentes:** cada miembro de un equipo de Studio obtiene su propio directorio de inicio para almacenar sus cuadernos y otros archivos. El directorio se monta automáticamente en todas las instancias y kernels a medida que se inician, por lo que sus cuadernos y otros archivos están siempre disponibles. Los directorios principales se almacenan en Amazon Elastic File System (Amazon EFS), por lo que puede acceder a ellos desde otros servicios.
+ **Acceso directo:** al utilizar IAM Identity Center, utiliza sus credenciales de IAM Identity Center a través de una URL única para acceder directamente a Studio Classic. No es necesario que interactúes con él Consola de administración de AWS para ejecutar tus cuadernos.
+ **Imágenes optimizadas: las** libretas Studio Classic están equipadas con un conjunto de ajustes de SageMaker imagen predefinidos para que pueda empezar más rápido.

**nota**  
Los cuadernos de Studio Classic no admiten el *modo local*. Sin embargo, puede utilizar una instancia de cuaderno para entrenar localmente una muestra del conjunto de datos y, a continuación, utilizar el mismo código en un cuaderno de Studio Classic para entrenar en el conjunto de datos completo.

Al abrir un bloc de notas en SageMaker Studio Classic, la vista es una extensión de la JupyterLab interfaz. Las funciones principales son las mismas, por lo que encontrarás las características típicas de una libreta Jupyter y. JupyterLab Para obtener más información sobre la interfaz de Studio Classic, consulte [Descripción general de la interfaz de usuario clásica de Amazon SageMaker Studio](studio-ui.md).

# Comience con las libretas clásicas de Amazon SageMaker Studio
<a name="notebooks-get-started"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Para empezar, tú o el administrador de tu organización tenéis que completar el proceso de incorporación del dominio de SageMaker IA. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

Puede acceder a un cuaderno de Studio Classic de cualquiera de las siguientes maneras:
+ Recibirá una invitación por correo electrónico para acceder a Studio Classic a través del Centro de identidades de IAM de su organización, que incluye un enlace directo para iniciar sesión en Studio Classic sin tener que usar la consola Amazon SageMaker AI. Puede continuar con [Siguientes pasos](#notebooks-get-started-next-steps).
+ Recibirás un enlace a un bloc de notas compartido de Studio Classic, que incluye un enlace directo para iniciar sesión en Studio Classic sin tener que usar la consola SageMaker AI. Puede continuar con [Siguientes pasos](#notebooks-get-started-next-steps). 
+ Te incorporas a un dominio y, a continuación, inicias sesión en la consola de SageMaker IA. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Lance Amazon SageMaker AI
<a name="notebooks-get-started-log-in"></a>

Complete los pasos de [Inicie Amazon SageMaker Studio Classic](studio-launch.md) para iniciar Studio Classic.

## Siguientes pasos
<a name="notebooks-get-started-next-steps"></a>

Ahora que está en Studio Classic, puede probar cualquiera de las siguientes opciones:
+ Para crear un bloc de notas de Studio Classic o explorar los cuadernos end-to-end tutoriales de Studio Classic, consulte [Visita clásica a Amazon SageMaker Studio](gs-studio-end-to-end.md) la siguiente sección.
+ Para familiarizarse con la interfaz de Studio Classic, consulte [Descripción general de la interfaz de usuario clásica de Amazon SageMaker Studio](studio-ui.md) o pruebe el **cuaderno de introducción** seleccionando **Abrir el cuaderno de introducción** en la sección de **Acciones rápidas** de la página de inicio de Studio Classic.

# Visita clásica a Amazon SageMaker Studio
<a name="gs-studio-end-to-end"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

[Para ver un recorrido por las principales características de Amazon SageMaker Studio Classic, consulte el cuaderno de muestra [xgboost\$1customer\$1churn\$1studio.ipynb](https://sagemaker-examples.readthedocs.io/en/latest/aws_sagemaker_studio/getting_started/xgboost_customer_churn_studio.html) del repositorio aws/. amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) GitHub El código del cuaderno entrena varios modelos y configura el depurador y el monitor de modelos. SageMaker SageMaker En esta explicación se muestra cómo ver las pruebas, comparar los modelos resultantes, mostrar los resultados del depurador e implementar el mejor modelo mediante la interfaz de usuario de Studio Classic. No necesita entender el código para seguir esta explicación.

**Requisitos previos**

Para ejecutar el cuaderno para este recorrido, necesita:
+ Una cuenta de IAM para iniciar sesión en Studio. Para obtener información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).
+ Estar familiarizado con la interfaz de usuario de Studio y los cuadernos de Jupyter. Para obtener información, consulte [Descripción general de la interfaz de usuario clásica de Amazon SageMaker Studio](studio-ui.md).
+ Una copia del amazon-sagemaker-examples repositorio [aws/ de](https://github.com/aws/amazon-sagemaker-examples) su entorno de Studio.

**Para clonar el repositorio**

1. Lance Studio Classic siguiendo los pasos de [Inicie Amazon SageMaker Studio Classic](studio-launch.md). Para los usuarios de IAM Identity Center, inicie sesión con la URL incluida en el correo electrónico de invitación.

1. En el menú superior, seleccione **Archivo** y, a continuación, **Nuevo** y **Terminal**.

1. En la línea de comandos, ejecute el siguiente comando para clonar el repositorio [amazon-sagemaker-examples GitHub aws/](https://github.com/aws/amazon-sagemaker-examples).

   ```
   $ git clone https://github.com/aws/amazon-sagemaker-examples.git
   ```

**Para navegar hasta el cuaderno de ejemplo**

1. En el **explorador de archivos del** menú de la izquierda, seleccione. **amazon-sagemaker-examples**

1. Navegue hasta el cuaderno de ejemplo con la siguiente ruta.

   `~/amazon-sagemaker-examples/aws_sagemaker_studio/getting_started/xgboost_customer_churn_studio.ipynb`

1. Siga el cuaderno para obtener información sobre las principales características de Studio Classic.

**nota**  
Si se produce un error al ejecutar el cuaderno de muestra y ha pasado algún tiempo desde que clonó el repositorio, revise el cuaderno del repositorio remoto para ver si hay actualizaciones.

# Crear o abrir un bloc de notas Amazon SageMaker Studio Classic
<a name="notebooks-create-open"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Cuando utilice [Crear un cuaderno desde el menú Archivo](#notebooks-create-file-menu) Amazon SageMaker Studio Classic o [Apertura de un cuaderno en Studio Classic](#notebooks-open) por primera vez, se le pedirá que configure su entorno eligiendo una SageMaker imagen, un núcleo, un tipo de instancia y, opcionalmente, un script de configuración del ciclo de vida que se ejecute al iniciar la imagen. SageMaker La IA lanza el bloc de notas en una instancia del tipo elegido. De forma predeterminada, el tipo de instancia está configurado como `ml.t3.medium` (disponible como parte de la [capa gratuita de AWS](https://aws.amazon.com/free)). Para las imágenes basadas en GPU, el tipo de instancia predeterminado es `ml.g4dn.xlarge`.

Si crea o abre cuadernos adicionales que utilicen el mismo tipo de instancia, independientemente de que los cuadernos utilicen o no el mismo kernel, dichos cuadernos se ejecutan en la misma instancia de ese tipo de instancia.

Tras lanzar un bloc de notas, puede cambiar su tipo de instancia, SageMaker imagen y núcleo desde el bloc de notas. Para obtener más información, consulte [Cambiar el tipo de instancia de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md) y [Cambiar la imagen o el núcleo de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).

**nota**  
Solo puede tener una instancia de cada tipo de instancia. Cada instancia puede tener varias SageMaker imágenes ejecutándose en ella. Cada SageMaker imagen puede ejecutar varios núcleos o instancias de terminal. 

La facturación se produce por instancia y comienza cuando se lanza la primera instancia de un tipo de instancia determinado. Si desea crear o abrir un cuaderno sin el riesgo de que se apliquen cargos, ábralo desde el menú **Archivo** y elija **Sin kernel** en el cuadro de diálogo **Seleccionar kernel**. Puede leer y editar un cuaderno sin ejecutar un kernel, pero no puede ejecutar celdas.

La facturación finaliza cuando se cierra la SageMaker imagen de la instancia. Para obtener más información, consulte [Medición de uso para los portátiles Amazon SageMaker Studio Classic](notebooks-usage-metering.md).

Para obtener información sobre cómo apagar el cuaderno, consulte [Cierre de recursos](notebooks-run-and-manage-shut-down.md#notebooks-run-and-manage-shut-down-sessions).

**Topics**
+ [Apertura de un cuaderno en Studio Classic](#notebooks-open)
+ [Crear un cuaderno desde el menú Archivo](#notebooks-create-file-menu)
+ [Crear un cuaderno desde el lanzador](#notebooks-create-launcher)
+ [Lista de los tipos de instancias, imágenes y kernels disponibles](#notebooks-instance-image-kernels)

## Apertura de un cuaderno en Studio Classic
<a name="notebooks-open"></a>

Amazon SageMaker Studio Classic solo puede abrir las libretas incluidas en el explorador de archivos de Studio Classic. Para obtener instrucciones sobre cómo agregar un cuaderno al navegador, consulte [Cargar archivos a Amazon SageMaker Studio Classic](studio-tasks-files.md) o [Clonar un repositorio de Git en Amazon SageMaker Studio Classic](studio-tasks-git.md).

**Para abrir un cuaderno**

1. En la barra lateral izquierda, elija el icono del **Explorador de archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)) para mostrar el explorador de archivos.

1. Busque y haga doble clic en un archivo de cuaderno y haga doble clic en él para abrirlo en una nueva pestaña.

## Crear un cuaderno desde el menú Archivo
<a name="notebooks-create-file-menu"></a>

**Para crear un cuaderno desde el menú Archivo**

1. En el menú de la parte superior de Studio Classic, elija **Archivo**, seleccione **Nuevo**, y, a continuación, elija **Cuaderno**.

1. En el cuadro de diálogo **Cambiar entorno**, utilice los menús desplegables para seleccionar la **Imagen**, el **Kernel**, el **Tipo de instancia** y el **Script de arranque** y, a continuación, seleccione **Seleccionar**. El cuaderno se inicia y se abre en una nueva pestaña de Studio Classic.  
![\[Configuración del entorno de cuaderno de Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-notebook-environment-setup.png)

## Crear un cuaderno desde el lanzador
<a name="notebooks-create-launcher"></a>

**Para crear un cuaderno desde el lanzador**

1. Para abrir el Launcher, selecciona **Amazon SageMaker Studio Classic** en la parte superior izquierda de la interfaz de Studio Classic o usa el método abreviado `Ctrl + Shift + L` de teclado.

   Para obtener más información sobre todas las formas disponibles de abrir el lanzador, consulte [Usa el Amazon SageMaker Studio Classic Launcher](studio-launcher.md)

1. En el lanzador, en la sección **Cuadernos y recursos informáticos**, seleccione **Cambiar entorno**.  
![\[SageMaker Studio Classic establece un entorno de cuaderno.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-launcher-notebook-creation.png)

1. En el cuadro de diálogo **Cambiar entorno**, utilice los menús desplegables para seleccionar la **Imagen**, el **Kernel**, el **Tipo de instancia** y el **Script de arranque** y, a continuación, seleccione **Seleccionar**.

1. En el lanzador, seleccione **Crear cuaderno**. El cuaderno se inicia y se abre en una nueva pestaña de Studio Classic.

Para ver la sesión del kernel del cuaderno, en la barra lateral izquierda, elija el icono de **Terminales y kernels en ejecución** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png)). Puede detener la sesión del kernel del cuaderno desde esta vista.

## Lista de los tipos de instancias, imágenes y kernels disponibles
<a name="notebooks-instance-image-kernels"></a>

Para obtener una lista de todos los recursos disponibles, consulte:
+ [Tipos de instancias disponibles para su uso con las libretas clásicas de Amazon SageMaker Studio](notebooks-available-instance-types.md)
+ [SageMaker Imágenes de Amazon disponibles para su uso con las libretas Studio Classic](notebooks-available-images.md)

# Uso de la barra de herramientas de cuadernos de Studio Classic
<a name="notebooks-menu"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Los portátiles Amazon SageMaker Studio Classic amplían la JupyterLab interfaz. Para obtener una descripción general de la JupyterLab interfaz original, consulte [La JupyterLab interfaz](https://jupyterlab.readthedocs.io/en/latest/user/interface.html).

La siguiente imagen muestra la barra de herramientas y una celda vacía de un cuaderno de Studio Classic.

![\[SageMaker Menú del bloc de notas Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-notebook-menu.png)


Al hacer una pausa en un icono de barra de herramientas, aparece una información emergente que muestra la función de icono. Los comandos adicionales del cuaderno se encuentran en el menú principal de Studio Classic. La barra de menús incluye los siguientes iconos:


| Icono | Description (Descripción) | 
| --- | --- | 
|  ![\[Icono de Guardar y punto de comprobación\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-save-and-checkpoint.png)  |  **Guardar y punto de comprobación** Guarda el cuaderno y actualiza el archivo de punto de comprobación. Para obtener más información, consulte [Obtener la diferencia con el último punto de comprobación](notebooks-diff.md#notebooks-diff-checkpoint).  | 
|  ![\[El icono de Insertar celda.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-insert-cell.png)  |  **Insertar celda** Inserta una celda de código debajo de la celda actual. La celda actual se identifica con el marcador vertical azul en el margen izquierdo.  | 
|  ![\[Los iconos de Cortar, copiar y pegar celdas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-cut-copy-paste.png)  |  **Cortar, copiar y pegar celdas** Corta, copia y pega las celdas seleccionadas.  | 
|  ![\[Icono de Ejecutar celdas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-run.png)  |  **Ejecutar celdas** Ejecuta las celdas seleccionadas y, a continuación, convierte la celda que sigue a la última celda seleccionada en la nueva celda seleccionada.  | 
|  ![\[El icono de Interrumpir kernel.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-interrupt-kernel.png)  |  **Interrumpir kernel** Interrumpe el kernel que cancela la operación en ejecución actualmente. El kernel permanece activo.  | 
|  ![\[El icono de Reiniciar kernel.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-restart-kernel.png)  |  **Reiniciar el kernel** Reinicia el kernel. Las variables se restablecen. La información no guardada no se ve afectada.  | 
|  ![\[El icono de Reiniciar kernel y ejecutar todas las celdas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-restart-kernel-run-all-cells.png)  |  **Reiniciar el kernel y ejecutar todas las celdas** Reinicia el kernel y, a continuación, ejecuta todas las celdas del cuaderno.  | 
|  ![\[Icono de Tipo de celda\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-cell-type.png)  |  **Tipo de celda** Muestra o cambia el tipo de celda actual. Los tipos de celdas son: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/notebooks-menu.html)  | 
|  ![\[El icono de Inicializar terminal.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-launch-terminal.png)  |  **Lanzar terminar** Abre un terminal en la SageMaker imagen que aloja el bloc de notas. Para ver un ejemplo, consulta [Obtener metadatos de aplicaciones](notebooks-run-and-manage-metadata.md#notebooks-run-and-manage-metadata-app).  | 
|  ![\[Icono de Diferencia de punto de comprobación\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-checkpoint-diff.png)  |  **Diferencia de punto de comprobación** Abre una nueva pestaña que muestra la diferencia entre el cuaderno y el archivo de punto de comprobación. Para obtener más información, consulte [Obtener la diferencia con el último punto de comprobación](notebooks-diff.md#notebooks-diff-checkpoint).  | 
|  ![\[El icono de Diferencia de Git.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-git-diff.png)  |  **Diferencia de Git** Solo está habilitado si el cuaderno se abre desde un repositorio de Git. Abre una nueva pestaña que muestra la diferencia entre el cuaderno y la última confirmación de Git. Para obtener más información, consulte [Obtener la diferencia con la última confirmación](notebooks-diff.md#notebooks-diff-git).  | 
|  **2 vCPU \$1 4 GiB**  |  **Tipo de instancia** Muestra o cambia el tipo de instancia en el que se ejecuta el cuaderno. El formato es el siguiente: `number of vCPUs + amount of memory + number of GPUs` `Unknown` indica que el cuaderno se abrió sin especificar un kernel. El portátil se ejecuta en la instancia de SageMaker Studio y no acumula cargos por el tiempo de ejecución. No puede asignar el cuaderno a un tipo de instancia. Debe especificar un kernel y, a continuación, Studio asigna el cuaderno a un tipo predeterminado. Para obtener más información, consulte [Crear o abrir un bloc de notas Amazon SageMaker Studio Classic](notebooks-create-open.md) y [Cambiar el tipo de instancia de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md).  | 
|  ![\[El icono de Clúster.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-cluster.png)  |  **Clúster** Conecte su portátil a un clúster de Amazon EMR y escale sus trabajos de ETL o realice un entrenamiento de modelos a gran escala con Apache Spark, Hive o Presto. Para obtener más información, consulte [Preparación de datos con Amazon EMR](studio-notebooks-emr-cluster.md).  | 
|  **Python 3 (Data Science)**  |  **Núcleo e imagen SageMaker ** Muestra o cambia el kernel que procesa las celdas del cuaderno. El formato es el siguiente: `Kernel (SageMaker Image)` `No Kernel` indica que el cuaderno se abrió sin especificar un kernel. Podrá editar el cuaderno, pero no podrá ejecutar ninguna celda. Para obtener más información, consulte [Cambiar la imagen o el núcleo de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).  | 
|  ![\[El icono de Estado ocupado del kernel.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-kernel-status.png)  |  **Estado del kernel ocupado** Muestra el estado ocupado del kernel. Cuando el borde del círculo y su interior son del mismo color, significa que el kernel está ocupado. El kernel está ocupado cuando se está iniciando y cuando está procesando celdas. Los estados adicionales del núcleo se muestran en la barra de estado situada en la esquina inferior izquierda de SageMaker Studio.  | 
|  ![\[El icono de Compartir cuaderno.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-share.png)  |  **Compartir cuaderno** Comparte el cuaderno. Para obtener más información, consulte [Compartir y usar un bloc de notas Amazon SageMaker Studio Classic](notebooks-sharing.md).  | 

Para seleccionar varias celdas, haga clic en el margen izquierdo fuera de una celda. Mantenga pulsada la tecla `Shift` y use la tecla `K` o `Up` para seleccionar las celdas anteriores, o use las teclas `J` o `Down` para seleccionar las siguientes celdas.

# Instalación de bibliotecas y núcleos externos en Amazon SageMaker Studio Classic
<a name="studio-notebooks-add-external"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Los blocs de notas Amazon SageMaker Studio Classic vienen con varias imágenes ya instaladas. Estas imágenes contienen núcleos y paquetes de Python, incluidos scikit-learn, Pandas,,, y NumPy. TensorFlow PyTorch MXNet También puede instalar sus propias imágenes que contienen la opción de los paquetes y kernels. Para obtener más información sobre cómo instalar su propia imagen, consulte [Imágenes personalizadas en Amazon SageMaker Studio Classic](studio-byoi.md).

Los distintos núcleos de Jupyter de las libretas Amazon SageMaker Studio Classic son entornos conda independientes. Para obtener información acerca de los entornos Conda, consulte [Managing environments](https://conda.io/docs/user-guide/tasks/manage-environments.html).

## Herramientas de instalación de paquetes
<a name="studio-notebooks-external-tools"></a>

**importante**  
Actualmente, todos los paquetes de las SageMaker libretas de Amazon cuentan con licencia para su uso con Amazon SageMaker AI y no requieren licencias comerciales adicionales. Sin embargo, esto podría estar sujeto a cambios en el futuro, por lo que recomendamos revisar los términos de licencia con regularidad para comprobar las actualizaciones.

El método que se utiliza para instalar los paquetes de Python desde el terminal varía según la imagen. Studio Classic admite las siguientes herramientas de instalación de paquetes:
+ **Cuadernos**: se admiten los siguientes comandos. Si una de las siguientes opciones no funciona en la imagen, pruebe con la otra.
  + `%conda install`
  + `%pip install`
+ **El terminal de Jupyter**: puede instalar paquetes directamente con pip y conda. También se puede utilizar `apt-get install` para instalar paquetes del sistema desde la terminal.

**nota**  
No recomendamos usar `pip install -u` o`pip install --user`, ya que esos comandos instalan paquetes en el volumen Amazon EFS del usuario y pueden bloquear el reinicio de las JupyterServer aplicaciones. En lugar de ello, utilice una configuración del ciclo de vida para volver a instalar los paquetes necesarios al reiniciar la aplicación, como se muestra en [Instalación de paquetes mediante las configuraciones del ciclo de vida](#nbi-add-external-lcc).

Recomendamos usar `%pip` y `%conda` para instalar los paquetes desde un cuaderno, ya que tienen en cuenta correctamente el entorno activo o el intérprete que se está utilizando. Para obtener más información, consulte [Añadir las funciones mágicas %pip y %conda](https://github.com/ipython/ipython/pull/11524). También puede usar la sintaxis de comandos del sistema (las líneas comienzan por \$1) para instalar paquetes. Por ejemplo, `!pip install` y `!conda install`. 

### Conda
<a name="studio-notebooks-add-external-tools-conda"></a>

Conda es un sistema de administración de paquetes y un sistema de administración de entornos de código abierto que puede instalar paquetes y sus dependencias. SageMaker AI admite el uso de conda con el canal conda-forge. Para obtener más información, consulte [Conda channels](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html). El canal conda-forge es un canal comunitario en el que los colaboradores pueden subir paquetes.

**nota**  
La instalación de paquetes desde conda-forge puede tardar hasta 10 minutos. El tiempo está relacionado con la forma en que conda resuelve el gráfico de dependencias.

Todos los entornos proporcionados por la SageMaker IA son funcionales. Es posible que los paquetes instalados por el usuario no funcionen correctamente.

Conda tiene dos métodos para activar entornos: `conda activate`, y `source activate`. Para obtener más información, consulte [Administración del entorno](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html).

**Operaciones conda admitidas**
+ `conda install` de un paquete en un solo entorno
+ `conda install` de un paquete en todos los entornos
+ Instalación de un paquete desde el repositorio principal de conda
+ Instalación de un paquete desde conda-forge
+ Cambio de la ubicación de instalación de conda para usar Amazon EBS
+ Compatible con `conda activate` y `source activate`

### Pip
<a name="studio-notebooks-add-external-tools-pip"></a>

Pip es la herramienta para instalar y administrar paquetes de Python. De forma predeterminada, Pip busca paquetes en el Índice de paquetes de Python (PyPI). A diferencia de conda, pip no tiene soporte de entorno integrado. Por lo tanto, pip no es tan exhaustivo como conda en relación con los paquetes con dependencias nativas o de bibliotecas del sistema. Pip se puede usar para instalar paquetes en entornos conda. Puede usar repositorios de paquetes alternativos con pip en lugar de PyPI.

**Operaciones pip admitidas**
+ Uso de pip para instalar un paquete sin un entorno conda activo
+ Uso de pip para instalar un paquete en un entorno conda 
+ Uso de pip para instalar un paquete en todos los entornos conda 
+ Cambio de la ubicación de instalación de pip para usar Amazon EBS
+ Uso de un repositorio alternativo para instalar paquetes con pip

### No se admite
<a name="studio-notebooks-add-external-tools-misc"></a>

SageMaker La IA tiene como objetivo respaldar tantas operaciones de instalación de paquetes como sea posible. Sin embargo, si los paquetes los ha instalado SageMaker AI y se utilizan las siguientes operaciones en ellos, es posible que el entorno se vuelva inestable:
+ Desinstalación
+ Degradación
+ Mejora

Debido a posibles problemas con las condiciones o configuraciones de la red, o con la disponibilidad de conda o los paquetes PyPi, es posible que no se instalen en un período de tiempo fijo o determinista.

**nota**  
Si se intenta instalar un paquete en un entorno con dependencias incompatibles, se puede producir un error. Si se producen problemas, puede ponerse en contacto con el responsable de la biblioteca para actualizar las dependencias del paquete. Al modificar el entorno, por ejemplo, al eliminar o actualizar los paquetes existentes, puede provocar inestabilidad en ese entorno.

## Instalación de paquetes mediante las configuraciones del ciclo de vida
<a name="nbi-add-external-lcc"></a>

Instala imágenes y núcleos personalizados en el volumen Amazon EBS de la instancia de Studio Classic para que persistan cuando detengas y reinicies el bloc de notas, y para que la IA no actualice las bibliotecas externas que instales. SageMaker Para ello, utilice una configuración del ciclo de vida que incluya un script que se ejecute al crear el cuaderno (`on-create)`) y un script que se ejecute cada vez que se reinicie el cuaderno (`on-start`). Para obtener más información sobre el uso de las configuraciones de ciclo de vida con Studio Classic, consulte [Utilice las configuraciones del ciclo de vida para personalizar Amazon SageMaker Studio Classic](studio-lcc.md). Para ver ejemplos de scripts de configuración del ciclo de vida, consulte los ejemplos de [configuración del ciclo de vida clásico de SageMaker AI Studio](https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples).

# Compartir y usar un bloc de notas Amazon SageMaker Studio Classic
<a name="notebooks-sharing"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Puede compartir sus blocs de notas Amazon SageMaker Studio Classic con sus compañeros. El cuaderno compartido es una copia. Después de compartir el cuaderno, los cambios que realice en el original no se reflejan en el compartido y los cambios realizados por su compañero en sus copias compartidas del cuaderno no aparecerán en el cuaderno original. Si desea compartir la versión más reciente, debe crear una nueva instantánea y, a continuación, compartirla.

**Topics**
+ [Compartir un cuaderno](#notebooks-sharing-share)
+ [Usar un cuaderno compartido](#notebooks-sharing-using)
+ [Espacios compartidos y colaboración en tiempo real](#notebooks-sharing-rtc)

## Compartir un cuaderno
<a name="notebooks-sharing-share"></a>

La siguiente captura de pantalla muestra el menú de un cuaderno de Studio Classic.

![\[La ubicación del icono de Compartir en un cuaderno de Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-notebook-menu-share.png)


**Para compartir un cuaderno**

1. En la esquina superior derecha del cuaderno, elija **Compartir**.

1. (Opcional) En **Crear instantánea compartible**, elija cualquiera de los siguientes elementos:
   + **Incluir información del repositorio de Git**: incluye un enlace al repositorio de Git que contiene el cuaderno. Esto le permite a usted y a su destinatario colaborar y contribuir en el mismo repositorio de Git.
   + **Incluir salida**: incluye toda la salida del cuaderno que se ha guardado.
**nota**  
Si es usuario de IAM Identity Center y no ve estas opciones, es probable que el administrador de IAM Identity Center deshabilitara la característica. Póngase en contacto con el administrador.

1. Seleccione **Crear**.

1. Una vez creada la instantánea, elija **Copy link (Copiar enlace)** y, a continuación, elija **Close (Cerrar)**.

1. Comparta el enlace con su colega.

Después de seleccionar las opciones de uso compartido, se le proporcionará una URL. Puedes compartir este enlace con los usuarios que tengan acceso a Amazon SageMaker Studio Classic. Cuando el usuario abre la URL, se le pide que inicie sesión al usar IAM Identity Center o la autenticación de IAM. Este cuaderno compartido se convierte en una copia, por lo que los cambios realizados por el destinatario no se reproducirán en el cuaderno original.

## Usar un cuaderno compartido
<a name="notebooks-sharing-using"></a>

Utilice un cuaderno compartido de la misma manera que lo haría con cualquier cuaderno que haya creado usted mismo. Primero debe iniciar sesión en su cuenta y, a continuación, abrir el enlace compartido. Si no tiene una sesión activa, recibirá un mensaje de error.

Al seleccionar un enlace a un cuaderno compartido por primera vez, se abrirá una versión de solo lectura del cuaderno. Para editar el cuaderno compartido, elija **Crear una copia**. Se copiará el cuaderno compartido en su almacenamiento personal.

La libreta copiada se lanza en una instancia del tipo de instancia y la SageMaker imagen que utilizaba la libreta cuando el remitente la compartió. Si actualmente no está ejecutando una instancia del tipo de instancia, se inicia una nueva instancia. La personalización de la SageMaker imagen no se comparte. También puede inspeccionar la instantánea del cuaderno seleccionando **Detalles de la instantánea**.

A continuación se proporcionan consideraciones importantes sobre el uso compartido y la autenticación:
+ Si tiene una sesión activa, verá una vista de solo lectura del cuaderno hasta que elija **Crear una copia**.
+ Si no tiene una sesión activa, debe iniciar sesión.
+ Si utiliza IAM para iniciar sesión, después de iniciar sesión, seleccione su perfil de usuario y, a continuación, elija **Abrir Studio Classic**. A continuación tiene que elegir el enlace que le enviaron.
+ Si usa IAM Identity Center, después de iniciar sesión, el cuaderno compartido se abrirá automáticamente en Studio.

## Espacios compartidos y colaboración en tiempo real
<a name="notebooks-sharing-rtc"></a>

Un espacio compartido consta de una JupyterServer aplicación compartida y un directorio compartido. Una ventaja clave de un espacio compartido es que facilita la colaboración entre los miembros del espacio compartido en tiempo real. Los usuarios que colaboran en un espacio de trabajo obtienen acceso a una aplicación de Studio Classic compartida en la que pueden acceder a sus cuadernos, leerlos y editarlos en tiempo real. La colaboración en tiempo real solo se admite para JupyterServer aplicaciones dentro de un espacio compartido. Los usuarios con acceso a un espacio compartido pueden abrir, ver, editar y ejecutar de forma simultánea los cuadernos de Jupyter en la aplicación de Studio Classic compartida de ese espacio. Para obtener más información sobre los espacios compartidos y la colaboración en tiempo real, consulte [Colaboración con espacios compartidos](domain-space.md).

# Obtenga metadatos de aplicaciones y cuadernos clásicos de Amazon SageMaker Studio
<a name="notebooks-run-and-manage-metadata"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Puede acceder a los metadatos del bloc de notas y a los metadatos de la aplicación mediante la interfaz de usuario clásica de Amazon SageMaker Studio.

**Topics**
+ [Obtención de metadatos de cuadernos de Studio Classic](#notebooks-run-and-manage-metadata-notebook)
+ [Obtener metadatos de aplicaciones](#notebooks-run-and-manage-metadata-app)

## Obtención de metadatos de cuadernos de Studio Classic
<a name="notebooks-run-and-manage-metadata-notebook"></a>

Los cuadernos de Jupyter contienen metadatos opcionales a los que puede acceder a través de la interfaz de usuario clásica de Amazon SageMaker Studio.

**Para ver los metadatos del cuaderno:**

1. En la barra lateral derecha, seleccione el icono del **Inspector de propiedades** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/gears.png)). 

1. Abra la sección de **herramientas avanzadas**.

Los metadatos deben tener un aspecto similar a lo siguiente.

```
{
    "instance_type": "ml.t3.medium",
    "kernelspec": {
        "display_name": "Python 3 (Data Science)",
        "language": "python",
        "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:<acct-id>:image/datascience-1.0"
    },
    "language_info": {
        "codemirror_mode": {
            "name": "ipython",
            "version": 3
        },
        "file_extension": ".py",
        "mimetype": "text/x-python",
        "name": "python",
        "nbconvert_exporter": "python",
        "pygments_lexer": "ipython3",
        "version": "3.7.10"
    }
}
```

## Obtener metadatos de aplicaciones
<a name="notebooks-run-and-manage-metadata-app"></a>

Al crear un bloc de notas en Amazon SageMaker Studio Classic, los metadatos de la aplicación se escriben en un archivo denominado `resource-metadata.json` en la carpeta`/opt/ml/metadata/`. Para obtener los metadatos de la aplicación, abra un terminal de imagen desde el cuaderno. Los metadatos proporcionan la siguiente información, que incluye la SageMaker imagen y el tipo de instancia en los que se ejecuta el bloc de notas:
+ **AppType** – `KernelGateway` 
+ **DomainId**— Igual que el Studio ClassicID
+ **UserProfileName**— El nombre de perfil del usuario actual
+ **ResourceArn**— El nombre del recurso de Amazon (ARN) de la aplicación, que incluye el tipo de instancia
+ **ResourceName**— El nombre de la imagen SageMaker 

Studio Classic podría incluir metadatos adicionales para uso interno y están sujetos a cambios.

**Para obtener los metadatos de la aplicación**

1. En el centro del menú del cuaderno, elija el icono de **Iniciar terminal** (![\[Dollar sign icon representing currency or financial transactions.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-launch-terminal.png)). Esto abre un terminal en la SageMaker imagen en la que se ejecuta el portátil.

1. Ejecute los siguientes comandos para mostrar el contenido del archivo `resource-metadata.json`.

   ```
   $ cd /opt/ml/metadata/
   cat resource-metadata.json
   ```

   El archivo debe ser similar al siguiente.

   ```
   {
       "AppType": "KernelGateway",
       "DomainId": "d-xxxxxxxxxxxx",
       "UserProfileName": "profile-name",
       "ResourceArn": "arn:aws:sagemaker:us-east-2:account-id:app/d-xxxxxxxxxxxx/profile-name/KernelGateway/datascience--1-0-ml-t3-medium",
       "ResourceName": "datascience--1-0-ml",
       "AppImageVersion":""
   }
   ```

# Descubre las diferencias entre los portátiles en Amazon SageMaker Studio Classic
<a name="notebooks-diff"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Puedes mostrar la diferencia entre el bloc de notas actual y el último punto de control o la última confirmación de Git mediante la interfaz de usuario de Amazon SageMaker AI.

La siguiente captura de pantalla muestra el menú de un cuaderno de Studio Classic.

![\[La ubicación del menú correspondiente en un cuaderno de Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-notebook-menu-diffs.png)


**Topics**
+ [Obtener la diferencia con el último punto de comprobación](#notebooks-diff-checkpoint)
+ [Obtener la diferencia con la última confirmación](#notebooks-diff-git)

## Obtener la diferencia con el último punto de comprobación
<a name="notebooks-diff-checkpoint"></a>

Al crear un cuaderno, se crea un archivo de punto de comprobación oculto que coincide con el cuaderno creado. Puede ver los cambios entre el cuaderno y el archivo de punto de comprobación o revertir el cuaderno para que coincida con el archivo de punto de comprobación.

De forma predeterminada, los cuadernos se guardan automáticamente cada 120 segundos y también cuando se cierra el cuaderno. Sin embargo, el archivo de punto de comprobación no se actualiza para que coincida con el cuaderno. Para guardar el cuaderno y actualizar el archivo de punto de comprobación para que coincida, debe elegir el icono **Guardar cuaderno y crear punto de comprobación** (![\[Padlock icon representing security or access control in cloud services.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-save-and-checkpoint.png)) a la izquierda del menú del cuaderno o usar el método abreviado del teclado `Ctrl + S`.

Para ver los cambios entre el cuaderno y el archivo de punto de comprobación, elija el icono de **Diferencias con punto de comprobación** (![\[Clock icon representing time or duration in a user interface.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-checkpoint-diff.png)) en el centro del menú del cuaderno.

Para revertir el cuaderno al archivo de punto de comprobación, en el menú principal de Studio Classic, elija **Archivo** y, a continuación, **Revertir cuaderno al punto de comprobación**.

## Obtener la diferencia con la última confirmación
<a name="notebooks-diff-git"></a>

Si se abre un cuaderno desde un repositorio de Git, puede ver la diferencia entre el cuaderno y la última confirmación de Git.

Para ver los cambios en el cuaderno desde la última confirmación de Git, elija el icono de **Diferencia con Git** (![\[Dark button with white text displaying "git" in lowercase letters.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/notebook-git-diff.png)) en el centro del menú del cuaderno.

# Administra los recursos de las libretas clásicas de Amazon SageMaker Studio
<a name="notebooks-run-and-manage"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Puedes cambiar el tipo de instancia, la SageMaker imagen y el núcleo desde una libreta Amazon SageMaker Studio Classic. Para crear un kernel personalizado para usarlo con sus cuadernos, consulte [Imágenes personalizadas en Amazon SageMaker Studio Classic](studio-byoi.md).

**Topics**
+ [Cambiar el tipo de instancia de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md)
+ [Cambiar la imagen o el núcleo de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md)
+ [Cierre los recursos de Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md)

# Cambiar el tipo de instancia de un bloc de notas Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-switch-instance-type"></a>

Cuando abre un nuevo cuaderno de Studio Classic por primera vez, se le asigna un tipo de instancia predeterminado de Amazon Elastic Compute Cloud (Amazon EC2) para ejecutar el cuaderno. Si abre cuadernos adicionales en el mismo tipo de instancia, dichos blocs se ejecutan en la misma instancia que el primer cuaderno, incluso si los cuadernos utilizan kernels diferentes. 

Con los cuadernos de Studio Classic, puede cambiar el tipo de instancia en el que se ejecuta el cuaderno desde dentro del dicho cuaderno. 

La siguiente información solo se aplica a los cuadernos de Studio Classic. Para obtener información sobre cómo cambiar el tipo de instancia de una instancia de Amazon SageMaker Notebook, consulte[Actualización de una instancia de cuaderno.](nbi-update.md).

**importante**  
Si cambia el tipo de instancia, se pierde la información que no se haya guardado y la configuración actual del cuaderno y es necesario volver a instalar los paquetes instalados.  
El tipo de instancia anterior sigue ejecutándose aunque no haya ninguna sesión del kernel o aplicaciones activas. Debe detener explícitamente la instancia para dejar de acumular cargos. Para detener la instancia, consulte [Cierre de recursos](notebooks-run-and-manage-shut-down.md#notebooks-run-and-manage-shut-down-sessions).

La siguiente captura de pantalla muestra el menú de un cuaderno de Studio Classic. El procesador y la memoria del tipo de instancia del cuaderno se muestran como **2 vCPU \$1 4 GiB**.

![\[La ubicación del procesador y la memoria del tipo de instancia del cuaderno Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-notebook-menu-instance.png)


**Para cambiar el tipo de instancia**

1. Seleccione el procesador y la memoria del tipo de instancia del cuaderno. Se abrirá una ventana emergente.

1. En la ventana emergente **Configurar el entorno del cuaderno**, seleccione el menú desplegable **Tipo de instancia**.

1. En el menú desplegable **Tipo de instancia**, elija uno de los tipos de instancia que aparecen en la lista.

1. Después de elegir un kernel, elija **Seleccionar**.

1. Espere a que se habilite la nueva instancia y, a continuación, se mostrará la nueva información del tipo de instancia.

Para obtener una lista de los tipos de instancia disponibles, consulte [Tipos de instancias disponibles para su uso con las libretas clásicas de Amazon SageMaker Studio](notebooks-available-instance-types.md). 

# Cambiar la imagen o el núcleo de un bloc de notas Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-change-image"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Con las libretas Amazon SageMaker Studio Classic, puedes cambiar la imagen o el núcleo de la libreta desde dentro de la libreta.

La siguiente captura de pantalla muestra el menú de un cuaderno de Studio Classic. El núcleo y la imagen de SageMaker IA actuales se muestran como **Python 3 (Ciencia de datos)**, donde `Python 3` indica el núcleo e `Data Science` indica la imagen de SageMaker IA que contiene el núcleo. El color del círculo a la derecha indica el estado inactivo u ocupado del kernel. Cuando el borde del círculo y su interior son del mismo color, significa que el kernel está ocupado.

![\[La ubicación del kernel y la imagen actuales en la barra de menús de un cuaderno de Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-notebook-menu-kernel.png)


**Para cambiar la imagen o el kernel de un cuaderno**

1. Elija el image/kernel nombre en el menú del bloc de notas.

1. En la ventana emergente **Configurar el entorno del cuaderno**, seleccione el menú desplegable **Imagen** o **Kernel**.

1. En el menú desplegable, elija una de las imágenes o kernels que se muestran.

1. Después de elegir una imagen o kernel, elija **Seleccionar**.

1. Espere a que el estado del kernel se muestre como inactivo, lo que indica que el kernel se ha iniciado.

Para obtener una lista de SageMaker las imágenes y los núcleos disponibles, consulte[SageMaker Imágenes de Amazon disponibles para su uso con las libretas Studio Classic](notebooks-available-images.md).

# Cierre los recursos de Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-shut-down"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Puede cerrar recursos individuales de Amazon SageMaker AI, incluidos cuadernos, terminales, núcleos, aplicaciones e instancias de Studio Classic. También puede cerrar todos los recursos de una de estas categorías al mismo tiempo. Amazon SageMaker Studio Classic no admite el cierre de recursos desde un bloc de notas.

**nota**  
Al cerrar una instancia de cuaderno de Studio Classic, no se eliminan los recursos adicionales que haya creado en Studio Classic. Por ejemplo, los recursos adicionales pueden incluir puntos de enlace de SageMaker IA, clústeres de Amazon EMR y depósitos de Amazon S3. Para detener la acumulación de cargos, debe eliminar estos recursos manualmente. Para obtener información sobre cómo buscar recursos que acumulen cargos, consulte [Analyzing your costs with AWS Cost Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html).

En los siguientes temas se muestra cómo eliminar estos SageMaker recursos de IA.

**Topics**
+ [Cierre de un cuaderno abierto](#notebooks-run-and-manage-shut-down-notebook)
+ [Cierre de recursos](#notebooks-run-and-manage-shut-down-sessions)

## Cierre de un cuaderno abierto
<a name="notebooks-run-and-manage-shut-down-notebook"></a>

Cuando se cierra un cuaderno de Studio Classic, el cuaderno no se elimina. El kernel en el que se ejecuta el cuaderno se cierra y se pierde la información no guardada en el cuaderno. Puede cerrar un cuaderno abierto desde el menú **Archivo** de Studio Classic o desde el panel Terminales y kernels en ejecución. El siguiente procedimiento muestra cómo cerrar un cuaderno abierto desde el menú **Archivo** de Studio Classic.

**Para cerrar un cuaderno abierto desde el menú Archivo**

1. Inicialice Studio Classic siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio Classic](studio-launch.md).

1. (Opcional) Guarde el contenido del cuaderno seleccionando **Archivo** y, a continuación, **Guardar cuaderno**.

1. Seleccione **Archivo**.

1. Elija **Cerrar y desactivar cuaderno**. Se abrirá una ventana emergente.

1. En la ventana emergente, elija **Aceptar**.

## Cierre de recursos
<a name="notebooks-run-and-manage-shut-down-sessions"></a>

Para acceder al panel **Terminales y núcleos en ejecución** de Amazon SageMaker Studio Classic, seleccione el icono **Terminales y núcleos en ejecución** ()![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png). El panel **Terminales y kernels en ejecución** consta de cuatro secciones. Cada sección muestra todos los recursos de ese tipo. Puede cerrar cada recurso individualmente o cerrar todos los recursos de una sección al mismo tiempo.

Cuando decide cerrar todos los recursos de una sección, se produce lo siguiente:
+ ** INSTANCES/RUNNING APLICACIONES EN EJECUCIÓN**: todas las instancias, aplicaciones, blocs de notas, sesiones del núcleo, consolas/shells y terminales de imagen están apagados. Los terminales del sistema no se cierran.
+ **SESIONES DEL NÚCLEO**: todos los núcleos y cuadernos están apagados. consoles/shells 
+ **SESIONES DE TERMINAL**: todos los terminales de imagen y los terminales del sistema están apagados.

**Para cerrar recursos**

1. Inicialice Studio Classic siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio Classic](studio-launch.md).

1. Elija el icono de **Terminales y kernels en ejecución**.

1. Haga una de estas dos operaciones:
   + Para cerrar un recurso específico, elija el icono de **Cerrar** en la misma fila que el recurso.

     En el caso de las instancias en ejecución, un cuadro de diálogo de confirmación muestra todos los recursos que la SageMaker IA va a cerrar. Un cuadro de diálogo de confirmación muestra todas las aplicaciones en ejecución. Para continuar, elija **Cerrar todo**.
**nota**  
No se muestra un cuadro de diálogo de confirmación para las sesiones del kernel o las sesiones de terminal.
   + Para cerrar todos los recursos de una sección, elija la **X** a la derecha de la etiqueta de sección. Se un cuadro de diálogo de confirmación. Seleccione **Cerrar todo** para continuar.
**nota**  
Al cerrar estos recursos de Studio Classic, los recursos adicionales creados desde Studio Classic, como los puntos de enlace de SageMaker IA, los clústeres de Amazon EMR y los buckets de Amazon S3, no se eliminan. Para detener la acumulación de cargos, debe eliminar estos recursos manualmente. [Para obtener información sobre cómo encontrar recursos que estén acumulando cargos, consulte Analizar sus costos con. AWS Cost Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html)

# Medición de uso para los portátiles Amazon SageMaker Studio Classic
<a name="notebooks-usage-metering"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

El uso de Amazon SageMaker Studio Classic no conlleva ningún coste adicional. Los costes de funcionamiento de los portátiles, consolas y terminales interactivos de Amazon SageMaker Studio Classic se basan en el uso de las instancias de Amazon Elastic Compute Cloud (Amazon EC2).

Al ejecutar los siguientes recursos, debe elegir una SageMaker imagen y un núcleo:

**Desde el lanzador de Studio Classic**
+ Cuaderno
+ Intérprete de comandos interactivo
+ Terminal de imagen

**Desde el menú **Archivo****
+ Cuaderno
+ Consola

Cuando se inicia, el recurso se ejecuta en una instancia Amazon EC2 del tipo de instancia seleccionado. Si anteriormente se había iniciado una instancia de ese tipo y está disponible, el recurso se ejecuta en esa instancia.

Para las imágenes basadas en CPU, el tipo de instancia sugerido predeterminado es `ml.t3.medium`. Para las imágenes basadas en GPU, el tipo de instancia sugerido predeterminado es `ml.g4dn.xlarge`.

Los costes incurridos se basan en el tipo de instancias. Se le facturará por separado por cada instancia.

La medición comienza cuando se crea una instancia. La medición finaliza cuando se cierran todas las aplicaciones de la instancia o cuando se cierra la instancia. Para obtener más información sobre cómo cerrar una instancia, consulte [Cierre los recursos de Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md).

**importante**  
Debe cerrar la instancia para dejar de incurrir en cargos. Si cierra el cuaderno que se ejecuta en la instancia pero no cierra la instancia, seguirá incurriendo en cargos. Al cerrar las instancias de bloc de notas de Studio Classic, no se eliminan los recursos adicionales, como los puntos de enlace de SageMaker IA, los clústeres de Amazon EMR y los buckets de Amazon S3 creados a partir de Studio Classic. Elimine esos recursos para detener la acumulación de cargos.

Cuando abre varios cuadernos en el mismo tipo de instancia, dichos blocs se ejecutan en la misma instancia, incluso si utilizan diferentes kernels. Solo se facturará el tiempo durante el que se ejecute una instancia.

Puede cambiar el tipo de instancia desde dentro del cuaderno una vez abierto. Para obtener más información, consulte [Cambiar el tipo de instancia de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md).

Para obtener información sobre la facturación junto con ejemplos de precios, consulta [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

# Recursos disponibles para los portátiles Amazon SageMaker Studio Classic
<a name="notebooks-resources"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En las siguientes secciones se enumeran los recursos disponibles para las libretas Amazon SageMaker Studio Classic.

**Topics**
+ [Tipos de instancias disponibles para su uso con las libretas clásicas de Amazon SageMaker Studio](notebooks-available-instance-types.md)
+ [SageMaker Imágenes de Amazon disponibles para su uso con las libretas Studio Classic](notebooks-available-images.md)

# Tipos de instancias disponibles para su uso con las libretas clásicas de Amazon SageMaker Studio
<a name="notebooks-available-instance-types"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Los cuadernos Amazon SageMaker Studio Classic se ejecutan en instancias de Amazon Elastic Compute Cloud (Amazon EC2). Los siguientes tipos de instancias de Amazon EC2 están disponibles para su uso con los cuadernos de Studio Classic. Para obtener información detallada sobre qué tipos de instancias se ajustan a su caso de uso y sus capacidades de rendimiento, consulte [Tipos de instancia de Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/). Para obtener información acerca de los precios de estos tipos de instancias, consulte [Precios de Amazon EC2](https://aws.amazon.com/ec2/pricing/).

Para obtener información sobre los tipos de instancias de Amazon SageMaker Notebook disponibles, consulte [CreateNotebookInstance](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html#sagemaker-CreateNotebookInstance-request-InstanceType).

**nota**  
Para la mayoría de los casos de uso, debe utilizar un `ml.t3.medium`. Este es el tipo de instancia predeterminado para SageMaker las imágenes basadas en CPU y está disponible como parte de la capa [AWS gratuita](https://aws.amazon.com/free).

**Topics**
+ [Instancias de CPU](#notebooks-resources-no-gpu)
+ [Instancias con 1 o más GPUs](#notebooks-resources-gpu)

## Instancias de CPU
<a name="notebooks-resources-no-gpu"></a>

En la siguiente tabla se enumeran los tipos de instancias de CPU de Amazon EC2 disponibles para su uso con los cuadernos de Studio Classic. También incluye información sobre las especificaciones de cada tipo de instancia. Para las imágenes basadas en CPU, el tipo de instancia predeterminado es `ml.t3.medium`. 

Para obtener información detallada sobre qué tipos de instancias se ajustan a su caso de uso y sus capacidades de rendimiento, consulte [Tipos de instancia de Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/). Para obtener información acerca de los precios de estos tipos de instancias, consulte [Precios de Amazon EC2](https://aws.amazon.com/ec2/pricing/).

Instancias de CPU


| Instancia | Caso de uso | Inicio rápido | vCPU | Memoria (GiB) | Almacenamiento de la instancia (GB) | 
| --- | --- | --- | --- | --- | --- | 
| ml.t3.medium | Fin general | Sí | 2 | 4 | Solo Amazon EBS | 
| ml.t3.large | Fin general | No | 2 | 8 | Solo Amazon EBS | 
| ml.t3.xlarge | Fin general | No | 4 | 16 | Solo Amazon EBS | 
| ml.t3.2xlarge | Fin general | No | 8 | 32 | Solo Amazon EBS | 
| ml.m5.large | Fin general | Sí | 2 | 8 | Solo Amazon EBS | 
| ml.m5.xlarge | Fin general | No | 4 | 16 | Solo Amazon EBS | 
| ml.m5.2xlarge | Fin general | No | 8 | 32 | Solo Amazon EBS | 
| ml.m5.4xlarge | Fin general | No | 16 | 64 | Solo Amazon EBS | 
| ml.m5.8xlarge | Fin general | No | 32 | 128 | Solo Amazon EBS | 
| ml.m5.12xlarge | Fin general | No | 48 | 192 | Solo Amazon EBS | 
| ml.m5.16xlarge | Fin general | No | 64 | 256 | Solo Amazon EBS | 
| ml.m5.24xlarge | Fin general | No | 96 | 384 | Solo Amazon EBS | 
| ml.m5d.large | Fin general | No | 2 | 8 | 1 SSD de 75 NVMe  | 
| ml.m5d.xlarge | Fin general | No | 4 | 16 | 1 x 150 NVMe SSD | 
| ml.m5d.2xlarge | Fin general | No | 8 | 32 | 1 x 300 NVMe SSD | 
| ml.m5d.4xlarge | Fin general | No | 16 | 64 | 2 x 300 NVMe SSD | 
| ml.m5d.8xlarge | Fin general | No | 32 | 128 | 2 x 600 NVMe SSD | 
| ml.m5d.12xlarge | Fin general | No | 48 | 192 | 2 x 900 NVMe SSD | 
| ml.m5d.16xlarge | Fin general | No | 64 | 256 | 4 x 600 NVMe SSD | 
| ml.m5d.24xlarge | Fin general | No | 96 | 384 | 4 x 900 NVMe SSD | 
| ml.c5.large | Optimizada para computación | Sí | 2 | 4 | Solo Amazon EBS | 
| ml.c5.xlarge | Optimizada para computación | No | 4 | 8 | Solo Amazon EBS | 
| ml.c5.2xlarge | Optimizada para computación | No | 8 | 16 | Solo Amazon EBS | 
| ml.c5.4xlarge | Optimizada para computación | No | 16 | 32 | Solo Amazon EBS | 
| ml.c5.9xlarge | Optimizada para computación | No | 36 | 72 | Solo Amazon EBS | 
| ml.c5.12xlarge | Optimizada para computación | No | 48 | 96 | Solo Amazon EBS | 
| ml.c5.18xlarge | Optimizada para computación | No | 72 | 144 | Solo Amazon EBS | 
| ml.c5.24xlarge | Optimizada para computación | No | 96 | 192 | Solo Amazon EBS | 
| ml.r5.large | Optimizada para memoria | No | 2 | 16 | Solo Amazon EBS | 
| ml.r5.xlarge | Optimizada para memoria | No | 4 | 32 | Solo Amazon EBS | 
| ml.r5.2xlarge | Optimizada para memoria | No | 8 | 64 | Solo Amazon EBS | 
| ml.r5.4xlarge | Optimizada para memoria | No | 16 | 128 | Solo Amazon EBS | 
| ml.r5.8xlarge | Optimizada para memoria | No | 32 | 256 | Solo Amazon EBS | 
| ml.r5.12xlarge | Optimizada para memoria | No | 48 | 384 | Solo Amazon EBS | 
| ml.r5.16xlarge | Optimizada para memoria | No | 64 | 512 | Solo Amazon EBS | 
| ml.r5.24xlarge | Optimizada para memoria | No | 96 | 768 | Solo Amazon EBS | 

## Instancias con 1 o más GPUs
<a name="notebooks-resources-gpu"></a>

En la siguiente tabla se enumeran los tipos de instancias de Amazon EC2 con 1 o más GPUs adjuntos que están disponibles para su uso con las libretas Studio Classic. También incluye información sobre las especificaciones de cada tipo de instancia. El tipo de instancia predeterminado para las imágenes basadas en GPU es `ml.g4dn.xlarge`. 

Para obtener información detallada sobre qué tipos de instancias se ajustan a su caso de uso y sus capacidades de rendimiento, consulte [Tipos de instancia de Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/). Para obtener información acerca de los precios de estos tipos de instancias, consulte [Precios de Amazon EC2](https://aws.amazon.com/ec2/pricing/).

Instancias con 1 o más GPUs


| Instancia | Caso de uso | Inicio rápido | GPUs | vCPU | Memoria (GiB) | Memoria de GPU (GiB) | Almacenamiento de la instancia (GB) | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| ml.p3.2xlarge | Computación acelerada | No | 1 | 8 | 61 | 16 | Solo Amazon EBS | 
| ml.p3.8xlarge | Computación acelerada | No | 4 | 32 | 244 | 64 | Solo Amazon EBS | 
| ml.p3.16xlarge | Computación acelerada | No | 8 | 64 | 488 | 128 | Solo Amazon EBS | 
| ml.p3dn.24xlarge | Computación acelerada | No | 8 | 96 | 768 | 256 | 2 unidades de NVMe estado sólido de 900 unidades | 
| ml.p4d.24xlarge | Computación acelerada | No | 8 | 96 | 1152 | 320 GB HBM2 | 8 x 1000 NVMe SSD | 
| ml.p4de.24xlarge | Computación acelerada | No | 8 | 96 | 1152 | 640 GB HBM2e | 8 x 1000 NVMe SSD | 
| ml.g4dn.xlarge | Computación acelerada | Sí | 1 | 4 | 16 | 16 | 1 x 125 NVMe SSD | 
| ml.g4dn.2xlarge | Computación acelerada | No | 1 | 8 | 32 | 16 | 1 x 225 NVMe SSD | 
| ml.g4dn.4xlarge | Computación acelerada | No | 1 | 16 | 64 | 16 | 1 x 225 NVMe SSD | 
| ml.g4dn.8xlarge | Computación acelerada | No | 1 | 32 | 128 | 16 | 1 x 900 NVMe SSD | 
| ml.g4dn.12xlarge | Computación acelerada | No | 4 | 48 | 192 | 64 | 1 x 900 NVMe SSD | 
| ml.g4dn.16xlarge | Computación acelerada | No | 1 | 64 | 256 | 16 | 1 x 900 NVMe SSD | 
| ml.g5.xlarge | Computación acelerada | No | 1 | 4 | 16 | 24 | 1 x 250 NVMe SSD | 
| ml.g5.2xlarge | Computación acelerada | No | 1 | 8 | 32 | 24 | 1 x 450 NVMe SSD | 
| ml.g5.4xlarge | Computación acelerada | No | 1 | 16 | 64 | 24 | 1 x 600 NVMe SSD | 
| ml.g5.8xlarge | Computación acelerada | No | 1 | 32 | 128 | 24 | 1 x 900 NVMe SSD | 
| ml.g5.12xlarge | Computación acelerada | No | 4 | 48 | 192 | 96 | 1 x 3800 SSD NVMe  | 
| ml.g5.16xlarge | Computación acelerada | No | 1 | 64 | 256 | 24 | 1 x SSD 1900 NVMe  | 
| ml.g5.24xlarge | Computación acelerada | No | 4 | 96 | 384 | 96 | 1 x 3800 SSD NVMe  | 
| ml.g5.48xlarge | Computación acelerada | No | 8 | 192 | 768 | 192 | 2 unidades SSD 3800 NVMe  | 

# SageMaker Imágenes de Amazon disponibles para su uso con las libretas Studio Classic
<a name="notebooks-available-images"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En esta página se enumeran las SageMaker imágenes y los núcleos asociados que están disponibles en Amazon SageMaker Studio Classic. Esta página también proporciona información sobre el formato necesario para crear el ARN de cada imagen. SageMaker las imágenes contienen el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) más reciente y la última versión del núcleo. Para obtener más información, consulte [Imágenes de contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/deep-learning-containers-images.html).

**Topics**
+ [Formato de ARN de imagen](#notebooks-available-images-arn)
+ [Etiquetas de URI compatibles](#notebooks-available-uri-tag)
+ [Imágenes compatibles](#notebooks-available-images-supported)
+ [Imágenes programadas para su obsolescencia](#notebooks-available-images-deprecation)
+ [Imágenes obsoletas](#notebooks-available-images-deprecated)

## Formato de ARN de imagen
<a name="notebooks-available-images-arn"></a>

En la siguiente tabla se muestran los formatos de URI y ARN de imagen para cada región. Para crear el ARN completo de una imagen, sustituya el *resource-identifier* marcador de posición por el identificador de recurso correspondiente a la imagen. El identificador de recursos se encuentra en la tabla de SageMaker imágenes y núcleos. Para crear el URI completo de una imagen, sustituya el *tag* marcador de posición por la etiqueta cpu o gpu correspondiente. Para ver la lista de etiquetas que puede usar, consulte [Etiquetas de URI compatibles](#notebooks-available-uri-tag).

**nota**  
SageMaker Las imágenes de distribución utilizan un conjunto de imágenes distinto ARNs, que se muestran en la siguiente tabla.


| Region | Formato de ARN de imagen | SageMaker Formato ARN de imagen de distribución | SageMaker Formato URI de imagen de distribución | 
| --- | --- | --- | --- | 
|  us-east-1  | arn:aws:sagemaker:us-east-1:081325390199:image/resource-identifier | arn:aws:sagemaker:us-east-1:885854791233:image/resource-identifier | 885854791233.dkr. ecr.us-east-1.amazonaws.com/: sagemaker-distribution-prod tag | 
|  us-east-2  | arn:aws:sagemaker:us-east-2:429704687514:image/resource-identifier | arn:aws:sagemaker:us-east-2:137914896644:image/resource-identifier | 137914896644.dkr. ecr.us-east-2.amazonaws.com/sagemaker-distribution-prod: tag | 
|  us-west-1  | arn:aws:sagemaker:us-west-1:742091327244:image/resource-identifier | arn:aws:sagemaker:us-west-1:053634841547:image/resource-identifier | 053634841547.dkr. ecr.us-west-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  us-west-2  | arn:aws:sagemaker:us-west-2:236514542706:image/resource-identifier | arn:aws:sagemaker:us-west-2:542918446943:image/resource-identifier | 542918446943.dkr. ecr.us-west-2.amazonaws.com/sagemaker-distribution-prod: tag | 
|  af-south-1  | arn:aws:sagemaker:af-south-1:559312083959:image/resource-identifier | arn:aws:sagemaker:af-south-1:238384257742:image/resource-identifier | 238384257742.dkr. ecr.af-south-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-east-1  | arn:aws:sagemaker:ap-east-1:493642496378:image/resource-identifier | arn:aws:sagemaker:ap-east-1:523751269255:image/resource-identifier | 523751269255.dkr. ecr.ap-east-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-south-1  | arn:aws:sagemaker:ap-south-1:394103062818:image/resource-identifier | arn:aws:sagemaker:ap-south-1:245090515133:image/resource-identifier | 245090515133.dkr. ecr.ap-south-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-northeast-2  | arn:aws:sagemaker:ap-northeast-2:806072073708:image/resource-identifier | arn:aws:sagemaker:ap-northeast-2:064688005998:image/resource-identifier | 064688005998.dkr. ecr.ap-northeast-2.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-southeast-1  | arn:aws:sagemaker:ap-southeast-1:492261229750:image/resource-identifier | arn:aws:sagemaker:ap-southeast-1:022667117163:image/resource-identifier | 022667117163.dkr. ecr.ap-southeast-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-southeast-2  | arn:aws:sagemaker:ap-southeast-2:452832661640:image/resource-identifier | arn:aws:sagemaker:ap-southeast-2:648430277019:image/resource-identifier | 648430277019.dkr. ecr.ap-southeast-2.amazonaws.com/: sagemaker-distribution-prod tag | 
|  ap-northeast-1  |  arn:aws:sagemaker:ap-northeast-1:102112518831:image/resource-identifier |  arn:aws:sagemaker:ap-northeast-1:010972774902:image/resource-identifier | 010972774902.dkr. ecr.ap-northeast-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ca-central-1  | arn:aws:sagemaker:ca-central-1:310906938811:image/resource-identifier | arn:aws:sagemaker:ca-central-1:481561238223:image/resource-identifier | 481561238223.dkr. ecr.ca-central-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-central-1  | arn:aws:sagemaker:eu-central-1:936697816551:image/resource-identifier | arn:aws:sagemaker:eu-central-1:545423591354:image/resource-identifier | 545423591354.dkr. ecr.eu-central-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-west-1  | arn:aws:sagemaker:eu-west-1:470317259841:image/resource-identifier | arn:aws:sagemaker:eu-west-1:819792524951:image/resource-identifier | 819792524951.dkr. ecr.eu-west-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-west-2  | arn:aws:sagemaker:eu-west-2:712779665605:image/resource-identifier | arn:aws:sagemaker:eu-west-2:021081402939:image/resource-identifier | 021081402939.dkr. ecr.eu-west-2.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-west-3  | arn:aws:sagemaker:eu-west-3:615547856133:image/resource-identifier | arn:aws:sagemaker:eu-west-3:856416204555:image/resource-identifier | 856416204555.dkr. ecr.eu-west-3.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-north-1  | arn:aws:sagemaker:eu-north-1:243637512696:image/resource-identifier | arn:aws:sagemaker:eu-north-1:175620155138:image/resource-identifier | 175620155138.dkr. ecr.eu-north-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-south-1  | arn:aws:sagemaker:eu-south-1:592751261982:image/resource-identifier | arn:aws:sagemaker:eu-south-1:810671768855:image/resource-identifier | 810671768855.dkr. ecr.eu-south-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  sa-east-1  | arn:aws:sagemaker:sa-east-1:782484402741:image/resource-identifier | arn:aws:sagemaker:sa-east-1:567556641782:image/resource-identifier | 567556641782.dkr. ecr.sa-east-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-northeast-3  | arn:aws:sagemaker:ap-northeast-3:792733760839:image/resource-identifier | arn:aws:sagemaker:ap-northeast-3:564864627153:image/resource-identifier | 564864627153.dkr. ecr.ap-northeast-3.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-southeast-3  | arn:aws:sagemaker:ap-southeast-3:276181064229:image/resource-identifier | arn:aws:sagemaker:ap-southeast-3:370607712162:image/resource-identifier | 370607712162.dkr. ecr.ap-southeast-3.amazonaws.com/sagemaker-distribution-prod: tag | 
|  me-south-1  | arn:aws:sagemaker:me-south-1:117516905037:image/resource-identifier | arn:aws:sagemaker:me-south-1:523774347010:image/resource-identifier | 523774347010.dkr. ecr.me-south-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  me-central-1  | arn:aws:sagemaker:me-central-1:103105715889:image/resource-identifier | arn:aws:sagemaker:me-central-1:358593528301:image/resource-identifier | 358593528301.dkr. ecr.me-central-1.amazonaws.com/sagemaker-distribution-prod: tag | 

## Etiquetas de URI compatibles
<a name="notebooks-available-uri-tag"></a>

La siguiente lista muestra las etiquetas que puede incluir en el URI de su imagen.
+ 1-cpu
+ 1-gpu
+ 0-cpu
+ 0-gpu

**Los siguientes ejemplos se muestran con varios formatos de etiquetas: URIs **
+ 542918446943.dkr. ecr.us-west-2.amazonaws.com /:1-cpu sagemaker-distribution-prod
+ 542918446943.dkr. ecr.us-west-2.amazonaws.com /:0-gpu sagemaker-distribution-prod

## Imágenes compatibles
<a name="notebooks-available-images-supported"></a>

En la siguiente tabla se proporciona información sobre las SageMaker imágenes y los núcleos asociados que están disponibles en Amazon SageMaker Studio Classic. También proporciona información acerca del identificador de recursos y la versión de Python incluidos en la imagen.

SageMaker imágenes y núcleos


| SageMaker Imagen | Description (Descripción) | Identificador de recursos | Kernels (e identificador) | Versión de Python | 
| --- | --- | --- | --- | --- | 
| Python 4.3 básico | Imagen oficial de Python 3.11 tomada DockerHub con boto3 e incluida. AWS CLI  | sagemaker-base-python-v4. | Python 3 (python3) | Python 3.11 | 
| Python 4.2 básico | Imagen oficial de Python 3.11 tomada DockerHub con boto3 e incluida. AWS CLI  | sagemaker-base-python-v4. | Python 3 (python3) | Python 3.11 | 
| Python 4.1 básico | Imagen oficial de Python 3.11 tomada DockerHub con boto3 e incluida. AWS CLI  | sagemaker-base-python-v4. | Python 3 (python3) | Python 3.11 | 
| Python 4.0 básico | Imagen oficial de Python 3.11 tomada DockerHub con boto3 e incluida. AWS CLI  | sagemaker-base-python-v4. | Python 3 (python3) | Python 3.11 | 
| Base Python 3.0 | Imagen oficial de Python 3.10 DockerHub con boto3 e incluida. AWS CLI  | sagemaker-base-python-310-v1 | Python 3 (python3) | Python 3.10 | 
| Data Science 5.3 | Data Science 5.3 es una imagen [conda](https://docs.conda.io/projects/conda/en/latest/index.html) de Python 3.11 basada en la versión jammy-20240212 de Ubuntu. Incluye los paquetes y bibliotecas de Python más utilizados, como NumPy SciKit Learn. | sagemaker-data-science-v5. | Python 3 (python3) | Python 3.11 | 
| Data Science 5.2 | Data Science 5.2 es una imagen [conda](https://docs.conda.io/projects/conda/en/latest/index.html) de Python 3.11 basada en la versión jammy-20240212 de Ubuntu. Incluye los paquetes y bibliotecas de Python más utilizados, como NumPy SciKit Learn. | sagemaker-data-science-v5. | Python 3 (python3) | Python 3.11 | 
| Data Science 5.1 | Data Science 5.1 es una imagen [conda](https://docs.conda.io/projects/conda/en/latest/index.html) de Python 3.11 basada en la versión jammy-20240212 de Ubuntu. Incluye los paquetes y bibliotecas de Python más utilizados, como NumPy SciKit Learn. | sagemaker-data-science-v5. | Python 3 (python3) | Python 3.11 | 
| Data Science 5.0 | Data Science 5.0 es una imagen [conda](https://docs.conda.io/projects/conda/en/latest/index.html) de Python 3.11 basada en la versión jammy-20240212 de Ubuntu. Incluye los paquetes y bibliotecas de Python más utilizados, como NumPy SciKit Learn. | sagemaker-data-science-v5. | Python 3 (python3) | Python 3.11 | 
| Data Science 4.0 | Data Science 4.0 es una imagen [conda](https://docs.conda.io/projects/conda/en/latest/index.html) de Python 3.11 basada en Ubuntu versión 22.04. Incluye los paquetes y bibliotecas de Python más utilizados, como NumPy SciKit Learn. | sagemaker-data-science-311-v1 | Python 3 (python3) | Python 3.11 | 
| Data Science 3.0 | Data Science 3.0 es una imagen [conda](https://docs.conda.io/projects/conda/en/latest/index.html) de Python 3.10 basada en Ubuntu versión 22.04. Incluye los paquetes y bibliotecas de Python más utilizados, como NumPy SciKit Learn. | sagemaker-data-science-310-v1 | Python 3 (python3) | Python 3.10 | 
| Geospatial 1.0 | Amazon SageMaker geospatial es una imagen de Python que consta de bibliotecas geoespaciales de uso común, como GDAL, Fiona GeoPandas, Shapley y Rasterio. Le permite visualizar datos geoespaciales dentro de la IA. SageMaker Para obtener más información, consulte [Amazon SageMaker Geospatial Notebook SDK](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-notebook-sdk.html) | sagemaker-geospatial-1.0 | Python 3 (python3) | Python 3.10 | 
| SparkAnalytics 4.3 | La imagen SparkAnalytics 4.3 proporciona opciones de PySpark kernel y Spark en Amazon SageMaker Studio Classic, incluidas SparkMagic Spark SparkMagic PySpark, Glue Spark y Glue PySpark, lo que permite un procesamiento de datos distribuido y flexible. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 4.2 | La imagen SparkAnalytics 4.2 proporciona opciones de PySpark kernel y Spark en Amazon SageMaker Studio Classic, incluidas SparkMagic Spark SparkMagic PySpark, Glue Spark y Glue PySpark, lo que permite un procesamiento de datos distribuido y flexible. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 4.1 | La imagen SparkAnalytics 4.1 proporciona opciones de PySpark kernel y Spark en Amazon SageMaker Studio Classic, incluidas SparkMagic Spark SparkMagic PySpark, Glue Spark y Glue PySpark, lo que permite un procesamiento de datos distribuido y flexible. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 4.0 | La imagen SparkAnalytics 4.0 proporciona opciones de PySpark kernel y Spark en Amazon SageMaker Studio Classic, incluidas SparkMagic Spark SparkMagic PySpark, Glue Spark y Glue PySpark, lo que permite un procesamiento de datos distribuido y flexible. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 3.0 | La imagen SparkAnalytics 3.0 proporciona opciones de PySpark kernel y Spark en Amazon SageMaker Studio Classic, incluidas SparkMagic Spark SparkMagic PySpark, Glue Spark y Glue PySpark, lo que permite un procesamiento de datos distribuido y flexible. | sagemaker-sparkanalytics-311-v1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/notebooks-available-images.html) | Python 3.11 | 
| SparkAnalytics 2.0 | Edición individual de Anaconda con núcleos PySpark Spark. Para obtener más información, consulte [sparkmagic](https://github.com/jupyter-incubator/sparkmagic). | sagemaker-sparkanalytics-310-v1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/notebooks-available-images.html) | Python 3.10 | 
| PyTorch 2.4.0 Python 3.11 Optimizado para CPU | Los AWS Deep Learning Containers para PyTorch 2.4.0 con CUDA 12.4 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.4.0-cpu-py311 | Python 3 (python3) | Python 3.11 | 
| PyTorch 2.4.0 Python 3.11 Optimizado para GPU | Los AWS Deep Learning Containers para PyTorch 2.4.0 con CUDA 12.4 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.4.0-gpu-py311 | Python 3 (python3) | Python 3.11 | 
| PyTorch 2.3.0 Python 3.11 Optimizado para CPU | Los AWS Deep Learning Containers para PyTorch 2.3.0 con CUDA 12.1 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.3.0-cpu-py311 | Python 3 (python3) | Python 3.11 | 
| PyTorch 2.3.0 Python 3.11 Optimizado para GPU | Los AWS Deep Learning Containers para PyTorch 2.3.0 con CUDA 12.1 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.3.0-gpu-py311 | Python 3 (python3) | Python 3.11 | 
| PyTorch 2.2.0 Python 3.10 Optimizado para CPU | Los AWS Deep Learning Containers para PyTorch 2.2 con CUDA 12.1 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.2.0-cpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.2.0 Python 3.10 optimizado para GPU | Los AWS Deep Learning Containers para PyTorch 2.2 con CUDA 12.1 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.2.0-gpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.1.0 Python 3.10 Optimizado para CPU | Los AWS Deep Learning Containers para PyTorch 2.1 con CUDA 12.1 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.1.0-cpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.1.0 Python 3.10 optimizado para GPU | Los AWS Deep Learning Containers para PyTorch 2.1 con CUDA 12.1 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.1.0-gpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 1.13 HuggingFace Python 3.10 Optimizado para neuronas | PyTorch Imagen 1.13 con paquetes Neuron instalados para el entrenamiento en instancias de Trainium optimizadas para mejorar el rendimiento HuggingFace y la escalabilidad. AWS | hf-neuron-pypytorch-1.13- 310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 1.13 Python 3.10 Optimizado para neuronas | PyTorch Imagen de la versión 1.13 con los paquetes Neuron instalados para el entrenamiento en instancias de Trainium optimizadas para mejorar el rendimiento y la escalabilidad. AWS | pytorch-1.13-neuron-py310 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.14.0 Python 3.10 Optimizado para CPU | Los AWS Deep Learning Containers para TensorFlow 2.14 con CUDA 11.8 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.14.1-cpu-py310-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.14.0 Python 3.10 optimizado para GPU | Los AWS Deep Learning Containers para TensorFlow 2.14 con CUDA 11.8 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.14.1-gpu-py310-cu118-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 

## Imágenes programadas para su obsolescencia
<a name="notebooks-available-images-deprecation"></a>

SageMaker La IA deja de dar soporte a las imágenes el día siguiente al final de su vida útil por parte del editor de alguno de los paquetes de la imagen. Está previsto que las siguientes SageMaker imágenes queden en desuso. 

Imágenes basadas en Python 3.8 publicadas [end-of-life](https://endoflife.date/python)el 31 de octubre de 2024. A partir del 1 de noviembre de 2024, la SageMaker IA dejará de admitir estas imágenes y no se podrán seleccionar desde la interfaz de usuario de Studio Classic. Para evitar problemas de disconformidad normativa, si utiliza alguna de estas imágenes, le recomendamos que cambie a una imagen con una versión posterior.

SageMaker imágenes cuya obsolescencia está prevista


| SageMaker Imagen | Fecha de baja | Description (Descripción) | Identificador de recursos | Kernels | Versión de Python | 
| --- | --- | --- | --- | --- | --- | 
| SageMaker CPU de distribución v0.12 | 1 de noviembre de 2024 | SageMaker Distribution v0 CPU es una imagen de Python 3.8 que incluye marcos populares para el machine learning, la ciencia de datos y la visualización en la CPU. Esto incluye marcos de aprendizaje profundo como PyTorch TensorFlow y Keras; paquetes populares de Python como numpy, scikit-learn y pandas; y como Jupyter Lab. IDEs Para obtener más información, consulta el repositorio de [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution).  | 0 sagemaker-distribution-cpu-v | Python 3 (python3) | Python 3.8 | 
| SageMaker GPU Distribution v0.12 | 1 de noviembre de 2024 | SageMaker Distribution v0 GPU es una imagen de Python 3.8 que incluye marcos populares para el machine learning, la ciencia de datos y la visualización en la GPU. Esto incluye marcos de aprendizaje profundo como PyTorch TensorFlow y Keras; paquetes populares de Python como numpy, scikit-learn y pandas; y como Jupyter Lab. IDEs Para obtener más información, consulta el repositorio de [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution).  | 0 sagemaker-distribution-gpu-v | Python 3 (python3) | Python 3.8 | 
| Base Python 2.0 | 1 de noviembre de 2024 | Imagen oficial de Python 3.8 DockerHub con boto3 e AWS CLI incluida. | sagemaker-base-python-38 | Python 3 (python3) | Python 3.8 | 
| Data Science 2.0 | 1 de noviembre de 2024 | Data Science 2.0 es una imagen [conda](https://docs.conda.io/projects/conda/en/latest/index.html) de Python 3.8 basada en Ubuntu versión 22.04. Incluye los paquetes y bibliotecas de Python más utilizados, como NumPy SciKit Learn. | sagemaker-data-science-38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.13 Python 3.9 optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para la PyTorch versión 1.13 con CUDA 11.3 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-1.13-cpu-py39 | Python 3 (python3) | Python 3.9 | 
| PyTorch 1.13 Python 3.9 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para la PyTorch versión 1.13 con CUDA 11.7 incluyen contenedores para el entrenamiento en la GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-1.13-gpu-py39 | Python 3 (python3) | Python 3.9 | 
| PyTorch 1.12 Python 3.8 optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para la PyTorch versión 1.12 con CUDA 11.3 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [AWS Deep Learning Containers para PyTorch 1.12.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-12-0-on-sagemaker/). | pytorch-1.12-cpu-py38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.12 Python 3.8 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para la PyTorch versión 1.12 con CUDA 11.3 incluyen contenedores para el entrenamiento en la GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [AWS Deep Learning Containers para PyTorch 1.12.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-12-0-on-sagemaker/). | pytorch-1.12-gpu-py38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.10 Python 3.8 optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para la PyTorch versión 1.10 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la AWS escalabilidad. Para obtener más información, consulte [AWS Deep Learning Containers para la PyTorch versión 1.10.2 sobre SageMaker IA](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-10-2-on-sagemaker/). | pytorch-1.10-cpu-py38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.10 Python 3.8 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para la PyTorch versión 1.10 con CUDA 11.3 incluyen contenedores para el entrenamiento en la GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [AWS Deep Learning Containers para la PyTorch versión 1.10.2 sobre SageMaker IA](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-10-2-on-sagemaker/). | pytorch-1.10-gpu-py38 | Python 3 (python3) | Python 3.8 | 
| SparkAnalytics 1.0 | 1 de noviembre de 2024 | Edición individual de Anaconda con núcleos PySpark Spark. Para obtener más información, consulte [sparkmagic](https://github.com/jupyter-incubator/sparkmagic). | sagemaker-sparkanalytics-v1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.8 | 
| TensorFlow 2.13.0 Python 3.10 Optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.13 con CUDA 11.8 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de la versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.13.0-cpu-py310-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.13.0 Python 3.10 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.13 con CUDA 11.8 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.13.0-gpu-py310-cu118-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.6 Python 3.8 optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.6 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad AWS. Para obtener más información, consulte [AWS Deep Learning Containers para TensorFlow 2.6](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-tensorflow-2-6/). | tensorflow-2.6-cpu-py38-ubuntu20.04-v1 | Python 3 (python3) | Python 3.8 | 
| TensorFlow 2.6 Python 3.8 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.6 con CUDA 11.2 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [AWS Deep Learning Containers para TensorFlow 2.6](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-tensorflow-2-6/). | tensorflow-2.6-gpu-py38-cu112-ubuntu20.04-v1 | Python 3 (python3) | Python 3.8 | 
| PyTorch 2.0.1 Python 3.10 Optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para PyTorch 2.0.1 con CUDA 12.1 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.0.1-cpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.0.1 Python 3.10 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para PyTorch 2.0.1 con CUDA 12.1 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.0.1-gpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.0.0 Python 3.10 Optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para PyTorch 2.0.0 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.0.0-cpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.0.0 Python 3.10 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para PyTorch 2.0.0 con CUDA 11.8 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.0.0-gpu-py310 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.12.0 Python 3.10 Optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.12.0 con CUDA 11.2 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.12.0-cpu-py310-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.12.0 Python 3.10 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.12.0 con CUDA 11.8 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.12.0-gpu-py310-cu118-ubuntu20.04-sagemaker-v1 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.11.0 Python 3.9 Optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.11.0 con CUDA 11.2 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.11.0-cpu-py39-ubuntu20.04-sagemaker-v1.1 | Python 3 (python3) | Python 3.9 | 
| TensorFlow 2.11.0 Python 3.9 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.11.0 con CUDA 11.2 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.11.0-gpu-py39-cu112-ubuntu20.04-sagemaker-v1.1 | Python 3 (python3) | Python 3.9 | 
| TensorFlow 2.10 Python 3.9 optimizado para CPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.10 con CUDA 11.2 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.10.1-cpu-py39-ubuntu20.04-sagemaker-v1.2 | Python 3 (python3) | Python 3.9 | 
| TensorFlow 2.10 Python 3.9 optimizado para GPU | 1 de noviembre de 2024 | Los AWS Deep Learning Containers para TensorFlow 2.10 con CUDA 11.2 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [Notas de versión para contenedores de aprendizaje profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.10.1-gpu-py39-ubuntu20.04-sagemaker-v1.2 | Python 3 (python3) | Python 3.9 | 

## Imágenes obsoletas
<a name="notebooks-available-images-deprecated"></a>

SageMaker La IA ha dejado de dar soporte a las siguientes imágenes. La obsolescencia se produce el día después de que alguno de los paquetes de la imagen llegue al final de su vida útil determinado por su publicador.

SageMaker imágenes cuya obsolescencia está prevista


| SageMaker Imagen | Fecha de baja | Description (Descripción) | Identificador de recursos | Kernels | Versión de Python | 
| --- | --- | --- | --- | --- | --- | 
| Data Science | 30 de octubre de 2023 | Data Science es una imagen [conda](https://docs.conda.io/projects/conda/en/latest/index.html) de Python 3.7 con los paquetes y bibliotecas de Python más utilizados, como NumPy SciKit Learn. | datascience-1.0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart Ciencia de datos 1.0 | 30 de octubre de 2023 | SageMaker JumpStart Data Science 1.0 es una JumpStart imagen que incluye paquetes y bibliotecas de uso común. | sagemaker-jumpstart-data-science-1.0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart MXNet 1,0 | 30 de octubre de 2023 | SageMaker JumpStart MXNet 1.0 es una JumpStart imagen que incluye MXNet. | sagemaker-jumpstart-mxnet-1.0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart PyTorch 1,0 | 30 de octubre de 2023 | SageMaker JumpStart PyTorch 1.0 es una JumpStart imagen que incluye PyTorch. | sagemaker-jumpstart-pytorch-1.0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart TensorFlow 1,0 | 30 de octubre de 2023 | SageMaker JumpStart TensorFlow 1.0 es una JumpStart imagen que incluye TensorFlow. | sagemaker-jumpstart-tensorflow-1.0 | Python 3 | Python 3.7 | 
| SparkMagic | 30 de octubre de 2023 | Edición individual de Anaconda con PySpark núcleos Spark. Para obtener más información, consulte [sparkmagic](https://github.com/jupyter-incubator/sparkmagic). | sagemaker-sparkmagic |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.7 | 
| TensorFlow 2.3 Python 3.7 Optimizado para CPU | 30 de octubre de 2023 | Los AWS Deep Learning Containers para TensorFlow 2.3 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la escalabilidad AWS. Para obtener más información, consulte [AWS Deep Learning Containers con TensorFlow 2.3.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-with-tensorflow-2-3-0/). | tensorflow-2.3-cpu-py37-ubuntu18.04-v1 | Python 3 | Python 3.7 | 
| TensorFlow 2.3 Python 3.7 Optimizado para GPU | 30 de octubre de 2023 | Los AWS Deep Learning Containers para TensorFlow 2.3 con CUDA 11.0 incluyen contenedores para el entrenamiento en GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [AWS Deep Learning Containers para TensorFlow 2.3.1 con CUDA 11.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-tensorflow-2-3-1-with-cuda-11-0/). | tensorflow-2.3-gpu-py37-cu110-ubuntu18.04-v3 | Python 3 | Python 3.7 | 
| TensorFlow 1.15 Python 3.7 Optimizado para CPU | 30 de octubre de 2023 | Los AWS Deep Learning Containers para la TensorFlow versión 1.15 incluyen contenedores para el entrenamiento en la CPU, optimizados para el rendimiento y la AWS escalabilidad. Para obtener más información, consulte [AWS Deep Learning Containers v7.0 para TensorFlow](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-v7-0-for-tensorflow/). | tensorflow-1.15-cpu-py37-ubuntu18.04-v7 | Python 3 | Python 3.7 | 
| TensorFlow 1.15 Python 3.7 optimizado para GPU | 30 de octubre de 2023 | Los AWS Deep Learning Containers para la TensorFlow versión 1.15 con CUDA 11.0 incluyen contenedores para el entrenamiento en la GPU, optimizados para el rendimiento y la escalabilidad. AWS Para obtener más información, consulte [AWS Deep Learning Containers v7.0 para TensorFlow](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-v7-0-for-tensorflow/). | tensorflow-1.15-gpu-py37-cu110-ubuntu18.04-v8 | Python 3 | Python 3.7 | 

# Personaliza Amazon SageMaker Studio Classic
<a name="studio-customize"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Existen cuatro opciones para personalizar el entorno de Amazon SageMaker Studio Classic. Aporta su propia SageMaker imagen, utiliza un script de configuración del ciclo de vida, adjunta los repositorios de Git sugeridos a Studio Classic o crea núcleos mediante entornos Conda persistentes en Amazon EFS. Utilice cada opción de forma individual o conjunta. 
+ **Traiga su propia SageMaker imagen:** una SageMaker imagen es un archivo que identifica los núcleos, los paquetes de idioma y otras dependencias necesarias para ejecutar un cuaderno de Jupyter en Amazon Studio Classic. SageMaker Amazon SageMaker AI proporciona muchas imágenes integradas para que las utilices. Si necesita una funcionalidad diferente, puede llevar sus propias imágenes personalizadas a Studio Classic.
+ **Utilice las configuraciones del ciclo de vida con Amazon SageMaker Studio Classic:** las configuraciones del ciclo de vida son scripts de shell activados por eventos del ciclo de vida de Amazon SageMaker Studio Classic, como iniciar un nuevo bloc de notas de Studio Classic. Puede utilizar las configuraciones del ciclo de vida para automatizar la personalización de su entorno de Studio Classic. Por ejemplo, puede instalar paquetes personalizados, configurar extensiones de notebook, cargar previamente conjuntos de datos y configurar repositorios de código fuente.
+ **Adjunta los repositorios de Git sugeridos a Studio Classic:** puedes adjuntar el repositorio de Git sugerido URLs a nivel de dominio de Amazon SageMaker AI o perfil de usuario. A continuación, puede seleccionar la URL del repositorio de la lista de sugerencias y clonarla en su entorno mediante la extensión de Git en Studio Classic. 
+ **Mantener los entornos de Conda en el volumen de Amazon EFS de Studio Classic:** Studio Classic utiliza un volumen de Amazon EFS como capa de almacenamiento persistente. Puede guardar su entorno de Conda en este volumen de Amazon EFS y, a continuación, utilizar el entorno guardado para crear kernels. Studio Classic recoge automáticamente todos los entornos válidos guardados en Amazon EFS como KernelGateway núcleos. Estos kernels persisten hasta que se reinicia el kernel, la aplicación y Studio Classic. Para obtener más información, consulte la sección **Persistir los entornos de Conda en el volumen EFS de Studio Classic** en [Cuatro enfoques para administrar paquetes de Python en los cuadernos de Amazon SageMaker Studio Classic](https://aws.amazon.com/blogs/machine-learning/four-approaches-to-manage-python-packages-in-amazon-sagemaker-studio-notebooks/).

En los temas siguientes se muestra cómo utilizar estas tres opciones para personalizar el entorno de Amazon SageMaker Studio Classic.

**Topics**
+ [Imágenes personalizadas en Amazon SageMaker Studio Classic](studio-byoi.md)
+ [Utilice las configuraciones del ciclo de vida para personalizar Amazon SageMaker Studio Classic](studio-lcc.md)
+ [Adjunta los repositorios de Git sugeridos a Amazon SageMaker Studio Classic](studio-git-attach.md)

# Imágenes personalizadas en Amazon SageMaker Studio Classic
<a name="studio-byoi"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Una SageMaker imagen es un archivo que identifica los núcleos, los paquetes de idioma y otras dependencias necesarias para ejecutar un cuaderno de Jupyter en Amazon Studio Classic. SageMaker Estas imágenes se utilizan para crear un entorno desde el que se ejecutan los cuadernos de Jupyter. Amazon SageMaker AI proporciona muchas imágenes integradas para que las utilices. Para ver la lista de imágenes integradas, consulte [SageMaker Imágenes de Amazon disponibles para su uso con las libretas Studio Classic](notebooks-available-images.md).

Si necesita una funcionalidad diferente, puede llevar sus propias imágenes personalizadas a Studio Classic. Puede crear imágenes y versiones de imágenes y adjuntar versiones de imágenes a su dominio o espacio compartido mediante el panel de control de SageMaker IA [AWS SDK para Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html), y [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/). También puedes crear imágenes y versiones de imágenes con la consola de SageMaker IA, incluso si no te has incorporado a un dominio de SageMaker IA. SageMaker AI proporciona archivos Dockerfiles de muestra para usarlos como punto de partida para tus SageMaker imágenes personalizadas en el repositorio de muestras de imágenes [personalizadas de SageMaker Studio Classic](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/).

En los siguientes temas se explica cómo crear tu propia imagen mediante la consola de SageMaker IA o AWS CLI, a continuación, lanzar la imagen en Studio Classic. Para ver un artículo de blog similar, consulte [Cómo incorporar su propio entorno R a Amazon SageMaker Studio Classic](https://aws.amazon.com/blogs/machine-learning/bringing-your-own-r-environment-to-amazon-sagemaker-studio/). Para ver cuadernos que muestran cómo crear su propia imagen para utilizarla en el entrenamiento y la inferencia, consulte la [CLI de compilación de contenedores clásicos de Amazon SageMaker Studio](https://github.com/aws/amazon-sagemaker-examples/tree/main/aws_sagemaker_studio/sagemaker_studio_image_build).

## Terminología clave
<a name="studio-byoi-basics"></a>

En la siguiente sección se definen los términos clave para llevar su propia imagen para su uso con Studio Classic.
+ **Dockerfile:** un Dockerfile es un archivo que identifica los paquetes de idioma y otras dependencias de la imagen de Docker.
+ **Imagen de Docker:** la imagen de Docker es un Dockerfile compilado. Esta imagen está registrada en Amazon ECR y sirve de base para la imagen de SageMaker IA.
+ **SageMaker imagen:** una SageMaker imagen es el soporte para un conjunto de versiones de imágenes de SageMaker IA basadas en imágenes de Docker. Cada versión de imagen es inmutable.
+ **Versión de imagen:** una versión de imagen de una SageMaker imagen representa una imagen de Docker y se almacena en un repositorio de Amazon ECR. Cada versión de imagen es inmutable. Estas versiones de imágenes se pueden asociar a un dominio o espacio compartido y usarse con Studio Classic.

**Topics**
+ [Terminología clave](#studio-byoi-basics)
+ [Especificaciones SageMaker de imagen personalizadas para Amazon SageMaker Studio Classic](studio-byoi-specs.md)
+ [Requisitos previos para imágenes personalizadas en Amazon SageMaker Studio Classic](studio-byoi-prereq.md)
+ [Añadir una imagen de Docker compatible con Amazon SageMaker Studio Classic a Amazon ECR](studio-byoi-sdk-add-container-image.md)
+ [Creación de una SageMaker imagen personalizada para Amazon SageMaker Studio Classic](studio-byoi-create.md)
+ [Adjunta una SageMaker imagen personalizada en Amazon SageMaker Studio Classic](studio-byoi-attach.md)
+ [Lanzamiento de una SageMaker imagen personalizada en Amazon SageMaker Studio Classic](studio-byoi-launch.md)
+ [Limpie los recursos para imágenes personalizadas en Amazon SageMaker Studio Classic](studio-byoi-cleanup.md)

# Especificaciones SageMaker de imagen personalizadas para Amazon SageMaker Studio Classic
<a name="studio-byoi-specs"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Las siguientes especificaciones se aplican a la imagen del contenedor que se representa mediante una versión de imagen de SageMaker IA.

**Ejecutar la imagen**  
`ENTRYPOINT`y se anulan `CMD` las instrucciones para permitir que la imagen se ejecute como una KernelGateway aplicación.  
El puerto 8888 de la imagen está reservado para ejecutar el servidor KernelGateway web.

**Detener la imagen**  
La API `DeleteApp` emite el equivalente de un comando `docker stop`. Los demás procesos del contenedor no recibirán las SIGKILL/SIGTERM señales.

**Descubrimiento de kernel**  
SageMaker [La IA reconoce los núcleos tal y como los definen las especificaciones del núcleo de Jupyter.](https://jupyter-client.readthedocs.io/en/latest/kernels.html#kernelspecs)  
Puede especificar una lista de kernels que se van a mostrar antes de ejecutar la imagen. Si no se especifica, se muestra python3. Utilice la [DescribeAppImageConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAppImageConfig.html)API para ver la lista de núcleos.  
Los entornos Conda se reconocen como especificaciones del kernel de forma predeterminada. 

**Sistema de archivos**  
Los directorios `/opt/.sagemakerinternal` y `/opt/ml` están reservados. Es posible que los datos de estos directorios no estén visibles en tiempo de ejecución.

**Datos de usuario**  
Cada usuario de un dominio obtiene un directorio de usuarios en un volumen compartido de Amazon Elastic File System de la imagen. La ubicación del directorio del usuario actual en el volumen de Amazon EFS se puede configurar. El directorio `/home/sagemaker-user` es la ubicación predeterminada del archivo.  
SageMaker La IA configura los UID/GID mapeos POSIX entre la imagen y el host. De forma predeterminada, mapea las del usuario raíz UID/GID (0/0) con las del host. UID/GID   
Puede especificar estos valores mediante la [CreateAppImageConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html)API.

**Límites de GID/UID**  
Amazon SageMaker Studio Classic solo admite lo siguiente `DefaultUID` y `DefaultGID` combinaciones:   
+  DefaultUID: 1000 y DefaultGID: 100, que corresponde a un usuario sin privilegios.
+  DefaultUID: 0 y DefaultGID: 0, que corresponde al acceso raíz.

**Metadatos**  
Hay un archivo de metadatos en `/opt/ml/metadata/resource-metadata.json`. No se añaden variables de entorno adicionales a las variables definidas en la imagen. Para obtener más información, consulte [Obtener metadatos de aplicaciones](notebooks-run-and-manage-metadata.md#notebooks-run-and-manage-metadata-app).

**GPU**  
En una instancia de GPU, la imagen se ejecuta con la opción `--gpus`. Solo debe incluirse el kit de herramientas CUDA en la imagen, no en los controladores NVIDIA. Para obtener más información, consulte la [Guía del usuario de NVIDIA](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html).

**Métricas y registro**  
Los registros del KernelGateway proceso se envían a Amazon CloudWatch en la cuenta del cliente. El nombre del grupo de registro es `/aws/sagemaker/studio`. El nombre del flujo de registro. es `$domainID/$userProfileName/KernelGateway/$appName`.

**Tamaño de imagen**  
Limitado a 35 GB. Para ver el tamaño de la imagen, ejecute `docker image ls`.  


## Ejemplo de Dockerfile
<a name="studio-byoi-specs-sample"></a>

El siguiente ejemplo de Dockerfile crea un Amazon Linux 2 basado en imágenes, instala paquetes de terceros y el kernel `python3`, y establece el ámbito para el usuario sin privilegios.

```
FROM public.ecr.aws/amazonlinux/amazonlinux:2

ARG NB_USER="sagemaker-user"
ARG NB_UID="1000"
ARG NB_GID="100"

RUN \
    yum install --assumeyes python3 shadow-utils && \
    useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \
    yum clean all && \
    jupyter-activity-monitor-extension \
    python3 -m pip install ipykernel && \
    python3 -m ipykernel install

USER ${NB_UID}
```

# Requisitos previos para imágenes personalizadas en Amazon SageMaker Studio Classic
<a name="studio-byoi-prereq"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Debe cumplir los siguientes requisitos previos para traer su propio contenedor para usarlo con Amazon SageMaker Studio Classic.
+ La aplicación Docker. Para obtener información sobre cómo configurar Docker, consulte [Orientación y configuración](https://docs.docker.com/get-started/).
+ Instálelo AWS CLI siguiendo los pasos que se indican en [Introducción al AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).
+ Una copia local de cualquier Dockerfile para crear una imagen compatible con Studio Classic. Para ver ejemplos de imágenes personalizadas, consulta el repositorio de [ejemplos de imágenes personalizadas de SageMaker AI Studio Classic](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/).
+ Permisos para acceder al servicio Amazon Elastic Container Registry (Amazon ECR). Para obtener más información, consulte [Políticas administradas de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr_managed_policies.html).
+ Un rol AWS Identity and Access Management de ejecución al que se adjunta la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política. Si te has incorporado al dominio de Amazon SageMaker AI, puedes obtener el puesto en la sección **Resumen del dominio** del panel de control de SageMaker IA.
+ Instale la CLI de compilación de imágenes de Studio Classic siguiendo los pasos de [SageMaker Docker Build](https://github.com/aws-samples/sagemaker-studio-image-build-cli). Esta CLI le permite crear un Dockerfile utilizando. AWS CodeBuild

# Añadir una imagen de Docker compatible con Amazon SageMaker Studio Classic a Amazon ECR
<a name="studio-byoi-sdk-add-container-image"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Lleve a cabo los siguientes pasos para agregar una imagen de contenedor a Amazon ECR:
+ Cree un repositorio de Amazon ECR.
+ Autentíquese en Amazon ECR.
+ Cree una imagen de Docker compatible con Studio Classic.
+ Cargue la imagen en el repositorio de Amazon ECR.

**nota**  
El repositorio de Amazon ECR debe estar en el mismo lugar que el Región de AWS de Studio Classic.

**Para crear y añadir una imagen de contenedor a Amazon ECR**

1. Cree un repositorio de Amazon ECR usando AWS CLI. Para crear el repositorio mediante la consola de Amazon ECR, consulte [Crear un repositorio](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html).

   ```
   aws ecr create-repository \
       --repository-name smstudio-custom \
       --image-scanning-configuration scanOnPush=true
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "repository": {
           "repositoryArn": "arn:aws:ecr:us-east-2:acct-id:repository/smstudio-custom",
           "registryId": "acct-id",
           "repositoryName": "smstudio-custom",
           "repositoryUri": "acct-id.dkr.ecr.us-east-2.amazonaws.com/smstudio-custom",
           ...
       }
   }
   ```

1. Genere el `Dockerfile` con la CLI de compilación de imágenes de Studio Classic. El punto (.) especifica que Dockerfile debe estar en el contexto del comando de compilación. Este comando crea la imagen y carga la imagen compilada en el repositorio ECR. A continuación, emite el URI de la imagen.

   ```
   sm-docker build . --repository smstudio-custom:custom
   ```

   El resultado debería ser similar al siguiente.

   ```
   Image URI: <acct-id>.dkr.ecr.<region>.amazonaws.com/<image_name>
   ```

# Creación de una SageMaker imagen personalizada para Amazon SageMaker Studio Classic
<a name="studio-byoi-create"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En este tema se describe cómo crear una SageMaker imagen personalizada mediante la consola SageMaker AI o AWS CLI.

Al crear una imagen desde la consola, la SageMaker IA también crea una versión inicial de la imagen. La versión de la imagen representa una imagen de contenedor en [Amazon Elastic Container Registry (ECR)](https://console.aws.amazon.com/ecr/). La imagen del contenedor debe cumplir los requisitos para su uso en Amazon SageMaker Studio Classic. Para obtener más información, consulte [Especificaciones SageMaker de imagen personalizadas para Amazon SageMaker Studio Classic](studio-byoi-specs.md). Para obtener información sobre cómo probar la imagen localmente y resolver problemas comunes, consulte el [repositorio de muestras de imágenes personalizadas de SageMaker Studio Classic](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md).

Una vez que haya creado SageMaker la imagen personalizada, debe adjuntarla a su dominio o espacio compartido para usarla con Studio Classic. Para obtener más información, consulte [Adjunta una SageMaker imagen personalizada en Amazon SageMaker Studio Classic](studio-byoi-attach.md).

## Cree una SageMaker imagen desde la consola
<a name="studio-byoi-create-console"></a>

En la siguiente sección se muestra cómo crear una SageMaker imagen personalizada desde la consola de SageMaker IA.

**Para crear una imagen**

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

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

1. En **Configuraciones de administrador**, elija **Imágenes**. 

1. En la página **Imágenes personalizadas**, elija **Crear imagen**.

1. Para **Fuente de imagen**, introduzca la ruta de registro de la imagen de contenedor en Amazon ECR. La ruta tiene el siguiente formato:

   ` acct-id.dkr.ecr.region.amazonaws.com/repo-name[:tag] or [@digest] `

1. Seleccione **Siguiente**.

1. En **Propiedades de imagen**, introduzca lo siguiente:
   + Nombre de imagen: el nombre debe ser exclusivo de su cuenta en la Región de AWS actual.
   + (Opcional) Nombre para mostrar: nombre que se muestra en la interfaz de usuario de Studio Classic. Cuando no se proporciona, se muestra `Image name`.
   + (Opcional) Descripción: descripción de la imagen.
   + Función de IAM: la función debe tener la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política adjunta. Utilice el menú desplegable para elegir una de las opciones siguientes:
     + Crear un nuevo rol: especifique cualquier bucket adicional de Amazon Simple Storage Service (Amazon S3) al que desee que los usuarios de sus cuadernos tengan acceso. Si no desea permitir el acceso a buckets adicionales, elija **Ninguno**.

       SageMaker La IA vincula la `AmazonSageMakerFullAccess` política a la función. El rol permite a los usuarios de sus cuadernos acceder a los buckets de S3 que aparecen junto a las marcas de verificación.
     + Introducir un ARN de rol de IAM personalizado: introduzca el nombre de recurso de Amazon (ARN) de su rol de IAM.
     + Usar rol existente: elija uno de los roles existentes de la lista.
   + (Opcional) Etiquetas de imagen: elija **Añadir nueva etiqueta**. Puede añadir hasta 50 etiquetas. Las etiquetas se pueden buscar mediante la interfaz de usuario de Studio Classic, la consola de SageMaker IA o la `Search` API de SageMaker IA.

1. Elija **Enviar**.

La nueva imagen se muestra en la lista **Imágenes personalizadas** y se resalta brevemente. Una vez creada correctamente la imagen, puede elegir el nombre de la imagen para ver sus propiedades o elegir **Crear versión** para crear otra versión.

**Para crear otra versión de la imagen**

1. Elija **Crear versión** en la misma fila que la imagen.

1. Para **Fuente de imagen**, introduzca la ruta de registro de la imagen de contenedor de Amazon ECR. La imagen del contenedor no debe ser la misma imagen que se usó en una versión anterior de la SageMaker imagen.

## Cree una SageMaker imagen a partir de AWS CLI
<a name="studio-byoi-sdk-create-image"></a>

Realice los siguientes pasos para crear una SageMaker imagen a partir de la imagen del contenedor mediante el AWS CLI.
+ Cree una `Image`.
+ Cree una `ImageVersion`.
+ Cree un archivo de configuración. 
+ Cree una `AppImageConfig`.

**Para crear las entidades SageMaker de imagen**

1. Cree una SageMaker imagen.

   ```
   aws sagemaker create-image \
       --image-name custom-image \
       --role-arn arn:aws:iam::<acct-id>:role/service-role/<execution-role>
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/custom-image"
   }
   ```

1. Cree una versión SageMaker de imagen a partir de la imagen del contenedor.

   ```
   aws sagemaker create-image-version \
       --image-name custom-image \
       --base-image <acct-id>.dkr.ecr.<region>.amazonaws.com/smstudio-custom:custom-image
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1"
   }
   ```

1. Compruebe que la versión de la imagen se haya creado correctamente.

   ```
   aws sagemaker describe-image-version \
       --image-name custom-image \
       --version-number 1
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1",
       "ImageVersionStatus": "CREATED"
   }
   ```
**nota**  
Si la respuesta es `"ImageVersionStatus": "CREATED_FAILED"`, también incluye el motivo del error. Un problema de permisos es una causa común de error. También puedes comprobar tus CloudWatch registros de Amazon si se produce un error al iniciar o ejecutar la KernelGateway aplicación para obtener una imagen personalizada. El nombre del grupo de registro es `/aws/sagemaker/studio`. El nombre del flujo de registro es `$domainID/$userProfileName/KernelGateway/$appName`.

1. Cree un archivo de configuración llamado `app-image-config-input.json`. El valor `Name` de `KernelSpecs` debe coincidir con el nombre de kernelSpec disponible en la imagen asociada a esta `AppImageConfig`. Este valor distingue entre mayúsculas y minúsculas. Puede encontrar las kernelSpecs disponibles en una imagen ejecutando `jupyter-kernelspec list` desde un intérprete de comandos dentro del contenedor. `MountPath` es la ruta dentro de la imagen para montar el directorio principal de Amazon Elastic File System (Amazon EFS). Debe ser diferente de la ruta que utiliza dentro del contenedor porque esa ruta se anulará cuando se monte el directorio principal de Amazon EFS.
**nota**  
Las siguientes combinaciones de `DefaultUID` y `DefaultGID` son los únicos valores aceptables:   
 DefaultUID: 1000 y DefaultGID: 100 
 DefaultUID: 0 y DefaultGID: 0 

   ```
   {
       "AppImageConfigName": "custom-image-config",
       "KernelGatewayImageConfig": {
           "KernelSpecs": [
               {
                   "Name": "python3",
                   "DisplayName": "Python 3 (ipykernel)"
               }
           ],
           "FileSystemConfig": {
               "MountPath": "/home/sagemaker-user",
               "DefaultUid": 1000,
               "DefaultGid": 100
           }
       }
   }
   ```

1. Crea el archivo AppImageConfig con el archivo creado en el paso anterior.

   ```
   aws sagemaker create-app-image-config \
       --cli-input-json file://app-image-config-input.json
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "AppImageConfigArn": "arn:aws:sagemaker:us-east-2:acct-id:app-image-config/custom-image-config"
   }
   ```

# Adjunta una SageMaker imagen personalizada en Amazon SageMaker Studio Classic
<a name="studio-byoi-attach"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Para usar una SageMaker imagen personalizada, debes adjuntar una versión de la imagen a tu dominio o espacio compartido. Al adjuntar una versión de imagen, aparece en el iniciador de SageMaker Studio Classic y está disponible en la lista desplegable **Seleccionar imagen**, que los usuarios utilizan para iniciar una actividad o cambiar la imagen utilizada en un bloc de notas.

Para que una SageMaker imagen personalizada esté disponible para todos los usuarios de un dominio, debe adjuntarla al dominio. Para que una imagen esté disponible para todos los usuarios de un espacio compartido, puede asociarla al espacio compartido. Para que una imagen esté disponible para un solo usuario, asocie la imagen al perfil del usuario. Al adjuntar una imagen, SageMaker AI utiliza la versión más reciente de la imagen de forma predeterminada. También puede asociar una versión de imagen específica. Después de adjuntar la versión, puedes elegirla en el SageMaker AI Launcher o en el selector de imágenes al abrir un bloc de notas.

Existe un límite en el número de versiones de imágenes que se pueden asociar en cualquier momento. Una vez alcanzado el límite, debe desasociar una versión para asociar otra versión de la imagen.

En las siguientes secciones se muestra cómo adjuntar una SageMaker imagen personalizada a tu dominio mediante la consola SageMaker AI o el AWS CLI. Solo puede asociar una imagen personalizada a un espacio compartido mediante la AWS CLI.

## Adjunta la SageMaker imagen a un dominio
<a name="studio-byoi-attach-domain"></a>

### Adjunte la SageMaker imagen mediante la consola
<a name="studio-byoi-attach-existing"></a>

En este tema se describe cómo puedes adjuntar una versión de SageMaker imagen personalizada existente a tu dominio mediante el panel de control de SageMaker IA. También puedes crear una imagen y una versión de SageMaker imagen personalizadas y, a continuación, adjuntar esa versión a tu dominio. Para obtener información sobre el procedimiento para crear una imagen y una versión de imagen, consulte [Creación de una SageMaker imagen personalizada para Amazon SageMaker Studio Classic](studio-byoi-create.md).

**Para asociar una imagen existente**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la página **Dominios**, seleccione el dominio al que quiera asociar la imagen.

1. En la página **Detalles del dominio**, seleccione la pestaña **Entorno**.

1. En la pestaña **Entorno**, en **Imágenes personalizadas de SageMaker Studio Classic adjuntas al dominio**, selecciona **Adjuntar imagen**.

1. Para **Fuente de imagen**, seleccione **Imagen existente**.

1. Elija en la lista una imagen existente.

1. Elija una versión de la imagen en la lista.

1. Elija **Siguiente**.

1. Compruebe los valores para **Nombre de la imagen**, **Nombre para mostrar de la imagen** y **Descripción**.

1. Elija el rol de IAM. Para obtener más información, consulte [Creación de una SageMaker imagen personalizada para Amazon SageMaker Studio Classic](studio-byoi-create.md).

1. (Opcional) Agregar etiquetas para la imagen.

1. Especifique la ruta de montaje de EFS. Esta es la ruta dentro de la imagen para montar el directorio principal de Amazon Elastic File System (EFS) del usuario.

1. En **Tipo de imagen**, selecciona **Imagen de SageMaker estudio**

1. Para **Nombre del kernel**, introduzca el nombre de un kernel existente en la imagen. Para obtener información sobre cómo obtener la información del núcleo a partir de la imagen, consulte [DESARROLLO](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md) en el repositorio de muestras de imágenes personalizadas de SageMaker Studio Classic. Para obtener más información, consulte las secciones **Descubrimiento de kernel** y **Datos de usuario** de [Especificaciones SageMaker de imagen personalizadas para Amazon SageMaker Studio Classic](studio-byoi-specs.md).

1. (Opcional) Para **Nombre de visualización del kernel**, introduzca el nombre para mostrar del kernel.

1. Seleccione **Añadir kernel**.

1. Elija **Enviar**. 

   1. Espere a que la versión de la imagen se asocie al dominio. Cuando se asocia, la versión se muestra en la lista **Imágenes personalizadas** y aparece resaltada brevemente.

### Adjunte la SageMaker imagen mediante el AWS CLI
<a name="studio-byoi-sdk-attach"></a>

En las siguientes secciones se muestra cómo adjuntar una SageMaker imagen personalizada al crear un nuevo dominio o actualizar el dominio existente mediante el AWS CLI.

#### Adjunta la SageMaker imagen a un dominio nuevo
<a name="studio-byoi-sdk-attach-new-domain"></a>

En la siguiente sección se muestra cómo crear un nuevo dominio con la versión asociada. Estos pasos requieren que especifique la información y el rol de ejecución de Amazon Virtual Private Cloud (VPC) necesarios para crear el dominio. Debe realizar los siguientes pasos para crear el dominio y adjuntar la SageMaker imagen personalizada:
+ Obtenga su ID de VPC y su subred predeterminados. IDs
+ Cree el archivo de configuración para el dominio, que especifica la imagen.
+ Creación del dominio con el archivo de configuración.

**Para añadir la SageMaker imagen personalizada a tu dominio**

1. Obtenga su ID de VPC predeterminado.

   ```
   aws ec2 describe-vpcs \
       --filters Name=isDefault,Values=true \
       --query "Vpcs[0].VpcId" --output text
   ```

   El resultado debería ser similar al siguiente.

   ```
   vpc-xxxxxxxx
   ```

1. Obtenga su subred predeterminada IDs con el ID de VPC del paso anterior.

   ```
   aws ec2 describe-subnets \
       --filters Name=vpc-id,Values=<vpc-id> \
       --query "Subnets[*].SubnetId" --output json
   ```

   El resultado debería ser similar al siguiente.

   ```
   [
       "subnet-b55171dd",
       "subnet-8a5f99c6",
       "subnet-e88d1392"
   ]
   ```

1. Cree un archivo de configuración llamado `create-domain-input.json`. Inserte el ID de VPC, la subred y IDs uno `ImageName` `AppImageConfigName` de los pasos anteriores. Dado que no se especifica `ImageVersionNumber`, se utiliza la versión más reciente de la imagen, que es la única versión en este caso.

   ```
   {
       "DomainName": "domain-with-custom-image",
       "VpcId": "<vpc-id>",
       "SubnetIds": [
           "<subnet-ids>"
       ],
       "DefaultUserSettings": {
           "ExecutionRole": "<execution-role>",
           "KernelGatewayAppSettings": {
               "CustomImages": [
                   {
                       "ImageName": "custom-image",
                       "AppImageConfigName": "custom-image-config"
                   }
               ]
           }
       },
       "AuthMode": "IAM"
   }
   ```

1. Cree el dominio con la imagen personalizada SageMaker adjunta.

   ```
   aws sagemaker create-domain \
       --cli-input-json file://create-domain-input.json
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx",
       "Url": "https://d-xxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/..."
   }
   ```

#### Adjunta la SageMaker imagen a tu dominio actual
<a name="studio-byoi-sdk-attach-current-domain"></a>

Si te has incorporado a un dominio de SageMaker IA, puedes adjuntar la imagen personalizada a tu dominio actual. Para obtener más información sobre la incorporación a un dominio de SageMaker IA, consulte. [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md) No tiene que especificar la información de VPC y el rol de ejecución al asociar una imagen personalizada a su dominio actual. Después de asociar la versión, debe eliminar todas las aplicaciones de su dominio y volver a abrir Studio Classic. Para obtener información acerca de cómo eliminar un volumen, consulte [Eliminar un dominio de Amazon SageMaker AI](gs-studio-delete-domain.md).

Realiza los siguientes pasos para añadir la SageMaker imagen a tu dominio actual.
+ Obtén la tuya `DomainID` desde el panel de control de SageMaker AI.
+ Utilice el `DomainID` para obtener el `DefaultUserSettings` para el dominio.
+ Agregue el `ImageName` y la `AppImageConfig` como una `CustomImage` a la `DefaultUserSettings`.
+ Actualice el dominio para incluir la imagen personalizada.

**Para añadir la SageMaker imagen personalizada a tu dominio**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la página **Dominios**, seleccione el dominio al que quiera asociar la imagen.

1. En la página de **Detalles del dominio**, seleccione la pestaña **Configuración del dominio**.

1. En la pestaña **Configuración del dominio**, en **Configuración general**, busque el `DomainId`. El ID tendrá el siguiente formato: `d-xxxxxxxxxxxx`.

1. Utilice el ID de dominio para obtener la descripción del dominio.

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. Guarde la sección de configuración de usuario predeterminada de la respuesta en un archivo denominado `default-user-settings.json`.

1. Inserte el `ImageName` y la `AppImageConfigName` de los pasos anteriores como imagen personalizada. Dado que no se especifica `ImageVersionNumber`, se utiliza la versión más reciente de la imagen, que es la única versión en este caso.

   ```
   {
       "DefaultUserSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. Utilice el ID de dominio y el archivo de configuración de usuario predeterminado para actualizar el dominio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-user-settings.json
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## Adjunta la SageMaker imagen a un espacio compartido
<a name="studio-byoi-attach-shared-space"></a>

Solo puede adjuntar la SageMaker imagen a un espacio compartido mediante AWS CLI. Después de asociar la versión, debe eliminar todas las aplicaciones de su espacio compartido y volver a abrir Studio Classic. Para obtener información acerca de cómo eliminar un volumen, consulte [Eliminar un dominio de Amazon SageMaker AI](gs-studio-delete-domain.md).

Realice los siguientes pasos para añadir la SageMaker imagen a un espacio compartido.
+ Consíguelo `DomainID` desde el panel de control de SageMaker AI.
+ Utilice el `DomainID` para obtener el `DefaultSpaceSettings` para el dominio.
+ Agregue el `ImageName` y la `AppImageConfig` como una `CustomImage` a la `DefaultSpaceSettings`.
+ Actualice su dominio para incluir la imagen personalizada para el espacio compartido.

**Para añadir la SageMaker imagen personalizada a tu espacio compartido**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la página **Dominios**, seleccione el dominio al que quiera asociar la imagen.

1. En la página de **Detalles del dominio**, seleccione la pestaña **Configuración del dominio**.

1. En la pestaña **Configuración del dominio**, en **Configuración general**, busque el `DomainId`. El ID tendrá el siguiente formato: `d-xxxxxxxxxxxx`.

1. Utilice el ID de dominio para obtener la descripción del dominio.

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       ...
       "DefaultSpaceSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. Guarde la sección de configuración de espacio predeterminada de la respuesta en un archivo denominado `default-space-settings.json`.

1. Inserte el `ImageName` y la `AppImageConfigName` de los pasos anteriores como imagen personalizada. Dado que no se especifica `ImageVersionNumber`, se utiliza la versión más reciente de la imagen, que es la única versión en este caso.

   ```
   {
       "DefaultSpaceSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. Utilice el ID de dominio y el archivo de configuración de espacio predeterminado para actualizar el dominio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-space-settings.json
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## Vea la imagen adjunta en SageMaker AI
<a name="studio-byoi-sdk-view"></a>

Tras crear la SageMaker imagen personalizada y adjuntarla a tu dominio, la imagen aparecerá en la pestaña **Entorno** del dominio. Solo puede ver las imágenes adjuntas de los espacios compartidos AWS CLI mediante el siguiente comando.

```
aws sagemaker describe-domain \
    --domain-id <d-xxxxxxxxxxxx>
```

# Lanzamiento de una SageMaker imagen personalizada en Amazon SageMaker Studio Classic
<a name="studio-byoi-launch"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Tras crear la SageMaker imagen personalizada y adjuntarla a su dominio o espacio compartido, la imagen personalizada y el núcleo aparecen en los selectores del cuadro de diálogo **Cambiar entorno** del lanzador clásico de Studio.

**Para iniciar y seleccionar la imagen personalizada y el kernel**

1. En Amazon SageMaker Studio Classic, abre el lanzador. Para abrir el Launcher, selecciona **Amazon SageMaker Studio Classic** en la parte superior izquierda de la interfaz de Studio Classic o usa el método abreviado `Ctrl + Shift + L` de teclado.

   Para obtener más información sobre todas las formas disponibles de abrir el lanzador, consulte [Usa el Amazon SageMaker Studio Classic Launcher](studio-launcher.md)  
![\[SageMaker Lanzador de Studio Classic.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-new-launcher.png)

1. En el lanzador, en la sección **Cuadernos y recursos informáticos**, seleccione **Cambiar entorno**.

1. En el cuadro de diálogo **Cambiar entorno**, utilice los menús desplegables para seleccionar su **Imagen** en la sección **Imagen personalizada**, y también su **Kernel** y, a continuación, seleccione **Seleccionar**.

1. En el lanzador, seleccione **Crear cuaderno** o **Abrir terminal de imágenes**. El cuaderno o el terminal se inician en la imagen personalizada y el kernel seleccionados.

Para cambiar la imagen o el kernel en un cuaderno abierto, consulte [Cambiar la imagen o el núcleo de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).

**nota**  
Si encuentras un error al lanzar la imagen, comprueba tus CloudWatch registros de Amazon. El nombre del grupo de registro es `/aws/sagemaker/studio`. El nombre del flujo de registro es `$domainID/$userProfileName/KernelGateway/$appName`.

# Limpie los recursos para imágenes personalizadas en Amazon SageMaker Studio Classic
<a name="studio-byoi-cleanup"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En las siguientes secciones se muestra cómo limpiar los recursos que creaste en las secciones anteriores desde la consola de SageMaker IA o AWS CLI. Lleve a cabo los siguientes pasos para limpiar los recursos:
+ Desasocie la imagen y las versiones de imagen de su dominio.
+ Elimine la imagen, la versión de la imagen y la configuración de imágenes de la aplicación.
+ Elimine la imagen del contenedor y el repositorio de Amazon ECR. Para obtener más información, consulte [Eliminación de un repositorio](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-delete.html).

## Limpia los recursos de la consola de SageMaker IA
<a name="studio-byoi-detach"></a>

En la siguiente sección, se muestra cómo limpiar los recursos de la consola de SageMaker IA.

Al desasociar una imagen de un dominio, se desasocian todas las versiones de la imagen. Cuando se desasocia una imagen, todos los usuarios del dominio pierden el acceso a las versiones de imagen. Un cuaderno en ejecución que tenga una sesión de kernel en una versión de imagen cuando la versión se desasocie seguirá ejecutándose. Cuando se detiene el cuaderno o se cierra el kernel, la versión de la imagen deja de estar disponible.

**Para eliminar una imagen**

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

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

1. En **Configuraciones de administrador**, elija **Imágenes**. 

1. En **Imágenes de Custom SageMaker Studio Classic adjuntas al dominio**, selecciona la imagen y, a continuación, selecciona **Separar**.

1. (Opcional) Para eliminar la imagen y todas las versiones de SageMaker AI, selecciona **Eliminar también las imágenes seleccionadas...** . Esto no elimina las imágenes de contenedor asociadas de Amazon ECR.

1. Elija **Desasociar**.

## Limpie los recursos del AWS CLI
<a name="studio-byoi-sdk-cleanup"></a>

En la siguiente sección se muestra cómo limpiar recursos desde la AWS CLI.

**Cómo limpiar los recursos**

1. Desasocie la imagen y las versiones de imagen del dominio pasando una lista de imágenes personalizadas vacía al dominio. Abra el archivo `default-user-settings.json` que creó en [Adjunta la SageMaker imagen a tu dominio actual](studio-byoi-attach.md#studio-byoi-sdk-attach-current-domain). Para desasociar la imagen y la versión de la imagen de un espacio compartido, abra el archivo `default-space-settings.json`.

1. Elimine las imágenes personalizadas y guarde el archivo.

   ```
   "DefaultUserSettings": {
     "KernelGatewayAppSettings": {
        "CustomImages": [
        ],
        ...
     },
     ...
   }
   ```

1. Utilice el ID de dominio y el archivo de configuración de usuario predeterminado para actualizar el dominio. Para actualizar su espacio compartido, use el archivo de configuración de espacio predeterminado.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-user-settings.json
   ```

   El resultado debería ser similar al siguiente.

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

1. Elimine la configuración de imágenes de la aplicación.

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name custom-image-config
   ```

1. Elimine la SageMaker imagen, lo que también eliminará todas las versiones de la imagen. Las imágenes de contenedores de ECR representadas por las versiones de la imagen no se eliminan.

   ```
   aws sagemaker delete-image \
       --image-name custom-image
   ```

# Utilice las configuraciones del ciclo de vida para personalizar Amazon SageMaker Studio Classic
<a name="studio-lcc"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic activa los scripts de shell de configuración del ciclo de vida durante eventos importantes del ciclo de vida, como iniciar un nuevo bloc de notas de Studio Classic. Puede utilizar las configuraciones del ciclo de vida para automatizar la personalización de su entorno de Studio Classic. Esta personalización incluye la instalación de paquetes personalizados, la configuración de extensiones de cuadernos, la precarga de conjuntos de datos y la configuración de repositorios de código fuente.

El uso de configuraciones del ciclo de vida le proporciona flexibilidad y control para configurar Studio Classic para satisfacer sus necesidades específicas. Por ejemplo, puede utilizar imágenes de contenedor personalizadas con scripts de configuración del ciclo de vida para modificar el entorno. En primer lugar, cree un conjunto mínimo de imágenes de contenedor base y, a continuación, instale los paquetes y las bibliotecas más utilizados en esas imágenes. Una vez que haya completado las imágenes, utilice las configuraciones del ciclo de vida para instalar paquetes adicionales para casos de uso específicos. Esto le brinda flexibilidad para modificar el entorno en todos sus equipos de ciencia de datos y machine learning en función de sus necesidades.

Los usuarios solo pueden seleccionar los scripts de configuración del ciclo de vida a los que tienen acceso. Si bien puede dar acceso a varios scripts de configuración del ciclo de vida, también puede establecer scripts de configuración del ciclo de vida predeterminados para recursos. Según el recurso para el que esté establecida la configuración del ciclo de vida predeterminada, la configuración predeterminada se ejecuta automáticamente o es la primera opción que se muestra.

Para ver ejemplos de scripts de configuración del ciclo de vida, consulte el [ GitHub repositorio de ejemplos de configuración del ciclo de vida de Studio Classic](https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples). Para ver un blog sobre la implementación de la configuración del ciclo de vida, consulte [Personalización de Amazon SageMaker Studio Classic mediante configuraciones del ciclo](https://aws.amazon.com/blogs/machine-learning/customize-amazon-sagemaker-studio-using-lifecycle-configurations/) de vida.

**nota**  
Cada script tiene un límite de **16 384 caracteres**.

**Topics**
+ [Creación y asociación de una configuración de ciclo de vida con Amazon SageMaker Studio Classic](studio-lcc-create.md)
+ [Establecer las configuraciones de ciclo de vida predeterminadas para Amazon SageMaker Studio Classic](studio-lcc-defaults.md)
+ [Depuración de configuraciones del ciclo de vida en Amazon SageMaker Studio Classic](studio-lcc-debug.md)
+ [Actualice y separe las configuraciones del ciclo de vida en Amazon SageMaker Studio Classic](studio-lcc-delete.md)

# Creación y asociación de una configuración de ciclo de vida con Amazon SageMaker Studio Classic
<a name="studio-lcc-create"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Amazon SageMaker AI proporciona aplicaciones interactivas que permiten la interfaz visual, la creación de código y la experiencia de ejecución de Studio Classic. Esta serie muestra cómo crear una configuración de ciclo de vida y asociarla a un dominio de SageMaker IA.

Los tipos de aplicación pueden ser de `JupyterServer` o de `KernelGateway`. 
+ **Aplicaciones de `JupyterServer`:** este tipo de aplicación permite el acceso a la interfaz visual de Studio Classic. Cada usuario y espacio compartido de Studio Classic tiene su propia JupyterServer aplicación.
+ **Aplicaciones de `KernelGateway`:** este tipo de aplicación permite el acceso al entorno de ejecución de código y a los kernels de sus cuadernos y terminales de Studio Classic. Para obtener más información, consulte [Puerta de enlace del kernel de Jupyter](https://jupyter-kernel-gateway.readthedocs.io/en/latest/).

Para obtener más información sobre la arquitectura de Studio Classic y las aplicaciones de Studio Classic, consulte [Uso de los cuadernos Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks.html).

**Topics**
+ [Cree una configuración de ciclo de AWS CLI vida desde Amazon SageMaker Studio Classic](studio-lcc-create-cli.md)
+ [Cree una configuración de ciclo de vida desde la consola de SageMaker IA para Amazon SageMaker Studio Classic](studio-lcc-create-console.md)

# Cree una configuración de ciclo de AWS CLI vida desde Amazon SageMaker Studio Classic
<a name="studio-lcc-create-cli"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En el siguiente tema, se muestra cómo crear una configuración de ciclo de vida mediante la AWS CLI automatización de la personalización de su entorno de Studio Classic.

## Requisitos previos
<a name="studio-lcc-create-cli-prerequisites"></a>

Antes de comenzar, complete los siguientes requisitos previos: 
+  AWS CLI Actualízala siguiendo los pasos que se indican en [Instalación de la AWS CLI versión actual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Inscríbase en un dominio de SageMaker IA siguiendo los pasos que se indican a continuación[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Paso 1: creación de una configuración del ciclo de vida
<a name="studio-lcc-create-cli-step1"></a>

En el siguiente procedimiento se muestra cómo crear un script de configuración del ciclo de vida que presente el mensaje `Hello World`.

**nota**  
Cada script puede tener hasta **16 384 caracteres**.

1. En su equipo local, cree un archivo con el nombre `my-script.sh` que contenga lo siguiente.

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Convierta su archivo `my-script.sh` al formato base64. Este requisito evita errores debidos a la codificación del espaciado y los saltos de línea.

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Cree una configuración del ciclo de vida para usar en Studio Classic. El siguiente comando crea una configuración del ciclo de vida que se ejecuta al iniciar una aplicación de `KernelGateway` asociada. 

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-studio-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type KernelGateway
   ```

   Tenga en cuenta el ARN de la configuración del ciclo de vida recién creada que se devuelve. Este ARN es necesario para asociar la configuración del ciclo de vida a la aplicación.

## Paso 2: Asociar la configuración del ciclo de vida a su dominio, perfil de usuario o espacio compartido
<a name="studio-lcc-create-cli-step2"></a>

Para asociar la configuración del ciclo de vida, debe actualizar la `UserSettings` de su dominio o perfil de usuario, o la `SpaceSettings` de un espacio compartido. Todos los usuarios heredan los scripts de configuración del ciclo de vida que estén asociados a nivel de dominio. Sin embargo, los scripts asociados en el nivel de perfil de usuario se refieren a un usuario específico, mientras que los scripts asociados en el nivel de espacio compartido se limitan al espacio compartido. 

En el siguiente ejemplo se muestra cómo crear un perfil de usuario con la configuración del ciclo de vida asociada. También puede crear un nuevo dominio o espacio con una configuración del ciclo de vida asociada mediante los comandos [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html) y [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html), respectivamente.

Agregue el ARN de configuración del ciclo de vida del paso anterior a la configuración del tipo de aplicación correspondiente. Por ejemplo, colóquelo en la `JupyterServerAppSettings` del usuario. Puede agregar varias configuraciones de ciclo de vida al mismo tiempo pasando una lista de configuraciones de ciclo de vida. Cuando un usuario lanza una JupyterServer aplicación con el AWS CLI, puede pasar una configuración de ciclo de vida para utilizarla en lugar de la configuración predeterminada. La configuración del ciclo de vida que pase el usuario debe pertenecer a la lista de configuraciones del ciclo de vida incluida en la `JupyterServerAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterServerAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

En el siguiente ejemplo se muestra cómo actualizar un espacio compartido existente para asociar la configuración del ciclo de vida. También puede actualizar un dominio o perfil de usuario existente con una configuración de ciclo de vida adjunta mediante el comando [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html). [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html) Al actualizar la lista de configuraciones del ciclo de vida asociadas, debe incluir todas las configuraciones del ciclo de vida como parte de la lista. Si una configuración del ciclo de vida no forma parte de esta lista, no se asociará a la aplicación.

```
aws sagemaker update-space --domain-id domain-id \
--space-name space-name \
--region region \
--space-settings '{
"JupyterServerAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

Para obtener información sobre cómo establecer una configuración del ciclo de vida predeterminada para un recurso, consulte [Establecer las configuraciones de ciclo de vida predeterminadas para Amazon SageMaker Studio Classic](studio-lcc-defaults.md).

## Paso 3: Lanzar la aplicación con la configuración del ciclo de vida
<a name="studio-lcc-create-cli-step3"></a>

Tras asociar una configuración del ciclo de vida a un dominio, perfil de usuario o espacio, el usuario puede seleccionarla al iniciar una aplicación con la AWS CLI. En esta sección, se describe cómo iniciar una aplicación con una configuración del ciclo de vida asociada. Para obtener información sobre cómo cambiar la configuración del ciclo de vida predeterminada después de lanzar una JupyterServer aplicación, consulte. [Establecer las configuraciones de ciclo de vida predeterminadas para Amazon SageMaker Studio Classic](studio-lcc-defaults.md)

Inicie el tipo de aplicación deseado mediante el `create-app` comando y especifique el ARN de la configuración del ciclo de vida en el `resource-spec` argumento. 
+ En el siguiente ejemplo se muestra cómo crear una aplicación de `JupyterServer` con una configuración del ciclo de vida asociada. Al crear el `JupyterServer`, el `app-name` debe ser `default`. El ARN de configuración del ciclo de vida que se pasa como parte del `resource-spec` parámetro debe formar parte de la lista de configuraciones del ciclo de vida ARNs especificada `UserSettings` para su dominio o perfil de usuario, o `SpaceSettings` para un espacio compartido.

  ```
  aws sagemaker create-app --domain-id domain-id \
  --region region \
  --user-profile-name user-profile-name \
  --app-type JupyterServer \
  --resource-spec LifecycleConfigArn=lifecycle-configuration-arn \
  --app-name default
  ```
+ En el siguiente ejemplo se muestra cómo crear una aplicación de `KernelGateway` con una configuración del ciclo de vida asociada.

  ```
  aws sagemaker create-app --domain-id domain-id \
  --region region \
  --user-profile-name user-profile-name \
  --app-type KernelGateway \
  --resource-spec LifecycleConfigArn=lifecycle-configuration-arn,SageMakerImageArn=sagemaker-image-arn,InstanceType=instance-type \
  --app-name app-name
  ```

# Cree una configuración de ciclo de vida desde la consola de SageMaker IA para Amazon SageMaker Studio Classic
<a name="studio-lcc-create-console"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En el siguiente tema se muestra cómo crear una configuración de ciclo de vida desde la consola Amazon SageMaker AI para automatizar la personalización de su entorno de Studio Classic.

## Requisitos previos
<a name="studio-lcc-create-console-prerequisites"></a>

Antes de comenzar este tutorial, complete el siguiente requisito previo:
+ A bordo de Amazon SageMaker Studio Classic. Para obtener más información, consulte [Incorporar Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html).

## Paso 2: Crear una nueva configuración del ciclo de vida
<a name="studio-lcc-create-console-step1"></a>

Puede crear una configuración de ciclo de vida introduciendo un script desde la consola de Amazon SageMaker AI.

**nota**  
Cada script puede tener hasta **16 384 caracteres**.

En el siguiente procedimiento se muestra cómo crear un script de configuración del ciclo de vida que presente el mensaje `Hello World`.

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

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

1. En **Configuraciones de administración**, seleccione **Configuraciones de ciclo de vida**. 

1. Seleccione la pestaña **Studio**.

1. Seleccione **Crear configuración**.

1. En **Seleccionar tipo de configuración**, seleccione el tipo de aplicación al que se debe asociar la configuración del ciclo de vida. Para obtener más información sobre cómo seleccionar a qué aplicación asociar la configuración del ciclo de vida, consulte [Establecer las configuraciones de ciclo de vida predeterminadas para Amazon SageMaker Studio Classic](studio-lcc-defaults.md).

1. Elija **Siguiente**.

1. En la sección denominada **Ajustes de configuración**, escriba un nombre para la configuración del ciclo de vida.

1. En la sección **Scripts**, introduzca el siguiente contenido.

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. (Opcional) Cree una etiqueta para la configuración de su ciclo de vida.

1. Seleccione **Enviar**.

## Paso 2: Asociar la configuración del ciclo de vida a su dominio o perfil de usuario
<a name="studio-lcc-create-console-step2"></a>

Todos los usuarios heredan los scripts de configuración del ciclo de vida asociados en el nivel de dominio. Sin embargo, los scripts que están asociados en el nivel de perfil de usuario están dirigidos a un usuario específico. 

Puede adjuntar múltiples configuraciones de ciclo de vida a un dominio o perfil de usuario tanto para las aplicaciones como para JupyterServer las KernelGateway aplicaciones.

**nota**  
Para asociar una configuración del ciclo de vida a un espacio compartido, debe usar la AWS CLI. Para obtener más información, consulte [Cree una configuración de ciclo de AWS CLI vida desde Amazon SageMaker Studio Classic](studio-lcc-create-cli.md).

En las secciones siguientes se muestra cómo asociar una configuración del ciclo de vida a su dominio o perfil de usuario.

### Asociación a un dominio
<a name="studio-lcc-create-console-step2-domain"></a>

A continuación, se muestra cómo adjuntar una configuración de ciclo de vida a tu dominio existente desde la consola de SageMaker IA.

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de dominios, seleccione el dominio al que quiera asociar la configuración de ciclo de vida.

1. En **Detalles del dominio**, elija la pestaña **Entorno**.

1. En **Configuraciones de ciclo de vida para aplicaciones de Studio personales**, elija **Asociar**.

1. En **Fuente**, seleccione **Configuración existente**.

1. En **Configuraciones del ciclo de vida de Studio**, seleccione la configuración del ciclo de vida que ha creado en el paso anterior.

1. Seleccione **Asociar al dominio**.

### Asociación a su perfil de usuario
<a name="studio-lcc-create-console-step2-userprofile"></a>

A continuación, se muestra cómo asociar una configuración del ciclo de vida a su perfil de usuario existente.

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de dominios, seleccione el dominio que contenga el perfil de usuario al que desee asociar la configuración de ciclo de vida.

1. En **Perfiles de usuario**, seleccione el perfil de usuario.

1. En la página **Detalles del usuario**, elija **Editar**.

1. En el menú de navegación izquierdo, seleccione **Configuración de Studio**.

1. En **Configuraciones del ciclo de vida asociadas al usuario**, seleccione **Asociar**.

1. En **Fuente**, seleccione **Configuración existente**.

1. En **Configuraciones del ciclo de vida de Studio**, seleccione la configuración del ciclo de vida que ha creado en el paso anterior.

1. Seleccione **Adjuntar a perfil de usuario**.

## Paso 3: Iniciar una aplicación con la configuración del ciclo de vida
<a name="studio-lcc-create-console-step3"></a>

Después de asociar una configuración del ciclo de vida a un dominio o perfil de usuario, puede lanzar una aplicación con esa configuración del ciclo de vida asociada. La elección de la configuración del ciclo de vida con la que se va a iniciar depende del tipo de aplicación.
+ **JupyterServer**: Al lanzar una JupyterServer aplicación desde la consola, la SageMaker IA siempre utiliza la configuración de ciclo de vida predeterminada. No puede utilizar una configuración del ciclo de vida diferente al iniciarla desde la consola. Para obtener información sobre cómo cambiar la configuración del ciclo de vida predeterminada después de lanzar una JupyterServer aplicación, consulte[Establecer las configuraciones de ciclo de vida predeterminadas para Amazon SageMaker Studio Classic](studio-lcc-defaults.md).

  Para seleccionar una configuración del ciclo de vida asociada diferente, debe iniciarla con la AWS CLI. Para obtener más información sobre el lanzamiento de una JupyterServer aplicación con una configuración de ciclo de vida adjunta desde AWS CLI, consulte[Cree una configuración de ciclo de AWS CLI vida desde Amazon SageMaker Studio Classic](studio-lcc-create-cli.md).
+ **KernelGateway**: Puede seleccionar cualquiera de las configuraciones de ciclo de vida adjuntas al lanzar una KernelGateway aplicación con Studio Classic Launcher.

El siguiente procedimiento describe cómo lanzar una KernelGateway aplicación con una configuración de ciclo de vida adjunta desde la consola de SageMaker IA.

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

1. Inicialice Studio Classic. Para obtener más información, consulte [Inicie Amazon SageMaker Studio Classic](studio-launch.md).

1. En la interfaz de usuario de Studio Classic, abra el lanzador de Studio Classic. Para obtener más información, consulte [Usa el Amazon SageMaker Studio Classic Launcher](studio-launcher.md). 

1. En el lanzador de Studio Classic, diríjase a la sección **Cuadernos y recursos de computación**. 

1. Haga clic en el botón **Cambiar entorno.**

1. En el cuadro de diálogo **Cambiar entorno**, utilice los menús desplegables para seleccionar la **Imagen**, el **Kernel**, el **Tipo de instancia** y el **Script de inicio**. Si no hay una configuración del ciclo de vida predeterminada, el valor predeterminado del **Script de inicio** es. `No script` De lo contrario, el valor del **Script de inicio** es la configuración del ciclo de vida predeterminada. Después de seleccionar una configuración del ciclo de vida, puede ver el script completo.

1. Haga clic en **Seleccionar**.

1. De vuelta al lanzador, haga clic en **Crear cuaderno** para iniciar un nuevo kernel de cuaderno con la imagen y la configuración del ciclo de vida que haya seleccionado.

## Paso 4: Ver los registros de una configuración del ciclo de vida
<a name="studio-lcc-create-console-step4"></a>

Puede ver los registros de la configuración del ciclo de vida después de que se haya asociado a un dominio o a un perfil de usuario. 

1. En primer lugar, proporciona acceso CloudWatch a tu función AWS Identity and Access Management (de IAM). Agregue permisos de lectura para los siguientes grupos de registros y flujos de registros.
   + **Grupo de registros:**`/aws/sagemaker/studio`
   + **Flujo de registros:**`domain/user-profile/app-type/app-name/LifecycleConfigOnStart`

    Para obtener información sobre cómo añadir permisos, consulte [Habilitar el registro desde determinados AWS servicios](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html).

1. Desde Studio Classic, navegue hasta el icono de **Terminales y kernels en ejecución** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png)) para supervisar la configuración de su ciclo de vida.

1. Seleccione una aplicación de la lista de aplicaciones en ejecución. Las aplicaciones con configuraciones del ciclo de vida asociadas tienen un icono de indicador de asociación ![\[Code brackets symbol representing programming or markup languages.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/studio-lcc-indicator-icon.png).

1. Seleccione el icono del indicador de su aplicación. Se abre un nuevo panel que enumera las configuraciones del ciclo de vida.

1. En el nuevo panel, seleccione `View logs`. Se abre una nueva pestaña que muestra los registros.

# Establecer las configuraciones de ciclo de vida predeterminadas para Amazon SageMaker Studio Classic
<a name="studio-lcc-defaults"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Aunque puedes adjuntar varios scripts de configuración del ciclo de vida a un único recurso, solo puedes establecer una configuración de ciclo de vida predeterminada para cada JupyterServer KernelGateway aplicación. El comportamiento de la configuración del ciclo de vida predeterminada depende de si está configurada para JupyterServer o para KernelGateway aplicaciones. 
+ **JupyterServer aplicaciones:** si se establece como el script de configuración del ciclo de vida predeterminado de JupyterServer las aplicaciones, el script de configuración del ciclo de vida se ejecuta automáticamente cuando el usuario inicia sesión en Studio Classic por primera vez o reinicia Studio Classic. Usa esta configuración de ciclo de vida predeterminada para automatizar acciones de configuración únicas para el entorno de desarrolladores de Studio Classic, como la instalación de extensiones de bloc de notas o la configuración de un GitHub repositorio. Para ver un ejemplo de ello, consulte [Personalización de Amazon SageMaker Studio mediante configuraciones de ciclo](https://aws.amazon.com/blogs/machine-learning/customize-amazon-sagemaker-studio-using-lifecycle-configurations/) de vida.
+ **KernelGateway aplicaciones:** si se establece como el script de configuración del ciclo de vida predeterminado de KernelGateway las aplicaciones, la configuración del ciclo de vida se selecciona de forma predeterminada en el lanzador de Studio Classic. Los usuarios pueden iniciar un cuaderno o terminal con el script predeterminado seleccionado o seleccionar otro de la lista de configuraciones del ciclo de vida.

SageMaker La IA permite establecer una configuración de ciclo de vida predeterminada para los siguientes recursos:
+ Dominios
+ Perfiles de usuario
+ Espacios compartidos

Si bien los dominios y los perfiles de usuario permiten establecer una configuración de ciclo de vida predeterminada tanto desde la consola Amazon SageMaker AI como AWS Command Line Interface, los espacios compartidos solo permiten establecer una configuración de ciclo de vida predeterminada desde AWS CLI.

Puede establecer una configuración del ciclo de vida como predeterminada al crear un nuevo recurso o al actualizar un recurso existente. En los siguientes temas se muestra cómo establecer una configuración de ciclo de vida predeterminada mediante la consola SageMaker AI y AWS CLI.

## Herencia de la configuración del ciclo de vida predeterminada
<a name="studio-lcc-defaults-inheritance"></a>

Todos los usuarios y los espacios compartidos heredan las configuraciones del ciclo de vida predeterminadas establecidas en el nivel de *dominio*. Las configuraciones del ciclo de vida predeterminadas establecidas en el nivel de *usuario* y *espacio compartido* se aplican únicamente a ese usuario o espacio compartido. Los valores predeterminados de nivel de usuario y espacio invalidan los valores predeterminados configurados en el nivel de dominio.

Un conjunto de configuraciones de KernelGateway ciclo de vida predeterminado para un dominio se aplica a todas KernelGateway las aplicaciones lanzadas en el dominio. A menos que el usuario seleccione una configuración del ciclo de vida diferente en la lista que se presenta en el lanzador de Studio Classic, se utilizará la configuración del ciclo de vida predeterminada. El script predeterminado también se ejecuta si el usuario selecciona `No Script`. Para obtener más información sobre cómo seleccionar un script, consulte [Paso 3: Iniciar una aplicación con la configuración del ciclo de vida](studio-lcc-create-console.md#studio-lcc-create-console-step3).

**Topics**
+ [Herencia de la configuración del ciclo de vida predeterminada](#studio-lcc-defaults-inheritance)
+ [Defina los valores predeterminados desde Amazon SageMaker Studio Classic AWS CLI](studio-lcc-defaults-cli.md)
+ [Establezca los valores predeterminados desde la consola de SageMaker IA para Amazon SageMaker Studio Classic](studio-lcc-defaults-console.md)

# Defina los valores predeterminados desde Amazon SageMaker Studio Classic AWS CLI
<a name="studio-lcc-defaults-cli"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Puedes configurar los scripts de configuración del ciclo de vida predeterminados en AWS CLI los siguientes recursos:
+ Dominios
+ Perfiles de usuario
+ Espacios compartidos

En las siguientes secciones se describe cómo configurar scripts de configuración del ciclo de vida predeterminados desde la AWS CLI.

**Topics**
+ [Requisitos previos](#studio-lcc-defaults-cli-prereq)
+ [Establecimiento de una configuración del ciclo de vida predeterminada al crear un nuevo recurso](#studio-lcc-defaults-cli-new)
+ [Establecimiento de una configuración del ciclo de vida predeterminada para un recurso existente](#studio-lcc-defaults-cli-existing)

## Requisitos previos
<a name="studio-lcc-defaults-cli-prereq"></a>

Antes de comenzar, complete los siguientes requisitos previos:
+  AWS CLI Actualícelo siguiendo los pasos que se indican en [Instalación de la AWS CLI versión actual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Inscríbase en un dominio de SageMaker IA siguiendo los pasos que se indican a continuación[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).
+ Cree una configuración del ciclo de vida siguiendo los pasos que se indican en [Creación y asociación de una configuración de ciclo de vida con Amazon SageMaker Studio Classic](studio-lcc-create.md).

## Establecimiento de una configuración del ciclo de vida predeterminada al crear un nuevo recurso
<a name="studio-lcc-defaults-cli-new"></a>

Para establecer una configuración de ciclo de vida predeterminada al crear un nuevo dominio, perfil de usuario o espacio, transfiera el ARN de la configuración de ciclo de vida creada anteriormente como parte de uno de los siguientes comandos: AWS CLI 
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/opensearch/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

Debe pasar el ARN de configuración del ciclo de vida para los siguientes valores en la configuración JupyterServer predeterminada KernelGateway o predeterminada:
+ `DefaultResourceSpec`:`LifecycleConfigArn` - Especifica la configuración del ciclo de vida predeterminada para el tipo de aplicación.
+ `LifecycleConfigArns` - Esta es la lista de todas las configuraciones del ciclo de vida asociadas al tipo de aplicación. La configuración del ciclo de vida predeterminada también debe formar parte de esta lista.

Por ejemplo, la siguiente llamada a la API crea un nuevo perfil de usuario con una configuración del ciclo de vida predeterminada.

```
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"KernelGatewayAppSettings": {
    "DefaultResourceSpec": { 
            "InstanceType": "ml.t3.medium",
            "LifecycleConfigArn": "lifecycle-configuration-arn"
         },
    "LifecycleConfigArns": [lifecycle-configuration-arn-list]
  }
}'
```

## Establecimiento de una configuración del ciclo de vida predeterminada para un recurso existente
<a name="studio-lcc-defaults-cli-existing"></a>

Para establecer o actualizar la configuración del ciclo de vida predeterminada de un recurso existente, transfiera el ARN de la configuración de ciclo de vida creada anteriormente como parte de uno de los siguientes comandos: AWS CLI 
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

Debe pasar el ARN de configuración del ciclo de vida para los siguientes valores en la configuración JupyterServer predeterminada KernelGateway o predeterminada:
+ `DefaultResourceSpec`:`LifecycleConfigArn` - Especifica la configuración del ciclo de vida predeterminada para el tipo de aplicación.
+ `LifecycleConfigArns` - Esta es la lista de todas las configuraciones del ciclo de vida asociadas al tipo de aplicación. La configuración del ciclo de vida predeterminada también debe formar parte de esta lista.

Por ejemplo, la siguiente llamada a la API actualiza un perfil de usuario con una configuración del ciclo de vida predeterminada.

```
aws sagemaker update-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"KernelGatewayAppSettings": {
    "DefaultResourceSpec": {
            "InstanceType": "ml.t3.medium",
            "LifecycleConfigArn": "lifecycle-configuration-arn"
         },
    "LifecycleConfigArns": [lifecycle-configuration-arn-list]
  }
}'
```

La siguiente llamada a la API actualiza un dominio para establecer una nueva configuración del ciclo de vida predeterminada.

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"JupyterServerAppSettings": {
    "DefaultResourceSpec": {
            "InstanceType": "system",
            "LifecycleConfigArn": "lifecycle-configuration-arn"
         },
    "LifecycleConfigArns": [lifecycle-configuration-arn-list]
  }
}'
```

# Establezca los valores predeterminados desde la consola de SageMaker IA para Amazon SageMaker Studio Classic
<a name="studio-lcc-defaults-console"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Puedes configurar los scripts de configuración del ciclo de vida predeterminados desde la consola de SageMaker IA para los siguientes recursos.
+ Dominios
+ Perfiles de usuario

No puedes configurar los scripts de configuración del ciclo de vida predeterminados para los espacios compartidos desde la consola de SageMaker IA. Para obtener información sobre cómo configurar los valores predeterminados de los espacios compartidos, consulte [Defina los valores predeterminados desde Amazon SageMaker Studio Classic AWS CLI](studio-lcc-defaults-cli.md).

En las siguientes secciones, se describe cómo configurar los scripts de configuración del ciclo de vida predeterminados desde la consola de SageMaker IA.

**Topics**
+ [Requisitos previos](#studio-lcc-defaults-cli-prerequisites)
+ [Establecimiento de una configuración del ciclo de vida predeterminada para un dominio](#studio-lcc-defaults-cli-domain)
+ [Establecimiento de una configuración del ciclo de vida predeterminada para un perfil de usuario](#studio-lcc-defaults-cli-user-profile)

## Requisitos previos
<a name="studio-lcc-defaults-cli-prerequisites"></a>

Antes de comenzar, complete los siguientes requisitos previos:
+ Inscríbase en el dominio de la SageMaker IA siguiendo los pasos que se indican en[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).
+ Cree una configuración del ciclo de vida siguiendo los pasos que se indican en [Creación y asociación de una configuración de ciclo de vida con Amazon SageMaker Studio Classic](studio-lcc-create.md).

## Establecimiento de una configuración del ciclo de vida predeterminada para un dominio
<a name="studio-lcc-defaults-cli-domain"></a>

El siguiente procedimiento muestra cómo establecer una configuración de ciclo de vida predeterminada para un dominio desde la consola de SageMaker IA.

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

1. En la lista de dominios, seleccione el nombre del dominio al que quiera asociar la configuración del ciclo de vida.

1. En la página **Detalles del dominio**, seleccione la pestaña **Entorno**.

1. En **Configuraciones del ciclo de vida para aplicaciones de Studio personales**, seleccione la configuración del ciclo de vida que quiera establecer como predeterminada para el dominio. Puede establecer distintos valores predeterminados para JupyterServer y KernelGateway aplicaciones.

1. Elija **Establecer como predeterminado**. Esto abre una ventana emergente en la que se muestran los valores predeterminados actuales para JupyterServer y KernelGateway las aplicaciones.

1. Seleccione **Establecer como predeterminado** para establecer la configuración del ciclo de vida como predeterminada para el tipo de aplicación respectivo.

## Establecimiento de una configuración del ciclo de vida predeterminada para un perfil de usuario
<a name="studio-lcc-defaults-cli-user-profile"></a>

El siguiente procedimiento muestra cómo establecer una configuración de ciclo de vida predeterminada para un perfil de usuario desde la consola de SageMaker IA.

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

1. En la lista de dominios, seleccione el nombre del dominio que contenga el perfil de usuario para el que desee establecer la configuración del ciclo de vida predeterminada.

1. En la página **Detalles del dominio**, elija la pestaña **Perfiles de usuario**.

1. Seleccione el nombre del perfil de usuario para el que desee establecer la configuración del ciclo de vida predeterminada. Esto abre una página de **Detalles del usuario**.

1. En la página **Detalles del usuario**, seleccione **Editar**. Se abrirá la página de **Editar perfil de usuario**.

1. En la página **Editar perfil de usuario**, seleccione la **Paso 2 Configuración de Studio**.

1. En **Configuraciones de ciclo de vida asociadas al usuario**, seleccione la configuración del ciclo de vida que desee establecer como predeterminada para el perfil de usuario. Puede establecer distintos valores predeterminados para JupyterServer y KernelGateway aplicaciones.

1. Elija **Establecer como predeterminado**. Esto abre una ventana emergente en la que se muestran los valores predeterminados actuales para JupyterServer y KernelGateway las aplicaciones.

1. Seleccione **Establecer como predeterminado** para establecer la configuración del ciclo de vida como predeterminada para el tipo de aplicación respectivo.

# Depuración de configuraciones del ciclo de vida en Amazon SageMaker Studio Classic
<a name="studio-lcc-debug"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En los siguientes temas se muestra cómo obtener información y depurar las configuraciones del ciclo de vida.

**Topics**
+ [Verifica el proceso de configuración del ciclo de vida desde CloudWatch los registros](#studio-lcc-debug-logs)
+ [JupyterServer error de la aplicación](#studio-lcc-debug-jupyterserver)
+ [KernelGateway fallo de la aplicación](#studio-lcc-debug-kernel)
+ [Tiempo de espera de configuración del ciclo de vida](#studio-lcc-debug-timeout)

## Verifica el proceso de configuración del ciclo de vida desde CloudWatch los registros
<a name="studio-lcc-debug-logs"></a>

Las configuraciones del ciclo de vida solo registran `STDOUT` y `STDERR`.

`STDOUT` es el resultado predeterminado para los scripts bash. Se puede escribir en `STDERR` añadiendo `>&2` al final de un comando bash. Por ejemplo, `echo 'hello'>&2`. 

Los registros de las configuraciones de tu ciclo de vida se publican en Amazon CloudWatch. Cuenta de AWS Estos registros se encuentran en el flujo de `/aws/sagemaker/studio` registros de la CloudWatch consola.

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Seleccione **Registros** en el lado izquierdo. En el menú desplegable, seleccione **Grupos de registros**.

1. En la página **Grupos de registros**, busque `aws/sagemaker/studio`. 

1. Seleccione el grupo de registro.

1. En la página de **Detalles del grupo de registro**, seleccione la pestaña **Flujos de registro**.

1. Para buscar los registros de una aplicación específica, busque en los flujos de registro utilizando el siguiente formato:

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   Por ejemplo, para buscar los registros de configuración del ciclo de vida del dominio `d-m85lcu8vbqmz`, nombre del espacio `i-sonic-js` y tipo de aplicación de `JupyterLab`, utilice la siguiente cadena de búsqueda:

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

## JupyterServer error de la aplicación
<a name="studio-lcc-debug-jupyterserver"></a>

Si JupyterServer la aplicación se bloquea debido a un problema con la configuración del ciclo de vida adjunta, Studio Classic mostrará el siguiente mensaje de error en la pantalla de inicio de Studio Classic. 

```
Failed to create SageMaker Studio due to start-up script failure
```

Selecciona el `View script logs` enlace para ver los CloudWatch registros de tu JupyterServer aplicación.

En el caso de que se especifique la configuración del ciclo de vida defectuosa en el `DefaultResourceSpec` de su dominio, perfil de usuario o espacio compartido, Studio Classic sigue utilizando la configuración del ciclo de vida incluso después de reiniciar Studio Classic. 

Para resolver este error, siga los pasos de [Establecer las configuraciones de ciclo de vida predeterminadas para Amazon SageMaker Studio Classic](studio-lcc-defaults.md) para quitar el script de configuración del ciclo de vida de la `DefaultResourceSpec` o seleccione otro script como predeterminado. A continuación, inicia una nueva JupyterServer aplicación.

## KernelGateway fallo de la aplicación
<a name="studio-lcc-debug-kernel"></a>

Si KernelGateway la aplicación se bloquea debido a un problema con la configuración del ciclo de vida adjunta, Studio Classic mostrará el mensaje de error en el bloc de notas de Studio Classic. 

Elige `View script logs` ver los CloudWatch registros de tu KernelGateway aplicación.

En este caso, la configuración del ciclo de vida se especifica en el lanzador de Studio Classic al inicializar un nuevo cuaderno de Studio Classic. 

Para resolver este error, utilice el lanzador de Studio Classic para seleccionar una configuración del ciclo de vida diferente o seleccione `No script`.

**nota**  
La configuración de KernelGateway ciclo de vida predeterminada especificada en `DefaultResourceSpec` se aplica a todas KernelGateway las imágenes del dominio, el perfil de usuario o el espacio compartido, a menos que el usuario seleccione un script diferente de la lista que se presenta en el lanzador de Studio Classic. El script predeterminado también se ejecuta si el usuario selecciona `No Script`. Para obtener más información sobre cómo seleccionar un script, consulte [Paso 3: Iniciar una aplicación con la configuración del ciclo de vida](studio-lcc-create-console.md#studio-lcc-create-console-step3).

## Tiempo de espera de configuración del ciclo de vida
<a name="studio-lcc-debug-timeout"></a>

Existe una limitación de tiempo de espera de configuración del ciclo de vida de 5 minutos. Si un script de configuración del ciclo de vida tarda más de 5 minutos en ejecutarse, Studio Classic emite un error.

Para resolver este error, asegúrese de que el script de configuración del ciclo de vida se complete en menos de 5 minutos. 

Para ayudar a reducir el tiempo de ejecución de los scripts, pruebe lo siguiente:
+ Reduzca el número de pasos necesarios. Por ejemplo, limite los entornos de conda donde se instalarán paquetes de gran tamaño.
+ Ejecute tareas en procesos paralelos.
+ Utilice el comando `nohup` del script para asegurarse de que las señales de bloqueo se omitan y no detengan la ejecución del script.

# Actualice y separe las configuraciones del ciclo de vida en Amazon SageMaker Studio Classic
<a name="studio-lcc-delete"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Un script de configuración del ciclo de vida no se puede cambiar después de crearlo. Para actualizar el script, debe crear un nuevo script de configuración del ciclo de vida y asociarlo al dominio, perfil de usuario o espacio compartido correspondiente. Para obtener más información acerca de la creación y asociación de un configuración de ciclo de vida, consulte [Creación y asociación de una configuración de ciclo de vida con Amazon SageMaker Studio Classic](studio-lcc-create.md).

En el siguiente tema, se muestra cómo separar una configuración de ciclo de vida mediante AWS CLI la consola SageMaker AI.

**Topics**
+ [Requisitos previos](#studio-lcc-delete-pre)
+ [Desconéctelo mediante el AWS CLI](#studio-lcc-delete-cli)

## Requisitos previos
<a name="studio-lcc-delete-pre"></a>

Antes de desasociar una configuración del ciclo de vida, debe completar el siguiente requisito previo.
+ Para desasociar correctamente una configuración del ciclo de vida, ninguna aplicación en ejecución puede utilizar la configuración del ciclo de vida. Primero debe cerrar las aplicaciones en ejecución, tal y como se muestra en [Cierre y actualice Amazon SageMaker Studio Classic y sus aplicaciones](studio-tasks-update.md).

## Desconéctelo mediante el AWS CLI
<a name="studio-lcc-delete-cli"></a>

Para separar una configuración de ciclo de vida mediante el AWS CLI, elimine la configuración de ciclo de vida deseada de la lista de configuraciones de ciclo de vida adjunta al recurso y pase la lista como parte del comando correspondiente:
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

Por ejemplo, el siguiente comando elimina todas las configuraciones del ciclo de vida KernelGateways asociadas al dominio.

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"KernelGatewayAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# Adjunta los repositorios de Git sugeridos a Amazon SageMaker Studio Classic
<a name="studio-git-attach"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic ofrece una extensión de Git para que pueda introducir la URL de un repositorio de Git (repositorio), clonarlo en su entorno, insertar cambios y ver el historial de confirmaciones. Además de esta extensión de Git, también puedes adjuntar un repositorio de Git sugerido URLs a nivel de dominio o perfil de usuario de Amazon SageMaker AI. A continuación, puede seleccionar la URL del repositorio de la lista de sugerencias y clonarla en su entorno mediante la extensión de Git en Studio Classic. 

En los siguientes temas se muestra cómo adjuntar un repositorio de Git URLs a un dominio o perfil de usuario desde la AWS CLI consola SageMaker AI. También aprenderás a separar estos repositorios. URLs

**Topics**
+ [Adjunte un repositorio de AWS CLI Git desde Amazon SageMaker Studio Classic](studio-git-attach-cli.md)
+ [Adjunte un repositorio de Git desde la consola de SageMaker IA para Amazon SageMaker Studio Classic](studio-git-attach-console.md)
+ [Separar Git Repos de Amazon Studio Classic SageMaker](studio-git-detach.md)

# Adjunte un repositorio de AWS CLI Git desde Amazon SageMaker Studio Classic
<a name="studio-git-attach-cli"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En el siguiente tema se muestra cómo adjuntar la URL de un repositorio de Git mediante el AWS CLI, de modo que Amazon SageMaker Studio Classic sugiera automáticamente su clonación. Después de asociar la URL del repositorio de Git, puede clonarla siguiendo los pasos que se indican en [Clonar un repositorio de Git en Amazon SageMaker Studio Classic](studio-tasks-git.md).

## Requisitos previos
<a name="studio-git-attach-cli-prerequisites"></a>

Antes de comenzar, complete los siguientes requisitos previos: 
+  AWS CLI Actualícela siguiendo los pasos que se indican en [Instalación de la versión AWS CLI actual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Incorporado al dominio Amazon SageMaker AI. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Asociación del repositorio de Git a un dominio o perfil de usuario
<a name="studio-git-attach-cli-attach"></a>

Todos los usuarios heredan los repositorios de Git URLs asociados a nivel de dominio. Sin embargo, los repositorios de Git URLs que están asociados a nivel de perfil de usuario están dirigidos a un usuario específico. Puedes adjuntar varios repositorios de Git URLs a un dominio o perfil de usuario pasando una lista de repositorios URLs.

En las siguientes secciones se muestra cómo asociar una URL de repositorio de Git a su dominio y perfil de usuario.

### Asociación a un dominio
<a name="studio-git-attach-cli-attach-domain"></a>

El siguiente comando asocia una URL de repositorio de Git a un dominio existente.

```
aws sagemaker update-domain --region region --domain-id domain-id \
    --default-user-settings JupyterServerAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

### Asociación a un perfil de usuario
<a name="studio-git-attach-cli-attach-userprofile"></a>

A continuación se muestra cómo asociar una URL de repositorio de Git a un perfil de usuario existente.

```
aws sagemaker update-user-profile --domain-id domain-id --user-profile-name user-name\
    --user-settings JupyterServerAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

# Adjunte un repositorio de Git desde la consola de SageMaker IA para Amazon SageMaker Studio Classic
<a name="studio-git-attach-console"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En el siguiente tema se muestra cómo asociar una URL de repositorio de Git desde la consola Amazon SageMaker AI para clonarla en su entorno de Studio Classic. Después de asociar la URL del repositorio de Git, puede clonarla siguiendo los pasos que se indican en [Clonar un repositorio de Git en Amazon SageMaker Studio Classic](studio-tasks-git.md).

## Requisitos previos
<a name="studio-git-attach-console-prerequisites"></a>

Antes de empezar este tutorial, debes incorporarte al dominio Amazon SageMaker AI. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Asociación del repositorio de Git a un dominio o perfil de usuario
<a name="studio-git-attach-console-attach"></a>

Todos los usuarios heredan los repositorios de Git URLs asociados a nivel de dominio. Sin embargo, las URL de repositorios de Git que están asociadas al nivel de perfil de usuario están dirigidas a un usuario específico. 

En las siguientes secciones se muestra cómo asociar una URL de repositorio de Git a un dominio y perfil de usuario.

### Asociación a un dominio
<a name="studio-git-attach-console-attach-domain"></a>

**Asociación de una URL de repositorio de Git a un dominio existente**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio al que quiera asociar el repositorio de Git.

1. En la página **Detalles del dominio**, seleccione la pestaña **Entorno**.

1. En la pestaña **Repositorios de código sugeridos para el dominio**, seleccione **Asociar**.

1. En **Fuente**, introduzca la URL del repositorio de Git.

1. Seleccione **Asociar al dominio**.

### Asociación a un perfil de usuario
<a name="studio-git-attach-console-attach-userprofile"></a>

A continuación se muestra cómo asociar una URL de repositorio de Git a un perfil de usuario existente.

**Para asociar una URL de repositorio de Git a un perfil de usuario**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio que incluya el perfil de usuario al que desee asociar el repositorio de Git.

1. En la página **Detalles del dominio**, elija la pestaña **Perfiles de usuario**.

1. Seleccione el perfil de usuario al que quiera asociar la URL del repositorio de Git.

1. En la página **Detalles del usuario**, elija **Editar**.

1. En la página **Configuración de Studio**, seleccione **Asociar** en la sección **Repositorios de código sugeridos para el usuario**.

1. En **Fuente**, introduzca la URL del repositorio de Git.

1. Seleccione **Asociar al usuario**.

# Separar Git Repos de Amazon Studio Classic SageMaker
<a name="studio-git-detach"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Esta guía muestra cómo separar el repositorio URLs de Git de un dominio o perfil de usuario de Amazon SageMaker AI mediante la consola AWS CLI o Amazon SageMaker AI.

**Topics**
+ [Separe un repositorio de Git mediante el AWS CLI](#studio-git-detach-cli)
+ [Separe el repositorio de Git mediante la consola de IA SageMaker](#studio-git-detach-console)

## Separe un repositorio de Git mediante el AWS CLI
<a name="studio-git-detach-cli"></a>

Para separar todos los repositorios de Git URLs de un dominio o perfil de usuario, debes pasar una lista vacía de repositorios de código. Esta lista se pasa como parte del parámetro `JupyterServerAppSettings` de un comando `update-domain` o `update-user-profile`. Para desasociar solo una URL del repositorio de Git, pase la lista de repositorios de código sin la URL del repositorio de Git deseada. En esta sección se muestra cómo separar todos los repositorios de Git URLs de tu dominio o perfil de usuario mediante AWS Command Line Interface ()AWS CLI.

### Desasociación de un dominio
<a name="studio-git-detach-cli-domain"></a>

El siguiente comando separa todos los repositorios de Git URLs de un dominio.

```
aws sagemaker update-domain --region region --domain-name domain-name \
    --domain-settings JupyterServerAppSettings={CodeRepositories=[]}
```

### Desasociación de un perfil de usuario
<a name="studio-git-detach-cli-userprofile"></a>

El siguiente comando separa todos los repositorios de Git URLs de un perfil de usuario.

```
aws sagemaker update-user-profile --domain-name domain-name --user-profile-name user-name\
    --user-settings JupyterServerAppSettings={CodeRepositories=[]}
```

## Separe el repositorio de Git mediante la consola de IA SageMaker
<a name="studio-git-detach-console"></a>

En las siguientes secciones, se muestra cómo separar una URL de repositorio de Git de un dominio o perfil de usuario mediante la consola SageMaker AI.

### Desasociación de un dominio
<a name="studio-git-detach-console-domain"></a>

Siga estos pasos para desasociar la URL de un repositorio de Git de un dominio existente.

**Desasociación de una URL de repositorio de Git de un dominio existente**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio con la URL del repositorio de Git que quiera desasociar.

1. En la página **Detalles del dominio**, seleccione la pestaña **Entorno**.

1. En la pestaña **Repositorios de código sugeridos para el dominio**, seleccione la URL del repositorio de Git que quiera desasociar.

1. Elija **Desasociar**.

1. En la nueva ventana, seleccione **Desasociar**.

### Desasociación de un perfil de usuario
<a name="studio-git-detach-console-userprofile"></a>

Siga estos pasos para desasociar la URL de un repositorio de Git de un perfil de usuario.

**Para desasociar la URL de un repositorio de Git de un perfil de usuario**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio que incluya el perfil de usuario con la URL del repositorio de Git que quiera desasociar.

1. En la página **Detalles del dominio**, elija la pestaña **Perfiles de usuario**.

1. Seleccione el perfil de usuario con la URL del repositorio de Git que quiera desasociar.

1. En la página **Detalles del usuario**, elija **Editar**.

1. En la página de **Configuración de Studio**, seleccione la URL del repositorio de Git para desasociarla de la pestaña **Repositorios de código sugeridos para el usuario**.

1. Elija **Desasociar**.

1. En la nueva ventana, seleccione **Desasociar**.

# Realice tareas habituales en Amazon SageMaker Studio Classic
<a name="studio-tasks"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En las siguientes secciones se describe cómo realizar tareas habituales en Amazon SageMaker Studio Classic. Para obtener información general de la interfaz de Studio Classic, consulte [Descripción general de la interfaz de usuario clásica de Amazon SageMaker Studio](studio-ui.md).

**Topics**
+ [Cargar archivos a Amazon SageMaker Studio Classic](studio-tasks-files.md)
+ [Clonar un repositorio de Git en Amazon SageMaker Studio Classic](studio-tasks-git.md)
+ [Stop a Training Job en Amazon SageMaker Studio Classic](studio-tasks-stop-training-job.md)
+ [Uso TensorBoard en Amazon SageMaker Studio Classic](studio-tensorboard.md)
+ [Utilice Amazon Q Developer con Amazon SageMaker Studio Classic](sm-q.md)
+ [Administre su volumen de almacenamiento de Amazon EFS en Amazon SageMaker Studio Classic](studio-tasks-manage-storage.md)
+ [Enviar comentarios sobre Amazon SageMaker Studio Classic](studio-tasks-provide-feedback.md)
+ [Cierre y actualice Amazon SageMaker Studio Classic y sus aplicaciones](studio-tasks-update.md)

# Cargar archivos a Amazon SageMaker Studio Classic
<a name="studio-tasks-files"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Cuando se incorpora a Amazon SageMaker Studio Classic, se crea un directorio principal para usted en el volumen Amazon Elastic File System (Amazon EFS) que se creó para su equipo. Studio Classic solo puede abrir los archivos que se han cargado en su directorio. El explorador de archivos de Studio Classic se asigna al directorio principal.

**nota**  
Studio Classic no admite la carga de carpetas. Si bien solo puede cargar archivos individuales, puede cargar varios al mismo tiempo.

**Para cargar archivos en el directorio de inicio**

1. En la barra lateral izquierda, elija el icono **Explorador de archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)).

1. En el explorador de archivos, elija el icono de **Cargar archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/File_upload_squid.png)).

1. Seleccione el archivo que quiera cargar y, a continuación, elija **Abrir**.

1. Haga doble clic en un archivo para abrirlo en una nueva pestaña de Studio Classic.

# Clonar un repositorio de Git en Amazon SageMaker Studio Classic
<a name="studio-tasks-git"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic solo se puede conectar a un repositorio de Git local (repo). Esto significa que debe clonar el repositorio de Git desde Studio Classic para acceder a los archivos del repositorio. Studio Classic ofrece una extensión Git para introducir la URL de un repositorio de Git, clonarlo en su entorno, insertar cambios y ver el historial de confirmaciones. Si el repositorio es privado y requiere credenciales para acceder, se le solicitará que introduzca sus credenciales de usuario. Eso incluye su nombre de usuario y su token de acceso personal. Para más información sobre los tokens de acceso personal, consulte [Administración de sus tokens de acceso personal](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

Los administradores también pueden adjuntar el repositorio Git sugerido URLs a nivel de dominio o perfil de usuario de Amazon SageMaker AI. Los usuarios pueden seleccionar la URL del repositorio de la lista de sugerencias y clonarla en Studio Classic. Para obtener más información acerca de cómo asociar los repositorios sugeridos, consulte [Adjunta los repositorios de Git sugeridos a Amazon SageMaker Studio Classic](studio-git-attach.md).

El siguiente procedimiento muestra cómo clonar un GitHub repositorio de Studio Classic. 

**Para clonar el repositorio**

1. En la barra lateral izquierda, elija el icono de **Git** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/git.png)).

1. Seleccione **Clonar un repositorio**. Se abre una nueva ventana.

1. En la ventana **Clonar repositorio de Git**, introduzca la URL del repositorio de Git que desee clonar en el siguiente formato o seleccione un repositorio de la lista de **Repositorios sugeridos**.

   ```
   https://github.com/path-to-git-repo/repo.git
   ```

1. Si has introducido la URL del repositorio de Git manualmente, selecciona **Clonar *git-url* "»** en el menú desplegable.

1. En el **Directorio del proyecto en el que se va a clonar**, introduzca la ruta al directorio local en el que quiera clonar el repositorio de Git. Si este valor se deja vacío, Studio Classic clona el repositorio en JupyterLab su directorio raíz.

1. Elija **Clonar**. Esto abre una nueva ventana de terminal.

1. Si el repositorio requiere credenciales, se le pedirá que introduzca su nombre de usuario y token de acceso personal. Esta solicitud no acepta contraseñas, debe usar un token de acceso personal. Para más información sobre los tokens de acceso personal, consulte [Administración de sus tokens de acceso personal](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

1. Espere a que finalice la descarga. Una vez que se haya clonado el repositorio, el **Explorador de archivos** se abre para mostrar el repositorio clonado.

1. Haga doble clic en el repositorio para abrirlo.

1. Elija el icono de **Git** para ver la interfaz de usuario de Git que ahora rastrea el repositorio.

1. Para rastrear un repositorio diferente, abra el repositorio en el explorador de archivos y seleccione el icono de **Git**.

# Stop a Training Job en Amazon SageMaker Studio Classic
<a name="studio-tasks-stop-training-job"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Puedes detener un trabajo de formación con la interfaz de usuario clásica de Amazon SageMaker Studio. Cuando se detiene un trabajo de entrenamiento, su estado cambia a `Stopping`, momento en el que cesa la facturación. Un algoritmo puede retrasar la terminación para guardar artefactos del modelo después de lo cual cambia el estado del trabajo a `Stopped`. Para obtener más información, consulte el método [stop\$1training\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.stop_training_job) en AWS SDK para Python (Boto3).

**Para detener un trabajo de entrenamiento**

1. Siga el procedimiento [Ver experimentos y ejecuciones](experiments-view-compare.md) de esta página hasta que abra la pestaña **Describe Trial Component (Describir componente de prueba)**.

1. En la parte superior derecha de la pestaña, elija **Detener trabajo de entrenamiento**. **Status (Estado)** en la esquina superior izquierda de la pestaña cambia a **Stopped (Detenido)**.

1. Para ver el tiempo de entrenamiento y el tiempo de facturación, elija **Configuración de AWS **.

# Uso TensorBoard en Amazon SageMaker Studio Classic
<a name="studio-tensorboard"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

 En el siguiente documento se describe cómo instalar y ejecutar TensorBoard Amazon SageMaker Studio Classic. 

**nota**  
Esta guía muestra cómo abrir la TensorBoard aplicación a través de un servidor portátil SageMaker Studio Classic de un perfil de usuario de un dominio de SageMaker IA individual. Para obtener una TensorBoard experiencia más completa integrada con la SageMaker formación y las funcionalidades de control de acceso del dominio de SageMaker IA, consulte[TensorBoard en Amazon SageMaker AI](tensorboard-on-sagemaker.md).

## Requisitos previos
<a name="studio-tensorboard-prereq"></a>

Este tutorial requiere un dominio de SageMaker IA. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md)

## Configuración de `TensorBoardCallback`
<a name="studio-tensorboard-setup"></a>

1. Inicialice Studio Classic y abra el lanzador. Para obtener más información, consulte [Usa el Amazon SageMaker Studio Classic Launcher](studio-launcher.md)

1. En Amazon SageMaker Studio Classic Launcher, en`Notebooks and compute resources`, selecciona el botón **Cambiar entorno**.

1. En el cuadro de diálogo **Cambiar entorno**, utilice los menús desplegables para seleccionar la **Imagen** `TensorFlow 2.6 Python 3.8 CPU Optimized` de Studio Classic.

1. De vuelta al lanzador, haga clic en el icono **Crear cuaderno**. El cuaderno se inicia y se abre en una nueva pestaña de Studio Classic.

1. Ejecute este código desde las celdas de su cuaderno.

1. Importe los paquetes necesarios: 

   ```
   import os
   import datetime
   import tensorflow as tf
   ```

1. Cree un modelo Keras.

   ```
   mnist = tf.keras.datasets.mnist
   
   (x_train, y_train),(x_test, y_test) = mnist.load_data()
   x_train, x_test = x_train / 255.0, x_test / 255.0
   
   def create_model():
     return tf.keras.models.Sequential([
       tf.keras.layers.Flatten(input_shape=(28, 28)),
       tf.keras.layers.Dense(512, activation='relu'),
       tf.keras.layers.Dropout(0.2),
       tf.keras.layers.Dense(10, activation='softmax')
     ])
   ```

1. Cree un directorio para sus registros TensorBoard 

   ```
   LOG_DIR = os.path.join(os.getcwd(), "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
   ```

1. Ejecute el entrenamiento con TensorBoard.

   ```
   model = create_model()
   model.compile(optimizer='adam',
                 loss='sparse_categorical_crossentropy',
                 metrics=['accuracy'])
                 
                 
   tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=LOG_DIR, histogram_freq=1)
   
   model.fit(x=x_train,
             y=y_train,
             epochs=5,
             validation_data=(x_test, y_test),
             callbacks=[tensorboard_callback])
   ```

1. Genere la ruta EFS para los TensorBoard registros. Esta ruta se utiliza para configurar los registros desde la terminal.

   ```
   EFS_PATH_LOG_DIR = "/".join(LOG_DIR.strip("/").split('/')[1:-1])
   print (EFS_PATH_LOG_DIR)
   ```

   Obtenga el valor de `EFS_PATH_LOG_DIR`. La necesitará en la sección TensorBoard de instalación.

## Instalar TensorBoard
<a name="studio-tensorboard-install"></a>

1. Haz clic en el `Amazon SageMaker Studio Classic` botón de la esquina superior izquierda de Studio Classic para abrir Amazon SageMaker Studio Classic Launcher. Este lanzador debe abrirse desde el directorio raíz. Para obtener más información, consulte [Usa el Amazon SageMaker Studio Classic Launcher](studio-launcher.md)

1. En el lanzador, bajo `Utilities and files`, haga clic en `System terminal`. 

1. Ejecute los siguientes comandos desde el terminal. Copie `EFS_PATH_LOG_DIR` desde el cuaderno de Jupyter. Debe ejecutar esto desde desde el directorio raíz `/home/sagemaker-user`.

   ```
   pip install tensorboard
   tensorboard --logdir <EFS_PATH_LOG_DIR>
   ```

## Lanzamiento TensorBoard
<a name="studio-tensorboard-launch"></a>

1. Para iniciarlo TensorBoard, copia la URL de Studio Classic y `lab?` sustitúyela por la `proxy/6006/` siguiente. Debe incluir el carácter final `/`.

   ```
   https://<YOUR_URL>.studio.region.sagemaker.aws/jupyter/default/proxy/6006/
   ```

1. Vaya a la URL para examinar los resultados. 

# Utilice Amazon Q Developer con Amazon SageMaker Studio Classic
<a name="sm-q"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic es un entorno de aprendizaje automático integrado en el que puede crear, entrenar, implementar y analizar sus modelos en la misma aplicación. Puede generar recomendaciones de código y sugerir mejoras relacionadas con problemas de código mediante Amazon Q Developer con Amazon SageMaker AI.

Amazon Q Developer es un asistente conversacional basado en inteligencia artificial (IA) generativa que puede ayudarlo a comprender, crear, ampliar y operar AWS aplicaciones. En el contexto de un entorno de AWS codificación integrado, Amazon Q puede generar recomendaciones de código basadas en el código de los desarrolladores, así como en sus comentarios en lenguaje natural. 

Amazon Q es el que más admite Java, Python,, C\$1 JavaScript TypeScript, Go, PHP, Rust, Kotlin y SQL, así como los lenguajes de infraestructura como código (IaC) JSON (), YAML (CloudFormation), HCL (Terraform CloudFormation) y CDK (Typescript, Python). También admite la generación de código para Ruby, C\$1\$1, C, Shell y Scala. Para ver ejemplos de cómo Amazon Q se integra con Amazon SageMaker AI y muestra sugerencias de código en el IDE de Amazon SageMaker Studio Classic, consulte los [ejemplos de código](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/inline-suggestions-code-examples.html) en la *Guía del usuario para desarrolladores de Amazon Q.*

Para obtener más información sobre el uso de Amazon Q con Amazon SageMaker Studio Classic, consulte la [Guía del usuario para desarrolladores de Amazon Q.](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/sagemaker-setup.html)

# Administre su volumen de almacenamiento de Amazon EFS en Amazon SageMaker Studio Classic
<a name="studio-tasks-manage-storage"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

La primera vez que un usuario de su equipo se incorpora a Amazon SageMaker Studio Classic, Amazon SageMaker AI crea un volumen de Amazon Elastic File System (Amazon EFS) para el equipo. Se crea un directorio personal en el volumen para cada usuario que incorpora a Studio Classic como parte de su equipo. Los archivos de cuaderno y los archivos de datos se almacenarán en esos directorios. Los usuarios no tienen acceso a los directorios de inicio de otros miembros del equipo. El dominio Amazon SageMaker AI no admite el montaje de volúmenes Amazon EFS personalizados o adicionales.

**importante**  
No elimine el volumen de Amazon EFS. Si lo elimina, el dominio dejará de funcionar y todos sus usuarios perderán su trabajo.

**Para encontrar el volumen de Amazon EFS**

1. Abra la [consola SageMaker AI](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la página **Dominios**, seleccione el dominio del que quiera buscar el ID.

1. En la página de **Detalles del dominio**, seleccione la pestaña **Configuración del dominio**.

1. En **Configuración general**, busque el **ID del dominio**. El ID tendrá el siguiente formato: `d-xxxxxxxxxxxx`.

1. Pase el `Domain ID`, como `DomainId`, al método [describe\$1domain](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.describe_domain).

1. En la respuesta de `describe_domain`, observe el valor de la clave `HomeEfsFileSystemId`. Este es el ID del sistema de archivos de Amazon EFS.

1. Abra la [consola de Amazon EFS](https://console.aws.amazon.com/efs#/file-systems/). Asegúrese de que la AWS región es la misma que utiliza Studio Classic.

1. Bajo **Sistemas de archivos**, elija el ID del sistema de archivos del paso anterior.

1. Para comprobar que ha elegido el sistema de archivos correcto, seleccione el encabezado **Etiquetas**. El valor correspondiente a la clave `ManagedByAmazonSageMakerResource` debe coincidir con el `Studio Classic ID`.

Para obtener información sobre cómo acceder al volumen de Amazon EFS, consulte [Uso de sistemas de archivos en Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/using-fs.html).

Para eliminar el volumen de Amazon EFS, consulte [Eliminación de un sistema de archivos de Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/delete-efs-fs.html).

# Enviar comentarios sobre Amazon SageMaker Studio Classic
<a name="studio-tasks-provide-feedback"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Amazon SageMaker AI se toma muy en serio tus comentarios. Le animamos a que nos envíe sus comentarios.

**Cómo proporcionar comentarios**

1. A la derecha de SageMaker Studio Classic, busca el icono de **comentarios** (![\[Speech bubble icon representing messaging or communication functionality.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/feedback.png)).

1. Elige un emoticono sonriente para hacernos saber tu grado de satisfacción con SageMaker Studio Classic y añade cualquier comentario que quieras compartir con nosotros.

1. Decida si desea compartir su identidad con nosotros y, a continuación, elija **Enviar**.

# Cierre y actualice Amazon SageMaker Studio Classic y sus aplicaciones
<a name="studio-tasks-update"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

En los siguientes temas se muestra cómo cerrar y actualizar las aplicaciones de SageMaker Studio Classic y Studio Classic.

Studio Classic proporciona un icono de notificación (![\[Red circle icon with white exclamation mark, indicating an alert or warning.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Notification.png)) en la esquina superior derecha de la interfaz de Studio Classic. Este icono de notificación muestra el número de avisos no leídos. Para leer los avisos, seleccione el icono.

Studio Classic ofrece dos tipos de notificaciones:
+ Actualización: se muestra cuando hay una nueva versión publicada para Studio Classic o una de las aplicaciones de Studio Classic. Para actualizar Studio Classic, consulte [Cierre y actualice Amazon SageMaker Studio Classic](studio-tasks-update-studio.md). Para actualizar las aplicaciones de Studio Classic, consulte [Cierre y actualice las aplicaciones clásicas de Amazon SageMaker Studio](studio-tasks-update-apps.md).
+ Información: se muestra para nuevas características y otra información.

Para restablecer el icono de notificación, debe seleccionar el enlace en cada aviso. Es posible que las notificaciones de lectura sigan apareciendo en el icono. Esto no indica que se sigan necesitando actualizaciones una vez que haya actualizado Studio Classic y las aplicaciones de Studio Classic.

Para obtener información sobre cómo actualizar [Amazon SageMaker Data Wrangler, consulte](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler.html). [Cierre y actualice las aplicaciones clásicas de Amazon SageMaker Studio](studio-tasks-update-apps.md)

Para asegurarse de que dispone de las actualizaciones de software más recientes, actualice Amazon SageMaker Studio Classic y sus aplicaciones de Studio Classic mediante los métodos que se describen en los temas siguientes.

**Topics**
+ [Cierre y actualice Amazon SageMaker Studio Classic](studio-tasks-update-studio.md)
+ [Cierre y actualice las aplicaciones clásicas de Amazon SageMaker Studio](studio-tasks-update-apps.md)

# Cierre y actualice Amazon SageMaker Studio Classic
<a name="studio-tasks-update-studio"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Para actualizar Amazon SageMaker Studio Classic a la última versión, debe cerrar la JupyterServer aplicación. Puedes cerrar la JupyterServer aplicación desde la consola de SageMaker IA, desde Amazon SageMaker Studio o desde Studio Classic. Una vez cerrada la JupyterServer aplicación, debes volver a abrir Studio Classic a través de la consola de SageMaker IA o desde Studio, que creará una nueva versión de la JupyterServer aplicación. 

No puedes eliminar la JupyterServer aplicación mientras la interfaz de usuario de Studio Classic esté abierta en el navegador. Si eliminas la JupyterServer aplicación mientras la interfaz de usuario de Studio Classic sigue abierta en el navegador, SageMaker AI vuelve a crear la JupyterServer aplicación automáticamente.

Se perderá la información del cuaderno que no se haya guardado. Los datos de usuario del volumen de Amazon EFS no se ven afectados.

Algunos de los servicios de Studio Classic, como Data Wrangler, se ejecutan en su propia aplicación. Para actualizar estos servicios, debe eliminar la aplicación de ese servicio. Para obtener más información, consulte [Cierre y actualice las aplicaciones clásicas de Amazon SageMaker Studio](studio-tasks-update-apps.md).

**nota**  
Una JupyterServer aplicación está asociada a un único usuario de Studio Classic. Cuando actualiza la aplicación para un usuario, no afecta a otros usuarios.

En la siguiente página, se muestra cómo actualizar la JupyterServer aplicación desde la consola SageMaker AI, desde Studio o desde Studio Classic.

## Apaga y actualiza desde la consola de SageMaker IA
<a name="studio-tasks-update-studio-console"></a>

1. Vaya a [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio que incluya la aplicación de Studio Classic que quiera actualizar.

1. En **Perfiles de usuario**, seleccione su nombre de usuario.

1. En **Aplicaciones**, en la fila que aparece **JupyterServer**, selecciona **Acción** y, a continuación, selecciona **Eliminar**.

1. Elija **Sí, eliminar aplicación**.

1. Escriba **delete** en el cuadro de confirmación.

1. Elija **Eliminar**.

1. Una vez eliminada la aplicación, inicie una nueva aplicación de Studio Classic para obtener la versión más reciente.

## Cierre y actualización desde Studio
<a name="studio-tasks-update-studio-updated"></a>

1. Vaya a Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. En la IU de Studio, busque el panel de aplicaciones en la parte izquierda.

1. En el panel de aplicaciones, seleccione **Studio Classic**.

1. En la página de inicio de Studio Classic, seleccione la instancia de Studio Classic que desee detener.

1. Elija **Detener**.

1. Una vez detenida la aplicación, seleccione **Ejecutar** para usar la versión más reciente.

## Cierre y actualización desde Studio Classic
<a name="studio-tasks-update-studio-classic"></a>

1. Inicialice Studio Classic.

1. En el menú superior, elija **File (Archivo)** y, a continuación, **Shut Down (Apagar)**.

1. Elija una de las siguientes opciones:
   + **Apagar el servidor**: cierra la JupyterServer aplicación. Las sesiones de terminal, las sesiones del núcleo, SageMaker las imágenes y las instancias no se cierran. Estos recursos siguen acumulando cargos.
   + **Apagar todo**: cierra todas las aplicaciones, sesiones de terminal, sesiones del núcleo, SageMaker imágenes e instancias. Estos recursos ya no acumulan cargos.

1. Cierre la ventana.

1. Una vez eliminada la aplicación, inicie una nueva aplicación de Studio Classic para usar la versión más reciente.

# Cierre y actualice las aplicaciones clásicas de Amazon SageMaker Studio
<a name="studio-tasks-update-apps"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Para actualizar una aplicación Amazon SageMaker Studio Classic a la última versión, primero debes cerrar la KernelGateway aplicación correspondiente desde la consola de SageMaker IA. Una vez cerrada la KernelGateway aplicación, debe volver a abrirla mediante SageMaker Studio Classic ejecutando un nuevo núcleo. El kernel se actualiza automáticamente. Se perderá la información del cuaderno que no se haya guardado. Los datos de usuario del volumen de Amazon EFS no se ven afectados.

Tras cerrar una aplicación durante 24 horas, SageMaker AI elimina todos los metadatos de la aplicación. Para que se considere una actualización y se conserven los metadatos de la aplicación, las aplicaciones deben reiniciarse en un plazo de 24 horas desde el cierre de la aplicación anterior. Transcurrido este intervalo de tiempo, la creación de una aplicación se considera una aplicación nueva y no una actualización de la aplicación anterior.

**nota**  
Una KernelGateway aplicación está asociada a un único usuario de Studio Classic. Cuando actualiza la aplicación para un usuario, no afecta a otros usuarios.

**Para actualizar la KernelGateway aplicación**

1. Vaya a [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio que incluya la aplicación que desee actualizar.

1. En **Perfiles de usuario**, seleccione su nombre de usuario.

1. En **Aplicaciones**, en la fila que muestra el **Nombre de la aplicación**, seleccione **Acción** y, a continuación, seleccione **Eliminar**. 

   Para actualizar Data Wrangler, elimina la aplicación que comienza con. **sagemaker-data-wrang**

1. Elija **Sí, eliminar aplicación**.

1. Escriba **delete** en el cuadro de confirmación.

1. Elija **Eliminar**.

1. Una vez eliminada la aplicación, inicie un nuevo kernel desde Studio Classic para usar la versión más reciente.

# Precios de Amazon SageMaker Studio Classic
<a name="studio-pricing"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

Cuando el primer miembro del equipo se incorpora a Amazon SageMaker Studio Classic, Amazon SageMaker AI crea un volumen de Amazon Elastic File System (Amazon EFS) para el equipo. Cuando este miembro, o cualquier miembro del equipo, abre Studio Classic, se crea un directorio personal en el volumen del miembro. Se incurre en un cargo por almacenamiento para este directorio. Posteriormente, se incurren en cargos de almacenamiento adicionales para los cuadernos y archivos de datos almacenados en el directorio principal del miembro. Para obtener información sobre precios en Amazon EFS, consulte [Precios de Amazon EFS](https://aws.amazon.com/efs/pricing/).

Puede que se apliquen costos adicionales cuando se ejecuten otras operaciones dentro de Studio Classic, por ejemplo, la ejecución de un cuaderno, la ejecución de trabajos de entrenamiento o el alojamiento de un modelo.

Para obtener información sobre los costos asociados al uso de cuadernos de Studio Classic, consulte [Medición de uso para los portátiles Amazon SageMaker Studio Classic](notebooks-usage-metering.md).

Para obtener información sobre la facturación junto con ejemplos de precios, consulta [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

Si Amazon SageMaker Studio es tu experiencia predeterminada, consulta [Precios de Amazon SageMaker Studio](studio-updated-cost.md) para obtener más información sobre los precios.

# Solución de problemas de Amazon SageMaker Studio Classic
<a name="studio-troubleshooting"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos [migrar tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

En este tema se describe cómo solucionar problemas comunes de Amazon SageMaker Studio Classic durante la configuración y el uso. Los siguientes son errores comunes que pueden producirse al usar Amazon SageMaker Studio Classic. Cada error va seguido de una solución.

## Problemas de aplicaciones de Studio Classic
<a name="studio-troubleshooting-ui"></a>

 Se producen los siguientes problemas al iniciar y utilizar la aplicación de Studio Classic.
+ **La pantalla no se carga: limpiar el espacio de trabajo y esperar no ayuda**

  Al iniciar la aplicación de Studio Classic, aparece el siguiente mensaje en una ventana emergente. No importa qué opción esté seleccionada, Studio Classic no se carga. 

  ```
  Loading...
  The loading screen is taking a long time. Would you like to clear the workspace or keep waiting?
  ```

  La aplicación de Studio Classic puede iniciarse con retraso si hay varias pestañas abiertas en el espacio de trabajo de Studio Classic o si hay varios archivos en Amazon EFS. Esta ventana emergente debería desaparecer unos segundos después de que el espacio de trabajo de Studio Classic esté listo. 

  Si sigue viendo una pantalla de carga con una rueda giratoria después de seleccionar cualquiera de las opciones, es posible que haya problemas de conectividad con la Amazon Virtual Private Cloud que utiliza Studio Classic.  

  Para resolver problemas de conectividad con la Amazon Virtual Private Cloud (Amazon VPC) que utiliza Studio Classic, compruebe las siguientes configuraciones de red:
  + Si su dominio está configurado en `VpcOnly` modo: compruebe que haya un punto de enlace de Amazon VPC o una puerta de enlace NAT para AWS STS el tráfico saliente, incluido el tráfico a través de Internet. Para ello, siga los pasos que se indican en [Conexión de cuadernos de Studio en una VPC a recursos externos](studio-notebooks-and-internet-access.md). 
  + Si su Amazon VPC está configurada con un DNS personalizado en lugar del DNS proporcionado por Amazon: compruebe que las rutas estén configuradas mediante el protocolo de configuración dinámica de host (DHCP) para cada punto de conexión de Amazon VPC añadido a la Amazon VPC utilizada por Studio Classic. Para obtener más información sobre la configuración de conjuntos de opciones de DHCP predeterminados y personalizados, consulte [Conjuntos de opciones de DHCP en Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html). 
+ ****Fallo interno** al iniciar Studio Classic**

  Al iniciar Studio Classic, no puede ver la interfaz de usuario de Studio Classic. También aparece un error similar al siguiente, con un **fallo interno** como detalle del error. 

  ```
  Amazon SageMaker Studio
  The JupyterServer app default encountered a problem and was stopped.
  ```

  Este error puede deberse a varios factores. Si al completar estos pasos no se resuelve el problema, cree un problema con. https://aws.amazon.com/premiumsupport/  
  + **Falta el objetivo de montaje de Amazon EFS**: Studio Classic utiliza Amazon EFS como almacenamiento. El volumen de Amazon EFS necesita un objetivo de montaje para cada subred en la que se cree el dominio de Amazon SageMaker AI. Si este destino de montaje de Amazon EFS se elimina accidentalmente, la aplicación de Studio Classic no se puede cargar porque no puede montar el directorio de archivos del usuario. Para resolver este problema, siga estos pasos. 

**Para verificar o crear objetivos de montaje.**

    1. Busque el volumen de Amazon EFS asociado al dominio mediante la llamada a la [DescribeDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeDomain.html)API.  

    1. Inicie sesión en la consola de Amazon EFS Consola de administración de AWS y ábrala en [ https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/).

    1. En la lista de volúmenes de Amazon EFS, seleccione el volumen de Amazon EFS asociado al dominio. 

    1. En la página de detalles de Amazon EFS, seleccione la pestaña **Red**. Compruebe que haya destinos de montaje para todas las subredes en las que está configurado el dominio. 

    1. Si faltan objetivos de montaje, agregue los objetivos de montaje de Amazon EFS que falten. Para obtener instrucciones, consulte [Creación y administración de objetivos de montaje y grupos de seguridad](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html). 

    1. Una vez creados los objetivos de montaje que falten, inicie la aplicación de Studio Classic. 
  + **Archivos conflictivos en la `.local` carpeta del usuario**: si utiliza la JupyterLab versión 1 de Studio Classic, las bibliotecas conflictivas de la `.local` carpeta pueden provocar problemas al iniciar la aplicación Studio Classic. Para solucionar este problema, actualiza la JupyterLab versión predeterminada de tu perfil de usuario a JupyterLab la 3.0. Para obtener más información sobre cómo ver y actualizar la JupyterLab versión, consulte[JupyterLab Control de versiones en Amazon SageMaker Studio Classic](studio-jl.md). 
+ ****ConfigurationError: LifecycleConfig** al iniciar Studio Classic**

  No puede ver la interfaz de usuario de Studio Classic al iniciar Studio Classic. Esto se debe a problemas con el script de configuración del ciclo de vida predeterminado asociado al dominio.

**Para resolver problemas de configuración del ciclo de vida**

  1. Consulte los CloudWatch registros de Amazon para ver la configuración del ciclo de vida para rastrear el comando que provocó el error. Para ver el registro, siga los pasos que se indican en [Verifica el proceso de configuración del ciclo de vida desde CloudWatch los registros](studio-lcc-debug.md#studio-lcc-debug-logs). 

  1. Desasocie el script predeterminado del perfil de usuario o del dominio. Para obtener más información, consulte [Actualice y separe las configuraciones del ciclo de vida en Amazon SageMaker Studio Classic](studio-lcc-delete.md). 

  1. Inicialice la aplicación de Studio Classic. 

  1. Depure el script de configuración del ciclo de vida. Puede ejecutar el script de configuración del ciclo de vida desde el terminal del sistema para solucionar el problema. Cuando el script se ejecute correctamente desde el terminal, puede asociarlo al perfil de usuario o al dominio. 
+ **SageMaker Las funcionalidades principales de Studio Classic no están disponibles.**

  Si aparece este mensaje de error al abrir Studio Classic, puede deberse a conflictos de versión del paquete de Python. Esto ocurre si ha utilizado los siguientes comandos en un bloc de notas o terminal para instalar paquetes de Python que tienen conflictos de versión con las dependencias de los paquetes de SageMaker AI.

  ```
  !pip install
  ```

  ```
  pip install --user
  ```

  Para resolver este problema, siga estos pasos:

  1. Desinstale los paquetes de Python instalados recientemente. Si no estás seguro de qué paquete deseas desinstalar, crea un problema con https://aws.amazon.com/premiumsupport/ él. 

  1. Reinicie Studio Classic:

     1. Cierre Studio Classic desde el menú **Archivo**.

     1. Espere un minuto.

     1. Vuelva a abrir Studio Classic actualizando la página o abriéndola desde la Consola de administración de AWS.

  El problema debería resolverse si ha desinstalado el paquete que causó el conflicto. Para instalar paquetes sin volver a causar este problema, utilice `%pip install` sin el marcado `--user`.

  Si el problema persiste, cree un nuevo perfil de usuario y configure su entorno con ese perfil de usuario.

  Si estas soluciones no solucionan el problema, crea un problema con https://aws.amazon.com/premiumsupport/. 
+ **No se puede abrir Studio Classic desde la Consola de administración de AWS.**

  Si no puedes abrir Studio Classic y no puedes crear una nueva instancia en ejecución con todos los ajustes predeterminados, crea un problema con https://aws.amazon.com/premiumsupport/. 

## KernelGateway problemas de aplicación
<a name="studio-troubleshooting-kg"></a>

 Los siguientes problemas son específicos de las KernelGateway aplicaciones que se inician en Studio Classic. 
+ **No se puede acceder a la sesión del kernel**

  Cuando el usuario inicia un nuevo cuaderno, no puede conectarse a la sesión del cuaderno. Si el estado de la KernelGateway aplicación es`In Service`, puede comprobar lo siguiente para resolver el problema. 
  + **Compruebe las configuraciones de los grupos de seguridad**

    Si el dominio está configurado en `VPCOnly` modo, el grupo de seguridad asociado al dominio debe permitir el tráfico entre los puertos del rango `8192-65535` para garantizar la conectividad entre KernelGateway las aplicaciones JupyterServer y las aplicaciones.

**Para verificar las reglas del grupo de seguridad**

    1. Obtenga los grupos de seguridad asociados al dominio mediante la llamada a la [DescribeDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeDomain.html)API.

    1. Inicie sesión en la consola de Amazon VPC Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

    1. En el panel de navegación izquierdo, en **Seguridad**, elija **Grupos de seguridad**.

    1. Filtre por IDs los grupos de seguridad asociados al dominio.

    1. Para cada grupo de seguridad: 

       1. Seleccione el grupo de seguridad . 

       1. En la página de detalles del grupo de seguridad, consulte las **Reglas de entrada**. Compruebe que el tráfico esté permitido entre los puertos del rango `8192-65535`. 

    Para obtener más información sobre los grupos de seguridad, consulte [Control del tráfico hacia los recursos mediante grupos de seguridad](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#working-with-security-group-rules). Para obtener más información sobre los requisitos para usar Studio Classic en el modo `VPCOnly`, consulte [Conexión de cuadernos de Studio en una VPC a recursos externos](studio-notebooks-and-internet-access.md).
  + **Compruebe el firewall y WebSocket las conexiones**

    Si las KernelGateway aplicaciones están en un `InService` estado y el usuario no puede conectarse a la sesión del portátil Studio Classic, compruebe el firewall y la WebSocket configuración. 

    1. Inicialice la aplicación de Studio Classic. Para obtener más información, consulte [Inicie Amazon SageMaker Studio Classic](studio-launch.md). 

    1. Abra las herramientas para desarrolladores del navegador web. 

    1. Seleccione la pestaña **Red**. 

    1. Busque una entrada que coincida con el siguiente formato.

       ```
       wss://<domain-id>.studio.<region>.sagemaker.aws/jupyter/default/api/kernels/<unique-code>/channels?session_id=<unique-code>
       ```

       Si el estado o el código de respuesta de la entrada no es el `101` siguiente: la configuración de la red impide la conexión entre la aplicación Studio Classic y las KernelGateway aplicaciones.

       Para resolver este problema, ponte en contacto con el equipo que gestiona la configuración de red para permitir incluir en la lista la URL de Studio Classic y habilitar WebSocket las conexiones.  
+ **No se pudo iniciar una aplicación debido a que se superaron las cuotas de recursos**

  Cuando un usuario intenta iniciar un nuevo cuaderno, la creación del cuaderno falla y se produce uno de los siguientes errores. Esto se debe a que se superan las cuotas de recursos. 
  + 

    ```
    Unable to start more Apps of AppType [KernelGateway] and ResourceSpec(instanceType=[]) for UserProfile []. Please delete an App with a matching AppType and ResourceSpec, then try again
    ```

    Studio Classic admite hasta cuatro KernelGateway aplicaciones en ejecución en la misma instancia. Para resolver este problema, puede optar por una de las siguientes medidas:
    + Elimine una KernelGateway aplicación existente que se esté ejecutando en la instancia y, a continuación, reinicie el nuevo bloc de notas.
    + Iniciar el nuevo cuaderno en un tipo de instancia diferente

     Para obtener más información, consulte [Cambiar el tipo de instancia de un bloc de notas Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md).
  + 

    ```
    An error occurred (ResourceLimitExceeded) when calling the CreateApp operation
    ```

    En este caso, la cuenta no tiene límites suficientes para crear una aplicación de Studio Classic en el tipo de instancia especificado. Para resolver este problema, dirígete a la Service Quotas consola en [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/). En esa consola, solicite un aumento del límite `Studio KernelGateway Apps running on instance-type instance`. Para más información, consulte [Service Quotas de AWS](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). 

# SageMaker JupyterLab
<a name="studio-updated-jl"></a>

Crea un JupyterLab espacio en Amazon SageMaker Studio para lanzar la JupyterLab aplicación. Un JupyterLab espacio es un espacio privado o compartido dentro de Studio que administra los recursos de almacenamiento y procesamiento necesarios para ejecutar la JupyterLab aplicación. La JupyterLab aplicación es un entorno de desarrollo interactivo (IDE) basado en la web para cuadernos, código y datos. Utilice la interfaz amplia y flexible de la JupyterLab aplicación para configurar y organizar los flujos de trabajo del aprendizaje automático (ML).

De forma predeterminada, la JupyterLab aplicación viene con la imagen SageMaker de distribución. La imagen de distribución incluye paquetes populares, como los siguientes:
+ PyTorch
+ TensorFlow
+ Keras
+ NumPy
+ Pandas
+ Scikit-learn

Puede utilizar los espacios compartidos para colaborar en sus cuadernos de Jupyter con otros usuarios en tiempo real. Para obtener más información sobre los espacios compartidos, consulte [Colaboración con espacios compartidos](domain-space.md).

Dentro de la JupyterLab aplicación, puedes usar Amazon Q Developer, un complemento de código generativo impulsado por IA para generar, depurar y explicar tu código. Para obtener información sobre cómo utilizar Amazon Q Developer, consulte [JupyterLab guía del usuario](studio-updated-jl-user-guide.md). Para obtener información sobre cómo configurar Amazon Q Developer, consulte [JupyterLab guía del administrador](studio-updated-jl-admin-guide.md).

Cree flujos de trabajo unificados de análisis y machine learning en el mismo cuaderno de Jupyter. Ejecute Spark trabajos interactivos en Amazon EMR y en una infraestructura AWS Glue sin servidor, directamente desde su portátil. Supervise y depure los trabajos más rápido mediante la interfaz de usuario insertada de Spark. En solo unos pasos, puede automatizar la preparación de los datos con solo programar el cuaderno como un trabajo.

La JupyterLab aplicación le ayuda a trabajar en colaboración con sus compañeros. Usa la integración de Git integrada en el JupyterLab IDE para compartir y versionar el código. Traiga su propio sistema de almacenamiento de archivos si tiene un volumen de Amazon EFS.

La JupyterLab aplicación se ejecuta en una única instancia de Amazon Elastic Compute Cloud (Amazon EC2) y utiliza un único volumen de Amazon Elastic Block Store (Amazon EBS) como almacenamiento. Puede cambiar de instancia más rápido o aumentar el tamaño del volumen de Amazon EBS según sus necesidades.

Las JupyterLab 4 aplicaciones se ejecutan en un JupyterLab espacio de Studio. Studio Classic usa la aplicación JupyterLab 3. JupyterLab 4 ofrece las siguientes ventajas:
+ Un IDE más rápido que Amazon SageMaker Studio Classic, especialmente con ordenadores portátiles grandes
+ Búsqueda de documentos mejorada
+ Un editor de texto más eficiente y accesible

Para obtener más información al respecto JupyterLab, consulte [JupyterLabla documentación](https://jupyterlab.readthedocs.io/en/stable/#).

**Topics**
+ [JupyterLab guía del usuario](studio-updated-jl-user-guide.md)
+ [JupyterLab guía del administrador](studio-updated-jl-admin-guide.md)

# JupyterLab guía del usuario
<a name="studio-updated-jl-user-guide"></a>

Esta guía muestra a JupyterLab los usuarios cómo ejecutar flujos de trabajo de análisis y aprendizaje automático en SageMaker Studio. Puede obtener un almacenamiento rápido y escalar la computación para ampliarla o reducirla en función de sus necesidades.

JupyterLab admite espacios privados y compartidos. El ámbito de los espacios privados se limita a un único usuario de un dominio. Los espacios compartidos permiten que otros usuarios de su dominio colaboren con usted en tiempo real. Para obtener información sobre espacios de Studio, consulte [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md).

Para empezar a usarlo JupyterLab, crea un espacio e inicia tu JupyterLab aplicación. El espacio en el que se ejecuta JupyterLab la aplicación es un JupyterLab espacio. El JupyterLab espacio utiliza una única instancia de Amazon EC2 para el procesamiento y un único volumen de Amazon EBS para el almacenamiento. Todo lo que hay en el espacio, como el código, el perfil de Git y las variables de entorno, se almacena en el mismo volumen de Amazon EBS. El volumen tiene 3000 IOPS y un rendimiento de 125 megabytes por segundo (). MBps Puede utilizar el almacenamiento rápido para abrir y ejecutar varios cuadernos de Jupyter en la misma instancia. También puede cambiar los kernels de un cuaderno con gran rapidez.

El administrador ha configurado los ajustes de almacenamiento predeterminados de Amazon EBS para su espacio. El tamaño de almacenamiento predeterminado es de 5 GB, pero puede aumentar la cantidad de espacio que obtiene. Puede hablar con su administrador para que le indique cómo hacerlo.

Puede cambiar el tipo de instancia de Amazon EC2 que va a utilizar para ejecutar JupyterLab y ampliar o reducir la capacidad de procesamiento en función de sus necesidades. Las instancias de **Lanzamiento rápido** se inician mucho más rápido que las demás instancias.

El administrador puede proporcionarle una configuración del ciclo de vida que personalice su entorno. Puede especificar la configuración del ciclo de vida al crear el espacio.

Si el administrador le da acceso a Amazon EFS, puede configurar el JupyterLab espacio para acceder a él.

De forma predeterminada, la JupyterLab aplicación utiliza la imagen SageMaker de distribución. Esto incluye la compatibilidad con muchos paquetes de machine learning, análisis y aprendizaje profundo. Sin embargo, si necesita una imagen personalizada, su administrador puede ayudarlo a proporcionar acceso a las imágenes personalizadas.

El volumen de Amazon EBS persiste independientemente de la vida de una instancia. No perderá los datos cuando cambie de instancias. Utilice las bibliotecas de administración de paquetes de conda y de pip para crear entornos personalizados y reproducibles que persistan aunque cambie de tipos de instancias.

Tras abrirla JupyterLab, puede configurar el entorno mediante el terminal. Para abrir el terminal, diríjase al **Lanzador** y seleccione **Terminal**.

A continuación, se muestran ejemplos de las distintas formas en las que puede configurar un entorno JupyterLab.

**nota**  
En Studio, puede usar configuraciones de ciclo de vida para personalizar su entorno, pero recomendamos usar un administrador de paquetes en su lugar. El uso de configuraciones de ciclo de vida es un método más propenso a errores. Es más fácil agregar o eliminar dependencias que depurar un script de configuración de ciclo de vida. También puede aumentar el tiempo JupyterLab de inicio.  
Para obtener información sobre las configuraciones de ciclo de vida, consulte [Configuraciones del ciclo de vida con JupyterLab](jl-lcc.md).

**Topics**
+ [Creación de un espacio](studio-updated-jl-user-guide-create-space.md)
+ [Configuración de un espacio](studio-updated-jl-user-guide-configure-space.md)
+ [Personalización de un entorno mediante un administrador de paquetes](studio-updated-jl-user-guide-customize-package-manager.md)
+ [Eliminación de un entorno de conda](studio-updated-jl-clean-up-conda.md)
+ [Uso compartido de entornos de conda entre tipos de instancias](studio-updated-jl-create-conda-share-environment.md)
+ [Uso de Amazon Q para agilizar sus flujos de trabajo de machine learning](studio-updated-jl-user-guide-use-amazon-q.md)

# Creación de un espacio
<a name="studio-updated-jl-user-guide-create-space"></a>

Para empezar a usarlo JupyterLab, cree un espacio o elija el espacio que su administrador creó para usted y ábralo JupyterLab.

Utilice el siguiente procedimiento para crear un espacio y abrirlo JupyterLab.

**Para crear un espacio y abrirlo JupyterLab**

1. Abra Studio. Para obtener información sobre cómo abrir Studio, consulte [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. Elija **JupyterLab**.

1. Selecciona **Crear JupyterLab espacio**.

1. En **Nombre**, especifique el nombre del espacio.

1. (Opcional) Seleccione **Compartir con mi dominio** para crear un espacio compartido.

1. Elija **Crear espacio**.

1. (Opcional) En **Instancia**, especifique la instancia de Amazon EC2 que ejecuta el espacio.

1. (Opcional) En **Imagen**, especifique una imagen que le haya proporcionado el administrador para personalizar el entorno.
**importante**  
Las políticas de IAM personalizadas que permiten a los usuarios de Studio crear espacios también deben conceder permisos para enumerar imágenes (`sagemaker: ListImage`) para ver imágenes personalizadas. Para agregar el permiso, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la Guía del usuario de *AWS Identity and Access Management*.   
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear recursos de SageMaker IA ya incluyen permisos para enumerar imágenes al crear esos recursos.

1. (Opcional) En **Configuración del espacio**, especifique lo siguiente:
   + **Almacenamiento (GB)**: hasta 100 GB o la cantidad que especifique el administrador.
   + **Configuración de ciclo de vida**: la configuración del ciclo de vida que especifique el administrador.
   + **Asociar sistema de archivos de EFS personalizado**: un sistema de archivos de Amazon EFS al que el administrador proporcione acceso.

1. Seleccione **Ejecutar espacio**.

1. Elija **Open JupyterLab**.

# Configuración de un espacio
<a name="studio-updated-jl-user-guide-configure-space"></a>

Tras crear un JupyterLab espacio, puede configurarlo para que haga lo siguiente:
+ Cambiar el tipo de instancia.
+ Cambiar el volumen de almacenamiento.
+ (Se requiere configuración del administrador) Utilizar una imagen personalizada.
+ (Se requiere configuración del administrador) Utilizar una configuración del ciclo de vida.
+ (Se requiere configuración del administrador) Asociar un sistema de archivos de Amazon EFS personalizado.

**importante**  
Debe detener el JupyterLab espacio cada vez que lo configure. Utilice el siguiente procedimiento para configurar el espacio.

**Configuración de un espacio**

1. En Studio, navega hasta la página de la JupyterLab aplicación.

1. Elija el nombre del espacio.

1. (Opcional) En **Imagen**, especifique una imagen que le haya proporcionado el administrador para personalizar el entorno.
**importante**  
Las políticas de IAM personalizadas que permiten a los usuarios de Studio crear espacios también deben conceder permisos para enumerar imágenes (`sagemaker: ListImage`) para ver imágenes personalizadas. Para agregar el permiso, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la Guía del usuario de *AWS Identity and Access Management*.   
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear recursos de SageMaker IA ya incluyen permisos para enumerar imágenes al crear esos recursos.

1. (Opcional) En **Configuración del espacio**, especifique lo siguiente:
   + **Almacenamiento (GB)**: hasta 100 GB o la cantidad que haya configurado el administrador para el espacio.
   + **Configuración de ciclo de vida**: la configuración del ciclo de vida que proporcione el administrador.
   + **Asociar sistema de archivos de EFS personalizado**: un sistema de archivos de Amazon EFS al que el administrador proporcione acceso.

1. Seleccione **Ejecutar espacio**.

Cuando abres la JupyterLab aplicación, tu espacio tiene la configuración actualizada.

# Personalización de un entorno mediante un administrador de paquetes
<a name="studio-updated-jl-user-guide-customize-package-manager"></a>

Utilice pip o conda para personalizar el entorno. Recomendamos usar administradores de paquetes en lugar de scripts de configuración del ciclo de vida. 

## Creación y activación de un entorno personalizado
<a name="studio-updated-jl-create-basic-conda"></a>

En esta sección se proporcionan ejemplos de las distintas formas en las que se puede configurar un entorno JupyterLab.

Un entorno conda básico tiene la cantidad mínima de paquetes que se requieren para sus flujos de trabajo en SageMaker IA. Utilice la siguiente plantilla para crear un entorno de conda básico:

```
# initialize conda for shell interaction
conda init

# create a new fresh environment
conda create --name test-env

# check if your new environment is created successfully
conda info --envs

# activate the new environment
conda activate test-env

# install packages in your new conda environment
conda install pip boto3 pandas ipykernel

# list all packages install in your new environment 
conda list

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# to exit your new environment
conda deactivate
```

En la imagen siguiente, se muestra la ubicación del entorno que se ha creado.

![\[En la esquina superior derecha de la pantalla, se muestra el entorno test-env.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/juptyer-notebook-environment-location.png)


Para cambiar su entorno, elíjalo y seleccione una opción del menú desplegable.

![\[La marca de verificación y su texto correspondiente indican el ejemplo de entorno creado anteriormente.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/jupyter-notebook-select-env.png)


Elija **Seleccionar** para seleccionar un kernel para el entorno.

## Creación de un entorno de conda con una versión específica de Python
<a name="studio-updated-jl-create-conda-version"></a>

Eliminar los entornos de conda que no se utilizan puede ayudar a liberar espacio en disco y mejorar el rendimiento. Utilice la siguiente plantilla para eliminar un entorno de conda:

```
# create a conda environment with a specific python version
conda create --name py38-test-env python=3.8.10

# activate and test your new python version
conda activate py38-test-env & python3 --version

# Install ipykernel to facilicate env registration
conda install ipykernel

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# deactivate your py38 test environment
conda deactivate
```

## Creación de un entorno de conda con un conjunto específico de paquetes
<a name="studio-updated-jl-create-conda-specific-packages"></a>

Utilice la siguiente plantilla para crear un entorno de conda con una versión específica de Python y un conjunto de paquetes:

```
# prefill your conda environment with a set of packages,
conda create --name py38-test-env python=3.8.10 pandas matplotlib=3.7 scipy ipykernel

# activate your conda environment and ensure these packages exist
conda activate py38-test-env

# check if these packages exist
conda list | grep -E 'pandas|matplotlib|scipy'

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# deactivate your conda environment
conda deactivate
```

## Clonación de conda desde un entorno existente
<a name="studio-updated-jl-create-conda-clone"></a>

Clone su entorno de conda para conservar su estado de funcionamiento. Puede experimentar en el entorno clonado sin preocuparse por introducir cambios importantes en el entorno de prueba.

Utilice el siguiente comando para clonar un entorno.

```
# create a fresh env from a base environment 
conda create --name py310-base-ext --clone base # replace 'base' with another env

# activate your conda environment and ensure these packages exist
conda activate py310-base-ext

# install ipykernel to register your env
conda install ipykernel

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# deactivate your conda environment
conda deactivate
```

## Clonación de conda desde un archivo YAML de referencia
<a name="studio-updated-jl-create-conda-yaml"></a>

Cree un entorno de conda a partir de un archivo de YAML de referencia. El siguiente es un ejemplo de un archivo de YAML que puede usar.

```
# anatomy of a reference environment.yml
name: py311-new-env
channels:
  - conda-forge
dependencies:
  - python=3.11
  - numpy
  - pandas
  - scipy
  - matplotlib
  - pip
  - ipykernel
  - pip:
      - git+https://github.com/huggingface/transformers
```

En `pip`, recomendamos especificar solo las dependencias que no están disponibles con conda.

Use los siguientes comandos para crear un entorno de conda a partir de un archivo de YAML.

```
# create your conda environment 
conda env create -f environment.yml

# activate your env
conda activate py311-new-env
```

# Eliminación de un entorno de conda
<a name="studio-updated-jl-clean-up-conda"></a>

Eliminar los entornos de conda que no se utilizan puede ayudar a liberar espacio en disco y mejorar el rendimiento. Utilice la siguiente plantilla para eliminar un entorno de conda:

```
# list your environments to select an environment to clean
conda info --envs # or conda info -e

# once you've selected your environment to purge
conda remove --name test-env --all

# run conda environment list to ensure the target environment is purged
conda info --envs # or conda info -e
```

# Uso compartido de entornos de conda entre tipos de instancias
<a name="studio-updated-jl-create-conda-share-environment"></a>

Puede compartir entornos de conda guardándolos en un directorio de Amazon EFS fuera de su volumen de Amazon EBS. Otro usuario puede acceder al entorno en el directorio en el que lo haya guardado.

**importante**  
El uso compartido de entornos está sujeto a limitaciones. Por ejemplo, no recomendamos un entorno diseñado para ejecutarse en una instancia de GPU de Amazon EC2 en lugar de un entorno que se ejecute en una instancia de CPU.

Use los siguientes comandos como plantilla para especificar el directorio de destino en el que desea crear un entorno personalizado. Va a crear un entorno de conda dentro de una ruta determinada. Se crea dentro del directorio de Amazon EFS. Puede crear una nueva instancia y utilizar la ruta de activación de conda, todo ello dentro de Amazon EFS.

```
# if you know your environment path for your conda environment
conda create --prefix /home/sagemaker-user/my-project/py39-test python=3.9

# activate the env with full path from prefix
conda activate home/sagemaker-user/my-project/py39-test

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | awk -F' : ' '{print $2}' | awk -F'/' '{print $NF}')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env-prefix:($CURRENT_ENV_NAME)"

# deactivate your conda environment
conda deactivate
```

# Uso de Amazon Q para agilizar sus flujos de trabajo de machine learning
<a name="studio-updated-jl-user-guide-use-amazon-q"></a>

Amazon Q Developer es su servicio complementario con tecnología de IA para el desarrollo del machine learning. Con Amazon Q Developer, podrá:
+ Reciba step-by-step orientación sobre el uso de las funciones de SageMaker IA de forma independiente o en combinación con otros AWS servicios.
+ Obtenga un código de muestra para comenzar con sus tareas de aprendizaje automático, como la preparación de datos, la capacitación, la inferencia y MLOps.
+ Recibir asistencia para solucionar problemas a fin de depurar y resolver los errores detectados al ejecutar el código.

Amazon Q Developer se integra perfectamente en su JupyterLab entorno. Para utilizar Amazon Q Developer, elija la **Q** en la barra de navegación de la izquierda de su JupyterLab entorno o entorno de editor de código.

Si no ve el icono **Q**, su administrador deberá configurárselo. Para obtener más información sobre cómo configurar Amazon Q Developer, consulte [Configuración de Amazon Q Developer para sus usuarios](studio-updated-amazon-q-admin-guide-set-up.md).

Amazon Q proporciona automáticamente sugerencias para ayudarlo a escribir el código. También usted puede pedirle sugerencias a través de la interfaz de chat.

# JupyterLab guía del administrador
<a name="studio-updated-jl-admin-guide"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Esta guía para administradores describe los JupyterLab recursos de SageMaker IA, como los de Amazon Elastic Block Store (Amazon EBS) y Amazon Elastic Compute Cloud (Amazon EC2). En los temas también se muestra cómo proporcionar acceso a los usuarios y cambiar el tamaño del almacenamiento. 

Un JupyterLab espacio de SageMaker IA se compone de los siguientes recursos:
+ Un volumen de Amazon EBS distinto en el que se almacenan todos los datos, como el código y las variables de entorno. 
+ La instancia de Amazon EC2 utilizada para ejecutar el espacio.
+ La imagen utilizada para ejecutarse JupyterLab.

**nota**  
Las aplicaciones no tienen acceso al volumen de EBS de otras aplicaciones. Por ejemplo, el editor de código, basado en Code-OSS, Visual Studio Code - Open Source no tiene acceso al volumen de EBS. JupyterLab Para obtener más información sobre los volúmenes de EBS, consulte [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html).

Puedes usar la SageMaker API de Amazon para hacer lo siguiente:
+ Cambio del tamaño del almacenamiento predeterminado del volumen de EBS para sus usuarios
+ Cambio del tamaño máximo del almacenamiento de EBS
+ Especificación de la configuración de usuario de la aplicación; por ejemplo, puede especificar si el usuario utiliza una imagen personalizada o un repositorio de código.
+ Especificación del tipo de aplicación de soporte

El tamaño predeterminado del volumen de Amazon EBS es de 5 GB. Puede aumentar el tamaño del volumen hasta un máximo de 16 384 GB. Si no hace nada, los usuarios pueden aumentar el tamaño de su volumen a 100 GB. El tamaño del volumen solo se puede cambiar una vez en un periodo de seis horas.

Los núcleos asociados a la JupyterLab aplicación se ejecutan en la misma instancia de Amazon EC2 que se ejecuta. JupyterLab Al crear un espacio, se utiliza de forma predeterminada la última versión de la imagen de SageMaker distribución. Para obtener más información sobre las imágenes de SageMaker distribución, consulte[SageMaker Política de soporte de imágenes de Studio](sagemaker-distribution.md).

**importante**  
Para obtener información sobre cómo actualizar el espacio para usar la última versión de la imagen de distribución de SageMaker IA, consulte[Actualiza la imagen SageMaker de distribución](studio-updated-jl-update-distribution-image.md).

El directorio de trabajo de los usuarios dentro del volumen de almacenamiento es `/home/sagemaker-user`. Si especifica su propia AWS KMS clave para cifrar el volumen, todo el contenido del directorio de trabajo se cifra con la clave gestionada por el cliente. Si no especificas ninguna AWS KMS clave, los datos que contiene `/home/sagemaker-user` se cifran con una clave AWS gestionada. Independientemente de si se especifica una AWS KMS clave, todos los datos que se encuentran fuera del directorio de trabajo se cifran con una clave AWS gestionada.

En las siguientes secciones se explican con detalle las configuraciones que debe realizar como administrador.

**Topics**
+ [Concesión de acceso a los usuarios a los espacios](studio-updated-jl-admin-guide-permissions.md)
+ [Cambia el tamaño de almacenamiento predeterminado para tus usuarios JupyterLab](studio-updated-jl-admin-guide-storage-size.md)
+ [Configuraciones del ciclo de vida con JupyterLab](jl-lcc.md)
+ [Git repos en JupyterLab](studio-updated-jl-admin-guide-git-attach.md)
+ [Imágenes personalizadas](studio-updated-jl-admin-guide-custom-images.md)
+ [Actualiza la imagen SageMaker de distribución](studio-updated-jl-update-distribution-image.md)
+ [Eliminación de recursos sin usar](studio-updated-jl-admin-guide-clean-up.md)
+ [Cuotas](studio-updated-jl-admin-guide-quotas.md)

# Concesión de acceso a los usuarios a los espacios
<a name="studio-updated-jl-admin-guide-permissions"></a>

Para proporcionar a los usuarios acceso a espacios privados o compartidos, debe asociar una política de permisos a sus roles de IAM. También puede usar la política de permisos para restringir los espacios privados y sus aplicaciones asociadas a un perfil de usuario específico.

Con la siguiente política de permisos se otorga acceso a espacios privados y compartidos. Esto permite a los usuarios crear su propio espacio y enumerar otros espacios dentro de su dominio. Un usuario con esta política no puede obtener acceso al espacio privado de otro usuario. Para obtener información sobre espacios de Studio, consulte [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md).

Con la siguiente política de claves se proporcionan los permisos para lo siguiente:
+ Espacios privados o espacios compartidos
+ Un perfil de usuario para acceder a esos espacios

Para conceder permisos, puede reducir el ámbito de los permisos de la siguiente política y agregárselos a los roles de IAM de sus usuarios. También puede usar esta política para restringir sus espacios y sus aplicaciones asociadas a un perfil de usuario específico.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {

      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:app/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreatePresignedDomainUrl"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:user-profile/sagemaker:DomainId/sagemaker:UserProfileName"
    },
    {
      "Sid": "SMStudioAppPermissionsListAndDescribe",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListApps",
        "sagemaker:ListDomains",
        "sagemaker:ListUserProfiles",
        "sagemaker:ListSpaces",
        "sagemaker:DescribeApp",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SMStudioAppPermissionsTagOnCreate",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:*/*",
      "Condition": {
        "Null": {
          "sagemaker:TaggingAction": "false"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:space/sagemaker:DomainId/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:space/sagemaker:DomainId/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-2:111122223333:user-profile/sagemaker:DomainId/sagemaker:UserProfileName"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private",
            "Shared"
          ]
        }
      }
    },
    {
      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:app/sagemaker:DomainId/*",
      "Condition": {
        "ArnLike": {
          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-2:111122223333:user-profile/sagemaker:DomainId/sagemaker:UserProfileName"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private"
          ]
        }
      }
    }
  ]
}
```

------

# Cambia el tamaño de almacenamiento predeterminado para tus usuarios JupyterLab
<a name="studio-updated-jl-admin-guide-storage-size"></a>

Puede cambiar la configuración de almacenamiento predeterminada de sus usuarios. También puede cambiar la configuración de almacenamiento predeterminada en función de los requisitos de la organización y las necesidades de los usuarios.

Para cambiar el tamaño del almacenamiento, en esta sección se proporcionan comandos para hacer lo siguiente:

1. Actualice la configuración de almacenamiento de Amazon EBS en el dominio (dominio) de Amazon SageMaker AI.

1. Cree un perfil de usuario y especifique la configuración de almacenamiento que contiene.

Utilice los siguientes comandos AWS Command Line Interface (AWS CLI) para cambiar el tamaño de almacenamiento predeterminado.

Use el siguiente AWS CLI comando para actualizar el dominio:

```
aws --region Región de AWS sagemaker update-domain \
--domain-id domain-id \
--default-user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilice el siguiente AWS CLI comando para crear el perfil de usuario y especificar la configuración de almacenamiento predeterminada:

```
aws --region Región de AWS sagemaker create-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilice los siguientes AWS CLI comandos para actualizar la configuración de almacenamiento predeterminada en el perfil de usuario:

```
aws --region Región de AWS sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":25,
            "MaximumEbsVolumeSizeInGb":200
        }
    }
}'
```

# Configuraciones del ciclo de vida con JupyterLab
<a name="jl-lcc"></a>

Las configuraciones del ciclo de vida son scripts de shell que se activan por eventos JupyterLab del ciclo de vida, como iniciar un nuevo JupyterLab bloc de notas. Puede usar las configuraciones del ciclo de vida para automatizar la personalización de su JupyterLab entorno. Esta personalización incluye la instalación de paquetes personalizados, la configuración de extensiones de cuadernos, la precarga de conjuntos de datos y la configuración de repositorios de código fuente.

El uso de configuraciones del ciclo de vida le brinda flexibilidad y control para configurarlas de manera que se adapten JupyterLab a sus necesidades específicas. Por ejemplo, puede crear un conjunto mínimo de imágenes de contenedor base con los paquetes y las bibliotecas más utilizados. A continuación, puede utilizar las configuraciones de ciclo de vida para instalar paquetes adicionales para casos de uso específicos en los equipos de ciencia de datos y machine learning.

**nota**  
Cada script tiene un límite de **16 384 caracteres**.

**Topics**
+ [Creación de una configuración de ciclo de vida](jl-lcc-create.md)
+ [Depuración de configuraciones del ciclo de vida](jl-lcc-debug.md)
+ [Desasociación de configuraciones de ciclo de vida](jl-lcc-delete.md)

# Creación de una configuración de ciclo de vida
<a name="jl-lcc-create"></a>

En este tema se incluyen instrucciones para crear y asociar una configuración de ciclo de vida a JupyterLab. Utilice el AWS Command Line Interface (AWS CLI) o el Consola de administración de AWS para automatizar la personalización de su JupyterLab entorno.

Las configuraciones del ciclo de vida son scripts de shell activados por eventos JupyterLab del ciclo de vida, como iniciar un nuevo JupyterLab bloc de notas. Para obtener más información acerca de las configuraciones del ciclo de vida, consulte [Configuraciones del ciclo de vida con JupyterLab](jl-lcc.md).

## Creación de una configuración de ciclo de vida (AWS CLI)
<a name="jl-lcc-create-cli"></a>

Aprenda a crear una configuración de ciclo de vida con AWS Command Line Interface (AWS CLI) para automatizar la personalización de su entorno de Studio.

### Requisitos previos
<a name="jl-lcc-create-cli-prerequisites"></a>

Antes de comenzar, complete los siguientes requisitos previos: 
+  AWS CLI Actualízala siguiendo los pasos que se indican en [Instalación de la AWS CLI versión actual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Incorporado al dominio Amazon SageMaker AI. Para obtener información conceptual, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md). Para obtener una guía de inicio rápido, consulte [Utilice la configuración rápida para Amazon SageMaker AI](onboard-quick-start.md).

### Paso 1: creación de una configuración del ciclo de vida
<a name="jl-lcc-create-cli-step1"></a>

En el siguiente procedimiento se muestra cómo crear un script de configuración del ciclo de vida que presente el mensaje `Hello World`.

**nota**  
Cada script puede tener hasta **16 384 caracteres**.

1. En su equipo local, cree un archivo con el nombre `my-script.sh` que contenga lo siguiente:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Utilice lo siguiente para convertir su archivo `my-script.sh` al formato base64. Este requisito evita errores debidos a la codificación del espaciado y los saltos de línea.

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Cree una configuración del ciclo de vida para usar en Studio. Con el siguiente comando se crea una configuración de ciclo de vida que se ejecuta al inicializar una aplicación de `JupyterLab` asociada:

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-jl-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type JupyterLab
   ```

   Tenga en cuenta el ARN de la configuración del ciclo de vida recién creada que se devuelve. Este ARN es necesario para asociar la configuración del ciclo de vida a la aplicación.

### Paso 2: Adjunte la configuración del ciclo de vida a su dominio (dominio) y perfil de usuario de Amazon SageMaker AI
<a name="jl-lcc-create-cli-step2"></a>

Para asociar la configuración de ciclo de vida, debe actualizar la `UserSettings` de su dominio o perfil de usuario. Todos los usuarios heredan los scripts de configuración del ciclo de vida que estén asociados a nivel de dominio. Sin embargo, los scripts que están asociados en el nivel de perfil de usuario están dirigidos a un usuario específico. 

Para crear un perfil de usuario, un dominio o un espacio con la configuración de ciclo de vida asociada, utilice los siguientes comandos:
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

Con el siguiente comando, se crea un perfil de usuario con una configuración de ciclo de vida. Agregue el ARN de configuración de ciclo de vida del paso anterior a la `JupyterLabAppSettings` del usuario. Puede agregar varias configuraciones de ciclo de vida al mismo tiempo pasando una lista de ellas. Cuando un usuario lanza una JupyterLab aplicación con el AWS CLI, puede especificar una configuración de ciclo de vida en lugar de utilizar la configuración predeterminada. La configuración del ciclo de vida que pase el usuario debe pertenecer a la lista de configuraciones del ciclo de vida incluida en la `JupyterLabAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

## Creación de una configuración de ciclo de vida (consola)
<a name="jl-lcc-create-console"></a>

Aprenda a crear una configuración de ciclo de vida mediante la Consola de administración de AWS para automatizar la personalización de su entorno de Studio.

### Paso 1: creación de una configuración del ciclo de vida
<a name="jl-lcc-create-console-step1"></a>

Use el siguiente procedimiento para crear un script de configuración de ciclo de vida que presenta el mensaje `Hello World`.

**Para crear una configuración del ciclo de vida, realice el siguiente procedimiento:**

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

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

1. En **Configuraciones de administración**, seleccione **Configuraciones de ciclo de vida**. 

1. Elija la pestaña **JupyterLab**.

1. Seleccione **Crear configuración**.

1. En **Nombre**, especifique el nombre de la configuración de ciclo de vida.

1. En el cuadro de texto que aparece debajo de **Scripts**, especifique la siguiente configuración de ciclo de vida:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Seleccione **Crear configuración**.

### Paso 2: Adjunte la configuración del ciclo de vida a su dominio (dominio) y perfil de usuario de Amazon SageMaker AI
<a name="jl-lcc-create-console-step2"></a>

Todos los usuarios heredan los scripts de configuración del ciclo de vida asociados en el nivel de dominio. Sin embargo, los scripts que están asociados en el nivel de perfil de usuario están dirigidos a un usuario específico.

Puede adjuntar varias configuraciones de ciclo de vida a un dominio o perfil de usuario para JupyterLab.

Use el procedimiento siguiente para asociar una configuración de ciclo de vida a un dominio.

**Asociación de una configuración de ciclo de vida a un dominio**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de dominios, seleccione el dominio al que quiera asociar la configuración de ciclo de vida.

1. En **Detalles del dominio**, elija la pestaña **Entorno**.

1. En **Configuraciones de ciclo de vida para aplicaciones de Studio personales**, elija **Asociar**.

1. En **Fuente**, seleccione **Configuración existente**.

1. En **Configuraciones del ciclo de vida de Studio**, seleccione la configuración del ciclo de vida que ha creado en el paso anterior.

1. Seleccione **Asociar al dominio**.

Use el procedimiento siguiente para asociar una configuración de ciclo de vida a un perfil de usuario.

**Asociación de una configuración de ciclo de vida un perfil de usuario**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de dominios, seleccione el dominio que contenga el perfil de usuario al que desee asociar la configuración de ciclo de vida.

1. En **Perfiles de usuario**, seleccione el perfil de usuario.

1. En la página **Detalles del usuario**, elija **Editar**.

1. En el menú de navegación izquierdo, seleccione **Configuración de Studio**.

1. En **Configuraciones del ciclo de vida asociadas al usuario**, seleccione **Asociar**.

1. En **Fuente**, seleccione **Configuración existente**.

1. En **Configuraciones del ciclo de vida de Studio**, seleccione la configuración del ciclo de vida que ha creado en el paso anterior.

1. Seleccione **Adjuntar a perfil de usuario**.

# Depuración de configuraciones del ciclo de vida
<a name="jl-lcc-debug"></a>

En los siguientes temas se muestra cómo obtener información y depurar las configuraciones del ciclo de vida.

**Topics**
+ [Verifique el proceso de configuración del ciclo de vida desde CloudWatch los registros](#jl-lcc-debug-logs)
+ [Tiempo de espera de configuración del ciclo de vida](#jl-lcc-debug-timeout)

## Verifique el proceso de configuración del ciclo de vida desde CloudWatch los registros
<a name="jl-lcc-debug-logs"></a>

Las configuraciones del ciclo de vida solo registran `STDOUT` y `STDERR`.

`STDOUT` es el resultado predeterminado para los scripts bash. Se puede escribir en `STDERR` añadiendo `>&2` al final de un comando bash. Por ejemplo, `echo 'hello'>&2`. 

Los registros de las configuraciones de tu ciclo de vida se publican en Amazon CloudWatch. Cuenta de AWS Estos registros se encuentran en el flujo de `/aws/sagemaker/studio` registros de la CloudWatch consola.

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Seleccione **Registros** en el panel de navegación izquierdo. En el menú desplegable, seleccione **Grupos de registros**.

1. En la página **Grupos de registros**, busque `aws/sagemaker/studio`. 

1. Seleccione el grupo de registro.

1. En la página de **Detalles del grupo de registro**, seleccione la pestaña **Flujos de registro**.

1. Para buscar los registros de un espacio específico, busque en los flujos de registro utilizando el siguiente formato:

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   Por ejemplo, para buscar los registros de configuración del ciclo de vida del ID de dominio `d-m85lcu8vbqmz`, nombre del espacio `i-sonic-js` y tipo de aplicación `JupyterLab`, utilice la siguiente cadena de búsqueda:

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

## Tiempo de espera de configuración del ciclo de vida
<a name="jl-lcc-debug-timeout"></a>

Existe una limitación de tiempo de espera de configuración del ciclo de vida de 5 minutos. Si un script de configuración de ciclo de vida tarda más de 5 minutos en ejecutarse, se obtiene un error.

Para resolver este error, asegúrese de que el script de configuración de ciclo de vida se complete en menos de 5 minutos. 

Para ayudar a reducir el tiempo de ejecución de los scripts, pruebe lo siguiente:
+ Reduzca los pasos innecesarios. Por ejemplo, limite los entornos de conda donde se instalarán paquetes de gran tamaño.
+ Ejecute tareas en procesos paralelos.
+ Utilice el comando nohup en el script para asegurarse de que se omitan las señales de bloqueo para que el script se ejecute sin detenerse.

# Desasociación de configuraciones de ciclo de vida
<a name="jl-lcc-delete"></a>

Para actualizar el script, debe crear un nuevo script de configuración del ciclo de vida y adjuntarlo al dominio (dominio), perfil de usuario o espacio compartido de Amazon SageMaker AI correspondiente. Un script de configuración del ciclo de vida no se puede cambiar después de crearlo. Para obtener más información acerca de la creación y asociación de un configuración de ciclo de vida, consulte [Creación de una configuración de ciclo de vida](jl-lcc-create.md).

En el siguiente tema se muestra cómo desasociar una configuración de ciclo de vida mediante la AWS Command Line Interface (AWS CLI).

## Desconéctelo mediante el AWS CLI
<a name="jl-lcc-delete-cli"></a>

Para desasociar una configuración de ciclo de vida mediante la AWS CLI, elimine la configuración de ciclo de vida deseada de la lista de configuraciones de ciclo de vida asociadas al recurso: A continuación, pase la lista como parte del comando correspondiente:
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

Por ejemplo, el siguiente comando elimina todas las configuraciones del ciclo de vida de la JupyterLab aplicación que está adjunta al dominio.

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# Git repos en JupyterLab
<a name="studio-updated-jl-admin-guide-git-attach"></a>

JupyterLab ofrece una extensión de Git para introducir la URL de un repositorio de Git (repo), clonarlo en un entorno, insertar cambios y ver el historial de confirmaciones. También puedes adjuntar el repositorio de Git sugerido URLs a un dominio (dominio) o perfil de usuario de Amazon SageMaker AI.

En las siguientes secciones se muestra cómo adjuntar o separar un repositorio URLs de Git.

**Topics**
+ [Asociación de un repositorio de Git (AWS CLI)](studio-updated-git-attach-cli.md)
+ [Separar el repositorio de Git URLs](studio-updated-git-detach.md)

# Asociación de un repositorio de Git (AWS CLI)
<a name="studio-updated-git-attach-cli"></a>

En esta sección se muestra cómo adjuntar una URL de repositorio (repo) de Git mediante. AWS CLI Después de asociar la URL del repositorio de Git, puede clonarla siguiendo los pasos que se indican en [Clona un repositorio de Git en Amazon Studio SageMaker](#studio-updated-tasks-git).

## Requisitos previos
<a name="studio-updated-git-attach-cli-prerequisites"></a>

Antes de comenzar, complete los siguientes requisitos previos: 
+  AWS CLI Actualícela siguiendo los pasos que se indican en [Instalación de la AWS Command Line Interface versión actual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Incorporado al dominio Amazon SageMaker AI. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Adjunta el repositorio de Git a un dominio (dominio) o perfil de usuario de Amazon SageMaker AI
<a name="studio-updated-git-attach-cli-attach"></a>

Todos los usuarios URLs heredan los repositorios de Git que están asociados a nivel de dominio. Sin embargo, los repositorios de Git URLs que están asociados a nivel de perfil de usuario están dirigidos a un usuario específico. Puedes adjuntar varios repositorios de Git URLs a un dominio de Amazon SageMaker AI o a un perfil de usuario pasando una lista de repositorios URLs.

En las siguientes secciones se muestra cómo asociar una URL de repositorio de Git a su dominio y perfil de usuario.

### Adjuntar a un dominio de Amazon SageMaker AI
<a name="studio-updated-git-attach-cli-attach-domain"></a>

El siguiente comando asocia una URL de repositorio de Git a un dominio existente: 

```
aws sagemaker update-domain --region region --domain-id domain-id \
    --default-user-settings JupyterLabAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

### Asociación a un perfil de usuario
<a name="studio-updated-git-attach-cli-attach-userprofile"></a>

El siguiente comando asocia una URL de repositorio de Git a un perfil de usuario existente:

```
aws sagemaker update-user-profile --domain-id domain-id --user-profile-name user-name\
    --user-settings JupyterLabAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

## Clona un repositorio de Git en Amazon Studio SageMaker
<a name="studio-updated-tasks-git"></a>

Amazon SageMaker Studio se conecta únicamente a un repositorio de Git local. Para obtener acceso a los archivos del repositorio, clone el repositorio de Git desde Studio. Para ello, Studio ofrece una extensión de Git para introducir la URL de un repositorio de Git, clonarlo en su entorno, insertar cambios y ver el historial de confirmaciones. 

Si el repositorio es privado y requiere credenciales para obtener acceso, se le solicitará que introduzca sus credenciales de usuario. Las credenciales incluyen su nombre de usuario y su token de acceso personal. Para más información sobre los tokens de acceso personal, consulte [Administración de sus tokens de acceso personal](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

Los administradores también pueden adjuntar el repositorio Git sugerido URLs a nivel de dominio o perfil de usuario de Amazon SageMaker AI. Los usuarios pueden seleccionar la URL del repositorio de la lista de sugerencias y clonarla en Studio. Para obtener más información acerca de cómo asociar los repositorios sugeridos, consulte [Adjunta los repositorios de Git sugeridos a Amazon SageMaker Studio Classic](studio-git-attach.md).

# Separar el repositorio de Git URLs
<a name="studio-updated-git-detach"></a>

En esta sección se muestra cómo separar el repositorio URLs de Git de un dominio (dominio) de Amazon SageMaker AI o de un perfil de usuario. Puede separar el repositorio URLs mediante AWS Command Line Interface (AWS CLI) o la consola Amazon SageMaker AI.

## Separe un repositorio de Git mediante el AWS CLI
<a name="studio-updated-git-detach-cli"></a>

Para separar todos los repositorios de Git URLs de un dominio o perfil de usuario, debes pasar una lista vacía de repositorios de código. Esta lista se pasa como parte del parámetro `JupyterLabAppSettings` de un comando `update-domain` o `update-user-profile`. Para desasociar solo una URL del repositorio de Git, pase la lista de repositorios de código sin la URL del repositorio de Git deseada. 

### Separar de un dominio de Amazon SageMaker AI
<a name="studio-updated-git-detach-cli-domain"></a>

El siguiente comando separa todos los repositorios de Git URLs de un dominio:

```
aws sagemaker update-domain --region region --domain-name domain-name \
    --domain-settings JupyterLabAppSettings={CodeRepositories=[]}
```

### Desasociación de un perfil de usuario
<a name="studio-updated-git-detach-cli-userprofile"></a>

El siguiente comando separa todos los repositorios de Git URLs de un perfil de usuario:

```
aws sagemaker update-user-profile --domain-name domain-name --user-profile-name user-name\
    --user-settings JupyterLabAppSettings={CodeRepositories=[]}
```

# Imágenes personalizadas
<a name="studio-updated-jl-admin-guide-custom-images"></a>

Si necesitas una funcionalidad diferente a la que proporciona la SageMaker distribución, puedes traer tu propia imagen con tus extensiones y paquetes personalizados. También puedes usarla para personalizar la JupyterLab interfaz de usuario según tus propias necesidades de marca o de conformidad.

La siguiente página proporcionará información y plantillas JupyterLab específicas para crear tus propias imágenes de SageMaker IA personalizadas. El objetivo es complementar la información y las instrucciones de Amazon SageMaker Studio sobre cómo crear tu propia imagen de SageMaker IA y llevar tu propia imagen a Studio. Para obtener más información sobre las imágenes personalizadas de Amazon SageMaker AI y cómo llevar tu propia imagen a Studio, consulta[Bring your own image (BYOI)](studio-updated-byoi.md). 

**Topics**
+ [Comprobación de estado y URL de las aplicaciones](#studio-updated-jl-admin-guide-custom-images-app-healthcheck)
+ [Ejemplos de Dockerfile](#studio-updated-jl-custom-images-dockerfile-templates)

## Comprobación de estado y URL de las aplicaciones
<a name="studio-updated-jl-admin-guide-custom-images-app-healthcheck"></a>
+ `Base URL`: la URL base de la aplicación BYOI debe ser `jupyterlab/default`. Solo puede tener una aplicación y siempre debe denominarse `default`.
+ `HealthCheck API`— La SageMaker IA utiliza el punto final de comprobación de estado del puerto `8888` para comprobar el estado de la JupyterLab aplicación. `jupyterlab/default/api/status`es el punto final del chequeo de estado.
+ `Home/Default URL`— Los `/opt/ml` directorios `/opt/.sagemakerinternal` y que utiliza AWS. El archivo de metadatos de `/opt/ml` contiene metadatos sobre recursos como `DomainId`.
+ Autenticación: para habilitar la autenticación de los usuarios, desactive la autenticación basada en token o contraseña de cuaderno de Jupyter y permita todos los orígenes.

## Ejemplos de Dockerfile
<a name="studio-updated-jl-custom-images-dockerfile-templates"></a>

Los siguientes ejemplos son `Dockerfile` que cumplen con la información y [Especificaciones de imágenes personalizadas](studio-updated-byoi-specs.md) anteriores.

**nota**  
Si va a traer su propia imagen a SageMaker Unified Studio, tendrá que seguir las [especificaciones de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) de la Guía del *usuario de Amazon SageMaker Unified Studio*.  
`Dockerfile`Puedes encontrar ejemplos de SageMaker Unified Studio en el [ejemplo de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) de la Guía del *usuario de Amazon SageMaker Unified Studio*.

------
#### [ Example AL2023 Dockerfile ]

El siguiente es un ejemplo de Dockerfile de AL2023 que cumple con la información y [Especificaciones de imágenes personalizadas](studio-updated-byoi-specs.md) anteriores.

```
FROM public.ecr.aws/amazonlinux/amazonlinux:2023

ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

# Install Python3, pip, and other dependencies
RUN yum install -y \
    python3 \
    python3-pip \
    python3-devel \
    gcc \
    shadow-utils && \
    useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \
    yum clean all

RUN python3 -m pip install --no-cache-dir \
    'jupyterlab>=4.0.0,<5.0.0' \
    urllib3 \
    jupyter-activity-monitor-extension \
    --ignore-installed

# Verify versions
RUN python3 --version && \
    jupyter lab --version

USER ${NB_UID}
CMD jupyter lab --ip 0.0.0.0 --port 8888 \
    --ServerApp.base_url="/jupyterlab/default" \
    --ServerApp.token='' \
    --ServerApp.allow_origin='*'
```

------
#### [ Example  SageMaker Distribución en Amazon Dockerfile ]

El siguiente es un ejemplo de Dockerfile de Amazon SageMaker Distribution que cumple con la información y [Especificaciones de imágenes personalizadas](studio-updated-byoi-specs.md) anteriores.

```
FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

ENV MAMBA_USER=$NB_USER

USER root

RUN apt-get update
RUN micromamba install sagemaker-inference --freeze-installed --yes --channel conda-forge --name base

USER $MAMBA_USER

ENTRYPOINT ["entrypoint-jupyter-server"]
```

------

# Actualiza la imagen SageMaker de distribución
<a name="studio-updated-jl-update-distribution-image"></a>

**importante**  
En este tema se da por hecho que ha creado un espacio y ha proporcionado acceso al usuario. Para obtener más información, consulte [Concesión de acceso a los usuarios a los espacios](studio-updated-jl-admin-guide-permissions.md).

Actualice los JupyterLab espacios que ya ha creado para usar la última versión de la imagen de SageMaker distribución para acceder a las funciones más recientes. Puedes usar la interfaz de usuario de Studio o AWS Command Line Interface (AWS CLI) para actualizar la imagen.

En las siguientes secciones se proporciona información sobre la actualización de una imagen.

## Actualización de la imagen (interfaz de usuario)
<a name="studio-updated-jl-update-distribution-image-ui"></a>

La actualización de la imagen implica reiniciar el JupyterLab espacio del usuario. Utilice el siguiente procedimiento para actualizar el JupyterLab espacio de usuario con la imagen más reciente.

**Actualización de la imagen (interfaz de usuario)**

1. Abra Studio. Para obtener información sobre cómo abrir Studio, consulte [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. Elija **JupyterLab**.

1. Seleccione el JupyterLab espacio de su usuario.

1. Elija **Detener espacio**.

1. En **Imagen**, seleccione una versión actualizada de la imagen de distribución de SageMaker IA. Para obtener la imagen más reciente, seleccione **Más reciente**.

1. Seleccione **Ejecutar espacio**.

## Actualización de la imagen (AWS CLI)
<a name="studio-updated-jl-update-distribution-image-cli"></a>

En esta sección se supone que tiene instalado el AWS Command Line Interface (AWS CLI). Para obtener información sobre cómo instalar el AWS CLI, consulte [Instalar o actualizar a la última versión del AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Para actualizar la imagen, debe hacer lo siguiente en su espacio de usuario:

1. Elimine la JupyterLab aplicación

1. Actualización del espacio

1. Creación de la aplicación

**importante**  
Debe tener preparada la siguiente información antes de comenzar a actualizar la imagen:  
ID de dominio: el ID del dominio de Amazon SageMaker AI de tu usuario.
Tipo de aplicación — JupyterLab.
Nombre de la aplicación: default
Nombre del espacio: nombre especificado para el espacio
Tipo de instancia: tipo de instancia de Amazon EC2 que está utilizando para ejecutar la aplicación Por ejemplo, `ml.t3.medium`.
SageMaker ARN de imagen: el nombre del recurso de Amazon (ARN) de la imagen de distribución de SageMaker IA. Puede proporcionar la última versión de la imagen de distribución de SageMaker IA especificando uno `sagemaker-distribution-cpu` o `sagemaker-distribution-gpu` como identificador del recurso.

Para eliminar la JupyterLab aplicación, ejecute el siguiente comando:

```
aws sagemaker delete-app \
--domain-id your-user's-domain-id 
--app-type JupyterLab \
--app-name default \
--space-name name-of-your-user's-space
```

Para actualizar el espacio de usuario, ejecute el comando siguiente:

```
aws sagemaker update-space \
--space-name name-of-your-user's-space \
--domain-id your-user's-domain-id
```

Si ha actualizado el espacio correctamente, aparecerá el ARN del espacio en la respuesta:

```
{
"SpaceArn": "arn:aws:sagemaker:Región de AWS:111122223333:space/your-user's-domain-id/name-of-your-user's-space"
}
```

Para crear la aplicación, ejecute el comando siguiente:

```
aws sagemaker create-app \
--domain-id your-user's-domain-id  \
--app-type JupyterLab \
--app-name default \
--space-name name-of-your-user's-space \
--resource-spec "InstanceType=instance-type,SageMakerImageArn=arn:aws:sagemaker:Región de AWS:555555555555:image/sagemaker-distribution-resource-identifier"
```

# Eliminación de recursos sin usar
<a name="studio-updated-jl-admin-guide-clean-up"></a>

Para evitar incurrir en costes de explotación adicionales JupyterLab, recomendamos eliminar los recursos no utilizados en el siguiente orden:

1. JupyterLab aplicaciones

1. Espacios

1. Perfiles de usuario

1. domains

Utilice los siguientes comandos AWS Command Line Interface (AWS CLI) para eliminar los recursos de un dominio:

------
#### [ Delete a JupyterLab application ]

```
aws --region Región de AWS sagemaker delete-app --domain-id example-domain-id --app-name default --app-type JupyterLab --space-name example-space-name
```

------
#### [ Delete a space ]

**importante**  
Si elimina un espacio, elimina el volumen de Amazon EBS asociado a él. Recomendamos que se haga una copia de seguridad de los datos valiosos antes de eliminar el espacio.

```
aws --region Región de AWS sagemaker delete-space --domain-id example-domain-id  --space-name example-space-name
```

------
#### [ Delete a user profile ]

```
aws --region Región de AWS sagemaker delete-user-profile --domain-id example-domain-id --user-profile example-user-profile
```

------

# Cuotas
<a name="studio-updated-jl-admin-guide-quotas"></a>

JupyterLab, tiene cuotas para lo siguiente:
+ La suma de todos los volúmenes de Amazon EBS dentro de una Cuenta de AWS.
+ Los tipos de instancias que están disponibles para sus usuarios.
+ El número de instancias de un tipo concreto que los usuarios pueden inicializar.

Para obtener más almacenamiento y computación para sus usuarios, puede solicitar un aumento de sus cuotas de AWS . Para obtener más información sobre cómo solicitar un aumento de cuota, consulta los [puntos de conexión y las cuotas de Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Instancias de Amazon SageMaker Notebook
<a name="nbi"></a>

Una instancia de Amazon SageMaker Notebook es una instancia de procesamiento de aprendizaje automático (ML) que ejecuta la aplicación Jupyter Notebook. Una de las mejores maneras para que los profesionales del aprendizaje automático (ML) utilicen Amazon SageMaker AI es entrenar e implementar modelos de aprendizaje automático mediante instancias de SageMaker notebook. Las instancias de SageMaker notebook ayudan a crear el entorno al iniciar los servidores de Jupyter en Amazon Elastic Compute Cloud (Amazon EC2) y proporcionar núcleos preconfigurados con los siguientes paquetes: SageMaker Amazon Python AWS SDK para Python (Boto3) SDK AWS Command Line Interface ,, (), Conda, Pandas AWS CLI, bibliotecas de marcos de aprendizaje profundo y otras bibliotecas para ciencia de datos y aprendizaje automático.

Utilice los cuadernos de Jupyter en su instancia de cuaderno para:
+ preparar y procesar datos
+ escribir código para entrenar modelos
+ implementar modelos en el alojamiento SageMaker 
+ probar o validar modelos

Para obtener información sobre los precios de Amazon SageMaker Notebook Instance, consulta [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

## Mantenimiento
<a name="nbi-maintenance"></a>

SageMaker La IA actualiza el software subyacente de las instancias de Amazon SageMaker Notebook al menos una vez cada 90 días. Algunas actualizaciones de mantenimiento, como las actualizaciones del sistema operativo, pueden requerir que la aplicación se desconecte durante un breve período de tiempo. No es posible realizar ninguna operación durante este período mientras se actualiza el software subyacente. Le recomendamos que reinicie sus cuadernos al menos una vez cada 30 días para que los parches se apliquen automáticamente.

Si la instancia del portátil no está actualizada y ejecuta un software no seguro, la SageMaker IA podría actualizar periódicamente la instancia como parte del mantenimiento regular. Durante estas actualizaciones, los datos que se encuentran fuera de la carpeta no `/home/ec2-user/SageMaker` se conservan.

Para obtener más información, póngase en contacto con [AWS Support](https://aws.amazon.com/premiumsupport/).

## Machine Learning con el SDK de SageMaker Python
<a name="gs-ml-with-sagemaker-pysdk"></a>

Para entrenar, validar, implementar y evaluar un modelo de aprendizaje automático en una instancia de SageMaker notebook, usa el SDK de SageMaker Python. Los resúmenes del SDK de SageMaker Python AWS SDK para Python (Boto3) y las operaciones de SageMaker la API. Le permite integrarse y organizar otros AWS servicios, como Amazon Simple Storage Service (Amazon S3) para guardar datos y artefactos de modelos, Amazon Elastic Container Registry (ECR) para importar y reparar los modelos de aprendizaje automático y Amazon Elastic Compute Cloud (Amazon EC2) para entrenamiento e inferencia.

También puede aprovechar las funciones de SageMaker IA que le ayudan a gestionar todas las etapas de un ciclo completo de aprendizaje automático: etiquetado de datos, preprocesamiento de datos, entrenamiento de modelos, despliegue de modelos, evaluación del rendimiento de las predicciones y supervisión de la calidad del modelo en producción.

Si es la primera vez que utiliza SageMaker IA, le recomendamos que utilice el SDK de SageMaker Python siguiendo el tutorial de end-to-end ML. Para encontrar la documentación de código abierto, consulte el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

**Topics**
+ [Mantenimiento](#nbi-maintenance)
+ [Machine Learning con el SDK de SageMaker Python](#gs-ml-with-sagemaker-pysdk)
+ [Tutorial para crear modelos con instancias de Notebook](gs-console.md)
+ [AL2023 instancias de bloc de notas](nbi-al2023.md)
+ [Instancias de cuaderno de Amazon Linux 2](nbi-al2.md)
+ [JupyterLab control de versiones](nbi-jl.md)
+ [Crear una instancia de Amazon SageMaker Notebook](howitworks-create-ws.md)
+ [Acceso a instancias de cuaderno](howitworks-access-ws.md)
+ [Actualización de una instancia de cuaderno.](nbi-update.md)
+ [Personalización de una instancia de SageMaker bloc de notas mediante un script LCC](notebook-lifecycle-config.md)
+ [Establecimiento del kernel del cuaderno](howitworks-set-kernel.md)
+ [Repositorios de Git con instancias de SageMaker AI Notebook](nbi-git-repo.md)
+ [Metadatos de instancias de cuadernos](nbi-metadata.md)
+ [Supervise los registros de Jupyter en Amazon Logs CloudWatch](jupyter-logs.md)

# Tutorial para crear modelos con instancias de Notebook
<a name="gs-console"></a>

Este tutorial de introducción explica cómo crear una instancia de SageMaker bloc de notas, abrir un cuaderno de Jupyter con un núcleo preconfigurado con el entorno Conda para el aprendizaje automático e iniciar una sesión de SageMaker IA para ejecutar un ciclo de aprendizaje automático. end-to-end Aprenderá a guardar un conjunto de datos en un bucket de Amazon S3 predeterminado que se empareja automáticamente con la sesión de SageMaker IA, a enviar un trabajo de formación de un modelo de aprendizaje automático a Amazon EC2 y a implementar el modelo entrenado para la predicción mediante alojamiento o inferencia por lotes a través de Amazon EC2. 

En este tutorial se muestra de forma explícita un flujo completo de aprendizaje automático en el que se entrena el XGBoost modelo a partir del conjunto de modelos integrados en la SageMaker IA. Utiliza el [conjunto de datos del censo de adultos de EE](https://archive.ics.uci.edu/ml/datasets/adult). UU. y evalúa el rendimiento del XGBoost modelo de SageMaker IA entrenado a la hora de predecir los ingresos de las personas.
+ [SageMaker IA XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html): el [XGBoost](https://xgboost.readthedocs.io/en/latest/)modelo está adaptado al entorno de SageMaker IA y preconfigurado como contenedores Docker. SageMaker La IA proporciona un conjunto de [algoritmos integrados](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html) que están preparados para utilizar las funciones de la SageMaker IA. Para obtener más información sobre qué algoritmos de aprendizaje automático se adaptan a la SageMaker IA, consulte [Elegir un algoritmo](https://docs.aws.amazon.com/sagemaker/latest/dg/algorithms-choose.html) y [utilizar los algoritmos SageMaker integrados de Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). Para ver las operaciones de la API de los algoritmos integrados de SageMaker IA, consulte [Prist-Party Algorithms](https://sagemaker.readthedocs.io/en/stable/algorithms/index.html) en el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).
+ [Conjunto de datos del censo de adultos](https://archive.ics.uci.edu/ml/datasets/adult): el conjunto de datos de la [base de datos de la oficina del censo de 1994](http://www.census.gov/en.html) creado por Ronny Kohavi y Barry Becker (minería y visualización de datos, Silicon Graphics). El XGBoost modelo de SageMaker IA se entrena con este conjunto de datos para predecir si una persona gana más de 50 000\$1 al año o menos.

**Topics**
+ [Crear una instancia de Amazon SageMaker Notebook para el tutorial](gs-setup-working-env.md)
+ [Cree un cuaderno de Jupyter en la instancia de bloc de SageMaker notas](ex1-prepare.md)
+ [Preparación de un conjunto de datos](ex1-preprocess-data.md)
+ [Capacitación de un modelo](ex1-train-model.md)
+ [Implementación del modelo en Amazon EC2](ex1-model-deployment.md)
+ [Evaluación del modelo](ex1-test-model.md)
+ [Limpia los recursos de instancias de Amazon SageMaker Notebook](ex1-cleanup.md)

# Crear una instancia de Amazon SageMaker Notebook para el tutorial
<a name="gs-setup-working-env"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Una instancia de Amazon SageMaker Notebook es una instancia de procesamiento de Amazon Elastic Compute Cloud (Amazon EC2) de aprendizaje automático (ML) totalmente gestionada. Una instancia de Amazon SageMaker Notebook ejecuta la aplicación Jupyter Notebook. Utilice la instancia de cuaderno para crear y administrar cuadernos de Jupyter para preprocesar datos y entrenar e implementar modelos de ML.

**Para crear una instancia de bloc de notas SageMaker**  
![\[Captura de pantalla animada que muestra cómo crear una instancia de SageMaker bloc de notas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-create-instance.gif)

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

1. Elija **Instancias de bloc de notas** y, a continuación, **Crear instancia de bloc de notas**.

1. En la página **Crear instancia del bloc de notas**, facilite la siguiente información (si no se menciona un campo, deje los valores predeterminados):

   1. Para **Nombre de instancia del bloc de notas**, escriba un nombre para su instancia de cuaderno.

   1. En **Tipo de instancia de bloc de notas**, elija `ml.t2.medium`. Este es el tipo de instancia más económica que admiten las instancias de cuaderno y es suficiente para este ejercicio. Si un tipo de instancia `ml.t2.medium` no está disponible en su región de AWS actual, elija `ml.t3.medium`.

   1. En **Identificador de plataforma**, elija un tipo de plataforma en el que crear la instancia del cuaderno. Este tipo de plataforma define el sistema operativo y la JupyterLab versión con la que se crea la instancia de su notebook. La versión más reciente y recomendada es `notebook-al2023-v1` para una instancia de notebook Amazon Linux 2023. Para obtener información sobre los tipos de identificadores de plataforma, consulte [AL2023 instancias de bloc de notas](nbi-al2023.md) y[Instancias de cuaderno de Amazon Linux 2](nbi-al2.md). Para obtener información sobre JupyterLab las versiones, consulte[JupyterLab control de versiones](nbi-jl.md).

   1. Para el **Rol de IAM**, seleccione **Crear un nuevo rol** y, a continuación, elija **Crear rol**. Este rol de IAM obtiene automáticamente permisos para obtener acceso a cualquier bucket que tenga `sagemaker` en el nombre. Obtiene estos permisos a través `AmazonSageMakerFullAccess` de la política, que la SageMaker IA asocia al rol. 
**nota**  
Si quiere conceder al rol de IAM permiso para acceder a los buckets de S3 sin incluir `sagemaker` en el nombre, tiene que asociar la política de `S3FullAccess`. También puede limitar los permisos a buckets de S3 específicos del rol de IAM. Para obtener más información y ejemplos de cómo añadir políticas de bucket al rol de IAM, consulte los [Ejemplos de políticas de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).

   1. Elija **Crear instancia de bloc de notas**. 

      En unos minutos, SageMaker AI lanza una instancia de notebook y le adjunta un volumen de almacenamiento de Amazon EBS de 5 GB. La instancia de notebook tiene un servidor de notebook Jupyter preconfigurado, bibliotecas de SageMaker IA y AWS SDK y un conjunto de bibliotecas Anaconda.

      [Para obtener más información sobre cómo crear una instancia de bloc de notas, consulte Crear una instancia de SageMaker bloc de notas.](https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-create-ws.html) 

## (Opcional) Cambie la configuración de la instancia de SageMaker Notebook
<a name="gs-change-ni-settings"></a>

Para cambiar el tipo de instancia de cómputo de aprendizaje automático o el tamaño del almacenamiento de Amazon EBS de una instancia de bloc de notas de SageMaker IA, edite la configuración de la instancia de bloc de notas.

**Para cambiar y actualizar el tipo de instancia de SageMaker Notebook y el volumen de EBS**

1. En la página de **instancias de Notebook** de la consola de SageMaker AI, elige tu instancia de Notebook.

1. Elija **Acciones**, seleccione **Detener** y espere hasta que la instancia del cuaderno se detenga por completo.

1. Cuando el estado de la instancia del cuaderno cambie a **Detenida**, elija **Acciones** y, a continuación, elija **Actualizar configuración**.  
![\[Captura de pantalla animada que muestra cómo actualizar la configuración de las instancias de SageMaker Notebook.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-update-instance.gif)

   1. Para el **Tipo de instancia de bloc de notas**, elija un tipo de instancia de ML diferente.

   1. En **Tamaño de volumen en GB**, escriba un entero diferente para especificar un nuevo tamaño de volumen de EBS.
**nota**  
Los volúmenes de almacenamiento de EBS están cifrados, por lo que la SageMaker IA no puede determinar la cantidad de espacio libre disponible en el volumen. Por este motivo, puede aumentar el tamaño del volumen al actualizar una instancia de cuaderno, pero no puede reducir el tamaño del volumen. Si desea reducir el tamaño del volumen de almacenamiento de machine learning en uso, cree otra instancia de cuaderno con el tamaño deseado. 

1. En la parte inferior de la página, elija **Actualizar instancia de cuaderno**. 

1. Cuando se complete la actualización, **Inicie** la instancia del cuaderno con la nueva configuración.

Para obtener más información sobre cómo actualizar la configuración de las instancias de SageMaker bloc de notas, consulte [Actualizar una instancia de bloc](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-update.html) de notas. 

## (Opcional) Configuración avanzada para instancias de SageMaker Notebook
<a name="gs-ni-advanced-settings"></a>

El siguiente vídeo tutorial muestra cómo configurar y utilizar las instancias de SageMaker notebook a través de la consola de SageMaker IA. Incluye opciones avanzadas, como la configuración del ciclo de vida de la SageMaker IA y la importación de GitHub repositorios. (Duración: 26:04)

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/X5CLunIzj3U/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/X5CLunIzj3U)


Para obtener la documentación completa sobre las instancias de SageMaker notebook, consulte [Uso de Amazon SageMaker Notebook Instances](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html).

# Cree un cuaderno de Jupyter en la instancia de bloc de SageMaker notas
<a name="ex1-prepare"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Para empezar a crear scripts para entrenar e implementar su modelo, cree un cuaderno de Jupyter en la SageMaker instancia de bloc de notas. Con el cuaderno de Jupyter, puede ejecutar experimentos de aprendizaje automático (ML) para el entrenamiento y la inferencia y, al mismo tiempo, utilizar SageMaker las funciones de IA y la infraestructura. AWS 

**Para crear un cuaderno de Jupyter, realice el siguiente procedimiento:**  
![\[Captura de pantalla animada que muestra cómo crear un cuaderno de Jupyter en la instancia de cuaderno de IA. SageMaker\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-create-notebook.gif)

1. Abra la instancia de cuaderno de la siguiente manera:

   1. Inicia sesión en la consola de SageMaker IA en. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

   1. En la página **Instancias de cuaderno**, abra su instancia de cuaderno seleccionando una de las siguientes opciones:
      + **Abre JupyterLab** para la JupyterLab interfaz
      + **Abrir Jupyter** para la vista clásica de Jupyter
**nota**  
Si el estado de la instancia de cuaderno muestra **Pendiente** en la columna **Estado**, su instancia de cuaderno todavía se está creando. El estado cambiará a **InService**cuando la instancia del bloc de notas esté lista para usarse. 

1. Cree un cuaderno de la siguiente manera: 
   + Si ha abierto el bloc de notas en la JupyterLab vista, en el menú **Archivo**, seleccione **Nuevo** y, a continuación, seleccione **Bloc de notas**. En **Seleccionar kernel**, elija **conda\$1python3**. Este entorno preinstalado incluye la instalación de Anaconda predeterminada y Python 3.
   + Si ha abierto el cuaderno en la vista clásica de Jupyter, en la pestaña **Archivos**, elija **Nuevo** y **conda\$1python3**. Este entorno preinstalado incluye la instalación de Anaconda predeterminada y Python 3.

1. Guarde los cuadernos de la siguiente manera:
   + En la JupyterLab vista, seleccione **Archivo**, seleccione **Guardar bloc de notas como...** y, a continuación, cambie el nombre del bloc de notas.
   + En la vista clásica de Jupyter, seleccione **Archivo**, seleccione **Guardar como...** y, a continuación, cambie el nombre del cuaderno.

# Preparación de un conjunto de datos
<a name="ex1-preprocess-data"></a>

En este paso, cargue el [conjunto de datos del censo de adultos](https://archive.ics.uci.edu/ml/datasets/adult) en su instancia de notebook mediante la biblioteca SHAP (SHapley Additive Explanations), revise el conjunto de datos, lo transforme y lo cargue en Amazon S3. SHAP es un enfoque de teoría de juegos para explicar el resultado de cualquier modelo de machine learning. Para obtener más información sobre SHAP, consulte la [Bienvenida a la documentación de SHAP](https://shap.readthedocs.io/en/latest/).

Para ejecutar el siguiente ejemplo, pegue el código de ejemplo en una celda de la instancia de su cuaderno.

## Carga del conjunto de datos del censo de adultos mediante SHAP
<a name="ex1-preprocess-data-pull-data"></a>

Con la biblioteca SHAP, importe el conjunto de datos del censo de adultos como se muestra a continuación:

```
import shap
X, y = shap.datasets.adult()
X_display, y_display = shap.datasets.adult(display=True)
feature_names = list(X.columns)
feature_names
```

**nota**  
Si el kernel de Jupyter actual no tiene la biblioteca SHAP, instálelo ejecutando el siguiente comando `conda`:  

```
%conda install -c conda-forge shap
```
Si lo está utilizando JupyterLab, debe actualizar el núcleo manualmente una vez finalizada la instalación y las actualizaciones. Ejecute el siguiente IPython script para cerrar el núcleo (el núcleo se reiniciará automáticamente):  

```
import IPython
IPython.Application.instance().kernel.do_shutdown(True)
```

El objeto de lista `feature_names` debería devolver la siguiente lista de características: 

```
['Age',
 'Workclass',
 'Education-Num',
 'Marital Status',
 'Occupation',
 'Relationship',
 'Race',
 'Sex',
 'Capital Gain',
 'Capital Loss',
 'Hours per week',
 'Country']
```

**sugerencia**  
Si estás empezando con datos sin etiquetar, puedes usar Amazon SageMaker Ground Truth para crear un flujo de trabajo de etiquetado de datos en cuestión de minutos. Para obtener más información, consulte [Etiquetado de datos](https://docs.aws.amazon.com/sagemaker/latest/dg/data-label.html). 

## Información general del conjunto de datos
<a name="ex1-preprocess-data-inspect"></a>

Ejecute el siguiente script para mostrar la descripción estadística del conjunto de datos y los histogramas de las características numéricas.

```
display(X.describe())
hist = X.hist(bins=30, sharey=True, figsize=(20, 10))
```

![\[Descripción general del conjunto de datos del censo de adultos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-1.png)


**sugerencia**  
Si desea utilizar un conjunto de datos que deba limpiarse y transformarse, puede simplificar y agilizar el preprocesamiento de datos y la ingeniería de características con Amazon SageMaker Data Wrangler. Para obtener más información, consulte [Preparar datos de aprendizaje automático con Amazon SageMaker Data Wrangler](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler.html).

## División de los datos en conjuntos de entrenamiento, validación y prueba.
<a name="ex1-preprocess-data-transform"></a>

Con Sklearn, puede dividir el conjunto de datos en un conjunto de entrenamiento y un conjunto de prueba. El conjunto de entrenamiento se usa para entrenar el modelo, mientras que el conjunto de prueba se usa para evaluar el rendimiento del modelo entrenado final. El conjunto de datos se clasifica aleatoriamente con la semilla aleatoria fija: el 80 por ciento del conjunto de datos para el conjunto de entrenamiento y el 20 por ciento para el conjunto de prueba.

```
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
X_train_display = X_display.loc[X_train.index]
```

Divida el conjunto de entrenamiento para separar un conjunto de validación. El conjunto de validación se utiliza para evaluar el rendimiento del modelo entrenado y, al mismo tiempo, ajustar los hiperparámetros del modelo. El 75 por ciento del conjunto de entrenamiento se convierte en el conjunto de entrenamiento final y el resto es el conjunto de validación.

```
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=1)
X_train_display = X_display.loc[X_train.index]
X_val_display = X_display.loc[X_val.index]
```

Con el paquete de pandas, alinee de forma explícita cada conjunto de datos concatenando las características numéricas con las etiquetas verdaderas.

```
import pandas as pd
train = pd.concat([pd.Series(y_train, index=X_train.index,
                             name='Income>50K', dtype=int), X_train], axis=1)
validation = pd.concat([pd.Series(y_val, index=X_val.index,
                            name='Income>50K', dtype=int), X_val], axis=1)
test = pd.concat([pd.Series(y_test, index=X_test.index,
                            name='Income>50K', dtype=int), X_test], axis=1)
```

Compruebe si el conjunto de datos está dividido y estructurado como se esperaba:

```
train
```

![\[El conjunto de datos de entrenamiento de ejemplo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-2-train.png)


```
validation
```

![\[El conjunto de datos de validación de ejemplo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-2-validation.png)


```
test
```

![\[El conjunto de datos de prueba de ejemplo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-2-test.png)


## Conversión de los conjuntos de datos de entrenamiento y validación en archivos CSV
<a name="ex1-preprocess-data-transform-2"></a>

Convierta los objetos `train` y el `validation` marco de datos en archivos CSV para que coincidan con el formato de archivo de entrada del algoritmo. XGBoost 

```
# Use 'csv' format to store the data
# The first column is expected to be the output column
train.to_csv('train.csv', index=False, header=False)
validation.to_csv('validation.csv', index=False, header=False)
```

## Carga de los conjuntos de datos en Amazon S3
<a name="ex1-preprocess-data-transform-4"></a>

Con la SageMaker IA y Boto3, cargue los conjuntos de datos de entrenamiento y validación en el bucket predeterminado de Amazon S3. Una SageMaker instancia optimizada para procesamiento en Amazon EC2 utilizará los conjuntos de datos del bucket de S3 con fines de formación. 

El siguiente código configura el URI del bucket de S3 predeterminado para su sesión de SageMaker IA actual, crea una nueva `demo-sagemaker-xgboost-adult-income-prediction` carpeta y carga los conjuntos de datos de entrenamiento y validación en la subcarpeta. `data`

```
import sagemaker, boto3, os
bucket = sagemaker.Session().default_bucket()
prefix = "demo-sagemaker-xgboost-adult-income-prediction"

boto3.Session().resource('s3').Bucket(bucket).Object(
    os.path.join(prefix, 'data/train.csv')).upload_file('train.csv')
boto3.Session().resource('s3').Bucket(bucket).Object(
    os.path.join(prefix, 'data/validation.csv')).upload_file('validation.csv')
```

Ejecuta lo siguiente AWS CLI para comprobar si los archivos CSV se han cargado correctamente en el depósito de S3.

```
! aws s3 ls {bucket}/{prefix}/data --recursive
```

Esto debe devolver la siguiente salida:

![\[Resultado del comando de la CLI para comprobar los conjuntos de datos del bucket de S3.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-3.png)


# Capacitación de un modelo
<a name="ex1-train-model"></a>

En este paso se elige un algoritmo de entrenamiento y se ejecuta un trabajo de entrenamiento para el modelo. El [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) proporciona estimadores de marcos y estimadores genéricos para entrenar el modelo y, al mismo tiempo, organizar el ciclo de vida del aprendizaje automático (ML) y acceder a las funciones de SageMaker IA para el entrenamiento y a las infraestructuras AWS , como Amazon Elastic Container Registry (Amazon ECR), Amazon Elastic Compute Cloud (Amazon EC2) y Amazon Simple Storage Service (Amazon S3) 3). Para obtener más información sobre los estimadores de [marcos integrados de SageMaker IA, consulte Frameworks](https://sagemaker.readthedocs.io/en/stable/frameworks/index.html) en la documentación del [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable). Para obtener más información sobre los algoritmos integrados, consulte [Algoritmos integrados y modelos previamente entrenados en Amazon SageMaker](algos.md).

**Topics**
+ [Elección del algoritmo de entrenamiento](#ex1-train-model-select-algorithm)
+ [Creación y ejecución de un trabajo de entrenamiento](#ex1-train-model-sdk)

## Elección del algoritmo de entrenamiento
<a name="ex1-train-model-select-algorithm"></a>

Para elegir el algoritmo correcto para su conjunto de datos, normalmente necesitará evaluar diferentes modelos para encontrar los más adecuados para sus datos. Para simplificar, el algoritmo [XGBoost algoritmo con Amazon SageMaker AI](xgboost.md) integrado de SageMaker IA se utiliza a lo largo de este tutorial sin la evaluación previa de los modelos.

**sugerencia**  
Si desea que la SageMaker IA encuentre un modelo adecuado para su conjunto de datos tabular, utilice Amazon SageMaker Autopilot, que automatiza una solución de aprendizaje automático. Para obtener más información, consulte [SageMaker Piloto automático](autopilot-automate-model-development.md).

## Creación y ejecución de un trabajo de entrenamiento
<a name="ex1-train-model-sdk"></a>

Una vez que haya decidido qué modelo usar, comience a construir un estimador de SageMaker IA para el entrenamiento. En este tutorial se utiliza el algoritmo XGBoost integrado para el estimador genérico de SageMaker IA.

**Para ejecutar un trabajo de entrenamiento de modelo**

1. Importe el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) y comience por recuperar la información básica de su sesión de SageMaker IA actual.

   ```
   import sagemaker
   
   region = sagemaker.Session().boto_region_name
   print("AWS Region: {}".format(region))
   
   role = sagemaker.get_execution_role()
   print("RoleArn: {}".format(role))
   ```

   Esto devuelve la siguiente información:
   + `region`— La AWS región actual en la que se ejecuta la instancia del bloc de notas de SageMaker IA.
   + `role`: es el rol de IAM utilizado por la instancia del cuaderno.
**nota**  
Compruebe la versión del SDK de SageMaker Python ejecutando`sagemaker.__version__`. Este tutorial se basa en `sagemaker>=2.20`. Si el SDK está desactualizado, instale la versión más reciente ejecutando el comando siguiente:   

   ```
   ! pip install -qU sagemaker
   ```
Si ejecutas esta instalación en las instancias de SageMaker Studio o Notebook que ya tienes, tendrás que actualizar manualmente el núcleo para terminar de aplicar la actualización de la versión.

1. Cree un XGBoost estimador utilizando la clase. `sagemaker.estimator.Estimator` En el siguiente código de ejemplo, se denomina al XGBoost estimador. `xgb_model`

   ```
   from sagemaker.debugger import Rule, ProfilerRule, rule_configs
   from sagemaker.session import TrainingInput
   
   s3_output_location='s3://{}/{}/{}'.format(bucket, prefix, 'xgboost_model')
   
   container=sagemaker.image_uris.retrieve("xgboost", region, "1.2-1")
   print(container)
   
   xgb_model=sagemaker.estimator.Estimator(
       image_uri=container,
       role=role,
       instance_count=1,
       instance_type='ml.m4.xlarge',
       volume_size=5,
       output_path=s3_output_location,
       sagemaker_session=sagemaker.Session(),
       rules=[
           Rule.sagemaker(rule_configs.create_xgboost_report()),
           ProfilerRule.sagemaker(rule_configs.ProfilerReport())
       ]
   )
   ```

   Para construir el estimador de SageMaker IA, especifique los siguientes parámetros:
   + `image_uri`: especifique el URI de la imagen del contenedor de entrenamiento. En este ejemplo, el URI del contenedor de XGBoost entrenamiento de SageMaker IA se especifica mediante. `sagemaker.image_uris.retrieve`
   + `role`— La función AWS Identity and Access Management (IAM) que la SageMaker IA utiliza para realizar tareas en su nombre (por ejemplo, leer los resultados de la formación, llamar a artefactos de modelos de Amazon S3 y escribir los resultados de la formación en Amazon S3). 
   + `instance_count` y `instance_type`: el tipo y el número de instancias de computación de machine learning de Amazon EC2 que se deben usar para el entrenamiento de modelos. Para este ejercicio de entrenamiento, utilizará una sola instancia de `ml.m4.xlarge`, que tiene 4 CPU, 16 GB de memoria, un almacenamiento en Amazon Elastic Block Store (Amazon EBS) y un alto rendimiento de red. Para obtener más información sobre los tipos de instancias, consulte [Tipos de instancias de Amazon EC2](https://aws.amazon.com/ec2/instance-types/). Para obtener más información sobre la facturación, consulta los [ SageMaker precios de Amazon](https://aws.amazon.com/sagemaker/pricing/). 
   + `volume_size`: el tamaño, en GB, del volumen de almacenamiento de EBS que se va a asociar a la instancia de entrenamiento. Debe ser lo suficientemente grande para almacenar datos de entrenamiento si utiliza el modo `File` (el modo `File` es el predeterminado). Si no especifica este parámetro, el valor predeterminado es de 30.
   + `output_path`— El camino hacia el compartimento S3, donde la SageMaker IA almacena el artefacto del modelo y los resultados del entrenamiento.
   + `sagemaker_session`— El objeto de sesión que gestiona las interacciones con las operaciones de la SageMaker API y otros AWS servicios que utiliza el trabajo de formación.
   + `rules`— Especifique una lista de las reglas integradas del SageMaker Debugger. En este ejemplo, la `create_xgboost_report()` regla crea un XGBoost informe que proporciona información sobre el progreso y los resultados de la formación, y la `ProfilerReport()` regla crea un informe sobre la utilización de los recursos informáticos de EC2. Para obtener más información, consulte [SageMaker Informe interactivo de Debugger para XGBoost](debugger-report-xgboost.md).
**sugerencia**  
Si desea realizar un entrenamiento distribuido de modelos de aprendizaje profundo de gran tamaño, como modelos de redes neuronales convolucionales (CNN) y modelos de procesamiento del lenguaje natural (NLP), utilice SageMaker AI Distributed para el paralelismo de datos o el paralelismo de modelos. Para obtener más información, consulte [Formación distribuida en Amazon SageMaker AI](distributed-training.md).

1. Establezca los hiperparámetros del algoritmo llamando al método del estimador. XGBoost `set_hyperparameters` Para obtener una lista completa de los XGBoost hiperparámetros, consulte. [XGBoost hiperparámetros](xgboost_hyperparameters.md)

   ```
   xgb_model.set_hyperparameters(
       max_depth = 5,
       eta = 0.2,
       gamma = 4,
       min_child_weight = 6,
       subsample = 0.7,
       objective = "binary:logistic",
       num_round = 1000
   )
   ```
**sugerencia**  
También puede ajustar los hiperparámetros mediante la función de optimización de hiperparámetros mediante SageMaker IA. Para obtener más información, consulte [Ajuste automático de modelos con IA SageMaker](automatic-model-tuning.md). 

1. Utilice la clase `TrainingInput` para configurar un flujo de entrada de datos para el entrenamiento. El siguiente código de ejemplo muestra cómo configurar los objetos `TrainingInput` para que usen los conjuntos de datos de entrenamiento y validación que cargó en Amazon S3 en la sección [División de los datos en conjuntos de entrenamiento, validación y prueba.](ex1-preprocess-data.md#ex1-preprocess-data-transform).

   ```
   from sagemaker.session import TrainingInput
   
   train_input = TrainingInput(
       "s3://{}/{}/{}".format(bucket, prefix, "data/train.csv"), content_type="csv"
   )
   validation_input = TrainingInput(
       "s3://{}/{}/{}".format(bucket, prefix, "data/validation.csv"), content_type="csv"
   )
   ```

1. Para iniciar el entrenamiento del modelo, llame al método `fit` del estimador con los conjuntos de datos de entrenamiento y validación. Al configurar `wait=True`, el método `fit` muestra los registros de progreso y espera hasta que el entrenamiento se complete.

   ```
   xgb_model.fit({"train": train_input, "validation": validation_input}, wait=True)
   ```

   Para obtener más información acerca del modelo de entrenamiento, consulte [Entrena a un modelo con Amazon SageMaker](how-it-works-training.md). Este tutorial de un trabajo de entrenamiento puede llevar hasta 10 minutos.

   Una vez finalizado el trabajo de formación, puede descargar un informe de XGBoost formación y un informe de creación de perfiles generados por Debugger. SageMaker El informe de XGBoost entrenamiento le ofrece información sobre el progreso y los resultados del entrenamiento, como la función de pérdida con respecto a la iteración, la importancia de las características, la matriz de confusión, las curvas de precisión y otros resultados estadísticos del entrenamiento. Por ejemplo, puedes encontrar la siguiente curva de pérdidas en el informe de XGBoost entrenamiento, que indica claramente que hay un problema de sobreajuste.  
![\[El gráfico del informe de XGBoost entrenamiento.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-train-loss-curve-validation-overfitting.png)

   Ejecute el siguiente código para especificar el URI del bucket de S3 en el que se generan los informes de entrenamiento del depurador y compruebe si los informes existen.

   ```
   rule_output_path = xgb_model.output_path + "/" + xgb_model.latest_training_job.job_name + "/rule-output"
   ! aws s3 ls {rule_output_path} --recursive
   ```

   Descarga los informes de XGBoost formación y creación de perfiles de Debugger en el espacio de trabajo actual:

   ```
   ! aws s3 cp {rule_output_path} ./ --recursive
   ```

   Ejecute el siguiente IPython script para obtener el enlace al archivo del informe de XGBoost formación:

   ```
   from IPython.display import FileLink, FileLinks
   display("Click link below to view the XGBoost Training report", FileLink("CreateXgboostReport/xgboost_report.html"))
   ```

   El siguiente script de iPython devuelve el enlace al archivo del informe de creación de perfiles del depurador, que muestra resúmenes y detalles del uso de los recursos de la instancia EC2, los resultados de la detección de cuellos de botella en el sistema y los resultados de la creación de perfiles de operaciones de Python:

   ```
   profiler_report_name = [rule["RuleConfigurationName"] 
                           for rule in xgb_model.latest_training_job.rule_job_summary() 
                           if "Profiler" in rule["RuleConfigurationName"]][0]
   profiler_report_name
   display("Click link below to view the profiler report", FileLink(profiler_report_name+"/profiler-output/profiler-report.html"))
   ```
**sugerencia**  
Si los informes HTML no representan gráficos en la JupyterLab vista, debe elegir **Confiar en HTML** en la parte superior de los informes.  
Para identificar los problemas de entrenamiento, como el sobreajuste, la desaparición de los gradientes y otros problemas que impiden la convergencia del modelo, utilice SageMaker Debugger y tome medidas automatizadas mientras crea prototipos y entrena sus modelos de aprendizaje automático. Para obtener más información, consulte [Amazon SageMaker Debugger](train-debugger.md). Para obtener un análisis completo de los parámetros del modelo, consulte el cuaderno de [ejemplo Explicability with Amazon SageMaker Debugger](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/xgboost_census_explanations/xgboost-census-debugger-rules.html#Explainability-with-Amazon-SageMaker-Debugger). 

Ahora tiene un modelo entrenado. XGBoost SageMaker La IA almacena el artefacto modelo en su depósito S3. Para encontrar la ubicación del artefacto modelo, ejecute el siguiente código para imprimir el atributo model\$1data del estimador `xgb_model`:

```
xgb_model.model_data
```

**sugerencia**  
Para medir los sesgos que pueden producirse durante cada etapa del ciclo de vida del aprendizaje automático (recopilación de datos, entrenamiento y ajuste de los modelos y supervisión de los modelos de aprendizaje automático implementados para la predicción), utilice SageMaker Clarify. Para obtener más información, consulte [Explicabilidad del modelo](clarify-model-explainability.md). Para ver un end-to-end ejemplo, consulte el cuaderno de ejemplo [Equidad y explicabilidad con SageMaker Clarify.](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability.html)

# Implementación del modelo en Amazon EC2
<a name="ex1-model-deployment"></a>

Para obtener predicciones, implemente su modelo en Amazon EC2 mediante Amazon SageMaker AI.

**Topics**
+ [Implemente el modelo en los servicios de alojamiento de SageMaker IA](#ex1-deploy-model)
+ [(Opcional) Utilice SageMaker AI Predictor para reutilizar el punto final alojado](#ex1-deploy-model-sdk-use-endpoint)
+ [(Opcional) Predicciones con la transformación por lotes](#ex1-batch-transform)

## Implemente el modelo en los servicios de alojamiento de SageMaker IA
<a name="ex1-deploy-model"></a>

Para alojar un modelo a través de Amazon EC2 con Amazon SageMaker AI, implemente el modelo en el que se ha entrenado [Creación y ejecución de un trabajo de entrenamiento](ex1-train-model.md#ex1-train-model-sdk) llamando al `deploy` método del `xgb_model` estimador. Cuando llame al método `deploy`, debe especificar el número y el tipo de las instancias EC2 de machine learning que desee utilizar para alojar el punto de conexión.

```
import sagemaker
from sagemaker.serializers import CSVSerializer
xgb_predictor=xgb_model.deploy(
    initial_instance_count=1,
    instance_type='ml.t2.medium',
    serializer=CSVSerializer()
)
```
+ `initial_instance_count` (int): el número de instancias en las que se va a implementar el modelo.
+ `instance_type` (str): el tipo de instancias en las que quiera que funcione el modelo implementado.
+ `serializer`(int): serialice los datos de entrada de varios formatos (una NumPy matriz, una lista, un archivo o un búfer) en una cadena con formato CSV. Usamos esto porque el XGBoost algoritmo acepta archivos de entrada en formato CSV.

El `deploy` método crea un modelo desplegable, configura el punto final de los servicios de alojamiento de SageMaker IA y lanza el punto final para alojar el modelo. Para obtener más información, consulte el [método de clase de despliegue del estimador genérico de SageMaker IA](https://sagemaker.readthedocs.io/en/stable/estimators.html#sagemaker.estimator.Estimator.deploy) en el SDK de Amazon [ SageMaker Python](https://sagemaker.readthedocs.io/en/stable). Para recuperar el nombre del punto de conexión generado por el método `deploy`, ejecute el siguiente código:

```
xgb_predictor.endpoint_name
```

Esto debería devolver el nombre del punto de conexión del `xgb_predictor`. El formato del nombre del punto de conexión es `"sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"`. Este punto de conexión permanece activo en la instancia de machine learning y puede realizar predicciones instantáneas en cualquier momento, a menos que lo cierre más adelante. Copie el nombre de este punto de conexión y guárdelo para reutilizarlo y realizar predicciones en tiempo real en cualquier otro lugar de las instancias de SageMaker Studio o SageMaker AI Notebook.

**sugerencia**  
Para obtener más información sobre cómo compilar y optimizar su modelo para su implementación en instancias de Amazon EC2 o dispositivos perimetrales, consulte [Compilación e implementación de modelos con Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html).

## (Opcional) Utilice SageMaker AI Predictor para reutilizar el punto final alojado
<a name="ex1-deploy-model-sdk-use-endpoint"></a>

Después de implementar el modelo en un punto final, puede configurar un nuevo predictor de SageMaker IA emparejando el punto final y realizando predicciones continuas en tiempo real en cualquier otro bloc de notas. El siguiente código de ejemplo muestra cómo utilizar la clase SageMaker AI Predictor para configurar un nuevo objeto predictor utilizando el mismo punto final. Vuelva a utilizar el nombre del punto de conexión que utilizó para el `xgb_predictor`.

```
import sagemaker
xgb_predictor_reuse=sagemaker.predictor.Predictor(
    endpoint_name="sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS",
    sagemaker_session=sagemaker.Session(),
    serializer=sagemaker.serializers.CSVSerializer()
)
```

El predictor `xgb_predictor_reuse` se comporta exactamente igual que el `xgb_predictor` original. Para obtener más información, consulte la clase [SageMaker AI Predictor](https://sagemaker.readthedocs.io/en/stable/predictors.html#sagemaker.predictor.RealTimePredictor) en el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

## (Opcional) Predicciones con la transformación por lotes
<a name="ex1-batch-transform"></a>

En lugar de alojar un punto final en producción, puede ejecutar un trabajo de inferencia por lotes único para realizar predicciones en un conjunto de datos de prueba mediante la transformación por lotes de SageMaker IA. Una vez finalizado el entrenamiento con el modelo, puede extender el estimador a un `transformer` objeto, que se basa en la clase [SageMaker AI](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html) Transformer. El transformador por lotes lee los datos de entrada de un bucket de S3 específico y hace predicciones.

**Para ejecutar un trabajo de transformación por lotes**

1. Ejecute el siguiente código para convertir las columnas de características del conjunto de datos de prueba en un archivo CSV y cargarlo en el bucket de S3:

   ```
   X_test.to_csv('test.csv', index=False, header=False)
   
   boto3.Session().resource('s3').Bucket(bucket).Object(
   os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')
   ```

1. Especifique el grupo S3 URIs de entrada y salida para el trabajo de transformación por lotes, como se muestra a continuación:

   ```
   # The location of the test dataset
   batch_input = 's3://{}/{}/test'.format(bucket, prefix)
   
   # The location to store the results of the batch transform job
   batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)
   ```

1. Cree un objeto transformador que especifique el número mínimo de parámetros: los parámetros `instance_count` y `instance_type` para ejecutar el trabajo de transformación por lotes y el `output_path` para guardar los datos de predicción, como se muestra a continuación: 

   ```
   transformer = xgb_model.transformer(
       instance_count=1, 
       instance_type='ml.m4.xlarge', 
       output_path=batch_output
   )
   ```

1. Inicie el trabajo de transformación por lotes ejecutando el método `transform()` del objeto `transformer` como se muestra a continuación:

   ```
   transformer.transform(
       data=batch_input, 
       data_type='S3Prefix',
       content_type='text/csv', 
       split_type='Line'
   )
   transformer.wait()
   ```

1. Cuando se completa el trabajo de transformación por lotes, la SageMaker IA crea los datos de `test.csv.out` predicción guardados en la `batch_output` ruta, que deben tener el siguiente formato:`s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction`. Ejecute lo siguiente AWS CLI para descargar los datos de salida del trabajo de transformación por lotes:

   ```
   ! aws s3 cp {batch_output} ./ --recursive
   ```

   Esto debería crear el archivo `test.csv.out` en el directorio de trabajo actual. Podrá ver los valores flotantes que se predicen en función de la regresión logística del trabajo de XGBoost formación.

# Evaluación del modelo
<a name="ex1-test-model"></a>

Ahora que ha entrenado e implementado un modelo con Amazon SageMaker AI, evalúe el modelo para asegurarse de que genera predicciones precisas a partir de nuevos datos. Para ello, utilice el conjunto de datos de prueba que ha creado en [Preparación de un conjunto de datos](ex1-preprocess-data.md).

## Evalúe el modelo implementado en los servicios de alojamiento de SageMaker IA
<a name="ex1-test-model-endpoint"></a>

Para evaluar el modelo y usarlo en producción, invoque el punto de conexión con el conjunto de datos de prueba y compruebe si las inferencias obtenidas arrojan la precisión deseada.

**Para evaluar el modelo**

1. Configure la siguiente función para predecir cada línea del conjunto de prueba. En el siguiente código de ejemplo, el argumento `rows` sirve para especificar el número de líneas que se van a predecir a la vez. Puede cambiar su valor para realizar una inferencia por lotes que utilice al máximo los recursos de hardware de la instancia.

   ```
   import numpy as np
   def predict(data, rows=1000):
       split_array = np.array_split(data, int(data.shape[0] / float(rows) + 1))
       predictions = ''
       for array in split_array:
           predictions = ','.join([predictions, xgb_predictor.predict(array).decode('utf-8')])
       return np.fromstring(predictions[1:], sep=',')
   ```

1. Ejecute el siguiente código para hacer predicciones del conjunto de datos de prueba y trazar un histograma. Debe tomar solo las columnas de características del conjunto de datos de prueba, excluyendo la columna 0 para los valores reales.

   ```
   import matplotlib.pyplot as plt
   
   predictions=predict(test.to_numpy()[:,1:])
   plt.hist(predictions)
   plt.show()
   ```  
![\[Un histograma de los valores pronosticados.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-eval-predicted-values-histogram.png)

1. Los valores pronosticados son de tipo flotante. Para determinar `True` o `False` en función de en los valores flotantes, debe establecer un valor límite. Como se muestra en el siguiente código de ejemplo, use la biblioteca Scikit-learn para obtener el resultado del informe de clasificación y métricas de confusión con un límite de 0,5.

   ```
   import sklearn
   
   cutoff=0.5
   print(sklearn.metrics.confusion_matrix(test.iloc[:, 0], np.where(predictions > cutoff, 1, 0)))
   print(sklearn.metrics.classification_report(test.iloc[:, 0], np.where(predictions > cutoff, 1, 0)))
   ```

   Esto debe devolver la siguiente matriz de confusión:  
![\[Ejemplo de matriz de confusión y estadísticas después de obtener la inferencia del modelo implementado.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-evaluate-confusion-matrix.png)

1. Para determinar el mejor límite con el conjunto de pruebas dado, calcule la función de pérdida logística de la regresión logística. La función de pérdida logística se define como la probabilidad logística negativa de un modelo logístico que devuelve probabilidades de predicción para sus etiquetas de verdad básica. El siguiente código de ejemplo calcula numérica e iterativamente los valores de pérdida logística (`-(y*log(p)+(1-y)log(1-p)`), donde `y` es la etiqueta verdadera y `p` es una estimación de probabilidad de la muestra de prueba correspondiente. Devuelve una gráfica de pérdida logística con respecto al límite.

   ```
   import matplotlib.pyplot as plt
   
   cutoffs = np.arange(0.01, 1, 0.01)
   log_loss = []
   for c in cutoffs:
       log_loss.append(
           sklearn.metrics.log_loss(test.iloc[:, 0], np.where(predictions > c, 1, 0))
       )
   
   plt.figure(figsize=(15,10))
   plt.plot(cutoffs, log_loss)
   plt.xlabel("Cutoff")
   plt.ylabel("Log loss")
   plt.show()
   ```

   Esto debería devolver la siguiente curva de pérdida logística.  
![\[Ejemplo de seguimiento de la curva de pérdida logística.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/get-started-ni/gs-ni-evaluate-logloss-vs-cutoff.png)

1. Encuentre los puntos mínimos de la curva de error mediante las `min` funciones NumPy `argmin` y:

   ```
   print(
       'Log loss is minimized at a cutoff of ', cutoffs[np.argmin(log_loss)], 
       ', and the log loss value at the minimum is ', np.min(log_loss)
   )
   ```

   Esto debería devolver: `Log loss is minimized at a cutoff of 0.53, and the log loss value at the minimum is 4.348539186773897`.

   En lugar de calcular y minimizar la función de pérdida logística, puede estimar una función de costo como alternativa. Por ejemplo, si desea entrenar un modelo para realizar una clasificación binaria de un problema empresarial, como un problema de predicción de la pérdida de clientes, puede establecer ponderaciones para los elementos de la matriz de confusión y calcular la función de costo en consecuencia.

Ya ha entrenado, implementado y evaluado su primer modelo en SageMaker IA.

**sugerencia**  
Para supervisar la calidad del modelo, la calidad de los datos y la desviación de sesgo, utilice Amazon SageMaker Model Monitor y SageMaker AI Clarify. Para obtener más información, consulte [Amazon SageMaker Model Monitor, Monitor](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html) [Data Quality](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-quality.html), [Monitor Model Quality](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality.html), [Monitor Bias Drift](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-model-monitor-bias-drift.html) y [Monitor Feature Attribution Drift.](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-model-monitor-feature-attribution-drift.html)

**sugerencia**  
Para obtener una revisión humana de las predicciones de machine learning de baja confianza o una muestra aleatoria de las predicciones, utilice los flujos de trabajo de revisión humana aumentados con IA de Amazon. Para obtener más información, consulte [Uso de Amazon Augmented AI para la revisión humana](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-use-augmented-ai-a2i-human-review-loops.html).

# Limpia los recursos de instancias de Amazon SageMaker Notebook
<a name="ex1-cleanup"></a>

Para evitar incurrir en cargos innecesarios, úsala Consola de administración de AWS para eliminar los puntos finales y los recursos que creaste mientras realizabas los ejercicios. 

**nota**  
Los trabajos y registros de entrenamiento no se pueden eliminar y se conservan indefinidamente.

**nota**  
Si tiene previsto para explorar otros ejercicios de esta guía, es posible que desee mantener algunos de estos recursos, como, por ejemplo, su instancia de cuaderno, el bucket de S3 y el rol de IAM.

 

1. Abre la consola Amazon SageMaker AI en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)y elimina los siguientes recursos:
   + El punto de conexión. Al eliminar el punto de conexión, también se eliminan las instancias de computación de ML o instancias que lo admitan.

     1. En **Inferencia**, elija **Puntos de conexión**.

     1. Elija el punto de conexión que creó en el ejemplo y seleccione **Acciones**. A continuación, elija **Eliminar**.
   + La configuración del punto de conexión.

     1. En **Inferencia**, elija **Configuraciones de punto de conexión**.

     1. Seleccione la configuración del punto de conexión que creó en el ejemplo y seleccione **Acciones**. A continuación, elija **Eliminar**.
   + El modelo.

     1. En **Inferencia**, elija **Modelos**.

     1. Elija el modelo que creó en el ejemplo y seleccione **Acciones**. A continuación, elija **Eliminar**.
   + La instancia del cuaderno. Antes de eliminar la instancia del cuaderno, deténgala.

     1. En **Cuaderno**, elija **Instancias de bloc de notas**.

     1. Elija la instancia de cuaderno que creó en el ejemplo y, a continuación, elija **Acciones** y **Detener**. La instancia de cuaderno tarda varios minutos en detenerse. Cuando el **Estado** cambia a **Detenido**, proceda con el siguiente paso.

     1. Elija **Acciones** y, a continuación, elija **Eliminar**.

1. Abra la consola Amazon S3 en y [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/), a continuación, elimine el depósito que creó para almacenar los artefactos del modelo y el conjunto de datos de entrenamiento. 

1. Abre la CloudWatch consola de Amazon en y [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/), a continuación, elimina todos los grupos de registros que tengan nombres que comiencen por`/aws/sagemaker/`.

# AL2023 instancias de bloc de notas
<a name="nbi-al2023"></a>

Actualmente, las instancias de Amazon SageMaker Notebook son compatibles con los sistemas AL2023 operativos. AL2023es ahora el sistema operativo más reciente y recomendado para las instancias de notebook. Puede seleccionar el sistema operativo en el que se basa la instancia de cuaderno al crear la instancia de cuaderno.

SageMaker La IA admite instancias de notebook basadas en los siguientes sistemas AL2023 operativos.
+ **notebook-al2023-v1**: estas instancias de portátiles son compatibles con la versión 4. JupyterLab Para obtener información sobre las versiones, consulte. JupyterLab [JupyterLab control de versiones](nbi-jl.md)

**Topics**
+ [Tipos de instancias admitidas](#nbi-al2023-instances)
+ [Núcleos disponibles](#nbi-al2023-kernel)

## Tipos de instancias admitidas
<a name="nbi-al2023-instances"></a>

AL2023 admite los tipos de **instancias que figuran en la sección Instancias de Notebook** de [SageMaker AI Pricing](https://aws.amazon.com/sagemaker/pricing/), con la excepción de las instancias que AL2023 no admiten `ml.p2` `ml.g3` instancias. `ml.p3`

## Núcleos disponibles
<a name="nbi-al2023-kernel"></a>

La siguiente tabla proporciona información sobre los núcleos disponibles para las instancias de SageMaker notebook. Todas estas imágenes son compatibles con las instancias de notebook basadas en el sistema `notebook-al2023-v1` operativo.


| Nombre del kernel | Description (Descripción) | 
| --- | --- | 
| R | Un kernel que se utiliza para realizar análisis y visualización de datos mediante código R desde un cuaderno de Jupyter. | 
| Sparkmagic () PySpark | Un kernel que se utiliza para hacer ciencia de datos con clústeres Spark remotos de cuadernos de Jupyter que utilizan el lenguaje de programación Python. Este kernel viene con Python 3.10. | 
| Sparkmagic (Spark) | Un kernel que se utiliza para hacer ciencia de datos con clústeres Spark remotos de cuadernos de Jupyter que utilizan el lenguaje de programación Scala. Este kernel viene con Python 3.10. | 
| Sparkmagic (SparkR) | Un kernel que se utiliza para hacer ciencia de datos con clústeres Spark remotos de cuadernos de Jupyter que utilizan el lenguaje de programación R. Este kernel viene con Python 3.10. | 
| conda\$1python3 | Un entorno conda que viene con paquetes populares para ciencia de datos y machine learning preinstalados. Este kernel viene con Python 3.10. | 
| conda\$1pytorch | Un entorno conda que viene preinstalado con la PyTorch versión 2.7.0, así como con los populares paquetes de ciencia de datos y aprendizaje automático. Este kernel viene con Python 3.10. | 

# Instancias de cuaderno de Amazon Linux 2
<a name="nbi-al2"></a>

**importante**  
JupyterLab Las versiones 1 y JupyterLab 3 dejarán de ser compatibles a partir del 30 de junio de 2025. Ya no podrá crear instancias de cuaderno nuevas ni reiniciar instancias de cuaderno detenidas con estas versiones. Las instancias en servicio existentes pueden seguir funcionando, pero no recibirán actualizaciones de seguridad ni correcciones de errores. Migre a JupyterLab 4 instancias de portátiles para obtener soporte continuo. Para obtener más información, consulte [JupyterLab mantenimiento de versiones](nbi-jl.md#nbi-jl-version-maintenance).

**nota**  
AL2023 es el sistema operativo más reciente y recomendado disponible para las instancias de ordenadores portátiles. Para obtener más información, consulte [AL2023 instancias de bloc de notas](nbi-al2023.md).

Actualmente, las instancias de Amazon SageMaker Notebook son compatibles con los sistemas operativos Amazon Linux 2 (AL2). Puede seleccionar el sistema operativo en el que se basa la instancia de cuaderno al crear la instancia de cuaderno.

SageMaker La IA admite instancias de notebook basadas en los siguientes sistemas operativos Amazon Linux 2.
+ **notebook-al2-v1** (obsoleto): estas instancias de notebook eran compatibles con la versión 1. JupyterLab A partir del 30 de junio de 2025, ya no podrá crear nuevas instancias con este identificador de plataforma. Para obtener información sobre las versiones, consulte. JupyterLab [JupyterLab control de versiones](nbi-jl.md)
+ **notebook-al2-v2** (obsoleto): estas instancias de notebook eran compatibles con la versión 3. JupyterLab A partir del 30 de junio de 2025, ya no podrá crear nuevas instancias con este identificador de plataforma. Para obtener información sobre las versiones, consulte. JupyterLab [JupyterLab control de versiones](nbi-jl.md)
+ **notebook-al2-v3**: estas instancias de notebook son compatibles con la versión 4. JupyterLab Para obtener información sobre las versiones, consulte. JupyterLab [JupyterLab control de versiones](nbi-jl.md)

Las instancias de Notebook creadas antes del 18 de agosto de 2021 se ejecutan automáticamente en Amazon Linux ()AL1. Las instancias de notebook basadas en AL1 entraron en una fase de mantenimiento el 1 de diciembre de 2022 y ya no están disponibles para la creación de nuevas instancias de notebook a partir del 2 de enero de 2023. Para reemplazarlo AL1, ahora tienes la opción de crear instancias de Amazon SageMaker Notebook con AL2. Para obtener más información, consulte [AL1 Plan de fases de mantenimiento](#nbi-al2-deprecation).

**Topics**
+ [Tipos de instancias admitidas](#nbi-al2-instances)
+ [Kernels disponibles](#nbi-al2-kernel)
+ [AL1 Plan de fases de mantenimiento](#nbi-al2-deprecation)

## Tipos de instancias admitidas
<a name="nbi-al2-instances"></a>

Amazon Linux 2 admite los tipos de instancias que figuran en **Notebook Instances** en [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/), con la excepción de que Amazon Linux 2 no admite `ml.p2` instancias.

## Kernels disponibles
<a name="nbi-al2-kernel"></a>

En la siguiente tabla, se proporciona información sobre los núcleos disponibles para las instancias de SageMaker notebook. Todas estas imágenes son compatibles con las instancias de cuaderno basadas en los sistemas operativos `notebook-al2-v1`, `notebook-al2-v2` y `notebook-al2-v3`.

SageMaker núcleos de instancias de cuadernos


| Nombre del kernel | Description (Descripción) | 
| --- | --- | 
| R | Un kernel que se utiliza para realizar análisis y visualización de datos mediante código R desde un cuaderno de Jupyter. | 
| Sparkmagic () PySpark | Un kernel que se utiliza para hacer ciencia de datos con clústeres Spark remotos de cuadernos de Jupyter que utilizan el lenguaje de programación Python. Este kernel viene con Python 3.10. | 
| Sparkmagic (Spark) | Un kernel que se utiliza para hacer ciencia de datos con clústeres Spark remotos de cuadernos de Jupyter que utilizan el lenguaje de programación Scala. Este kernel viene con Python 3.10. | 
| Sparkmagic (SparkR) | Un kernel que se utiliza para hacer ciencia de datos con clústeres Spark remotos de cuadernos de Jupyter que utilizan el lenguaje de programación R. Este kernel viene con Python 3.10. | 
| conda\$1python3 | Un entorno conda que viene con paquetes populares para ciencia de datos y machine learning preinstalados. Este kernel viene con Python 3.10. | 
| conda\$1pytorch\$1p310 |  Un entorno conda que viene preinstalado con la PyTorch versión 2.2.0, así como con los populares paquetes de ciencia de datos y aprendizaje automático. Este kernel viene con Python 3.10. | 
| conda\$1tensorflow2\$1p310 | Un entorno conda que viene preinstalado con la TensorFlow versión 2.16.0, así como los populares paquetes de ciencia de datos y aprendizaje automático. Este kernel viene con Python 3.10. | 

## AL1 Plan de fases de mantenimiento
<a name="nbi-al2-deprecation"></a>

La siguiente tabla muestra un cronograma para cuando se AL1 ingresa a la fase de mantenimiento extendido. La fase AL1 de mantenimiento también coincide con la obsolescencia de Python 2 y Chainer. Los cuadernos basados en AL2 no tienen núcleos gestionados de Python 2 y Chainer.


|  Date  |  Description (Descripción)  | 
| --- | --- | 
|  18/08/2021  |   AL2 Se lanzan las instancias de Notebook basadas en. Las instancias de notebook recién lanzadas siguen siendo las predeterminadas AL1. AL1 es compatible con los parches y actualizaciones de seguridad, pero no con nuevas funciones. Puede elegir entre los dos sistemas operativos al lanzar una nueva instancia de cuaderno.  | 
|  31/10/2022  |  El identificador de plataforma predeterminado para las instancias de SageMaker notebook cambia de Amazon Linux (al1-v1) a Amazon Linux 2 (al2-v2). Puede elegir entre los dos sistemas operativos al lanzar una nueva instancia de cuaderno.  | 
|  1 de diciembre de 2022  |  AL1 ya no es compatible con los parches y actualizaciones de seguridad que no son críticos. AL1 sigue recibiendo correcciones para problemas [críticos](https://nvd.nist.gov/vuln-metrics/cvss#) relacionados con la seguridad. Puede seguir lanzando instancias AL1, pero asuma los riesgos asociados al uso de un sistema operativo no compatible.  | 
|  01/02/2023  |  AL1 ya no está disponible para la creación de nuevas instancias de bloc de notas. Después de esta fecha, los clientes pueden crear instancias de bloc de notas con los identificadores de la AL2 plataforma. Los cuadernos existentes con un `INSERVICE` estado determinado deben migrarse a la plataforma más reciente, ya que no se puede garantizar la disponibilidad continua de las instancias de AL1 portátiles.  | 
|  31/03/2024  |  AL1 llegará al final de su vida útil en las instancias de portátiles el 31 de marzo de 2024. Después de esta fecha, ya no AL1 recibirá actualizaciones de seguridad ni correcciones de errores ni estará disponible para la creación de nuevas instancias de bloc de notas.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/nbi-al2.html)  | 

### Migración a Amazon Linux 2
<a name="nbi-al2-upgrade"></a>

La instancia de AL1 notebook existente no se migra automáticamente a Amazon Linux 2. Para actualizar la instancia de AL1 bloc de notas a Amazon Linux 2, debe crear una nueva instancia de bloc de notas, replicar el código y el entorno y eliminar la instancia de bloc de notas anterior. Para obtener más información, consulte el [Blog de migración a Amazon Linux 2](https://aws.amazon.com/blogs/machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/ ).

# JupyterLab control de versiones
<a name="nbi-jl"></a>

**importante**  
JupyterLab Las versiones 1 y JupyterLab 3 dejarán de ser compatibles a partir del 30 de junio de 2025. Ya no podrá crear instancias de cuaderno nuevas ni reiniciar instancias de cuaderno detenidas con estas versiones. Las instancias en servicio existentes pueden seguir funcionando, pero no recibirán actualizaciones de seguridad ni correcciones de errores. Migre a JupyterLab 4 instancias de portátiles para obtener soporte continuo. Para obtener más información, consulte [JupyterLab mantenimiento de versiones](#nbi-jl-version-maintenance).

Se basa en la interfaz de instancias de Amazon SageMaker Notebook JupyterLab, que es un entorno de desarrollo interactivo basado en la web para cuadernos, código y datos. Los cuadernos ahora admiten el uso de JupyterLab 1, JupyterLab 3 o JupyterLab 4. Una sola instancia de notebook puede ejecutar una sola instancia de JupyterLab (como máximo). Puede tener varias instancias de bloc de notas con diferentes JupyterLab versiones. 

Puede configurar su portátil para que ejecute la JupyterLab versión que prefiera seleccionando el identificador de plataforma adecuado. Utilice la consola AI AWS CLI o la consola SageMaker AI al crear la instancia de su notebook. Para obtener más información sobre los identificadores de plataforma, consulte [AL2023 instancias de bloc de notas](nbi-al2023.md) y[Instancias de cuaderno de Amazon Linux 2](nbi-al2.md). Si no configuras un identificador de plataforma de forma explícita, la instancia de tu notebook JupyterLab ejecutará 1 de forma predeterminada. 

**Topics**
+ [JupyterLab mantenimiento de versiones](#nbi-jl-version-maintenance)
+ [JupyterLab 4.](#nbi-jl-4)
+ [JupyterLab 3](#nbi-jl-3)
+ [Crea un cuaderno con tu versión JupyterLab](nbi-jl-create.md)
+ [Vea la JupyterLab versión de un portátil desde la consola](nbi-jl-view.md)

## JupyterLab mantenimiento de versiones
<a name="nbi-jl-version-maintenance"></a>

JupyterLab Las plataformas 1 y JupyterLab 3 finalizaron el soporte estándar el 30 de junio de 2025. A partir de esta fecha:
+ Ya no se pueden crear nuevas instancias de notebook ni reiniciar JupyterLab las que JupyterLab ya no están disponibles.
+ Es posible que las instancias de notebook JupyterLab 1 y JupyterLab 3 existentes en servicio sigan funcionando, pero ya no reciban actualizaciones de seguridad de SageMaker IA ni correcciones de errores críticos.
+ Usted será responsable de administrar la seguridad de dichas instancias en desuso.
+ Si surgen problemas con una o JupyterLab JupyterLab tres instancias de notebook existentes, la SageMaker IA no puede garantizar su disponibilidad continua. Debe migrar su carga de trabajo a una instancia de JupyterLab 4 equipos portátiles.

Migre su trabajo a JupyterLab 4 instancias de notebook (el identificador de plataforma de la última versión es [notebook-al2023-v1](nbi-al2023.md)) para asegurarse de contar con un entorno seguro y compatible. Esto le permite aprovechar las versiones más recientes de los cuadernos de Jupyter y otras bibliotecas de aprendizaje automático. JupyterLab Para obtener instrucciones, consulte [Migrar su trabajo a una instancia de bloc de notas de SageMaker IA con Amazon Linux 2](https://aws.amazon.com/blogs//machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/).

## JupyterLab 4.
<a name="nbi-jl-4"></a>

JupyterLab La compatibilidad con 4 solo está disponible en la plataforma del sistema operativo Amazon Linux 2. JupyterLab La versión 4 incluye las siguientes funciones que no están disponibles en la versión JupyterLab 3:
+ Representación optimizada para disfrutar de una experiencia más rápida
+ Ajustes opcionales para cambiar de pestaña más rápido y mejorar el rendimiento con cuadernos largos. Para obtener más información, consulte la entrada del blog [ JupyterLab 4.0 is Here](https://blog.jupyter.org/jupyterlab-4-0-is-here-388d05e03442).
+ Editor de texto actualizado
+ Nuevo administrador de extensiones que se instala desde pypi
+ Se han agregado mejoras a la interfaz de usuario, como mejoras en la búsqueda de documentos y de accesibilidad

Para ejecutar JupyterLab 4, especifique [notebook-al2023-v1](nbi-al2023.md) (la versión más reciente y recomendada) o [notebook-al2-v3](nbi-al2.md) como identificador de plataforma al crear la instancia de notebook.

**nota**  
Si intenta migrar a una instancia de Notebook JupyterLab 4 desde otra JupyterLab versión, los cambios de versión del paquete entre JupyterLab la 3 y la 4 podrían interrumpir cualquier configuración o extensión del ciclo de vida existente. JupyterLab Jupyter/JupyterLab 

**Cambios en la versión del paquete**

JupyterLab La versión 4 tiene los siguientes cambios en la versión JupyterLab 3 del paquete:
+ JupyterLab se ha actualizado de la versión 3.x a la 4.x.
+ El cuaderno de Jupyter se ha actualizado de la versión 6.x a la 7.x.
+ jupyterlab-git se ha actualizado a la versión 0.50.0.

## JupyterLab 3
<a name="nbi-jl-3"></a>

**importante**  
JupyterLab Las versiones 1 y JupyterLab 3 dejarán de ser compatibles a partir del 30 de junio de 2025. Ya no podrá crear instancias de cuaderno nuevas ni reiniciar instancias de cuaderno detenidas con estas versiones. Las instancias en servicio existentes pueden seguir funcionando, pero no recibirán actualizaciones de seguridad ni correcciones de errores. Migre a JupyterLab 4 instancias de portátiles para obtener soporte continuo. Para obtener más información, consulte [JupyterLab mantenimiento de versiones](#nbi-jl-version-maintenance).

 JupyterLab La compatibilidad con 3 solo está disponible en la plataforma del sistema operativo Amazon Linux 2. JupyterLab La versión 3 incluye las siguientes funciones que no están disponibles en la versión JupyterLab 1. Para obtener más información sobre estas funciones, consulte ¡[Se ha lanzado la JupyterLab versión 3.0\$1](https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb) . 
+  Depurador visual cuando se utilizan los siguientes kernels : 
  +  conda\$1pytorch\$1p38 
  +  conda\$1tensorflow2\$1p38 
  +  conda\$1amazonei\$1pytorch\$1latest\$1p37 
+ Filtro de explorador de archivos
+ Índice
+ Compatibilidad con varios idiomas
+ Modo simple
+ Modo de interfaz única
+ Edición en vivo de archivos SVG con renderización actualizada
+ Interfaz de usuario para etiquetas de celdas de cuadernos

### Cambios importantes en JupyterLab 3
<a name="nbi-jl-3-changes"></a>

 Para obtener información sobre los cambios importantes al usar JupyterLab 3, consulta los siguientes registros de JupyterLab cambios: 
+  [v2.0.0](https://github.com/jupyterlab/jupyterlab/releases) 
+  [v3.0.0](https://jupyterlab.readthedocs.io/en/stable/getting_started/changelog.html#for-developers) 

 **Cambios en la versión del paquete** 

 JupyterLab La versión 3 presenta los siguientes cambios en la versión del paquete con respecto a la JupyterLab 1: 
+  JupyterLab se ha actualizado de la versión 1.x a la 3.x.
+  El cuaderno de Jupyter se ha actualizado de la versión 5.x a la 6.x.
+  jupyterlab-git se ha actualizado a la versión 0.37.1.
+  nbserverproxy 0.x (0.3.2) se ha sustituido por 3.x (3.2.1). jupyter-server-proxy

# Crea un cuaderno con tu versión JupyterLab
<a name="nbi-jl-create"></a>

**importante**  
JupyterLab Las versiones 1 y JupyterLab 3 dejarán de ser compatibles a partir del 30 de junio de 2025. Ya no podrá crear instancias de cuaderno nuevas ni reiniciar instancias de cuaderno detenidas con estas versiones. Las instancias en servicio existentes pueden seguir funcionando, pero no recibirán actualizaciones de seguridad ni correcciones de errores. Migre a JupyterLab 4 instancias de portátiles para obtener soporte continuo. Para obtener más información, consulte [JupyterLab mantenimiento de versiones](nbi-jl.md#nbi-jl-version-maintenance).

 Puede seleccionar la JupyterLab versión al crear la instancia de su bloc de notas desde la consola siguiendo los pasos que se indican[Crear una instancia de Amazon SageMaker Notebook](howitworks-create-ws.md). 

 También puede seleccionar la JupyterLab versión pasando el `platform-identifier` parámetro al crear la instancia de su bloc de notas de la AWS CLI siguiente manera: 

```
create-notebook-instance --notebook-instance-name <NEW_NOTEBOOK_NAME> \
--instance-type <INSTANCE_TYPE> \
--role-arn <YOUR_ROLE_ARN> \
--platform-identifier notebook-al2-v3
```

# Vea la JupyterLab versión de un portátil desde la consola
<a name="nbi-jl-view"></a>

**importante**  
JupyterLab Las versiones 1 y JupyterLab 3 dejarán de ser compatibles a partir del 30 de junio de 2025. Ya no podrá crear instancias de cuaderno nuevas ni reiniciar instancias de cuaderno detenidas con estas versiones. Las instancias en servicio existentes pueden seguir funcionando, pero no recibirán actualizaciones de seguridad ni correcciones de errores. Migre a JupyterLab 4 instancias de portátiles para obtener soporte continuo. Para obtener más información, consulte [JupyterLab mantenimiento de versiones](nbi-jl.md#nbi-jl-version-maintenance).

 Puede ver la JupyterLab versión de un bloc de notas mediante el siguiente procedimiento: 

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

1. En el panel de navegación de la izquierda, seleccione **Cuaderno**.

1.  En el menú desplegable, seleccione **Instancias de bloc de notas** para ir a la página de **Instancias de bloc de notas**. 

1.  En la lista de instancias de cuaderno, seleccione el nombre de su instancia de cuaderno. 

1.  En la página de **configuración de la instancia de Notebook**, consulta el **identificador de plataforma** para ver la JupyterLab versión del bloc de notas. 

# Crear una instancia de Amazon SageMaker Notebook
<a name="howitworks-create-ws"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Una instancia de Amazon SageMaker Notebook es una instancia de cómputo de aprendizaje automático que ejecuta la aplicación Jupyter Notebook. SageMaker La IA gestiona la creación de la instancia y los recursos relacionados. Utilice los cuadernos de Jupyter en su instancia de cuaderno para:
+ preparar y procesar datos
+ escribir código para entrenar modelos
+ implementar modelos en el alojamiento de SageMaker IA
+ probar o validar modelos

Para crear una instancia de notebook, usa la consola de SageMaker IA o la [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html)API.

El tipo de instancia de cuaderno que elija dependerá del modo en que vaya a utilizarla. Asegúrese de que la instancia de cuaderno no esté vinculada por memoria, CPU o E/S. Para cargar un conjunto de datos en la memoria de la instancia de cuaderno para realizar tareas de exploración o preprocesamiento, elija un tipo de instancia que tenga suficiente memoria RAM para el conjunto de datos. Esto requeriría una instancia con al menos 16 GB de memoria (.xlarge o superior). Si planea utilizar el cuaderno para tareas de preprocesamiento de computación intensivas, le recomendamos que elija una instancia optimizada para la computación, como c4 o c5.

Una buena práctica cuando se utiliza un SageMaker bloc de notas es utilizar la instancia del bloc de notas para organizar otros AWS servicios. Por ejemplo, puede utilizar la instancia de cuaderno para administrar el procesamiento de conjuntos de datos de gran tamaño. Para ello, haga llamadas a los servicios de AWS Glue for ETL (extracción, transformación y carga) o a Amazon EMR para mapeo y reducción de datos mediante Hadoop. Puede utilizar AWS los servicios como formas temporales de cálculo o almacenamiento de sus datos.

Puede almacenar y recuperar los datos de entrenamiento y pruebas utilizando un bucket de Amazon Simple Storage Service. Luego, puede usar la SageMaker IA para entrenar y construir su modelo. De este modo, el tipo de instancia del cuaderno no influiría en la velocidad del entrenamiento del modelo y las pruebas.

Tras recibir la solicitud, SageMaker AI hace lo siguiente:
+ **Crea una interfaz de red**: si eliges la configuración de VPC opcional SageMaker , AI crea la interfaz de red en tu VPC. Utiliza el ID de subred que se proporciona en la solicitud para determinar en qué zona de disponibilidad se debe crear la subred. SageMaker La IA asocia el grupo de seguridad que usted proporciona en la solicitud a la subred. Para obtener más información, consulte [Conexión de una instancia de cuaderno en una VPC a recursos externos](appendix-notebook-and-internet-access.md). 
+ **Lanza una instancia de procesamiento de ML**: la SageMaker IA lanza una instancia de procesamiento de ML en una SageMaker VPC de IA. SageMaker La IA realiza las tareas de configuración que le permiten gestionar su instancia de notebook. Si especificó su VPC, la SageMaker IA habilita el tráfico entre su VPC y la instancia de notebook.
+ **Instala los paquetes y bibliotecas de Anaconda para las plataformas de aprendizaje profundo más comunes**: la SageMaker IA instala todos los paquetes de Anaconda que se incluyen en el instalador. [Para obtener más información, consulte la lista de paquetes de Anaconda.](https://docs.anaconda.com/free/anaconda/pkg-docs/) SageMaker La IA también instala las bibliotecas de aprendizaje MXNet profundo TensorFlow y Apache. 
+ **Adjunta un volumen de almacenamiento de ML: la SageMaker IA adjunta un volumen** de almacenamiento de ML a la instancia de procesamiento de ML. Puede utilizar el volumen como área de trabajo para limpiar el conjunto de datos de entrenamiento o para almacenar temporalmente datos de validación, prueba u otros. Elija cualquier tamaño entre 5 GB y 16384 GB, en incrementos de 1 GB, para el volumen. El valor predeterminado es 5 GB. Los volúmenes de almacenamiento de aprendizaje automático están cifrados, por lo que la SageMaker IA no puede determinar la cantidad de espacio libre disponible en el volumen. Por este motivo, puede aumentar el tamaño del volumen al actualizar una instancia de cuaderno, pero no puede reducir el tamaño del volumen. Si desea reducir el tamaño del volumen de almacenamiento de machine learning en uso, cree otra instancia de cuaderno con el tamaño deseado.

  Solo los archivos y los datos guardados dentro de la carpeta `/home/ec2-user/SageMaker` se conservan entre las sesiones de instancia de cuaderno. Los archivos y los datos que se guarden fuera de este directorio se sobrescribirán cuando la instancia de cuaderno se detenga y se reinicie. El `/tmp` directorio de cada instancia de bloc de notas proporciona un mínimo de 10 GB de almacenamiento en un almacén de instancias. Un almacén de instancias es un almacén temporal, de nivel de bloques, que no es persistente. Cuando la instancia se detiene o se reinicia, SageMaker AI elimina el contenido del directorio y cualquier personalización del sistema operativo. Este almacenamiento temporal forma parte del volumen raíz de la instancia de cuaderno.

  Si la instancia del bloc de notas no está actualizada y ejecuta un software no seguro, es posible que SageMaker AI actualice la instancia periódicamente como parte del mantenimiento regular. Durante estas actualizaciones, los datos que se encuentran fuera de la carpeta no `/home/ec2-user/SageMaker` se conservan. Para obtener más información sobre los parches de mantenimiento y seguridad, consulte[Mantenimiento](nbi.md#nbi-maintenance).

  Si el tipo de instancia utilizado por la instancia del bloc de notas es NVMe compatible, los clientes pueden usar los volúmenes de almacenamiento de NVMe instancias disponibles para ese tipo de instancia. En el caso de las instancias con volúmenes de NVMe almacenamiento, todos los volúmenes del almacén de instancias se adjuntan automáticamente a la instancia en el momento del lanzamiento. Para obtener más información sobre los tipos de instancias y sus volúmenes de NVMe almacenamiento asociados, consulte los [detalles del tipo de instancia de Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/).

  Para que el volumen de NVMe almacenamiento adjunto esté disponible para tu instancia de bloc de notas, sigue los pasos que se indican en [Hacer que los volúmenes de almacén de instancias estén disponibles en tu instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html#making-instance-stores-available-on-your-instances). Complete los pasos con acceso raíz o mediante un script de configuración del ciclo de vida.
**nota**  
NVMe los volúmenes de los almacenes de instancias no son almacenamiento persistente. Este almacenamiento se mantiene con la instancia y se debe volver a configurar cada vez que se lance una instancia con este almacenamiento.

**Para crear una instancia de SageMaker AI notebook:**

1. Abre la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. Elija **Instancias de bloc de notas** y, a continuación, **Crear instancia de bloc de notas**.

1. En la página **Crear instancia de bloc de notas**, proporcione la siguiente información: 

   1. Para **Nombre de instancia del bloc de notas**, escriba un nombre para su instancia de cuaderno.

   1. Para el **Tipo de instancia de bloc de notas**, elija un tamaño de instancia adecuado para su caso de uso. Para ver una lista de los tipos de instancias y las cuotas compatibles, consulta [Amazon SageMaker AI Service Quotas](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html#limits_sagemaker).

   1. En **Identificador de plataforma**, elija un tipo de plataforma en el que crear la instancia del cuaderno. Este tipo de plataforma determina el sistema operativo y la JupyterLab versión con la que se crea la instancia de tu notebook. La versión más reciente y recomendada es `notebook-al2023-v1` para una instancia de notebook Amazon Linux 2023. A partir del 30 de junio de 2025, solo se admiten JupyterLab 4 instancias nuevas. Para obtener información sobre los tipos de identificadores de plataforma, consulte [AL2023 instancias de bloc de notas](nbi-al2023.md) y[Instancias de cuaderno de Amazon Linux 2](nbi-al2.md). Para obtener información sobre JupyterLab las versiones, consulte[JupyterLab control de versiones](nbi-jl.md).
**importante**  
JupyterLab Las versiones 1 y JupyterLab 3 dejarán de ser compatibles a partir del 30 de junio de 2025. Ya no podrá crear instancias de cuaderno nuevas ni reiniciar instancias de cuaderno detenidas con estas versiones. Las instancias en servicio existentes pueden seguir funcionando, pero no recibirán actualizaciones de seguridad ni correcciones de errores. Migre a JupyterLab 4 instancias de portátiles para obtener soporte continuo. Para obtener más información, consulte [JupyterLab mantenimiento de versiones](nbi-jl.md#nbi-jl-version-maintenance).

   1. (Opcional) La **configuración adicional** permite a los usuarios avanzados crear un script de intérprete de comandos que se puede ejecutar al crear o iniciar la instancia. Este script, denominado script de configuración del ciclo de vida, se puede utilizar para establecer el entorno del cuaderno o para realizar otras funciones. Para obtener información, consulte [Personalización de una instancia de SageMaker bloc de notas mediante un script LCC](notebook-lifecycle-config.md).

   1. (Opcional) La **configuración adicional** también le permite especificar el tamaño, en GB, del volumen de almacenamiento de machine learning que está conectado a la instancia de cuaderno. Puede elegir un tamaño entre 5 GB y 16 384 GB, en incrementos de 1 GB. Puede utilizar el volumen para limpiar los conjuntos de datos de entrenamiento o para almacenar temporalmente datos de validación de la tienda u otros datos con los que trabajar.

   1. (Opcional) Para obtener una **versión mínima de IMDS**, seleccione una versión de la lista desplegable. Si este valor se establece en v1, ambas versiones se pueden usar con la instancia de cuaderno. Si se selecciona la versión 2, solo se IMDSv2 puede usar con la instancia de notebook. Para obtener información al respecto IMDSv2, consulte [Uso IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html).
**nota**  
A partir del 31 de octubre de 2022, la versión IMDS mínima predeterminada para las instancias de SageMaker notebook cambiará de IMDSv1 a IMDSv2.   
A partir del 1 de febrero de 2023, IMDSv1 ya no estará disponible para la creación de nuevas instancias de bloc de notas. Después de esta fecha, puede crear instancias de cuaderno con una versión de IMDS mínima de 2.

   1. Para el **rol de IAM**, elige un rol de IAM existente en tu cuenta con los permisos necesarios para acceder a los recursos de SageMaker IA o **crea un nuevo** rol. Si eliges **Crear un nuevo rol**, SageMaker AI crea un rol de IAM denominado. `AmazonSageMaker-ExecutionRole-YYYYMMDDTHHmmSS` La política AWS gestionada `AmazonSageMakerFullAccess` está asociada al rol. El rol proporciona permisos que permiten a la instancia de notebook llamar a SageMaker AI y Amazon S3.

   1. En **Acceso raíz**, para conceder acceso raíz a todos los usuarios de instancia con cuaderno, elija **Habilitado**. Para eliminar el acceso raíz para los usuarios, elija **Deshabilitar**. Si concede acceso raíz, todos los usuarios de instancias de cuaderno tendrán privilegios de administrador y podrán obtener acceso a todos los archivos que contiene y editarlos. 

   1. (Opcional) La **clave de cifrado** permite cifrar los datos del volumen de almacenamiento de machine learning conectado a la instancia de cuaderno mediante una clave AWS Key Management Service (AWS KMS). Si planea almacenar información confidencial en el volumen de almacenamiento de machine learning, considere cifrar la información. 

   1. (Opcional) **Red** le permite colocar su instancia de cuaderno dentro de una nube privada virtual (VPC). Una VPC proporciona seguridad adicional y restringe el acceso a los recursos de la VPC desde orígenes ajenos a la VPC. Para obtener más información VPCs, consulte la Guía del [usuario de Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/).

      **Para agregar la instancia de cuaderno a una VPC:**

      1. Elija la **VPC** y un. **SubnetId**

      1. En **Grupo de seguridad**, seleccione el grupo de seguridad predeterminado de la VPC. 

      1. Si necesita que su instancia de cuaderno tenga acceso a internet, habilite el acceso directo a internet. En **Acceso directo a Internet**, elija **Habilitar**. El acceso a internet puede hacer que su instancia de cuaderno sea menos segura. Para obtener más información, consulte [Conexión de una instancia de cuaderno en una VPC a recursos externos](appendix-notebook-and-internet-access.md). 

   1. (Opcional) Para asociar repositorios Git con la instancia con cuaderno, elija un repositorio predeterminado y hasta tres repositorios adicionales. Para obtener más información, consulte [Repositorios de Git con instancias de SageMaker AI Notebook](nbi-git-repo.md).

   1. Elija **Crear instancia de bloc de notas**. 

      En unos minutos, Amazon SageMaker AI lanza una instancia de cómputo de aprendizaje automático (en este caso, una instancia de notebook) y le adjunta un volumen de almacenamiento de aprendizaje automático. La instancia de cuaderno cuenta con un servidor de cuaderno de Jupyter configurado previamente y un conjunto de bibliotecas de Anaconda. Para obtener más información, consulte la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html). 

1. Cuando el estado de la instancia de cuaderno es `InService`, en la consola, la instancia de cuaderno está lista para su uso. Elija **Abrir Jupyter** junto al nombre del cuaderno para abrir el panel clásico de Jupyter.
**nota**  
Para aumentar la seguridad de tu instancia de Amazon SageMaker Notebook, todos los `notebook.region.sagemaker.aws` dominios regionales se registran en la [lista de sufijos públicos (PSL](https://publicsuffix.org/)) de Internet. Para mayor seguridad, le recomendamos que utilice cookies con un `__Host-` prefijo para establecer cookies confidenciales en los dominios de sus instancias de notebook. SageMaker Esta práctica lo ayuda a proteger su dominio de los intentos de falsificación de solicitudes entre sitios (CSRF). Para obtener más información, consulte la página [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) en el sitio web de la documentación para desarrolladores [mozilla.org](https://www.mozilla.org/en-GB/?v=1).

    Puede elegir **Abrir JupyterLab para abrir** el JupyterLab panel de control. El panel proporciona acceso a su instancia de cuaderno.

   Para obtener más información sobre los cuadernos de Jupyter, consulte la sección sobre [el cuaderno de Jupyter](https://jupyter-notebook.readthedocs.io/en/stable/).

# Acceso a instancias de cuaderno
<a name="howitworks-access-ws"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Para acceder a tus instancias de Amazon SageMaker Notebook, elige una de las siguientes opciones: 
+ Usar la consola.

  Seleccione **Instancias de bloc de notas**. La consola muestra una lista de instancias de cuaderno en su cuenta. Para abrir una instancia de cuaderno con una interfaz Jupyter estándar, elija **Abrir Jupyter** para dicha instancia. Para abrir una instancia de bloc de notas con una JupyterLab interfaz, selecciona **Abrir JupyterLab** para esa instancia.  
![\[Ejemplo de la sección Instancias de cuaderno en la consola.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/ws-notebook-10.png)

  La consola usa tus credenciales de inicio de sesión para enviar un [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html)Solicitud de API a SageMaker AI. SageMaker AI devuelve la URL de tu instancia de notebook y la consola abre la URL en otra pestaña del navegador y muestra el panel de control de Jupyter Notebook. 
**nota**  
La dirección URL que se obtiene de una llamada a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) solo es válida durante 5 minutos. Si intentas utilizar la URL una vez transcurrido el límite de 5 minutos, accederás a la página de inicio de Consola de administración de AWS sesión.
+ Usar la API.

  Para obtener la dirección URL de la instancia con cuaderno, llame a la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) y utilice la dirección URL que la API devuelve para abrir la instancia con cuaderno.

Utilice el panel de cuaderno de Jupyter para crear y administrar cuadernos y para escribir código. Para obtener más información sobre cuadernos de Jupyter, consulte [http://jupyter.org/documentation.html](http://jupyter.org/documentation.html).

# Actualización de una instancia de cuaderno.
<a name="nbi-update"></a>

Tras crear una instancia de bloc de notas, puedes actualizarla mediante la consola de SageMaker IA y el funcionamiento de la [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateNotebookInstance.html)API.

Puede actualizar las etiquetas de una instancia de cuaderno que esté `InService`. Para actualizar cualquier otro atributo de una instancia de cuaderno, su estado debe ser `Stopped`.

**Para actualizar una instancia de bloc de notas en la consola de SageMaker IA:**

1. Abre la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. Seleccione **Instancias de bloc de notas**.

1. Elija la instancia de cuaderno que desee actualizar seleccionando el **nombre** de la instancia de cuaderno en la lista.

1. Si el **estado** de su cuaderno no es `Stopped`, seleccione el botón **Detener** para detener la instancia de cuaderno. 

   Al hacerlo, el estado de la instancia de cuaderno cambia a `Stopping`. Espere a que el estado cambie a `Stopped` para completar los siguientes pasos. 

1. Seleccione el botón **Editar** para abrir la página **Editar instancia del bloc de notas**. Para obtener información acerca de las propiedades del cuaderno que pueda actualizar, consulte [Crear una instancia de Amazon SageMaker Notebook](howitworks-create-ws.md).

1. Actualice la instancia de su cuaderno y, cuando haya terminado, seleccione el botón **Actualizar instancia de bloc de notas** situado en la parte inferior de la página para volver a la página de instancias de cuaderno. El estado de su instancia de cuaderno cambia a **Actualizando**. 

   Cuando se completa la actualización de la instancia de cuaderno, el estado cambia a `Stopped`.

# Personalización de una instancia de SageMaker bloc de notas mediante un script LCC
<a name="notebook-lifecycle-config"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Una *configuración del ciclo de vida* (LCC) proporciona los scripts de intérprete de comandos que se ejecutan solo cuando crea una instancia de cuaderno o cuando inicia una. Al crear una instancia de cuaderno, puede crear una nueva LCC o asociar una LCC de la que ya disponga. Los scripts de configuración del ciclo de vida son útiles para los siguientes casos de uso:
+ Instalación de paquetes o cuadernos de muestra en una instancia de cuaderno
+ Configuración de red y seguridad para una instancia de cuaderno
+ Uso de un script de intérprete de comandos para personalizar una instancia de cuaderno

También puede usar un script de configuración del ciclo de vida para acceder a AWS los servicios desde su portátil. Por ejemplo, puede crear un script que le permita usar su bloc de notas para controlar otros AWS recursos, como una instancia de Amazon EMR.

[Mantenemos un repositorio público de los scripts de configuración del ciclo de vida de las computadoras portátiles que abordan los casos de uso más comunes para personalizar las instancias de las computadoras portátiles en https://github.com/aws-samples/ amazon-sagemaker-notebook-instance -. lifecycle-config-samples](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples)

**nota**  
Cada script tiene un límite de 16 384 caracteres.  
El valor de la variable de entorno `$PATH` que está disponible para ambos scripts es `/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin`. El directorio de trabajo, que es el valor de la variable de entorno `$PWD`, es `/`.  
Vea CloudWatch los registros de las configuraciones del ciclo de vida de las instancias de portátiles en el grupo de registros del `/aws/sagemaker/NotebookInstances` flujo `[notebook-instance-name]/[LifecycleConfigHook]` de registros.  
Los scripts no se pueden ejecutar durante más de 5 minutos. Si un script se ejecuta durante más de 5 minutos, se produce un error y no se crea o inicia la instancia de cuaderno. Para ayudar a reducir el tiempo de ejecución de los scripts, pruebe lo siguiente:  
Reduzca el número de pasos necesarios. Por ejemplo, limitar los entornos de Conda donde se instalarán paquetes de gran tamaño.
Ejecute tareas en procesos paralelos.
Utilice el comando `nohup` en su script.

Para ver una lista de las configuraciones del ciclo de vida de las instancias de notebook que haya creado anteriormente, seleccione la **configuración del ciclo** de vida en la consola de SageMaker IA. Puede asociar una LCC de una instancia de cuaderno al crear una nueva instancia de cuaderno. Para obtener más información acerca de la creación de una instancia de cuaderno, consulte [Crear una instancia de Amazon SageMaker Notebook](howitworks-create-ws.md).

# Creación de un script de configuración de ciclo de vida
<a name="notebook-lifecycle-config-create"></a>

El siguiente procedimiento muestra cómo crear un script de configuración del ciclo de vida para usarlo con una instancia de Amazon SageMaker Notebook. Para obtener más información acerca de la creación de una instancia de cuaderno, consulte [Crear una instancia de Amazon SageMaker Notebook](howitworks-create-ws.md).

**Para crear una configuración del ciclo de vida, realice el siguiente procedimiento:**

1. Abre la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

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

1. En **Configuraciones de administración**, seleccione **Configuraciones de ciclo de vida**. 

1. En la página **Configuraciones del ciclo de vida**, seleccione la pestaña **Instancia de bloc de notas**.

1. Seleccione **Crear configuración**.

1. En **Nombre**, escriba un nombre con caracteres alfanuméricos y guiones, pero sin espacios. El nombre puede tener un máximo de 63 caracteres.

1. (Opcional) Para crear un script que se ejecute al crear el cuaderno y cada vez que lo inicie, elija **Iniciar bloc de notas**.

1. En el editor **Iniciar bloc de notas**, escriba el script.

1. (Opcional) Para crear un script que se ejecute solo una vez, al crear el cuaderno, elija **Crear bloc de notas**.

1. En el editor **Crear bloc de notas**, escriba la red de configuración del script.

1. Seleccione **Crear configuración**.

## Prácticas recomendadas de configuración del ciclo de vida
<a name="nbi-lifecycle-config-bp"></a>

A continuación se indican las prácticas recomendadas para utilizar configuraciones del ciclo de vida:

**importante**  
No recomendamos almacenar información confidencial en el script de configuración del ciclo de vida.

**importante**  
Los scripts de configuración del ciclo de vida se ejecutan con acceso root y con los privilegios de la función de ejecución de IAM de la instancia de notebook, independientemente de la configuración de acceso root para los usuarios de notebooks. Los directores con permisos para crear o modificar las configuraciones del ciclo de vida y actualizar las instancias de notebook pueden ejecutar código con las credenciales de la función de ejecución. Para obtener más información, consulte [Controle el acceso raíz a una instancia de notebook SageMaker](nbi-root-access.md).
+ Las configuraciones del ciclo de vida se ejecutan como usuario `root`. Si su script realiza cualquier cambio en el directorio `/home/ec2-user/SageMaker` (por ejemplo, instalar un paquete con `pip`), use el comando `sudo -u ec2-user` que se va a ejecutar como usuario `ec2-user`. Este es el mismo usuario con el que se ejecuta Amazon SageMaker AI.
+ SageMaker Las instancias de cuadernos de IA utilizan `conda` entornos para implementar diferentes núcleos para los cuadernos de Jupyter. Si desea instalar paquetes que están disponibles para uno o varios kernels de cuaderno, incluya los comandos para instalar los paquetes con comandos de entorno `conda` que activen el entorno conda que contenga el kernel donde desee instalar los paquetes.

  Por ejemplo, si desea instalar un paquete solo para el entorno `python3`, use el siguiente código:

  ```
  #!/bin/bash
  sudo -u ec2-user -i <<EOF
  
  # This will affect only the Jupyter kernel called "conda_python3".
  source activate python3
  
  # Replace myPackage with the name of the package you want to install.
  pip install myPackage
  # You can also perform "conda install" here as well.
  
  source deactivate
  
  EOF
  ```

  Si desea instalar un paquete en todos los entornos conda de la instancia con cuaderno, use el siguiente código:

  ```
  #!/bin/bash
  sudo -u ec2-user -i <<EOF
  
  # Note that "base" is special environment name, include it there as well.
  for env in base /home/ec2-user/anaconda3/envs/*; do
      source /home/ec2-user/anaconda3/bin/activate $(basename "$env")
  
      # Installing packages in the Jupyter system environment can affect stability of your SageMaker
      # Notebook Instance.  You can remove this check if you'd like to install Jupyter extensions, etc.
      if [ $env = 'JupyterSystemEnv' ]; then
        continue
      fi
  
      # Replace myPackage with the name of the package you want to install.
      pip install --upgrade --quiet myPackage
      # You can also perform "conda install" here as well.
  
      source /home/ec2-user/anaconda3/bin/deactivate
  done
  
  EOF
  ```
+ Debe almacenar todos los entornos de conda en la carpeta de entornos predeterminada (/). home/user/anaconda3/envs

**importante**  
Al crear o cambiar un script, recomendamos que utilice un editor de texto que proporcione saltos de línea de tipo Unix, como el editor de texto disponible en la consola al crear un cuaderno. Si copia texto desde un sistema operativo distinto de Linux, podría introducir saltos de línea incompatibles y dar lugar a un error inesperado.

# Instalación de una biblioteca externa y un kernel
<a name="nbi-add-external"></a>

**importante**  
Actualmente, todos los paquetes de los entornos de instancias de notebook tienen licencia para su uso con Amazon SageMaker AI y no requieren licencias comerciales adicionales. Sin embargo, esto podría estar sujeto a cambios en el futuro, por lo que recomendamos revisar los términos de licencia con regularidad para comprobar las actualizaciones.

Las instancias de Amazon SageMaker Notebook vienen con varios entornos ya instalados. Estos entornos contienen núcleos de Jupyter y paquetes de Python que incluyen: scikit, Pandas,, y. NumPy TensorFlow MXNet Estos entornos, junto con todos los archivos de la carpeta `sample-notebooks`, se actualizan cuando detiene e inicia una instancia de cuaderno. También puede instalar sus propios entornos que contienen la opción de los paquetes y kernels.

Los diferentes núcleos de Jupyter en las instancias de Amazon SageMaker Notebook son entornos conda independientes. Para obtener información sobre los entornos conda, consulte la sección de [administración de entornos](https://conda.io/docs/user-guide/tasks/manage-environments.html) en la documentación de *Conda*.

Instale entornos y kernels personalizados en el volumen de Amazon EBS de la instancia de cuaderno. Esto garantiza que persistan cuando se detiene y se reinicia la instancia de notebook, y que la IA no actualice las bibliotecas externas que instale. SageMaker Para ello, utilice una configuración del ciclo de vida que incluya un script que se ejecute al crear la instancia de cuaderno (`on-create)` y un script que se ejecute cada vez que se reinicie la instancia de cuaderno (`on-start`). Para obtener más información acerca de las configuraciones de ciclo de vida utilizando instancias de cuaderno, consulte [Personalización de una instancia de SageMaker bloc de notas mediante un script LCC](notebook-lifecycle-config.md). Hay un GitHub repositorio que contiene ejemplos de scripts de configuración del ciclo de vida en [SageMaker AI Notebook Instance Lifecycle Config Samples](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples).

Los ejemplos de [https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.sh](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.sh) y [https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-start.sh](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-start.sh) muestran las mejores prácticas para instalar entornos y núcleos en una instancia de notebook. El script `on-create` instala la biblioteca `ipykernel` para crear entornos personalizados como kernels de Jupyter y, a continuación, utiliza `pip install` y `conda install` para instalar las bibliotecas. Puede adaptar el script para crear entornos personalizados e instalar las bibliotecas que desee. SageMaker AI no actualiza estas bibliotecas cuando detienes y reinicias la instancia del bloc de notas, por lo que puedes asegurarte de que tu entorno personalizado tiene las versiones específicas de las bibliotecas que deseas. El script `on-start` instala todos los entornos personalizados que cree como kernels de Jupyter para que aparezcan en la lista desplegable del menú **Nuevo** de Jupyter.

## Herramientas de instalación de paquetes
<a name="nbi-add-external-tools"></a>

SageMaker los portátiles admiten las siguientes herramientas de instalación de paquetes:
+ instalación conda
+ instalación pip

Puede instalar paquetes mediante los siguientes métodos:
+ Scripts de configuración del ciclo de vida.

  Para ver ejemplos de scripts, consulta los [ejemplos de SageMaker AI Notebook Instance Lifecycle Config](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples). Para obtener más información sobre la configuración del ciclo de vida, consulte [Personalización de una instancia de bloc de notas con un script de configuración del ciclo de vida](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
+ Cuadernos: se admiten los siguientes comandos.
  + `%conda install`
  + `%pip install`
+ El terminal de Jupyter: puede instalar paquetes directamente con pip y conda.

Desde un cuaderno se puede usar la sintaxis de comandos del sistema (las líneas que comienzan por \$1) para instalar paquetes, por ejemplo, `!pip install` y `!conda install`. Más recientemente, se agregaron nuevos comandos a IPython: `%pip` y`%conda`. Estos comandos son los recomendados para instalar los paquetes desde un cuaderno, ya que tienen en cuenta correctamente el entorno activo o el intérprete que se está utilizando. Para obtener más información, consulte [Añadir las funciones mágicas %pip y %conda](https://github.com/ipython/ipython/pull/11524).

### Conda
<a name="nbi-add-external-tools-conda"></a>

Conda es un sistema de administración de paquetes y un sistema de administración de entornos de código abierto, que puede instalar paquetes y sus dependencias. SageMaker La IA admite el uso de Conda con cualquiera de los dos canales principales, el canal predeterminado y el canal conda-forge. Para obtener más información, consulte [Conda channels](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html). El canal conda-forge es un canal comunitario en el que los colaboradores pueden subir paquetes.

**nota**  
Debido a la forma en que Conda resuelve el gráfico de dependencias, la instalación de paquetes desde conda-forge puede llevar mucho más tiempo (en el peor de los casos, más de 10 minutos).

La AMI de aprendizaje profundo viene con muchos entornos de Conda y muchos paquetes preinstalados. Debido a la cantidad de paquetes preinstalados, es difícil encontrar un conjunto de paquetes que garanticen su compatibilidad. Es posible que aparezca una advertencia que diga: “The environment is inconsistent, please check the package plan carefully”. A pesar de esta advertencia, la SageMaker IA se asegura de que todos los entornos proporcionados por la SageMaker IA sean correctos. SageMaker AI no puede garantizar que los paquetes instalados por los usuarios funcionen correctamente.

**nota**  
Los usuarios de SageMaker AI AWS Deep Learning AMIs y Amazon EMR pueden acceder al repositorio comercial de Anaconda sin necesidad de obtener una licencia comercial hasta el 1 de febrero de 2024 si utilizan Anaconda en esos servicios. Para cualquier uso del repositorio comercial de Anaconda después del 1 de febrero de 2024, los clientes son responsables de determinar sus propios requisitos de licencia de Anaconda.

Conda tiene dos métodos para activar entornos: conda. activate/deactivate, and source activate/deactivate Para obtener más información, consulte [Should I use 'conda activate' or 'source activate' in Linux](https://stackoverflow.com/questions/49600611/python-anaconda-should-i-use-conda-activate-or-source-activate-in-linux).

SageMaker La IA permite mover los entornos de Conda al volumen de Amazon EBS, que persiste cuando se detiene la instancia. Los entornos no persisten cuando se instalan en el volumen raíz, lo que es el comportamiento predeterminado. Para ver un ejemplo de script de ciclo de vida, consulte. [persistent-conda-ebs](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/tree/master/scripts/persistent-conda-ebs)

**Operaciones conda compatibles (consulte la nota al final de este tema)**
+ instalación conda de un paquete en un solo entorno
+ instalación conda de un paquete en todos los entornos
+ instalación conda de un paquete R en el entorno R
+ Instalación de un paquete desde el repositorio principal de conda
+ Instalación de un paquete desde conda-forge
+ Cambio de la ubicación de instalación de Conda para usar EBS
+ Compatible con conda activate y source activate

### Pip
<a name="nbi-add-external-tools-pip"></a>

Pip es la herramienta de facto para instalar y administrar paquetes de Python. De forma predeterminada, Pip busca paquetes en el Índice de paquetes de Python (PyPI). A diferencia de Conda, pip no tiene soporte de entorno integrado y no es tan exhaustivo como Conda cuando se trata de paquetes con native/system dependencias de biblioteca. Pip se puede usar para instalar paquetes en entornos Conda.

Puede usar repositorios de paquetes alternativos con pip en lugar de PyPI. Para ver un ejemplo de script de ciclo de vida, consulta [on-start.sh](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/add-pypi-repository/on-start.sh).

**Operaciones pip compatibles (consulte la nota al final de este tema)**
+ Uso de pip para instalar un paquete sin un entorno conda activo (instalación de paquetes en todo el sistema)
+ Uso de pip para instalar un paquete en un entorno conda 
+ Uso de pip para instalar un paquete en todos los entornos conda 
+ Cambio de la ubicación de instalación de pip para usar EBS
+ Uso de un repositorio alternativo para instalar paquetes con pip

### No se admite
<a name="nbi-add-external-tools-misc"></a>

SageMaker El objetivo de AI es admitir tantas operaciones de instalación de paquetes como sea posible. Sin embargo, si los paquetes los instaló SageMaker AI o DLAMI y utiliza las siguientes operaciones en estos paquetes, es posible que la instancia de su notebook sea inestable:
+ Desinstalación
+ Degradación
+ Mejora

No ofrecemos soporte para la instalación de paquetes a través de yum install ni para la instalación de paquetes R desde CRAN.

Debido a posibles problemas con las condiciones o configuraciones de la red, o con la disponibilidad de Conda PyPi, no podemos garantizar que los paquetes se instalen en un período de tiempo fijo o determinista.

**nota**  
No podemos garantizar que la instalación de un paquete se realice correctamente. Si se intenta instalar un paquete en un entorno con dependencias incompatibles, se puede producir un error. En tal caso, debe ponerse en contacto con el responsable de la biblioteca para ver si es posible actualizar las dependencias del paquete. Como alternativa, puede intentar modificar el entorno de tal manera que permita la instalación. Sin embargo, es probable que esta modificación implique eliminar o actualizar los paquetes existentes, lo que significa que ya no podemos garantizar la estabilidad de este entorno.

# Actualizaciones de software de instancias de cuaderno
<a name="nbi-software-updates"></a>

Amazon SageMaker AI prueba y publica periódicamente el software que está instalado en las instancias de ordenadores portátiles. Esto incluye:
+ Actualizaciones del kernel
+ Parches de seguridad
+ AWS Actualizaciones del SDK
+ Actualizaciones del [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable)
+ Actualizaciones de software de código abierto

Para asegurarse de que dispone de las actualizaciones de software más recientes, detenga y reinicie la instancia de su notebook, ya sea en la consola de SageMaker IA o llamando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopNotebookInstance.html).

También puede actualizar manualmente el software instalado en la instancia de cuaderno mientras se está ejecutando utilizando comandos de actualización en un terminal o en un cuaderno.

**nota**  
La actualización de kernels y algunos paquetes puede depender de si el acceso raíz está habilitado para la instancia de cuaderno. Para obtener más información, consulte [Controle el acceso raíz a una instancia de notebook SageMaker](nbi-root-access.md).

Puede consultar el [Personal Health Dashboard](https://aws.amazon.com/premiumsupport/technology/personal-health-dashboard/) o el boletín de seguridad en [Boletines de seguridad](https://aws.amazon.com/security/security-bulletins/) para obtener actualizaciones.

# Controlar una instancia Spark de Amazon EMR a través de un cuaderno
<a name="nbi-lifecycle-config-emr"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Puede usar una instancia de bloc de notas creada con un script de configuración del ciclo de vida personalizado para acceder a AWS los servicios desde su bloc de notas. Por ejemplo, puede crear un script que le permite utilizar su cuaderno con Sparkmagic para controlar otros recursos de AWS , como por ejemplo una instancia de Amazon EMR. A continuación, puede utilizar la instancia de Amazon EMR para procesar los datos en lugar de ejecutar el análisis de datos en el cuaderno. Esto le permite crear una instancia de cuaderno más pequeña, ya que no la usará para procesar datos. Esto resulta útil cuando tiene conjuntos de datos grandes que precisan una instancia de cuaderno grande para procesar los datos.

El proceso requiere tres procedimientos con la consola Amazon SageMaker AI:
+ Creación de la instancia Spark de Amazon EMR
+ Creación del cuaderno de Jupyter
+ Pruebe la conexión notebook-to-Amazon EMR

**Para crear una instancia Spark de Amazon EMR que se pueda controlar desde un cuaderno mediante Sparkmagic**

1. Abra la consola de Amazon EMR en [https://console.aws.amazon.com/elasticmapreduce/](https://console.aws.amazon.com/elasticmapreduce/).

1. En el panel de navegación, elija **Create cluster (Crear clúster)**.

1. En la página **Create Cluster - Quick Options (Crear clúster: opciones rápidas)**, en **Software configuration (Configuración de software)**, seleccione **Spark: Spark 2.4.4 on Hadoop 2.8.5 YARN with Ganglia 3.7.2 and Zeppelin 0.8.2 (Spark: Spark 2.4.4 en Hadoop 2.8.5 YARN con Ganglia 3.7.2 y Zeppelin 0.8.2)**.

1. Establezca parámetros adicionales en la página y, a continuación, elija **Create cluster (Crear clúster)**.

1. En la página **Cluster (Clúster)**, elija el nombre del clúster que haya creado. Tenga en cuenta el **Master Public DNS (DNS público maestro)**, el **EMR master's security group (Grupo de seguridad del elemento maestro de EMR)** y el nombre de la VPC y el ID de la subred donde se creó el clúster de EMR. Utilizará estos valores cuando cree un cuaderno.

**Para crear un cuaderno que utilice Sparkmagic para controlar una instancia Spark de Amazon EMR**

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

1. En el panel de navegación, en **Instancias de bloc de notas**, elija **Crear bloc de notas**.

1. Introduzca el nombre de la instancia de cuaderno y seleccione el tipo de instancia.

1. Elija **Configuración adicional** y, a continuación, en **Configuración de ciclo de vida**, elija **Crear una nueva configuración del ciclo de vida**.

1. Añada el siguiente código al script de configuración del ciclo de vida:

   ```
   # OVERVIEW
   # This script connects an Amazon EMR cluster to an Amazon SageMaker notebook instance that uses Sparkmagic.
   #
   # Note that this script will fail if the Amazon EMR cluster's master node IP address is not reachable.
   #   1. Ensure that the EMR master node IP is resolvable from the notebook instance.
   #      One way to accomplish this is to have the notebook instance and the Amazon EMR cluster in the same subnet.
   #   2. Ensure the EMR master node security group provides inbound access from the notebook instance security group.
   #       Type        - Protocol - Port - Source
   #       Custom TCP  - TCP      - 8998 - $NOTEBOOK_SECURITY_GROUP
   #   3. Ensure the notebook instance has internet connectivity to fetch the SparkMagic example config.
   #
   # https://aws.amazon.com/blogs/machine-learning/build-amazon-sagemaker-notebooks-backed-by-spark-in-amazon-emr/
   
   # PARAMETERS
   EMR_MASTER_IP=your.emr.master.ip
   
   
   cd /home/ec2-user/.sparkmagic
   
   echo "Fetching Sparkmagic example config from GitHub..."
   wget https://raw.githubusercontent.com/jupyter-incubator/sparkmagic/master/sparkmagic/example_config.json
   
   echo "Replacing EMR master node IP in Sparkmagic config..."
   sed -i -- "s/localhost/$EMR_MASTER_IP/g" example_config.json
   mv example_config.json config.json
   
   echo "Sending a sample request to Livy.."
   curl "$EMR_MASTER_IP:8998/sessions"
   ```

1. En la sección `PARAMETERS` del script, sustituya `your.emr.master.ip` por el nombre DNS público maestro de la instancia de Amazon EMR.

1. Seleccione **Crear configuración**.

1. En la página **Crear bloc de notas**, seleccione **Red: opcional**.

1. Seleccione la VPC y la subred donde está ubicada la instancia de Amazon EMR.

1. Seleccione el grupo de seguridad utilizado por el nodo maestro de Amazon EMR.

1. Elija **Crear instancia de bloc de notas**.

Mientras se crea la instancia de cuaderno, el estado es **Pendiente**. Una vez que se haya creado la instancia y el script de configuración del ciclo de vida se haya ejecutado correctamente, el estado es **InService**.

**nota**  
Si la instancia de bloc de notas no se puede conectar a la instancia de Amazon EMR, la SageMaker IA no podrá crear la instancia de bloc de notas. La conexión puede fallar si la instancia de Amazon EMR y el cuaderno no están en la misma VPC y subred, si el cuaderno no utiliza el grupo de seguridad maestro de Amazon EMR o si el nombre DNS público maestro del script no es correcto. 

**Para probar la conexión entre la instancia de Amazon EMR y el cuaderno**

1.  Cuando el estado de la libreta sea **InService**, selecciona **Abrir Jupyter** para abrir la libreta.

1. Selecciona **Nuevo** y, a continuación, selecciona **Sparkmagic** (). PySpark

1. En la celda de código, introduzca **%%info** y, a continuación, ejecute la celda.

   El resultado debería ser similar al siguiente

   ```
   Current session configs: {'driverMemory': '1000M', 'executorCores': 2, 'kind': 'pyspark'}
                       No active sessions.
   ```

# Establecimiento del kernel del cuaderno
<a name="howitworks-set-kernel"></a>

Amazon SageMaker AI proporciona varios núcleos para Jupyter que admiten Python 2 y 3 MXNet, TensorFlow Apache y. PySpark Para establecer un kernel para un nuevo cuaderno en el panel de cuaderno de Jupyter, seleccione **Nuevo** y, a continuación, elija el kernel en la lista. Para obtener más información sobre los kernels disponibles, consulte [Kernels disponibles](nbi-al2.md#nbi-al2-kernel).

![\[Ubicación de la lista desplegable Nuevo en el panel del cuaderno de Jupyter.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/nbi-set-kernel.png)


También puede crear un kernel personalizado que puede usar en su instancia de cuaderno. Para obtener información, consulte [Instalación de una biblioteca externa y un kernel](nbi-add-external.md).

# Repositorios de Git con instancias de SageMaker AI Notebook
<a name="nbi-git-repo"></a>

Asocie repositorios de Git a su instancia de cuaderno para guardar sus cuadernos de notas en un entorno de control de origen que persiste incluso si se detiene o se elimina su instancia de cuaderno. Puede asociar una repositorio predeterminado y hasta un máximo de tres repositorios adicionales a una instancia de cuaderno. Los repositorios se pueden alojar en AWS CodeCommit o en cualquier otro servidor Git. GitHub Asociar repositorios de Git a su instancia de cuaderno pueden ser útil para:
+ Persistencia: los cuadernos de una instancia de cuaderno se almacenan en volúmenes de Amazon EBS duraderos, pero no persisten más allá de la vida de su instancia de cuaderno. Almacenar cuadernos en un repositorio de Git le permite almacenar y utilizar cuadernos incluso si detiene o elimina su instancia de cuaderno.
+ Colaboración: los miembros de un equipo suelen colaborar en proyectos de machine learning. Almacenar los cuadernos en repositorios de Git permite a los miembros del equipo que trabajan en instancias de cuadernos diferentes compartir los cuadernos y colaborar en ellos en un entorno de control de origen.
+ Aprendizaje: muchos cuadernos de Jupyter que muestran técnicas de aprendizaje automático están disponibles en repositorios de Git alojados públicamente, como en. GitHub Puede asociar su instancia de cuaderno a un repositorio para cargar fácilmente los cuadernos de Jupyter contenidos en dicho repositorio.

Hay dos formas de asociar un repositorio de Git a una instancia de cuaderno:
+ Añade un repositorio de Git como recurso a tu cuenta de Amazon SageMaker AI. A continuación, para acceder al repositorio, puede especificar un secreto de AWS Secrets Manager que contenga las credenciales. De esta forma, podrá obtener acceso a los repositorios que requieran autenticación.
+ Asociar un repositorio de Git público que no sea un recurso a su cuenta. Si lo hace, no podrá especificar credenciales para obtener acceso al repositorio.

**Topics**
+ [Agrega un repositorio de Git a tu cuenta de Amazon SageMaker AI](nbi-git-resource.md)
+ [Creación de una instancia del cuaderno con un repositorio de Git asociado](nbi-git-create.md)
+ [Asocie un CodeCommit repositorio de una AWS cuenta diferente a una instancia de Notebook](nbi-git-cross.md)
+ [Uso de repositorios de Git en una instancia del cuaderno](git-nbi-use.md)

# Agrega un repositorio de Git a tu cuenta de Amazon SageMaker AI
<a name="nbi-git-resource"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Para gestionar tus GitHub repositorios, asociarlos fácilmente a las instancias de tu bloc de notas y asociar credenciales a los repositorios que requieren autenticación, añade los repositorios como recursos en tu cuenta de Amazon SageMaker AI. Puede ver una lista de los repositorios que están almacenados en su cuenta y los detalles de cada repositorio en la consola de SageMaker IA y mediante la API.

Puedes añadir repositorios de Git a tu cuenta de SageMaker IA en la consola de SageMaker IA o mediante. AWS CLI

**nota**  
Puedes usar la API de SageMaker IA [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCodeRepository.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCodeRepository.html)para añadir repositorios de Git a tu cuenta de SageMaker IA, pero aquí no se proporcionan step-by-step instrucciones.

## Agrega un repositorio de Git a tu cuenta de SageMaker IA (consola)
<a name="nbi-git-resource-console"></a>

**Para añadir un repositorio de Git como recurso en tu cuenta de SageMaker IA**

1. Abre la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Bajo **Cuadernos**, seleccione **Repositorios Git**, y seleccione **Agregar repositorio**.

1. Para añadir un CodeCommit repositorio, elige **AWS CodeCommit**. Para añadir uno GitHub u otro repositorio basado en Git, selecciona **GitHub/Otro repositorio basado en Git**.

**Para añadir un repositorio existente CodeCommit**

1. Elija **Use existing repository (Usar repositorio existente)**.

1. En **Repository (Repositorio)**, elija un repositorio de la lista.

1. Introduzca un nombre para usarlo en el repositorio en SageMaker AI. El nombre debe tener entre 1 y 63 caracteres. Los caracteres válidos son a-z, A-Z, 0-9 y - (guion).

1. Elija **Add repository (Añadir repositorio)**.

**Para crear un CodeCommit repositorio nuevo**

1. Seleccione **Create new repository (Crear nuevo repositorio)**.

1. Introduce un nombre para el repositorio que puedas usar tanto CodeCommit en AI como en SageMaker AI. El nombre debe tener entre 1 y 63 caracteres. Los caracteres válidos son a-z, A-Z, 0-9 y - (guion).

1. Elija **Create repository**.

**Para añadir un repositorio de Git alojado en un lugar que no sea CodeCommit**

1. Elija **GitHub/Otro repositorio basado en Git**.

1. Introduzca un nombre de hasta 63 caracteres. Los caracteres válidos incluyen caracteres alfanuméricos, un guión (-) y 0-9.

1. Introduzca la dirección URL del repositorio. No proporcione un nombre de usuario en la URL. Añada las credenciales de inicio de sesión tal y AWS Secrets Manager como se describe en el siguiente paso.

1. Para **Git credentials (Credenciales de Git)**, seleccione las credenciales que se van a utilizar para autenticarse en el repositorio. Esto es necesario únicamente si el repositorio de Git es privado.
**nota**  
Si ha habilitado la autenticación de dos factores para el repositorio de Git, especifique un token de acceso personal generado por el proveedor de servicios Git en el campo `password`.

   1. Para usar un secreto de AWS Secrets Manager existente, selecciona **Usar secreto existente** y, a continuación, elige un secreto de la lista. Para obtener información sobre la creación y almacenamiento de un secreto, consulte la sección [Creación de un secreto básico](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) en la *Guía del usuario de AWS Secrets Manager*. El nombre del secreto que utilice debe contener la cadena `sagemaker`.
**nota**  
El secreto debe tener una etiqueta de ensayo `AWSCURRENT` y debe tener el siguiente formato:  
`{"username": UserName, "password": Password}`  
En el GitHub caso de los repositorios, te recomendamos que utilices un token de acceso personal `password` sobre el terreno. Para obtener más información, consulte [https://help.github.com/articles/creating-a-personal-access- token-for-the-command -line/](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/).

   1. Para crear un nuevo secreto de AWS Secrets Manager, selecciona **Crear secreto**, escribe un nombre para el secreto y, a continuación, introduce las credenciales de inicio de sesión que se usarán para autenticarse en el repositorio. El nombre del secreto debe contener la cadena `sagemaker`.
**nota**  
El rol de IAM que se utiliza para crear el secreto debe tener el permiso `secretsmanager:GetSecretValue` en su política de IAM.  
El secreto debe tener una etiqueta de ensayo `AWSCURRENT` y debe tener el siguiente formato:  
`{"username": UserName, "password": Password}`  
En el GitHub caso de los repositorios, te recomendamos usar un token de acceso personal.

   1. Para no utilizar ninguna credencial, elija **No secret (Sin secreto)**.

1. Elija **Crear secreto**.

# Añada un repositorio de Git a su cuenta de Amazon SageMaker AI (CLI)
<a name="nbi-git-resource-cli"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Utilice el `create-code-repository` AWS CLI comando para añadir un repositorio de Git a Amazon SageMaker AI para que los usuarios puedan acceder a recursos externos. Especifique un nombre para el repositorio como valor del argumento `code-repository-name`. El nombre debe tener entre 1 y 63 caracteres. Los caracteres válidos son a-z, A-Z, 0-9 y - (guion). Especifique también lo siguiente:
+ La ramificación predeterminada.
+ La dirección URL del repositorio de Git.
**nota**  
No proporcione un nombre de usuario en la URL. Añada las credenciales de inicio de sesión tal y AWS Secrets Manager como se describe en el siguiente paso.
+ El nombre de recurso de Amazon (ARN) de un secreto de AWS Secrets Manager que contiene las credenciales que se van a utilizar para autenticar el repositorio como valor del argumento `git-config`

Para obtener información sobre la creación y almacenamiento de un secreto, consulte la sección [Creación de un secreto básico](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) en la *Guía del usuario de AWS Secrets Manager*. El siguiente comando crea un repositorio nuevo con el nombre `MyRespository` de tu cuenta de Amazon SageMaker AI que apunta a un repositorio de Git alojado en`https://github.com/myprofile/my-repo"`.

Para Linux, OS X o Unix:

```
aws sagemaker create-code-repository \
                    --code-repository-name "MyRepository" \
                    --git-config Branch=branch,RepositoryUrl=https://github.com/myprofile/my-repo,SecretArn=arn:aws:secretsmanager:us-east-2:012345678901:secret:my-secret-ABc0DE
```

Para Windows:

```
aws sagemaker create-code-repository ^
                    --code-repository-name "MyRepository" ^
                    --git-config "{\"Branch\":\"master\", \"RepositoryUrl\" :
                    \"https://github.com/myprofile/my-repo\", \"SecretArn\" : \"arn:aws:secretsmanager:us-east-2:012345678901:secret:my-secret-ABc0DE\"}"
```

**nota**  
El secreto debe tener una etiqueta de ensayo `AWSCURRENT` y debe tener el siguiente formato:  
`{"username": UserName, "password": Password}`  
En el GitHub caso de los repositorios, recomendamos utilizar un token de acceso personal.

# Creación de una instancia del cuaderno con un repositorio de Git asociado
<a name="nbi-git-create"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Puedes asociar los repositorios de Git a una instancia de bloc de notas al crear la instancia de bloc de notas mediante el Consola de administración de AWS, o el AWS CLI. Si quieres usar un CodeCommit repositorio que esté en una AWS cuenta diferente a la de la instancia de notebook, configura el acceso multicuenta al repositorio. Para obtener información, consulte [Asocie un CodeCommit repositorio de una AWS cuenta diferente a una instancia de Notebook](nbi-git-cross.md).

**Topics**
+ [Creación de una instancia de cuaderno a un repositorio Git asociado (consola)](#nbi-git-create-console)
+ [Creación de una instancia de cuaderno con un repositorio de Git asociado (CLI)](nbi-git-create-cli.md)

## Creación de una instancia de cuaderno a un repositorio Git asociado (consola)
<a name="nbi-git-create-console"></a>

**Para crear una instancia de bloc de notas y asociar repositorios de Git en la consola Amazon SageMaker AI**

1. Siga las instrucciones de [Crear una instancia de Amazon SageMaker Notebook para el tutorial](gs-setup-working-env.md).

1. En el caso de los **Repositorios Git**, elija los repositorios de Git que se asociarán a la instancia de cuaderno.

   1. En **Repositorio predeterminado**, elige un repositorio que quieras usar como repositorio predeterminado. SageMaker AI clona este repositorio como un subdirectorio en el directorio de inicio de Jupyter en. `/home/ec2-user/SageMaker` Al abrir su instancia de cuaderno, esta se abre en el repositorio. Para elegir un repositorio que se almacena como recurso en su cuenta, elija el nombre en la lista. Para añadir un repositorio nuevo como recurso a tu cuenta, selecciona **Añadir un repositorio a SageMaker AI (abre el flujo Añadir repositorio en una ventana nueva)** y, a continuación, sigue las instrucciones que se indican en. [Creación de una instancia de cuaderno a un repositorio Git asociado (consola)](#nbi-git-create-console) Para clonar un repositorio público que no está almacenado en su cuenta, elija **Clonar un repositorio Git público solo en esta instancia de cuaderno** y, a continuación, especifique la dirección URL de dicho repositorio.

   1. En el **repositorio adicional 1**, elige el repositorio que quieras añadir como directorio adicional. SageMaker AI clona este repositorio como un subdirectorio en el directorio de inicio de Jupyter en. `/home/ec2-user/SageMaker` Para elegir un repositorio que se almacena como recurso en su cuenta, elija el nombre en la lista. Para añadir un repositorio nuevo como recurso a tu cuenta, selecciona **Añadir un repositorio a SageMaker AI (abre el flujo Añadir repositorio en una ventana nueva)** y, a continuación, sigue las instrucciones que se indican en. [Creación de una instancia de cuaderno a un repositorio Git asociado (consola)](#nbi-git-create-console) Para clonar un repositorio que no esté almacenado en su cuenta, elija **Clonar un repositorio Git público solo en esta instancia de cuaderno** y, a continuación, especifique la dirección URL de dicho repositorio.

      Repita este paso hasta tres veces para añadir hasta tres repositorios adicionales a su instancia de cuaderno.

# Creación de una instancia de cuaderno con un repositorio de Git asociado (CLI)
<a name="nbi-git-create-cli"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Para crear una instancia de cuaderno y asociar repositorios de Git utilizando la AWS CLI, utilice el comando `create-notebook-instance` de la siguiente manera:
+ Especifique el repositorio que quiera usar como repositorio predeterminado como valor del argumento `default-code-repository`. Amazon SageMaker AI clona este repositorio como un subdirectorio en el directorio de inicio de Jupyter en. `/home/ec2-user/SageMaker` Al abrir su instancia de cuaderno, esta se abre en el repositorio. Para usar un repositorio almacenado como recurso en su cuenta de SageMaker IA, especifique el nombre del repositorio como valor del argumento. `default-code-repository` Para utilizar un repositorio que no está almacenado en su cuenta, especifique la dirección URL del repositorio como valor del argumento `default-code-repository`.
+ Especifique hasta tres repositorios adicionales como valor del `additional-code-repositories` argumento. SageMaker AI clona este repositorio como un subdirectorio en el directorio de inicio de Jupyter en`/home/ec2-user/SageMaker`, y el repositorio se excluye del repositorio predeterminado al añadirlo al `.git/info/exclude` directorio del repositorio predeterminado. Para usar los repositorios que están almacenados como recursos en tu cuenta de SageMaker AI, especifica los nombres de los repositorios como el valor del argumento. `additional-code-repositories` Para usar repositorios que no estén almacenados en su cuenta, especifique uno URLs de los repositorios como valor del argumento. `additional-code-repositories`

Por ejemplo, el siguiente comando crea una instancia de bloc de notas que tiene un repositorio denominado`MyGitRepo`, que se almacena como un recurso en tu cuenta de SageMaker IA, como repositorio predeterminado y un repositorio adicional que está alojado en: GitHub

```
aws sagemaker create-notebook-instance \
                    --notebook-instance-name "MyNotebookInstance" \
                    --instance-type "ml.t2.medium" \
                    --role-arn "arn:aws:iam::012345678901:role/service-role/AmazonSageMaker-ExecutionRole-20181129T121390" \
                    --default-code-repository "MyGitRepo" \
                    --additional-code-repositories "https://github.com/myprofile/my-other-repo"
```

**nota**  
Si utilizas un AWS CodeCommit repositorio cuyo nombre no contiene SageMaker «», añade los `codecommit:GitPush` permisos `codecommit:GitPull` y al rol que le transfieras como `role-arn` argumento del `create-notebook-instance` comando. Para obtener información sobre cómo añadir permisos a un rol, consulte [Adición y eliminación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de AWS Identity and Access Management *. 

# Asocie un CodeCommit repositorio de una AWS cuenta diferente a una instancia de Notebook
<a name="nbi-git-cross"></a>

Para asociar un CodeCommit repositorio de una AWS cuenta diferente a su instancia de notebook, configure el acceso multicuenta al CodeCommit repositorio.

**Para configurar el acceso multicuenta a un CodeCommit repositorio y asociarlo a una instancia de bloc de notas:**

1. En la AWS cuenta que contiene el CodeCommit repositorio, cree una política de IAM que permita el acceso al repositorio de los usuarios de la cuenta que contiene su instancia de bloc de notas. Para obtener más información, consulte [Paso 1: Crear una política de acceso al repositorio en CuentaA](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account-administrator-a.html#cross-account-create-policy-a) en la *Guía del usuario de CodeCommit *.

1. En la AWS cuenta que contiene el CodeCommit repositorio, cree un rol de IAM y asocie a ese rol la política que creó en el paso anterior. Para obtener más información, consulte [Paso 2: Crear un rol de acceso al repositorio en CuentaA](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account-administrator-a.html#cross-account-create-role-a) en la *Guía del usuario de CodeCommit *.

1. Cree un perfil en la instancia de cuaderno que utiliza el rol que ha creado en el paso anterior:

   1. Abra la instancia de cuaderno.

   1. Abra un terminal en la instancia de cuaderno.

   1. Edite un nuevo perfil escribiendo lo siguiente en la terminal:

      ```
      vi /home/ec2-user/.aws/config
      ```

   1. Edite el archivo con la siguiente información de perfil:

      ```
      [profile CrossAccountAccessProfile]
      region = us-west-2
      role_arn = arn:aws:iam::CodeCommitAccount:role/CrossAccountRepositoryContributorRole
      credential_source=Ec2InstanceMetadata
      output = json
      ```

      Dónde *CodeCommitAccount* está la cuenta que contiene el CodeCommit repositorio, *CrossAccountAccessProfile* es el nombre del nuevo perfil y *CrossAccountRepositoryContributorRole* es el nombre del rol que creó en el paso anterior.

1. En la instancia de cuaderno, configure git para utilizar el perfil que ha creado en el paso anterior:

   1. Abra la instancia de cuaderno.

   1. Abra un terminal en la instancia de cuaderno.

   1. Edite el archivo de configuración de Git escribiendo lo siguiente en la terminal:

      ```
      vi /home/ec2-user/.gitconfig
      ```

   1. Edite el archivo con la siguiente información de perfil:

      ```
      [credential]
              helper = !aws codecommit credential-helper --profile CrossAccountAccessProfile $@
              UseHttpPath = true
      ```

      Dónde *CrossAccountAccessProfile* está el nombre del perfil que creó en el paso anterior.

# Uso de repositorios de Git en una instancia del cuaderno
<a name="git-nbi-use"></a>

Al abrir una instancia de cuaderno que tiene repositorios de Git asociados, se abre en el repositorio predeterminado, que se instala en su instancia de cuaderno directamente bajo `/home/ec2-user/SageMaker`. Puede abrir y crear cuadernos y puede ejecutar manualmente comandos de Git en una celda de un cuaderno. Por ejemplo:

```
!git pull origin master
```

Para abrir cualquiera de los repositorios adicionales, navegue hacia arriba un nivel de carpeta. Los repositorios adicionales también se instalan como directorios en `/home/ec2-user/SageMaker`.

Si abres la instancia del bloc de notas con una JupyterLab interfaz, la extensión jupyter-git estará instalada y disponible para su uso. [Para obtener información sobre la extensión jupyter-git, consulta jupyterlab-git. JupyterLab https://github.com/jupyterlab/](https://github.com/jupyterlab/jupyterlab-git)

Cuando abres una instancia de bloc de notas JupyterLab, verás los repositorios de git asociados a ella en el menú de la izquierda:

![\[Ejemplo de navegador de archivos en JupyterLab.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/git-notebook.png)


Puede utilizar la extensión jupyter-git para administrar git visualmente, en lugar de usar la línea de comandos:

![\[Ejemplo de la extensión jupyter-git en. JupyterLab\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/jupyterlab-git.png)


# Metadatos de instancias de cuadernos
<a name="nbi-metadata"></a>

Al crear una instancia de bloc de notas, Amazon SageMaker AI crea un archivo JSON en la instancia en la ubicación `/opt/ml/metadata/resource-metadata.json` que contiene el extremo `ResourceName` y `ResourceArn` de la instancia de bloc de notas. Puede obtener acceso a estos metadatos desde cualquier lugar de dentro de la instancia de cuaderno, incluidas las configuraciones de ciclo de vida. Para obtener información acerca de las configuraciones de ciclo de vida de instancias de cuaderno, consulte [Personalización de una instancia de SageMaker bloc de notas mediante un script LCC](notebook-lifecycle-config.md).

**nota**  
El archivo `resource-metadata.json` se puede modificar con acceso raíz.

El archivo `resource-metadata.json` tiene la estructura siguiente:

```
{
    "ResourceArn": "NotebookInstanceArn",
    "ResourceName": "NotebookInstanceName"
}
```

Puede utilizar estos metadatos desde la instancia de cuaderno para obtener otra información acerca de la instancia de cuaderno. Por ejemplo, los siguientes comandos obtienen las etiquetas asociadas a la instancia de cuaderno:

```
NOTEBOOK_ARN=$(jq '.ResourceArn'
            /opt/ml/metadata/resource-metadata.json --raw-output)
aws sagemaker list-tags --resource-arn $NOTEBOOK_ARN
```

El resultado es similar al siguiente:

```
{
    "Tags": [
        {
            "Key": "test",
            "Value": "true"
        }
    ]
}
```

# Supervise los registros de Jupyter en Amazon Logs CloudWatch
<a name="jupyter-logs"></a>

Los registros de Jupyter incluyen información importante, como eventos, métricas e información de salud, que proporcionan información útil al ejecutar Amazon Notebooks. SageMaker Al importar los registros de Jupyter a CloudWatch Logs, los clientes pueden usar los CloudWatch registros para detectar comportamientos anómalos, configurar alarmas y descubrir información para que los cuadernos de IA funcionen mejor. SageMaker Puede acceder a los registros incluso cuando la instancia de Amazon EC2 que aloja el cuaderno no responda y utilizar los registros para solucionar los problemas del cuaderno que no responde. La información confidencial, como la AWS cuenta IDs, las claves secretas y los identificadores de autenticación prefirmados, URLs se elimina para que los clientes puedan compartir los registros sin filtrar información privada. 

**Para ver los registros de Jupyter de una instancia de cuaderno:**

1. Inicie sesión en la consola de SageMaker IA Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 

1. Seleccione **Instancias de bloc de notas**.

1. En la lista de instancias de cuaderno, elija la instancia de cuaderno cuyos registros de Jupyter desea ver seleccionando el **Nombre** de la instancia de cuaderno.

   Esto le llevará a la página de detalles de esa instancia de cuaderno.

1. En **Monitorear** en la página de detalles de la instancia de cuaderno, elija **Ver registros**.

1. En la CloudWatch consola, elige el flujo de registro de tu instancia de notebook. Su nombre tiene el formato `NotebookInstanceName/jupyter.log`.

Para obtener más información sobre la supervisión de CloudWatch los registros de la SageMaker IA, consulte[CloudWatch Registros para Amazon SageMaker AI](logging-cloudwatch.md).

# Laboratorio Amazon SageMaker Studio
<a name="studio-lab"></a>

**nota**  
A partir del 8 de agosto de 2025, Amazon SageMaker Studio Lab utiliza JupyterLab 4 en lugar de JupyterLab 3. Si tiene problemas de dependencia, vuelva a instalar las extensiones que haya agregado a sus entornos.

 Amazon SageMaker Studio Lab es un servicio gratuito que ofrece a los clientes acceso a los recursos AWS informáticos en un entorno basado en el código abierto JupyterLab 4. Se basa en la misma arquitectura e interfaz de usuario que Amazon SageMaker Studio Classic, pero con un subconjunto de capacidades de Studio Classic.

Con Studio Lab, puede usar recursos AWS informáticos para crear y ejecutar sus cuadernos Jupyter sin necesidad de abrir una cuenta. AWS Como Studio Lab se basa en el código abierto JupyterLab, puedes aprovechar las extensiones de Jupyter de código abierto para ejecutar tus cuadernos de Jupyter.

 **Studio Lab comparado con Amazon SageMaker Studio Classic**

Si bien Studio Lab proporciona acceso gratuito a los recursos AWS informáticos, Amazon SageMaker Studio Classic ofrece las siguientes capacidades avanzadas de aprendizaje automático que Studio Lab no admite.
+ Integración y entrega continuas (canalizaciones)
+ Predicciones en tiempo real
+ Entrenamiento distribuido a gran escala
+ Preparación de datos (Amazon SageMaker Data Wrangler)
+ Etiquetado de datos (Amazon SageMaker Ground Truth)
+ Almacén de características
+ Análisis de sesgos (Clarify)
+ Implementación de modelos
+ Supervisión de modelos

Studio Classic también admite un control de acceso y una seguridad detallados mediante AWS Identity and Access Management (IAM), Amazon Virtual Private Cloud (Amazon VPC) y (). AWS Key Management Service AWS KMS Studio Lab no es compatible con estas funciones de Studio Classic, ni admite el uso de estimadores ni de algoritmos de IA integrados. SageMaker 

Para exportar sus proyectos de Studio Lab a fin de usarlos con Studio Classic, consulte [Exportación de un entorno de Amazon SageMaker Studio Lab a Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).

En los siguientes temas se proporciona información Studio Lab y cómo utilizarlo.

**Topics**
+ [Descripción general de los componentes de Amazon SageMaker Studio Lab](studio-lab-overview.md)
+ [A bordo de Amazon SageMaker Studio Lab](studio-lab-onboard.md)
+ [Administre su cuenta](studio-lab-manage-account.md)
+ [Lance el tiempo de ejecución de su proyecto de Amazon SageMaker Studio Lab](studio-lab-manage-runtime.md)
+ [Utilice los recursos iniciales de Amazon SageMaker Studio Lab](studio-lab-integrated-resources.md)
+ [Entornos preinstalados de Studio Lab](studio-lab-environments.md)
+ [Utilice el tiempo de ejecución del proyecto Amazon SageMaker Studio Lab](studio-lab-use.md)
+ [Resolución de problemas](studio-lab-troubleshooting.md)

# Descripción general de los componentes de Amazon SageMaker Studio Lab
<a name="studio-lab-overview"></a>

Amazon SageMaker Studio Lab consta de los siguientes componentes. En los temas siguientes se explican estos componentes con más detalle. 

**Topics**
+ [Página de inicio](#studio-lab-overview-landing)
+ [Cuenta de Studio Lab](#studio-lab-overview-account)
+ [Página de información general del proyecto](#studio-lab-overview-project-overview)
+ [Página de vista previa](#studio-lab-overview-preview)
+ [Proyecto](#studio-lab-overview-project)
+ [Tipo de instancia de computación](#studio-lab-overview-project-compute)
+ [Tiempo de ejecución del proyecto](#studio-lab-overview-runtime)
+ [Session](#studio-lab-overview-session)

## Página de inicio
<a name="studio-lab-overview-landing"></a>

En la página de inicio puede solicitar una cuenta o iniciar sesión en una ya existente. Para ir a la página de destino, consulte el [sitio web de Amazon SageMaker Studio Lab](https://studiolab.sagemaker.aws/). Para obtener más información sobre cómo crear una cuenta de Studio Lab, consulte [A bordo de Amazon SageMaker Studio Lab](studio-lab-onboard.md).

En la siguiente captura de pantalla se muestra la interfaz de la página de inicio de Studio Lab, en la que puede solicitar una cuenta de usuario e iniciar sesión.

![\[El diseño de la página de inicio de Amazon SageMaker Studio Lab.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio-lab-landing.png)


## Cuenta de Studio Lab
<a name="studio-lab-overview-account"></a>

Su cuenta de Studio Lab le permite obtener acceso a Studio Lab. Para obtener más información sobre cómo crear una cuenta de usuario, consulte [A bordo de Amazon SageMaker Studio Lab](studio-lab-onboard.md).

## Página de información general del proyecto
<a name="studio-lab-overview-project-overview"></a>

Puede inicializar una instancia de computación y consultar información sobre el proyecto en esta página. Para acceder a esta página, debe iniciar sesión desde el [sitio web de Amazon SageMaker Studio Lab](https://studiolab.sagemaker.aws/). La URL tiene el siguiente formato:

```
https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
```

En la siguiente captura de pantalla se muestra la información general del proyecto en la interfaz de usuario de Studio Lab.

![\[Diseño de la interfaz de usuario de información general del proyecto\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio-lab-overview.png)


## Página de vista previa
<a name="studio-lab-overview-preview"></a>

En esta página, puede obtener acceso a una vista previa de solo lectura de un cuaderno de Jupyter. El cuaderno no se puede ejecutar desde la vista previa, pero sí lo puede copiar en su proyecto. Para muchos clientes, esta puede ser la primera página de Studio Lab que vean, ya que es posible que estén abriendo cuaderno tras GitHub cuaderno. Para obtener más información sobre cómo utilizar GitHub los recursos, consulte[Usa los recursos GitHub](studio-lab-use-external.md#studio-lab-use-external-clone-github). 

Para copiar la vista previa del cuaderno en su proyecto de Studio Lab:

1.  Inicie sesión en su cuenta de Studio Lab. Para obtener más información sobre cómo crear una cuenta de Studio Lab, consulte [A bordo de Amazon SageMaker Studio Lab](studio-lab-onboard.md). 

1.  En **Instancia de computación del cuaderno**, elija un tipo de instancia de computación. Para obtener más información sobre los tipos de instancias de computación, consulte [Tipo de instancia de computación](#studio-lab-overview-project-compute). 

1.  Seleccione **Iniciar tiempo de ejecución**. Es posible que se le pida que resuelva un acertijo de CAPTCHA. Para obtener más información sobre CAPTCHA, consulte [¿Qué es un acertijo de CAPTCHA?](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html) 

1.  Configuración única, para iniciar el tiempo de ejecución por primera vez con la cuenta de Studio Lab: 

   1.  Introduce un número de teléfono móvil para asociarlo a tu cuenta de Amazon SageMaker Studio Lab y selecciona **Continuar**. 

      Para obtener información sobre los países y regiones compatibles, consulte [Países y regiones compatibles (canal SMS)](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html).

   1.  Introdzca el código de 6 dígitos enviado al número de teléfono móvil asociado y seleccione **Verify (Verificar)**. 

1.  Seleccione **Copiar en el proyecto**. 

## Proyecto
<a name="studio-lab-overview-project"></a>

Su proyecto contiene todos sus archivos y carpetas, incluidos los cuadernos de Jupyter. Dispone de control pleno sobre los archivos de su proyecto. Su proyecto también incluye la interfaz de usuario JupyterLab basada. Desde esta interfaz, puede interactuar con sus blocs de notas de Jupyter, editar sus archivos de código fuente, integrarlos y conectarse a Amazon S3. GitHub Para obtener más información, consulte [Utilice el tiempo de ejecución del proyecto Amazon SageMaker Studio Lab](studio-lab-use.md). 

En la siguiente captura de pantalla se muestra un proyecto de Studio Lab con el explorador de archivos abierto y el lanzador de Studio Lab en pantalla.

![\[Diseño de la interfaz de usuario del proyecto\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio-lab-ui.png)


## Tipo de instancia de computación
<a name="studio-lab-overview-project-compute"></a>

 El tiempo de ejecución de su proyecto de Amazon SageMaker Studio Lab se basa en una instancia EC2. Se le asignan 15 GB de almacenamiento y 16 GB de RAM. La disponibilidad de las instancias de computación no está garantizada y está sujeta a la demanda. Si necesita recursos de computación o de almacenamiento adicionales, puede ser conveniente cambiar a Studio.  

Amazon SageMaker Studio Lab ofrece la posibilidad de elegir entre una CPU (unidad central de procesamiento) y una GPU (unidad de procesamiento gráfico). En las siguientes secciones se proporciona información sobre estas dos opciones, así como orientación sobre cuál seleccionar. 

 **CPU** 

Una unidad central de procesamiento (CPU) se ha diseñado para administrar una amplia gama de tareas de manera eficiente, pero existe un número limitado de tareas que puede ejecutar simultáneamente. En el machine learning, se recomienda utilizar una CPU para los algoritmos con un uso intensivo de recursos de computación, como series temporales, pronósticos y datos tabulares.  

El tipo de computación de la CPU dispone de hasta 4 horas seguidas, con un límite de 8 horas en un periodo de 24 horas.

 **GPU** 

Una unidad de procesamiento de gráficos (GPU) se ha diseñado para procesar imágenes y vídeo de alta resolución de forma simultánea. Se recomienda utilizar una GPU para las tareas de aprendizaje profundo, sobre todo los transformadores y la visión artificial. 

El tipo de computación de la GPU dispone de hasta 4 horas seguidas, con un límite de 4 horas en un periodo de 24 horas.

 **Tiempo de computación** 

Cuando el tiempo de computación de Studio Lab alcanza su límite, la instancia detiene todos los cálculos en ejecución. Studio Lab no admite aumentos de los límites de tiempo.

Studio Lab guarda automáticamente el entorno cuando se actualiza y cada vez que se crea un archivo nuevo. Las extensiones y los paquetes instalados de forma personalizada persisten incluso después de que finalice el tiempo de ejecución.

Las ediciones de archivos se guardan periódicamente, pero no se conservan cuando finaliza el tiempo de ejecución. Para asegurarse de no perder los progresos realizados, guarde el trabajo manualmente. Si tiene contenido en el proyecto de Studio Lab que no desea perder, recomendamos hacer una copia de seguridad del contenido en otro lugar. Para obtener más información sobre la exportación del entorno y los archivos, consulte [Exportación de un entorno de Amazon SageMaker Studio Lab a Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).

Durante un proceso de cálculo prolongado, no es necesario que mantenga el proyecto abierto. Por ejemplo, puede empezar a entrenar un modelo y, a continuación, cerrar el navegador. La instancia sigue ejecutándose hasta el límite del tipo de computación en un periodo de 24 horas. Más tarde, puede iniciar sesión para continuar trabajando.  

Recomendamos utilizar puntos de comprobación en los trabajos de aprendizaje profundo. Puede utilizar los puntos de comprobación guardados para reiniciar un trabajo a partir del punto de comprobación guardado anteriormente. Para obtener más información, consulte [E/S de archivo](https://d2l.ai/chapter_deep-learning-computation/read-write.html?highlight=checkpointing).

## Tiempo de ejecución del proyecto
<a name="studio-lab-overview-runtime"></a>

El tiempo de ejecución del proyecto es el periodo de tiempo durante el que se ejecuta la instancia de computación.

## Session
<a name="studio-lab-overview-session"></a>

Cada vez que se inicializa el proyecto, comienza una sesión de usuario. 

# A bordo de Amazon SageMaker Studio Lab
<a name="studio-lab-onboard"></a>

Para incorporarse a Amazon SageMaker Studio Lab, siga los pasos de esta guía. En las siguientes secciones, aprenderá a solicitar una cuenta de Studio Lab, crear su cuenta e iniciar sesión.

**Topics**
+ [Solicitud de una cuenta de Studio Lab](#studio-lab-onboard-request)
+ [Creación de una cuenta de Studio Lab](#studio-lab-onboard-register)
+ [Inicio de sesión en Studio Lab](#studio-lab-onboard-signin)

## Solicitud de una cuenta de Studio Lab
<a name="studio-lab-onboard-request"></a>

Para usar Studio Lab, antes debe solicitar aprobación para crear una cuenta de Studio Lab. No se puede usar una AWS cuenta para incorporarse a Studio Lab. 

En los siguientes pasos se muestra cómo solicitar una cuenta de Studio Lab.

1. Diríjase a la [página de inicio de Studio Lab](https://studiolab.sagemaker.aws).

1. Seleccione **Solicitar una cuenta**.

1. Escriba la información requerida en el formulario.

1. Seleccione **Enviar solicitud**.

1. Si recibe un correo electrónico para verificar su dirección de correo electrónico, siga las instrucciones que contiene para llevar a cabo este paso.

Para que pueda registrar una cuenta de Studio Lab, antes debe aprobarse su solicitud de una cuenta. Su solicitud se revisará en un plazo de cinco días laborables. Una vez aprobada su solicitud de cuenta, recibirá un correo electrónico con un enlace a la página de registro de cuentas de Studio Lab. Este enlace caduca siete días después de que se haya aprobado la solicitud. Si el enlace caduca, deberá enviar una nueva solicitud de cuenta. 

Nota: Su solicitud de cuenta se denegará si el correo electrónico ha estado asociado a alguna actividad que infrinja nuestros [Términos de servicio](https://aws.amazon.com/service-terms/) u otros acuerdos. 

### Códigos de referencia
<a name="studio-lab-onboard-request-referral"></a>

Los códigos de referencia de Studio Lab permiten aprobar automáticamente las solicitudes de nuevas cuentas para apoyar eventos de machine learning como talleres, encuentros de programadores y clases. Con un código de referencia, un anfitrión de confianza puede ofrecer a sus participantes acceso inmediato a Studio Lab. Una vez creada una cuenta con un código de referencia, esta cuenta seguirá existiendo después de que caduque el código.

Para obtener un código de referencia, póngase en contacto con el equipo de [soporte de ventas](https://aws.amazon.com/contact-us/sales-support/). Para usar un código de referencia, escríbalo en el formulario de solicitud de cuenta.

## Creación de una cuenta de Studio Lab
<a name="studio-lab-onboard-register"></a>

Una vez aprobada la solicitud, siga los pasos que se describen a continuación para crear su cuenta de Studio Lab.

1. Seleccione **Crear cuenta** en el correo electrónico de aprobación de la solicitud de cuenta para abrir una página nueva.

1. En la nueva página, escriba su **correo electrónico**, una **contraseña** y un **nombre de usuario**. 

1. Seleccione **Crear cuenta**. 

   Es posible que se le pida que resuelva un acertijo de CAPTCHA. Para obtener más información sobre CAPTCHA, consulte [¿Qué es un acertijo de CAPTCHA?](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)

## Inicio de sesión en Studio Lab
<a name="studio-lab-onboard-signin"></a>

Tras registrar su cuenta, puede iniciar sesión en Studio Lab.

1. Diríjase a la [página de inicio de Studio Lab](https://studiolab.sagemaker.aws).

1. Seleccione **Iniciar sesión** para abrir una página nueva.

1. Escriba su **Correo electrónico** o **Nombre de usuario** y **Contraseña**. 

1. Seleccione **Iniciar sesión** para abrir una página nueva del proyecto. 

   Es posible que se le pida que resuelva un acertijo de CAPTCHA. Para obtener más información sobre CAPTCHA, consulte [¿Qué es un acertijo de CAPTCHA?](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)

# Administre su cuenta
<a name="studio-lab-manage-account"></a>

 En el siguiente tema se proporciona información sobre la administración de su cuenta; por ejemplo, cómo cambiar la contraseña, eliminar su cuenta u obtener la información que hemos recopilado. Estos temas requieren que inicie sesión en su cuenta de Amazon SageMaker Studio Lab. Para obtener más información, consulte [Inicio de sesión en Studio Lab](studio-lab-onboard.md#studio-lab-onboard-signin).

## Cambiar la contraseña
<a name="studio-lab-manage-change-password"></a>

 Sigue estos pasos para cambiar tu contraseña de Amazon SageMaker Studio Lab. 

1.  Diríjase a la página de descripción general del proyecto de Studio Lab. La URL tiene el siguiente formato:

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1.  En la esquina superior derecha, seleccione su nombre de usuario para abrir un menú desplegable. 

1.  En el menú desplegable, seleccione **Cambiar contraseña** para abrir una página nueva. 

1.  Escriba su contraseña actual en el campo **Ingrese su contraseña actual**.

1.  Escriba su nueva contraseña en los campos **Crear una nueva contraseña** y **Confirme su nueva contraseña**.

1.  Seleccione **Enviar**. 

## Eliminación de una cuenta
<a name="studio-lab-manage-delete"></a>

 Siga estos pasos para eliminar su cuenta de Studio Lab.  

1.  Diríjase a la página de descripción general del proyecto de Studio Lab. La URL tiene el siguiente formato:

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1.  En la esquina superior derecha, seleccione su nombre de usuario para abrir un menú desplegable. 

1.  En el menú desplegable, seleccione **Eliminar contraseña** para abrir una página nueva. 

1.  Escriba su contraseña para confirmar la eliminación de su cuenta de Studio Lab. 

1.  Seleccione **Eliminar**. 

## Información del cliente
<a name="studio-lab-manage-information"></a>

 Studio Lab recopila su dirección de correo electrónico, nombre de usuario, contraseña cifrada, archivos de proyecto y metadatos. Al solicitar una cuenta, puede optar por proporcionar su nombre y apellidos, país, nombre de la organización, ocupación y el motivo de su interés en este producto. Protegemos todos los datos personales de los clientes mediante cifrado. Para obtener más información sobre cómo se administra su información personal, consulte el [Aviso de privacidad](https://aws.amazon.com//privacy/). 

Cuando elimina su cuenta, se borra de inmediato toda su información. Si tienes alguna consulta al respecto, envía el [formulario de Amazon SageMaker Studio Lab](https://pages.awscloud.com/GLOBAL_PM_PA_amazon-sagemaker_20211116_7014z000000rjq2-registration.html). Para obtener información y soporte relacionados con el cumplimiento de AWS , consulte [Soporte de cumplimiento](https://aws.amazon.com//contact-us/compliance-support/).

# Lance el tiempo de ejecución de su proyecto de Amazon SageMaker Studio Lab
<a name="studio-lab-manage-runtime"></a>

El tiempo de ejecución de proyectos de Amazon SageMaker Studio Lab le permite escribir y ejecutar código directamente desde el navegador. Se basa en un terminal JupyterLab y una consola integrados y tiene integrados. Para obtener más información al respecto JupyterLab, consulte la [JupyterLabdocumentación](https://jupyterlab.readthedocs.io/en/stable/).

En el siguiente tema se proporciona información sobre cómo gestionar el tiempo de ejecución del proyecto. Estos temas requieren que inicie sesión en su cuenta de Amazon SageMaker Studio Lab. Para obtener más información sobre cómo iniciar sesión, consulte [Inicio de sesión en Studio Lab](studio-lab-onboard.md#studio-lab-onboard-signin). Para obtener más información sobre el proyecto, consulte [Descripción general de los componentes de Amazon SageMaker Studio Lab](studio-lab-overview.md). 

**Topics**
+ [Iniciar el tiempo de ejecución del proyecto](#studio-lab-manage-runtime-start)
+ [Deteneer el tiempo de ejecución del proyecto](#studio-lab-manage-runtime-stop)
+ [Ver el tiempo de computación restante](#studio-lab-manage-runtime-view)
+ [Cambie el tipo de computación](#studio-lab-manage-runtime-change)

## Iniciar el tiempo de ejecución del proyecto
<a name="studio-lab-manage-runtime-start"></a>

Para usar Studio Lab, debe iniciar el tiempo de ejecución del proyecto. Este tiempo de ejecución le da acceso al JupyterLab entorno.

1. Diríjase a la página de descripción general del proyecto de Studio Lab. La URL tiene el siguiente formato:

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. En **My Project (Mi proyecto)**, seleccione un tipo de computación. Para obtener más información sobre los tipos de computación, consulte [Tipo de instancia de computación](studio-lab-overview.md#studio-lab-overview-project-compute).

1. Seleccione **Start runtime (Iniciar tiempo de ejecución)**. 

   Es posible que se le pida que resuelva un acertijo de CAPTCHA. Para obtener más información sobre CAPTCHA, consulte [¿Qué es un acertijo de CAPTCHA?](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)

1. Configuración única, para iniciar el tiempo de ejecución por primera vez con la cuenta de Studio Lab: 

   1. Introduce un número de teléfono móvil para asociarlo a tu cuenta de Amazon SageMaker Studio Lab y selecciona **Continuar**. 

      Para obtener información sobre los países y regiones compatibles, consulte [Países y regiones compatibles (canal SMS)](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html).

   1. Introdzca el código de 6 dígitos enviado al número de teléfono móvil asociado y seleccione **Verify (Verificar)**. 

1. Cuando se ejecute el tiempo de ejecución, seleccione **Open project (Abrir proyecto)** para abrir el entorno de ejecución del proyecto en una nueva pestaña del navegador. 

## Deteneer el tiempo de ejecución del proyecto
<a name="studio-lab-manage-runtime-stop"></a>

Al detener el tiempo de ejecución del proyecto, los archivos no se guardan automáticamente. Para asegurarte de no perder su trabajo, guarde todos los cambios antes de detener el tiempo de ejecución del proyecto.
+ En **My Project (Mi proyecto)**, seleccione **Stop runtime (Detener el tiempo de ejecución)**. 

## Ver el tiempo de computación restante
<a name="studio-lab-manage-runtime-view"></a>

El tiempo de ejecución del proyecto tiene un tiempo de procesamiento limitado en función del tipo de procesamiento que seleccione. Para obtener más información acerca del tiempo de cómputo en Studio Lab, consulte [Tipo de instancia de computación](studio-lab-overview.md#studio-lab-overview-project-compute).
+ En **My Projecty (Mi proyecto)**, consulte **Time remaining (Tiempo restante)**. 

## Cambie el tipo de computación
<a name="studio-lab-manage-runtime-change"></a>

Puede cambiar el tipo de procesamiento en función de su flujo de trabajo. Para obtener más información sobre los tipos de computación, consulte [Tipo de instancia de computación](studio-lab-overview.md#studio-lab-overview-project-compute).

1. Guarde todos los archivos del proyecto antes de cambiar el tipo de procesamiento. 

1. Diríjase a la página de descripción general del proyecto de Studio Lab. La URL tiene el siguiente formato:

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. En **My Project (Mi proyecto)**, seleccione el tipo de procesamiento deseado (CPU o GPU). 

1. Confirme su elección seleccionando **Restart (Reiniciar)** en el cuadro de diálogo **Restart project runtime? (Reiniciar tiempo de ejecución del proyecto?)**. Studio Lab detiene el tiempo de ejecución del proyecto actual y, a continuación, inicia un nuevo tiempo de ejecución del proyecto con el tipo de computación actualizado.

1. Una vez iniciado el tiempo de ejecución del proyecto, seleccione **Open project (Abrir proyecto)**. De esta forma se abre el entorno de ejecución del proyecto en una nueva pestaña del navegador. Para obtener información acerca de cada entorno de tiempo de ejecución, consulte [Utilice el tiempo de ejecución del proyecto Amazon SageMaker Studio Lab](studio-lab-use.md).

# Utilice los recursos iniciales de Amazon SageMaker Studio Lab
<a name="studio-lab-integrated-resources"></a>

Amazon SageMaker Studio Lab admite los siguientes activos para ayudar a los profesionales del aprendizaje automático (ML) a empezar. En esta guía se muestra cómo clonar cuadernos para su proyecto. 

**Cuaderno de introducción** 

Studio Lab se suministra con un cuaderno de introducción que proporciona información general y orientación para los principales flujos de trabajo. Cuando se inicializa el tiempo de ejecución del proyecto por primera vez, este cuaderno se abre automáticamente.

**Dive into Deep Learning** 

Dive into Deep Learning (D2L) es un libro interactivo de código abierto en el que se enseñan las ideas, la teoría matemática y el código en los que se basa el machine learning. Con más de 150 cuadernos de Jupyter, D2L ofrece una visión completa de los principios del aprendizaje profundo. Para obtener más información sobre D2L, consulte el [sitio web de D2L](https://d2l.ai/).

En el siguiente procedimiento se muestra cómo clonar en su instancia los cuadernos de Jupyter de D2L. 

1. Inicie y abra el entorno de tiempo de ejecución del proyecto de Studio Lab como se indica en [Iniciar el tiempo de ejecución del proyecto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start).

1. Una vez abierto Studio Lab, seleccione la pestaña Git (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/git.png)) en la barra lateral izquierda. 

1. Seleccione **Clonar un repositorio**.

   Si no aparece la opción **Clonar un repositorio**, es posible que se encuentre ya en un repositorio de Git. En su lugar, utilice los siguientes pasos secundarios.

   1. Elija la pestaña Carpeta (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)) en la barra lateral izquierda.

   1. Debajo de la barra de búsqueda de archivos, seleccione el icono de carpeta situado a la izquierda del repositorio seleccionado en ese momento. Al pasar el ratón sobre el icono de la carpeta, verá el directorio de usuarios (`/home/studio-lab-user`).

   1. Cuando se encuentre en el directorio de usuarios, elija la pestaña Git en la barra lateral izquierda.

   1. Seleccione **Clonar un repositorio**.

1. En **URL del repositorio de Git (.git)**, se le pedirá que proporcione una URL.

1. En una nueva pestaña del navegador, vaya a la página de descripción general del proyecto de Studio Lab. La URL tiene el siguiente formato:

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. En **¿Es nuevo en machine learning?** elija **Dive into Deep Learning**. 

1. En la nueva pestaña del navegador **Sumérjase en el aprendizaje profundo**, elija **GitHub**abrir una nueva página con los cuadernos de ejemplo.

1. Elija **Código** y copie la URL del GitHub repositorio en la pestaña **HTTPS**.

1. Vuelva a la pestaña del navegador de proyectos abierta de Studio Lab, pegue la URL del repositorio de D2L y clone el repositorio.

**AWS Universidad Machine Learning** 

La AWS Machine Learning University (MLU) proporciona acceso a los cursos de aprendizaje automático que se utilizan para capacitar a los propios desarrolladores de Amazon. Con la AWS MLU, cualquier desarrollador puede aprender a utilizar el aprendizaje automático con la serie de aprendizaje MLU learn-at-your-own Accelerator de Pace. La serie MLU Accelerator está diseñada para ayudar a los desarrolladores a comenzar a utilizar el machine learning. Ofrece cursos básicos de tres días sobre estos tres temas: procesamiento del lenguaje natural, datos tabulares y visión artificial. Para obtener más información, consulte [Machine Learning University](https://aws.amazon.com//machine-learning/mlu/). 

El siguiente procedimiento muestra cómo clonar los cuadernos Jupyter de AWS MLU en su instancia. 

1. Inicie y abra el entorno de tiempo de ejecución del proyecto de Studio Lab como se indica en [Iniciar el tiempo de ejecución del proyecto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start).

1. Una vez abierto Studio Lab, seleccione la pestaña Git (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/git.png)) en la barra lateral izquierda. 

1. Seleccione **Clonar un repositorio**.

   Si no aparece la opción **Clonar un repositorio**, es posible que se encuentre ya en un repositorio de Git. En su lugar, utilice los siguientes pasos secundarios.

   1. Elija la pestaña Carpeta (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)) en la barra lateral izquierda.

   1. Debajo de la barra de búsqueda de archivos, seleccione el icono de carpeta situado a la izquierda del repositorio seleccionado en ese momento. Al pasar el ratón sobre el icono de la carpeta, verá el directorio de usuarios (`/home/studio-lab-user`).

   1. Cuando se encuentre en el directorio de usuarios, elija la pestaña Git en la barra lateral izquierda.

   1. Seleccione **Clonar un repositorio**.

1. En **URL del repositorio de Git (.git)**, se le pedirá que proporcione una URL.

1. En una nueva pestaña del navegador, vaya a la página de descripción general del proyecto de Studio Lab. La URL tiene el siguiente formato:

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. En **¿Es nuevo en machine learning?** elija **AWS Machine Learning University**. 

1. En la nueva pestaña del navegador de **AWS Machine Learning University**, lea el apartado **Resumen del curso** de cada curso para encontrar uno que le interese.

1. Elija el GitHub repositorio de interés correspondiente en el **contenido del curso** para abrir una nueva página con los cuadernos de ejemplo.

1. Elija **Código** y copie la URL del GitHub repositorio en la pestaña **HTTPS**.

1. Vuelva a la pestaña del navegador de proyectos abierta de Studio Lab, pegue la URL del repositorio de MLU y elija **Clonar** para clonar el repositorio.

** Roboflow** 

Roboflow le proporciona las herramientas para entrenar, afinar y etiquetar objetos para aplicaciones de visión artificial. Para obtener más información, consulta [https://roboflow.com/](https://roboflow.com/).

En el siguiente procedimiento se muestra cómo clonar en su instancia los cuadernos de Jupyter de Roboflow.

1. Diríjase a la página de descripción general del proyecto de Studio Lab. La URL tiene el siguiente formato:

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. En **Recursos y comunidad**, busque **Crear imágenes generadas por IA**.

1. En **Crear imágenes generadas por IA**, seleccione **Abrir cuaderno**.

1. Siga el tutorial que aparece en la vista previa del cuaderno.

# Entornos preinstalados de Studio Lab
<a name="studio-lab-environments"></a>

Amazon SageMaker Studio Lab usa entornos conda para administrar paquetes (o bibliotecas) para sus proyectos. En esta guía se explica qué son los entornos de conda, cómo interaccionar con ellos y cuáles son los entornos preinstalados disponibles en Studio Lab.

Un entorno de conda es un directorio que contiene una colección de paquetes que se han instalado. Permite crear entornos aislados con versiones de paquetes específicas, lo que evita conflictos entre proyectos con dependencias diferentes.

En Studio Lab puede interaccionar con los entornos de conda de dos maneras:
+ Terminal: utilice el terminal para crear, activar y administrar entornos.
+ JupyterLab Bloc de notas: al abrir un JupyterLab bloc de notas, seleccione el núcleo con el nombre del entorno que desee utilizar para utilizar los paquetes instalados en ese entorno.

Para ver un tutorial sobre la administración de entornos, consulte [Administración del entorno](studio-lab-use-manage.md).

Studio Lab se suministra con varios entornos preinstalados que pueden ser de memoria persistente o no persistente. Todos los cambios que se realicen en los entornos de memoria persistente se conservarán para la próxima sesión. Los cambios en los entornos de memoria no persistente no se mantendrán en las próximas sesiones, pero Amazon AI actualizará y probará la compatibilidad de los paquetes que contienen. SageMaker A continuación se ofrece información general sobre cada entorno y su caso de uso:
+ `sagemaker-distribution`: un entorno no persistente gestionado por Amazon SageMaker AI. Contiene paquetes populares para machine learning, ciencia de datos y visualización. Este entorno se actualiza periódicamente y se comprueba su compatibilidad. Utilice este entorno si desea una configuración totalmente administrada con paquetes comunes preinstalados. 

  El `sagemaker-distribution` entorno está estrechamente relacionado con el entorno utilizado en Amazon SageMaker Studio Classic, por lo que, tras pasar de Studio Lab a Studio Classic, los portátiles deberían funcionar de forma similar. Para obtener información sobre cómo exportar un entorno de Studio Lab a Studio Classic, consulte [Exportación de un entorno de Amazon SageMaker Studio Lab a Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).
+ `default`: entorno persistente con la cantidad mínima de paquetes preinstalados. Utilice este entorno si desea un alto nivel de personalización mediante la instalación de paquetes adicionales. 
+ `studiolab`: un entorno persistente en el que JupyterLab se instalan paquetes relacionados. Utilice este entorno para configurar la interfaz de JupyterLab usuario e instalar las extensiones de servidor de Jupyter.
+ `studiolab-safemode`: entorno no persistente que se activa automáticamente cuando hay un problema con el tiempo de ejecución del proyecto. Utilice este entorno para solucionar problemas. Para obtener información sobre cómo solucionar problemas, consulte [Resolución de problemas](studio-lab-troubleshooting.md). 
+ `base`: entorno no persistente que se utiliza para las herramientas del sistema. Este entorno no está diseñado para que lo utilicen los clientes.

Para ver los paquetes de un entorno, ejecute el comando `conda list`.

Para obtener más información sobre la instalación de paquetes en su entorno, consulte [Personalización de un entorno](studio-lab-use-manage.md#studio-lab-use-manage-conda-default-customize).

Si tiene pensado pasar de Studio Lab a Amazon SageMaker Studio Classic, consulte[Exportación de un entorno de Amazon SageMaker Studio Lab a Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).

Para obtener información sobre SageMaker las imágenes y sus versiones, consulte[SageMaker Imágenes de Amazon disponibles para su uso con las libretas Studio Classic](notebooks-available-images.md).

# Utilice el tiempo de ejecución del proyecto Amazon SageMaker Studio Lab
<a name="studio-lab-use"></a>

 En los temas siguientes se proporciona información sobre el uso del tiempo de ejecución de proyectos de Amazon SageMaker Studio Lab. Para poder utilizar el tiempo de ejecución de proyectos de Studio Lab, debe incorporarlo a Studio Lab siguiendo los pasos que se indican a continuación[A bordo de Amazon SageMaker Studio Lab](studio-lab-onboard.md).

**Topics**
+ [Descripción general de la interfaz de usuario de Amazon SageMaker Studio Lab](studio-lab-use-ui.md)
+ [Crear o abrir un bloc de notas de Amazon SageMaker Studio Lab](studio-lab-use-create.md)
+ [Usa la barra de herramientas del bloc de notas de Amazon SageMaker Studio Lab](studio-lab-use-menu.md)
+ [Administración del entorno](studio-lab-use-manage.md)
+ [Usa recursos externos en Amazon SageMaker Studio Lab](studio-lab-use-external.md)
+ [Obtención de diferencias entre cuadernos](studio-lab-use-diff.md)
+ [Exportación de un entorno de Amazon SageMaker Studio Lab a Amazon SageMaker Studio Classic](studio-lab-use-migrate.md)
+ [Cierre de recursos de Studio Lab](studio-lab-use-shutdown.md)

# Descripción general de la interfaz de usuario de Amazon SageMaker Studio Lab
<a name="studio-lab-use-ui"></a>

Amazon SageMaker Studio Lab amplía la JupyterLab interfaz. Los usuarios anteriores JupyterLab notarán similitudes entre la interfaz de usuario JupyterLab y la de Studio Lab, incluido el espacio de trabajo. Para obtener una descripción general de la JupyterLab interfaz básica, consulte [La JupyterLab interfaz](https://jupyterlab.readthedocs.io/en/latest/user/interface.html).

En la siguiente imagen se muestra Studio Lab con el explorador de archivos abierto y el lanzador de Studio Lab en pantalla.

![\[Diseño de la interfaz de usuario del proyecto\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio-lab-ui.png)


Encontrará la *barra de menús* en la parte superior de la pantalla. La *barra lateral izquierda* contiene iconos para abrir exploradores de archivos, exploradores de recursos y herramientas. La *barra de estado* se encuentra en la esquina inferior izquierda de Studio Lab.

El área de trabajo principal se divide horizontalmente en dos paneles. El panel izquierdo es el *explorador de archivos y recursos*. El panel derecho contiene una o más pestañas para recursos como cuadernos y terminales.

**Topics**
+ [Barra lateral izquierda](#studio-lab-use-ui-nav-bar)
+ [Explorador de archivos y recursos](#studio-lab-use-ui-browser)
+ [Área de trabajo principal](#studio-lab-use-ui-work)

## Barra lateral izquierda
<a name="studio-lab-use-ui-nav-bar"></a>

La barra lateral izquierda incluye los siguientes iconos. Al pasar el cursor sobre un icono, aparece información sobre herramientas con el nombre del icono. Al seleccionar un icono, el explorador de archivos y recursos muestra la funcionalidad descrita. Para las entradas jerárquicas, una ruta de navegación seleccionable en la parte superior del explorador muestra su ubicación en la jerarquía.


| Icono | Description (Descripción) | 
| --- | --- | 
|  ![\[Icono del Explorador de archivos\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/File_browser_squid@2x.png)  |  **Explorador de archivos** Elija el icono de **Cargar archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/File_upload_squid.png)) para agregar archivos a Studio Lab. Haga doble clic en un archivo para abrirlo en una nueva pestaña. Para abrir archivos adyacentes, elija una pestaña que contenga un cuaderno, Python o un archivo de texto y, a continuación, elija **Nueva vista para archivo**. En el menú de la parte superior del explorador de archivos, elija el signo más (**\$1**) para abrir el lanzador de Studio Lab.  | 
|  ![\[El icono de Terminales y kernels en ejecución.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Running_squid@2x.png)  |  **Ejecución de terminales y kernels** Permite ver una lista de todos los terminales y kernels en ejecución del proyecto. Para obtener más información, consulte [Cierre de recursos de Studio Lab](studio-lab-use-shutdown.md).  | 
|  ![\[Icono de Git\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Git_squid@2x.png)  |  **Git** Puede conectarse a un repositorio Git y luego acceder a una gama completa de herramientas y operaciones de Git. Para obtener más información, consulte [Usa recursos externos en Amazon SageMaker Studio Lab](studio-lab-use-external.md).  | 
|  ![\[Icono de Índice\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-toc.png)  |  **Índice** Permite acceder al índice de su cuaderno de Jupyter actual.  | 
|  ![\[Icono de Administrador de extensiones\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-extension.png)  |  **Administrador de extensiones** Puede habilitar y administrar JupyterLab extensiones de terceros.  | 

## Explorador de archivos y recursos
<a name="studio-lab-use-ui-browser"></a>

El explorador de archivos y recursos muestra listas de sus cuadernos y archivos. En el menú de la parte superior del navegador de archivos, elija el signo más (**\$1**) para abrir el lanzador de Studio Lab. El lanzador le permite crear un cuaderno o abrir un terminal.

## Área de trabajo principal
<a name="studio-lab-use-ui-work"></a>

El área de trabajo principal incluye varias pestañas que contienen los cuadernos y los terminales abiertos.

# Crear o abrir un bloc de notas de Amazon SageMaker Studio Lab
<a name="studio-lab-use-create"></a>

Al crear una libreta en Amazon SageMaker Studio Lab o abrir una libreta en Studio Lab, debe seleccionar un núcleo para la libreta. En los temas siguientes se describe cómo crear y abrir cuadernos en Studio Lab.

Para obtener información sobre cómo apagar el cuaderno, consulte [Cierre de recursos de Studio Lab](studio-lab-use-shutdown.md).

**Topics**
+ [Apertura de un cuaderno de Studio Lab](#studio-lab-use-create-open)
+ [Creación de un cuaderno desde el menú Archivo](#studio-lab-use-create-file)
+ [Creación de un cuaderno desde el lanzador](#studio-lab-use-create-launcher)

## Apertura de un cuaderno de Studio Lab
<a name="studio-lab-use-create-open"></a>

Studio Lab sólo puede abrir los cuadernos que aparecen en el explorador de archivos de Studio Lab. Para clonar un cuaderno en el explorador de archivos desde un repositorio externo, consulte [Usa recursos externos en Amazon SageMaker Studio Lab](studio-lab-use-external.md).

**Para abrir un cuaderno**

1. En la barra lateral izquierda, elija el icono del **Explorador de archivos** (![\[Dark blue square icon with a white outline of a cloud and an arrow pointing upward.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/File_browser_squid.png)) para mostrar el explorador de archivos.

1. Busque y haga doble clic en un archivo de cuaderno y haga doble clic en él para abrirlo en una nueva pestaña.

## Creación de un cuaderno desde el menú Archivo
<a name="studio-lab-use-create-file"></a>

**Para crear un cuaderno desde el menú Archivo**

1. En el menú de la parte superior de Studio Lab, elija **Archivo**, seleccione **Nuevo**, y, a continuación, elija **Cuaderno**.

1. Para usar el kernel predeterminado, en el cuadro de diálogo **Seleccionar kernel**, elija **Seleccionar**. De lo contrario, utilice el menú desplegable para seleccionar un kernel diferente.

## Creación de un cuaderno desde el lanzador
<a name="studio-lab-use-create-launcher"></a>

**Para crear un cuaderno desde el lanzador**

1. Para abrir el lanzador, utilice el método abreviado de teclado `Ctrl + Shift + L`.

   También puede abrir el lanzador desde la barra lateral izquierda: seleccione el icono del **Explorador de archivos** y, a continuación, seleccione el icono del signo más (**\$1**).

1. Para usar el kernel predeterminado desde el lanzador, en **Cuaderno**, seleccione **default:Python**. De lo contrario, seleccione un kernel diferente.

Después de elegir el kernel, su cuaderno se inicializa y se abre en una nueva pestaña de Studio Lab. 

Para ver la sesión del kernel del cuaderno, en la barra lateral izquierda, elija el icono de **Terminales y kernels en ejecución** (![\[Square icon with a white outline of a cloud on a dark blue background.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Running_squid.png)). Puede detener la sesión del kernel del cuaderno desde esta vista.

# Usa la barra de herramientas del bloc de notas de Amazon SageMaker Studio Lab
<a name="studio-lab-use-menu"></a>

Los cuadernos Amazon SageMaker Studio Lab amplían la JupyterLab interfaz. Para obtener una descripción general de la JupyterLab interfaz básica, consulte [La JupyterLab interfaz](https://jupyterlab.readthedocs.io/en/latest/user/interface.html).

En la siguiente imagen se muestran la barra de herramientas y una celda vacía de un cuaderno de Studio Lab.

![\[Diseño de la barra de herramientas del cuaderno, incluidos los iconos de la barra de herramientas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio-lab-menu.png)


Al pasar el cursor sobre un icono de la barra de herramientas, aparece información sobre herramientas con la función del icono. Hay comandos adicionales del cuaderno en el menú principal de Studio Lab. La barra de menús incluye los siguientes iconos:


| Icono | Description (Descripción) | 
| --- | --- | 
|  ![\[Icono de Guardar y punto de comprobación\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-save-and-checkpoint.png)  |  **Guardar y punto de comprobación** Guarda el cuaderno y actualiza el archivo de punto de comprobación.  | 
|  ![\[El icono de Insertar celda.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-insert-cell.png)  |  **Insertar celda** Inserta una celda de código debajo de la celda actual. La celda actual se identifica con el marcador vertical azul en el margen izquierdo.  | 
|  ![\[Icono Cortar, copiar y pegar celdas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab_cut_copy_paste.png)  |  **Cortar, copiar y pegar celdas** Corta, copia y pega las celdas seleccionadas.  | 
|  ![\[Icono de Ejecutar celdas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-run.png)  |  **Ejecutar celdas** Ejecuta las celdas seleccionadas. La celda que sigue a la última celda seleccionada pasa a ser la nueva celda seleccionada.  | 
|  ![\[El icono de Interrumpir kernel.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-interrupt-kernel.png)  |  **Interrumpir kernel** Interrumpe el kernel, con lo que se cancela la operación que se encuentre en ejecución en ese momento. El kernel permanece activo.  | 
|  ![\[El icono de Reiniciar kernel.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-restart-kernel.png)  |  **Reiniciar el kernel** Reinicia el kernel. Las variables se restablecen. La información no guardada no se ve afectada.  | 
|  ![\[Icono de Reiniciar kernel y volver a ejecutar el cuaderno\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-restart-rerun-kernel.png)  |  **Reiniciar kernel y volver a ejecutar el cuaderno** Reinicia el kernel. Las variables se restablecen. La información no guardada no se ve afectada. A continuación, se vuelve a ejecutar todo el cuaderno.  | 
|  ![\[Icono de Tipo de celda\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab_cell.png)  |  **Tipo de celda** Muestra o cambia el tipo de celda actual. Los tipos de celdas son: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/studio-lab-use-menu.html)  | 
|  ![\[Icono de Diferencia de punto de comprobación\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-checkpoint-diff.png)  |  **Diferencia de punto de comprobación** Abre una nueva pestaña que muestra la diferencia entre el cuaderno y el archivo de punto de comprobación. Para obtener más información, consulte [Obtención de diferencias entre cuadernos](studio-lab-use-diff.md).  | 
|  ![\[El icono de Diferencia de Git.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-git-diff.png)  |  **Diferencia de Git** Solo está habilitado si el cuaderno se abre desde un repositorio de Git. Abre una nueva pestaña que muestra la diferencia entre el cuaderno y la última confirmación de Git. Para obtener más información, consulte [Obtención de diferencias entre cuadernos](studio-lab-use-diff.md).  | 
|  **predeterminada**  |  **Kernel** Muestra o cambia el kernel que procesa las celdas del cuaderno. `No Kernel` indica que el cuaderno se ha abierto sin especificar un kernel. Puede editar el cuaderno, pero no se puede ejecutar ninguna celda.  | 
|  ![\[El icono de Estado ocupado del kernel.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/studio-lab-kernel.png)  |  **Estado del kernel ocupado** Indica el estado ocupado de un kernel mostrando el borde del círculo y su interior del mismo color. El kernel está ocupado cuando se está iniciando y cuando está procesando celdas. Se muestran estados adicionales del kernel en la barra de estado de la esquina inferior izquierda de Studio Lab.  | 

# Administración del entorno
<a name="studio-lab-use-manage"></a>

Amazon SageMaker Studio Lab proporciona entornos preinstalados para las instancias de notebook de Studio Lab. Los entornos permiten iniciar una instancia de cuaderno de Studio Lab con los paquetes que desee utilizar. Para ello, hay que instalar los paquetes en el entorno y, a continuación, seleccionar el entorno como kernel. 

Studio Lab pone a su disposición varios entornos preinstalados. Por lo general, es conveniente utilizar el entorno `sagemaker-distribution` si quiere utilizar un entorno totalmente administrado que ya contenga muchos paquetes populares que los ingenieros de machine learning (ML) y los científicos de datos utilizan. En otro caso, puede utilizar el entorno `default` si desea realizar una personalización persistente de su entorno. Para obtener más información sobre los entornos de Studio Lab preinstalados disponibles, consulte [Entornos preinstalados de Studio Lab](studio-lab-environments.md).

Puede agregar nuevos paquetes (o bibliotecas) para personalizar su entorno. También puede crear nuevos entornos desde Studio Lab, importar entornos compatibles o restablecer su entorno para crear espacio, entre otras acciones. 

Los siguientes comandos son para ejecutarlos en un terminal de Studio Lab. Sin embargo, al instalar los paquetes, se recomienda encarecidamente instalarlos en el cuaderno de Jupyter de Studio Lab. De este modo se segura de que los paquetes se instalen en el entorno previsto. Para ejecutar los comandos en un cuaderno de Jupyter, anteponga el signo `%` al comando antes de ejecutar la celda. Por ejemplo, el fragmento de código `pip list` de un terminal equivale a `%pip list` en un cuaderno de Jupyter.

En las siguientes secciones se proporciona información sobre su entorno de conda `default`, cómo personalizarlo y cómo agregar y eliminar entornos de conda. Para obtener una lista de ejemplos de entornos que puede instalar en Studio Lab, consulte [Creating Custom conda Environments](https://github.com/aws/studio-lab-examples/tree/main/custom-environments). Para usar estos ejemplos de archivos de YAML del entorno con Studio Lab, consulte [Paso 4: instalación de los entornos de conda de Studio Lab en Studio Classic](studio-lab-use-migrate.md#studio-lab-use-migrate-step4). 

**Topics**
+ [Entorno predeterminado](#studio-lab-use-manage-conda-default)
+ [Visualización de entornos](#studio-lab-use-view-conda-envs)
+ [Creación, activación y uso de nuevos entornos de conda](#studio-lab-use-manage-conda-new-conda)
+ [Uso de ejemplos de entornos de Studio Lab](#studio-lab-use-manage-conda-sample)
+ [Personalización de un entorno](#studio-lab-use-manage-conda-default-customize)
+ [Actualización de Studio Lab](#studio-lab-use-manage-conda-reset)

## Entorno predeterminado
<a name="studio-lab-use-manage-conda-default"></a>

Studio Lab utiliza entornos de conda para encapsular los paquetes de software que se necesitan para ejecutar los cuadernos. [Su proyecto contiene un entorno conda predeterminado, denominado`default`, junto con el IPython núcleo.](https://ipython.readthedocs.io/en/stable/) Este entorno sirve como kernel predeterminado para sus cuadernos de Jupyter.

## Visualización de entornos
<a name="studio-lab-use-view-conda-envs"></a>

Para ver los entornos de Studio Lab, puede utilizar un terminal o un cuaderno de Jupyter. El siguiente comando es para un terminal de Studio Lab. Si desea ejecutar los comandos correspondientes en un cuaderno de Jupyter, consulte [Administración del entorno](#studio-lab-use-manage).

Abra el terminal de Studio Lab. Para ello, abra el panel del **Explorador de archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)), seleccione el signo más (**\$1**) en el menú de la parte superior del explorador de archivos para abrir **Lanzador** y, a continuación, seleccione **Terminal**. Desde el terminal de Studio Lab, ejecute lo siguiente para enumerar los entornos de conda.

```
conda env list
```

Con este comando se genera una lista de los entornos de conda y sus ubicaciones en el sistema de archivos. Cuando se realiza la incorporación a Studio Lab, se activa automáticamente el entorno de conda de `studiolab`. El siguiente es un ejemplo de los entornos de la lista después de la incorporación.

```
# conda environments:
#
default                  /home/studio-lab-user/.conda/envs/default
studiolab             *  /home/studio-lab-user/.conda/envs/studiolab
studiolab-safemode       /opt/amazon/sagemaker/safemode-home/.conda/envs/studiolab-safemode
base                     /opt/conda
sagemaker-distribution     /opt/conda/envs/sagemaker-distribution
```

El signo `*` indica el entorno activado.

## Creación, activación y uso de nuevos entornos de conda
<a name="studio-lab-use-manage-conda-new-conda"></a>

Si desea mantener varios entornos para diferentes casos de uso, puede crear nuevos entornos de conda en su proyecto. En las secciones siguientes se muestra cómo crear y activar nuevos entornos de conda. Para ver un cuaderno de Jupyter que muestre cómo crear un entorno personalizado, consulte [Configuración de un entorno personalizado en SageMaker ](https://github.com/aws/studio-lab-examples/blob/main/custom-environments/custom_environment.ipynb) Studio Lab.

**nota**  
El mantenimiento de varios entornos se tiene en cuenta al calcular la memoria disponible en Studio Lab.

 **Creación de un entorno de conda** 

Para crear un entorno de conda, ejecute el siguiente comando de conda desde su terminal. En este ejemplo se crea un entorno nuevo con Python 3.9. 

```
conda create --name <ENVIRONMENT_NAME> python=3.9
```

Una vez creado el entorno de conda, se puede ver el entorno en la lista de entornos. Para obtener más información sobre cómo ver la lista de entornos, consulte [Visualización de entornos](#studio-lab-use-view-conda-envs).

 **Activación de un entorno de conda** 

Para activar cualquier entorno de conda, ejecute el siguiente comando en el terminal.

```
conda activate <ENVIRONMENT_NAME>
```

Al ejecutar este comando, todos los paquetes instalados mediante conda o pip se instalan en el entorno. Para obtener más información sobre la instalación de paquetes, consulte [Personalización de un entorno](#studio-lab-use-manage-conda-default-customize).

 **Uso de un entorno de conda** 

1. Para usar sus nuevos entornos de conda con cuadernos, asegúrese de que el paquete `ipykernel` esté instalado en el entorno.

   ```
   conda install ipykernel
   ```

1. Una vez que el paquete `ipykernel` esté instalado en el entorno, puede seleccionar el entorno como kernel del cuaderno. 

   Puede que tengas que reiniciar JupyterLab para ver el entorno disponible como núcleo. Para ello, selecciona **Amazon SageMaker Studio Lab** en el menú superior de tu proyecto abierto de Studio Lab y selecciona **Reiniciar JupyterLab...** . 

1. Puede elegir el núcleo para un cuaderno existente o cuando cree uno nuevo.
   + Para un cuaderno existente: abra el cuaderno y seleccione el núcleo actual en la parte derecha del menú superior. Puede elegir el núcleo que desea usar desde el menú desplegable.
   + Para un cuaderno nuevo: abra el lanzador de Studio Lab y seleccione el núcleo en **Cuaderno**. Se abrirá el cuaderno con el núcleo que elija.

     Para obtener información general sobre la interfaz de usuario de Studio Lab, consulte [Descripción general de la interfaz de usuario de Amazon SageMaker Studio Lab](studio-lab-use-ui.md).

## Uso de ejemplos de entornos de Studio Lab
<a name="studio-lab-use-manage-conda-sample"></a>

Studio Lab proporciona ejemplos de entornos personalizados a través del repositorio de [ejemplos de SageMaker Studio Lab](https://github.com/aws/studio-lab-examples). En el siguiente ejemplo se muestra cómo clonar y crear estos entornos.

1. Clona el GitHub repositorio de ejemplos de SageMaker Studio Lab siguiendo las instrucciones que se indican en[Usa los recursos GitHub](studio-lab-use-external.md#studio-lab-use-external-clone-github).

1. En Studio Lab, seleccione el icono del **Explorador de archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)) en el menú de la izquierda para que el panel **Explorador de archivos** aparezca a la izquierda.

1. Vaya al directorio `studio-lab-examples/custom-environments` del explorador de archivos.

1. Abra el directorio del entorno que desea crear.

1. Haga clic con el botón derecho en el archivo `.yml` de la carpeta y, a continuación, seleccione **Crear entorno de conda**.

1. Ahora puede usar el entorno como kernel una vez que su entorno de conda haya terminado de crearse. Para obtener instrucciones sobre cómo utilizar un entorno existente como kernel, consulte [Creación, activación y uso de nuevos entornos de conda](#studio-lab-use-manage-conda-new-conda).

## Personalización de un entorno
<a name="studio-lab-use-manage-conda-default-customize"></a>

Para personalizar su entorno, puede instalar y quitar extensiones y paquetes según sea necesario. Studio Lab incluye entornos con paquetes preinstalados. El uso de un entorno existente puede ahorrarle tiempo y memoria, ya que los paquetes preinstalados no se tienen en cuenta al calcular la memoria disponible de Studio Lab. Para obtener más información sobre los entornos de Studio Lab preinstalados disponibles, consulte [Entornos preinstalados de Studio Lab](studio-lab-environments.md).

Todas las extensiones y los paquetes instalados en su entorno `default` persistirán en el proyecto. Es decir, no es preciso instalar los paquetes en cada sesión de tiempo de ejecución del proyecto. Sin embargo, las extensiones y los paquetes instalados en su entorno `sagemaker-distribution` no persistirán, por lo que tendrá que instalar nuevos paquetes en la próxima sesión. Por lo tanto, se recomienda encarecidamente instalar los paquetes en el cuaderno a fin de asegurarse de que se instalen en el entorno previsto.

Para ver los entornos, ejecute el comando `conda env list`.

Para activar el entorno, ejecute el comando `conda activate <ENVIRONMENT_NAME>`.

Para ver los paquetes de un entorno, ejecute el comando `conda list`.

 **Instalación de paquetes** 

Se recomienda encarecidamente instalar los paquetes en su cuaderno de Jupyter para asegurarse de que se instalan en el entorno previsto. Para instalar paquetes adicionales en su entorno desde un cuaderno de Jupyter, ejecute uno de los siguientes comandos en una celda de su cuaderno de Jupyter. Con estos comandos se instalan los paquetes en el entorno activado en ese momento. 
+  `%conda install <PACKAGE>` 
+  `%pip install <PACKAGE>` 

No recomendamos usar los comandos `!pip` o `!conda`, ya que pueden comportarse de forma inesperada cuando hay varios entornos. 

Tras instalar los paquetes nuevos en su entorno, es posible que tenga que reiniciar el kernel para asegurarse de que los paquetes funcionan en su cuaderno. Para ello, selecciona **Amazon SageMaker Studio Lab** en el menú superior del proyecto abierto de Studio Lab y selecciona **Reiniciar JupyterLab...** . 

 **Eliminación de paquetes** 

Para eliminar un paquete, ejecute el comando

```
%conda remove <PACKAGE_NAME>
```

Con este comando también se eliminará cualquier paquete que dependa de `<PACKAGE_NAME>`, salvo que se pueda encontrar un reemplazo sin esa dependencia. 

Para ver todos los paquetes de un entorno, ejecute el comando

```
conda deactivate
&& conda env remove --name
<ENVIRONMENT_NAME>
```

## Actualización de Studio Lab
<a name="studio-lab-use-manage-conda-reset"></a>

Para actualizar Studio Lab, elimine todos los entornos y archivos. 

1. Enumere todos los entornos de conda.

   ```
   conda env list
   ```

1. Active el entorno base.

   ```
   conda activate base
   ```

1. Elimine todos los entornos de la lista de entornos de conda, además del entorno base.

   ```
   conda remove --name <ENVIRONMENT_NAME> --all
   ```

1. Elimine todos los archivos de su Studio Lab.

   ```
   rm -rf *.*
   ```

# Usa recursos externos en Amazon SageMaker Studio Lab
<a name="studio-lab-use-external"></a>

Con Amazon SageMaker Studio Lab, puede integrar recursos externos, como cuadernos y datos de Jupyter, de los repositorios de Git y Amazon S3. También puede añadir un botón **Abrir en Studio Lab** a su GitHub repositorio y libretas. Este botón permite clonar los cuadernos directamente desde Studio Lab.

En los siguientes temas, se indica cómo integrar recursos externos.

**Topics**
+ [Usa los recursos GitHub](#studio-lab-use-external-clone-github)
+ [Adición de un botón **Abrir en Studio Lab** a un cuaderno](#studio-lab-use-external-add-button)
+ [Importación de archivos desde su equipo](#studio-lab-use-external-import)
+ [Conexión a Amazon S3](#studio-lab-use-external-s3)

## Usa los recursos GitHub
<a name="studio-lab-use-external-clone-github"></a>

Studio Lab ofrece integración con GitHub. Con esta integración, puede clonar cuadernos y repositorios directamente en su proyecto de Studio Lab. 

En los siguientes temas se proporciona información sobre cómo utilizar GitHub los recursos con Studio Lab.

### Ejemplos de cuadernos de Studio Lab
<a name="studio-lab-use-external-clone-examples"></a>

Para empezar con un repositorio de ejemplos de cuadernos diseñados para Studio Lab, consulte [Ejemplos de cuadernos de Studio Lab](https://github.com/aws/studio-lab-examples#sagemaker-studio-lab-sample-notebooks).

Este repositorio proporciona cuadernos para los siguientes casos de uso, entre otros.
+ Visión artificial
+ Conectarse a AWS
+ Creación de entornos personalizados
+ Análisis de datos geoespaciales
+ Procesamiento de lenguaje natural
+ Uso de R

### Clonar un GitHub repositorio
<a name="studio-lab-use-external-clone-repo"></a>

Para clonar un GitHub repositorio en tu proyecto de Studio Lab, sigue estos pasos. 

1. Inicie el tiempo de ejecución de su proyecto de Studio Lab. Para obtener más información sobre cómo inicializar el tiempo de ejecución de un proyecto de Studio Lab, consulte [Iniciar el tiempo de ejecución del proyecto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start). 

1. En Studio Lab, seleccione el icono del **Explorador de archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)) en el menú de la izquierda para que el panel **Explorador de archivos** aparezca a la izquierda. 

1. Vaya a su directorio de usuarios; para ello, elija el icono de archivo situado debajo de la barra de búsqueda de archivos. 

1. Seleccione el icono de **Git** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/git.png)) en el menú de la izquierda para abrir un nuevo menú desplegable. 

1. Seleccione **Clonar un repositorio**. 

1. Pegue la URL del repositorio en **URL del repositorio de Git (.git)**. 

1. Seleccione **Clonar**. 

### Clona cuadernos individuales de GitHub
<a name="studio-lab-use-external-clone-individual"></a>

Para abrir un cuaderno en Studio Lab, debe tener acceso al repositorio en el que se encuentra el cuaderno. En los siguientes ejemplos se describe el comportamiento de Studio Lab en relación con los permisos en diversas situaciones.
+ Si un repositorio es público, puede clonar automáticamente el cuaderno en su proyecto desde la página de vista previa de Studio Lab.
+ Si un repositorio es privado, se te pedirá que inicies sesión en él GitHub desde la página de vista previa de Studio Lab. Si tiene acceso a un repositorio privado, puede clonar el cuaderno en su proyecto.
+ Si no tiene acceso a un repositorio privado, no puede clonar el cuaderno desde la página de vista previa de Studio Lab.

En las siguientes secciones, se muestran dos opciones para copiar un GitHub bloc de notas en el proyecto de Studio Lab. Estas opciones dependen de si el cuaderno tiene el botón **Abrir en Studio Lab**. 

#### Opción 1: copia de un cuaderno con el botón **Abrir en Studio Lab**
<a name="studio-lab-use-external-clone-individual-button"></a>

En el siguiente procedimiento se muestra cómo copiar un cuaderno que tiene el botón **Abrir en Studio Lab**. Si desea agregar este botón a su cuaderno, consulte [Adición de un botón **Abrir en Studio Lab** a un cuaderno](#studio-lab-use-external-add-button).

1. Lance Studio Lab siguiendo los pasos que se indican en [Inicio de sesión en Studio Lab](studio-lab-onboard.md#studio-lab-onboard-signin).

1. En una nueva pestaña del navegador, navega hasta el GitHub cuaderno que deseas clonar. 

1. En el cuaderno, seleccione el botón **Abrir en Studio Lab** para abrir una nueva página en Studio Lab con una vista previa del cuaderno.

1. Si el tiempo de ejecución del proyecto aún no está en ejecución, inícielo pulsando el botón **Iniciar tiempo de ejecución** en la parte superior de la página de vista previa. Espere a que el estado del tiempo de ejecución se inicie antes de ir al paso siguiente.

1. Una vez iniciado el tiempo de ejecución del proyecto, seleccione **Copiar al proyecto** para abrir el tiempo de ejecución del proyecto en una nueva pestaña del navegador. 

1. En la sección ¿**Copiar de GitHub?** cuadro de diálogo, seleccione **Copiar solo el bloc** de notas. Se copiará el archivo del cuaderno en su proyecto.

#### Opción 2: clona cualquier GitHub bloc de notas
<a name="studio-lab-use-external-clone-individual-general"></a>

El siguiente procedimiento muestra cómo copiar cualquier bloc de notas de GitHub. 

1. Navegue hasta el cuaderno en GitHub. 

1. En la barra de direcciones del navegador, modifique la URL del cuaderno como se indica a continuación.

   ```
   # Original URL
   https://github.com/<PATH_TO_NOTEBOOK>
   
   # Modified URL 
   https://studiolab.sagemaker.aws/import/github/<PATH_TO_NOTEBOOK>
   ```

1. Vaya a la URL modificada. Se abre una vista previa del cuaderno en Studio Lab. 

1. Si el tiempo de ejecución del proyecto aún no está en ejecución, inícielo pulsando el botón **Iniciar tiempo de ejecución** en la parte superior de la página de vista previa. Espere a que el estado del tiempo de ejecución se inicie antes de ir al paso siguiente. 

1. Una vez iniciado el tiempo de ejecución del proyecto, seleccione **Copiar al proyecto** para abrir el tiempo de ejecución del proyecto en una nueva pestaña del navegador. 

1. ¿En la **copia de GitHub?** cuadro de diálogo, seleccione **Copiar solo el bloc** de notas para copiar el archivo del bloc de notas al proyecto.

## Adición de un botón **Abrir en Studio Lab** a un cuaderno
<a name="studio-lab-use-external-add-button"></a>

Si añade el botón **Abrir en Studio Lab** a sus cuadernos, otras personas podrán clonarlos estos últimos o los repositorios directamente en los proyectos de Studio Lab que tengan. Si compartes tu bloc de notas en un GitHub repositorio público, tu contenido se podrá leer públicamente. No compartas contenido privado, como claves de AWS acceso o AWS Identity and Access Management credenciales, en tu bloc de notas.

Para añadir el botón **Abrir en Studio Lab** funcional a su cuaderno o repositorio de Jupyter, agregue el marcado siguiente en la parte superior de su cuaderno o repositorio. 

```
[![Open In SageMaker Studio Lab](https://studiolab.sagemaker.aws/studiolab.svg)](https://studiolab.sagemaker.aws/import/github/<PATH_TO_YOUR_NOTEBOOK_ON_GITHUB>)
```

## Importación de archivos desde su equipo
<a name="studio-lab-use-external-import"></a>

En los pasos siguientes se muestra cómo importar archivos del equipo a un proyecto de Studio Lab.  

1. Abra el tiempo de ejecución del proyecto de Studio Lab. 

1. Abra el panel **Explorador de archivos**. 

1. En la barra de acciones del panel del **Explorador de archivos**, seleccione el botón **Cargar archivos**. 

1. Seleccione los archivos que desee cargar del equipo local. 

1. Seleccione **Abrir**. 



Como alternativa, puede arrastrar y soltar archivos del equipo al panel del **Explorador de archivos**. 

## Conexión a Amazon S3
<a name="studio-lab-use-external-s3"></a>

 AWS CLI Permite la AWS integración en su proyecto de Studio Lab. Con esta integración, puede extraer recursos de Amazon S3 para usarlos con sus cuadernos de Jupyter.

Para usarlo AWS CLI con Studio Lab, complete los siguientes pasos. Para ver un cuaderno en el que se describe esta integración, consulte [Uso de Studio Lab con AWS recursos](https://github.com/aws/studio-lab-examples/blob/main/connect-to-aws/Access_AWS_from_Studio_Lab.ipynb).

1. Instale los AWS CLI siguientes pasos que se indican en [Instalación o actualización de la última versión de AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). 

1. Configure sus AWS credenciales siguiendo los pasos de [Configuración rápida](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html). El rol de su AWS cuenta debe tener permisos para acceder al bucket de Amazon S3 desde el que está copiando los datos. 

1. Desde el cuaderno de Jupyter, clone recursos del bucket de Amazon S3, según sea necesario. En el siguiente comando se muestra cómo clonar todos los recursos de una ruta de Amazon S3 a su proyecto. Para obtener más información, consulte la [AWS CLI Referencia de comandos de la ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html).

   ```
   !aws s3 cp s3://<BUCKET_NAME>/<PATH_TO_RESOURCES>/ <PROJECT_DESTINATION_PATH>/ --recursive
   ```

# Obtención de diferencias entre cuadernos
<a name="studio-lab-use-diff"></a>

Puedes mostrar la diferencia entre el bloc de notas actual y el último punto de control, o la última confirmación de Git, mediante la interfaz de usuario del proyecto Amazon SageMaker Studio Lab.

**Topics**
+ [Obtención de la diferencia con el último punto de comprobación](#studio-lab-use-diff-checkpoint)
+ [Obtención de la diferencia con la última confirmación](#studio-lab-use-diff-git)

## Obtención de la diferencia con el último punto de comprobación
<a name="studio-lab-use-diff-checkpoint"></a>

Al crear un cuaderno, se crea un archivo de punto de comprobación oculto que coincide con el cuaderno creado. Puede ver los cambios entre el cuaderno y el archivo de punto de comprobación o revertir el cuaderno para que coincida con el archivo de punto de comprobación.

Para guardar el cuaderno de Studio Lab y actualizar el archivo de punto de comprobación para que coincida: seleccione el icono de **Guardar cuaderno y crear punto de comprobación** (![\[Icon of a cloud with an arrow pointing upward, representing cloud upload functionality.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Notebook_save.png)). Se encuentra en el lado izquierdo del menú de Studio Lab. El método abreviado de teclado para **Guardar cuaderno y crear punto de comprobación** es `Ctrl + s`.

Para ver los cambios entre el cuaderno de Studio Lab y el archivo de punto de comprobación: elija el icono de **Diferencias con punto de comprobación** (![\[Camera icon representing image capture or photo functionality.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Checkpoint_diff.png)) situado en el centro del menú de Studio Lab.

Para revertir el cuaderno de Studio Lab al archivo de punto de comprobación: en el menú principal de Studio Lab, elija **Archivo** y, a continuación, **Revertir cuaderno al punto de comprobación**.

## Obtención de la diferencia con la última confirmación
<a name="studio-lab-use-diff-git"></a>

Si se abre un cuaderno desde un repositorio de Git, puede ver la diferencia entre el cuaderno y la última confirmación de Git.

Para ver los cambios en el cuaderno desde la última confirmación de Git: elija el icono de **Diferencia con Git** (![\[GitHub icon representing version control and source code management.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Git_diff.png)) en el centro del menú del cuaderno.

# Exportación de un entorno de Amazon SageMaker Studio Lab a Amazon SageMaker Studio Classic
<a name="studio-lab-use-migrate"></a>

Amazon SageMaker Studio Classic ofrece muchas funciones para flujos de trabajo de aprendizaje automático y aprendizaje profundo que no están disponibles en Amazon SageMaker Studio Lab. En esta página, se muestra cómo migrar un entorno de Studio Lab a Studio Classic para aprovechar una mayor capacidad de computación, almacenamiento y características. Sin embargo, puede ser conveniente familiarizarse con los contenedores prediseñados de Studio Classic, que están optimizados para la canalización de MLOP completa. Para obtener más información, consulte [Laboratorio Amazon SageMaker Studio](studio-lab.md)

Para migrar su entorno de Studio Lab a Studio Classic, primero debe incorporarlo a Studio Classic siguiendo los pasos que se indican en [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md). 

**Topics**
+ [Paso 1: exportación del entorno de conda de Studio Lab](#studio-lab-use-migrate-step1)
+ [Paso 2: almacenamiento de los artefactos de Studio Lab](#studio-lab-use-migrate-step2)
+ [Paso 3: importación de los artefactos de Studio Lab a Studio Classic](#studio-lab-use-migrate-step3)
+ [Paso 4: instalación de los entornos de conda de Studio Lab en Studio Classic](#studio-lab-use-migrate-step4)

## Paso 1: exportación del entorno de conda de Studio Lab
<a name="studio-lab-use-migrate-step1"></a>

Puede exportar un entorno de conda y añadirle bibliotecas o paquetes siguiendo los pasos que se indican en [Administración del entorno](studio-lab-use-manage.md). En el siguiente ejemplo se muestra el uso del entorno `default` para exportarlo a Studio Classic. 

1. Abra el terminal de Studio Lab. Para ello, abra el panel del **Explorador de archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)), seleccione el signo más (**\$1**) en el menú de la parte superior del explorador de archivos para abrir **Lanzador** y, a continuación, seleccione **Terminal**. Desde el terminal de Studio Lab, ejecute lo siguiente para enumerar los entornos de conda.

   ```
   conda env list
   ```

   Con este comando se genera una lista de los entornos de conda y sus ubicaciones en el sistema de archivos. Cuando se realiza la incorporación a Studio Lab, se activa automáticamente el entorno de conda de `studiolab`.

   ```
   # conda environments: #
              default                  /home/studio-lab-user/.conda/envs/default
              studiolab             *  /home/studio-lab-user/.conda/envs/studiolab
              studiolab-safemode       /opt/amazon/sagemaker/safemode-home/.conda/envs/studiolab-safemode
              base                     /opt/conda
   ```

   Recomendamos no exportar los entornos `studiolab`, `studiolab-safemode` y `base`. Estos entornos no se pueden utilizar en Studio Classic por los motivos siguientes: 
   +  `studiolab`: Esto configura el JupyterLab entorno de Studio Lab. Studio Lab ejecuta una versión principal JupyterLab distinta de la de Studio Classic, por lo que no se puede utilizar en Studio Classic. 
   +  `studiolab-safemode`: Esto también configura el JupyterLab entorno de Studio Lab. Studio Lab ejecuta una versión principal JupyterLab distinta de la de Studio Classic, por lo que no se puede utilizar en Studio Classic. 
   +  `base`: este entorno se suministra con conda de forma predeterminada. El entorno `base` de Studio Lab y el entorno `base` de Studio Classic tienen versiones incompatibles de muchos paquetes. 

1. Para el entorno de conda que desea migrar a Studio Classic, active primero el entorno de conda. A continuación, el entorno `default` cambia cuando se instalan o eliminan nuevas bibliotecas. Para obtener el estado exacto del entorno, expórtelo a un archivo de YAML mediante la línea de comandos. En las siguientes líneas de comandos se exporta el entorno predeterminado a un archivo YAML y se crea un archivo denominado `myenv.yml`.

   ```
   conda activate default
   conda env export > ~/myenv.yml
   ```

## Paso 2: almacenamiento de los artefactos de Studio Lab
<a name="studio-lab-use-migrate-step2"></a>

Ahora que ha guardado el entorno en un archivo de YAML, puede mover el archivo del entorno a cualquier plataforma. 

------
#### [ Save to a local machine using Studio Lab GUI ]

**nota**  
En este momento no está disponible la opción de hacer clic con el botón derecho en un directorio para descargarlo desde la GUI de Studio Lab. Si desea exportar un directorio, siga los pasos de la pestaña **Guardar en repositorio de Git**. 

Una opción es guardar el entorno en su máquina local. Para ello, siga el procedimiento que se indica a continuación.

1. En Studio Lab, seleccione el icono del **Explorador de archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)) en el menú de la izquierda para que el panel **Explorador de archivos** aparezca a la izquierda. 

1. Vaya a su directorio de usuarios; para ello, elija el icono de archivo situado debajo de la barra de búsqueda de archivos. 

1. Seleccione el archivo `myenv.yml` (haga clic con el botón derecho en él) y, a continuación, elija **Descargar**. Puede repetir este proceso para otros archivos que desee importar a Studio Classic. 

------
#### [ Save to a Git repository ]

Otra opción es guardar el entorno en un repositorio de Git. Se utiliza esta opción GitHub como ejemplo. Estos pasos requieren una GitHub cuenta y un repositorio. Para obtener más información, visite [GitHub](https://github.com/). El siguiente procedimiento muestra cómo sincronizar el contenido GitHub con el terminal Studio Lab. 

1. Desde el terminal de Studio Lab, diríjase a su directorio de usuario y cree un nuevo directorio que contenga los archivos que desee exportar. 

   ```
   cd ~
   mkdir <NEW_DIRECTORY_NAME>
   ```

1. Después de crear un nuevo directorio, copie cualquier archivo o directorio que desee exportar a `<NEW_DIRECTORY_NAME>`. 

   Copie un archivo con el siguiente formato de código:

   ```
   cp <FILE_NAME> <NEW_DIRECTORY_NAME>
   ```

   Por ejemplo, reemplace `<FILE_NAME>` por `myenv.yml`. 

   Copie cualquier directorio con el siguiente formato de código:

   ```
   cp -r <DIRECTORY_NAME> <NEW_DIRECTORY_NAME>
   ```

   Por ejemplo, reemplace `<DIRECTORY_NAME>` por cualquier nombre de directorio del directorio de usuarios.

1. Diríjase al nuevo directorio e inicialice el directorio como un repositorio de Git mediante el siguiente comando. Para obtener más información, consulte la [Documentación de git-init](https://git-scm.com/docs/git-init). 

   ```
   cd <NEW_DIRECTORY_NAME>
   git init
   ```

1. Con Git, agregue todos los archivos correspondientes y, a continuación, confirme los cambios. 

   ```
   git add .
   git commit -m "<COMMIT_MESSAGE>"
   ```

   Por ejemplo, reemplace `<COMMIT_MESSAGE>` por `Add Amazon SageMaker Studio Lab artifacts to GitHub repository to migrate to Amazon SageMaker Studio Classic `.

1. Envíe la confirmación al repositorio remoto. Este repositorio tiene el formato `https://github.com/<GITHUB_USERNAME>/ <REPOSITORY_NAME>.git` donde `<GITHUB_USERNAME>` es su nombre GitHub de usuario y el `<REPOSITORY_NAME>` nombre de su repositorio remoto. Crea una rama `<BRANCH_NAME>` para enviar el contenido al GitHub repositorio.

   ```
   git branch -M <BRANCH_NAME>
   git remote add origin https://github.com/<GITHUB_USERNAME>/<REPOSITORY_NAME>.git
   git push -u origin <BRANCH_NAME>
   ```

------

## Paso 3: importación de los artefactos de Studio Lab a Studio Classic
<a name="studio-lab-use-migrate-step3"></a>

En el siguiente procedimiento se muestra cómo importar artefactos a Studio Classic. Las instrucciones para usar el Almacén de características a través de la consola dependen de si ha habilitado Studio o Studio Classic como experiencia predeterminada. Para obtener información sobre el acceso a Studio Classic a través de la consola, consulte [Inicio de Studio Classic si Studio es su experiencia predeterminada](studio-launch.md#studio-launch-console-updated).

Desde Studio Classic, puede importar archivos desde su máquina local o desde un repositorio de Git. Puede hacerlo mediante la GUI o el terminal de Studio Classic. En el siguiente procedimiento se utilizan los ejemplos de [Paso 2: almacenamiento de los artefactos de Studio Lab](#studio-lab-use-migrate-step2). 

------
#### [ Import using the Studio Classic GUI ]

Si ha guardado los archivos en su máquina local, puede importarlos a Studio Classic mediante estos pasos.

1. Abra el panel **Explorador de archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/folder.png)) en la parte superior izquierda de Studio Classic. 

1. Seleccione el icono de **Cargar archivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/File_upload_squid.png)) en el menú de la parte superior del panel **Explorador de archivos**. 

1. Busque el archivo que desea importar y, a continuación, elija **Abrir**. 

**nota**  
Para importar un directorio a Studio Classic, primero comprima el directorio en su máquina local en un archivo. En un Mac, haga clic con el botón derecho en el directorio y seleccione **Comprimir *<DIRECTORY\$1NAME>* "»**. En Windows, haga clic con el botón derecho en el directorio, seleccione **Enviar a** y elija **Carpeta comprimida (en zip)**. Una vez comprimido el directorio, importe el archivo comprimido siguiendo los pasos anteriores. Para descomprimir el archivo comprimido, vaya al terminal de Studio Classic y ejecute el comando `<DIRECTORY_NAME>.zip`. 

------
#### [ Import using a Git repository ]

En este ejemplo, se proporcionan dos opciones para clonar un GitHub repositorio en Studio Classic. Para usar la GUI de Studio Classic, seleccione la pestaña **Git** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/git.png)) en la parte izquierda de Studio Classic. Seleccione **Clonar un repositorio** y, a continuación, pegue la URL del GitHub repositorio desde[Paso 2: almacenamiento de los artefactos de Studio Lab](#studio-lab-use-migrate-step2). Otra opción es usar el terminal de Studio Classic mediante el siguiente procedimiento. 

1. Abra **Lanzador** de Studio Classic. Para obtener más información sobre cómo abrir el **Launcher**, consulte [Amazon SageMaker Studio Classic Launcher](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launcher.html). 

1. En el **Lanzador**, en la sección **Cuadernos y recursos de computación**, seleccione **Cambiar entorno**.

1. En Studio Classic, abra **Lanzador**. Para abrir el **lanzador**, selecciona **Amazon SageMaker Studio Classic** en la esquina superior izquierda de Studio Classic. 

   Para obtener más información sobre todas las formas disponibles de abrir el **Lanzador**, consulte [Usa el Amazon SageMaker Studio Classic Launcher](studio-launcher.md).

1. En el cuadro de diálogo **Cambiar entorno**, utilice la lista desplegable **Imagen** para seleccionar la imagen de **Ciencia de datos** y elija **Seleccionar**. Esta imagen se suministra con conda preinstalado. 

1. En **Lanzador** de Studio Classic, seleccione **Abrir terminal de imágenes**.

1. Desde el terminal de imágenes, ejecute el siguiente comando para clonar el repositorio. Con este comando se crea un directorio con el nombre `<REPOSITORY_NAME>` en su instancia de Studio Classic y se clonan sus artefactos en ese repositorio.

   ```
   git clone https://github.com/<GITHUB_USERNAME>/<REPOSITORY_NAME>.git
   ```

------

## Paso 4: instalación de los entornos de conda de Studio Lab en Studio Classic
<a name="studio-lab-use-migrate-step4"></a>

Ahora puede volver a crear su entorno de conda mediante el archivo de YAML de su instancia de Studio Classic. Abra **Lanzador** de Studio Classic. Para obtener más información sobre cómo abrir el **Launcher**, consulte [Amazon SageMaker Studio Classic Launcher](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launcher.html). En **Lanzador**, seleccione **Abrir terminal de imágenes**. En el terminal, vaya al directorio que contiene el archivo de YAML y ejecute los siguientes comandos. 

```
conda env create --file <ENVIRONMENT_NAME>.yml
conda activate <ENVIRONMENT_NAME>
```

Una vez completados estos comandos, puede seleccionar su entorno como kernel para sus instancias de cuaderno de Studio Classic. Para ver el entorno disponible, ejecute `conda env list`. Para activar el entorno, ejecute `conda activate <ENVIRONMENT_NAME>`.



# Cierre de recursos de Studio Lab
<a name="studio-lab-use-shutdown"></a>

Puede ver y cerrar los recursos de Amazon SageMaker Studio Lab en ejecución desde una ubicación de su entorno de Studio Lab. Los tipos de recursos en ejecución incluyen terminales y kernels. También puede cerrar todos los recursos de un tipo de recursos al mismo tiempo.

Cuando se apagan todos los recursos que pertenecen a un tipo de recurso, sucede lo siguiente:
+ **KERNELS**: se cierran todos los kernels, cuadernos y consolas.
+ **TERMINALES**: se cierran todos los terminales.

**Cierre de recursos de Studio Lab**

1. Inicie el tiempo de ejecución de su proyecto de Studio Lab. Para obtener más información sobre cómo inicializar el tiempo de ejecución de un proyecto de Studio Lab, consulte [Iniciar el tiempo de ejecución del proyecto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start).

1. Seleccione el icono de **Terminales y kernels en ejecución** (![\[Square icon with a white outline of a cloud on a dark blue background.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Running_squid.png)) en el panel de navegación izquierdo.

1. Elija el símbolo **X** situado a la derecha del recurso que desee cerrar. Para ver el símbolo **X**, sitúe el cursor sobre un recurso.

1. (Opcional) Para cerrar todos los recursos de un tipo de recurso determinado, seleccione **Cerrar todos** a la derecha del nombre del tipo de recurso.

# Resolución de problemas
<a name="studio-lab-troubleshooting"></a>

La guía muestra los errores más comunes que pueden producirse al utilizar Amazon SageMaker Studio Lab (Studio Lab). Cada error contiene una descripción y una solución al error.

**nota**  
No puede compartir su contraseña con varios usuarios ni usar Studio Lab para minar criptomonedas. No recomendamos usar Studio Lab para tareas de producción debido a los límites de tiempo de ejecución.

 **Problemas de dependencia** 

El 8 de agosto de 2025, Studio Lab migró de JupyterLab 3 a JupyterLab 4. Para obtener información sobre la versión JupyterLab 4, consulte la sección [4.0.0: Aspectos destacados](https://jupyterlab.readthedocs.io/en/4.0.x/getting_started/changelog.html#highlights) del JupyterLab registro de cambios. Si instalaste JupyterLab las extensiones en tu entorno de Studio Lab antes del 8 de agosto de 2025, es posible que tengas que volver a instalarlas en el JupyterLab entorno 4.

 **No se puede acceder a la cuenta** 

Si no puede acceder a su cuenta, compruebe que está utilizando el correo electrónico y la contraseña correctos. Si ha olvidado su contraseña, siga estos pasos para restablecerla. Si continúa sin poder acceder a su cuenta, debe solicitar y registrar una nueva cuenta siguiendo las instrucciones que se indican en [A bordo de Amazon SageMaker Studio Lab](studio-lab-onboard.md). 

 **Contraseña olvidada** 

Si olvida su contraseña, debe restablecerla mediante los siguientes pasos. 

1. Diríjase a la [página de inicio de Studio Lab](https://studiolab.sagemaker.aws).

1. Seleccione **Iniciar sesión**.

1. Seleccione **Olvidé mi contraseña** para abrir una nueva página. 

1. Introduzca la dirección de correo electrónico que ha utilizado para registrarse en una cuenta. 

1. Seleccione **Enviar enlace de restablecimiento** para que se le envíe un correo electrónico con un enlace que permite restablecer la contraseña. 

1. En el correo electrónico de restablecimiento de la contraseña, seleccione **Restablecer la contraseña**. 

1. Introduzca su nueva contraseña. 

1. Seleccione **Enviar**. 

 **No se puede inicializar el tiempo de ejecución del proyecto** 

Si el tiempo de ejecución del proyecto de Studio Lab no se inicializa, pruebe a inicializarlo de nuevo. Si esto no funciona, cambie el tipo de instancia de CPU a GPU (o al revés). Para obtener más información, consulte [Cambie el tipo de computación](studio-lab-manage-runtime.md#studio-lab-manage-runtime-change).

 **El tiempo de ejecución se ha detenido inesperadamente** 

Si hay algún problema con el entorno utilizado para ejecutarse JupyterLab, Studio Lab volverá a crear el entorno automáticamente. Studio Lab no admite la activación manual de este proceso. 

 **Conflicto entre versiones** 

Debido a que puede agregar paquetes y modificar el entorno según sea necesario, es posible que surjan conflictos entre los paquetes de su entorno. Si hay algún conflicto entre los paquetes de su entorno, debe eliminar el paquete que lo provoca.

 **Error al crear el entorno** 

Al crear un entorno a partir de un archivo de YAML, se puede producir un error debido a un conflicto con la versión del paquete o a un problema con el archivo. Para resolverlo, ejecute el siguiente comando para eliminar el entorno. Haga esto antes de intentar volver a crearlo. 

```
conda remove --name <YOUR_ENVIRONMENT> --all
```

 **Aparece un mensaje de error sobre la posibilidad de descargar el script desde el dominio \$1.awswaf.com** 

Studio Classic utiliza el servicio de firewall de aplicaciones web AWS WAF para proteger sus recursos, que utiliza JavaScript. Si está utilizando un complemento de seguridad del navegador que JavaScript impide la descarga, es posible que aparezca este error. Para usar Studio Classic, permita la JavaScript descarga desde \$1.awswaf.com como dominio de confianza. Para obtener más información al respecto AWS WAF, consulte [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)desde, y. AWS WAF AWS Firewall Manager AWS Shield Advanced. 

 **El espacio en disco está lleno** 

Si recibe una notificación que indica que el espacio en disco está lleno o que se **ha producido un error *<FILE\$1NAME>* al cargar** el archivo al intentar abrir un archivo, puede eliminar archivos, directorios, bibliotecas o entornos para aumentar el espacio. Para obtener más información acerca de cómo administrar sus bibliotecas y entornos, consulte [Administración del entorno](studio-lab-use-manage.md).

 **Notificación **El tiempo de ejecución del proyecto está en modo seguro**** 

Si aparece la notificación **El tiempo de ejecución del proyecto está en modo seguro**, debe liberar espacio en el disco para poder seguir utilizando el tiempo de ejecución del proyecto de Studio Lab. Siga las instrucciones del elemento de solución de problemas anterior **El espacio en disco está lleno**. Una vez que se hayan liberado al menos 500 MB de espacio, puede reiniciar el tiempo de ejecución del proyecto para usar Studio Lab. Para ello, selecciona **Amazon SageMaker Studio Lab** en el menú superior de Studio Lab y selecciona **Reiniciar JupyterLab...** .

git: **Cannot import `cv2`** 

Si se produce un error al importar `cv2` después de instalar `opencv-python`, debe desinstalar `opencv-python` e instalar `opencv-python-headless` de la siguiente manera.

```
%pip uninstall opencv-python --yes
%pip install opencv-python-headless
```

A continuación, puede importar `cv2` según lo previsto.

 **Studio Lab deja de responder al abrir archivos de gran tamaño** 

Es posible que el IDE de Studio Lab no se represente cuando se abren archivos de gran tamaño, lo que da lugar a que se bloquee el acceso a los recursos de Studio Lab. Para resolver este problema, restablezca el espacio de trabajo de Studio Lab mediante el siguiente procedimiento.

1. Después de abrir el IDE, copie la URL en la barra de direcciones del navegador. Esta URL debe estar en el formato `https://xxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab`. Cierre la pestaña.

1. En una pestaña nueva, pegue la URL y elimine todo lo que aparezca quedado después de `https://xxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab`.

1. Agregue `?reset` al final de la URL para que tenga el formato `https://xxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab?reset`.

1. Vaya a la URL actualizada. Con esto se consigue que se restablezca el estado guardado de la interfaz de usuario y que el IDE de Studio Lab responda.

# Amazon SageMaker Canvas
<a name="canvas"></a>

Amazon SageMaker Canvas le permite utilizar el aprendizaje automático para generar predicciones sin necesidad de escribir ningún código. A continuación, se muestran algunos casos de uso en los que puede utilizar SageMaker Canvas:
+ Predicción del abandono de clientes
+ Planificar el inventario de manera eficiente
+ Optimizar los precios y los ingresos
+ Mejorar las entregas puntuales
+ Clasificar el texto o las imágenes en función de categorías personalizadas
+ Identificar los objetos y el texto de las imágenes
+ Extraer información de los documentos

Con Canvas, puede chatear con modelos de lenguajes extensos populares (LLMs), acceder a Ready-to-use modelos o crear un modelo personalizado basado en sus datos.

El chat de Canvas es una funcionalidad que aprovecha el código abierto y Amazon LLMs para ayudarte a aumentar tu productividad. Puede solicitar a los modelos que obtengan ayuda con tareas como generar contenido, resumir o categorizar documentos y responder preguntas. Para obtener más información, consulte [Modelos básicos de IA generativa en Canvas SageMaker](canvas-fm-chat.md).

Los [Ready-to-use modelos](canvas-ready-to-use-models.md) de Canvas pueden extraer información de sus datos para una variedad de casos de uso. [No es necesario crear un modelo para usar Ready-to-use modelos, ya que funcionan con los servicios de IA de Amazon, incluidos Amazon [Rekognition](https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html)[, Amazon Textract](https://docs.aws.amazon.com/textract/latest/dg/what-is.html) y Amazon Comprehend.](https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html) Solo tiene que importar sus datos y empezar a utilizar una solución para generar predicciones.

Si desea un modelo que esté personalizado para su caso de uso y entrenado con sus datos, puede [crear un modelo](canvas-custom-models.md). Puede obtener predicciones personalizadas para sus datos por medio de uno de los siguientes procedimientos:

1. Importación de los datos de una o más fuentes de datos.

1. Creación de un modelo predictivo.

1. Evaluación del desempeño del modelo.

1. Generación de predicciones con el modelo.

Canvas admite los siguientes tipos de modelos personalizados:
+ Predicción numérica (también conocida como *regresión*)
+ Predicción categórica para 2, 3 o más categorías (también conocida como clasificación *binaria* y *multiclase*)
+ Previsión de serie temporal
+ Predicción de imágenes de etiqueta única (también conocida como *clasificación de imágenes*)
+ Predicción de texto multicategoría (también conocida como *clasificación de texto multiclase*)

[Para obtener más información sobre los precios, consulte la página de precios de Canvas. SageMaker ](https://aws.amazon.com/sagemaker/canvas/pricing/) También puede consultar [Facturación y costes en SageMaker Canvas](canvas-manage-cost.md) para obtener más información.

SageMaker Actualmente, Canvas está disponible en las siguientes regiones:
+ Este de EE. UU. (Ohio)
+ Este de EE. UU. (Norte de Virginia)
+ Oeste de EE. UU. (Norte de California)
+ Oeste de EE. UU. (Oregón)
+ Asia-Pacífico (Bombay)
+ Asia-Pacífico (Seúl)
+ Asia-Pacífico (Singapur)
+ Asia-Pacífico (Sídney)
+ Asia-Pacífico (Tokio)
+ Canadá (centro)
+ Europa (Fráncfort)
+ Europa (Irlanda)
+ Europa (Londres)
+ Europa (París)
+ Europa (Estocolmo)
+ América del Sur (São Paulo)

**Topics**
+ [¿Es la primera vez que utiliza SageMaker Canvas?](#canvas-first-time-user)
+ [Cómo empezar a usar Amazon SageMaker Canvas](canvas-getting-started.md)
+ [Tutorial: Cree un flujo de trabajo end-to-end de aprendizaje automático en SageMaker Canvas](canvas-end-to-end-machine-learning-workflow.md)
+ [Administración de permisos y configuración de Amazon SageMaker Canvas (para administradores de TI)](canvas-setting-up.md)
+ [Asistencia de la IA generativa para resolver problemas de machine learning en Canvas con Amazon Q Developer](canvas-q.md)
+ [Importación de datos](canvas-importing-data.md)
+ [Preparación de datos](canvas-data-prep.md)
+ [Modelos básicos de IA generativa en Canvas SageMaker](canvas-fm-chat.md)
+ [Ready-to-use modelos](canvas-ready-to-use-models.md)
+ [Modelos personalizados](canvas-custom-models.md)
+ [Cerrar sesión en Amazon SageMaker Canvas](canvas-log-out.md)
+ [Limitaciones y solución de problemas](canvas-limits.md)
+ [Facturación y costes en SageMaker Canvas](canvas-manage-cost.md)

## ¿Es la primera vez que utiliza SageMaker Canvas?
<a name="canvas-first-time-user"></a>

Si es la primera vez que utiliza SageMaker Canvas, le recomendamos que comience leyendo las siguientes secciones:
+ Para administradores de TI - [Administración de permisos y configuración de Amazon SageMaker Canvas (para administradores de TI)](canvas-setting-up.md)
+ Para analistas y usuarios individuales - [Cómo empezar a usar Amazon SageMaker Canvas](canvas-getting-started.md)
+ Para ver un ejemplo de flujo de trabajo de principio a fin: [Tutorial: Cree un flujo de trabajo end-to-end de aprendizaje automático en SageMaker Canvas](canvas-end-to-end-machine-learning-workflow.md)

# Cómo empezar a usar Amazon SageMaker Canvas
<a name="canvas-getting-started"></a>

Esta guía le indica cómo empezar a usar SageMaker Canvas. Si es administrador de TI y desea obtener información más detallada, consulte [Administración de permisos y configuración de Amazon SageMaker Canvas (para administradores de TI)](canvas-setting-up.md) Cómo configurar SageMaker Canvas para sus usuarios.

**Topics**
+ [Requisitos previos para configurar Amazon Canvas SageMaker](#canvas-prerequisites)
+ [Paso 1: Inicie sesión en Canvas SageMaker](#canvas-getting-started-step1)
+ [Paso 2: Usa SageMaker Canvas para obtener predicciones](#canvas-getting-started-step2)

## Requisitos previos para configurar Amazon Canvas SageMaker
<a name="canvas-prerequisites"></a>

Para configurar una aplicación de SageMaker Canvas, incorpórela mediante uno de los siguientes métodos de configuración:

1. **A bordo con la AWS consola.** Para realizar la integración a través de la AWS consola, primero debes crear un dominio de Amazon SageMaker AI. SageMaker Los dominios de IA son compatibles con diversos entornos de aprendizaje automático (ML), como Canvas y [SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html). Para obtener más información sobre dominios, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

   1. (Rápido) [Utilice la configuración rápida para Amazon SageMaker AI](onboard-quick-start.md): elija esta opción si desea configurar rápidamente un dominio. Esto le otorga al usuario todos los permisos predeterminados y todas las funciones básicas de Canvas. Un administrador puede habilitar más adelante características adicionales, como [consulta de documentos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html#canvas-fm-chat-query). Si desea configurar permisos más detallados, le recomendamos que elija la opción Avanzada en su lugar.

   1. (Estándar) [Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md): elija esta opción si desea completar una configuración más avanzada del dominio. Mantenga un control detallado de los permisos de los usuarios, como acceso a las características de preparación de datos, funcionalidad de IA generativa e implementación de modelos. 

1. **Incorpore con CloudFormation.** [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)automatiza el aprovisionamiento de recursos y configuraciones para que pueda configurar Canvas para uno o más perfiles de usuario al mismo tiempo. Utilice esta opción si desea automatizar el proceso de incorporación a escala y asegurarse de que las aplicaciones estén configuradas siempre de la misma manera. La siguiente [CloudFormation plantilla](https://github.com/aws-samples/cloudformation-studio-domain) proporciona una forma simplificada de incorporarse a Canvas, lo que garantiza que todos los componentes necesarios estén configurados correctamente y le permite centrarse en crear e implementar sus modelos de aprendizaje automático.

La siguiente sección describe cómo incorporarse a Canvas mediante la AWS consola para crear un dominio.

**importante**  
Para configurar Amazon SageMaker Canvas, tu versión de Amazon SageMaker Studio debe ser la 3.19.0 o posterior. Para obtener información sobre la actualización de Amazon SageMaker Studio, consulte[Cierre y actualice Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

### Incorporado con la AWS consola
<a name="canvas-prerequisites-domain"></a>

Si está realizando la configuración de dominio rápida, puede seguir las instrucciones que aparecen en [Utilice la configuración rápida para Amazon SageMaker AI](onboard-quick-start.md), saltarse el resto de esta sección y continuar con [Paso 1: Inicie sesión en Canvas SageMaker](#canvas-getting-started-step1).

Si está realizando la configuración de dominio estándar, puede especificar las características de Canvas a las que desea conceder acceso a sus usuarios. Utilice el resto de esta sección mientras completa la configuración de dominio estándar como ayuda para configurar los permisos específicos de Canvas.

En las instrucciones de configuración de [Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md), en el **paso 2: usuarios y actividades de ML**, debe seleccionar los permisos de Canvas que desea conceder. En la sección **Actividades de ML** puede seleccionar las siguientes políticas de permisos para conceder acceso a características de Canvas. Solo puede seleccionar un total de 8 **Actividades de ML** al configurar el dominio. Los dos primeros permisos de la siguiente lista son necesarios para usar Canvas, mientras que el resto son para características adicionales.
+ **Ejecutar aplicaciones de Studio**: estos permisos son necesarios para iniciar la aplicación de Canvas.
+ **[Acceso a Canvas Core](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)**: estos permisos permiten acceder a la aplicación de Canvas y a las funciones básicas de Canvas, como creación de conjuntos de datos, uso de transformaciones de datos básicas y creación y análisis de modelos.
+ (Opcional) **[Preparación de datos de Canvas (con tecnología de Data Wrangler)](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)**: estos permisos permiten crear flujos de datos y utilizar transformaciones avanzadas para preparar los datos en Canvas. Estos permisos también son necesarios para crear trabajos de procesamiento de datos y cronogramas de trabajos de preparación de datos.
+ **[Servicios de IA de Canvas](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasAIServicesAccess.html)** (opcionales): estos permisos le permiten acceder a los Ready-to-use modelos, los modelos básicos y las funciones de chat con datos de Canvas.
+ (Opcional) **Acceso a Kendra**: este permiso le otorga acceso a la característica de [consulta de documentos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html#canvas-fm-chat-query), en la que puede consultar documentos almacenados en un índice de Amazon Kendra utilizando modelos fundacionales de Canvas.

  Si selecciona esta opción, en la sección **Canvas Kendra Access**, introduzca los índices IDs de Amazon Kendra a los que quiere conceder acceso.
+ (Opcional) **[Canvas MLOps](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDirectDeployAccess.html)**: este permiso le otorga acceso a la función de [implementación de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-deploy-model.html) en Canvas, donde puede implementar modelos para usarlos en producción.

En la sección **Paso 3: Aplicaciones** de la configuración del dominio, elija **Configurar Canvas** y, a continuación, haga lo siguiente:

1.  En **Configuración de almacenamiento de Canvas**, especifique dónde desea que Canvas almacene los datos de la aplicación, como los artefactos del modelo, las predicciones por lotes, los conjuntos de datos y los registros. SageMaker La IA crea una `Canvas/` carpeta dentro de este depósito para almacenar los datos. Para obtener más información, consulte [Configurar el almacenamiento de Amazon S3](canvas-storage-configuration.md). En esta sección, hará lo siguiente:

   1. Seleccione **Administrado por el sistema** si desea establecer la ubicación en el depósito predeterminado SageMaker creado por la IA que sigue el patrón. `s3://sagemaker-{Region}-{your-account-id}`

   1. Seleccione **Personalizado S3** para especificar su propio bucket de Amazon S3 como ubicación de almacenamiento. A continuación, introduzca el URI de Amazon S3.

   1. (Opcional) Para la **Clave de cifrado**, especifique una clave KMS para cifrar los artefactos de Canvas almacenados en la ubicación especificada.

1. (Opcional) Para **Amazon Q Developer**, haga lo siguiente:

   1. Active la **opción Habilitar Amazon Q Developer in SageMaker Canvas para el aprendizaje automático en lenguaje natural para** dar a sus usuarios permisos para aprovechar la asistencia generativa de IA durante su flujo de trabajo de aprendizaje automático en Canvas. Esta opción solo concede permisos para solicitar ayuda a Amazon Q Developer con tareas predeterminadas que se pueden completar en la aplicación de Canvas.

   1. **Activa la opción Activar el chat para desarrolladores de Amazon Q para AWS preguntas generales** a fin de dar a tus usuarios permisos para realizar consultas generativas de IA relacionadas con los AWS servicios.

1. (Opcional) Configure la sección **Procesamiento de datos de gran tamaño** si sus usuarios tienen previsto procesar conjuntos de datos de más de 5 GB en Canvas. Para obtener más información acerca de cómo configurar estas opciones, consulte [Concesión de permisos a los usuarios para usar datos de gran tamaño durante todo el ciclo de vida de ML](canvas-large-data-permissions.md).

1. (Opcional) Para la sección de **Configuración de permisos de ML Ops**, haga lo siguiente:

   1. Deje activada la opción **Habilitar el despliegue directo de modelos de Canvas** para conceder a sus usuarios permisos para implementar sus modelos desde Canvas en un terminal de SageMaker IA. Para obtener más información sobre la implementación de modelos en Canvas, consulte [Implementación de sus modelos en un punto de conexión](canvas-deploy-model.md).

   1. Deje activada la opción **Habilitar los permisos de registro de modelos para todos los usuarios** para que sus usuarios puedan registrar su versión de modelo en el registro de modelos de SageMaker IA (está activada de forma predeterminada). Para obtener más información, consulte [Registre una versión del modelo en el registro de modelos de IA SageMaker](canvas-register-model.md).

   1. Si ha dejado activada la opción **Habilitar permisos de registro del registro de modelos para todos los usuarios**, seleccione **Registrar solo en el registro de modelos** o **Registrar y aprobar modelo en el registro de modelos**.

1. (Opcional) En la sección **Configuración de carga de archivos locales**, active la opción **Habilitar carga de archivos locales** para que los usuarios tengan permiso para cargar archivos a Canvas desde sus máquinas locales. Al activar esta opción, se asocia una política de intercambio de recursos entre orígenes (CORS) al bucket de Amazon S3 especificado en **Configuración de almacenamiento de Canvas** (y anula cualquier política de CORS existente). Para obtener más información sobre permisos de carga de archivos locales, consulte [Concesión a sus usuarios de permisos para cargar sus archivos de forma local](canvas-set-up-local-upload.md).

1. (Opcional) Para la sección de **OAuth configuración**, haga lo siguiente:

   1. Seleccione **Añadir OAuth configuración**.

   1. En **Origen de datos**, seleccione el origen de datos.

   1. En **Configuración del secreto**, seleccione **Crear un nuevo secreto** e introduzca la información que tenga del proveedor de identidad. Si aún no ha realizado la OAuth configuración inicial con la fuente de datos, consulte[Configure las conexiones a las fuentes de datos con OAuth](canvas-setting-up-oauth.md).

1. (Opcional) Para la **configuración de Ready-to-use los modelos Canvas**, haga lo siguiente:

   1. Deje activada la opción **Habilitar Ready-to-use modelos de Canvas** para dar a sus usuarios permisos para generar predicciones con Ready-to-use modelos en Canvas (está activada de forma predeterminada). Esta opción también le da permisos para chatear con modelos basados en IA generativa. Para obtener más información, consulte [Modelos básicos de IA generativa en Canvas SageMaker](canvas-fm-chat.md).

   1. Deje activada la opción **Habilitar la consulta de documentos con Amazon Kendra** para conceder a sus usuarios permisos para utilizar modelos fundacionales para consultar documentos almacenados en un índice de Amazon Kendra. A continuación, en el menú desplegable, seleccione los índices existentes a los que desea conceder acceso. Para obtener más información, consulte [Modelos básicos de IA generativa en Canvas SageMaker](canvas-fm-chat.md).

   1. En **Rol de Amazon Bedrock**, seleccione **Crear y usar un rol de ejecución nuevo** para crear un nuevo rol de ejecución de IAM que tenga una relación de confianza con Amazon Bedrock. Amazon Bedrock asume esta función de IAM para ajustar los modelos de lenguaje de gran tamaño () LLMs en Canvas. Si ya tiene un rol de ejecución con una relación de confianza, seleccione **Usar un rol de ejecución existente** y elija un rol en el menú desplegable. Para obtener más información sobre la configuración manual de los permisos para su propio rol de ejecución, consulte [Concesión de permisos a los usuarios para usar características de Amazon Bedrock e IA generativa en Canvas](canvas-fine-tuning-permissions.md).

1. Termine de configurar el resto de los ajustes del dominio mediante los procedimientos de [Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md).

**nota**  
Si tiene algún problema a la hora de conceder permisos a través de la consola, como los permisos para Ready-to-use modelos, consulte el tema. [Solución de problemas relacionados con la concesión de permisos a través de la consola de SageMaker IA](canvas-limits.md#canvas-troubleshoot-trusted-services)

Ahora debería tener un dominio de SageMaker IA configurado y todos los permisos de Canvas configurados.

Puede editar los permisos de Canvas para un dominio o un usuario específico después de la configuración inicial del dominio. La configuración de usuarios individuales anula la configuración del dominio. Para obtener información sobre cómo editar sus permisos de Canvas en la configuración del dominio, consulte [Edición de la configuración del dominio](domain-edit.md).

### Concederse permisos para usar funciones específicas en Canvas
<a name="canvas-prerequisites-permissions"></a>

La siguiente información describe los distintos permisos que puede conceder a un usuario de Canvas para permitir el uso de diversas características y funcionalidades de Canvas. Algunos de estos permisos se pueden conceder durante la configuración del dominio, pero otros requieren permisos o configuración adicionales. Consulte la información de permisos específicos de cada característica que desee habilitar:
+ **Carga de archivos locales.** Los permisos para la carga de archivos local están activados de forma predeterminada en los permisos básicos de Canvas al configurar su dominio. Si no puede cargar archivos locales de su máquina a SageMaker Canvas, puede adjuntar una política CORS al depósito de Amazon S3 que especificó en la configuración de almacenamiento de Canvas. Si permitió que SageMaker AI usara el depósito predeterminado, el depósito seguirá el patrón `s3://sagemaker-{Region}-{your-account-id}` de nomenclatura. Para obtener más información, consulte [Concesión a sus usuarios de permisos para cargar archivos locales](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-set-up-local-upload.html).
+ **Modelos personalizados de predicción de imágenes y textos.** Los permisos para la carga local de archivos están activados de forma predeterminada en los permisos básicos de Canvas al configurar su dominio. Sin embargo, si tiene una configuración de IAM personalizada y no quiere adjuntar la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)política a la función de ejecución de IAM de su usuario, debe concederle de forma explícita los permisos necesarios. Para obtener más información, consulte [Concesión de permisos a sus usuarios para crear modelos personalizados de predicción de imágenes y textos](canvas-set-up-cv-nlp.md).
+ **Ready-to-use modelos y modelos básicos.** Es posible que desee utilizar los Ready-to-use modelos de Canvas para hacer predicciones para sus datos. Con los permisos de los Ready-to-use modelos, también puede chatear con modelos generativos impulsados por IA. Los permisos están activados de forma predeterminada al configurar el dominio, o puede editar los permisos de un dominio que ya haya creado. La opción de permisos de Ready-to-use modelos de Canvas añade la política de [AmazonSageMakerCanvasAIServicesacceso a](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) su función de ejecución. Para obtener más información, consulte la [Introducción](canvas-ready-to-use-models.md#canvas-ready-to-use-get-started) sección de la documentación de Ready-to-use los modelos.

  Para obtener más información sobre cómo comenzar a trabajar con los modelos fundacionales de IA generativa, consulte [Modelos básicos de IA generativa en Canvas SageMaker](canvas-fm-chat.md).
+ **Afine modelos fundacionales.** Si desea afinar modelos fundacionales en Canvas, puede agregar los permisos al configurar su dominio o editar los permisos del dominio o perfil de usuario después de crear el dominio. Debe añadir la política de [AmazonSageMakerCanvasAIServicesacceso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) a la función de AWS IAM que eligió al configurar el perfil de usuario y también debe añadir una relación de confianza con Amazon Bedrock a la función. Para obtener instrucciones sobre cómo agregar estos permisos a su rol de IAM, consulte [Concesión de permisos a los usuarios para usar características de Amazon Bedrock e IA generativa en Canvas](canvas-fine-tuning-permissions.md). 
+ **Envíe las predicciones por lotes a Quick.** Es posible que desee [enviar *las predicciones por lotes*](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-send-predictions.html), o conjuntos de datos de predicciones que genere a partir de un modelo personalizado, a Quick para su análisis. En [QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html), puede crear y publicar paneles predictivos con los resultados de sus predicciones. Para obtener instrucciones sobre cómo agregar estos permisos a la función de IAM de su usuario de Canvas, consulte [Otorgue a sus usuarios permisos para enviar predicciones a Quick](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-quicksight-permissions.html).
+ **Implemente modelos de Canvas en un punto final de SageMaker IA.** SageMaker AI Hosting ofrece *puntos finales* que puede utilizar para implementar su modelo y usarlo en producción. Puede implementar modelos creados en Canvas en un punto final de SageMaker IA y, luego, hacer predicciones mediante programación en un entorno de producción. Para obtener más información, consulte [Implementación de sus modelos en un punto de conexión](canvas-deploy-model.md).
+ **Registro de versiones de modelos en el registro de modelos.** Es posible que desee registrar *las versiones* de su modelo en el [registro de modelos de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html), que es un repositorio para rastrear el estado de las versiones actualizadas de su modelo. Un científico de datos o un MLOps equipo que trabaje en el Registro de SageMaker modelos puede ver las versiones del modelo que haya creado y aprobarlas o rechazarlas. Luego, se puede implementar la versión de su modelo en producción o iniciar un flujo de trabajo automatizado. Los permisos de registro de modelos están activados de forma predeterminada para su dominio. Puede administrar los permisos en el nivel del perfil de usuario y conceder o eliminar permisos a usuarios específicos. Para obtener más información, consulte [Registre una versión del modelo en el registro de modelos de IA SageMaker](canvas-register-model.md).
+ **Importación de datos de Amazon Redshift** Si desea importar datos de Amazon Redshift, debe concederse permisos adicionales. Debe añadir la política `AmazonRedshiftFullAccess` gestionada a la función de AWS IAM que eligió al configurar el perfil de usuario. Para obtener instrucciones sobre cómo agregar la política al rol, consulte [Concesión a los usuarios de permisos para importar datos de Amazon Redshift](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-redshift-permissions.html).

**nota**  
Los permisos necesarios para importar a través de otras fuentes de datos, como Amazon Athena y las plataformas SaaS, se incluyen en las políticas y. [AmazonSageMakerFullAccess[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) Si ha seguido las instrucciones de configuración estándares, estas políticas ya deberían estar asociadas a su función de ejecución. Para obtener más información acerca de estos orígenes de datos y sus permisos, consulte [Conexión con orígenes de datos](canvas-connecting-external.md).

## Paso 1: Inicie sesión en Canvas SageMaker
<a name="canvas-getting-started-step1"></a>

Cuando se complete la configuración inicial, podrá acceder a SageMaker Canvas con cualquiera de los siguientes métodos, según su caso de uso:
+ En la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker/), elige **Canvas** en el panel de navegación izquierdo. A continuación, en la página de **Canvas**, seleccione su usuario en el menú desplegable e inicie la aplicación de Canvas.
+ Abre [SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) y, en la interfaz de Studio, ve a la página de Canvas e inicia la aplicación Canvas.
+ Utilice los métodos de inicio de sesión único basados en SAML 2.0 de su organización, como Okta o Centro de identidades de IAM.

Cuando inicia sesión en SageMaker Canvas por primera vez, la SageMaker IA crea la aplicación y un *espacio* de SageMaker IA para usted. Los datos de la aplicación de Canvas se almacenan en el espacio. Para obtener más información sobre espacios, consulte [Colaboración con espacios compartidos](domain-space.md). El espacio consta de las aplicaciones de su perfil de usuario y un directorio compartido para todos los datos de sus aplicaciones. Si no desea utilizar el espacio predeterminado creado por la SageMaker IA y prefiere crear su propio espacio para almacenar los datos de la aplicación, consulte la página[Guarde los datos de las aplicaciones de SageMaker Canvas en su propio espacio de IA SageMaker](canvas-spaces-setup.md).

## Paso 2: Usa SageMaker Canvas para obtener predicciones
<a name="canvas-getting-started-step2"></a>

Después de iniciar sesión en Canvas, puede empezar a crear modelos y generar predicciones para sus datos.

Puede usar Ready-to-use los modelos de Canvas para hacer predicciones sin crear un modelo, o puede crear un modelo personalizado para su problema empresarial específico. Revise la siguiente información para decidir si Ready-to-use los modelos o los modelos personalizados son los mejores para su caso de uso.
+ **Ready-to-use modelos.** Con Ready-to-use los modelos, puede usar modelos prediseñados para extraer información de sus datos. Los Ready-to-use modelos cubren una variedad de casos de uso, como la detección del idioma y el análisis de documentos. Para empezar a hacer predicciones con Ready-to-use modelos, consulte[Ready-to-use modelos](canvas-ready-to-use-models.md).
+ **Modelos personalizados.** Con los modelos personalizados, puede crear una variedad de tipos de modelos que se personalizan para realizar predicciones para sus datos. Utilice modelos personalizados si desea crear un modelo que se entrene con datos específicos de su empresa y si desea utilizar características como la [evaluación del rendimiento de su modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html). Para empezar a crear un modelo personalizado, consulte [Modelos personalizados](canvas-custom-models.md).

# Tutorial: Cree un flujo de trabajo end-to-end de aprendizaje automático en SageMaker Canvas
<a name="canvas-end-to-end-machine-learning-workflow"></a>

Este tutorial le guía a través de un flujo de trabajo de aprendizaje end-to-end automático (ML) con Amazon SageMaker Canvas. SageMaker Canvas es una interfaz visual sin código que puede usar para preparar datos y entrenar e implementar modelos de aprendizaje automático. En el tutorial se utiliza un conjunto de datos de taxis de Nueva York para entrenar un modelo que prediga el importe de un recorrido determinado. Obtendrá experiencia práctica en tareas clave del aprendizaje automático, como evaluar la calidad de los datos y abordar los problemas relacionados con los datos, dividir los datos en conjuntos de entrenamiento y prueba, entrenar y evaluar modelos, hacer predicciones e implementar su modelo entrenado, todo ello desde la aplicación Canvas. SageMaker 

**importante**  
En este tutorial se supone que usted o su administrador han creado una cuenta. AWS Para obtener información sobre cómo crear una AWS cuenta, consulte [Primeros pasos: ¿es la primera vez que lo AWS usa?](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html)

## Configuración
<a name="canvas-tutorial-setting-up"></a>

Un dominio de Amazon SageMaker AI es un lugar centralizado para gestionar todos los entornos y recursos de Amazon SageMaker AI. Un dominio actúa como un límite virtual para su trabajo en el ámbito de la SageMaker IA, ya que proporciona aislamiento y control de acceso a sus recursos de aprendizaje automático (ML). 

Para empezar a utilizar Amazon SageMaker Canvas, usted o su administrador deben ir a la consola de SageMaker IA y crear un dominio de Amazon SageMaker AI. Un dominio tiene los recursos de almacenamiento y computación necesarios para ejecutar SageMaker Canvas. Dentro del dominio, puede configurar SageMaker Canvas para acceder a sus buckets de Amazon S3 e implementar modelos. Utilice el siguiente procedimiento para configurar un dominio rápido y crear una aplicación de SageMaker Canvas.

**Para configurar SageMaker Canvas**

1. Navegue hasta la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. En la barra de navegación de la izquierda, selecciona SageMaker Canvas.

1. Elige **Crear un dominio de SageMaker IA**.

1. Elija **Configurar**. El dominio puede tardar unos minutos en configurarse.

En el procedimiento anterior se ha utilizado una configuración rápida del dominio. Puede realizar una configuración avanzada para controlar todos los aspectos de la configuración de la cuenta, incluidos permisos, integraciones y cifrado. Para obtener más información sobre una configuración personalizada, consulte [Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md).

De forma predeterminada, la configuración rápida del dominio proporciona permisos para implementar modelos. Si tiene permisos personalizados configurados a través de un dominio estándar y necesita conceder manualmente permisos de implementación del modelo, consulte [Administración de permisos](canvas-deploy-model.md#canvas-deploy-model-prereqs).

## Creación de flujos
<a name="canvas-tutorial-flow-creation"></a>

Amazon SageMaker Canvas es una plataforma de aprendizaje automático que permite a los usuarios crear, entrenar e implementar modelos de aprendizaje automático sin necesidad de una amplia experiencia en programación o aprendizaje automático. Una de las potentes funciones de Amazon SageMaker Canvas es la capacidad de importar y trabajar con conjuntos de datos de gran tamaño de diversas fuentes, como Amazon S3.

En este tutorial, utilizamos el conjunto de datos de taxis de Nueva York para predecir el importe de la tarifa de cada viaje mediante un flujo de datos de Amazon SageMaker Canvas Data Wrangler. El siguiente procedimiento describe los pasos para importar una versión modificada del conjunto de datos de taxis de Nueva York a un flujo de datos.

**nota**  
Para mejorar el procesamiento, SageMaker Canvas importa una muestra de sus datos. De forma predeterminada, toma muestras aleatorias de 50 000 filas.

**Importación del conjunto de datos de taxis de Nueva York**

1. En la página de inicio de SageMaker Canvas, elige **Data Wrangler**.

1. Elija **Importar datos**.

1. Seleccione **Tabular**.

1. Elija la caja de herramientas situada junto al origen de datos.

1. Seleccione **Amazon S3** en el menú desplegable.

1. Para **Punto de conexión S3 de entrada**, especifique `s3://amazon-sagemaker-data-wrangler-documentation-artifacts/canvas-single-file-nyc-taxi-dataset.csv`

1. Elija **Ir**.

1. Seleccione la casilla de verificación junto al conjunto de datos.

1. Elija **Vista previa de datos**.

1. Seleccione **Save**.

## Informe de información y calidad de datos 1 (ejemplo)
<a name="canvas-tutorial-data-quality-insights-report-1"></a>

Tras importar un conjunto de datos a Amazon SageMaker Canvas, puede generar un informe de información y calidad de los datos a partir de una muestra de los datos. Utilícelo para proporcionar información valiosa sobre el conjunto de datos. El informe hace lo siguiente:
+ Evalúa la integridad del conjunto de datos
+ Identifica los valores omitidos y atípicos

Puede identificar otros posibles problemas que pueden afectar al rendimiento del modelo. También evalúa el poder predictivo de cada característica en relación con la variable objetivo, lo que le permite identificar las características más relevantes para el problema que está intentando resolver.

Podemos utilizar la información del informe para predecir el importe del recorrido. Si especifica la columna **Importe del recorrido** como variable objetivo y selecciona **Regresión** como tipo de problema, el informe analizará la idoneidad del conjunto de datos para predecir valores continuos, como precios de recorridos. El informe debería revelar que características como **year** y **hour\$1of\$1day** tienen un bajo poder predictivo para la variable objetivo elegida, lo que le proporcionará información valiosa.

Siga este procedimiento para obtener un informe de información y calidad de los datos sobre una muestra de 50 000 filas del conjunto de datos.

**Obtención de un informe sobre una muestra**

1. Seleccione **Obtener información sobre los datos** en la ventana emergente situada junto al nodo **Tipos de datos**.

1. En **Nombre del análisis**, especifique un nombre para el informe.

1. En **Tipo de problema**, seleccione **Regresión**.

1. En **Columna de destino**, seleccione **Importe del recorrido**.

1. Seleccione **Crear**.

Puede revisar el informe de información y calidad de los datos sobre una muestra de sus datos. El informe indica que las características **year** y **hour\$1of\$1day** no predicen la variable objetivo, **Importe del recorrido**.

En la parte superior de la navegación, elija el nombre del flujo de datos para volver a él.

## Indique el año y la hora del día
<a name="canvas-tutorial-drop-year-and-hour-of-day"></a>

Estamos utilizando información del informe para quitar las columnas **year** y **hour\$1of\$1day** a fin de optimizar el espacio de características y, potencialmente, mejorar el rendimiento del modelo.

Amazon SageMaker Canvas proporciona una interfaz y herramientas fáciles de usar para realizar dichas transformaciones de datos.

Utilice el siguiente procedimiento para eliminar las columnas **year** y **hour\$1of\$1day** del conjunto de datos de taxis de Nueva York mediante la herramienta Data Wrangler de Amazon Canvas. SageMaker 

1. Elija el icono situado junto a **Tipos de datos**.

1. Seleccione **Agregar paso**.

1. En la barra de búsqueda, escriba **Quitar columna**.

1. Seleccione **Administrar columnas**.

1. Seleccione **Quitar columna**.

1. En **Columnas a quitar**, seleccione las columnas **year** y **hour\$1of\$1day**.

1. Seleccione **Vista previa** para ver cómo cambia los datos la transformación.

1. Elija **Añadir**.

Puede usar el procedimiento anterior como base para agregar todas las demás transformaciones en Canvas. SageMaker 

## Informe de información y calidad de los datos 2 (conjunto de datos completo)
<a name="canvas-tutorial-data-quality-insights-report-2"></a>

Para el informe de información anterior hemos utilizado una muestra del conjunto de datos de taxis de Nueva York. Para el segundo informe realizamos un análisis exhaustivo de todo el conjunto de datos para identificar los posibles problemas que afectan al rendimiento del modelo.

Siga este procedimiento para crear un informe de información y calidad de los datos sobre un conjunto de datos completo.

**Obtención de un informe sobre todo el conjunto de datos**

1. Elija el icono situado junto al nodo **Quitar columnas**.

1. Elija **Obtener información sobre los datos**.

1. En **Nombre del análisis**, especifique un nombre para el informe.

1. En **Tipo de problema**, seleccione **Regresión**.

1. En **Columna de destino**, seleccione **Importe del recorrido**.

1. En **Tamaño de datos**, seleccione **Conjunto de datos completo**.

1. Seleccione **Crear**.

Esta es una imagen del informe de información:

![\[Filas duplicadas, objetivo sesgado y puntuación muy baja del modelo rápido aparecen como insightsP\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/canvas-tutorial-dqi-insights.png)


Se muestran los problemas siguientes:
+ Filas duplicadas
+ Objetivo sesgado

Las filas duplicadas pueden provocar fuga de datos, ya que el modelo queda expuesto a los mismos datos durante el entrenamiento y las pruebas. Pueden producir métricas de rendimiento demasiado optimistas. Al eliminar filas duplicadas, se garantiza que el modelo se entrene con instancias únicas, lo que reduce el riesgo de fuga de datos y mejora la capacidad del modelo para generalizar.

Una distribución sesgada de las variables objetivo, en este caso, la columna del **Importe del recorrido**, puede dar lugar a clases desequilibradas, y el modelo podría sesgarse hacia la clase mayoritaria. Esto puede provocar un bajo rendimiento en las clases minoritarias, lo que resulta particularmente problemático en escenarios en los que es importante predecir con precisión instancias poco frecuentes o infrarrepresentados.

## Solución de problemas de calidad de los datos
<a name="canvas-tutorial-addressing-data-quality-issues"></a>

Para abordar estos problemas y preparar el conjunto de datos para el modelado, puede buscar las siguientes transformaciones y aplicarlas:

1. Quite los duplicados mediante la transformación **Administrar filas**.

1. **Controle los valores atípicos** en la columna **Importe del recorrido** utilizando los **Valores atípicos numéricos de desviación estándar robusta**.

1. **Gestione valores atípicos** en las columnas **Distancia del recorrido** y **Duración del recorrido** utilizando los **Valores atípicos numéricos de desviación estándar**.

1. Use la **Codificación categórica** para codificar las columnas **Id. de código de importe**, **Tipo de pago**, **Indicador adicional** e **Indicador de peaje** como flotantes.

Si no está seguro de cómo aplicar una transformación, consulte [Indique el año y la hora del día](#canvas-tutorial-drop-year-and-hour-of-day).

Al abordar estos problemas de calidad de los datos y aplicar las transformaciones adecuadas, puede mejorar la idoneidad del conjunto de datos para modelado.

## Verificación de la calidad de los datos y la exactitud del modelo rápido
<a name="canvas-tutorial-verifying-data-quality-and-quick-model-accuracy"></a>

Tras aplicar las transformaciones para abordar problemas de calidad de los datos, como eliminación de filas duplicadas, creamos nuestro informe final de información y calidad de los datos. Este informe ayuda a comprobar que las transformaciones aplicadas han resuelto los problemas y que el conjunto de datos se encuentra ahora en un estado adecuado para el modelado.

Al revisar el informe final de información y calidad de los datos es de esperar que no se detecte ningún problema importante en la calidad de los datos. El informe debería indicar que:
+ La variable objetivo ya no está sesgada
+ No hay valores atípicos ni filas duplicadas

Además, el informe debe proporcionar una puntuación del modelo rápido basada en un modelo entrenado de referencia en el conjunto de datos transformado. Esta puntuación sirve de indicador inicial de la exactitud y el rendimiento potenciales del modelo.

Siga este procedimiento para crear el informe de información y calidad de los datos.

**Creación del informe de información y calidad de los datos**

1. Elija el icono situado junto al nodo **Quitar columnas**.

1. Elija **Obtener información sobre los datos**.

1. En **Nombre del análisis**, especifique un nombre para el informe.

1. En **Tipo de problema**, seleccione **Regresión**.

1. En **Columna de destino**, seleccione **Importe del recorrido**.

1. En **Tamaño de datos**, seleccione **Conjunto de datos completo**.

1. Seleccione **Crear**.

## División de los datos en conjuntos de entrenamiento y prueba.
<a name="canvas-tutorial-split-data"></a>

Para entrenar un modelo y evaluar su rendimiento, utilizamos la transformación de **Dividir datos** para dividir los datos en conjuntos de entrenamiento y prueba.

De forma predeterminada, SageMaker Canvas usa una división aleatoria, pero también puede usar los siguientes tipos de divisiones:
+ Ordenada
+ Estratificada
+ División por clave

Puede cambiar el **Porcentaje de división** o añadir divisiones.

En este tutorial, utilice la configuración predeterminada en la división. Debe hacer doble clic en el conjunto de datos para ver su nombre. El conjunto de datos de entrenamiento tiene el nombre **Conjunto de datos (entrenamiento)**.

Junto al nodo de **Codificación ordinal**, aplique la transformación **Dividir datos**.

## Entrenamiento del modelo
<a name="canvas-tutorial-train-model"></a>

Después de dividir los datos, puede entrenar un modelo. Este modelo aprende de los patrones de los datos. Puede usarlo para hacer predicciones o descubrir información.

SageMaker Canvas tiene compilaciones rápidas y compilaciones estándar. Utilice una compilación estándar para entrenar el modelo con mejor rendimiento sobre los datos.

Antes de empezar a entrenar un modelo, primero debe exportar el conjunto de datos de entrenamiento como un conjunto de datos de SageMaker Canvas.

**Importación del conjuntos de datos**

1. Junto al nodo del conjunto de datos de entrenamiento, elija el icono y seleccione **Exportar**.

1. Seleccione el **conjunto de datos de SageMaker Canvas**.

1. Elija **Exportar** para exportar el conjunto de datos.

Después de crear un conjunto de datos, puede entrenar un modelo en el conjunto de datos de SageMaker Canvas que ha creado. Para obtener más información sobre el entrenamiento de un modelo, consulte [Creación de un modelo de predicción numérica o categórica personalizado](canvas-build-model-how-to.md#canvas-build-model-numeric-categorical).

## Evaluación del modelo y predicciones
<a name="canvas-tutorial-evaluate-model-and-make-predictions"></a>

Después de entrenar el modelo de machine learning, es fundamental evaluar su rendimiento para garantizar que cumpla sus requisitos y funcione bien con datos no vistos. Amazon SageMaker Canvas proporciona una interfaz fácil de usar para evaluar la precisión del modelo, revisar sus predicciones y obtener información sobre sus puntos fuertes y débiles. Puede utilizar la información obtenida para tomar decisiones informadas sobre su implementación y las posibles áreas de mejora.

Siga este procedimiento para evaluar un modelo antes de implementarlo.

**Para evaluar un modelo**

1. Seleccione **Mis modelos**.

1. Elija el modelo que ha creado.

1. En **Versiones**, seleccione la versión correspondiente al modelo.

Ahora puede ver las métricas de evaluación del modelo.

Después de crear el modelo, puede hacer predicciones a partir de nuevos datos. Estamos usando el conjunto de datos de prueba que hemos creado.

Para usar el conjunto de datos de prueba para las predicciones, debemos convertirlo en un conjunto de datos de SageMaker Canvas. El conjunto de datos de SageMaker Canvas está en un formato que el modelo puede interpretar.

Utilice el siguiente procedimiento para crear un conjunto de datos de SageMaker Canvas a partir del conjunto de datos de prueba.

**Para crear un conjunto de datos de SageMaker Canvas**

1. Junto al **Conjunto de datos (prueba)**, elija el icono de radio.

1. Seleccione **Exportar**.

1. Seleccione el **conjunto de datos de SageMaker Canvas**.

1. En **Nombre del conjunto de datos**, especifique el nombre del conjunto de datos.

1. Seleccione **Exportar**.

Siga este procedimiento para hacer predicciones. Se da por sentado que todavía se encuentra en la página **Analizar**.

**Predicciones sobre el conjunto de datos de prueba**

1. Elija **Predecir**.

1. Elija **Manual**.

1. Seleccione el conjunto de datos que ha exportado.

1. Elija **Generar predicciones**.

1. Cuando SageMaker Canvas haya terminado de generar predicciones, selecciona el icono situado a la derecha del conjunto de datos.

1. Seleccione **Vista previa** para ver las predicciones.

## Implementación de un modelo
<a name="canvas-tutorial-deploy-a-model"></a>

Una vez evaluado el modelo, puede implementarlo en un punto de conexión. Puede enviar solicitudes al punto de conexión para obtener predicciones.

Siga este procedimiento para implementar un modelo. Se da por sentado que todavía se encuentra en la página **Predecir**.

**Implementación de un modelo**

1. Elija **Implementar**.

1. Elija **Crear implementación**.

1. Elija **Implementar**.

## Limpieza
<a name="canvas-tutorial-cleaning-up"></a>

Ha completado correctamente el tutorial. Para evitar incurrir en cargos adicionales, elimine los recursos que ya no utilice.

Utilice el procedimiento siguiente para eliminar el punto de conexión que ha creado. Se da por sentado que todavía se encuentra en la página **Implementar**.

**Para eliminar un punto de conexión**

1. Seleccione el botón de opción situado a la derecha de la implementación.

1. Seleccione **Eliminar implementación**.

1. Elija **Eliminar**.

Después de eliminar la implementación, elimine los conjuntos de datos que creó en SageMaker Canvas. Siga este procedimiento para eliminar los conjuntos de datos.

**Eliminación de los conjuntos de datos**

1. En el panel de navegación izquierdo, elija **Conjuntos de datos**.

1. Seleccione el conjunto de datos que ha analizado y el conjunto de datos sintético utilizado para predicciones.

1. Elija **Eliminar**.

Para evitar incurrir en cargos adicionales, debe cerrar sesión en Canvas. SageMaker Para obtener más información, consulte [Cerrar sesión en Amazon SageMaker Canvas](canvas-log-out.md).

# Administración de permisos y configuración de Amazon SageMaker Canvas (para administradores de TI)
<a name="canvas-setting-up"></a>

En las siguientes páginas se explica cómo los administradores de TI pueden configurar Amazon SageMaker Canvas y conceder permisos a los usuarios de sus organizaciones. Aprenderá a configurar el almacenamiento, gestionar el cifrado de datos y controlar el acceso a funciones específicas VPCs, como los modelos básicos de IA generativa, a integrarse con otros AWS servicios, como Amazon Redshift, y mucho más. Si sigue estos pasos, puede personalizar SageMaker Canvas para sus usuarios en función de los requisitos específicos de su organización.

También puede configurar SageMaker Canvas para sus usuarios con AWS CloudFormation. Para obtener más información, consulte [AWS:: SageMaker AI: :App](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-app.html) en la *Guía del AWS CloudFormation usuario*.

**Topics**
+ [Concesión a sus usuarios de permisos para cargar sus archivos de forma local](canvas-set-up-local-upload.md)
+ [Configure SageMaker Canvas para sus usuarios](setting-up-canvas-sso.md)
+ [Configurar el almacenamiento de Amazon S3](canvas-storage-configuration.md)
+ [Concesión de permisos para el almacenamiento de Amazon S3 entre cuentas](canvas-permissions-cross-account.md)
+ [Concesión de permisos a los usuarios para usar datos de gran tamaño durante todo el ciclo de vida de ML](canvas-large-data-permissions.md)
+ [Cifre sus datos de SageMaker Canvas con AWS KMS](canvas-kms.md)
+ [Guarde los datos de las aplicaciones de SageMaker Canvas en su propio espacio de IA SageMaker](canvas-spaces-setup.md)
+ [Concesión de permisos a sus usuarios para crear modelos personalizados de predicción de imágenes y textos](canvas-set-up-cv-nlp.md)
+ [Concesión de permisos a los usuarios para usar características de Amazon Bedrock e IA generativa en Canvas](canvas-fine-tuning-permissions.md)
+ [Actualice SageMaker Canvas para sus usuarios](canvas-update.md)
+ [Solicitud de un aumento de cuota](canvas-requesting-quota-increases.md)
+ [Concesión a los usuarios de permisos para importar datos de Amazon Redshift](canvas-redshift-permissions.md)
+ [Otorgue a sus usuarios permisos para enviar predicciones a Quick](canvas-quicksight-permissions.md)
+ [Administración de aplicaciones](canvas-manage-apps.md)
+ [Configurar Amazon SageMaker Canvas en una VPC sin acceso a Internet](canvas-vpc.md)
+ [Configure las conexiones a las fuentes de datos con OAuth](canvas-setting-up-oauth.md)

# Concesión a sus usuarios de permisos para cargar sus archivos de forma local
<a name="canvas-set-up-local-upload"></a>

Si sus usuarios están cargando archivos desde sus máquinas locales a SageMaker Canvas, debe adjuntar una configuración CORS (intercambio de recursos de origen cruzado) al bucket de Amazon S3 que estén utilizando. Al configurar o editar el dominio o el perfil de usuario de SageMaker AI, puede especificar una ubicación de Amazon S3 personalizada o la ubicación predeterminada, que es un bucket de Amazon S3 creado por SageMaker IA con un nombre que utiliza el siguiente patrón:`s3://sagemaker-{Region}-{your-account-id}`. SageMaker Canvas añade los datos de sus usuarios al depósito cada vez que suben un archivo.

Para conceder a los usuarios permisos para cargar archivos locales en el bucket, puede asociar una configuración de CORS mediante uno de los siguientes procedimientos. Puedes usar el primer método al editar la configuración de tu dominio, en el que puedes permitir que SageMaker AI adjunte la configuración del CORS al depósito por ti. También puede utilizar el primer método para editar un perfil de usuario dentro de un dominio. El segundo método es el manual, en el que puede asociar usted mismo la configuración de CORS al bucket.

## SageMaker Método de configuración del dominio de AI
<a name="canvas-set-up-local-upload-domain"></a>

Para conceder a sus usuarios permisos para cargar archivos locales, puede editar la configuración de la aplicación de Canvas en la configuración del dominio. Esto adjunta una configuración de uso compartido de recursos entre orígenes (CORS) al depósito Amazon S3 de la configuración de almacenamiento de Canvas y otorga a todos los usuarios del dominio permiso para cargar archivos locales en Canvas. SageMaker De forma predeterminada, la opción de permisos está activada al configurar un nuevo dominio, pero puede activarla y desactivarla según sea necesario.

**nota**  
Si tiene una configuración de CORS existente en el bucket de Amazon S3 de configuración de almacenamiento, al activar la opción de carga de archivos locales sobrescribe la configuración existente con la nueva configuración.

El siguiente procedimiento muestra cómo puede activar esta opción editando la configuración del dominio en la SageMaker consola AI.

1. Ve a la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación izquierdo, seleccione **Dominios**.

1. En la lista de dominios, seleccione su dominio.

1. En la página de detalles del dominio, elija la pestaña **Configuraciones de aplicaciones**.

1. Vaya a la sección **Canvas** y seleccione **Editar**.

1. Active el conmutador **Habilitar carga de archivos locales**. Se asociará la configuración de CORS y se otorgarán permisos de carga de archivos locales.

1. Seleccione **Enviar**.

Los usuarios del dominio especificado ahora deberían tener permisos de carga de archivos locales.

También puede conceder permisos a perfiles de usuario específicos en un dominio siguiendo el procedimiento anterior y accediendo a la configuración del perfil de usuario en lugar de la configuración general del dominio.

## Método con bucket de Amazon S3
<a name="canvas-set-up-local-upload-s3"></a>

Si desea adjuntar manualmente la configuración de CORS al bucket de Amazon S3 de SageMaker AI, utilice el siguiente procedimiento.

1. Inicie sesión en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Seleccione el bucket. Si su dominio usa el bucket predeterminado creado por SageMaker AI, el nombre del bucket usa el siguiente patrón:`s3://sagemaker-{Region}-{your-account-id}`.

1. Elija **Permisos**.

1. Vaya a **Uso compartido de recursos entre orígenes (CORS)**.

1. Elija **Editar**.

1. Añada la política de CORS siguiente.

   ```
   [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "POST"
           ],
           "AllowedOrigins": [
               "*"
           ],
           "ExposeHeaders": []
       }
   ]
   ```

1. Seleccione **Save changes (Guardar cambios)**.

En el procedimiento anterior, la política de CORS debe tener `"POST"` enumerado bajo `AllowedMethods`.

Una vez realizado el procedimiento, debería tener:
+ Un rol de IAM asignado a cada uno de sus usuarios.
+ Permisos de tiempo de ejecución de Amazon SageMaker Studio Classic para cada uno de sus usuarios. SageMaker Canvas usa Studio Classic para ejecutar los comandos de sus usuarios.
+ Si los usuarios cargan archivos desde sus máquinas locales, se asocia una política de CORS a su bucket de Amazon S3.

Si sus usuarios siguen sin poder cargar los archivos locales después de actualizar la política de CORS, es posible que el navegador esté almacenando en caché la configuración de CORS de un intento de carga anterior. Si tienen problemas, pídales que borren la memoria caché del navegador y que lo intenten de nuevo.

# Configure SageMaker Canvas para sus usuarios
<a name="setting-up-canvas-sso"></a>

Para configurar Amazon SageMaker Canvas, haz lo siguiente:
+ Crea un dominio de Amazon SageMaker AI.
+ Creación de perfiles de usuario para el dominio
+ Configure el inicio de sesión único de Okta (SSO de Okta) para sus usuarios.
+ Active el uso compartido de enlaces para los modelos.

Utilice el inicio de sesión único de Okta (Okta SSO) para conceder a sus usuarios acceso a Amazon Canvas. SageMaker SageMaker Canvas admite los métodos de SSO de SAML 2.0. Las siguientes secciones le guían por los procedimientos para configurar el SSO de Okta.

Para configurar un dominio, consulte [Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md) y siga las instrucciones para configurar su dominio mediante la autenticación de IAM. Puede utilizar la siguiente información como ayuda para completar el procedimiento de la sección:
+ Puede omitir el paso relativo a la creación de proyectos.
+ No es necesario proporcionar acceso a buckets de Amazon S3 adicionales. Sus usuarios pueden usar el bucket predeterminado que proporcionamos cuando creamos un rol.
+ Para permitir que sus usuarios puedan compartir sus cuadernos con los científicos de datos, active la **Configuración de uso compartido del bloc de notas**.
+ Utilice Amazon SageMaker Studio Classic, versión 3.19.0 o posterior. Para obtener información sobre la actualización de Amazon SageMaker Studio Classic, consulte[Cierre y actualice Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

Utilice el siguiente procedimiento para configurar Okta. Para todos los procedimientos siguientes, especifique el mismo rol de IAM para `IAM-role`.

## Añada la aplicación SageMaker Canvas a Okta
<a name="canvas-set-up-okta"></a>

Configure el método de inicio de sesión para Okta.

1. Inicia sesión en el panel de administración de Okta.

1. Elija **Agregar aplicación**. Busque **Federación de cuentas de AWS **.

1. Elija **Añadir**.

1. Opcional: cambia el nombre a **Amazon SageMaker Canvas**.

1. Elija **Siguiente**.

1. Seleccione **SAML 2.0** como método de **Inicio de sesión**.

1. Seleccione **Metadatos de proveedor de identidades** para abrir el archivo XML de metadatos. Guarde el archivo localmente.

1. Seleccione **Listo**.

## Configure la federación de identificadores en IAM
<a name="set-up-id-federation-IAM"></a>

AWS Identity and Access Management (IAM) es el AWS servicio que utiliza para acceder a su AWS cuenta. Puedes acceder a él a AWS través de una cuenta de IAM.

1. Inicia sesión en la AWS consola.

1. Elija **AWS Identity and Access Management (IAM)**.

1. Elija **Proveedores de identidades**.

1. Elija **Crear proveedor**.

1. En **Configurar proveedor**, especifique lo siguiente:
   + **Tipo de proveedor**: en la lista desplegable, elija **SAML**.
   + **Nombre del proveedor**: especifique **Okta**.
   + **Documento de metadatos**: cargue el documento XML que ha guardado localmente en el paso 7 de [Añada la aplicación SageMaker Canvas a Okta](#canvas-set-up-okta).

1. Busque su proveedor de identidades en **Proveedores de identidades**. Copie su valor de **ARN de proveedor**.

1. Para **Roles**, elija el rol de IAM que vaya a utilizar para acceder al SSO de Okta.

1. En la pestaña **Relaciones de confianza** para el rol de IAM, seleccione **Editar relación de confianza**.

1. Modifique la política de relaciones de confianza de IAM especificando el valor del **ARN del proveedor** que ha copiado y agregue la siguiente política:

------
#### [ JSON ]

****  

   ```
     {
     "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:saml-provider/Okta"
           },
           "Action": [
             "sts:AssumeRoleWithSAML",
             "sts:TagSession"
           ],
           "Condition": {
             "StringEquals": {
               "SAML:aud": "https://signin.aws.amazon.com/saml"
             }
           }
         },
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:saml-provider/Okta"
           },
           "Action": [
             "sts:SetSourceIdentity"
           ]
         }
       ]
     }
   ```

------

1. En **Permisos**, agregue la siguiente política:

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AmazonSageMakerPresignedUrlPolicy",
              "Effect": "Allow",
              "Action": [
                   "sagemaker:CreatePresignedDomainUrl"
              ],
              "Resource": "*"
         }
     ]
   }
   ```

------

## Configura SageMaker Canvas en Okta
<a name="canvas-configure-okta"></a>

Configure Amazon SageMaker Canvas en Okta mediante el siguiente procedimiento.

Para configurar Amazon SageMaker Canvas para usar Okta, sigue los pasos de esta sección. Debe especificar nombres de usuario únicos para cada **SageMakerStudioProfileName**campo. Por ejemplo, puede utilizar `user.login` como valor. Si el nombre de usuario es diferente del nombre del perfil de SageMaker Canvas, elija un atributo de identificación única diferente. Por ejemplo, puede usar el número de identificación de un empleado como nombre de perfil.

Para ver un ejemplo de los valores que puede configurar para los **Atributos**, consulte el código que sigue al procedimiento.

1. En **Directorio**, seleccione **Grupos**.

1. Agregue un grupo con el siguiente patrón: `sagemaker#canvas#IAM-role#AWS-account-id`.

1. En Okta, abra la configuración de integración de la aplicación de **Federación de cuentas de AWS **.

1. Seleccione **Iniciar sesión en** la aplicación AWS Account Federation.

1. Elija **Editar** y especifique lo siguiente:
   + SAML 2.0
   + **Estado de retransmisión predeterminado**: https://*Region*.console.aws.amazon. com/sagemaker/home? región= *Region* \$1/studio/canvas/open. *StudioId* Puedes encontrar el ID de Studio Classic en la consola: [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Seleccione **Atributos**.

1. En los **SageMakerStudioProfileName**campos, especifique valores únicos para cada nombre de usuario. Los nombres de usuario deben coincidir con los nombres de usuario que haya creado en la consola de AWS .

   ```
   Attribute 1:
   Name: https://aws.amazon.com/SAML/Attributes/PrincipalTag:SageMakerStudioUserProfileName 
   Value: ${user.login}
   
   Attribute 2:
   Name: https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys
   Value: {"SageMakerStudioUserProfileName"}
   ```

1. Seleccione el **Tipo de entorno**. Elija ** AWS normal**.
   + Si su tipo de entorno no aparece en la lista, puede configurar la URL de ACS en el campo **URL de ACS**. Si su tipo de entorno aparece en la lista, no es necesario que introduzca la URL de ACS

1. Para el **ARN del proveedor de identidades**, especifique el ARN que utilizó en el paso 6 del procedimiento anterior.

1. Especifique una **Duración de sesión**.

1. Elija **Unir todos los roles**.

1. Active **Usar mapeo de grupos** especificando los siguientes campos:
   + **Filtro de aplicaciones**: `okta`
   + **Filtro de grupo**: `^aws\#\S+\#(?IAM-role[\w\-]+)\#(?accountid\d+)$`
   + **Patrón de valores de rol**: `arn:aws:iam::$accountid:saml-provider/Okta,arn:aws:iam::$accountid:role/IAM-role`

1. Seleccione **Guardar/Siguiente**.

1. En **Asignaciones**, asigne la aplicación al grupo que ha creado.

## Agregar políticas opcionales sobre el control de acceso en IAM
<a name="canvas-optional-access"></a>

En IAM, puede aplicar la siguiente política al usuario administrador que crea los perfiles de usuario.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateSageMakerStudioUserProfilePolicy",
            "Effect": "Allow",
            "Action": "sagemaker:CreateUserProfile",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "studiouserid"
                    ]
                }
            }
        }
    ]
}
```

------

Si decide agregar la política anterior al usuario administrador, debe utilizar los siguientes permisos de[Configure la federación de identificadores en IAM](#set-up-id-federation-IAM).

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Sid": "AmazonSageMakerPresignedUrlPolicy",
           "Effect": "Allow",
           "Action": [
               "sagemaker:CreatePresignedDomainUrl"
           ],
           "Resource": "*",
           "Condition": {
                  "StringEquals": {
                      "sagemaker:ResourceTag/studiouserid": "${aws:PrincipalTag/SageMakerStudioUserProfileName}"
                 }
            }
      }
  ]
}
```

------

# Configurar el almacenamiento de Amazon S3
<a name="canvas-storage-configuration"></a>

Al configurar la aplicación SageMaker Canvas, la ubicación de almacenamiento predeterminada para los artefactos del modelo, los conjuntos de datos y otros datos de la aplicación es un depósito de Amazon S3 que crea Canvas. Este bucket predeterminado de Amazon S3 sigue el patrón de nomenclatura `s3://sagemaker-{Region}-{your-account-id}` y existe en la misma región que su aplicación de Canvas. Sin embargo, puede personalizar la ubicación de almacenamiento y especificar su propio bucket de Amazon S3 para almacenar los datos de la aplicación de Canvas. Es posible que desee utilizar su propio bucket de Amazon S3 para almacenar los datos de las aplicaciones por alguna de las siguientes razones:
+ Su organización tiene convenciones de nomenclatura internas para los buckets de Amazon S3.
+ Desea habilitar el acceso entre cuentas a los artefactos del modelo u otros datos de Canvas.
+ Desea cumplir con las directrices de seguridad internas, como restringir a los usuarios a buckets específicos de Amazon S3 o artefactos de modelos.
+ Desea mejorar la visibilidad y el acceso a los registros generados por Canvas, independientemente de la AWS consola o de SageMaker Studio Classic.

Al especificar su propio bucket de Amazon S3, puede tener un mayor control sobre su propio almacenamiento y cumplir con las normas de su organización. 

Para empezar, puede crear un nuevo dominio o perfil de usuario de SageMaker IA o actualizar un dominio o perfil de usuario existente. Tenga en cuenta que la configuración del perfil de usuario anula la configuración en el nivel de dominio. Por ejemplo, puede utilizar la configuración de bucket predeterminada en el dominio, pero puede especificar un bucket de Amazon S3 personalizado para un usuario individual. Tras especificar su propio bucket de Amazon S3 para el dominio o el perfil de usuario, Canvas crea una subcarpeta llamada `Canvas/<UserProfileName>` en la URI de Amazon S3 de entrada y guarda todos los artefactos generados en la aplicación de Canvas en esta subcarpeta.

**importante**  
Si actualiza un dominio o perfil de usuario existente, ya no tendrá acceso a sus artefactos de Canvas desde la ubicación anterior. Sus archivos siguen en la antigua ubicación de Amazon S3, pero ya no puede verlos desde Canvas. La nueva configuración entrará en vigor la próxima vez que inicie sesión en la aplicación.

Para obtener más información sobre cómo conceder acceso entre cuentas a su bucket de Amazon S3, consulte [Concesión de permisos de objetos entre cuentas](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example4.html#access-policies-walkthrough-example4-overview) en la *Guía del usuario de Amazon S3*.

En las siguientes secciones se describe cómo especificar un bucket de Amazon S3 personalizado para la configuración de almacenamiento de Canvas. Si estás configurando un nuevo dominio de SageMaker IA (o un nuevo usuario en un dominio), usa el [Método de configuración de nuevo dominio](#canvas-storage-configuration-new-domain) o el[Nuevo método de configuración del perfil de usuario](#canvas-storage-configuration-new-user). Si ya tiene un perfil de usuario de Canvas y desea actualizar la configuración de almacenamiento del perfil, utilice [Método de usuario existente](#canvas-storage-configuration-existing-user).

## Antes de empezar
<a name="canvas-storage-configuration-prereqs"></a>

Si está especificando un URI de Amazon S3 de una AWS cuenta diferente o si utiliza un bucket cifrado con AWS KMS, debe configurar los permisos antes de continuar. Debe conceder permisos de AWS IAM para garantizar que Canvas pueda descargar y cargar objetos desde y hacia su bucket. Para obtener información sobre cómo conceder permisos, consulte [Concesión de permisos para el almacenamiento de Amazon S3 entre cuentas](canvas-permissions-cross-account.md).

Además, el URI final de Amazon S3 para la carpeta de entrenamiento en su ubicación de almacenamiento de Canvas debe tener 128 caracteres o menos. El URI final de Amazon S3 consiste en la ruta de su bucket `s3://<your-bucket-name>/<folder-name>/` más la ruta que Canvas agrega a su bucket: `Canvas/<user-profile-name>/Training`. Por ejemplo, una ruta aceptable que tenga menos de 128 caracteres es `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`.

## Método de configuración de nuevo dominio
<a name="canvas-storage-configuration-new-domain"></a>

Si está configurando un nuevo dominio y una nueva aplicación de Canvas, utilice esta sección para configurar la ubicación de almacenamiento en el nivel de dominio. Esta configuración se aplica a todos los usuarios nuevos que cree en el dominio, a menos que especifique una ubicación de almacenamiento diferente para los perfiles de usuario individuales.

Al realizar una **Configuración estándar** para su dominio, en la página **Paso 3: configuración de aplicaciones: opcional**, utilice el siguiente procedimiento para la sección **Canvas**:

1. Para la **Configuración de almacenamiento de Canvas**, haga lo siguiente:

   1. Seleccione **Administrado por el sistema** si desea establecer la ubicación en el depósito de SageMaker IA predeterminado que sigue el patrón`s3://sagemaker-{Region}-{your-account-id}`.

   1. Seleccione **Personalizado S3** para especificar su propio bucket de Amazon S3 como ubicación de almacenamiento. A continuación, introduzca el URI de Amazon S3.

   1. (Opcional) Para la **Clave de cifrado**, especifique una clave KMS para cifrar los artefactos de Canvas almacenados en la ubicación especificada. 

1. Termine de configurar el dominio y seleccione **Enviar**.

Su dominio ahora está configurado para usar la ubicación de Amazon S3 que especificó para el almacenamiento de aplicaciones de SageMaker Canvas.

## Nuevo método de configuración del perfil de usuario
<a name="canvas-storage-configuration-new-user"></a>

Si va a configurar un nuevo perfil de usuario en su dominio, utilice esta sección para configurar la ubicación de almacenamiento del usuario. Esta configuración anula la configuración en el nivel del dominio.

Al agregar un perfil de usuario a su dominio, para **Paso 2: configuración de aplicaciones**, utilice el siguiente procedimiento para la sección **Canvas**:

1. Para la **Configuración de almacenamiento de Canvas**, haga lo siguiente:

   1. Seleccione **Administrado por el sistema** si desea establecer la ubicación en el depósito predeterminado creado por SageMaker IA que sigue el patrón`s3://sagemaker-{Region}-{your-account-id}`.

   1. Seleccione **Personalizado S3** para especificar su propio bucket de Amazon S3 como ubicación de almacenamiento. A continuación, introduzca el URI de Amazon S3.

   1. (Opcional) Para la **Clave de cifrado**, especifique una clave KMS para cifrar los artefactos de Canvas almacenados en la ubicación especificada. 

1. Termine de configurar el perfil de usuario y elija **Enviar**.

Su perfil de usuario ahora está configurado para usar la ubicación de Amazon S3 que especificó para el almacenamiento de aplicaciones de SageMaker Canvas.

## Método de usuario existente
<a name="canvas-storage-configuration-existing-user"></a>

Si ya tiene un perfil de usuario de Canvas y desea actualizar la ubicación de almacenamiento de Amazon S3, puede editar la configuración del dominio de SageMaker IA o del perfil de usuario. Este cambio entrará en vigor la próxima vez que inicie sesión en la aplicación de Canvas.

**nota**  
Al cambiar la ubicación de almacenamiento de una aplicación de Canvas existente, pierde el acceso a sus artefactos de Canvas desde la ubicación de almacenamiento anterior. Los artefactos siguen almacenados en la antigua ubicación de Amazon S3, pero ya no puede verlos desde Canvas.

Recuerde que la configuración del perfil de usuario anula la configuración general del dominio, por lo que puede actualizar la ubicación de almacenamiento de Amazon S3 para perfiles de usuario específicos sin cambiarla para todos los usuarios. Puede actualizar la configuración de almacenamiento de un dominio o usuario existente mediante los siguientes procedimientos.

------
#### [ Update an existing domain ]

Siga este procedimiento para actualizar la configuración de almacenamiento de un dominio.

1. Abra la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de dominios, seleccione su dominio.

1. En la página **Detalles del dominio**, elija la pestaña **Configuraciones de aplicaciones**.

1. Desplácese hacia abajo hasta la sección **Canvas** y, a continuación, elija **Editar**.

1. Se abre la página **Editar la configuración de Canvas**. En **Configuración de almacenamiento de Canvas**, haga lo siguiente:

   1. Selecciona **Sistema gestionado** si quieres establecer la ubicación en el depósito predeterminado creado por SageMaker IA que sigue el patrón`s3://sagemaker-{Region}-{your-account-id}`.

   1. Seleccione **Personalizado S3** para especificar su propio bucket de Amazon S3 como ubicación de almacenamiento. A continuación, introduzca el URI de Amazon S3.

   1. (Opcional) Para la **Clave de cifrado**, especifique una clave KMS para cifrar los artefactos de Canvas almacenados en la ubicación especificada. 

1. Finalice cualquier otra modificación que desee realizar en el dominio y, a continuación, pulse **Enviar** para guardar los cambios.

------
#### [ Update an existing user profile ]

Utilice el siguiente procedimiento para actualizar la configuración de almacenamiento de un perfil de usuario.

1. Abre la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de **Dominios**, seleccione su dominio.

1. De la lista de usuarios del dominio, elija el usuario cuya configuración desee editar.

1. En la página **Detalles del usuario**, elija **Editar**.

1. En el panel de navegación, elija **Configuración de Canvas**.

1. Para la **Configuración de almacenamiento de Canvas**, haga lo siguiente:

   1. Selecciona **Sistema gestionado** si quieres establecer la ubicación en el depósito de SageMaker IA predeterminado que sigue el patrón`s3://sagemaker-{Region}-{your-account-id}`.

   1. Seleccione **Personalizado S3** para especificar su propio bucket de Amazon S3 como ubicación de almacenamiento. A continuación, introduzca el URI de Amazon S3.

   1. (Opcional) Para la **Clave de cifrado**, especifique una clave KMS para cifrar los artefactos de Canvas almacenados en la ubicación especificada. 

1. Finalice cualquier otra modificación que desee realizar en el perfil de usuario y, a continuación, pulse **Enviar** para guardar los cambios.

------

Ahora debería actualizarse la ubicación de almacenamiento de su perfil de usuario de Canvas. La próxima vez que inicie sesión en la aplicación de Canvas, recibirá una notificación de que la ubicación de almacenamiento se ha actualizado. Perderá el acceso a cualquier artefacto anterior que haya creado en Canvas. Puede seguir accediendo a los archivos en Amazon S3, pero ya no podrá verlos en Canvas.

# Concesión de permisos para el almacenamiento de Amazon S3 entre cuentas
<a name="canvas-permissions-cross-account"></a>

Al configurar su dominio o perfil de usuario de SageMaker IA para que los usuarios accedan a SageMaker Canvas, debe especificar una ubicación de almacenamiento de Amazon S3 para los artefactos de Canvas. Estos artefactos incluyen copias guardadas de sus conjuntos de datos de entrada, artefactos de modelo, predicciones y otros datos de aplicaciones. Puede usar el depósito predeterminado de Amazon S3 creado por SageMaker IA o puede personalizar la ubicación de almacenamiento y especificar su propio depósito para almacenar los datos de la aplicación Canvas.

Puede especificar un bucket de Amazon S3 en otra AWS cuenta para almacenar sus datos de Canvas, pero primero debe conceder permisos entre cuentas para que Canvas pueda acceder al bucket.

En las siguientes secciones se describe cómo conceder permisos a Canvas para cargar y descargar objetos desde y hacia un bucket de Amazon S3 de otra cuenta. Hay permisos adicionales para cuando su depósito está cifrado con AWS KMS.

## Requisitos
<a name="canvas-permissions-cross-account-prereqs"></a>

Antes de comenzar, revise los siguientes requisitos:
+ Los buckets multicuenta de Amazon S3 (y cualquier AWS KMS clave asociada) deben estar en la misma AWS región que el dominio de usuario o el perfil de usuario de Canvas.
+ El URI final de Amazon S3 para la carpeta de entrenamiento en su ubicación de almacenamiento de Canvas debe tener 128 caracteres o menos. El URI final de S3 consiste en la ruta de su bucket `s3://<your-bucket-name>/<folder-name>/` más la ruta que Canvas agrega a su bucket: `Canvas/<user-profile-name>/Training`. Por ejemplo, una ruta aceptable que tenga menos de 128 caracteres es `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`.

## Permisos para los buckets de Amazon S3 entre cuentas
<a name="canvas-permissions-cross-account-s3"></a>

En la siguiente sección se describen los pasos básicos para conceder los permisos necesarios para que Canvas pueda acceder a su bucket de Amazon S3 desde otra cuenta. Para obtener instrucciones más detalladas, consulte el [Ejemplo 2: Propietario del bucket que concede permisos de bucket entre cuentas](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html) en la *Guía del usuario de Amazon S3*.

1. Cree un bucket de Amazon S3, `bucketA`, en la cuenta A.

1. El usuario de Canvas existe en otra cuenta llamada Cuenta B. En los siguientes pasos, denominamos el rol de IAM del usuario de Canvas como `roleB` la Cuenta B.

   Conceda permiso al rol de IAM `roleB` de la cuenta B para descargar (`GetObject`) y cargar (`PutObject`) objetos desde y hacia `bucketA` en la cuenta A asociando una política de IAM.

   Para limitar el acceso a la carpeta de un bucket específico, defina el nombre de la carpeta en el elemento del recurso, por ejemplo `arn:aws:s3:::<bucketA>/FolderName/*`. Para obtener más información, consulte [¿Cómo puedo utilizar las políticas de IAM para conceder acceso específico para un usuario a carpetas específicas?](https://aws.amazon.com/premiumsupport/knowledge-center/iam-s3-user-specific-folder/)
**nota**  
Las acciones en el nivel de bucket, como `GetBucketCors` y `GetBucketLocation`, deben agregarse a los recursos de nivel de bucket, no a las carpetas.

   En el siguiente ejemplo de política de IAM se conceden los permisos necesarios para que `roleB` acceda a los objetos en `bucketA`:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           }
       ]
   }
   ```

------

1. Configure la política de bucket para `bucketA` en la cuenta A para conceder permisos al rol de IAM `roleB` en la cuenta B.
**nota**  
Los administradores también deben desactivar la opción **Bloquear todo el acceso público** en la sección **Permisos** del bucket.

   A continuación, se muestra un ejemplo de política de bucket para que `bucketA` conceda los permisos necesarios a `roleB`:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

Tras configurar los permisos anteriores, su perfil de usuario de Canvas en la cuenta B ahora puede usar el bucket de Amazon S3 de la cuenta A como ubicación de almacenamiento de los artefactos de Canvas.

## Permisos para buckets de Amazon S3 multicuenta cifrados con AWS KMS
<a name="canvas-permissions-cross-account-s3-kms"></a>

El siguiente procedimiento le muestra cómo conceder los permisos necesarios para que Canvas pueda acceder a su bucket de Amazon S3 en otra cuenta que esté cifrada con AWS KMS. Los pasos son similares a los del procedimiento anterior, pero con permisos adicionales. Para obtener más información acerca de cómo proporcionar acceso a una clave KMS entre cuentas, consulte [Permitir a los usuarios de otras cuentas utilizar una clave KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) en la *Guía para desarrolladores de AWS KMS *.

1. Cree un bucket de Amazon S3, `bucketA` y una clave de Amazon S3 KMS `s3KmsInAccountA` en la cuenta A.

1. El usuario de Canvas existe en otra cuenta llamada Cuenta B. En los siguientes pasos, denominamos el rol de IAM del usuario de Canvas como `roleB` la Cuenta B.

   Conceda permiso al rol de IAM `roleB` en la Cuenta B para hacer lo siguiente:
   + Descargar (`GetObject`) y cargar (`PutObject`) objetos desde y hacia `bucketA` en la Cuenta A.
   + Acceda a la AWS KMS clave `s3KmsInAccountA` en la cuenta A.

   En el siguiente ejemplo de política de IAM se conceden los permisos necesarios para que `roleB` acceda a los objetos en `bucketA` y use la clave KMS `s3KmsInAccountA`:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           },
           {
               "Action": [
                   "kms:DescribeKey",
                   "kms:CreateGrant",
                   "kms:RetireGrant",
                   "kms:GenerateDataKey",
                   "kms:GenerateDataKeyWithoutPlainText",
                   "kms:Decrypt"
               ],
               "Effect": "Allow",
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/s3KmsInAccountA"
           }
       ]
   }
   ```

------

1. Configure la política de bucket para `bucketA` y la política de claves para `s3KmsInAccountA` en la cuenta A para conceder permisos al rol de IAM `roleB` en la cuenta B.

   A continuación, se muestra un ejemplo de política de bucket para que `bucketA` conceda los permisos necesarios a `roleB`:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

   El siguiente ejemplo es una política de claves que se asocia a la clave KMS `s3KmsInAccountA` en la Cuenta A para conceder acceso a `roleB`. Para obtener más información sobre cómo crear y asociar una declaración de política de claves, consulte [Creación de una política de claves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) en la *Guía para desarrolladores de AWS KMS *.

   ```
   {
     "Sid": "Allow use of the key",
     "Effect": "Allow",
     "Principal": {
       "AWS": [
         "arn:aws:iam::accountB:role/roleB"
       ]
     },
     "Action": [
           "kms:DescribeKey",
           "kms:CreateGrant",
           "kms:RetireGrant",
           "kms:GenerateDataKey",
           "kms:GenerateDataKeyWithoutPlainText",
           "kms:Decrypt"
     ],
     "Resource": "*"
   }
   ```

Tras configurar los permisos anteriores, su perfil de usuario de Canvas en la cuenta B ahora puede usar el bucket cifrado de Amazon S3 de la cuenta A como ubicación de almacenamiento de los artefactos de Canvas.

# Concesión de permisos a los usuarios para usar datos de gran tamaño durante todo el ciclo de vida de ML
<a name="canvas-large-data-permissions"></a>

Los usuarios de Amazon SageMaker Canvas que trabajan con conjuntos de datos de más de 10 GB en formato CSV o 2,5 GB en formato Parquet necesitan permisos específicos para el procesamiento de datos de gran tamaño. Estos permisos son esenciales para administrar datos a gran escala durante todo el ciclo de vida de machine learning. Cuando los conjuntos de datos superan los umbrales establecidos o la capacidad de memoria local de la aplicación, SageMaker Canvas utiliza Amazon EMR Serverless para un procesamiento eficiente. Esto se aplica a:
+ Importación de datos: importación de conjuntos de datos grandes con muestreo aleatorio o estratificado.
+ Preparación de datos: exportación de datos procesados desde Data Wrangler en Canvas a Amazon S3, a un nuevo conjunto de datos de Canvas o a un modelo de Canvas.
+ Creación de modelos: entrenamiento de modelos con grandes conjuntos de datos.
+ Inferencia: realización de predicciones sobre grandes conjuntos de datos.

De forma predeterminada, SageMaker Canvas usa EMR Serverless para ejecutar estos trabajos remotos con la siguiente configuración de la aplicación:
+ Capacidad preinicializada: no configurada
+ Límites de aplicación: capacidad máxima de 400 VCPUs, capacidad máxima simultánea de 16 V CPUs por cuenta, 3000 GB de memoria y 20000 GB de disco
+ Configuración de Metastore: AWS Glue Data Catalog
+ Registros de aplicaciones: almacenamiento AWS gestionado (habilitado), mediante una clave AWS de cifrado propia
+ Comportamiento de la aplicación: se inicia automáticamente al enviar el trabajo y se detiene automáticamente cuando la aplicación está inactiva durante 15 minutos

Para habilitar estas capacidades de procesamiento de datos de gran tamaño, los usuarios necesitan los permisos necesarios, que se pueden conceder a través de la configuración del dominio de Amazon SageMaker AI. El método para conceder estos permisos depende de cómo se configuró inicialmente tu dominio de Amazon SageMaker AI. Abordaremos tres escenarios principales:
+ Configuración rápida de dominio
+ Configuración de dominio personalizada (con access/without VPC de Internet pública)
+ Configuración personalizada de dominio (con VPC y sin acceso público a Internet)

Cada escenario requiere pasos específicos para garantizar que los usuarios tengan los permisos necesarios para aprovechar EMR Serverless para el procesamiento de datos de gran tamaño durante todo el ciclo de vida del aprendizaje automático en Canvas. SageMaker 

## Escenario 1: configuración rápida de dominio
<a name="canvas-large-data-quick-setup"></a>

Si utilizó la opción de **configuración rápida** al crear su dominio de SageMaker IA, siga estos pasos:

1. Ve a la configuración del dominio de Amazon SageMaker AI:

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

   1. En el panel de navegación izquierdo, seleccione **Dominios**.

   1. Seleccione su dominio.

   1. Elija la pestaña **Configuraciones de aplicaciones**.

   1. Desplácese hacia abajo hasta la sección **Canvas** y elija **Editar**.

1. Habilite el procesamiento de datos de gran tamaño:

   1. En la sección **Configuración de procesamiento de datos de gran tamaño**, active **Habilitar EMR sin servidor para el procesamiento de datos de gran tamaño**.

   1. Cree o seleccione un rol de EMR sin servidor:

      1. Elija **Crear y usar un rol de ejecución nuevo** para crear un nuevo rol de IAM que tenga una relación de confianza con EMR sin servidor y la política [AWS política gestionada: AmazonSageMakerCanvas EMRServerless ExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy) asociada. Canvas asume este rol de IAM para crear trabajos de EMR sin servidor.

      1. Como alternativa, si ya tiene un rol de ejecución con una relación de confianza para EMR sin servidor, seleccione **Usar un rol de ejecución existente** y elija un rol en el menú desplegable.
         + El rol existente debe tener un nombre que comience por el prefijo `AmazonSageMakerCanvasEMRSExecutionAccess-`.
         + El rol que seleccione también debe tener al menos los permisos descritos en la política [AWS política gestionada: AmazonSageMakerCanvas EMRServerless ExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy).
         + El rol debe tener una política de confianza de EMR sin servidor, como se muestra a continuación:

------
#### [ JSON ]

****  

           ```
           {
               "Version":"2012-10-17",		 	 	 
               "Statement": [
                   {
                       "Sid": "EMRServerlessTrustPolicy",
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "emr-serverless.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole",
                       "Condition": {
                           "StringEquals": {
                               "aws:SourceAccount": "111122223333"
                           }
                       }
                   }
               ]
           }
           ```

------

1. (Opcional) Añada permisos de Amazon S3 para buckets de Amazon S3 personalizados:

   1. La política administrada de Canvas concede automáticamente permisos de lectura y escritura para los buckets de Amazon S3 con `sagemaker` o `SageMaker AI` en su nombre. También concede permisos de lectura para los objetos de los buckets personalizados de Amazon S3 con la etiqueta `"SageMaker": "true"`.

   1. Para los buckets de Amazon S3 personalizados sin la etiqueta requerida, añada la siguiente política a su rol de EMR sin servidor:

   1. 

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:DeleteObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ]
              }
          ]
      }
      ```

------

   1. Le recomendamos que restrinja los permisos a buckets de Amazon S3 específicos a los que desea que acceda Canvas.

1. Guarde los cambios y reinicie la aplicación SageMaker Canvas.

## Escenario 2: configuración de dominio personalizada (con access/without VPC de Internet pública)
<a name="canvas-large-data-custom-no-vpc"></a>

Si ha creado o utiliza un dominio personalizado, siga los pasos 1 a 3 del escenario 1 y, a continuación, siga estos pasos adicionales:

1. Añada permisos para la `DescribeImages` operación de Amazon ECR a su función de ejecución de Amazon SageMaker AI, ya que Canvas utiliza imágenes públicas de Docker de Amazon ECR para la preparación de datos y el entrenamiento de modelos:

   1. Inicie sesión en la AWS consola y abra la consola de IAM en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

   1. Elija **Roles**.

   1. En el cuadro de búsqueda, busque su función de ejecución de SageMaker IA por nombre y selecciónela.

   1. Añada la siguiente política a su función de ejecución de SageMaker IA. Esto se puede hacer añadiéndola como nueva política en línea o añadiendo la declaración de política a una ya existente. Tenga en cuenta que un rol de IAM puede tener un máximo de 10 políticas asociadas.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
              "Sid": "ECRDescribeImagesOperation",
              "Effect": "Allow",
              "Action": "ecr:DescribeImages",
              "Resource": [
                  "arn:aws:ecr:*:*:repository/sagemaker-data-wrangler-emr-container",
                  "arn:aws:ecr:*:*:repository/ap-dataprep-emr"
              ]
          }]
      }
      ```

------

1. Guarde los cambios y reinicie la aplicación SageMaker Canvas.

## Escenario 3: configuración personalizada de dominio (con VPC y sin acceso público a Internet)
<a name="canvas-large-data-custom-vpc"></a>

Si ha creado o utiliza un dominio personalizado, siga todos los pasos del escenario 2 y, a continuación, siga estos pasos adicionales:

1. Asegúrese de que las subredes de VPC sean privadas:

   1. Compruebe que la tabla de enrutamiento de las subredes no tenga una asignación de entrada `0.0.0.0/0` a una puerta de enlace de Internet.

1. Agregue permisos para crear interfaces de red:

   1. Al utilizar SageMaker Canvas con EMR Serverless para el procesamiento de datos a gran escala, EMR Serverless requiere la capacidad de crear Amazon EC2 para permitir la comunicación de red entre las aplicaciones EMR Serverless y sus recursos de VPC. ENIs 

   1. Añada la siguiente política a su función de ejecución de Amazon SageMaker AI. Esto se puede hacer añadiéndola como nueva política en línea o añadiendo la declaración de política a una ya existente. Tenga en cuenta que un rol de IAM puede tener un máximo de 10 políticas asociadas.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "AllowEC2ENICreation",
                  "Effect": "Allow",
                  "Action": [
                      "ec2:CreateNetworkInterface"
                  ],
                  "Resource": [
                      "arn:aws:ec2:*:*:network-interface/*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:CalledViaLast": "ops.emr-serverless.amazonaws.com"
                      }
                  }
              }
          ]
      }
      ```

------

1. (Opcional) Limite la creación de ENI a subredes específicas:

   1. Para proteger aún más la configuración restringiendo la creación de ENIs determinadas subredes dentro de la VPC, puede etiquetar cada subred con condiciones específicas.

   1. Utilice la siguiente política de IAM para garantizar que las aplicaciones EMR Serverless solo puedan crear Amazon ENIs EC2 dentro de las subredes y grupos de seguridad permitidos:

      ```
      {
          "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags",
          "Effect": "Allow", 
          "Action": [
              "ec2:CreateNetworkInterface"
          ],
          "Resource": [
              "arn:aws:ec2:*:*:subnet/*",
              "arn:aws:ec2:*:*:security-group/*"
          ],
          "Condition": {
              "StringEquals": {
                  "aws:ResourceTag/KEY": "VALUE"
              }
          }
      }
      ```

1. Siga los pasos de la página [Configurar Amazon SageMaker Canvas en una VPC sin acceso a Internet](canvas-vpc.md) para configurar el punto de enlace de VPC para Amazon S3, que requieren EMR Serverless y otros AWS servicios que utiliza Canvas. SageMaker 

1. Guarde los cambios y reinicie la aplicación de Canvas SageMaker .

Si sigue estos pasos, puede habilitar el procesamiento de datos de gran tamaño en SageMaker Canvas para varias configuraciones de dominio, incluidas aquellas con configuraciones de VPC personalizadas. Recuerde reiniciar la aplicación SageMaker Canvas después de realizar estos cambios para aplicar los nuevos permisos.

# Cifre sus datos de SageMaker Canvas con AWS KMS
<a name="canvas-kms"></a>

Es posible que tenga datos que desee cifrar mientras usa Amazon SageMaker Canvas, como la información privada de su empresa o los datos de sus clientes. SageMaker Canvas utiliza AWS Key Management Service para proteger sus datos. AWS KMS es un servicio que puede usar para crear y administrar claves criptográficas para cifrar sus datos. Para obtener más información al respecto AWS KMS, consulte [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)la Guía para *AWS KMS desarrolladores*.

Amazon SageMaker Canvas le ofrece varias opciones para cifrar sus datos. SageMaker Canvas proporciona un cifrado predeterminado en la aplicación para tareas como la creación del modelo y la generación de información. También puede optar por cifrar los datos almacenados en Amazon S3 para proteger sus datos en reposo. SageMaker Canvas admite la importación de conjuntos de datos cifrados, por lo que puede establecer un flujo de trabajo cifrado. En las siguientes secciones, se describe cómo puede utilizar el AWS KMS cifrado para proteger sus datos al crear modelos con SageMaker Canvas.

## Cifre sus datos en Canvas SageMaker
<a name="canvas-kms-app-data"></a>

Con SageMaker Canvas, puede usar dos claves de AWS KMS cifrado diferentes para cifrar sus datos en SageMaker Canvas, que puede especificar al [configurar su dominio mediante la configuración](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html) de dominio estándar. Estas claves se especifican en los siguientes pasos de configuración de dominio:
+ **Paso 3: configuración de aplicaciones (opcional)**: al configurar la sección **Configuración del almacenamiento de Canvas**, puede especificar una **Clave de cifrado**. Se trata de una clave de KMS que SageMaker Canvas utiliza para el almacenamiento a largo plazo de objetos modelo y conjuntos de datos, que se almacenan en el depósito de Amazon S3 proporcionado para su dominio. Si va a crear una aplicación de Canvas con la [CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API, utilice el `S3KMSKeyId` campo para especificar esta clave.
+ **Paso 6: Configurar el almacenamiento**: SageMaker Canvas utiliza una clave para cifrar el espacio privado de Amazon SageMaker Studio que se crea para la aplicación de Canvas, que incluye almacenamiento temporal de aplicaciones, visualizaciones y trabajos de computación (como la creación de modelos). Puede usar la clave AWS administrada predeterminada o especificar la suya propia. Si especifica su AWS KMS clave, los datos almacenados en el `/home/sagemaker-user` directorio se cifran con su clave. Si no especificas ninguna AWS KMS clave, los datos que contiene `/home/sagemaker-user` se cifran con una clave AWS gestionada. Independientemente de si se especifica una AWS KMS clave, todos los datos que se encuentran fuera del directorio de trabajo se cifran con una clave AWS gestionada. Para obtener más información sobre el espacio de Studio y el almacenamiento de sus aplicaciones de Canvas, consulte [Guarde los datos de las aplicaciones de SageMaker Canvas en su propio espacio de IA SageMaker](canvas-spaces-setup.md). Si va a crear una aplicación de Canvas con la [CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API, utilice el `KmsKeyID` campo para especificar esta clave.

Las claves anteriores pueden ser claves de KMS iguales o diferentes.

### Requisitos previos
<a name="canvas-kms-app-data-prereqs"></a>

Para usar su propia clave KMS para cualquiera de los fines descritos anteriormente, primero debe conceder permiso al rol de IAM de su usuario para usar la clave. A continuación, puede especificar la clave KMS al configurar su dominio.

La forma más sencilla de conceder permiso a su rol para usar la clave es modificar la política de claves. Utilice el siguiente procedimiento para conceder a su rol los permisos necesarios.

1. Abra la [consola de AWS KMS](https://console.aws.amazon.com/kms/).

1. En la sección **Política de claves**, elija **Cambiar a la vista de política**.

1. Modifique la política de claves para conceder permisos para las acciones `kms:GenerateDataKey` y `kms:Decrypt` al rol de IAM. Además, si va a modificar la política de claves que cifra el almacenamiento de sus aplicaciones de Canvas en el espacio de Studio, conceda la acción `kms:CreateGrant`. Puede agregar una instrucción similar a la siguiente:

   ```
   {
     "Sid": "ExampleStmt",
     "Action": [
       "kms:CreateGrant", #this permission is only required for the key that encrypts your SageMaker Canvas application storage
       "kms:Decrypt",
       "kms:GenerateDataKey"
     ],
     "Effect": "Allow",
     "Principal": {
       "AWS": "<arn:aws:iam::111122223333:role/Jane>"
     },
     "Resource": "*"
   }
   ```

1. Elija **Guardar cambios**.

El método menos preferido es modificar el rol de IAM del usuario para concederle permisos de uso o administración de la clave KMS. Si utiliza este método, la política de claves de KMS también debe permitir la administración del acceso a través de IAM. Para obtener información sobre cómo conceder permisos a una clave de KMS mediante el rol de IAM del usuario, consulte [Especificación de claves KMS en declaraciones de políticas de IAM](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html) de la *Guía para desarrolladores de AWS KMS *.

### Cifre sus datos en la aplicación SageMaker Canvas
<a name="canvas-kms-app-data-app"></a>

La primera clave de KMS que puede utilizar en SageMaker Canvas se utiliza para cifrar los datos de las aplicaciones almacenados en los volúmenes de Amazon Elastic Block Store (Amazon EBS) y en el Amazon Elastic File System que la SageMaker IA crea en su dominio. SageMaker Canvas cifra los datos con esta clave en la aplicación subyacente y en los sistemas de almacenamiento temporal que se crean al utilizar instancias de cómputo para crear modelos y generar información. SageMaker Canvas transfiere la clave a otros AWS servicios, como el piloto automático, cada vez que SageMaker Canvas inicia trabajos con ellos para procesar sus datos.

Puede especificar esta clave configurando el `KmsKeyID` en la llamada a la API `CreateDomain` o mientras realiza la configuración del dominio estándar en la consola. Si no especifica su propia clave de KMS, SageMaker AI utiliza una clave de KMS AWS administrada predeterminada para cifrar sus datos en la SageMaker aplicación Canvas.

Para especificar su propia clave de KMS para usarla en la aplicación SageMaker Canvas a través de la consola, primero configure su dominio Amazon SageMaker AI mediante la **configuración estándar**. Siga este procedimiento para completar la **Sección de red y almacenamiento** del dominio.

1. Rellene la configuración de Amazon VPC que desee.

1. En **Clave de cifrado**, elija **Especifique el ARN de una clave de KMS**.

1. Para el **ARN de KMS**, introduzca el ARN de la clave de KMS, que debe tener un formato similar al siguiente: `arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

### Cifre los datos de SageMaker Canvas guardados en Amazon S3
<a name="canvas-kms-app-data-s3"></a>

La segunda clave de KMS que puede especificar se usa para los datos que SageMaker Canvas almacena en Amazon S3. Esta clave de KMS se especifica en el `S3KMSKeyId` campo de la llamada a la `CreateDomain` API o al realizar la configuración estándar del dominio en la consola de SageMaker IA. SageMaker Canvas guarda los duplicados de sus conjuntos de datos de entrada, datos de aplicaciones y modelos y datos de salida en el depósito SageMaker AI S3 predeterminado de la región para su cuenta. El patrón de nomenclatura de este depósito es`s3://sagemaker-{Region}-{your-account-id}`, y SageMaker Canvas almacena los datos en la `Canvas/` carpeta.





1. Active la opción **Habilitar el uso compartido de recursos de bloc de notas**.

1. En cuanto a la **Ubicación de S3 para los recursos de bloc de notas que se pueden compartir**, deje la ruta predeterminada de Amazon S3. Tenga en cuenta que SageMaker Canvas no usa esta ruta de Amazon S3; esta ruta de Amazon S3 se usa para los portátiles Studio Classic.

1. En **Clave de cifrado**, elija **Especifique el ARN de una clave de KMS**.

1. Para el **ARN de KMS**, introduzca el ARN de la clave de KMS, que debe tener un formato similar al siguiente: `arn:aws:kms:us-east-1:111122223333:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

## Importación de conjuntos de datos cifrados desde Amazon S3
<a name="canvas-kms-datasets"></a>

Es posible que sus usuarios tengan conjuntos de datos cifrados con una clave KMS. Si bien en la sección anterior se muestra cómo cifrar los datos en SageMaker Canvas y los datos almacenados en Amazon S3, debe conceder permisos adicionales a la función de IAM de su usuario si quiere importar datos de Amazon S3 que ya estén cifrados con. AWS KMS

Para conceder a sus usuarios permisos para importar conjuntos de datos cifrados de Amazon S3 a SageMaker Canvas, añada los siguientes permisos a la función de ejecución de IAM que ha utilizado para el perfil de usuario.

```
      "kms:Decrypt",
      "kms:GenerateDataKey"
```

Para aprender a administrar los permisos de IAM para un rol, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de IAM*. Para obtener más información sobre las claves KMS, consulte [Políticas de claves de AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/key-policies.html) en la *Guía para desarrolladores de AWS KMS *.

## FAQs
<a name="canvas-kms-faqs"></a>

Consulte las siguientes preguntas frecuentes para obtener respuestas a las preguntas más frecuentes sobre el soporte de SageMaker Canvas AWS KMS .

### P: ¿Conserva SageMaker Canvas mi clave KMS?
<a name="canvas-kms-faqs-1"></a>

R: No. SageMaker Canvas puede almacenar temporalmente su clave en caché o pasarla a otros AWS servicios (como el piloto automático), pero SageMaker Canvas no conserva su clave KMS.

### P: He especificado una clave KMS al configurar mi dominio. ¿Por qué no se pudo importar mi conjunto de datos a SageMaker Canvas?
<a name="canvas-kms-faqs-2"></a>

R: Es posible que el rol de IAM de su usuario no tenga permisos para usar esa clave KMS. Para conceder permisos de usuario, consulte los [Requisitos previos](#canvas-kms-app-data-prereqs). Otro posible error es que tenga una política de bucket en su bucket de Amazon S3 que requiera el uso de una clave KMS específica que no coincida con la clave de KMS que especificó en su dominio. Asegúrese de especificar la misma clave KMS para su bucket de Amazon S3 y su dominio.

### P: ¿Cómo puedo encontrar el bucket Amazon S3 de SageMaker IA predeterminado de la región para mi cuenta?
<a name="canvas-kms-faqs-3"></a>

R: El bucket de Amazon S3 predeterminado sigue el patrón de nomenclatura `s3://sagemaker-{Region}-{your-account-id}`. La `Canvas/` carpeta de este depósito almacena los datos de su aplicación SageMaker Canvas.

### P: ¿Puedo cambiar el bucket Amazon S3 de SageMaker IA predeterminado que se usa para almacenar datos de SageMaker Canvas?
<a name="canvas-kms-faqs-4"></a>

R: No, la SageMaker IA crea este depósito por usted.

### P: ¿Qué almacena SageMaker Canvas en el bucket Amazon S3 de SageMaker IA predeterminado?
<a name="canvas-kms-faqs-5"></a>

R: SageMaker Canvas usa el bucket Amazon S3 de SageMaker IA predeterminado para almacenar duplicados de sus conjuntos de datos de entrada, artefactos de modelos y salidas de modelos.

### P: ¿Qué casos de uso se admiten para usar claves KMS con Canvas? SageMaker
<a name="canvas-kms-faqs-6"></a>

R: Con SageMaker Canvas, puede usar sus propias claves de cifrado AWS KMS para crear modelos de regresión, clasificación binaria y multiclase y previsión de series temporales, así como para realizar inferencias por lotes con su modelo.

# Guarde los datos de las aplicaciones de SageMaker Canvas en su propio espacio de IA SageMaker
<a name="canvas-spaces-setup"></a>

Los datos de su aplicación Amazon SageMaker Canvas, como los conjuntos de datos que importe y los artefactos del modelo, se almacenan en un *espacio privado de Amazon SageMaker Studio*. El espacio consta de un volumen de almacenamiento para los datos de las aplicaciones con 100 GB de almacenamiento por perfil de usuario, el tipo de espacio (en este caso, una aplicación de Canvas) y la imagen del contenedor de la aplicación. Al configurar Canvas y lanzar la aplicación por primera vez, la SageMaker IA crea un espacio privado predeterminado que se asigna a tu perfil de usuario y almacena tus datos de Canvas. No tiene que realizar ninguna configuración adicional para configurar el espacio, ya que la SageMaker IA crea el espacio automáticamente en su nombre. Sin embargo, si no desea utilizar el espacio predeterminado, tiene la opción de especificar un espacio que haya creado usted mismo. Esto puede resultar útil si desea aislar los datos. La siguiente página le muestra cómo crear y configurar su propio espacio de Studio para almacenar los datos de aplicaciones de Canvas.

**nota**  
Solo puede configurar un espacio de Studio personalizado para nuevas aplicaciones de Canvas. No puede modificar la configuración de espacio de las aplicaciones de Canvas existentes.

## Antes de empezar
<a name="canvas-spaces-setup-prereqs"></a>

Su dominio o perfil de usuario de Amazon SageMaker AI debe tener al menos 100 GB de almacenamiento para poder crear y usar la aplicación SageMaker Canvas.

Si creó su dominio a través de la consola de SageMaker IA, se aprovisiona suficiente espacio de almacenamiento de forma predeterminada y no necesita realizar ninguna acción adicional. Si has creado tu dominio o perfil de usuario con [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)o [ CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) APIs, asegúrate de establecer el `MaximumEbsVolumeSizeInGb` valor en 100 GB o más. Para establecer un valor de almacenamiento mayor, puedes crear un nuevo dominio o perfil de usuario, o puedes actualizar un dominio o perfil de usuario existente con [UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)o [ UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html) APIs. 

## Creación de un nuevo espacio
<a name="canvas-spaces-setup-new-space"></a>

En primer lugar, cree un nuevo espacio de Studio que esté configurado para almacenar datos de aplicaciones de Canvas. Este es el espacio que se especifica al crear una nueva aplicación de Canvas en el siguiente paso.

Para crear un espacio, puede usar el AWS SDK para Python (Boto3) o el AWS CLI.

------
#### [ SDK for Python (Boto3) ]

En el siguiente ejemplo, se muestra cómo utilizar el AWS SDK para Python (Boto3) `create_space` método para crear un espacio que pueda utilizar para las aplicaciones de Canvas. Asegúrese de especificar estos parámetros:
+ `DomainId`: especifique el ID de su dominio de SageMaker IA. Para encontrar tu ID, puedes ir a la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)y localizar tu dominio en la sección **Dominios**.
+ `SpaceName`: especifique un nombre para el nuevo espacio.
+ `EbsVolumeSizeinGb`: especifique el tamaño del volumen de almacenamiento para su espacio (en GB). El valor mínimo es `5` y el máximo, `16384`.
+ `SharingType`: especifique este campo como `Private`. Para obtener más información, consulte [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md).
+ `OwnerUserProfileName`: especifique el nombre del perfil de usuario. Para encontrar los nombres de los perfiles de usuario asociados a un dominio, puedes ir a la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)y localizar tu dominio en la sección **Dominios**. En la configuración del dominio, puede ver los perfiles de usuario.
+ `AppType`: especifique este campo como `Canvas`.

```
response = client.create_space(
    DomainId='<your-domain-id>', 
    SpaceName='<your-new-space-name>',
    SpaceSettings={
        'AppType': 'Canvas',
        'SpaceStorageSettings': {
            'EbsStorageSettings': {
                'EbsVolumeSizeInGb': <storage-volume-size>
            }
        },
    },
    OwnershipSettings={
        'OwnerUserProfileName': '<your-user-profile>'
    },
    SpaceSharingSettings={
        'SharingType': 'Private'
    }  
)
```

------
#### [ AWS CLI ]

En el siguiente ejemplo, se muestra cómo utilizar el AWS CLI `create-space` método para crear un espacio que pueda utilizar para las aplicaciones de Canvas. Asegúrese de especificar estos parámetros:
+ `domain-id`: especifique el ID de su dominio. Para encontrar su ID, puede ir a la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)y localizar su dominio en la sección **Dominios**.
+ `space-name`: especifique un nombre para el nuevo espacio.
+ `EbsVolumeSizeinGb`: especifique el tamaño del volumen de almacenamiento para su espacio (en GB). El valor mínimo es `5` y el máximo, `16384`.
+ `SharingType`: especifique este campo como `Private`. Para obtener más información, consulte [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md).
+ `OwnerUserProfileName`: especifique el nombre del perfil de usuario. Para encontrar los nombres de los perfiles de usuario asociados a un dominio, puedes ir a la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)y localizar tu dominio en la sección **Dominios**. En la configuración del dominio, puede ver los perfiles de usuario.
+ `AppType`: especifique este campo como `Canvas`.

```
  
create-space
--domain-id <your-domain-id>
--space-name <your-new-space-name>  
--space-settings '{
        "AppType": "Canvas", 
        "SpaceStorageSettings": {
            "EbsStorageSettings": {"EbsVolumeSizeInGb": <storage-volume-size>}
        },
     }'
--ownership-settings '{"OwnerUserProfileName": "<your-user-profile>"}'
--space-sharing-settings '{"SharingType": "Private"}'
```

------

Ahora debería tener un espacio. Haga un seguimiento del nombre de su espacio para el siguiente paso.

## Creación de una nueva aplicación de Canvas.
<a name="canvas-spaces-setup-new-app"></a>

Después de crear un espacio, cree una nueva aplicación de Canvas que especifique el espacio como ubicación de almacenamiento.

Para crear una nueva aplicación de Canvas, puedes usar la AWS SDK para Python (Boto3) o la AWS CLI.

**importante**  
Debe usar el AWS SDK para Python (Boto3) o el AWS CLI para crear su aplicación Canvas. No se admite especificar un espacio personalizado al crear aplicaciones de Canvas a través de la consola de SageMaker IA.

------
#### [ SDK for Python (Boto3) ]

En el siguiente ejemplo, se muestra cómo utilizar el AWS SDK para Python (Boto3) `create_app` método para crear una nueva aplicación de Canvas. Asegúrese de especificar estos parámetros:
+ `DomainId`: especifique el ID de su dominio de SageMaker IA.
+ `SpaceName`: utilice el nombre del espacio que ha creado en el paso anterior.
+ `AppType`: especifique este campo como `Canvas`.
+ `AppName`: especifique `default` como nombre de la aplicación.

```
response = client.create_app(  
    DomainId='<your-domain-id>',
    SpaceName='<your-space-name>',
    AppType='Canvas', 
    AppName='default'  
)
```

------
#### [ AWS CLI ]

El siguiente ejemplo muestra cómo utilizar el AWS CLI `create-app` método para crear una nueva aplicación de Canvas. Asegúrese de especificar estos parámetros:
+ `DomainId`: especifique el ID de su dominio de SageMaker IA. 
+ `SpaceName`: utilice el nombre del espacio que ha creado en el paso anterior.
+ `AppType`: especifique este campo como `Canvas`.
+ `AppName`: especifique `default` como nombre de la aplicación.

```
create-app
--domain-id <your-domain-id>
--space-name <your-space-name>
--app-type Canvas
--app-name default
```

------

Ahora debería tener una nueva aplicación de Canvas que utilice un espacio de Studio personalizado como ubicación de almacenamiento de los datos de la aplicación.

**importante**  
Cada vez que elimine la aplicación de Canvas (o cierre sesión) y tenga que volver a crearla, debe proporcionar su espacio en el campo `SpaceName` para asegurarse de que lo utilice Canvas.

El espacio se asocia al perfil de usuario que especificó en la configuración del espacio. Puede eliminar su aplicación de Canvas sin eliminar el espacio y los datos almacenados en el espacio permanecerán. Los datos almacenados en su espacio solo se eliminan si elimina su perfil de usuario o si elimina el espacio directamente.

# Concesión de permisos a sus usuarios para crear modelos personalizados de predicción de imágenes y textos
<a name="canvas-set-up-cv-nlp"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

En Amazon SageMaker Canvas, puede crear [modelos personalizados](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) para satisfacer sus necesidades empresariales específicas. Dos de estos tipos de modelos personalizados son la predicción de imágenes de etiqueta única y la predicción de texto multicategoría. Los permisos para crear estos tipos de modelos están incluidos en la denominada política AWS Identity and Access Management (IAM) [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess), que SageMaker AI asocia de forma predeterminada a la función de ejecución de IAM del usuario si deja activados los [permisos básicos de Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites). Si utiliza una configuración de IAM personalizada, debe añadir permisos de forma explícita al rol de ejecución de IAM del usuario para que pueda crear tipos de modelos de predicción de texto e imágenes personalizados. Para conceder los permisos necesarios para crear modelos de predicción de imágenes y textos, lea la siguiente sección para aprender a asociar una política de permisos mínimos a su rol.

Para agregar los permisos al rol de IAM de su usuario, haga lo siguiente:

1. Vaya a la [consola de IAM](https://console.aws.amazon.com/iamv2).

1. Elija **Roles**.

1. En el cuadro de búsqueda, busque el rol de IAM del usuario por su nombre y selecciónelo.

1. En la página del rol del usuario, en **Permisos**, seleccione **Agregar permisos**.

1. Elija **Crear política insertada**.

1. Seleccione la pestaña JSON y pegue la siguiente política de permisos mínimos en el editor.

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CreateAutoMLJobV2",
                   "sagemaker:DescribeAutoMLJobV2"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Elija **Revisar política**.

1. Introduzca un **Nombre** para la política.

1. Elija **Crear política**.

*Para obtener más información sobre las políticas AWS administradas, consulte Políticas [administradas y políticas integradas en la Guía del](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) usuario de IAM.*

# Concesión de permisos a los usuarios para usar características de Amazon Bedrock e IA generativa en Canvas
<a name="canvas-fine-tuning-permissions"></a>

Las funciones de IA generativa de Amazon SageMaker Canvas se basan en los modelos básicos de Amazon Bedrock, que son modelos de lenguaje de gran tamaño (LLMs) que tienen la capacidad de entender y generar texto similar al humano. En esta página, se describe cómo conceder los permisos necesarios para las siguientes funciones de Canvas: SageMaker 
+ [Chatea con modelos de Amazon Bedrock y compáralos: accede e inicia conversaciones con modelos](canvas-fm-chat.md) de Amazon Bedrock a través de Canvas. SageMaker 
+ [Utilice el chat para la característica de preparación de datos de Data Wrangler](canvas-chat-for-data-prep.md): utilice lenguaje natural para explorar, visualizar y transformar los datos. Esta característica utiliza tecnología Anthropic Claude 2.
+ [Afine los modelos fundacionales de Amazon Bedrock](canvas-fm-chat-fine-tune.md): afine un modelo fundacional de Amazon Bedrock a partir de sus propios datos para recibir respuestas personalizadas.

Para utilizar estas características, primero debe solicitar acceso al modelo específico de Amazon Bedrock que desea utilizar. A continuación, añada los permisos de AWS IAM necesarios y una relación de confianza con Amazon Bedrock a la función de ejecución del usuario. Para conceder los permisos al rol puede elegir uno de los siguientes métodos:
+ Crea un nuevo dominio o perfil de usuario de Amazon SageMaker AI y activa los permisos de Amazon Bedrock. Para obtener más información, consulte [Cómo empezar a usar Amazon SageMaker Canvas](canvas-getting-started.md).
+ Edita la configuración de un dominio o perfil de usuario de Amazon SageMaker AI existente.
+ Añada manualmente permisos y una relación de confianza al rol de IAM de un dominio o un usuario.

## Paso 1: adición de acceso al modelo de Amazon Bedrock
<a name="canvas-bedrock-access"></a>

El acceso a los modelos de Amazon Bedrock no se concede de forma predeterminada, por lo que debe ir a la consola de Amazon Bedrock para solicitar el acceso a los modelos de su AWS cuenta.

Para obtener información sobre cómo solicitar acceso a un modelo de Amazon Bedrock específico, siga el procedimiento para **Añadir acceso a modelos** en la página [Administrar el acceso a modelos fundacionales de Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html) en la *Guía del usuario de Amazon Bedrock*.

## Paso 2: concesión de permisos al rol de IAM
<a name="canvas-bedrock-iam-permissions"></a>

Al configurar su dominio o perfil de usuario de Amazon SageMaker AI, la función de ejecución de IAM del usuario debe tener la [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)política adjunta, así como una relación de confianza con Amazon Bedrock, de modo que su usuario pueda acceder a los modelos de Amazon Bedrock desde Canvas. SageMaker 

Puede modificar la configuración del dominio y crear una nueva función de ejecución (a la que SageMaker AI le asignará los permisos necesarios) o especificar una función existente.

Como alternativa, puede modificar manualmente los permisos de un rol de IAM existente a través de la consola de IAM.

Ambos métodos se describen en las siguientes secciones.

### Concesión de permisos a través de la configuración del dominio
<a name="canvas-fine-tuning-permissions-console"></a>

Puede editar la configuración de su dominio o perfil de usuario para activar la **configuración de Canvas Ready-to-use models** y especificar un rol de Amazon Bedrock.

Para editar la configuración del dominio y conceder acceso a modelos de Amazon Bedrock para usuarios de Canvas del dominio, haga lo siguiente:

1. Vaya a la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación izquierdo, seleccione **Dominios**.

1. En la lista de dominios, seleccione su dominio.

1. Elija la pestaña **Configuraciones de aplicaciones**.

1. En la sección **Canvas**, seleccione **Editar**.

1. Se abre la página **Editar la configuración de Canvas**. Para la sección de **configuración de Ready-to-use los modelos de Canvas**, haga lo siguiente:

   1. **Active la opción Habilitar Ready-to-use modelos de Canvas**.

   1. Para el **rol de Amazon Bedrock**, seleccione **Crear y usar un nuevo rol de ejecución** para crear un nuevo rol de ejecución de IAM que tenga la [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)política adjunta y una relación de confianza con Amazon Bedrock. Amazon Bedrock asume este rol de IAM cuando accede a los modelos de Amazon Bedrock, utiliza el chat para la característica de preparación de datos o afina los modelos de Amazon Bedrock en Canvas. Si ya tiene un rol de ejecución con una relación de confianza, seleccione **Usar un rol de ejecución existente** y elija un rol en el menú desplegable.

1. Elija **Enviar** para guardar los cambios.

Ahora debe tener los permisos necesarios para acceder a los modelos de Amazon Bedrock, utilizar el chat para la característica de preparación de datos y afinar los modelos de Amazon Bedrock en Canvas.

Puede usar el mismo procedimiento anterior para editar la configuración de un usuario individual, con la diferencia de que debe ir al perfil del usuario individual desde la página del dominio y editar la configuración del usuario. Los permisos concedidos a un usuario individual no se aplican a otros usuarios del dominio, mientras que los permisos concedidos a través de la configuración del dominio se aplican a todos los perfiles de usuario del dominio.

Para obtener más información sobre cómo editar la configuración del dominio, consulte [Visualización y edición de dominios](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view-edit.html).

### Concesión manual de permisos a través de IAM
<a name="canvas-fine-tuning-permissions-manual"></a>

Puede conceder permisos manualmente a los usuarios para acceder y afinar los modelos de Amazon Bedrock en Canvas añadiendo permisos al rol de IAM especificado para el dominio o perfil de usuario. El rol de IAM debe tener la [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)política adjunta y una relación de confianza con Amazon Bedrock.

En la siguiente sección se muestra cómo asociar la política al rol de IAM y crear una relación de confianza con Amazon Bedrock.

En primer lugar, tome nota del rol de IAM de su dominio o perfil de usuario. Tenga en cuenta que los permisos concedidos a un usuario individual no se aplican a otros usuarios del dominio, mientras que los permisos concedidos a través del dominio se aplican a todos los perfiles de usuario del dominio.

Para configurar la rol de IAM y conceder permisos para afinar modelos fundacionales en Canvas, haga lo siguiente:

1. Vaya a la consola de IAM en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En el panel de navegación izquierdo, elija **Roles**.

1. Busque el rol de IAM del usuario por su nombre en la lista de roles y selecciónelo.

1. En la pestaña **Permissions (Permisos)**, seleccione **Add permissions (Añadir permisos)**. En el menú desplegable, seleccione **Asociar políticas**.

1. Busque la política `AmazonSageMakerCanvasBedrockAccess` y selecciónela.

1. Elija **Agregar permisos**.

1. En la página del rol de IAM, elija la pestaña **Relaciones de confianza**.

1. Elija **Editar la política de confianza**.

1. En el editor de políticas, busque la opción **Agregar una entidad principal** en el panel derecho y seleccione **Añadir**.

1. En el cuadro de diálogo, en **Tipo de entidad principal**, seleccione **Servicios de AWS **.

1. En **ARN**, introduzca **bedrock.amazonaws.com**.

1. Elija **Agregar entidad principal**.

1. Elija **Actualizar política**.

Ahora deberías tener una función de IAM con la [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)política adjunta y una relación de confianza con Amazon Bedrock. Para obtener información sobre las políticas AWS administradas, consulte [Políticas administradas y políticas integradas en la Guía del usuario](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) de *IAM*.

# Actualice SageMaker Canvas para sus usuarios
<a name="canvas-update"></a>

Puede actualizar a la última versión de Amazon SageMaker Canvas como usuario o administrador de TI. Puede actualizar Amazon SageMaker Canvas para un solo usuario a la vez.

Para actualizar la aplicación Amazon SageMaker Canvas, debe eliminar la versión anterior.

**importante**  
Al eliminar la versión anterior de Amazon SageMaker Canvas, no se eliminan los datos ni los modelos que han creado los usuarios.

Utilice el siguiente procedimiento para iniciar sesión AWS, abrir el dominio Amazon SageMaker AI y actualizar Amazon SageMaker Canvas. Los usuarios pueden empezar a utilizar la aplicación SageMaker Canvas cuando vuelvan a iniciar sesión.

1. Inicie sesión en la consola Amazon SageMaker AI en [Amazon SageMaker Runtime](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la página **Dominios**, seleccione su dominio.

1. En la lista de **Perfiles de usuario**, seleccione un perfil de usuario.

1. Para ver la lista de **Aplicaciones**, busque la aplicación de Canvas (el **Tipo de aplicación** indica **Canvas**) y seleccione **Eliminar aplicación**.

1. Complete el cuadro de diálogo y elija **Confirmar acción**.

La imagen siguiente muestra la página de perfil del usuario y está resaltada la acción **Eliminar la aplicación** del procedimiento anterior.

![\[Captura de pantalla de la página de perfil de usuario con la acción Eliminar aplicación resaltada.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-update-app-1.png)


# Solicitud de un aumento de cuota
<a name="canvas-requesting-quota-increases"></a>

Es posible que sus usuarios usen AWS los recursos en cantidades que superen las especificadas en sus cuotas. Si sus usuarios tienen recursos limitados y encuentran errores en SageMaker Canvas, puede solicitar un aumento de cuota para ellos.

Para obtener más información sobre las cuotas de SageMaker IA y cómo solicitar un aumento de las cuotas, consulte [Cuotas](https://docs.aws.amazon.com/sagemaker/latest/dg/regions-quotas.html#regions-quotas-quotas).

Amazon SageMaker Canvas utiliza los siguientes servicios para procesar las solicitudes de sus usuarios:
+ Piloto SageMaker automático Amazon
+ Dominio Amazon SageMaker Studio Classic

Para obtener una lista de las cuotas disponibles para las operaciones de SageMaker Canvas, consulta los [puntos de conexión y las cuotas de Amazon SageMaker AI](https://docs.aws.amazon.com//general/latest/gr/sagemaker.html).

## Solicite un aumento del número de instancias para crear modelos personalizados
<a name="canvas-requesting-quota-increases-instances"></a>

Al crear un modelo personalizado, si detecta un error durante el análisis posterior a la creación que indique que debe aumentar la cuota de las instancias `ml.m5.2xlarge`, utilice la siguiente información para resolver el problema.

Debe aumentar la cuota de puntos de conexión de SageMaker AI Hosting para el tipo de `ml.m5.2xlarge` instancia hasta un valor distinto de cero en su AWS cuenta. Tras crear un modelo, SageMaker Canvas lo aloja en un punto final de SageMaker AI Hosting y lo utiliza para generar el análisis posterior a la creación. Si no aumentas la cuota de cuenta predeterminada a 0 para las `ml.m5.2xlarge` instancias, SageMaker Canvas no podrá completar este paso y generará un error durante el análisis posterior a la creación.

Para seguir el procedimiento para aumentar la cuota, consulte [Solicitud de aumento de cuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) en la *Guía de usuario de Service Quotas*.

# Concesión a los usuarios de permisos para importar datos de Amazon Redshift
<a name="canvas-redshift-permissions"></a>

Es posible que sus usuarios tengan conjuntos de datos almacenados en Amazon Redshift. Antes de que los usuarios puedan importar datos de Amazon Redshift a SageMaker Canvas, debe añadir la política `AmazonRedshiftFullAccess` gestionada a la función de ejecución de IAM que ha utilizado para el perfil de usuario y añadir Amazon Redshift como principal de servicio a la política de confianza de la función. También debe asociar el rol de ejecución de IAM a su clúster de Amazon Redshift. Complete los procedimientos de las siguientes secciones para conceder a sus usuarios los permisos necesarios para importar datos de Amazon Redshift.

## Agregar permisos de Amazon Redshift a su rol de IAM
<a name="canvas-redshift-permissions-iam-role"></a>

Debe conceder permisos de Amazon Redshift para el rol de IAM especificado en su perfil de usuario.

Para agregar la política `AmazonRedshiftFullAccess` al rol de IAM de su usuario, haga lo siguiente:

1. Inicie sesión en la consola de IAM en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Elija **Roles**.

1. En el cuadro de búsqueda, busque el rol de IAM del usuario por su nombre y selecciónelo.

1. En la página del rol del usuario, en **Permisos**, seleccione **Agregar permisos**.

1. Seleccione **Asociar políticas**.

1. Busque la política gestionada `AmazonRedshiftFullAccess` y selecciónela.

1. Elija **Asociar políticas** para asociar la política al rol.

Tras asociar la política, ahora la sección de **Permisos** del rol debería incluir `AmazonRedshiftFullAccess`.

Para agregar Amazon Redshift como entidad principal de servicio al rol de IAM, haga lo siguiente.

1. En la misma página para el rol de IAM, en **Relaciones de confianza**, elija **Editar política de confianza**.

1. En el editor **Editar política de confianza**, actualice la política de confianza para añadir Amazon Redshift como entidad principal de servicio. Un rol de IAM que permita a Amazon Redshift obtener acceso a otros servicios de AWS en su nombre tiene la siguiente relación de confianza:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "redshift.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Tras editar la política de confianza, seleccione **Actualizar política**.

Ahora debe tener un rol de IAM con la política `AmazonRedshiftFullAccess` asociada y una relación de confianza establecida con Amazon Redshift, que dé a los usuarios permiso para importar datos de Amazon Redshift a Canvas. SageMaker *Para obtener más información sobre las políticas AWS administradas, consulte Políticas [administradas y políticas integradas en la Guía del](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) usuario de IAM.*

## Asociación del rol de IAM al clúster de Amazon Redshift
<a name="canvas-redshift-permissions-cluster"></a>

En la configuración de su clúster de Amazon Redshift, debe asociar el rol de IAM al que concedió los permisos en la sección anterior.

Pasos para asociar el rol de IAM a su clúster, haga lo siguiente.

1. Inicie sesión en la consola de Amazon Redshift en. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. En el menú de navegación, elija **Clústeres** y, a continuación, elija el nombre del clúster que desea actualizar.

1. En el menú desplegable **Acciones**, seleccione **Administrar los roles de IAM**. Aparece la página **Permisos del clúster**.

1. Para **Roles de IAM disponibles**, introduzca el ARN o el nombre del rol de IAM, o elija el rol de IAM de la lista.

1. Luego, elija **Asociar rol de IAM** para agregarlo a la lista de **Roles de IAM asociados** del clúster.

1. Seleccione **Guardar cambios** para asociar el rol de IAM al clúster.

Amazon Redshift modifica el clúster para completar el cambio y el rol de IAM para el que anteriormente concedía permisos de Amazon Redshift ahora está asociado a su clúster de Amazon Redshift. Sus usuarios ahora tienen los permisos necesarios para importar datos de Amazon Redshift a SageMaker Canvas.

# Otorgue a sus usuarios permisos para enviar predicciones a Quick
<a name="canvas-quicksight-permissions"></a>

Debe conceder permisos a sus usuarios de SageMaker Canvas para enviar predicciones por lotes a Quick. En Quick, los usuarios pueden crear análisis e informes con un conjunto de datos y preparar paneles para compartir sus resultados. Para obtener más información sobre cómo enviar predicciones QuickSight para su análisis, consulte[Envía las predicciones a Quick](canvas-send-predictions.md).

Para conceder los permisos necesarios para compartir las predicciones por lotes con los usuarios QuickSight, debe añadir una política de permisos a la función de ejecución AWS Identity and Access Management (IAM) que ha utilizado para el perfil de usuario. En la siguiente sección se muestra cómo asociar una política de permisos mínimos a su rol.

**Agregar la política de permisos a su rol de IAM**

**Para agregar la política de permisos, siga este procedimiento:**

1. Inicie sesión en la consola de IAM en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Elija **Roles**.

1. En el cuadro de búsqueda, busque el rol de IAM del usuario por su nombre y selecciónelo.

1. En la página del rol del usuario, en **Permisos**, seleccione **Agregar permisos**.

1. Elija **Crear política insertada**.

1. Seleccione la pestaña JSON y pegue la siguiente política de permisos mínimos en el editor. Sustituya los marcadores de posición `<your-account-number>` por su número de cuenta de AWS .

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "quicksight:CreateDataSet",
                   "quicksight:ListUsers",
                   "quicksight:ListNamespaces",
                   "quicksight:CreateDataSource",
                   "quicksight:PassDataSet",
                   "quicksight:PassDataSource"
               ],
               "Resource": [
                   "arn:aws:quicksight:*:111122223333:datasource/*",
                   "arn:aws:quicksight:*:111122223333:user/*",
                   "arn:aws:quicksight:*:111122223333:namespace/*",
                   "arn:aws:quicksight:*:111122223333:dataset/*"
               ]
           }
       ]
   }
   ```

------

1. Elija **Revisar política**.

1. Introduzca un **Nombre** para la política.

1. Elija **Crear política**.

Ahora debería incorporar a su función de ejecución una política de IAM gestionada por el cliente que conceda a sus usuarios de Canvas los permisos necesarios para enviar predicciones por lotes a los usuarios. QuickSight

# Administración de aplicaciones
<a name="canvas-manage-apps"></a>

Las siguientes secciones describen cómo puede administrar sus aplicaciones de SageMaker Canvas. Puede ver, eliminar o volver a lanzar sus aplicaciones desde la sección **Dominios** de la consola de SageMaker IA.

**Topics**
+ [Comprobación de aplicaciones activas](canvas-manage-apps-active.md)
+ [Eliminación de una aplicación de](canvas-manage-apps-delete.md)
+ [Reinicialización de una aplicación](canvas-manage-apps-relaunch.md)

# Comprobación de aplicaciones activas
<a name="canvas-manage-apps-active"></a>

Para comprobar si tiene alguna aplicación de SageMaker Canvas en ejecución activa, utilice el siguiente procedimiento.

1. Abra la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación izquierdo, selecciona **Panel de control**.

1. En la sección **LCNC**, hay una fila para Canvas que indica cuántas aplicaciones activas se están ejecutando. Elija el número para ver la lista de aplicaciones.

La columna **Estado** muestra el estado de la aplicación, como **Lista**, **Pendiente** o **Eliminada**. Si la aplicación está **lista, significa** que su instancia de espacio de trabajo de SageMaker Canvas está activa. Puede eliminar la aplicación de la consola o volver a abrir Canvas y cerrar sesión.

# Eliminación de una aplicación de
<a name="canvas-manage-apps-delete"></a>

Si desea cerrar su instancia de espacio de trabajo de SageMaker Canvas, puede cerrar sesión en la aplicación SageMaker Canvas o eliminar la aplicación de la consola de SageMaker IA. Una *instancia de espacio* de trabajo está dedicada a su uso desde que comienza a usar SageMaker Canvas hasta el momento en que deja de usarla. Al eliminar la aplicación, solo se cierra la instancia de espacio de trabajo y se detienen los cargos de la instancia de espacio de trabajo. Los modelos y los conjuntos de datos no se ven afectados, pero las tareas de creación rápida se reinician automáticamente cuando vuelve a iniciar la aplicación.

Para eliminar la aplicación Canvas a través de la AWS consola, cierra primero la pestaña del navegador en la que estaba abierta la aplicación Canvas. A continuación, utilice el siguiente procedimiento para eliminar la aplicación de SageMaker Canvas.

1. Abre la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la página **Dominios**, seleccione su dominio.

1. En la página **de detalles del dominio**, selecciona **Recursos**.

1. En **Aplicaciones**, busca la aplicación que diga **Canvas** en la columna **Tipo de aplicación**.

1. Seleccione la casilla de verificación situada junto a la aplicación Canvas y elija **Detener**.

Ahora ha detenido correctamente la aplicación y cerrado la instancia del espacio de trabajo.

También puede cerrar la instancia del espacio de trabajo [cerrando sesión](canvas-log-out.md) en la aplicación SageMaker Canvas.

# Reinicialización de una aplicación
<a name="canvas-manage-apps-relaunch"></a>

Si elimina o cierra sesión en su aplicación SageMaker Canvas y desea volver a iniciarla, utilice el siguiente procedimiento.

1. Navegue hasta la [consola de SageMaker IA.](https://console.aws.amazon.com/sagemaker/)

1. En el panel de navegación, elija **Canvas**.

1. En la página de inicio de SageMaker Canvas, en el cuadro **Cómo empezar**, selecciona tu perfil de usuario en el menú desplegable.

1. Seleccione **Abrir Canvas** para abrir la aplicación.

SageMaker Canvas comienza a lanzar la aplicación.

También puede utilizar el siguiente procedimiento secundario si tiene algún problema con el procedimiento anterior.

1. Abre la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la página **Dominios**, seleccione su dominio.

1. En la página de **detalles del dominio**, en **Perfiles de usuario**, seleccione el nombre del perfil de usuario de la aplicación SageMaker Canvas que desee ver.

1. Elija **Lanzar** y seleccione **Canvas** en la lista desplegable.

SageMaker Canvas comienza a lanzar la aplicación.

# Configurar Amazon SageMaker Canvas en una VPC sin acceso a Internet
<a name="canvas-vpc"></a>

La aplicación Amazon SageMaker Canvas se ejecuta en un contenedor de una Amazon Virtual Private Cloud (VPC) AWS gestionada. Si desea controlar aún más el acceso a sus recursos o ejecutar SageMaker Canvas sin acceso público a Internet, puede configurar su dominio de Amazon SageMaker AI y los ajustes de VPC. Dentro de su propia VPC, puede configurar ajustes como grupos de seguridad (firewalls virtuales que controlan el tráfico entrante y saliente de las instancias de Amazon EC2) y subredes (rangos de direcciones IP en su VPC). Para obtener más información VPCs, consulte [Cómo funciona Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html).

Cuando la aplicación SageMaker Canvas se ejecuta en la VPC AWS gestionada, puede interactuar con otros AWS servicios mediante una conexión a Internet o mediante puntos de conexión de la VPC creados en una VPC gestionada por el cliente (sin acceso público a Internet). SageMaker Las aplicaciones de Canvas pueden acceder a estos puntos finales de la VPC a través de una interfaz de red creada por Studio Classic que proporciona conectividad a la VPC gestionada por el cliente. El comportamiento predeterminado de la aplicación SageMaker Canvas es tener acceso a Internet. Cuando se utiliza una conexión a Internet, los contenedores de los trabajos anteriores acceden a los recursos de AWS a través de Internet, como los buckets de Amazon S3, donde se almacenan los datos de entrenamiento y los artefactos del modelo.

Sin embargo, si tiene requisitos de seguridad para controlar el acceso a sus contenedores de datos y trabajos, le recomendamos que configure SageMaker Canvas y su VPC para que no se pueda acceder a sus datos y contenedores a través de Internet. SageMaker La IA usa los ajustes de configuración de VPC que especificas al configurar tu dominio para SageMaker Canvas.

Si desea configurar su aplicación SageMaker Canvas sin acceso a Internet, debe configurar los ajustes de la VPC al incorporarse al [dominio Amazon SageMaker AI](gs-studio-onboard.md), configurar los puntos de enlace de la VPC y conceder los permisos necesarios. AWS Identity and Access Management Para obtener información sobre la configuración de una VPC en Amazon SageMaker AI, consulte. [Elección de una Amazon VPC](onboard-vpc.md) En las siguientes secciones se describe cómo ejecutar SageMaker Canvas en una VPC sin acceso público a Internet.

## Configurar Amazon SageMaker Canvas en una VPC sin acceso a Internet
<a name="canvas-vpc-configure"></a>

Puede enviar tráfico desde SageMaker Canvas a otros AWS servicios a través de su propia VPC. Si su propia VPC no tiene acceso público a Internet y ha configurado su dominio en modo **solo VPC**, SageMaker Canvas tampoco tendrá acceso público a Internet. Esto incluye todas las solicitudes, como el acceso a conjuntos de datos en Amazon S3 o los trabajos de entrenamiento para compilaciones estándares, y las solicitudes pasan por los puntos de conexión de VPC de su VPC en lugar de por el Internet público. Al incorporarse al dominio y [Elección de una Amazon VPC](onboard-vpc.md), puede especificar su propia VPC como VPC predeterminada para el dominio, junto con la configuración de subred y grupo de seguridad que desee. A continuación, la SageMaker IA crea una interfaz de red en la VPC que SageMaker Canvas utiliza para acceder a los puntos finales de la VPC de la VPC.

Asegúrese de configurar uno o más grupos de seguridad en su VPC con reglas de entrada y salida que permitan [tráfico TCP dentro del grupo de seguridad](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances). Esto es necesario para la conectividad entre la aplicación de Jupyter Server y las aplicaciones de puerta de enlace de kernel. Debe permitir el acceso al menos a los puertos del rango`8192-65535`. Además, asegúrese de crear un grupo de seguridad distinto para cada perfil de usuario y agregue el acceso entrante desde ese mismo grupo de seguridad. No se recomienda reutilizar un grupo de seguridad de nivel de dominio para perfiles de usuario. Si el grupo de seguridad de nivel de dominio permite el acceso entrante a sí mismo, todas las aplicaciones del dominio tendrán acceso a todas las demás aplicaciones del dominio. Tenga en cuenta que la configuración del grupo de seguridad y la subred se establece una vez que haya terminado de incorporarse al dominio.

Al incorporarte al dominio, si eliges **solo Internet público** como tipo de acceso a la red, la VPC SageMaker está gestionada por IA y permite el acceso a Internet.

Puede cambiar este comportamiento si elige **solo VPC** para que la SageMaker IA envíe todo el tráfico a una interfaz de red que la SageMaker IA cree en la VPC especificada. Al elegir esta opción, debe proporcionar las subredes, los grupos de seguridad y los puntos de enlace de VPC necesarios para comunicarse con SageMaker la API SageMaker y AI Runtime, y AWS varios servicios, como Amazon S3 y CloudWatch Amazon, que utiliza Canvas. SageMaker Tenga en cuenta que solo puede importar datos de buckets de Amazon S3 ubicados en la misma región que su VPC.

Los siguientes procedimientos muestran cómo puede configurar estos ajustes para usar SageMaker Canvas sin Internet.

### Paso 1: Incorporación al dominio Amazon SageMaker AI
<a name="canvas-vpc-configure-onboard"></a>

[Para enviar el tráfico de SageMaker Canvas a una interfaz de red de su propia VPC en lugar de hacerlo a través de Internet, especifique la VPC que quiere usar al incorporarse al dominio de Amazon AI. SageMaker ](gs-studio-onboard.md) También debes especificar al menos dos subredes en tu VPC SageMaker que pueda usar la IA. Elija la **Configuración estándar** y lleve a cabo el siguiente procedimiento al configurar la **Sección de red y almacenamiento** del dominio.

1. Seleccione la **VPC** que desee.

1. Elija dos o más **Subredes**. Si no especificas las subredes, la SageMaker IA utilizará todas las subredes de la VPC.

1. Elija uno o varios **Grupos de seguridad**.

1. Elija **Solo VPC** para desactivar el acceso directo a Internet en la AWS VPC gestionada en la que se SageMaker aloja Canvas.

Tras deshabilitar el acceso a Internet, finalice el proceso de incorporación para configurar su dominio. Para obtener más información sobre la configuración de VPC para el dominio de Amazon SageMaker AI, consulte. [Elección de una Amazon VPC](onboard-vpc.md)

### Paso 2: configuración de puntos de conexión de VPC y accesos
<a name="canvas-vpc-configure-endpoints"></a>

**nota**  
Para configurar Canvas en su propia VPC, debe habilitar los nombres de host de DNS privados para los puntos de conexión de VPC. Para obtener más información, consulte [Conectarse a la SageMaker IA a través de un punto final de interfaz de VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/interface-vpc-endpoint.html).

SageMaker Canvas solo accede a otros AWS servicios para administrar y almacenar datos para su funcionalidad. Por ejemplo, se conecta a Amazon Redshift si los usuarios acceden a una base de datos de Amazon Redshift. Puede conectarse a un AWS servicio como Amazon Redshift mediante una conexión a Internet o un punto final de VPC. Usa puntos de conexión de VPC si quieres configurar conexiones desde tu VPC a AWS servicios que no utilizan la Internet pública.

Un punto final de VPC crea una conexión privada a un AWS servicio que utiliza una ruta de red aislada de la Internet pública. Por ejemplo, si configura el acceso a Amazon S3 mediante un punto de enlace de VPC desde su propia VPC, la aplicación SageMaker Canvas puede acceder a Amazon S3 a través de la interfaz de red de su VPC y, después, a través del punto de enlace de VPC que se conecta a Amazon S3. La comunicación entre SageMaker Canvas y Amazon S3 es privada.

Para obtener más información acerca de la configuración de puntos de conexión de VPC, consulte [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html). Si utiliza modelos de Amazon Bedrock en Canvas con una VPC, para obtener más información sobre cómo controlar el acceso a sus datos, consulte [Protección de trabajos mediante una VPC](https://docs.aws.amazon.com/bedrock/latest/userguide/usingVPC.html#configureVPC) en *la Guía del usuario de Amazon Bedrock*.

Los siguientes son los puntos finales de VPC para cada servicio que puede usar con Canvas: SageMaker 


| Servicio | Punto de conexión | Tipo de punto de conexión | 
| --- | --- | --- | 
|  AWS Application Auto Scaling  |  com.amazonaws. *Region*.escalado automático de aplicaciones  | Interfaz | 
|  Amazon Athena  |  com.amazonaws. *Region*.athena  | Interfaz | 
|  Amazon SageMaker AI  |  com.amazonaws. *Region*.sagemaker.api com.amazonaws. *Region*.sagemaker.runtime com.amazonaws. *Region*.cuaderno  | Interfaz | 
|  Asistente de ciencia de datos de Amazon SageMaker AI  |  com.amazonaws. *Region*. sagemaker-data-science-assistant  | Interfaz | 
|  AWS Security Token Service  |  com.amazonaws. *Region*.sts  | Interfaz | 
|  Amazon Elastic Container Registry (Amazon ECR)  |  com.amazonaws. *Region*.ecr.api com.amazonaws. *Region*.ecr.dkr  | Interfaz | 
|  Amazon Elastic Compute Cloud (Amazon EC2)  |  com.amazonaws. *Region*.ec2  | Interfaz | 
|  Amazon Simple Storage Service (Amazon S3)  |  com.amazonaws. *Region*.s3  | Puerta de enlace | 
|  Amazon Redshift  |  com.amazonaws. *Region*.redshift-data  | Interfaz | 
|  AWS Secrets Manager  |  com.amazonaws. *Region*.administrador de secretos  | Interfaz | 
|  AWS Systems Manager  |  com.amazonaws. *Region*.ssm  | Interfaz | 
|  Amazon CloudWatch  |  com.amazonaws. *Region*.monitoreo  | Interfaz | 
|  Amazon CloudWatch Logs  |  com.amazonaws. *Region*.logs  | Interfaz | 
|  Amazon Forecast  |  com.amazonaws. *Region*.pronóstico com.amazonaws. *Region*.forecastquery  | Interfaz | 
|  Amazon Textract  |  com.amazonaws. *Region*.t extract  | Interfaz | 
|  Amazon Comprehend  |  com.amazonaws. *Region*.comprender  | Interfaz | 
|  Amazon Rekognition  |  com.amazonaws. *Region*.reconocimiento  | Interfaz | 
|  AWS Glue  |  com.amazonaws. *Region*.pegamento  | Interfaz | 
|  AWS Application Auto Scaling  |  com.amazonaws. *Region*.escalado automático de aplicaciones  | Interfaz | 
|  Amazon Relational Database Service (Amazon RDS)  |  com.amazonaws. *Region*.rds  | Interfaz | 
|  Amazon Bedrock (véase la nota después de la tabla)  |  com.amazonaws. *Region*.bedrock-runtime  | Interfaz | 
|  Amazon Kendra  |  com.amazonaws. *Region*.kendra  | Interfaz | 
|  Amazon EMR sin servidor  |  com.amazonaws. *Region*.emr-serverless  | Interfaz | 
|  Amazon Q Developer (véase la nota después de la tabla)  |  com.amazonaws. *Region*q.  | Interfaz | 

**nota**  
El punto de conexión de VPC de Amazon Q Developer solo está disponible actualmente en la región Este de EE. UU. (Norte de Virginia). Para conectarse desde otras regiones, puede elegir una de las siguientes opciones según sus preferencias de seguridad e infraestructura:  
**Configurar una puerta de enlace NAT.** Configure una puerta de enlace NAT en la subred privada de su VPC para habilitar la conectividad a Internet en el punto de conexión de Q Developer. Para obtener más información, consulte [Setting up a NAT Gateway in a VPC Private Subnet](https://repost.aws/knowledge-center/nat-gateway-vpc-private-subnet).
**Habilitar el acceso a puntos de conexión de VPC entre regiones.** Configure el acceso a puntos de conexión de VPC entre regiones para Q Developer. Utilice esta opción para conectarse de forma segura sin acceso a Internet. Para obtener más información, consulte [Configuring Cross-Region VPC Endpoint Access](https://repost.aws/knowledge-center/vpc-endpoints-cross-region-aws-services).

**nota**  
En el caso de Amazon Bedrock, el nombre del servicio de punto de conexión de la interfaz `com.amazonaws.Region.bedrock` ha quedado obsoleto. Cree un nuevo punto de conexión de VPC con el nombre de servicio que aparece en la tabla anterior.  
Además, no se pueden ajustar los modelos de base de Canvas sin acceso a VPCs Internet. Esto se debe a que Amazon Bedrock no admite puntos de enlace de VPC para la personalización de modelos. APIs Para obtener más información sobre cómo afinar un modelo fundacional en Canvas, consulte [Afinamiento de modelos fundacionales](canvas-fm-chat-fine-tune.md).

También debe añadir una política de puntos de conexión para que Amazon S3 controle el acceso AWS principal a su punto de enlace de VPC. Para obtener información sobre cómo actualizar la política de puntos de conexión de VPC, consulte [Uso de políticas de punto de conexión para controlar el acceso a puntos de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html).

A continuación, se muestran dos políticas de puntos de punto de conexión de VPC que puede utilizar. Utilice la primera política si solo desea conceder acceso a las funciones básicas de Canvas, como importación de datos y creación de modelos. Utilice la segunda política si quiere desea acceso a las [características adicionales de IA generativa](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html) en Canvas.

------
#### [ Basic VPC endpoint policy ]

La siguiente política concede el acceso necesario a un punto de conexión de VPC para operaciones básicas en Canvas.

```
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:CreateBucket",
                "s3:GetBucketCors",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
```

------
#### [ Generative AI VPC endpoint policy ]

La siguiente política otorga el acceso necesario a su punto de conexión de VPC para realizar operaciones básicas en Canvas, además de utilizar modelos fundacionales de IA generativa.

```
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:CreateBucket",
                "s3:GetBucketCors",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*",
                "arn:aws:s3:::*fmeval/datasets*",
                "arn:aws:s3:::*jumpstart-cache-prod*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
```

------

### Paso 3: Concesión de permisos de IAM
<a name="canvas-vpc-configure-permissions"></a>

El usuario de SageMaker Canvas debe tener los AWS Identity and Access Management permisos necesarios para permitir la conexión a los puntos finales de la VPC. La función de IAM a la que concedas permisos debe ser la misma que utilizaste al incorporarte al dominio de Amazon SageMaker AI. Puede adjuntar la `AmazonSageMakerFullAccess` política gestionada por SageMaker IA a la función de IAM del usuario para concederle los permisos necesarios. Si necesitas permisos de IAM más restrictivos y, en su lugar, utilizas políticas personalizadas, concede el permiso al rol del `ec2:DescribeVpcEndpointServices` usuario. SageMaker Canvas requiere estos permisos para verificar la existencia de los puntos finales de VPC necesarios para los trabajos de construcción estándar. Si detecta estos puntos de conexión de VPC, los trabajos de compilación estándares se ejecutan de forma predeterminada en la VPC. De lo contrario, se ejecutarán en la VPC AWS gestionada predeterminada.

Para obtener instrucciones sobre cómo asociar la política de `AmazonSageMakerFullAccess` IAM al rol de IAM del usuario, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

Para conceder el permiso detallado `ec2:DescribeVpcEndpointServices` al rol de IAM de su usuario, utilice el siguiente procedimiento.

1. Inicie sesión en la consola de [IAM Consola de administración de AWS](https://console.aws.amazon.com/iam/) y ábrala.

1. Seleccione **Roles** en el panel de navegación.

1. En la lista, seleccione el nombre del rol para el que quiera conceder los permisos.

1. Elija la pestaña **Permisos**.

1. Seleccione **Agregar permisos** y, a continuación, **Crear política insertada**.

1. Elija la pestaña **JSON** e introduzca la siguiente política, que otorga el permiso `ec2:DescribeVpcEndpointServices`:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "ec2:DescribeVpcEndpointServices",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Seleccione **Revisar política** y después especifique un **Nombre** para la política (por ejemplo, `VPCEndpointPermissions`).

1. Elija **Crear política**.

El rol de IAM del usuario ahora debería tener permisos para acceder a los puntos de conexión de VPC configurados en su VPC.

### (Opcional) Paso 4: Anular la configuración del grupo de seguridad para usuarios específicos
<a name="canvas-vpc-configure-override"></a>

Si es administrador, es posible que quiera que los distintos usuarios tengan una configuración de VPC diferente o una configuración de VPC específica para cada usuario. Al anular la configuración predeterminada del grupo de seguridad de la VPC para un usuario específico, esta configuración se transfiere a la aplicación SageMaker Canvas de ese usuario.

Puede anular los grupos de seguridad a los que tiene acceso un usuario específico en su VPC al configurar un nuevo perfil de usuario en Studio Classic. Puede usar la llamada a la [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) SageMaker API (o [create\$1user\$1profile](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_user_profile) con la [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) y, luego, en, puede especificar la para el `UserSettings` usuario. `SecurityGroups`

# Configure las conexiones a las fuentes de datos con OAuth
<a name="canvas-setting-up-oauth"></a>

En la siguiente sección se describen los pasos que debe seguir para configurar OAuth las conexiones a las fuentes de datos desde Canvas. SageMaker [OAuth](https://oauth.net/2/)es una plataforma de autenticación común para conceder acceso a los recursos sin compartir contraseñas. Con ella OAuth, puede conectarse rápidamente a sus datos desde Canvas e importarlos para crear modelos. Actualmente, Canvas es compatible con OAuth Snowflake y Salesforce Data Cloud. 

**nota**  
Solo puede establecer una OAuth conexión para cada fuente de datos.

## Configure OAuth para Salesforce Data Cloud
<a name="canvas-setting-up-oauth-salesforce"></a>

 OAuth Para configurar Salesforce Data Cloud, siga estos pasos generales:

1. Inicia sesión en Salesforce Data Cloud.

1. En Salesforce Data Cloud, cree una nueva conexión de aplicación y haga lo siguiente:

   1. Habilite la OAuth configuración.

   1. Cuando se le solicite una URL de devolución de llamada (o la URL del recurso que accede a sus datos), especifique la URL de su aplicación de Canvas. La URL de la aplicación de Canvas tiene este formato: `https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

   1. Copie la clave del consumidor y el secreto.

   1. Copie la URL de autorización y la URL del token.

Para obtener instrucciones más detalladas sobre cómo realizar las tareas anteriores en Salesforce Data Cloud, consulte [Importación de datos de Salesforce Data Cloud.](data-wrangler-import.md#data-wrangler-import-salesforce-data-cloud) en la documentación de Data Wrangler para importar datos desde Salesforce Data Cloud.

Tras habilitar el acceso desde Salesforce Data Cloud y obtener la información de conexión, debe crear un [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)secreto para almacenar la información y añadirla a su dominio o perfil de usuario de Amazon SageMaker AI. Tenga en cuenta que puede agregar un secreto tanto a un dominio como a un perfil de usuario, pero Canvas busca primero los secretos en el perfil de usuario.

Para agregar un secreto a su dominio o perfil de usuario, haga lo siguiente:

1. Ve a la [consola Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. En el panel de navegación izquierdo, seleccione **Dominios**.

1. En la lista de **Dominios**, seleccione su dominio.

   1. Si va a agregar su secreto a su dominio, haga lo siguiente:

      1. Seleccione el dominio.

      1. En la página **Configuración del dominio**, elija la pestaña **Configuración del dominio**.

      1. Elija **Edit (Edición de)**.

   1. Si va a agregar el secreto a su perfil de usuario, haga lo siguiente:

      1. Seleccione el dominio del usuario.

      1. En la página **Configuración del dominio**, seleccione el perfil de usuario.

      1. En la página **Detalles del usuario**, elija **Editar**.

1. En el panel de navegación, elija **Configuración de Canvas**.

1. Para los **OAuth ajustes**, selecciona **Añadir OAuth configuración**.

1. En **Origen de datos**, seleccione **Salesforce Data Cloud**.

1. En **Configuración secreta**, seleccione **Crear un secreto nuevo**. Como alternativa, si ya ha creado un AWS Secrets Manager secreto con sus credenciales, introduzca el ARN del secreto. Si va a crear un nuevo secreto, haga lo siguiente:

   1. En **Proveedor de identidades**, seleccione **SALESFORCE**.

   1. Para el **ID de cliente**, **Secreto de cliente**, **URL de autorización** y **URL de token**, introduzca toda la información que recopiló de Salesforce Data Cloud en el procedimiento anterior.

1. Guarde la configuración de su dominio o perfil de usuario.

Ahora debería poder crear una conexión a sus datos en Salesforce Data Cloud desde Canvas.

## Configure OAuth para Snowflake
<a name="canvas-setting-up-oauth-snowflake"></a>

Para configurar la autenticación de Snowflake, Canvas admite proveedores de identidad que puede utilizar en lugar de que los usuarios introduzcan directamente sus credenciales en Canvas.

Los siguientes son enlaces a la documentación de Snowflake para los proveedores de identidades compatibles con Canvas:
+ [Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html)
+ [Okta](https://docs.snowflake.com/en/user-guide/oauth-okta.html)
+ [Ping Federate](https://docs.snowflake.com/en/user-guide/oauth-pingfed.html)

Este proceso describe los pasos generales que debe dar. Para obtener instrucciones más detalladas sobre cómo realizar estos pasos, puede consultar la sección [Configuración de Snowflake Access OAuth](data-wrangler-import.md#data-wrangler-snowflake-oauth-setup) de la documentación de Data Wrangler sobre la importación de datos de Snowflake.

 OAuth Para configurar Snowflake, haga lo siguiente:

1. Registre Canvas como aplicación con el proveedor de identidades. Esto requiere especificar una URL de redireccionamiento a Canvas, que debe seguir este formato: `https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

1. En el proveedor de identidades, cree un servidor o una API que envíe los OAuth tokens a Canvas para que Canvas pueda acceder a Snowflake. Al configurar el servidor, utilice el código de autorización y actualice los tipos de concesión de los tokens, especifique la duración del token de acceso y establezca una política de actualización de los mismos. Además, en la integración de OAuth seguridad externa de Snowflake, habilite. `external_oauth_any_role_mode`

1. Obtenga la siguiente información del proveedor de identidades: URL del token, URL de autorización, ID de cliente, secreto de cliente. En el caso de Azure AD, recupere también las credenciales del OAuth ámbito.

1. Guarde en AWS Secrets Manager secreto la información recuperada en el paso anterior.

   1. Para Okta y Ping Federate, el formato del secreto debe ser el siguiente:

      ```
      {"token_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/token",
      "client_id":"example-client-id", "client_secret":"example-client-secret", "identity_provider":"OKTA"|"PING_FEDERATE",
      "authorization_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/authorize"}
      ```

   1. En el caso de Azure AD, el secreto también debe incluir las credenciales del OAuth ámbito como `datasource_oauth_scope` campo.

Tras configurar el proveedor de identidad y el secreto, debe crear un [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)secreto para almacenar la información y añadirlo a su dominio o perfil de usuario de Amazon SageMaker AI. Tenga en cuenta que puede agregar un secreto tanto a un dominio como a un perfil de usuario, pero Canvas busca primero los secretos en el perfil de usuario.

Para agregar un secreto a su dominio o perfil de usuario, haga lo siguiente:

1. Ve a la [consola Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. En el panel de navegación izquierdo, seleccione **Dominios**.

1. En la lista de **Dominios**, seleccione su dominio.

   1. Si va a agregar su secreto a su dominio, haga lo siguiente:

      1. Seleccione el dominio.

      1. En la página **Configuración del dominio**, elija la pestaña **Configuración del dominio**.

      1. Elija **Edit (Edición de)**.

   1. Si va a agregar el secreto a su perfil de usuario, haga lo siguiente:

      1. Seleccione el dominio del usuario.

      1. En la página **Configuración del dominio**, seleccione el perfil de usuario.

      1. En la página **Detalles del usuario**, elija **Editar**.

1. En el panel de navegación, elija **Configuración de Canvas**.

1. Para los **OAuth ajustes**, selecciona **Añadir OAuth configuración**.

1. En **Origen de datos**, seleccione **Snowflake**.

1. En **Configuración secreta**, seleccione **Crear un secreto nuevo**. Como alternativa, si ya ha creado un AWS Secrets Manager secreto con sus credenciales, introduzca el ARN del secreto. Si va a crear un nuevo secreto, haga lo siguiente:

   1. En **Proveedor de identidades**, seleccione **SNOWFLAKE**.

   1. Para el **ID de cliente**, **Secreto de cliente**, **URL de autorización** y **URL de token**, introduzca toda la información que recopiló del proveedor de identidades en el procedimiento anterior.

1. Guarde la configuración de su dominio o perfil de usuario.

Ahora debería poder crear una conexión a sus datos en Snowflake desde Canvas.

# Asistencia de la IA generativa para resolver problemas de machine learning en Canvas con Amazon Q Developer
<a name="canvas-q"></a>

Mientras usa Amazon SageMaker Canvas, puede chatear con Amazon Q Developer en lenguaje natural para aprovechar la IA generativa y resolver problemas. Q Developer es un asistente que le ayuda a convertir sus objetivos en tareas de machine learning y describe cada paso del flujo de trabajo de machine learning. Q Developer ayuda a los usuarios de Canvas a reducir la cantidad de tiempo, esfuerzo y experiencia en ciencia de datos necesarios para aprovechar el machine learning y tomar decisiones basadas en datos para sus organizaciones. 

A través de una conversación con Q Developer, puede iniciar acciones en Canvas, como preparar datos, crear un modelo de machine learning, hacer predicciones e implementar un modelo. Q Developer hace sugerencias sobre los próximos pasos y le proporciona contexto a medida que los va completando. También le informa de los resultados; por ejemplo, Canvas puede transformar su conjunto de datos según las prácticas recomendadas y Q Developer puede enumerar las transformaciones utilizadas y el motivo.

Amazon Q Developer está disponible en SageMaker Canvas sin coste adicional para los usuarios de Amazon Q Developer Pro y Free Tier. Sin embargo, se aplican cargos estándar a recursos como la instancia de espacio de trabajo de SageMaker Canvas y a cualquier recurso utilizado para crear o implementar modelos. Para obtener más información sobre los precios, consulta los [precios de Amazon SageMaker Canvas](https://aws.amazon.com/sagemaker-ai/canvas/pricing/).

Amazon Q se puede utilizar con la [licencia 0 de MIT](https://github.com/aws/mit-0) y de conformidad con la [Política de IA responsable de AWS](https://aws.amazon.com/machine-learning/responsible-ai/policy/). Cuando se utiliza Q Developer fuera de los EE. UU., Q Developer procesa los datos en todas las regiones de EE. UU. Para obtener más información, consulte [Cross region inference in Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/cross-region-inference.html).

**nota**  
Amazon Q Developer en SageMaker Canvas no utiliza el contenido de los usuarios para mejorar el servicio, independientemente de si utilizas la suscripción de nivel gratuito o la de nivel Pro. Q Developer podría realizar un seguimiento del uso que haga, por ejemplo, del número de preguntas formuladas y de si se aceptaron o rechazaron las recomendaciones con fines de telemetría de servicios. Estos datos de telemetría no incluyen información de identificación personal, como la dirección IP.

## Funcionamiento
<a name="canvas-q-how-it-works"></a>

Amazon Q Developer es un asistente generativo con IA disponible en SageMaker Canvas que puede consultar mediante lenguaje natural. Q Developer hace sugerencias para cada paso del flujo de trabajo de machine learning, explica los conceptos y le proporciona opciones y más detalles según sea necesario. Puede usar Q Developer para obtener ayuda con los casos de uso de regresión, la clasificación binaria y la clasificación multiclase.

Por ejemplo, para predecir la pérdida de clientes, cargue un conjunto de datos con información histórica sobre la pérdida de clientes en Canvas a través de Q Developer. Q Developer sugiere un tipo de modelo de machine learning adecuado y los pasos necesarios para solucionar los problemas del conjunto de datos, crear un modelo y hacer predicciones.

**importante**  
Amazon Q Developer está diseñado para conversaciones sobre problemas de aprendizaje automático en SageMaker Canvas. Además, guía a los usuarios a través de las acciones de Canvas y, de forma opcional, responde a preguntas sobre Servicios de AWS. Q Developer solo procesa las entradas del modelo en inglés. Para obtener más información sobre cómo utilizar Q Developer, consulte [Características de Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/features.html) en la *Guía del usuario de Amazon Q Developer*.

## Regiones admitidas
<a name="canvas-q-regions"></a>

Amazon Q Developer está disponible en SageMaker Canvas en las siguientes ubicaciones Regiones de AWS:
+ Este de EE. UU. (Norte de Virginia)
+ Este de EE. UU. (Ohio)
+ Oeste de EE. UU. (Oregón)
+ Asia-Pacífico (Bombay)
+ Asia-Pacífico (Seúl)
+ Asia-Pacífico (Singapur)
+ Asia-Pacífico (Sídney)
+ Asia-Pacífico (Tokio)
+ Europa (Fráncfort)
+ Europa (Irlanda)
+ Europa (París)

## Capacidades de Amazon Q Developer disponibles en Canvas
<a name="canvas-q-capabilities"></a>

En la siguiente lista se resumen las tareas de Canvas con las que Q Developer puede ofrecer asistencia:
+ **Describir su objetivo**: Q Developer puede sugerirle un tipo de modelo de machine learning y un enfoque general para resolver su problema.
+ **Importar y analizar conjuntos de datos**: indique a Q Developer dónde está almacenado su conjunto de datos o cargue un archivo para guardarlo como conjunto de datos de Canvas. Pida a Q Developer que identifique cualquier problema en el conjunto de datos, como, por ejemplo, valores atípicos o valores que faltan. Q Developer le proporcionará estadísticas de resumen sobre su conjunto de datos y enumerará los problemas identificados.

  Q Developer admite consultas sobre las siguientes estadísticas para columnas individuales:
  + Columnas numéricas: `number of valid values`, `feature type`, `mean`, `median`, `minimum`, `maximum`, `standard deviation`, `25th percentile`, `75th percentile` y `number of outliers`
  + Columnas categóricas: `number of missing values`, `number of valid values`, `feature type`, `most frequent`, `most frequent category`, `most frequent category count`, `least frequent`, `least frequent category`, `least frequent category count` y `categories`
+ **Solucionar problemas del conjunto de datos**: pida a Q Developer que utilice las capacidades de transformación de datos de Canvas para crear una versión revisada de su conjunto de datos. Canvas crea un flujo de datos de Data Wrangler y aplica las transformaciones de acuerdo con las prácticas recomendadas de la ciencia de datos. Para obtener más información, consulte [Preparación de datos](canvas-data-prep.md).

  Si desea realizar tareas de análisis o preparación de datos más avanzadas que las que puede realizar con Q Developer, le recomendamos que utilice la interfaz de flujo de datos de Data Wrangler.
+ **Entrenar un modelo**: Q Developer le indica el tipo de modelo de machine learning recomendado según su problema y le propone una configuración de creación de modelos. Puede usar la configuración predeterminada sugerida para realizar una compilación rápida o puede modificar la configuración y realizar una compilación estándar. Cuando haya acabado, pida a Q Developer que cree su modelo de Canvas.

  Se admiten todos los tipos de modelo personalizados. Para obtener más información acerca de los tipos de modelo y de las compilaciones rápidas frente a las estándar, consulte [Cómo funcionan los modelos personalizados](canvas-build-model.md).
+ **Evaluar la precisión del modelo**: después de crear un modelo, Q Developer genera un resumen de las puntuaciones del modelo según varias métricas. Estas métricas le ayudan a determinar la utilidad y la precisión del modelo. Q Developer puede explicar cualquier concepto o métrica en detalle.

  Para ver todos los detalles y las visualizaciones, abra el modelo desde el chat o desde la página **Mis modelos** de Canvas. Para obtener más información, consulte [Evaluación de modelos](canvas-evaluate-model.md).
+ **Obtener predicciones de datos nuevos**: puede cargar un nuevo conjunto de datos y pedir a Q Developer que le ayude a abrir la característica de predicción de Canvas. 

  Q Developer abrirá una nueva ventana en la aplicación en la que puede hacer una sola predicción o hacer predicciones por lotes con un nuevo conjunto de datos. Para obtener más información, consulte [Predicciones con modelos personalizados](canvas-make-predictions.md).
+ **Implementar un modelo**: para implementar su modelo para producción, pida a Q Developer que le ayude a implementar su modelo a través de Canvas. Q Developer abrirá una nueva ventana en la que puede configurar su implementación. 

  Después, puede consultar los detalles de la implementación 1) en la página **Mis modelos** de Canvas, en la pestaña **Implementación** del modelo o 2) en la página **Operaciones de machine learning**, en la pestaña **Implementaciones**. Para obtener más información, consulte [Implementación de sus modelos en un punto de conexión](canvas-deploy-model.md).

## Requisitos previos
<a name="canvas-q-prereqs"></a>

Para usar Amazon Q Developer para crear modelos de aprendizaje automático en SageMaker Canvas, complete los siguientes requisitos previos:

**Configuración de una aplicación de Canvas**

Asegúrese de tener configurada una aplicación de Canvas. Para obtener más información sobre cómo configurar una aplicación de Canvas, consulte [Cómo empezar a usar Amazon SageMaker Canvas](canvas-getting-started.md).

**Concesión de permisos para Q Developer**

Para acceder a Q Developer mientras usa Canvas, debe adjuntar los permisos necesarios al rol de AWS IAM utilizado para su dominio o perfil de usuario de SageMaker IA. Puede hacerlo a través de la consola que se describe en esta sección. Si tiene algún problema con los permisos debido al uso del método de consola, asocie manualmente la política AWS administrada [ AmazonSageMakerCanvasSMDataScienceAssistantAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasSMDataScienceAssistantAccess)a la función de IAM.

Los permisos asociados al dominio se aplican a todos los perfiles de usuario del dominio, a menos que se concedan o revoquen permisos individuales al perfil de usuario.

------
#### [ SageMaker AI console method ]

Puedes conceder permisos editando la configuración del dominio de SageMaker IA o del perfil de usuario.

Para conceder permisos a través de la configuración del dominio en la consola de SageMaker IA, haga lo siguiente:

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

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

1. En **Configuraciones de administración**, elija **Dominios**.

1. En la lista de dominios, seleccione un dominio.

1. En la página **Detalles del dominio**, elija la pestaña **Configuraciones de aplicaciones**.

1. En la sección **Canvas**, seleccione **Editar**.

1. En la página **Editar la configuración de Canvas**, vaya a la sección **Amazon Q Developer** y haga lo siguiente:

   1. **Active Activar Amazon Q Developer in SageMaker Canvas para el aprendizaje automático en lenguaje natural para** añadir los permisos para chatear con Q Developer en Canvas a la función de ejecución de su dominio.

   1. (Opcional) **Activa el chat Enable Amazon Q Developer si quieres hacer AWS preguntas generales** a Q Developer sobre varios temas Servicios de AWS (por ejemplo, describir cómo funciona Athena).
**nota**  
Al realizar AWS consultas generales a Q Developer, las solicitudes se dirigen al este de EE. UU. (Virginia del Norte). Región de AWS Para evitar que sus datos se dirijan a través de la región Este de EE. UU. (Norte de Virginia), debe deshabilitar **Activar el chat de Amazon Q Developer para preguntas generales sobre AWS **.

------
#### [ Manual method ]

Adjunta la [ AmazonSageMakerCanvasSMDataScienceAssistantAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasSMDataScienceAssistantAccess)política al rol de AWS IAM utilizado para tu dominio o perfil de usuario. Para obtener más información, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de AWS IAM*.

------

**(Opcional) Configuración del acceso a Q Developer desde su VPC**

Si ha configurado una VPC sin acceso público a Internet, puede añadir un punto de conexión de VPC para Q Developer. Para obtener más información, consulte [Configurar Amazon SageMaker Canvas en una VPC sin acceso a Internet](canvas-vpc.md).

## Introducción
<a name="canvas-q-get-started"></a>

Para usar Amazon Q Developer para crear modelos de aprendizaje automático en SageMaker Canvas, haga lo siguiente:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Amazon Q**.

1. Seleccione **Iniciar una nueva conversación** para abrir un chat nuevo.

Al iniciar un chat nuevo, Q Developer le pide que exponga su problema o que proporcione un conjunto de datos.

![\[Saludo de Q Developer al iniciar un nuevo chat.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/amazon-q-greeting.png)


Después de importar los datos, puede pedirle a Q Developer que le proporcione un resumen de las estadísticas sobre su conjunto de datos o puede hacer preguntas sobre columnas específicas. Para obtener una lista de las diferentes estadísticas que admite Q Developer, consulte la sección [Capacidades de Amazon Q Developer disponibles en Canvas](#canvas-q-capabilities) anterior. En la siguiente captura de pantalla se muestra un ejemplo de cómo se solicitan las estadísticas del conjunto de datos y la categoría más frecuente en una columna de categorías de productos.

![\[Diálogo de chat en el que se pide a Q Developer que proporcione estadísticas del conjunto de datos y las estadísticas de categorías más frecuentes.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/amazon-q-dataset-statistics.png)


Q Developer rastrea cualquier artefacto de Canvas que importe o cree durante la conversación, como conjuntos de datos y modelos transformados. Puede acceder a ellos desde el chat o desde otras pestañas de la aplicación de Canvas. Por ejemplo, si Q Developer soluciona problemas en su conjunto de datos, puede acceder al nuevo conjunto de datos transformado desde los siguientes lugares:
+ La barra lateral de artefactos de la interfaz de chat de Q Developer
+ La página **Conjuntos de datos** de Canvas, donde puede ver sus conjuntos de datos originales y transformados. Al conjunto de datos transformado se le ha añadido la etiqueta **Creado por Amazon Q**
+ La página **Data Wrangler** de Canvas, donde Q Developer crea un nuevo flujo de datos para su conjunto de datos

En la siguiente captura de pantalla se muestra el conjunto de datos original y el conjunto de datos transformado en la barra lateral de un chat.

![\[Los artefactos, que son un conjunto de datos y un conjunto de datos transformado, se muestran en la barra lateral de un chat de Q Developer.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/amazon-q-artifacts.png)


Cuando sus datos estén preparados, pida a Q Developer que le ayude a crear un modelo de Canvas. Q Developer podría pedirle que confirme algunos campos y revise la configuración de compilación. Si utiliza la configuración de compilación predeterminada, el modelo se crea con una configuración rápida. Si desea personalizar alguna parte de la configuración de compilación, como seleccionar los algoritmos utilizados o cambiar la métrica objetivo, entonces su modelo se crea con una compilación estándar.

En la siguiente captura de pantalla se muestra cómo puede pedir a Q Developer que inicie la creación de un modelo de Canvas con tan solo unas pocas peticiones. En este ejemplo, se utiliza la configuración predeterminada para iniciar una compilación rápida.

![\[Es una conversación con Q Developer en la que el usuario ha pedido empezar a crear un modelo de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/amazon-q-training-chat.png)


Después de crear el modelo, puede realizar acciones adicionales o bien con lenguaje natural en el chat o bien en el menú de la barra lateral de artefactos. Por ejemplo, puede ver los detalles y las métricas del modelo, hacer predicciones o implementar el modelo. En la siguiente captura de pantalla se muestra la barra lateral en la que puede elegir estas opciones adicionales.

![\[Se ha expandido el menú de puntos suspensivos de la conversación de Q Developer, que muestra opciones para ver los detalles de los modelos, las predicciones y la implementación.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/amazon-q-ellipsis-menu.png)


También puede llevar a cabo cualquiera de estas acciones desde la página **Mis modelos** de Canvas y seleccionar su modelo. Desde la página de su modelo, navegue a las pestañas **Analizar**, **Predecir** e **Implementar** para ver las métricas y visualizaciones del modelo, realizar predicciones y administrar las implementaciones, respectivamente.

# Registrar las conversaciones de un desarrollador con AWS CloudTrail
<a name="canvas-q-cloudtrail"></a>

AWS CloudTrail es un servicio que registra las acciones realizadas por los usuarios, los roles o Servicios de AWS en Amazon SageMaker AI. CloudTrail captura las llamadas a la API que resultan de sus interacciones con Amazon Q Developer (un asistente de IA conversacional) mientras usa SageMaker Canvas (una interfaz de aprendizaje automático sin código). CloudTrail Los datos muestran los detalles de la solicitud, la dirección IP del solicitante, quién realizó la solicitud y cuándo.

Sus interacciones con Q Developer se envían como llamadas a la `SendConversation` API al servicio SageMaker AI Data Science Assistant, que es un servicio interno que Canvas utiliza en el backend. El origen del evento de las llamadas a la API `SendConversation` es `sagemaker-data-science-assistant.amazonaws.com`.

**nota**  
Por motivos de privacidad y seguridad, el contenido de las conversaciones se oculta en los registros y aparece como `HIDDEN_DUE_TO_SECURITY_REASONS` en los elementos de solicitud y respuesta.

Para obtener más información CloudTrail, consulta la Guía del [https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). Para obtener más información sobre CloudTrail la SageMaker IA, consulte[Registro de llamadas a la API de Amazon SageMaker AI mediante AWS CloudTrail](logging-using-cloudtrail.md).

A continuación se muestra un ejemplo de archivo de registro de la API `SendConversation`:

```
{
    "eventVersion":"1.10",
    "userIdentity": {
        "type":"AssumedRole",
        "principalId":"AROA123456789EXAMPLE:user-Isengard",
        "arn":"arn:aws:sts::111122223333:assumed-role/Admin/user",
        "accountId":"111122223333",
        "accessKeyId":"ASIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type":"Role",
                "principalId":"AROA123456789EXAMPLE",
                "arn":"arn:aws:iam::111122223333:role/Admin",
                "accountId":"111122223333",
                "userName":"Admin"
            },
            "attributes": {
                "creationDate":"2024-11-11T22:04:37Z",
                "mfaAuthenticated":"false"
            }
        }
    },
    "eventTime":"2024-11-11T22:09:22Z",
    "eventSource":"sagemaker-data-science-assistant.amazonaws.com",
    "eventName":"SendConversation",
    "awsRegion":"us-west-2",
    "sourceIPAddress":"192.0.2.0",
    "userAgent":"Boto3/1.33.13 md/Botocore#1.33.13 ua/2.0 os/linux#5.10.227-198.884.amzn2int.x86_64 md/arch#x86_64 lang/python#3.7.16 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.33.13",
    "requestParameters": {
        "conversation": [
            {
                "utteranceId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
                "utterance":"HIDDEN_DUE_TO_SECURITY_REASONS",
                "timestamp":"Feb 4, 2020, 7:46:29 AM",
                "utteranceType":"User"
            }
        ],
        "utteranceId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    },
    "responseElements": {
        "responseCode":"CHAT_RESPONSE",
        "conversationId":"1234567890abcdef0",
        "response": {
            "chat": {
                "body":"HIDDEN_DUE_TO_SECURITY_REASONS"
            }
        }
    },
    "requestID":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "eventID":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "readOnly":false,
    "eventType":"AwsApiCall",
    "managementEvent":true,
    "recipientAccountId":"123456789012",
    "eventCategory":"Management",
    "tlsDetails": {
        "tlsVersion":"TLSv1.2",
        "cipherSuite":"ECDHE-RSA-AES128-GCM-SHA256",
        "clientProvidedHostHeader":"gamma.us-west-2.data-science-assistant.sagemaker.aws.dev"
    }
}
```

# Importación de datos
<a name="canvas-importing-data"></a>

Amazon SageMaker Canvas admite la importación de datos tabulares, de imágenes y de documentos. Puede importar conjuntos de datos desde su máquina local, servicios de Amazon como Amazon S3 y Amazon Redshift, y orígenes de datos externos. Cuando importa conjuntos de datos desde Amazon S3, puede importar un conjunto de datos de cualquier tamaño. Utilice los conjuntos de datos que importe para crear modelos y hacer predicciones para otros conjuntos de datos.

Cada caso de uso para el que puede crear un modelo personalizado acepta diferentes tipos de entrada. Por ejemplo, si desea crear un modelo de clasificación de imágenes de una sola etiqueta, debe importar datos de imágenes. Para obtener más información acerca de los distintos tipos de modelo y los datos que aceptan, consulte [Cómo funcionan los modelos personalizados](canvas-build-model.md). Puede importar datos y crear modelos personalizados en SageMaker Canvas para los siguientes tipos de datos:
+ **Tabulares** (CSV, Parquet o tablas)
  + Categóricos: utilice datos categóricos para crear modelos de predicción categórica personalizados para la predicción de más de 2 y 3 categorías.
  + Numéricos: utilice datos numéricos para crear modelos de predicción numérica personalizados.
  + Texto: utilice datos de texto para crear modelos personalizados de predicción de texto multicategoría.
  + Series temporales: utilice datos de series temporales para crear modelos de previsión de series temporales personalizados.
+ **Imágenes** (JPG o PNG): utilice datos de imágenes para crear modelos personalizados de predicción de imágenes de etiqueta única.
+ **Documento** (PDF, JPG, PNG, TIFF): los datos del documento solo son compatibles con los Ready-to-use modelos SageMaker Canvas. Para obtener más información sobre Ready-to-use los modelos que pueden realizar predicciones para los datos de los documentos, consulte[Ready-to-use modelos](canvas-ready-to-use-models.md).

Puede importar datos a Canvas desde los siguientes orígenes de datos:
+ Archivos locales de su equipo
+ Buckets de Amazon S3
+ Amazon Redshift aprovisiona clústeres (no Amazon Redshift sin servidor)
+ AWS Glue Data Catalog a través de Amazon Athena
+ Amazon Aurora
+ Amazon Relational Database Service (Amazon RDS)
+ Salesforce Data Cloud
+ Snowflake
+ Databricks, SQLServer MariaDB y otras bases de datos populares a través de conectores JDBC
+ Más de 40 plataformas SaaS externas, como SAP OData

Para obtener una lista completa de los orígenes de datos desde los que puede importar, consulte la siguiente tabla:


| origen | Tipo | Tipos de datos compatibles | 
| --- | --- | --- | 
| Carga de archivos locales | Local | Tabular, imagen, documento | 
| Amazon Aurora | Interno de Amazon | Tabular | 
| Bucket de Amazon S3 | Interno de Amazon | Tabular, imagen, documento | 
| Amazon RDS | Interno de Amazon | Tabular | 
| Amazon Redshift aprovisiona clústeres (no Redshift sin servidor) | Interno de Amazon | Tabular | 
| AWS Glue Data Catalog (a través de Amazon Athena) | Interno de Amazon | Tabular | 
| [Databricks](https://www.databricks.com/) | Externo | Tabular | 
| Snowflake | Externo | Tabular | 
| [Salesforce Data Cloud](https://www.salesforce.com/products/genie/overview/) | Externo | Tabular | 
| SQLServer | Externo | Tabular | 
| MySQL | Externo | Tabular | 
| PostgreSQL | Externo | Tabular | 
| MariaDB | Externo | Tabular | 
| [Amplitude](https://docs.aws.amazon.com/appflow/latest/userguide/amplitude.html) | Plataforma de SaaS externa | Tabular | 
| [CircleCI](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-circleci.html) | Plataforma de SaaS externa | Tabular | 
| [DocuSign Monitorización](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-docusign-monitor.html) | Plataforma de SaaS externa | Tabular | 
| [Domo](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-domo.html) | Plataforma de SaaS externa | Tabular | 
| [Datadog](https://docs.aws.amazon.com/appflow/latest/userguide/datadog.html) | Plataforma de SaaS externa | Tabular | 
| [Dynatrace](https://docs.aws.amazon.com/appflow/latest/userguide/dynatrace.html) | Plataforma de SaaS externa | Tabular | 
| [Facebook Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-ads.html) | Plataforma de SaaS externa | Tabular | 
| [Insights de la página de Facebook](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-page-insights.html) | Plataforma de SaaS externa | Tabular | 
| [Google Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-ads.html) | Plataforma de SaaS externa | Tabular | 
| [Google Analytics 4](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-analytics-4.html) | Plataforma de SaaS externa | Tabular | 
| [Consola de búsqueda de Google](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-search-console.html) | Plataforma de SaaS externa | Tabular | 
| [GitHub](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-github.html) | Plataforma de SaaS externa | Tabular | 
| [GitLab](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-gitlab.html) | Plataforma de SaaS externa | Tabular | 
| [Infor Nexus](https://docs.aws.amazon.com/appflow/latest/userguide/infor-nexus.html) | Plataforma de SaaS externa | Tabular | 
| [Publicidad en Instagram](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-instagram-ads.html) | Plataforma de SaaS externa | Tabular | 
| [Jira Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-jira-cloud.html) | Plataforma de SaaS externa | Tabular | 
| [LinkedIn Anuncios](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-linkedin-ads.html) | Plataforma de SaaS externa | Tabular | 
| [LinkedIn Anuncios](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-linkedin-ads.html) | Plataforma de SaaS externa | Tabular | 
| [Mailchimp](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mailchimp.html) | Plataforma de SaaS externa | Tabular | 
| [Marketo](https://docs.aws.amazon.com/appflow/latest/userguide/marketo.html) | Plataforma de SaaS externa | Tabular | 
| [Microsoft Teams](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-microsoft-teams.html) | Plataforma de SaaS externa | Tabular | 
| [Mixpanel](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mixpanel.html) | Plataforma de SaaS externa | Tabular | 
| [Okta](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-okta.html) | Plataforma de SaaS externa | Tabular | 
| [Salesforce](https://docs.aws.amazon.com/appflow/latest/userguide/salesforce.html) | Plataforma de SaaS externa | Tabular | 
| [Salesforce Marketing Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-salesforce-marketing-cloud.html) | Plataforma de SaaS externa | Tabular | 
| [Salesforce Pardot](https://docs.aws.amazon.com/appflow/latest/userguide/pardot.html) | Plataforma de SaaS externa | Tabular | 
| [SAP OData](https://docs.aws.amazon.com/appflow/latest/userguide/sapodata.html) | Plataforma de SaaS externa | Tabular | 
| [SendGrid](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-sendgrid.html) | Plataforma de SaaS externa | Tabular | 
| [ServiceNow](https://docs.aws.amazon.com/appflow/latest/userguide/servicenow.html) | Plataforma de SaaS externa | Tabular | 
| [Singular](https://docs.aws.amazon.com/appflow/latest/userguide/singular.html) | Plataforma de SaaS externa | Tabular | 
| [Slack](https://docs.aws.amazon.com/appflow/latest/userguide/slack.html) | Plataforma de SaaS externa | Tabular | 
| [Stripe](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-stripe.html) | Plataforma de SaaS externa | Tabular | 
| [Trend Micro](https://docs.aws.amazon.com/appflow/latest/userguide/trend-micro.html) | Plataforma de SaaS externa | Tabular | 
| [Typeform](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-typeform.html) | Plataforma de SaaS externa | Tabular | 
| [Veeva](https://docs.aws.amazon.com/appflow/latest/userguide/veeva.html) | Plataforma de SaaS externa | Tabular | 
| [Zendesk](https://docs.aws.amazon.com/appflow/latest/userguide/zendesk.html) | Plataforma de SaaS externa | Tabular | 
| [Zendesk Chat](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-chat.html) | Plataforma de SaaS externa | Tabular | 
| [Zendesk Sell](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sell.html) | Plataforma de SaaS externa | Tabular | 
| [Zendesk Sunshine](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sunshine.html) | Plataforma de SaaS externa | Tabular | 
| [Zoom Meetings](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zoom.html) | Plataforma de SaaS externa | Tabular | 

Para obtener instrucciones sobre cómo importar datos e información sobre los requisitos de datos de entrada, como el tamaño máximo de archivo para las imágenes, consulte [Creación de un conjunto de datos](canvas-import-dataset.md).

Canvas también proporciona varios conjuntos de datos de muestra en su aplicación para ayudarle a comenzar. Para obtener más información sobre los conjuntos de datos SageMaker de muestra proporcionados por la IA con los que puede experimentar, consulte [Usar](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-sample-datasets.html) conjuntos de datos de muestra.

Después de importar un conjunto de datos a Canvas, puede actualizarlo en cualquier momento. Puede realizar una actualización manual o configurar un cronograma para las actualizaciones automáticas del conjunto de datos. Para obtener más información, consulte [Actualización de un conjunto de datos](canvas-update-dataset.md).

Para obtener más información específica para cada tipo de conjunto de datos, consulte las siguientes secciones:

**Tabular**

Para importar datos de un origen de datos externo (como una base de datos Snowflake o una plataforma SaaS), debe autenticarse y conectarse al origen de datos en la aplicación de Canvas. Para obtener más información, consulte [Conexión con orígenes de datos](canvas-connecting-external.md).

Si desea importar conjuntos de datos de más de 5 GB de Amazon S3 a Canvas, puede lograr un muestreo más rápido utilizando Amazon Athena para consultar y muestrear los datos de Amazon S3.

Después de crear los conjuntos de datos en Canvas, puede preparar y transformar los datos mediante la funcionalidad de preparación de datos de Data Wrangler. Puede utilizar Data Wrangler para gestionar los valores que faltan, transformar sus características, unir varios conjuntos de datos en uno solo y mucho más. Para obtener más información, consulte [Preparación de datos](canvas-data-prep.md).

**sugerencia**  
Siempre que los datos estén organizados en tablas, puede unir conjuntos de datos de diversas fuentes, como Amazon Redshift, Amazon Athena o Snowflake.

**Imagen**

Para obtener información sobre cómo editar un conjunto de datos de imágenes y realizar tareas como asignar o reasignar etiquetas, añadir o eliminar imágenes, consulte [Edición de un conjunto de datos de imágenes](canvas-edit-image.md).

# Creación de un conjunto de datos
<a name="canvas-import-dataset"></a>

**nota**  
Si va a importar conjuntos de datos de más de 5 GB a Amazon SageMaker Canvas, le recomendamos que utilice la [función Data Wrangler](canvas-data-prep.md) de Canvas para crear un flujo de datos. Data Wrangler admite características avanzadas de preparación de datos, como [unir](canvas-transform.md#canvas-transform-join) y [concatenar](canvas-transform.md#canvas-transform-concatenate) datos. Después de crear un flujo de datos, puede exportarlo como conjunto de datos de Canvas y empezar a crear un modelo. Para obtener más información, consulte [Exportación para crear un modelo](canvas-processing-export-model.md).

En las siguientes secciones se describe cómo crear un conjunto de datos en Amazon SageMaker Canvas. Para los modelos personalizados, puede crear conjuntos de datos para datos tabulares y de imágenes. Para Ready-to-use los modelos, puede usar conjuntos de datos tabulares y de imágenes, así como conjuntos de datos de documentos. Elija el flujo de trabajo en función de la siguiente información:
+ Para obtener datos categóricos, numéricos, de texto y de series temporales, consulte [Importación de datos tabulares](#canvas-import-dataset-tabular).
+ Para obtener datos de imágenes, consulte [Importación de datos de imágenes](#canvas-import-dataset-image).
+ Para ver datos de documentos, consulte [Importación de datos de documentos](#canvas-ready-to-use-import-document).

Un conjunto de datos puede constar de varios archivos. Por ejemplo, es posible que tenga varios archivos de datos de inventario en formato CSV. Puede cargar estos archivos juntos como un conjunto de datos siempre que el esquema (o los nombres de las columnas y los tipos de datos) de los archivos coincidan.

Canvas también admite la administración de múltiples versiones de su conjunto de datos. Al crear un conjunto de datos, la primera versión se etiqueta como `V1`. Puede crear una nueva versión de su conjunto de datos actualizándolo. Puede realizar una actualización manual o configurar un cronograma automatizado para las actualizaciones de su conjunto de datos con nuevos datos. Para obtener más información, consulte [Actualización de un conjunto de datos](canvas-update-dataset.md).

Al importar los datos en Canvas, debe asegurarse de que cumplan con los requisitos de la siguiente tabla. Las limitaciones son específicas del tipo de modelo que esté creando.


| Límite | Modelos de 2 categorías, de más de 3 categorías, numéricos y de series temporales | Modelos de predicción de texto | Modelos de predicción de imágenes | \$1Documente los datos de los modelos Ready-to-use | 
| --- | --- | --- | --- | --- | 
| Tipos de archivo admitidos |  CSV y Parquet (carga local, Amazon S3 o bases de datos) JSON (bases de datos)  |  CSV y Parquet (carga local, Amazon S3 o bases de datos) JSON (bases de datos)  | JPG, PNG | PDF, JPG, PNG, TIFF | 
| Tamaño máximo de archivo |  Carga local: 5 GB Fuentes de datos: PBs  |  Carga local: 5 GB Fuentes de datos: PBs  | 30 MB por imagen | 5 MB por documento | 
| Número máximo de archivos que puede cargar a la vez | 30 | 30 | N/A | N/A | 
| Número máximo de columnas. | 1 000 | 1 000 | N/A | N/A | 
| Número máximo de entradas (filas, imágenes o documentos) para las **compilaciones rápidas** | N/A | 7500 filas | 5000 imágenes | N/A | 
| Número máximo de entradas (filas, imágenes o documentos) para las **compilaciones estándares** | N/A | 150 000 filas | 180 000 imágenes | N/A | 
| Número mínimo de entradas (filas) para **compilaciones rápidas** |  2 categorías: 500 filas Más de 3 categorías, numéricos, serie temporal: N/A  | N/A | N/A | N/A | 
| Número mínimo de entradas (filas, imágenes o documentos) para las **compilaciones estándares** | 250 filas | 50 filas | 50 imágenes | N/A | 
|  Número mínimo de entradas (filas o imágenes) por etiqueta | N/A | 25 filas | 25 filas | N/A | 
| Número mínimo de etiquetas |  2 categorías: 2 Más de 3 categorías: 3 Numérico, serie temporal: N/A  | 2 | 2. | N/A | 
|  Tamaño mínimo de la muestra para el muestreo aleatorio | 500 | N/A | N/A | N/A | 
|  Tamaño máximo de la muestra para el muestreo aleatorio | 200.000 | N/A | N/A | N/A | 
| Número máximo de etiquetas |  2 categorías: 2 Más de 3 categorías, numéricos, serie temporal: N/A  | 1 000 | 1 000 | N/A | 

\$1Actualmente, los datos de los documentos solo se admiten en los [Ready-to-use modelos](canvas-ready-to-use-models.md) que aceptan datos de documentos. No puede crear un modelo personalizado con datos de documentos.

Tenga en cuenta también las siguientes restricciones:
+ Al importar datos desde un bucket de Amazon S3, asegúrese de que el nombre de su bucket de Amazon S3 no contenga un `.`. Si el nombre del bucket contiene un `.`, puede experimentar errores al intentar importar datos a Canvas.
+ Para los datos tabulares, Canvas no permite seleccionar ningún archivo con extensiones distintas de .csv, .parquet, .parq y .pqt tanto para la carga local como para la importación a Amazon S3. Los archivos CSV pueden utilizar cualquier delimitador común o personalizado y no deben tener caracteres de nueva línea, excepto cuando indiquen una fila nueva.
+ Para los datos tabulares que utilizan archivos Parquet, tenga en cuenta lo siguiente:
  + Los archivos Parquet no pueden incluir tipos complejos, como mapas y listas.
  + Los nombres de columna de los archivos de Parquet no pueden contener espacios.
  + Si se utiliza compresión, los archivos de Parquet deben utilizar los tipos de compresión gzip o snappy. Para obtener más información sobre los tipos de compresión anteriores, consulte la [documentación de gzip](https://www.gzip.org/) y la [documentación de snappy](https://github.com/google/snappy).
+ En el caso de los datos de imágenes, si tiene imágenes sin etiquetar, debe etiquetarlas antes de crear el modelo. Para obtener información sobre cómo asignar etiquetas a las imágenes dentro de la aplicación de Canvas, consulte [Edición de un conjunto de datos de imágenes](canvas-edit-image.md).
+ Si configura actualizaciones automáticas de conjuntos de datos o configuraciones automáticas de predicción por lotes, solo podrá crear un total de 20 configuraciones en su aplicación de Canvas. Para obtener más información, consulte [¿Cómo administrar las automatizaciones](canvas-manage-automations.md).

Después de importar un conjunto de datos, puede verlos en la página **Conjuntos de datos** en cualquier momento.

## Importación de datos tabulares
<a name="canvas-import-dataset-tabular"></a>

Con los conjuntos de datos tabulares, puede crear modelos categóricos, numéricos, de previsión de series temporales y de predicción de texto. Revise la tabla de limitaciones de la sección anterior **Importación de un conjunto de datos** para asegurarse de que los datos cumplen los requisitos de datos tabulares.

Utilice el siguiente procedimiento para importar un conjunto de datos tabulares a Canvas:

1. Abra su aplicación SageMaker Canvas.

1. En el panel de navegación de la izquierda, elija **Conjuntos de datos**.

1. Elija **Importar datos**.

1. En el menú desplegable, seleccione **Tabular**.

1. En el cuadro de diálogo emergente, en el campo **Nombre del conjunto de datos**, introduzca un nombre para el conjunto de datos y elija **Crear**.

1. En la página **Crear conjunto de datos tabular**, abra el menú desplegable **Origen de datos**.

1. Elija el origen de datos:
   + Para cargar un archivo desde su equipo, elija **Carga local**.
   + Para importar datos de otro origen, como un bucket de Amazon S3 o una base de datos de Snowflake, busque el origen de datos en la barra **Buscar origen de datos**. A continuación, elija el mosaico del origen de datos que desee.
**nota**  
Solo puede importar datos de los mosaicos que tengan una conexión activa. Si desea conectarse a un origen de datos que no tenga disponible, póngase en contacto con su administrador. Si es un administrador, consulte [Conexión con orígenes de datos](canvas-connecting-external.md).

   En la siguiente captura de pantalla se muestra el menú desplegable **Origen de datos**.  
![\[Captura de pantalla que muestra el menú desplegable de Origen de datos y la búsqueda de un origen de datos en la barra de búsqueda.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/import-data-choose-source.png)

1. (Opcional) Si se conecta a una base de datos de Amazon Redshift o Snowflake por primera vez, aparece un cuadro de diálogo para crear una conexión. Rellene el cuadro de diálogo con sus credenciales y seleccione **Crear conexión**. Si ya tiene una conexión, elija la que tenga.

1. En el origen de datos, seleccione los archivos que quiera importar. Para cargar e importar archivos de forma local desde Amazon S3, puede seleccionar archivos. En Amazon S3 exclusivamente, también tiene la opción de introducir directamente el URI, el alias o el ARN de S3 del bucket o punto de acceso de S3 en el campo **Punto de conexión de entrada de S3** y, a continuación, elija los archivos que desee importar. Para las fuentes de bases de drag-and-drop datos, puede crear tablas de datos desde el panel de navegación izquierdo.

1. (Opcional) Para los orígenes de datos tabulares compatibles con consultas SQL (como Amazon Redshift, Amazon Athena o Snowflake), puede elegir **Editar en SQL** para realizar consultas SQL antes de importarlas.

   La siguiente captura de pantalla muestra la vista **Editar SQL** de un origen de datos de Amazon Athena.  
![\[Captura de pantalla que muestra una consulta SQL en la vista Editar SQL para los datos de Amazon Athena.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/import-data-edit-sql.png)

1. Elija **Vista previa del conjunto de datos** para obtener una vista previa del conjunto de datos antes de importarlo.

1. En **Configuración de importación**, introduzca un **Nombre del conjunto de datos** o utilice el nombre de conjunto de datos predeterminado.

1. (Opcional) En el caso de los datos que importa desde Amazon S3, se mostrará la configuración **Avanzada** y podrá rellenar los siguientes campos:

   1. Active la opción **Usar primera fila como encabezado** si quiere usar la primera fila del conjunto de datos para los nombres de columnas. Si ha seleccionado varios archivos, se aplica a cada uno de ellos.

   1. Si va a importar un archivo CSV, en el menú desplegable **Codificación de archivos (CSV)**, seleccione la codificación del archivo de conjunto de datos. `UTF-8` es la predeterminada.

   1. En el menú desplegable **Delimitador**, seleccione el delimitador que separa cada celda de los datos. El delimitador predeterminado es `,`. También puede especificar un delimitador personalizado.

   1. Seleccione **Detección de varias líneas** si desea que Canvas analice manualmente todo el conjunto de datos en busca de celdas de varias líneas. Esta opción no está seleccionada de forma predeterminada y Canvas determina si usa o no la compatibilidad con varias líneas tomando una muestra de los datos. Sin embargo, es posible que Canvas no detecte ninguna celda de varias líneas en la muestra. Si tiene celdas de varias líneas, le recomendamos que seleccione la opción **Detección de varias líneas** para obligar a Canvas a comprobar si hay celdas de varias líneas en todo el conjunto de datos.

1. Cuando esté listo para importar sus datos, elija **Crear conjunto de datos**.

Mientras su conjunto de datos se importa a Canvas, puede ver sus conjuntos de datos enumerados en la página **Conjuntos de datos**. En esta página puede [Visualización de detalles de su conjunto de datos](#canvas-view-dataset-details).

Cuando el **Estado** de su conjunto de datos se muestre como `Ready`, Canvas habrá importado sus datos correctamente y podrá continuar con la [creación de un modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html).

Si tiene una conexión a un origen de datos, como una base de datos de Amazon Redshift o un conector de SaaS, puede volver a esa conexión. Para Amazon Redshift y Snowflake, puede agregar otra conexión creando otro conjunto de datos, volviendo a la página **Importar datos** y eligiendo el mosaico de **Origen de datos** para esa conexión. En el menú desplegable, puede abrir la conexión anterior o elegir **Agregar conexión**.

**nota**  
Para las plataformas de SaaS, solo puede tener una conexión por origen de datos.

## Importación de datos de imágenes
<a name="canvas-import-dataset-image"></a>

Con los conjuntos de datos de imágenes, puede crear modelos personalizados de predicción de imágenes de una sola etiqueta, que predicen la etiqueta de una imagen. Revise la tabla de limitaciones de la sección anterior **Importación de un conjunto de datos** para asegurarse de que el conjunto de datos de imágenes cumpla con los requisitos de datos de imágenes.

**nota**  
Solo puede importar conjuntos de datos de imágenes desde una carga de archivo local o un bucket de Amazon S3. Además, para los conjuntos de datos de imágenes, debe tener al menos 25 imágenes por etiqueta.

Utilice el siguiente procedimiento para importar un conjunto de datos de imágenes a Canvas:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación de la izquierda, elija **Conjuntos de datos**.

1. Elija **Importar datos**.

1. En el menú desplegable, seleccione **Imagen**.

1. En el cuadro de diálogo emergente, en el campo **Nombre del conjunto de datos**, introduzca un nombre para el conjunto de datos y elija **Crear**.

1. En la página **Importar**, abra el menú desplegable **Origen de datos**.

1. Elija el origen de datos. Para cargar un archivo desde su equipo, elija **Carga local**. Para importar archivos desde Amazon S3, elija **Amazon S3**.

1. Desde su equipo o desde un bucket de Amazon S3, seleccione las imágenes o carpetas de imágenes que quiera cargar.

1. Cuando esté listo para importar sus datos, elija **Importar datos**.

Mientras su conjunto de datos se importa a Canvas, puede ver sus conjuntos de datos enumerados en la página **Conjuntos de datos**. En esta página puede [Visualización de detalles de su conjunto de datos](#canvas-view-dataset-details).

Cuando el **Estado** de su conjunto de datos se muestre como `Ready`, Canvas habrá importado sus datos correctamente y podrá continuar con la [creación de un modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html).

Al crear su modelo, puede editar su conjunto de datos de imágenes y puede asignar o reasignar etiquetas, agregar imágenes o eliminar imágenes de su conjunto de datos. Para obtener más información acerca de la edición de un conjunto de datos de imágenes, consulte [Edición de un conjunto de datos de imágenes](canvas-edit-image.md).

## Importación de datos de documentos
<a name="canvas-ready-to-use-import-document"></a>

Los Ready-to-use modelos para el análisis de gastos, el análisis de documentos de identidad, el análisis de documentos y las consultas de documentos respaldan los datos de los documentos. No puede crear un modelo personalizado con datos de documentos.

Con los conjuntos de datos de documentos, puede generar predicciones para los Ready-to-use modelos de análisis de gastos, análisis de documentos de identidad, análisis de documentos y consultas de documentos. Revise la tabla de limitaciones de la sección [Creación de un conjunto de datos](#canvas-import-dataset) para asegurarse de que el conjunto de datos de documentos cumpla con los requisitos de datos de documentos.

**nota**  
Solo puede importar conjuntos de datos de documentos desde una carga de archivo local o un bucket de Amazon S3.

Utilice el siguiente procedimiento para importar un conjunto de datos de documentos a Canvas:

1. Abra su aplicación SageMaker Canvas.

1. En el panel de navegación de la izquierda, elija **Conjuntos de datos**.

1. Elija **Importar datos**.

1. En el menú desplegable, elija **Documento**.

1. En el cuadro de diálogo emergente, en el campo **Nombre del conjunto de datos**, introduzca un nombre para el conjunto de datos y elija **Crear**.

1. En la página **Importar**, abra el menú desplegable **Origen de datos**.

1. Elija el origen de datos. Para cargar un archivo desde su equipo, elija **Carga local**. Para importar archivos desde Amazon S3, elija **Amazon S3**.

1. Desde su equipo o desde un bucket de Amazon S3, seleccione los archivos de documentos que desee cargar.

1. Cuando esté listo para importar sus datos, elija **Importar datos**.

Mientras su conjunto de datos se importa a Canvas, puede ver sus conjuntos de datos enumerados en la página **Conjuntos de datos**. En esta página puede [Visualización de detalles de su conjunto de datos](#canvas-view-dataset-details).

Cuando el **Estado** de su conjunto de datos aparezca como `Ready`, eso querrá decir que Canvas ha importado sus datos correctamente.

En la página **Conjuntos de datos**, puede elegir su conjunto de datos para obtener una vista previa, que muestra los primeros 100 documentos de su conjunto de datos.

## Visualización de detalles de su conjunto de datos
<a name="canvas-view-dataset-details"></a>



Para cada uno de sus conjuntos de datos, puede ver todos los archivos de un conjunto de datos, el historial de versiones del conjunto de datos y cualquier configuración de actualización automática del conjunto de datos. Desde la página **Conjuntos de datos**, también puede iniciar acciones como [Actualización de un conjunto de datos](canvas-update-dataset.md) o [Cómo funcionan los modelos personalizados](canvas-build-model.md).

Para ver los detalles de un conjunto de datos, haga lo siguiente:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación de la izquierda, elija **Conjuntos de datos**.

1. En la lista de conjuntos de datos, elija su conjunto de datos.

En la pestaña **Datos**, puede ver una vista previa de sus datos. Si elige **Detalles del conjunto de datos**, puede ver todos los archivos que forman parte de su conjunto de datos. Elija un archivo para ver solo los datos de ese archivo en la vista previa. En el caso de los conjuntos de datos de imágenes, la vista previa solo muestra las 100 primeras imágenes del conjunto de datos.

En la pestaña **Historial de versiones**, puede ver una lista de todas las versiones de su conjunto de datos. Cada vez que actualiza un conjunto de datos, se crea una nueva versión. Para obtener más información sobre la actualización de un conjunto de datos, consulte [Actualización de un conjunto de datos](canvas-update-dataset.md). La siguiente captura de pantalla muestra la pestaña **Historial de versiones** de la aplicación de Canvas.

![\[Captura de pantalla de la pestaña Historial de versiones de un conjunto de datos, con una lista de las versiones del conjunto de datos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-version-history.png)


En la pestaña **Actualizaciones automáticas**, puede habilitar las actualizaciones automáticas para el conjunto de datos y establecer una configuración para actualizar su conjunto de datos de forma habitual. Para obtener más información sobre cómo configurar las actualizaciones automáticas para un conjunto de datos, consulte [Configuración de las actualizaciones automáticas de un conjunto de datos](canvas-update-dataset-auto.md). La siguiente captura de pantalla muestra la pestaña **Actualizaciones automáticas** con las actualizaciones automáticas activadas y una lista de los trabajos de actualización automática que se han realizado en el conjunto de datos.

![\[La pestaña Actualizaciones automáticas de un conjunto de datos muestra las actualizaciones automáticas activadas y una lista de trabajos de actualización automática.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-auto-updates.png)


# Actualización de un conjunto de datos
<a name="canvas-update-dataset"></a>

Después de importar su conjunto de datos inicial a Amazon SageMaker Canvas, es posible que tenga datos adicionales que desee añadir a su conjunto de datos. Por ejemplo, puede recibir datos de inventario al final de cada semana que desee agregar a su conjunto de datos. En lugar de importar los datos varias veces, puede actualizar el conjunto de datos existente y agregar o eliminar archivos del mismo.

**nota**  
Solo puede actualizar los conjuntos de datos que haya importado mediante carga local o Amazon S3.

Puede actualizar su conjunto de datos de forma manual o automática. Para obtener más información acerca de las actualizaciones automáticas de conjuntos de datos, consulte [Configuración de las actualizaciones automáticas de un conjunto de datos](canvas-update-dataset-auto.md).

Cada vez que actualiza su conjunto de datos, Canvas crea una nueva versión de su conjunto de datos. Solo puede usar la última versión de su conjunto de datos para crear un modelo o generar predicciones. Para obtener más información acerca de cómo ver el historial de versiones de su conjunto de datos, consulte [Visualización de detalles de su conjunto de datos](canvas-import-dataset.md#canvas-view-dataset-details).

También puede usar las actualizaciones del conjunto de datos con predicciones por lotes automatizadas, lo que inicia un trabajo de predicción por lotes cada vez que actualiza el conjunto de datos. Para obtener más información, consulte [Predicciones por lotes en SageMaker Canvas](canvas-make-predictions-batch.md).

En las secciones siguientes se describe cómo realizar actualizaciones manuales en el conjunto de datos.

## Actualización manual de un conjunto de datos
<a name="canvas-update-dataset-manual"></a>

Para realizar una actualización manual, haga lo siguiente:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación de la izquierda, elija **Conjuntos de datos**.

1. En la lista de conjuntos de datos, elija el conjunto de datos que desee actualizar.

1. Seleccione el menú desplegable **Actualizar conjunto de datos** y seleccione **Actualización manual**. Accederá al flujo de trabajo de importación de datos.

1. En el menú desplegable **Origen de datos**, seleccione **Carga local** o **Amazon S3**.

1. La página muestra una vista previa de los datos. Desde aquí, puede agregar o eliminar archivos del conjunto de datos. Si va a importar datos tabulares, el esquema de los nuevos archivos (nombres de columnas y tipos de datos) debe coincidir con el esquema de los archivos existentes. Además, los archivos nuevos no deben superar el tamaño máximo del conjunto de datos o del archivo. Para obtener más información sobre estos límites, consulte [Importación de un conjunto de datos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html).
**nota**  
Si agrega un archivo con el mismo nombre que un archivo existente en su conjunto de datos, el nuevo archivo sobrescribe la versión anterior del archivo.

1. Cuando esté listo para guardar los cambios, elija **Actualizar conjunto de datos**.

Ahora ya debería tener una nueva versión de su conjunto de datos.

En la página **Conjuntos de datos**, puede elegir la pestaña **Historial de versiones** para ver todas las versiones de su conjunto de datos y el historial de las actualizaciones manuales y automáticas que ha realizado.

# Configuración de las actualizaciones automáticas de un conjunto de datos
<a name="canvas-update-dataset-auto"></a>

Después de importar su conjunto de datos inicial a Amazon SageMaker Canvas, es posible que tenga datos adicionales que desee añadir a su conjunto de datos. Por ejemplo, puede recibir datos de inventario al final de cada semana que desee agregar a su conjunto de datos. En lugar de importar los datos varias veces, puede actualizar el conjunto de datos existente y agregar o eliminar archivos del mismo.

**nota**  
Solo puede actualizar los conjuntos de datos que haya importado mediante carga local o Amazon S3.

Con las actualizaciones automáticas de conjuntos de datos, especifique una ubicación en la que Canvas busca archivos con la frecuencia que determine. Si importa archivos nuevos durante la actualización, el esquema de los archivos debe coincidir exactamente con el conjunto de datos existente.

Cada vez que actualiza su conjunto de datos, Canvas crea una nueva versión de su conjunto de datos. Solo puede usar la última versión de su conjunto de datos para crear un modelo o generar predicciones. Para obtener más información acerca de cómo ver el historial de versiones de su conjunto de datos, consulte [Visualización de detalles de su conjunto de datos](canvas-import-dataset.md#canvas-view-dataset-details).

También puede usar las actualizaciones del conjunto de datos con predicciones por lotes automatizadas, lo que inicia un trabajo de predicción por lotes cada vez que actualiza el conjunto de datos. Para obtener más información, consulte [Predicciones por lotes en SageMaker Canvas](canvas-make-predictions-batch.md).

En las secciones siguientes se describe cómo realizar actualizaciones automáticas en el conjunto de datos.

Una actualización automática se produce cuando establece una configuración para que Canvas actualice su conjunto de datos con una frecuencia determinada. Le recomendamos que utilice esta opción si recibe regularmente nuevos archivos de datos que desee agregar a su conjunto de datos.

Al establecer la configuración de actualización automática, especifica una ubicación de Amazon S3 en la que carga los archivos y la frecuencia con la que Canvas comprueba la ubicación e importa los archivos. Cada instancia en la que Canvas actualiza su conjunto de datos se denomina *trabajo*. Para cada trabajo, Canvas importa todos los archivos de la ubicación de Amazon S3. Si tiene archivos nuevos con los mismos nombres que los archivos existentes en su conjunto de datos, Canvas sobrescribe los archivos antiguos con los archivos nuevos.

Para las actualizaciones automáticas de los conjuntos de datos, Canvas no realiza la validación del esquema. Si el esquema de los archivos importados durante una actualización automática no coincide con el esquema de los archivos existentes o supera los límites de tamaño (consulte [Importación de un conjunto de datos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html) para ver una tabla con las limitaciones de tamaño de los archivos), se producen errores al ejecutar los trabajos.

**nota**  
Solo puede configurar un máximo de 20 configuraciones automáticas en su aplicación de Canvas. Además, Canvas solo realiza actualizaciones automáticas mientras está conectado a la aplicación de Canvas. Si cierra sesión en su aplicación de Canvas, las actualizaciones automáticas se detienen hasta que vuelva a iniciar sesión.

Para configurar las actualizaciones automáticas de su conjunto de datos, haga lo siguiente:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación de la izquierda, elija **Conjuntos de datos**.

1. En la lista de conjuntos de datos, elija el conjunto de datos que desee actualizar.

1. Seleccione el menú desplegable **Actualización de conjunto de datos** y seleccione **Actualización automática**. Se abrirá la pestaña **Actualizaciones automáticas** del conjunto de datos.

1. Active la opción **Actualización automática habilitada**.

1. En **Especificar origen de datos**, introduzca la ruta de Amazon S3 a la carpeta en la que vaya a cargar archivos con regularidad.

1. En **Elegir una frecuencia**, seleccione **Por hora**, **Semanalmente** o **Diariamente**.

1. Para **Especificar una hora de inicio**, utilice el calendario y el selector de hora para seleccionar cuándo desea que comience el primer trabajo de actualización automática.

1. Cuando esté listo para crear la configuración de actualización automática, elija **Guardar**.

Canvas comienza el primer trabajo de la cadencia de actualización automática a la hora de inicio especificada.

# Visualización de trabajos de actualización automática de conjuntos de datos
<a name="canvas-update-dataset-auto-view"></a>

Para ver el historial de trabajos de las actualizaciones automáticas de sus conjuntos de datos en Amazon SageMaker Canvas, en la página de detalles del conjunto de datos, seleccione la pestaña **Actualizaciones automáticas**.

Cada actualización automática de un conjunto de datos aparece como un trabajo en la pestaña **Actualizaciones automáticas** de la sección **Historial de trabajos**. Para cada trabajo, puede ver lo siguiente:
+ **Trabajo creado**: la marca de tiempo en la que Canvas comenzó a actualizar el conjunto de datos.
+ **Archivos**: la cantidad de archivos en el conjunto de datos.
+ **Celdas (columnas x filas)**: el número de columnas y filas del conjunto de datos.
+ **Estado**: el estado del conjunto de datos tras la actualización. Si el trabajo se ha completado correctamente, el estado será **Listo**. Si el trabajo ha fallado por algún motivo, el estado es **Error** y podrá pasar el ratón sobre el estado para obtener más información.

# Edición de la configuración de actualización automática del conjunto de datos
<a name="canvas-update-dataset-auto-edit"></a>

Es posible que desee realizar cambios en la configuración de actualización automática de un conjunto de datos, como cambiar la frecuencia de las actualizaciones. También puede desactivar la configuración de actualización automática para pausar las actualizaciones del conjunto de datos.

Para realizar cambios en la configuración de actualización automática de un conjunto de datos, vaya a la pestaña **Actualizaciones automáticas** de su conjunto de datos y elija **Editar** para realizar cambios en la configuración.

Para pausar las actualizaciones del conjunto de datos, desactive la configuración automática. Para desactivar las actualizaciones automáticas, vaya a la pestaña **Actualizaciones automáticas** de su conjunto de datos y desactive la opción **Habilitar actualizaciones automáticas**. Puede volver a activar esta opción en cualquier momento para reanudar la programación de actualizaciones.

Para aprender a eliminar su configuración, consulte [Eliminación de una configuración automática](canvas-manage-automations-delete.md).

# Conexión con orígenes de datos
<a name="canvas-connecting-external"></a>

En Amazon SageMaker Canvas, puede importar datos desde una ubicación fuera de su sistema de archivos local a través de un AWS servicio, una plataforma SaaS u otras bases de datos mediante conectores JDBC. Por ejemplo, es posible que desee importar tablas desde un almacenamiento de datos en Amazon Redshift o puede que quiera importar datos de Google Analytics.

Cuando realice el flujo de trabajo de **importación** para importar datos en la aplicación de Canvas, podrá elegir el origen de datos y, a continuación, seleccionar los datos que desee importar. Para determinados orígenes de datos, como Snowflake y Amazon Redshift, debe especificar sus credenciales y agregar una conexión al origen de datos.

La siguiente captura de pantalla muestra la barra de herramientas de orígenes de datos del flujo de trabajo de **importación**, con todos los orígenes de datos disponibles resaltados. Solo puede importar datos de los orígenes de datos que estén disponibles. Póngase en contacto con el administrador si el origen de datos que desea no está disponible.

![\[El menú desplegable Origen de datos de la página Importar datos de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/data-sources.png)


Las siguientes secciones proporcionan información sobre el establecimiento de conexiones con orígenes de datos externos y la importación de datos desde ellos. Revise primero la sección siguiente para determinar qué permisos necesita para importar datos desde su origen de datos.

## Permisos
<a name="canvas-connecting-external-permissions"></a>

Revise la siguiente información para asegurarse de que dispone de los permisos necesarios para importar datos de su origen de datos:
+ **Amazon S3:** puede importar datos de cualquier bucket de Amazon S3 siempre que el usuario tenga permisos para acceder al bucket. Para obtener más información sobre el uso de AWS IAM para controlar el acceso a los buckets de Amazon S3, consulte [Administración de identidad y acceso en Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) en la Guía del *usuario de Amazon S3*.
+ **Amazon Athena:** si tienes la [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)política y la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política asociada a la función de ejecución de tu usuario, puedes consultarla AWS Glue Data Catalog con Amazon Athena. Si forma parte de un grupo de trabajo de Athena, asegúrese de que el usuario de Canvas tenga permisos para ejecutar consultas de Athena en los datos. Si desea obtener más información, consulte [Uso de grupos de trabajo para la ejecución de consultas](https://docs.aws.amazon.com/athena/latest/ug/workgroups.html) en la *Guía del usuario de Amazon Athena*.
+ **Amazon DocumentDB:** puede importar datos de cualquier base de datos de Amazon DocumentDB siempre que tenga las credenciales (nombre de usuario y contraseña) para conectarse a la base de datos y tenga los permisos básicos mínimos de Canvas asociados al rol de ejecución del usuario. Para obtener más información acerca de los permisos de Canvas, consulte [Requisitos previos para configurar Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).
+ **Amazon Redshift:** para darse los permisos necesarios para importar datos de Amazon Redshift, consulte [Concesión a los usuarios de permisos para importar datos de Amazon Redshift](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-redshift-permissions.html).
+ **Amazon RDS:** si tiene la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política asociada a la función de ejecución de su usuario, podrá acceder a sus bases de datos de Amazon RDS desde Canvas.
+ **Plataformas SaaS:** si tiene la [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)política y la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política asociadas a la función de ejecución de su usuario, entonces tiene los permisos necesarios para importar datos de las plataformas SaaS. Consulte [Uso de conectores de SaaS con Canvas](#canvas-connecting-external-appflow) para obtener más información acerca de cómo conectarse a un conector de SaaS específico.
+ **Conectores JDBC:** para fuentes de bases de datos como Databricks, MySQL o MariaDB, debe habilitar la autenticación con nombre de usuario y contraseña en la base de datos de origen antes de intentar conectarse desde Canvas. Si se conecta a una base de datos de Databricks, debe tener la URL de JDBC que contenga las credenciales necesarias.

## Conectarse a una base de datos almacenada en AWS
<a name="canvas-connecting-internal-database"></a>

Es posible que desee importar los datos que ha almacenado AWS. Puede importar datos de Amazon S3, utilizar Amazon Athena para consultar una base de datos AWS Glue Data Catalog, importar datos de Amazon [RDS o establecer una conexión a una base de datos de Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) Redshift aprovisionada (no a Redshift Serverless).

Puede crear varias conexiones a Amazon Redshift. En el caso de Amazon Athena, puede acceder a cualquier base de datos que tenga en su [AWS Glue Data Catalog](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/aws-glue-data-catalog.html). En el caso de Amazon S3, puede importar datos desde un bucket siempre que cuente con los permisos necesarios.

Revise las siguientes secciones para obtener información más detallada.

### Conexión a los datos en Amazon S3, Amazon Athena o Amazon RDS
<a name="canvas-connecting-internal-database-s3-athena"></a>

Para Amazon S3, puede importar datos de cualquier bucket de Amazon S3 siempre que tenga permisos para acceder al bucket.

En el caso de Amazon Athena, puede acceder a sus bases de datos AWS Glue Data Catalog siempre que tenga permisos a través de su grupo de trabajo de [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/manage-queries-control-costs-with-workgroups.html).

En el caso de Amazon RDS, si tiene la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política asociada al rol de su usuario, podrá importar datos de sus bases de datos de Amazon RDS a Canvas.

Para importar datos de un bucket de Amazon S3 o para ejecutar consultas e importar tablas de datos con Amazon Athena, consulte [Creación de un conjunto de datos](canvas-import-dataset.md). Solo puede importar datos tabulares desde Amazon Athena y puede importar datos tabulares y de imágenes de Amazon S3.

### Conexión a una base de datos de Amazon DocumentDB
<a name="canvas-connecting-docdb"></a>

Amazon DocumentDB es un servicio de base de datos de documentos completamente administrado y sin servidor. Puede importar datos de documentos no estructurados almacenados en una base de datos de Amazon DocumentDB SageMaker a Canvas como un conjunto de datos tabular y, a continuación, puede crear modelos de aprendizaje automático con los datos.

**importante**  
Su dominio de SageMaker IA debe estar configurado **solo en modo VPC** para añadir conexiones a Amazon DocumentDB. Solo puede acceder a clústeres de Amazon DocumentDB en la misma Amazon VPC que su aplicación de Canvas. Además, Canvas solo se puede conectar a clústeres de Amazon DocumentDB con TLS. Para obtener más información acerca de cómo configurar Canvas en el modo **solo VPC**, consulte [Configurar Amazon SageMaker Canvas en una VPC sin acceso a Internet](canvas-vpc.md).

Para importar datos de las bases de datos de Amazon DocumentDB, debe tener credenciales para acceder a la base de datos de Amazon DocumentDB y especificar el nombre de usuario y la contraseña al crear una conexión a la base de datos. Puede configurar permisos más detallados y restringir el acceso modificando los permisos de usuario de Amazon DocumentDB. Para obtener más información sobre el control de acceso en Amazon DocumentDB, consulte [Acceso a bases de datos mediante control de acceso basado en roles](https://docs.aws.amazon.com/documentdb/latest/developerguide/role_based_access_control.html) en la *Guía para desarrolladores de Amazon DocumentDB.*

Al importar desde Amazon DocumentDB, Canvas convierte los datos no estructurados en un conjunto de datos tabular mediante la asignación de los campos a las columnas de una tabla. Se crean tablas adicionales para cada campo complejo (o estructura anidada) de los datos, donde las columnas corresponden a los subcampos del campo complejo. Para obtener información más detallada sobre este proceso y ejemplos de conversión de esquemas, consulte la página de descubrimiento de esquemas de [controladores JDBC de Amazon DocumentDB](https://github.com/aws/amazon-documentdb-jdbc-driver/blob/develop/src/markdown/schema/schema-discovery.md). GitHub 

Canvas solo puede establecer una conexión a una única base de datos en Amazon DocumentDB. Para importar datos de una base de datos distinta debe crear una conexión nueva.

Puede importar datos de Amazon DocumentDB a Canvas mediante los siguientes métodos:
+ [Creación de un conjunto de datos](canvas-import-dataset.md). Puede importar datos de Amazon DocumentDB y crear un conjunto de datos tabular en Canvas. Si elige este método, asegúrese de seguir el procedimiento de [Importación de datos tabulares](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html#canvas-import-dataset-tabular).
+ [Creación de un flujo de datos](canvas-data-flow.md). Puede crear una canalización de preparación de datos en Canvas y añadir la base de datos de Amazon DocumentDB como origen de datos.

Para continuar con la importación de los datos, siga el procedimiento de uno de los métodos enlazados en la lista anterior.

Cuando llegue al paso en cualquiera de los flujos de trabajo para elegir un origen de datos (paso 6 para crear un conjunto de datos o paso 8 para crear un flujo de datos), haga lo siguiente:

1. En **Origen de datos**, abra el menú desplegable y seleccione **DocumentDB**.

1. Elija **Agregar conexión**.

1. En el cuadro de diálogo, especifique sus credenciales de Amazon DocumentDB:

   1. Especifique un **Nombre de la conexión**. Canvas utiliza este nombre para identificar esta conexión.

   1. En **Clúster**, seleccione el clúster de Amazon DocumentDB que almacena los datos. Canvas rellena automáticamente el menú desplegable con clústeres de Amazon DocumentDB en la misma VPC que la aplicación de Canvas.

   1. Escriba el **Nombre de usuario** para el clúster de Amazon DocumentDB.

   1. Escriba la **Contraseña** para el clúster de Amazon DocumentDB.

   1. Escriba el nombre de la **Base de datos** a la que desea conectarse.

   1. La opción de **Preferencias de lectura** determina los tipos de instancias del clúster desde los que Canvas lee los datos. Seleccione una de estas opciones:
      + **Se prefiere secundaria**: Canvas lee de forma predeterminada las instancias secundarias del clúster, pero si no hay una instancia secundaria disponible, Canvas lee una instancia principal.
      + **Secundaria**: Canvas solo lee las instancias secundarias del clúster, lo que evita que las operaciones de lectura interfieran en las operaciones de lectura y escritura habituales del clúster.

   1. Elija **Agregar conexión**. La siguiente imagen muestra el cuadro de diálogo con los campos anteriores para una conexión a Amazon DocumentDB.  
![\[Captura de pantalla del cuadro de diálogo Añadir una nueva conexión de DocumentDB en Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/add-docdb-connection.png)

Ahora debería tener una conexión a Amazon DocumentDB y puede usar sus datos de Amazon DocumentDB en Canvas para crear un conjunto de datos o un flujo de datos.

### Conexión a una base de datos de Amazon Redshift
<a name="canvas-connecting-redshift"></a>

Puede importar datos de Amazon Redshift, un almacenamiento de datos en el que su organización guarda sus datos. Para poder importar datos de Amazon Redshift, la función de AWS IAM que utilice debe tener la política `AmazonRedshiftFullAccess` gestionada adjunta. Para obtener instrucciones sobre cómo asociar esta política, consulte [Concesión a los usuarios de permisos para importar datos de Amazon Redshift](canvas-redshift-permissions.md). 

Para importar datos desde Amazon Redshift, haga lo siguiente:

1. Cree una conexión a una base de datos de Amazon Redshift.

1. Seleccione los datos que vaya a importar.

1. Importe los datos.

Puede usar el editor Amazon Redshift para arrastrar conjuntos de datos al panel de importación e importarlos a Canvas. SageMaker Para tener un mayor control sobre los valores devueltos en el conjunto de datos, se puede usar lo siguiente:
+ Consultas SQL
+ Uniones

Las consultas SQL le permiten personalizar la forma en que se importan los valores en el conjunto de datos. Por ejemplo, puede especificar las columnas devueltas en el conjunto de datos o el rango de valores de una columna.

Puede usar las uniones para combinar varios conjuntos de datos de Amazon Redshift en un solo conjunto de datos. Puede arrastrar sus conjuntos de datos desde Amazon Redshift al panel que le permite unir los conjuntos de datos.

Puede usar el editor SQL para editar el conjunto de datos que ha unido y convertir el conjunto de datos unido en un solo nodo. Puede unir otro conjunto de datos en el nodo. Puede importar los datos que ha seleccionado a SageMaker Canvas.

Utilice el siguiente procedimiento para importar datos desde Amazon Redshift.

1. En la aplicación SageMaker Canvas, vaya a la página **Conjuntos de datos.**

1. Seleccione **Importar datos** y, en el menú desplegable, elija **Tabular**.

1. Escriba un nombre para el conjunto de datos y, a continuación, elija **Crear**.

1. Para **Origen de datos**, abra el menú desplegable y seleccione **Redshift**.

1. Elija **Agregar conexión**.

1. En el cuadro de diálogo, especifique sus credenciales de Amazon Redshift:

   1. En **Método de autenticación**, seleccione **IAM**.

   1. Ingrese el **Identificador del clúster** para especificar a qué clúster desea conectarse. Introduzca solo el identificador del clúster y no el punto de conexión completo del clúster de Amazon Redshift.

   1. Especifique el **Nombre de la base de datos** a la que desea conectarse.

   1. Ingrese un **Usuario de la base de datos** para identificar el usuario que desea utilizar para conectarse a la base de datos.

   1. En **ARN**, especifique el ARN del rol de IAM del rol que debe asumir el clúster de Amazon Redshift para mover y escribir datos en Amazon S3. Para obtener más información sobre esta función, consulte [Autorizar a Amazon Redshift a acceder a AWS otros servicios en su nombre en la Guía](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) de administración de *Amazon Redshift*.

   1. Especifique un **Nombre de la conexión**. Canvas utiliza este nombre para identificar esta conexión.

1. Desde la pestaña que tiene el nombre de su conexión, arrastre el archivo .csv que va a importar al panel **Arrastrar y soltar para importar**.

1. Opcional: Arrastrar tablas adicionales al panel de importación. Puede utilizar la interfaz gráfica de usuario para unir las tablas. Para obtener una mayor especificidad en las uniones, elija **Editar en SQL**.

1. Opcional: si utiliza SQL para consultar los datos, puede elegir **Contexto** para agregar contexto a la conexión especificando valores para lo siguiente:
   + **Almacén**
   + **Base de datos**
   + **Esquema**

1. Elija **Importar datos**.

En la imagen siguiente, se muestra un ejemplo de campos especificados para una conexión de Amazon Redshift.

![\[Captura de pantalla del cuadro de diálogo Añadir una nueva conexión de Redshift en Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-add-connection.png)


La siguiente imagen muestra la página utilizada para unir conjuntos de datos en Amazon Redshift.

![\[Captura de pantalla de la página Importar en Canvas, que muestra la unión de dos conjuntos de datos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-join.png)


La siguiente imagen muestra una consulta SQL que se utiliza para editar una unión en Amazon Redshift.

![\[Captura de pantalla de una consulta SQL en el Editor de SQL de la página Importar de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-edit-sql.png)


## Conexión a sus datos con conectores JDBC
<a name="canvas-connecting-jdbc"></a>

Con JDBC, puede conectarse a sus bases de datos desde fuentes como Databricks, MySQL, SQLServer PostgreSQL, MariaDB, Amazon RDS y Amazon Aurora.

Debe asegurarse de tener las credenciales y los permisos necesarios para crear la conexión desde Canvas.
+ En el caso de Databricks, debe proporcionar una URL de JDBC. El formato de la URL puede variar entre las instancias de Databricks. Para obtener información sobre cómo encontrar la URL y especificar los parámetros que contiene, consulte [JDBC configuration and connection parameters](https://docs.databricks.com/integrations/bi/jdbc-odbc-bi.html#jdbc-configuration-and-connection-parameters) en la documentación de Databricks. A continuación, se muestra un ejemplo de cómo se puede formatear una URL: `jdbc:spark://aws-sagemaker-datawrangler.cloud.databricks.com:443/default;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/3122619508517275/0909-200301-cut318;AuthMech=3;UID=token;PWD=personal-access-token`
+ Para otros orígenes de bases de datos, debe configurar la autenticación con nombre de usuario y contraseña y, a continuación, especificar esas credenciales al conectarse a la base de datos desde Canvas. 

Además, se debe poder acceder al origen de datos a través del Internet público o, si la aplicación de Canvas se ejecuta en modo **solo VPC**, el origen de datos debe ejecutarse en la misma VPC. *Para obtener más información sobre la configuración de una base de datos de Amazon RDS en una VPC, consulte [Amazon VPC VPCs y Amazon RDS en la Guía del usuario de Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html).*

Tras configurar las credenciales de su origen de datos, puede iniciar sesión en la aplicación de Canvas y crear una conexión con el origen de datos. Especifique sus credenciales (o, en el caso de Databricks, la URL) al crear la conexión.

## Conéctese a fuentes de datos con OAuth
<a name="canvas-connecting-oauth"></a>

Canvas admite su uso OAuth como método de autenticación para conectarse a sus datos en Snowflake y Salesforce Data Cloud. [OAuth](https://oauth.net/2/)es una plataforma de autenticación común para conceder acceso a los recursos sin compartir contraseñas.

**nota**  
Solo puede establecer una OAuth conexión para cada fuente de datos.

Para autorizar la conexión, debe seguir la configuración inicial descrita en [Configure las conexiones a las fuentes de datos con OAuth](canvas-setting-up-oauth.md).

Tras configurar las OAuth credenciales, puede hacer lo siguiente para añadir una conexión de Snowflake o Salesforce Data Cloud con: OAuth

1. Inicie sesión en la aplicación de Canvas.

1. Cree un conjunto de datos tabular. Cuando se le pida que cargue datos, elija Snowflake o Salesforce Data Cloud como origen de datos.

1. Cree una nueva conexión a su origen de datos de Snowflake o Salesforce Data Cloud. Especifique el método OAuth de autenticación e introduzca los detalles de la conexión.

Ahora debería poder importar datos de sus bases de datos en Snowflake o Salesforce Data Cloud.

## Conexión a una plataforma SaaS
<a name="canvas-connecting-saas"></a>

Puede importar datos de Snowflake y de más de 40 plataformas de SaaS externas. Para obtener una lista completa de conectores, consulte la tabla de [Importación de datos](canvas-importing-data.md).

**nota**  
Solo puede importar datos tabulares, como tablas de datos, desde plataformas de SaaS.

### Uso de Snowflake con Canvas
<a name="canvas-using-snowflake"></a>

Snowflake es un servicio de almacenamiento y análisis de datos, y puede importar sus datos de Snowflake a Canvas. SageMaker Para obtener más información acerca de Snowflake, consulte la [documentación de Snowflake](https://www.snowflake.com/en/).

Puede importar datos desde su cuenta de Snowflake por medio del siguiente procedimiento:

1. Crear una conexión a la base de datos de Snowflake.

1. Seleccionar los datos que va a importar arrastrando y soltando la tabla desde el menú de navegación de la izquierda hasta el editor.

1. Importe los datos.

Puede usar el editor Snowflake para arrastrar conjuntos de datos al panel de importación e importarlos a Canvas. SageMaker Para tener un mayor control sobre los valores devueltos en el conjunto de datos, se puede usar lo siguiente:
+ Consultas SQL
+ Uniones

Las consultas SQL le permiten personalizar la forma en que se importan los valores en el conjunto de datos. Por ejemplo, puede especificar las columnas devueltas en el conjunto de datos o el rango de valores de una columna.

Puede unir varios conjuntos de datos de Snowflake en un solo conjunto de datos antes de importarlos a Canvas mediante SQL o la interfaz de Canvas. Puede arrastrar los conjuntos de datos de Snowflake al panel que le permite unir los conjuntos de datos, o bien puede editar las combinaciones en SQL y convertir el SQL en un solo nodo. Puede unir otros nodos con el nodo que ha convertido. A continuación, puede combinar los conjuntos de datos que ha unido en un único nodo y unir los nodos con un conjunto de datos de Snowflake diferente. Por último, puede importar los datos que ha seleccionado a Canvas.

Utilice el siguiente procedimiento para importar datos de Snowflake a Amazon SageMaker Canvas.

1. En la aplicación SageMaker Canvas, vaya a la página **Conjuntos de datos.**

1. Seleccione **Importar datos** y, en el menú desplegable, elija **Tabular**.

1. Escriba un nombre para el conjunto de datos y, a continuación, elija **Crear**.

1. Para **Origen de datos**, abra el menú desplegable y seleccione **Snowflake**.

1. Elija **Agregar conexión**.

1. En el cuadro de diálogo **Agregar una nueva conexión a Snowflake**, especifique sus credenciales de Snowflake. En **Método de autenticación**, elija una de las siguientes opciones:
   + **Básico: nombre de usuario y contraseña**: indique su ID de cuenta, nombre de usuario y contraseña de Snowflake.
   + **ARN**: para mejorar la protección de sus credenciales de Snowflake, proporcione el ARN de un AWS Secrets Manager secreto que contenga sus credenciales. *Para obtener más información, consulte [Crear un AWS Secrets Manager secreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) en la Guía del usuario.AWS Secrets Manager *

     El secreto debe contener las credenciales de Snowflake almacenadas en el siguiente formato JSON:

     ```
     {"accountid": "ID",
     "username": "username",
     "password": "password"}
     ```
   + **OAuth**— OAuth permite autenticarse sin necesidad de proporcionar una contraseña, pero requiere una configuración adicional. Para obtener más información sobre la configuración de OAuth las credenciales de Snowflake, consulte. [Configure las conexiones a las fuentes de datos con OAuth](canvas-setting-up-oauth.md)

1. Elija **Agregar conexión**.

1. Desde la pestaña que tiene el nombre de su conexión, arrastre el archivo .csv que va a importar al panel **Arrastrar y soltar para importar**.

1. Opcional: Arrastrar tablas adicionales al panel de importación. Puede utilizar la interfaz gráfica para unir las tablas. Para obtener una mayor especificidad en las uniones, elija **Editar en SQL**.

1. Opcional: si utiliza SQL para consultar los datos, puede elegir **Contexto** para agregar contexto a la conexión especificando valores para lo siguiente:
   + **Almacén**
   + **Base de datos**
   + **Esquema**

   Añadir contexto a una conexión facilita la especificación de consultas futuras.

1. Elija **Importar datos**.

En la imagen siguiente, se muestra un ejemplo de campos especificados para una conexión de Snowflake.

![\[Captura de pantalla del cuadro de diálogo Añadir una nueva conexión de Snowflake en Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-connection.png)


La siguiente imagen muestra la página utilizada para agregar contexto a una conexión.

![\[Captura de pantalla de la página Importar en Canvas, que muestra el cuadro de diálogo Contexto.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-connection-context.png)


La siguiente imagen muestra la página utilizada para unir conjuntos de datos en Snowflake.

![\[Captura de pantalla de la página Importar en Canvas, que muestra la unión de conjuntos de datos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-join.png)


La siguiente imagen muestra una consulta SQL que se utiliza para editar una unión en Snowflake.

![\[Captura de pantalla de una consulta SQL en el Editor de SQL de la página Importar de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-edit-sql.png)


### Uso de conectores de SaaS con Canvas
<a name="canvas-connecting-external-appflow"></a>

**nota**  
Para las plataformas de SaaS aparte de Snowflake, solo puede tener una conexión por origen de datos.

Antes de poder importar datos desde una plataforma de SaaS, el administrador debe autenticarse y crear una conexión con el origen de datos. Para obtener más información sobre cómo los administradores pueden crear una conexión con una plataforma SaaS, consulte Administrar [ AppFlow las conexiones de Amazon](https://docs.aws.amazon.com/appflow/latest/userguide/connections.html) en la Guía * AppFlow del usuario de Amazon*.

Si eres administrador y estás empezando a usar Amazon AppFlow por primera vez, consulta [Cómo empezar](https://docs.aws.amazon.com/appflow/latest/userguide/getting-started.html) en la *Guía del AppFlow usuario de Amazon*.

Para importar datos desde una plataforma de SaaS, puede seguir el procedimiento estándar [Importación de datos tabulares](canvas-import-dataset.md#canvas-import-dataset-tabular), que le muestra cómo importar conjuntos de datos tabulares en Canvas.

# Conjuntos de datos de ejemplo en Canvas
<a name="canvas-sample-datasets"></a>

SageMaker Canvas proporciona conjuntos de datos de muestra que abordan casos de uso únicos para que pueda empezar a crear, entrenar y validar modelos rápidamente sin escribir ningún código. Los casos de uso asociados a estos conjuntos de datos destacan las capacidades de SageMaker Canvas, y puede aprovechar estos conjuntos de datos para empezar a crear modelos. Puede encontrar los conjuntos de datos de muestra en la página de **conjuntos de datos** de su aplicación Canvas. SageMaker 

Los siguientes conjuntos de datos son los ejemplos que SageMaker Canvas proporciona de forma predeterminada. Estos conjuntos de datos abarcan casos de uso como la predicción del precio de la vivienda, la morosidad de los préstamos y la readmisión de pacientes diabéticos; la previsión de las ventas; la predicción de los fallos de la maquinaria para agilizar el mantenimiento predictivo en las unidades de fabricación; y la generación de predicciones de la cadena de suministro para el transporte y la logística. Los conjuntos de datos se almacenan en la `sample_dataset` carpeta del bucket de Amazon S3 predeterminado que SageMaker AI crea para su cuenta en una región.
+ **canvas-sample-diabetic-readmission.csv:** este conjunto de datos contiene datos históricos que incluyen más de quince características con los resultados de los pacientes y los hospitales. Puede utilizar este conjunto de datos para predecir si es probable que los pacientes diabéticos de alto riesgo sean readmitidos en el hospital dentro de los 30 días siguientes al alta, después de 30 días o que no vuelvan a ingresar en el hospital. Utilice la columna de **reingresos** como columna de destino y utilice el tipo de modelo de predicción de más de 3 categorías con este conjunto de datos. Para obtener más información sobre cómo crear un modelo con este conjunto de datos, consulte la [página del taller de SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/5-hcls). Este conjunto de datos se obtuvo del [UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/diabetes+130-us+hospitals+for+years+1999-2008). 
+ **canvas-sample-housing.csv:** este conjunto de datos contiene datos sobre las características vinculadas a un precio de vivienda determinado. Puede usar este conjunto de datos para predecir los precios de la vivienda. Utilice la columna **median\$1house\$1value** como columna de destino y utilice el tipo de modelo de predicción numérica con este conjunto de datos. Para obtener más información sobre cómo crear un modelo con este conjunto de datos, consulte la [página del taller de SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/2-real-estate). Este es el conjunto de datos sobre viviendas de California obtenido del [StatLib repositorio](https://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.html).
+ **canvas-sample-loans.csv:** este conjunto de datos contiene datos crediticios completos de todos los préstamos emitidos entre 2007 y 2011, incluidos el estado actual del préstamo y la información de pago más reciente. Puede usar este conjunto de datos para predecir si un cliente reembolsará un préstamo. Utilice la columna de **loan\$1status** como columna de destino y utilice el tipo de modelo de predicción de más de 3 categorías con este conjunto de datos. Para obtener más información sobre cómo crear un modelo con este conjunto de datos, consulte la página del taller de [SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/4-finserv). Estos datos utilizan los LendingClub datos obtenidos de [Kaggle](https://www.kaggle.com/datasets/wordsforthewise/lending-club).
+ **canvas-sample-maintenance.csv:** este conjunto de datos contiene datos sobre las características relacionadas con un tipo de fallo de mantenimiento determinado. Puede usar este conjunto de datos para predecir qué fallos se producirán en el futuro. Utilice la columna de **Failure Type** como columna de destino y utilice el tipo de modelo de predicción de más de 3 categorías con este conjunto de datos. Para obtener más información sobre cómo crear un modelo con este conjunto de datos, consulte la [página del taller de SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/6-manufacturing). Este conjunto de datos se obtuvo del [UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/AI4I+2020+Predictive+Maintenance+Dataset).
+ **canvas-sample-shipping-logs.csv:** este conjunto de datos contiene los datos de envío completos de todos los productos entregados, incluidos el tiempo estimado, la prioridad de envío, el transportista y el origen. Puede usar este conjunto de datos para predecir la hora estimada de llegada del envío en número de días. Usa la **ActualShippingDays**columna como columna de destino y usa el tipo de modelo de predicción numérica con este conjunto de datos. Para obtener más información sobre cómo crear un modelo con estos datos, consulte la [página del taller de SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/7-supply-chain). Se trata de un conjunto de datos sintético creado por Amazon.
+ **canvas-sample-sales-forecasting.csv:** este conjunto de datos contiene datos históricos de ventas en series temporales para tiendas minoristas. Puede usar este conjunto de datos para pronosticar las ventas de una tienda minorista en particular. Use la columna **sales** como columna de destino y use el tipo de modelo de previsión de series temporales con este conjunto de datos. Para obtener más información sobre cómo crear un modelo con este conjunto de datos, consulte la [página del taller de SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/3-retail). Se trata de un conjunto de datos sintético creado por Amazon.

# Reimportación de un conjunto de datos de muestra eliminado
<a name="canvas-sample-datasets-reimport"></a>

Amazon SageMaker Canvas le proporciona conjuntos de datos de muestra para varios casos de uso que destacan las capacidades de Canvas. Para obtener más información acerca de los conjuntos de datos de muestra que están disponibles, consulte [Conjuntos de datos de ejemplo en Canvas](canvas-sample-datasets.md). Si ya no desea utilizar los conjuntos de datos de muestra, puede eliminarlos de la página de **conjuntos** de datos de su SageMaker aplicación Canvas. Sin embargo, estos conjuntos de datos siguen almacenados en el bucket de Amazon S3 que especificó como [ubicación de almacenamiento de Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-storage-configuration.html), por lo que siempre podrá acceder a ellos más adelante. 

Si utilizó el bucket de Amazon S3 predeterminado, el nombre del bucket sigue el patrón `sagemaker-{region}-{account ID}`. Puede encontrar los conjuntos de datos de muestra en la ruta del directorio `Canvas/sample_dataset`.

Si elimina un conjunto de datos de muestra de su aplicación SageMaker Canvas y desea volver a acceder al conjunto de datos de muestra, utilice el siguiente procedimiento.

1. Navegue a la página **de conjuntos de datos** en su aplicación SageMaker Canvas.

1. Elija **Importar datos**.

1. En la lista de buckets de Amazon S3, seleccione el bucket que sea su ubicación de almacenamiento de Canvas. Si utiliza el bucket Amazon S3 predeterminado SageMaker creado por IA, sigue el patrón de nomenclatura. `sagemaker-{region}-{account ID}`

1. Seleccione la carpeta **Canvas**.

1. Seleccione la carpeta **sample\$1dataset**, que contiene todos los conjuntos de datos de muestra de Canvas. SageMaker 

1. Seleccione el conjunto de datos que quiera importar y, a continuación, elija **Importar datos**.

# Preparación de datos
<a name="canvas-data-prep"></a>

**nota**  
Anteriormente, Amazon SageMaker Data Wrangler formaba parte de la experiencia SageMaker Studio Classic. Ahora, si se actualiza para usar la nueva experiencia de Studio, debe usar SageMaker Canvas para acceder a Data Wrangler y recibir las últimas actualizaciones de funciones. Si ha estado utilizando Data Wrangler en Studio Classic hasta ahora y desea migrar a Data Wrangler en Canvas, es posible que tenga que conceder permisos adicionales para crear y usar una aplicación de Canvas. Para obtener más información, consulte [(Opcional) Migre de Data Wrangler en Studio Classic a Canvas SageMaker](studio-updated-migrate-ui.md#studio-updated-migrate-dw).  
Para obtener información sobre cómo migrar flujos de datos desde Data Wrangler en Studio Classic, consulte [(Opcional) Migración de datos de Studio Classic a Studio](studio-updated-migrate-data.md).

Utilice Amazon SageMaker Data Wrangler en Amazon SageMaker Canvas para preparar, caracterizar y analizar sus datos. Puede integrar un flujo de preparación de datos de Data Wrangler en sus flujos de trabajo de machine learning (ML) a fin de simplificar y agilizar el preprocesamiento de datos y la ingeniería de características sin apenas codificación. También puede añadir sus propios scripts y transformaciones de Python para personalizar flujos de trabajo.
+ **Flujo de datos**: cree un flujo de datos para definir una serie de pasos de preparación de datos para el ML. Puede usar un flujo para combinar conjuntos de datos de diferentes orígenes, identificar el número y los tipos de transformaciones que desea aplicar a los conjuntos de datos y definir un flujo de trabajo de preparación de datos que se pueda integrar en una canalización de ML. 
+ **Transformación**: limpie y transforme su conjunto de datos mediante *transformaciones* estándar, como herramientas de formato para datos numéricos, vectoriales y de cadenas. Personalice sus datos mediante transformaciones como texto, incrustación y codificación categórica. date/time 
+ **Generación de información sobre los datos**: verifique automáticamente la calidad de los datos y detecte anomalías en estos con el informe de información y calidad de datos de Data Wrangler. 
+ **Análisis**: analice las características de su conjunto de datos en cualquier punto del flujo. Data Wrangler incluye herramientas integradas de visualización de datos, como diagramas de dispersión e histogramas; también dispone de herramientas para el análisis de datos, como el análisis de fuga de objetivos y el modelado rápido para comprender la correlación de características. 
+ **Exportación**: exporte su flujo de trabajo de preparación de datos a una ubicación distinta. A continuación, se muestran algunos ejemplos de ubicaciones. 
  + Bucket de Amazon Simple Storage Service (Amazon S3)
  + Amazon SageMaker Feature Store: almacene las funciones y sus datos en una tienda centralizada.
+ **Automatización de la preparación de datos**: cree flujos de trabajo de machine learning a partir de un flujo de datos.
  + Amazon SageMaker Pipelines: cree flujos de trabajo que gestionen la preparación de datos de SageMaker IA, el entrenamiento de modelos y los trabajos de implementación de modelos.
  + Canalización de inferencia en serie: cree una canalización de inferencia en serie a partir de su flujo de datos. Utilícela para hacer predicciones sobre datos nuevos.
  + Script de Python. Almacene los datos y sus transformaciones en un script de Python para sus flujos de trabajo personalizados.

# Creación de un flujo de datos
<a name="canvas-data-flow"></a>

Utilice un flujo de Data Wrangler en SageMaker Canvas, o flujo de *datos*, para crear y modificar una canalización de preparación de datos. Le recomendamos que utilice Data Wrangler para conjuntos de datos de más de 5 GB.

Para comenzar, siga este procedimiento detallado para importar los datos a un flujo de datos.

1. Abre Canvas SageMaker .

1. En el panel de navegación izquierdo, elija **Data Wrangler**.

1. Seleccione **Importar y preparar**.

1. En el menú desplegable, seleccione **Tabular** o **Imagen**.

1. En **Seleccionar un origen de datos**, elija un origen de datos y seleccione los datos que desea importar. Tiene la opción de seleccionar hasta 30 archivos o una carpeta. Si ya ha importado un conjunto de datos a Canvas, elija el **Conjunto de datos de Canvas** como origen. De lo contrario, conéctese a un origen de datos como Amazon S3 o Snowflake y explore los datos. Para obtener información sobre cómo conectarse a un origen de datos o importar datos, consulte las páginas siguientes:
   + [Importación de datos](canvas-importing-data.md)
   + [Conexión con orígenes de datos](canvas-connecting-external.md)

1. Después de seleccionar los datos que desea importar, elija **Siguiente**.

1. (Opcional) En la sección **Configuración de importación** al importar un conjunto de datos tabular, expanda el menú desplegable **Avanzado**. Puede especificar la siguiente configuración avanzada para la importación de flujos de datos:
   + **Método de muestreo**: seleccione el método de muestreo y el tamaño de la muestra que desee utilizar. Para obtener más información sobre cómo cambiar la muestra, consulte la sección [Edición de la configuración de muestreo del flujo de datos](canvas-data-flow-edit-sampling.md).
   + **Codificación de archivos (CSV)**: seleccione la codificación del archivo del conjunto de datos. `UTF-8` es la predeterminada.
   + **Omitir primeras filas**: introduzca el número de filas que desea omitir de la importación si hay filas redundantes al principio del conjunto de datos.
   + **Delimitador**: seleccione el delimitador que separa cada elemento de los datos. También puede especificar un delimitador personalizado.
   + **Detección de varias líneas**: seleccione esta opción si desea que Canvas analice manualmente todo el conjunto de datos en busca de celdas de varias líneas. Canvas determina si se usa o no la compatibilidad con varias líneas tomando una muestra de los datos, pero es posible que Canvas no detecte ninguna celda de varias líneas en la muestra. En este caso, le recomendamos que seleccione la opción **Detección de varias líneas** para obligar a Canvas a comprobar si hay celdas de varias líneas en todo el conjunto de datos.

1. Seleccione **Importar**.

Ahora debería tener un nuevo flujo de datos y poder empezar a añadir pasos de transformación y análisis.

# Cómo funciona la interfaz de usuario del flujo de datos
<a name="canvas-data-flow-ui"></a>

Para ayudarle a navegar por el flujo de datos, Data Wrangler tiene las siguientes pestañas en el panel de navegación superior:
+ **Flujo de datos**: esta pestaña proporciona una vista visual del paso del flujo de datos en el que puede añadir o eliminar transformaciones y exportar datos.
+ **Datos**: esta pestaña ofrece una vista previa de los datos para que pueda comprobar los resultados de las transformaciones. También puede ver una lista ordenada de los pasos del flujo de datos y editarlos o reordenarlos.
**nota**  
En esta pestaña, solo puede previsualizar las visualizaciones de datos (como la distribución de valores por columna) para las orígenes de datos de Amazon S3. No se admiten las visualizaciones de otros orígenes de datos, como Amazon Athena.
+ **Análisis**: en esta pestaña, puede ver subpestañas independientes para cada análisis que cree. Por ejemplo, si crea un histograma y un informe de información y calidad de los datos (DQI), Canvas crea una pestaña para cada uno.

**Al importar un conjunto de datos, el conjunto de datos original aparece en el flujo de datos y se denomina Fuente.** SageMaker **Canvas deduce automáticamente los tipos de cada columna del conjunto de datos y crea un nuevo marco de datos denominado Tipos de datos.** Puede seleccionar este marco para actualizar los tipos de datos inferidos.

Los conjuntos de datos, las transformaciones y los análisis que utiliza en el flujo de datos se representan como *pasos*. Cada vez que agregue un paso de transformación, creará un marco de datos nuevo. Cuando se agregan varios pasos de transformación (salvo **Unir** o **Concatenar**) al mismo conjunto de datos, estos se apilan.

En la opción **Combinar datos**, seleccione **Unir** y **Concatenar** para crear pasos independientes que contienen el nuevo conjunto de datos unido o concatenado.

# Edición de la configuración de muestreo del flujo de datos
<a name="canvas-data-flow-edit-sampling"></a>

Al importar datos tabulares a un flujo de datos de Data Wrangler, puede tomar una muestra de su conjunto de datos para acelerar el proceso de exploración y limpieza de datos. Ejecutar transformaciones exploratorias en una muestra del conjunto de datos suele ser más rápido que ejecutar transformaciones en todo el conjunto de datos, y cuando esté listo para exportar el conjunto de datos y crear un modelo, puede aplicar las transformaciones a todo el conjunto de datos.

Canvas admite los siguientes métodos de muestreo:
+ **FirstK**: Canvas selecciona los primeros *K* elementos del conjunto de datos, donde *K* es un número que especifique. Este método de muestreo es simple, pero puede provocar sesgos si el conjunto de datos no está ordenado aleatoriamente.
+ **Aleatorio**: Canvas selecciona los elementos del conjunto de datos de forma aleatoria, y cada elemento tiene la misma probabilidad de ser elegido. Este método de muestreo ayuda a garantizar que la muestra sea representativa de todo el conjunto de datos.
+ **Estratificado**: Canvas divide el conjunto de datos en grupos (o *estratos*) en función de uno o más atributos (por ejemplo, la edad y el nivel de ingresos). A continuación, selecciona aleatoriamente un número proporcional de elementos de cada grupo. Este método garantiza que todos los subgrupos relevantes estén adecuadamente representados en la muestra.

Puede editar la configuración de muestreo en cualquier momento para cambiar el tamaño de la muestra utilizada para la exploración de datos.

Para realizar cambios en la configuración de muestreo, haga lo siguiente:

1. En el gráfico de flujo de datos, seleccione el nodo del origen de datos.

1. Elija **Muestreo** en la barra de navegación inferior.

1. Se abre el cuadro de diálogo **Muestreo**. En el menú desplegable **Método de muestreo**, seleccione el método de muestreo que desee.

1. En **Tamaño máximo de la muestra**, introduzca el número de filas que desee muestrear.

1. Elija **Actualizar** para guardar los cambios.

Ahora deberían aplicarse los cambios en la configuración de muestreo.

# Adición de un paso al flujo de datos
<a name="canvas-data-flow-add-step"></a>

En los flujos de datos de Data Wrangler puede añadir pasos que representen las transformaciones y los análisis de los datos.

Para agregar un paso a su flujo de datos, seleccione **\$1** junto a cualquier nodo del conjunto de datos o un paso agregado anteriormente. A continuación, seleccione una de las siguientes opciones:
+ **Editar tipos de datos** (solo para un paso de **Tipos de datos**): si no ha agregado ninguna transformación a un paso de **Tipos de datos**, puede hacer doble clic en el paso de **Tipos de datos** del flujo para abrir la pestaña **Datos** y editar los tipos de datos que Data Wrangler infirió al importar el conjunto de datos. 
+ **Agregar transformación**: agrega un nuevo paso de transformación. Consulte [Transformación de datos](canvas-transform.md) para obtener más información sobre las transformaciones de datos que puede agregar. 
+ **Obtener información sobre datos**: añada análisis, como histogramas o visualizaciones personalizadas. Puede utilizar esta opción para analizar los datos en cualquier punto del flujo de datos. Consulte [Realización de análisis de datos exploratorio (EDA)](canvas-analyses.md) para obtener más información sobre los análisis que puede agregar. 
+ **Unir**: busque esta opción en **Combinar datos** para unir dos conjuntos de datos y agregar el conjunto de datos resultante al flujo de datos. Para obtener más información, consulte [Unir conjuntos de datos](canvas-transform.md#canvas-transform-join).
+ **Concatenar**: busque esta opción en **Combinar datos** para concatenar dos conjuntos de datos y agregar el conjunto de datos resultante al flujo de datos. Para obtener más información, consulte [Concatenar conjuntos de datos](canvas-transform.md#canvas-transform-concatenate).

# Edición de pasos del flujo de datos
<a name="canvas-data-flow-edit-steps"></a>

En Amazon SageMaker Canvas, puede editar los pasos individuales de los flujos de datos para transformar el conjunto de datos sin tener que crear un flujo de datos nuevo. En la siguiente página se explica cómo editar pasos de unión y concatenación, así como pasos de origen de datos.

## Editar pasos de unión y concatenación
<a name="canvas-data-flow-edit-join-concat"></a>

En los flujos de datos tiene la flexibilidad de editar los pasos de unión y concatenación. Puede realizar los ajustes necesarios en el flujo de trabajo de procesamiento de datos para garantizar que los datos se combinen y transformen correctamente sin tener que rehacer todo el flujo de datos.

Para editar un paso de unión o concatenación del flujo de datos, haga lo siguiente:

1. Abra el flujo de datos.

1. Elija el icono del signo más (**\$1**) situado junto al nodo de unión o concatenación que desee editar.

1. En el menú contextual, elija **Edit**.

1. Se abre un panel lateral en el que puede editar los detalles de la unión o concatenación. Modifique los campos de los pasos, como el tipo de unión. Para cambiar un nodo de datos y seleccionar otro distinto para unirlo o concatenarlo, elija el icono de eliminación situado junto al nodo y, a continuación, en la vista de flujo de datos, seleccione el nuevo nodo que desee incluir en la transformación.
**nota**  
Al intercambiar un nodo durante el proceso de edición, solo puede seleccionar los pasos que se produzcan antes de la operación de unión o concatenación. Puede intercambiar el nodo izquierdo o derecho, pero solo puede intercambiar un nodo a la vez. Además, no puede seleccionar un nodo de origen como sustituto.

1. Seleccione **Vista previa** para ver el resultado de la operación de combinación.

1. Elija **Actualizar** para guardar los cambios.

Ahora debería actualizarse el flujo de datos.

## Edición o sustitución de un paso de origen de datos
<a name="canvas-data-flow-edit-source"></a>

Es posible que deba realizar cambios en el origen de datos o el conjunto de datos sin eliminar las transformaciones y los pasos del flujo de datos aplicados a los datos originales. En Data Wrangler puede editar o reemplazar la configuración del origen de datos y, al mismo tiempo, mantener los pasos del flujo de datos. Al editar un origen de datos, puede cambiar la configuración de importación, como el tamaño o el método de muestreo, y cualquier configuración avanzada. También puede añadir más archivos con el mismo esquema o, en el caso de orígenes de datos basados en consultas, como Amazon Athena, puede editar la consulta. Al reemplazar un origen de datos, tiene la opción de seleccionar un conjunto de datos diferente o incluso importar los datos de un origen de datos completamente diferente, siempre que el esquema de los nuevos datos coincida con los datos originales.

Para editar una configuración de origen de datos, haga lo siguiente:

1. En la aplicación de Canvas, vaya a la página **Data Wrangler**.

1. Elija un flujo de datos para verlo.

1. En la pestaña **Flujo de datos** que muestra los pasos del flujo de datos, busque el nodo **Origen** que desea editar.

1. Seleccione el icono de puntos suspensivos situado junto al nodo **Origen**.

1. En el menú contextual, elija **Edit**.

1. Para orígenes de datos de Amazon S3 y carga local tiene la opción de seleccionar o cargar más archivos con el mismo esquema que los datos originales. En el caso de orígenes de datos basados en consultas, como Amazon Athena, puede eliminar y seleccionar diferentes tablas en el generador visual de consultas, o bien editar la consulta SQL directamente. Cuando haya terminado, elija **Siguiente**.

1. En **Configuración de importación**, realice los cambios que desee.

1. Cuando haya terminado, elija **Guardar cambios**.

El origen de datos debería actualizarse ahora.

Para reemplazar un origen de datos, haga lo siguiente:

1. En la aplicación de Canvas, vaya a la página **Data Wrangler**.

1. Elija un flujo de datos para verlo.

1. En la pestaña **Flujo de datos** que muestra los pasos del flujo de datos, busque el nodo **Origen** que desea editar.

1. Seleccione el icono de puntos suspensivos situado junto al nodo **Origen**.

1. Seleccione **Reemplazar** en el menú contextual.

1. Consulte la [experiencia de creación de un flujo de datos](canvas-data-flow.md) para seleccionar otro origen de datos y otros datos.

1. Cuando haya seleccionado los datos y esté listo para actualizar el nodo de origen, elija **Guardar**.

Ahora debería ver el nodo **Origen** actualizado en el flujo de datos.

# Reordenación de pasos en el flujo de datos
<a name="canvas-data-flow-reorder-steps"></a>

Después de añadir pasos al flujo de datos tiene la opción de reordenar los pasos en lugar de eliminarlos y volver a añadirlos en el orden correcto. Por ejemplo, puede mover una transformación para imputar los valores que faltan antes de un paso para formatear cadenas.

**nota**  
No puede cambiar el orden de algunos tipos de pasos, por ejemplo, definir el origen de datos, cambiar tipos de datos, unirlos, concatenarlos o dividirlos. Los pasos que no se pueden reordenar aparecen atenuados en la interfaz de usuario de la aplicación de Canvas.

Para reordenar los pasos del flujo de datos, haga lo siguiente:

1. Mientras edita un flujo de datos en Data Wrangler, elija la pestaña **Datos**. Un panel lateral llamado **Pasos** muestra los pasos del flujo de datos en orden.

1. Sitúe el cursor sobre un paso de transformación y seleccione el icono de **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) situado junto a ese paso.

1. Seleccione **Reordenar** en el menú contextual.

1. Arrastre y suelte los pasos del flujo de datos en el orden que desee.

1. Cuando haya terminado, elija **Guardar**.

Los pasos y el gráfico del flujo de datos deberían reflejar ahora los cambios que ha realizado.

# Eliminación de un paso del flujo de datos
<a name="canvas-data-flow-delete-step"></a>

En sus flujos de datos tiene la flexibilidad para eliminar los pasos de unión y concatenación y elegir si desea seguir aplicando o no las transformaciones posteriores a sus datos.

Para eliminar un paso de unión o concatenación del flujo de datos, haga lo siguiente:

1. Abra el flujo de datos.

1. Elija el icono del signo más (**\$1**) situado junto al nodo de unión o concatenación que desee editar.

1. En el menú contextual, seleccione **Delete (Eliminar)**.

1. (Opcional) Si tiene pasos de transformación después del paso de unión o concatenación, puede elegir si desea conservar o no los pasos de transformación subsiguientes y añadirlos por separado a cada nodo de datos. En el panel lateral **Eliminar unión**, elija un nodo para anular su selección y eliminar cualquier paso de transformación posterior. Puede dejar ambos nodos seleccionados para conservar todos los pasos de transformación, o puede anular la selección de ambos nodos para descartar todos los pasos de transformación.

   La siguiente captura de pantalla muestra este paso con solo el segundo de los dos nodos de datos seleccionado. Si la unión se elimina correctamente, la posterior transformación de **Cambiar el nombre de la columna** solo la conserva el segundo nodo de datos.  
![\[Captura de pantalla de un flujo de datos en Data Wrangler que muestra la vista de eliminación de uniones.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-data-flow-delete-step.png)

1. Elija **Eliminar**.

El paso de unión o concatenación debería estar eliminada ahora del flujo de datos.

# Realización de análisis de datos exploratorio (EDA)
<a name="canvas-analyses"></a>

Data Wrangler incluye análisis integrados que le ayudan a generar visualizaciones y análisis de datos con unos pocos clics. También puede crear análisis personalizados con su propio código. 

Para agregar un análisis a un marco de datos, seleccione un paso del flujo de datos y, a continuación, elija **Agregar análisis**. Para acceder a un análisis que haya creado, seleccione el paso que contiene el análisis y seleccione el análisis. 

Los análisis se generan con una muestra de hasta 200 000 filas del conjunto de datos y puede configurar el tamaño de la muestra. Para obtener más información acerca del cambio del tamaño de muestra del flujo de datos, consulte [Edición de la configuración de muestreo del flujo de datos](canvas-data-flow-edit-sampling.md).

**nota**  
Los análisis están optimizados para datos con 1000 columnas o menos. Es posible que experimente cierta latencia al generar análisis de datos con columnas adicionales.

Puede agregar los análisis siguientes a un marco de datos:
+ Visualizaciones de datos, incluidos histogramas y gráficos de dispersión. 
+ Un resumen rápido del conjunto de datos, que incluye el número de entradas, los valores mínimo y máximo (para los datos numéricos) y las categorías más y menos frecuentes (para los datos categóricos).
+ Un modelo rápido del conjunto de datos, que se puede utilizar para generar una puntuación de importancia para cada característica. 
+ Un informe de fuga de objetivos, que puede utilizar para determinar si una o más características están estrechamente correlacionadas con la característica objetivo.
+ Una visualización personalizada con su propio código. 

Utilice las siguientes secciones para obtener más información sobre estas opciones.

## Obtención de información sobre los datos y la calidad de los datos
<a name="canvas-data-insights"></a>

Utilice el **Informe de información y calidad de los datos** para realizar un análisis de los datos que ha importado a Data Wrangler. Se recomienda crear el informe después de importar el conjunto de datos. Puede utilizar informe como ayuda para limpiar y procesar los datos. Le proporciona información como el número de valores ausentes y el número de valores atípicos. Si tiene problemas con los datos, como una fuga de objetivos o un desequilibrio, el informe de información puede indicarle esos problemas.

Utilice el siguiente procedimiento para crear un informe de información y calidad de los datos. Se supone que ya ha importado un conjunto de datos a su flujo de Data Wrangler.

**Para crear un informe de información y calidad de datos**

1. Elija el icono de puntos suspensivos junto a un nodo del flujo de Data Wrangler.

1. Seleccione **Obtener información sobre los datos**.

1. En **Tipo de análisis**, elija **Informe de información y calidad de los datos**.

1. En **Nombre del análisis**, especifique un nombre para el informe de información.

1. En **Tipo de problema**, especifique **Regresión** o **Clasificación**.

1. En **Columna de destino**, especifique la columna de destino.

1. Para **Tamaño de los datos**, especifique uno de los siguientes valores:
   + **Conjunto de datos muestreado**: utiliza la muestra interactiva del flujo de datos, que puede contener hasta 200 000 filas del conjunto de datos. Para obtener información acerca de cómo editar el tamaño de la muestra, consulte [Edición de la configuración de muestreo del flujo de datos](canvas-data-flow-edit-sampling.md).
   + **Conjunto de datos completo**: utiliza el conjunto de datos completo del origen de datos para crear el informe.
**nota**  
Para crear un informe de información y calidad de los datos sobre el conjunto de datos completo se utiliza un trabajo SageMaker de procesamiento de Amazon. Un trabajo de SageMaker procesamiento proporciona los recursos informáticos adicionales necesarios para obtener información sobre todos sus datos. Para obtener más información sobre los trabajos de SageMaker procesamiento, consulte[Cargas de trabajo de transformación de datos con procesamiento SageMaker](processing-job.md).

1. Seleccione **Crear**.

Los siguientes temas muestran las secciones del informe:

**Topics**
+ [Resumen](#canvas-data-insights-summary)
+ [Columna objetivo](#canvas-data-insights-target-column)
+ [Modelo rápido](#canvas-data-insights-quick-model)
+ [Resumen de características](#canvas-data-insights-feature-summary)
+ [Muestras](#canvas-data-insights-samples)
+ [Definiciones](#canvas-data-insights-definitions)

Puede descargar el informe o verlo en línea. Para descargar el informe, pulse el botón de descarga en la esquina superior derecha de la pantalla. 

### Resumen
<a name="canvas-data-insights-summary"></a>

El informe de análisis contiene un breve resumen de los datos que incluye información general, como valores ausentes, valores no válidos, tipos de características, recuentos de valores atípicos, etc. También puede incluir advertencias de alta gravedad que indiquen posibles problemas con los datos. Se recomienda investigar las advertencias.

### Columna objetivo
<a name="canvas-data-insights-target-column"></a>

Cuando crea el informe de información y calidad de los datos, Data Wrangler le ofrece la opción de seleccionar una columna de destino. La columna objetivo es una columna que intenta predecir. Cuando se elige una columna objetivo, Data Wrangler crea automáticamente un análisis de la columna objetivo. También clasifica las características en el orden de su poder predictivo. Al seleccionar una columna objetivo, debe especificar si va a intentar resolver un problema de regresión o de clasificación.

Para la clasificación, Data Wrangler muestra una tabla y un histograma de las clases más frecuentes. Una clase es una categoría. También presenta observaciones, o filas, con un valor objetivo que falta o que no es válido.

Para la regresión, Data Wrangler muestra un histograma de todos los valores de la columna objetivo. También presenta observaciones, o filas, con un valor objetivo que falta, que no es válido o que es atípico.

### Modelo rápido
<a name="canvas-data-insights-quick-model"></a>

El **Modelo rápido** proporciona una estimación de la calidad prevista de un modelo que se entrena con sus datos.

Data Wrangler divide los datos en pliegues de entrenamiento y validación. Utiliza el 80 % de las muestras para el entrenamiento y el 20 % de los valores para la validación. Para la clasificación, la muestra se divide estratificadamente. Para una división estratificada, cada partición de datos tiene la misma proporción de etiquetas. En lo que se refiere a los problemas de clasificación, es importante tener la misma proporción de etiquetas entre los pliegues de entrenamiento y de clasificación. Data Wrangler entrena el XGBoost modelo con los hiperparámetros predeterminados. Aplica una parada temprana a los datos de validación y realiza un preprocesamiento mínimo de la característica.

En el caso de los modelos de clasificación, Data Wrangler devuelve un resumen del modelo y una matriz de confusión.

 Para obtener más información sobre la información que devuelve el resumen del modelo de clasificación, consulte [Definiciones](#canvas-data-insights-definitions).

Una matriz de confusión le ofrece la siguiente información:
+ El número de veces que la etiqueta predicha coincide con la etiqueta verdadera.
+ El número de veces que la etiqueta predicha no coincide con la etiqueta verdadera.

La etiqueta verdadera representa una observación real de los datos. Por ejemplo, si utiliza un modelo para detectar transacciones fraudulentas, la etiqueta verdadera representa una transacción que en realidad es fraudulenta o no fraudulenta. La etiqueta predicha representa la etiqueta que el modelo asigna a los datos.

Puede usar la matriz de confusión para ver lo bien que predice el modelo la presencia o ausencia de una condición. Si predice transacciones fraudulentas, puede utilizar la matriz de confusión para hacerse una idea de la sensibilidad y la especificidad del modelo. La sensibilidad se refiere a la capacidad del modelo de detectar transacciones fraudulentas. La especificidad se refiere a la capacidad del modelo de evitar detectar transacciones no fraudulentas como fraudulentas.

### Resumen de características
<a name="canvas-data-insights-feature-summary"></a>

Al especificar una columna objetivo, Data Wrangler ordena las características por su poder de predicción. El poder de predicción se mide en los datos después de dividirlos en un 80 % de pliegues de entrenamiento y un 20 % de pliegues de validación. Data Wrangler encaja un modelo para cada característica independiente en el pliegue de entrenamiento. Aplica un preprocesamiento mínimo de la característica y mide el rendimiento de la predicción en los datos de validación.

Normaliza las puntuaciones al rango [0,1]. Las puntuaciones de predicción más altas indican columnas que son más útiles para predecir el objetivo por sí mismas. Las puntuaciones más bajas apuntan a columnas que no predicen la columna objetivo.

No es habitual que una columna que no sea predictiva por sí sola lo sea cuando se usa junto con otras columnas. Puede utilizar con confianza las puntuaciones de predicción para determinar si una característica de su conjunto de datos es predictiva.

Una puntuación baja suele indicar que la característica es redundante. Una puntuación de 1 implica una capacidad predictiva perfecta, lo que a menudo es señal de una fuga de objetivos. La fuga de objetivos suele producirse cuando el conjunto de datos contiene una columna que no está disponible en el momento de la predicción. Por ejemplo, podría ser un duplicado de la columna objetivo.

### Muestras
<a name="canvas-data-insights-samples"></a>

Data Wrangler proporciona información sobre si sus muestras son anómalas o si hay duplicados en el conjunto de datos.

Data Wrangler detecta muestras anómalas mediante el *algoritmo de bosque de aislamiento*. El bosque de aislamiento asocia una puntuación de anomalía a cada muestra (fila) del conjunto de datos. Las puntuaciones de anomalías bajas indican muestras anómalas. Las puntuaciones altas se asocian a muestras no anómalas. Las muestras con una puntuación de anomalía negativa suelen considerarse anómalas y las muestras con una puntuación de anomalía positiva se consideran no anómalas.

Al observar una muestra que podría ser anómala, se recomienda prestar atención a los valores inusuales. Por ejemplo, es posible que tenga valores anómalos que se deban a errores en la recopilación y el procesamiento de los datos. El siguiente es un ejemplo de las muestras más anómalas según la implementación del algoritmo de bosque de aislamiento de Data Wrangler. Se recomienda utilizar el conocimiento del dominio y la lógica empresarial al examinar las muestras anómalas.

Data Wrangler detecta filas duplicadas y calcula la proporción de filas duplicadas en los datos. Algunos orígenes de datos pueden incluir duplicados válidos. Otros orígenes de datos pueden tener duplicados que indiquen problemas en la recopilación de los datos. Las muestras duplicadas que resultan de una recopilación de datos defectuosa podrían interferir con los procesos de machine learning, que se basan en dividir los datos en grupos independientes de entrenamiento y validación.

Los siguientes son los elementos del informe de información que pueden verse afectados por la duplicación de muestras:
+ Modelo rápido
+ Estimación de la potencia predictiva
+ Ajuste automático de hiperparámetros

Puede eliminar las muestras duplicadas del conjunto de datos mediante la transformación **Eliminar duplicados** en **Administrar filas**. Data Wrangler le muestra las filas que se duplican con más frecuencia.

### Definiciones
<a name="canvas-data-insights-definitions"></a>

A continuación, se muestran las definiciones de los términos técnicos que se utilizan en el informe de información de datos.

------
#### [ Feature types ]

Las siguientes son las definiciones de cada uno de los tipos de características:
+ **Numérica**: los valores numéricos pueden ser flotantes o enteros, como la edad o los ingresos. Los modelos de machine learning suponen que los valores numéricos están ordenados y que se define una distancia sobre ellos. Por ejemplo, 3 está más cerca de 4 que de 10 y 3 < 4 < 10.
+ **Categórica**: las entradas de la columna pertenecen a un conjunto de valores únicos, que suele ser mucho menor que el número de entradas de la columna. Por ejemplo, una columna de longitud 100 podría contener los valores únicos `Dog`, `Cat` y `Mouse`. Los valores pueden ser numéricos, de texto o una combinación de ambos. `Horse`, `House`, `8`, `Love` y `3.1` serían todos valores válidos y podrían encontrarse en la misma columna categórica. El modelo de machine learning no supone el orden ni la distancia en los valores de las características categóricas, a diferencia de las características numéricas, incluso cuando todos los valores son números.
+ **Binaria**: las características binarias son un tipo de característica categórica especial en la que la cardinalidad del conjunto de valores únicos es 2.
+ **Texto**: una columna de texto contiene muchos valores únicos no numéricos. En casos extremos, todos los elementos de la columna son únicos. En un caso extremo, no hay dos entradas iguales.
+ **Fecha y hora**: una columna de fecha y hora contiene información sobre la fecha o la hora. Puede contener información tanto de la fecha como de la hora.

------
#### [ Feature statistics ]

Las siguientes son definiciones para cada una de las estadísticas de la característica:
+ **Potencia predictiva**: la potencia predictiva mide la utilidad de la columna para predecir el objetivo.
+ **Valores atípicos** (en columnas numéricas): Data Wrangler detecta los valores atípicos mediante dos estadísticas que son resistentes a los valores atípicos: la mediana y la desviación estándar robusta (RSTD). La RSTD se obtiene al recortar los valores de las características al rango [percentil 5, percentil 95] y calcular la desviación estándar del vector recortado. Todos los valores superiores a la mediana \$15 \$1 RSTD o inferiores a la mediana -5 \$1 RSTD se consideran valores atípicos.
+ **Sesgo** (en columnas numéricas): el sesgo mide la simetría de la distribución y se define como el tercer momento de la distribución dividido por la tercera potencia de la desviación estándar. La asimetría de la distribución normal o de cualquier otra distribución simétrica es cero. Los valores positivos implican que la cola derecha de la distribución es más larga que la cola izquierda. Los valores negativos implican que la cola izquierda de la distribución es más larga que la cola derecha. Como regla general, una distribución se considera asimétrica cuando el valor absoluto de la asimetría es superior a 3.
+ **Curtosis** (en columnas numéricas): la curtosis de Pearson mide el peso de la cola de la distribución. Se define como el cuarto momento de la distribución dividido por el cuadrado del segundo momento. La curtosis de la distribución normal es 3. Los valores de curtosis inferiores a 3 implican que la distribución se concentra alrededor de la media y que las colas son más ligeras que las colas de la distribución normal. Los valores de curtosis superiores a 3 implican colas con más peso o valores atípicos.
+ **Valores ausentes**: los objetos de tipo nulo, las cadenas vacías y las cadenas compuestas únicamente por espacios en blanco se consideran valores ausentes.
+ **Valores válidos para las características numéricas o el objetivo de regresión**: todos los valores que se pueden convertir en flotantes finitos son válidos. Los valores ausentes no son válidos.
+ **Valores válidos para características categóricas, binarias o de texto, o para el objetivo de clasificación**: todos los valores que no faltan son válidos.
+ **Características de fecha y hora**: todos los valores que puede convertir en un objeto de fecha y hora son válidos. Los valores ausentes no son válidos.
+ **Valores no válidos**: valores ausentes o que no se pueden convertir correctamente. Por ejemplo, en una columna numérica, no puede convertir la cadena `"six"` o un valor nulo.

------
#### [ Quick model metrics for regression ]

Las siguientes son las definiciones de las métricas del modelo rápido:
+ R2 (o coeficiente de determinación): R2 es la proporción de la variación en el objetivo que predice el modelo. R2 está en el rango de [-inft, 1]. 1 es la puntuación del modelo que predice el objetivo a la perfección y 0 es la puntuación del modelo trivial que siempre predice la media objetivo.
+ MSE o error cuadrático medio: MSE está en el rango [0, infty]. 0 es la puntuación del modelo que predice perfectamente el objetivo.
+ MAE o error absoluto medio: el MAE se encuentra en el rango [0, infty] donde 0 es la puntuación del modelo que predice perfectamente el objetivo.
+ RMSE o raíz del error cuadrático medio: la RMSE se encuentra en el rango [0, infty] donde 0 es la puntuación del modelo que predice perfectamente el objetivo.
+ Error máximo: el valor absoluto máximo del error en el conjunto de datos. El error máximo se encuentra en el rango [0, infty] donde 0 es la puntuación del modelo que predice perfectamente el objetivo.
+ Mediana del error absoluto: la mediana del error absoluto se encuentra en el rango [0, infty] donde 0 es la puntuación del modelo que predice perfectamente el objetivo.

------
#### [ Quick model metrics for classification ]

Las siguientes son las definiciones de las métricas del modelo rápido:
+ **Precisión**: la precisión es la proporción de muestras que se predicen con precisión. La precisión está en el rango [0, 1]. 0 es la puntuación del modelo que predice todas las muestras de forma incorrecta y 1 es la puntuación del modelo perfecto.
+ **Precisión equilibrada**: la precisión equilibrada es la proporción de muestras que se predicen con precisión cuando se ajustan las ponderaciones de las clases para equilibrar los datos. Se les da la misma importancia a todas las clases, independientemente de su frecuencia. La precisión equilibrada se encuentra en el rango [0, 1]. 0 es la puntuación del modelo que predice erróneamente todas las muestras. 1 es la puntuación del modelo perfecto.
+ **AUC (clasificación binaria)**: es el área bajo la curva característica de funcionamiento del receptor. El AUC se encuentra en el rango [0, 1] en el que un modelo aleatorio arroja una puntuación de 0,5 y el modelo perfecto devuelve una puntuación de 1.
+ **AUC (OVR)**: en la clasificación multiclase, se trata del área bajo la curva característica de funcionamiento del receptor, que se calcula por separado para cada etiqueta, utilizando uno frente al resto. Data Wrangler informa del promedio de las áreas. El AUC se encuentra en el rango [0, 1] en el que un modelo aleatorio arroja una puntuación de 0,5 y el modelo perfecto devuelve una puntuación de 1.
+ **Precisión**: la precisión se define para una clase específica. La precisión es la fracción de positivos verdaderos de todas las instancias en las que el modelo clasificó como esa clase. La precisión está en el rango [0, 1]. 1 es la puntuación del modelo que no tiene falsos positivos para la clase. Para la clasificación binaria, Data Wrangler informa de la precisión de la clase positiva.
+ **Recuperación**: la recuperación se define para una clase específica. La recuperación es la fracción de las instancias de clase pertinentes que se recuperan correctamente. La recuperación está en el rango [0, 1]. 1 es la puntuación del modelo que clasifica correctamente todas las instancias de la clase. Para la clasificación binaria, Data Wrangler informa de la recuperación de la clase positiva.
+ **F1**: F1 se define para una clase específica. Es la media armónica entre la precisión y la recuperación. F1 está en el rango [0, 1]. 1 es la puntuación del modelo perfecto. Para la clasificación binaria, Data Wrangler indica la F1 para las clases con valores positivos.

------
#### [ Textual patterns ]

Los **patrones** describen el formato textual de una cadena utilizando un formato fácil de leer. A continuación se muestran ejemplos de patrones de texto:
+ “\$1digits:4-7\$1” describe una secuencia de dígitos que tienen una longitud entre 4 y 7.
+ “\$1alnum:5\$1” describe una cadena alfanumérica con una longitud exacta de 5.

Data Wrangler infiere los patrones observando muestras de cadenas no vacías a partir de sus datos. Puede describir muchos de los patrones más utilizados. La **confianza** expresada como porcentaje indica qué cantidad de datos se estima que coincide con el patrón. Con el patrón textual, puede ver qué filas de los datos tiene que corregir o eliminar.

A continuación se describen los patrones que Data Wrangler puede reconocer:


| Patrón | Formato textual | 
| --- | --- | 
|  \$1alnum\$1  |  Cadenas alfanuméricas  | 
|  \$1any\$1  |  Cualquier cadena de caracteres de palabra  | 
|  \$1digits\$1  |  Una secuencia de dígitos  | 
|  \$1lower\$1  |  Una palabra en minúscula  | 
|  \$1mixed\$1  |  Una palabra con mayúsculas y minúsculas  | 
|  \$1name\$1  |  Una palabra que comienza por una letra mayúscula  | 
|  \$1upper\$1  |  Una palabra mayúscula  | 
|  \$1whitespace\$1  |  Caracteres de espacio en blanco  | 

Un carácter de palabra es un carácter de subrayado o un carácter que puede aparecer en una palabra en cualquier idioma. Por ejemplo, las cadenas `'Hello_word'` y `'écoute'` están compuestas por caracteres de palabra. Tanto la “H” como la “é” son ejemplos de caracteres de palabra.

------

## Informe de sesgo
<a name="canvas-bias-report"></a>

SageMaker Canvas proporciona el informe de sesgo en Data Wrangler para ayudar a descubrir posibles sesgos en sus datos. El informe de sesgo analiza la relación entre la columna de destino (etiqueta) y una columna que usted crea que puede contener un sesgo (variable de faceta). Por ejemplo, si intenta predecir la conversión de clientes, la variable de faceta podría ser la edad del cliente. El informe de sesgo puede ayudarlo a determinar si los datos están sesgados hacia un grupo de edad determinado.

Para generar un informe de sesgo en Canvas, haga lo siguiente:

1. En el flujo de datos de Data Wrangler, elija el icono de **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) situado junto a un nodo del flujo.

1. En el menú contextual, seleccione **Obtener información sobre los datos**.

1. Se abre el panel lateral **Crear análisis**. En el menú desplegable **Tipo de análisis**, seleccione **Informe de sesgo**.

1.  En el campo **Nombre del análisis**, introduzca un nombre para el informe de sesgo.

1. En el menú desplegable **Seleccione la columna que predice el modelo (destino)**, seleccione la columna de destino.

1. En **¿La columna predicha es un valor o un umbral?**, seleccione **Valor** si la columna de destino tiene valores categóricos o **Umbral** si tiene valores numéricos.

1. En **Valor predicho** (o **Umbral pronosticado**, según lo que haya seleccionado en el paso anterior), introduzca el valor o los valores de la columna de destino que correspondan a un resultado positivo. Por ejemplo, si predice la conversión de clientes, el valor podría ser `yes` para indicar que un cliente se ha convertido.

1. En el menú desplegable **Columna analizada para detectar sesgos**, seleccione la columna que crea que puede contener sesgos, también conocida como variable de faceta.

1. En **¿La columna es un valor o un umbral?**, seleccione **Valor** si la variable de faceta tiene valores categóricos o **Umbral** si tiene valores numéricos.

1. En **Valores de columna analizados para detectar sesgo** (o **Umbral de columna analizado para detectar sesgo**, según lo que haya seleccionado en el paso anterior), introduzca el valor o los valores que desea analizar para detectar posible sesgo. Por ejemplo, si está comprobando si hay sesgo contra clientes mayores de cierta edad, utilice el principio de ese rango de edad como umbral.

1. En **Elegir métricas de sesgo**, seleccione las métricas de sesgo que desee incluir en el informe de sesgo. Pase el cursor sobre los iconos de información para obtener más información sobre cada métrica.

1. (Opcional) Cuando aparezca la opción **¿Desea analizar métricas adicionales?**, seleccione **Sí** para ver e incluir más métricas de sesgo.

1. Cuando esté listo para crear el informe de sesgo, elija **Agregar**.

Una vez generado, el informe le ofrece una visión general de las métricas de sesgo que ha seleccionado. Puede ver el informe de sesgo en cualquier momento desde la pestaña **Análisis** del flujo de datos.

## Histograma
<a name="canvas-visualize-histogram"></a>

Utilice los histogramas para ver los recuentos de los valores de las características de una característica específica. Puede examinar las relaciones entre las características mediante la opción **Colorear por**.

Puede usar la característica **Facetas** para crear histogramas de una columna para cada valor de otra columna. 

## Gráfico de dispersión
<a name="canvas-visualize-scatter-plot"></a>

Use la característica **Gráfico de dispersión** para examinar la relación entre las características. Para crear un gráfico de dispersión, seleccione una característica para representarla en el eje **X** y el eje **Y**. Ambas columnas deben ser columnas de tipo numérico. 

Puede colorear los gráficos de dispersión mediante una columna adicional. 

Además, puede ordenar los gráficos de dispersión por características.

## Resumen de la tabla
<a name="canvas-table-summary"></a>

Utilice el análisis **Resumen de la tabla** para resumir rápidamente los datos.

Para las columnas con datos numéricos, incluidos los logarítmicos y datos flotantes, el resumen de la tabla indica el número de entradas (recuento), mínimo (mín.), máximo (máx.), media y desviación estándar (DE) de cada columna.

Para las columnas con datos no numéricos, incluidas las columnas con cadenas, booleanas o date/time datos, un resumen de tabla indica el número de entradas (recuento), el valor menos frecuente (mínimo) y el valor más frecuente (máximo). 

## Modelo rápido
<a name="canvas-quick-model"></a>

Utilice la visualización **Modelo rápido** para evaluar rápidamente los datos y generar puntuaciones de importancia para cada característica. Una [Puntuación de importancia de la característica](http://spark.apache.org/docs/2.1.0/api/python/pyspark.ml.html#pyspark.ml.classification.DecisionTreeClassificationModel.featureImportances) indica la utilidad de una característica para predecir una etiqueta objetivo. La puntuación de importancia de la característica está entre [0, 1] y un número más alto indica que la característica es más importante para todo el conjunto de datos. En la parte superior del gráfico de modelo rápido, hay una puntuación del modelo. Un problema de clasificación muestra una puntuación de F1. Un problema de regresión tiene una puntuación de error cuadrático medio (MSE).

Cuando crea un gráfico de modelo rápido, selecciona el conjunto de datos que desea evaluar y una etiqueta objetivo con la que desea comparar la importancia de las características. Data Wrangler hace lo siguiente:
+ Infiere los tipos de datos de la etiqueta objetivo y de cada característica del conjunto de datos seleccionado. 
+ Determina el tipo de problema. En función del número de valores distintos de la columna de etiquetas, Data Wrangler determina si se trata de un problema de regresión o clasificación. Data Wrangler establece un umbral categórico en 100. Si hay más de 100 valores distintos en la columna de etiquetas, Data Wrangler lo clasifica como un problema de regresión; de lo contrario, se clasifica como un problema de clasificación. 
+ Preprocesa las características y etiqueta los datos para el entrenamiento. El algoritmo utilizado requiere codificar las características con un tipo vectorial y codificar las etiquetas con un tipo doble. 
+ Entrena un algoritmo de bosque aleatorio con un 70 % de datos. El de Spark [RandomForestRegressor](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-regression)se usa para entrenar un modelo para problemas de regresión. [RandomForestClassifier](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-classifier)Se usa para entrenar un modelo para problemas de clasificación.
+ Evalúa un modelo de bosque aleatorio con el 30 % restante de los datos. Data Wrangler evalúa los modelos de clasificación con una puntuación F1 y evalúa los modelos de regresión con una puntuación MSE.
+ Calcula la importancia de cada característica mediante el método de importancia de Gini. 

## Fuga de objetivos
<a name="canvas-analysis-target-leakage"></a>

La fuga de objetivos se produce cuando hay datos en un conjunto de datos de entrenamiento de machine learning que están estrechamente correlacionados con la etiqueta objetivo, pero que no están disponibles en los datos de la vida real. Por ejemplo, es posible que tenga una columna en su conjunto de datos que sirva como proxy de la columna que desea predecir con su modelo. 

Al utilizar el análisis **Fuga de objetivos**, especifica lo siguiente:
+ **Objetivo**: esta es la característica sobre la que desea que su modelo de machine learning pueda realizar predicciones.
+ **Tipo de problema**: este es el tipo de problema de machine learning en el que está trabajando. El tipo de problema puede ser de **clasificación** o **regresión**. 
+  (Opcional) **Características máximas**: es la cantidad máxima de características que se pueden presentar en la visualización, que muestra las características clasificadas según su riesgo de convertirse en una fuga de objetivos.

Para la clasificación, el análisis de fuga de objetivos utiliza el área bajo la curva de la característica operativa de receptor, o curva AUC-ROC para cada columna, hasta las **Características máximas**. Para la regresión, utiliza un coeficiente de determinación o métrica R2.

La curva AUC-ROC proporciona una métrica predictiva, calculada individualmente para cada columna mediante la validación cruzada, en una muestra de hasta 1000 filas aproximadamente. Una puntuación de 1 indica una capacidad predictiva perfecta, lo que a menudo es señal de una fuga de objetivos. Una puntuación igual o inferior a 0,5 indica que la información de la columna no puede proporcionar, por sí sola, ninguna información útil para predecir el objetivo. Aunque puede ocurrir que una columna no sea informativa por sí sola, pero que sea útil para predecir el objetivo cuando se utiliza junto con otras características, una puntuación baja podría indicar que la característica es redundante.

## Multicolinealidad
<a name="canvas-multicollinearity"></a>

La multicolinealidad es una circunstancia en la que dos o más variables predictoras están relacionadas entre sí. Las variables predictoras son características del conjunto de datos que se utilizan para predecir una variable objetivo. Cuando tiene multicolinealidad, las variables predictoras no solo predicen la variable objetivo, sino que también se predicen entre sí.

Puede utilizar el **factor de inflación de la varianza (VIF)**, el **análisis de componentes principales (PCA)** o la **selección de características Lasso** como medidas de la multicolinealidad de los datos. Para obtener más información, consulte lo siguiente.

------
#### [ Variance Inflation Factor (VIF) ]

El factor de inflación de la varianza (VIF) es una medida de la colinealidad entre pares de variables. Data Wrangler devuelve una puntuación de VIF como una medida de lo estrechamente que están relacionadas las variables entre sí. Una puntuación de VIF es un número positivo que es mayor o igual a 1.

Una puntuación de 1 significa que la variable no está correlacionada con las demás variables. Las puntuaciones superiores a 1 indican una correlación más alta.

En teoría, puede tener una puntuación VIF con un valor de infinito. Data Wrangler reduce las puntuaciones altas a 50. Si tiene una puntuación de VIF superior a 50, Data Wrangler establece la puntuación en 50.

Puede utilizar las siguientes pautas para interpretar las puntuaciones de VIF:
+ Una puntuación de VIF inferior o igual a 5 indica que las variables están moderadamente correlacionadas con las demás variables.
+ Una puntuación de VIF mayor o igual a 5 indica que las variables están altamente correlacionadas con las demás variables.

------
#### [ Principle Component Analysis (PCA) ]

El análisis de componentes principales (PCA) mide la varianza de los datos en diferentes direcciones en el espacio de características. El espacio de características consta de todas las variables predictoras que se utilizan para predecir la variable objetivo en el conjunto de datos.

Por ejemplo, si intenta predecir quién sobrevivió en el *RMS Titanic* tras chocar contra un iceberg, su espacio de características puede incluir la edad, el sexo y la tarifa que pagaron los pasajeros.

Desde el espacio de características, el PCA genera una lista ordenada de varianzas. Estas varianzas también se conocen como valores singulares. Los valores de la lista de varianzas son mayores o iguales a 0. Podemos usarlos para determinar cuánta multicolinealidad hay en nuestros datos.

Cuando los números son aproximadamente uniformes, los datos tienen muy pocas instancias de multicolinealidad. Cuando hay mucha variabilidad entre los valores, tenemos muchas instancias de multicolinealidad. Antes de realizar el PCA, Data Wrangler normaliza cada característica para que tenga una media de 0 y una desviación estándar de 1.

**nota**  
En esta circunstancia, el PCA también puede denominarse descomposición en valores singulares (SVD).

------
#### [ Lasso feature selection ]

La selección de características Lasso utiliza la técnica de regularización L1 para incluir solo las características más predictivas en el conjunto de datos.

Tanto para la clasificación como para la regresión, la técnica de regularización genera un coeficiente para cada característica. El valor absoluto del coeficiente proporciona una puntuación de importancia para la característica. Una puntuación de importancia más alta indica que es más predictiva de la variable objetivo. Un método habitual de selección de características consiste en utilizar todas las características que tienen un coeficiente lasso distinto de cero.

------

## Detección de anomalías en los datos de serie temporal
<a name="canvas-time-series-anomaly-detection"></a>

Puede utilizar la visualización de la detección de anomalías para ver los valores atípicos en los datos de serie temporal. Para entender qué es lo que determina una anomalía, debe entender que descomponemos la serie temporal en un término predicho y un término de error. La estacionalidad y la tendencia de la serie temporal se consideran el término predicho. Los residuos se tratan como el término de error.

Para el término de error, se especifica un umbral como el número de desviaciones estándar que el residuo puede alejarse de la media para que se considere una anomalía. Por ejemplo, puede especificar un umbral de 3 desviaciones estándar. Cualquier residuo que esté a más de 3 desviaciones estándar de la media es una anomalía.

Puede utilizar el siguiente procedimiento para realizar un análisis de **Detección de anomalías**.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar análisis**.

1. En **Tipo de análisis**, elija **Serie temporal**.

1. En **Visualización**, elija **Detección de anomalías**.

1. En **Umbral de anomalía**, elija el umbral para que un valor se considera una anomalía.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

## Descomposición de tendencias estacionales en datos de serie temporal
<a name="canvas-seasonal-trend-decomposition"></a>

Puede determinar si hay estacionalidad en sus datos de serie temporal mediante la visualización de la descomposición de tendencias estacionales. Para realizar la descomposición, se usa el método STL (descomposición de tendencias estacionales mediante LOESS). La serie temporal se descompone en sus componentes estacionales, tendenciales y residuales. La tendencia refleja la progresión a largo plazo de la serie. El componente estacional es una señal que se repite en un período de tiempo. Tras eliminar los componentes estacionales y tendenciales de la serie temporal, se obtiene el residuo.

Puede utilizar el siguiente procedimiento para realizar un análisis de **descomposición de la tendencia estacional**.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar análisis**.

1. En **Tipo de análisis**, elija **Serie temporal**.

1. En **Visualización**, elija **Descomposición de tendencias estacionales**.

1. En **Umbral de anomalía**, elija el umbral para que un valor se considera una anomalía.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

## Creación de visualizaciones personalizadas
<a name="canvas-visualize-custom"></a>

Puede agregar un análisis al flujo de Data Wrangler para crear una visualización personalizada. Su conjunto de datos, con todas las transformaciones que ha aplicado, está disponible como [Pandas DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html). Data Wrangler usa la variable `df` para almacenar el marco de datos. Para acceder al marco de datos, debe llamar a la variable.

Debe proporcionar la variable de salida, `chart`, para almacenar un gráfico de salida de [Altair](https://altair-viz.github.io/). Por ejemplo, puede utilizar el bloque de código siguiente para crear un histograma personalizado con el conjunto de datos del Titanic.

```
import altair as alt
df = df.iloc[:30]
df = df.rename(columns={"Age": "value"})
df = df.assign(count=df.groupby('value').value.transform('count'))
df = df[["value", "count"]]
base = alt.Chart(df)
bar = base.mark_bar().encode(x=alt.X('value', bin=True, axis=None), y=alt.Y('count'))
rule = base.mark_rule(color='red').encode(
    x='mean(value):Q',
    size=alt.value(5))
chart = bar + rule
```

**Para crear una visualización personalizada:**

1. Junto al nodo que contiene la transformación que quiere visualizar, elija el signo **\$1**.

1. Elija **Agregar análisis**.

1. En **Tipo de análisis**, elija **Visualización personalizada**.

1. En **Nombre del análisis**, especifique un nombre.

1. Introduzca el código en el cuadro de códigos. 

1. Elija **Vista previa** para obtener una vista previa de la visualización.

1. Elija **Guardar** para agregar la visualización.

Si no sabe cómo usar el paquete de visualización de Altair en Python, puede usar fragmentos de código personalizados para ayudarle a empezar.

Data Wrangler tiene una colección de fragmentos de visualización con capacidad de búsqueda. Para utilizar un fragmento de visualización, elija **Buscar fragmentos de ejemplo** y especifique una consulta en la barra de búsqueda.

En el siguiente ejemplo, se utiliza el fragmento de código **Gráfico de dispersión discretizado**. Traza un histograma para 2 dimensiones.

Los fragmentos incluyen comentarios para ayudarle a entender los cambios que debe realizar en el código. Por lo general, es necesario especificar los nombres de las columnas del conjunto de datos en el código.

```
import altair as alt

# Specify the number of top rows for plotting
rows_number = 1000
df = df.head(rows_number)  
# You can also choose bottom rows or randomly sampled rows
# df = df.tail(rows_number)
# df = df.sample(rows_number)


chart = (
    alt.Chart(df)
    .mark_circle()
    .encode(
        # Specify the column names for binning and number of bins for X and Y axis
        x=alt.X("col1:Q", bin=alt.Bin(maxbins=20)),
        y=alt.Y("col2:Q", bin=alt.Bin(maxbins=20)),
        size="count()",
    )
)

# :Q specifies that label column has quantitative type.
# For more details on Altair typing refer to
# https://altair-viz.github.io/user_guide/encoding.html#encoding-data-types
```

# Transformación de datos
<a name="canvas-transform"></a>

Amazon SageMaker Data Wrangler ofrece numerosas transformaciones de datos de aprendizaje automático para agilizar la limpieza y la caracterización de los datos. Con las herramientas interactivas de preparación de datos de Data Wrangler, puede muestrear conjuntos de datos de cualquier tamaño con una variedad de técnicas de muestreo y empezar a explorar los datos en cuestión de minutos. Después de finalizar las transformaciones de datos en los datos muestreados, puede escalar el flujo de datos para aplicar esas transformaciones a todo el conjunto de datos.

Cuando agrega una transformación, agrega un paso al flujo de datos. Cada transformación que añada modifica su conjunto de datos y produce un nuevo marco de datos. Todas las transformaciones posteriores se aplican al marco de datos resultante.

Data Wrangler incluye transformaciones integradas, que puede utilizar para transformar columnas sin necesidad de código. Si sabe cómo quiere preparar los datos, pero no sabe cómo empezar o qué transformaciones utilizar, puede utilizar la función de chat para que la característica de preparación de datos interactúe de forma conversacional con Data Wrangler y aplicar transformaciones utilizando lenguaje natural. Para obtener más información, consulte [Chat para preparación de datos](canvas-chat-for-data-prep.md). 

También puede añadir transformaciones personalizadas mediante PySpark Python (función definida por el usuario), pandas y PySpark SQL. Algunas transformaciones funcionan “in situ”, mientras que otras crean una nueva columna de salida en el conjunto de datos.

Puede aplicar transformaciones a varias columnas a la vez. Por ejemplo, puede eliminar varias columnas en un solo paso.

Puede aplicar las transformaciones **Procesar numérico** y **Gestionar faltantes** solo a una columna.

Utilice esta página para obtener más información sobre estas transformaciones integradas y personalizadas que ofrece Data Wrangler.

## Unir conjuntos de datos
<a name="canvas-transform-join"></a>

Puede unir conjuntos de datos directamente en su flujo de datos. Al unir dos conjuntos de datos, el conjunto de datos unido resultante aparece en el flujo. Data Wrangler admite los siguientes tipos de unión.
+ **Exterior izquierda**: incluye todas las filas de la tabla de la izquierda. Si el valor de la columna unida a una fila de la izquierda de la tabla no coincide con ningún valor de la fila de la derecha, esa fila contiene valores nulos para todas las columnas de la derecha de la tabla unida.
+ **Anti izquierda**: incluye las filas de la tabla de la izquierda que no contienen los valores de la tabla de la derecha para la columna unida.
+ **Semicombinación izquierda**: incluye una sola fila de la tabla de la izquierda para todas las filas idénticas que cumplan los criterios de la instrucción de combinación. Esto excluye las filas duplicadas de la tabla de la izquierda que coincidan con los criterios de la unión.
+ **Exterior derecha**: incluye todas las filas de la tabla de la derecha. Si el valor de la columna unida de una fila de la derecha de la tabla no coincide con ningún valor de la fila de la izquierda, esa fila contiene valores nulos para todas las columnas de la tabla de la izquierda de la tabla unida.
+ **Interior**: incluye filas de las tablas izquierda y derecha que contengan valores coincidentes en la columna unida. 
+ **Exterior completa**: incluye todas las filas de las tablas de la izquierda y la derecha. Si el valor de fila de la columna unida de alguna de las tablas no coincide, se crean filas independientes en la tabla unida. Si una fila no contiene un valor para una columna de la tabla unida, se inserta un valor nulo para esa columna.
+ **Cruz cartesiana**: incluye las filas que combinan cada fila de la primera tabla con cada fila de la segunda tabla. Se trata de un [producto cartesiano](https://en.wikipedia.org/wiki/Cartesian_product) de las filas de las tablas de la unión. El resultado de este producto es el tamaño de la tabla izquierda multiplicado por el tamaño de la tabla derecha. Por lo tanto, recomendamos tener cuidado al utilizar esta unión entre conjuntos de datos muy grandes. 

Siga este procedimiento para unir dos conjuntos de datos. Ya debería haber importado dos orígenes de datos al flujo de datos.

1. Seleccione el icono de **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) situado junto al nodo izquierdo que desea unir. El primer nodo que seleccione será siempre la tabla de la izquierda de la unión. 

1. Pase el cursor sobre **Combinar datos** y, a continuación, seleccione **Unir**.

1. Seleccione el nodo derecho. El segundo nodo que seleccione será siempre la tabla de la derecha de la unión.

1. El campo **Tipo de unión** está establecido en **Unión interna** de forma predeterminada. Seleccione el menú desplegable para cambiar el tipo de unión.

1. En **Claves de unión**, compruebe las columnas de las tablas de la izquierda y la derecha que desee utilizar para unir los datos. Puede agregar o eliminar claves de unión adicionales.

1. En **Nombre de unión**, escriba un nombre para los datos unidos o utilice el nombre predeterminado.

1. (Opcional) Seleccione **Vista previa** para obtener una vista previa de los datos unidos.

1. Seleccione **Añadir** para completar la unión.

**nota**  
Si recibe un aviso de que Canvas no ha identificado filas coincidentes al unir los datos, le recomendamos que compruebe que ha seleccionado las columnas correctas o que actualice la muestra para buscar filas coincidentes. Puede elegir una estrategia de muestreo diferente o cambiar el tamaño de la muestra. Para obtener información acerca de cómo editar la muestra, consulte [Edición de la configuración de muestreo del flujo de datos](canvas-data-flow-edit-sampling.md).

Ahora debería ver un nodo de unión agregado al flujo de datos.

## Concatenar conjuntos de datos
<a name="canvas-transform-concatenate"></a>

La concatenación combina dos conjuntos de datos añadiendo las filas de un conjunto de datos a otro.

Siga este procedimiento para concatenar dos conjuntos de datos. Ya debería haber importado dos orígenes de datos al flujo de datos.

**Concatenación de dos conjuntos de datos:**

1. Seleccione el icono de **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) situado junto al nodo izquierdo que desea concatenar. El primer nodo que seleccione será siempre la tabla de la izquierda de la operación de concatenación. 

1. Pase el cursor sobre **Combinar datos** y, a continuación, seleccione **Concatenar**.

1. Seleccione el nodo derecho. El segundo nodo que seleccione será siempre la tabla de la derecha de la concatenación.

1. (Opcional) Seleccione la casilla de verificación situada junto a **Eliminar los duplicados después de la concatenación** para eliminar las columnas duplicadas. 

1. (Opcional) Seleccione la casilla de verificación situada junto a **Añadir columna para indicar el marco de datos de origen** para agregar una columna al marco de datos resultante que presente el conjunto de datos de origen de cada registro.

   1. En **Nombre de la columna del indicador**, introduzca un nombre para la columna agregada.

   1. En **Cadena que indica el primer conjunto de datos**, introduzca el valor que desee usar para marcar los registros del primer conjunto de datos (o del nodo izquierdo).

   1. En **Cadena que indica el segundo conjunto de datos**, introduzca el valor que desee usar para marcar los registros del segundo conjunto de datos (o del nodo derecho).

1. En **Nombre de la concatenación**, introduzca un nombre para la concatenación.

1. (Opcional) Seleccione **Vista previa** para obtener una vista previa de los datos concatenados.

1. Seleccione **agregar** para añadir el nuevo conjunto de datos a su flujo de datos. 

Ahora debería ver un nodo de concatenación agregado al flujo de datos.

## Equilibrar los datos
<a name="canvas-transform-balance-data"></a>

Puede equilibrar los datos de los conjuntos de datos con una categoría infrarrepresentada. Equilibrar un conjunto de datos puede ayudarle a crear mejores modelos para la clasificación binaria.

**nota**  
No puede equilibrar los conjuntos de datos que contienen vectores de columnas.

Puede utilizar la operación **Equilibrar datos** para equilibrar los datos mediante uno de los siguientes operadores.
+ *Sobremuestreo aleatorio*: duplica aleatoriamente las muestras de la categoría minoritaria. Por ejemplo, si está intentando detectar un fraude, es posible que solo tenga casos de fraude en el 10 % de sus datos. Para una proporción igual de casos fraudulentos y no fraudulentos, este operador duplica aleatoriamente los casos de fraude en el conjunto de datos ocho veces.
+ *Submuestreo aleatorio*: es bastante equivalente al sobremuestreo aleatorio. Elimina aleatoriamente las muestras de la categoría sobrerrepresentada para obtener la proporción de muestras que desee.
+ *Técnica de sobremuestreo de minorías sintéticas (SMOTE)*: utiliza muestras de la categoría infrarrepresentada para interpolar nuevas muestras minoritarias sintéticas. Para obtener más información sobre SMOTE, consulte la siguiente descripción.

Puede usar todas las transformaciones para conjuntos de datos que contengan características numéricas y no numéricas. SMOTE interpola los valores mediante muestras vecinas. Data Wrangler utiliza la distancia R cuadrada para determinar la vecindad e interpolar las muestras adicionales. Data Wrangler solo usa características numéricas para calcular las distancias entre las muestras del grupo subrepresentado.

Para dos muestras reales del grupo subrepresentado, Data Wrangler interpola las características numéricas mediante un promedio ponderado. Asigna ponderaciones de forma aleatoria a las muestras en el rango de [0, 1]. Para las características numéricas, Data Wrangler interpola las muestras utilizando un promedio ponderado de las muestras. Para las muestras A y B, Data Wrangler podría asignar aleatoriamente una ponderación de 0,7 a A y 0,3 a B. La muestra interpolada tiene un valor de 0,7A \$1 0,3B.

Data Wrangler interpola las características no numéricas copiándolas de cualquiera de las muestras reales interpoladas. Copie las muestras con una probabilidad que asigna aleatoriamente a cada muestra. Para las muestras A y B, puede asignar probabilidades de 0,8 a A y 0,2 a B. Para las probabilidades que asignó, copia A el 80% del tiempo.

## Transformaciones personalizadas
<a name="canvas-transform-custom"></a>

El grupo **Transformaciones personalizadas** le permite usar Python (función definida por el usuario) PySpark, pandas o PySpark (SQL) para definir transformaciones personalizadas. En las tres opciones, utilice la variable `df` para acceder al marco de datos al que desee aplicar la transformación. Para aplicar el código personalizado en el marco de datos, asigne el marco de datos a las transformaciones que ha realizado a la variable `df`. Si no utiliza Python (función definida por el usuario), no es necesario incluir una declaración de retorno. Seleccione **Vista previa** para obtener una vista previa del resultado de la transformación personalizada. Seleccione **Agregar** para añadir la transformación personalizada a la lista de **Pasos anteriores**.

Puede importar las bibliotecas más populares con una instrucción `import` en el bloque de código de transformación personalizada, como la siguiente:
+ NumPy versión 1.19.0
+ scikit-learn versión 0.23.2
+ SciPy versión 1.5.4
+ pandas versión 1.0.3
+ PySpark versión 3.0.0

**importante**  
La **transformación personalizada** no admite columnas con espacios ni caracteres especiales en el nombre. Se recomienda especificar nombres de columnas que solo tengan caracteres alfanuméricos y guiones bajos. Puede utilizar la transformación **Cambiar nombre de columna** en el grupo de transformaciones **Administrar columnas**, a fin de eliminar los espacios del nombre de una columna. También puede añadir una **transformación personalizada** de **Python (Pandas)** similar a la siguiente para eliminar los espacios de varias columnas en un solo paso. En este ejemplo, se cambian las columnas denominadas `A column` y `B column` por `A_column` y`B_column`, respectivamente.   

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

Si incluye instrucciones de impresión en el bloque de código, el resultado aparece al seleccionar **Vista previa**. Puede cambiar el tamaño del panel del transformador de código personalizado. Al cambiar el tamaño del panel, se proporciona más espacio para escribir código. 

Las siguientes secciones proporcionan contexto adicional y ejemplos para escribir código de transformación personalizado.

**Python (función definida por el usuario)**

La función Python le permite escribir transformaciones personalizadas sin necesidad de conocer Apache Spark o pandas. Data Wrangler está optimizado para ejecutar su código personalizado rápidamente. Obtiene un rendimiento similar con el código Python personalizado y un complemento de Apache Spark.

Para usar el bloque de código Python (función definida por el usuario), especifique lo siguiente.
+ **Columna de entrada**: la columna de entrada en la que aplica la transformación.
+ **Modo**: el modo de programación, ya sea pandas o Python.
+ **Tipo de retorno**: el tipo de datos del valor que devolverá.

El uso del modo pandas ofrece un mejor rendimiento. El modo Python facilita la escritura de transformaciones mediante el uso de funciones puras de Python.

**PySpark**

El siguiente ejemplo extrae la fecha y la hora de una marca de tiempo.

```
from pyspark.sql.functions import from_unixtime, to_date, date_format
df = df.withColumn('DATE_TIME', from_unixtime('TIMESTAMP'))
df = df.withColumn( 'EVENT_DATE', to_date('DATE_TIME')).withColumn(
'EVENT_TIME', date_format('DATE_TIME', 'HH:mm:ss'))
```

**pandas**

El siguiente ejemplo proporciona una descripción general del marco de datos al que se van a añadir las transformaciones. 

```
df.info()
```

**PySpark (SQL)**

El siguiente ejemplo crea un nuevo marco de datos con cuatro columnas: *name*, *fare*, *pclass* y *survived*.

```
SELECT name, fare, pclass, survived FROM df
```

Si no sabes cómo usarlo PySpark, puedes usar fragmentos de código personalizados para ayudarte a empezar.

Data Wrangler tiene una colección de fragmentos de código con capacidad de búsqueda. Puedes usar fragmentos de código para realizar tareas como colocar columnas, agrupar por columnas o modelar.

Para usar un fragmento de código, seleccione **Buscar fragmentos de ejemplo** y especifique una consulta en la barra de búsqueda. El texto que especifique en la consulta no tiene por qué coincidir exactamente con el nombre del fragmento de código.

En el siguiente ejemplo, se muestra un fragmento de código **Descartar filas duplicadas** que puede eliminar filas con datos similares del conjunto de datos. Para encontrar el fragmento de código, busque una de las siguientes opciones:
+ Duplicados
+ Idéntico
+ Quitar

El siguiente fragmento contiene comentarios que le ayudarán a comprender los cambios que debe realizar. Para la mayoría de los fragmentos, debe especificar los nombres de las columnas del conjunto de datos en el código.

```
# Specify the subset of columns
# all rows having identical values in these columns will be dropped

subset = ["col1", "col2", "col3"]
df = df.dropDuplicates(subset)  

# to drop the full-duplicate rows run
# df = df.dropDuplicates()
```

Para usar un fragmento, copie y pegue su contenido en el campo **Transformación personalizada**. Puede copiar y pegar varios fragmentos de código en el campo de transformación personalizada.

## Fórmula personalizada
<a name="canvas-transform-custom-formula"></a>

Usa una **fórmula personalizada** para definir una nueva columna mediante una expresión Spark SQL para consultar datos en el marco de datos actual. La consulta debe usar las convenciones de las expresiones Spark SQL.

**importante**  
La **fórmula personalizada** no admite columnas con espacios ni caracteres especiales en el nombre. Se recomienda especificar nombres de columnas que solo tengan caracteres alfanuméricos y guiones bajos. Puede utilizar la transformación **Cambiar nombre de columna** en el grupo de transformaciones **Administrar columnas**, a fin de eliminar los espacios del nombre de una columna. También puede añadir una **transformación personalizada** de **Python (Pandas)** similar a la siguiente para eliminar los espacios de varias columnas en un solo paso. En este ejemplo, se cambian las columnas denominadas `A column` y `B column` por `A_column` y`B_column`, respectivamente.   

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

Puede utilizar esta transformación para realizar operaciones en las columnas, y puede hacer referencia a las columnas por su nombre. Por ejemplo, supongamos que el marco de datos actual contiene columnas denominadas *col\$1a* y *col\$1b*; puede utilizar la siguiente operación para generar una **columna de salida** que sea el producto de estas dos columnas con el siguiente código:

```
col_a * col_b
```

Otras operaciones comunes son las siguientes, suponiendo que el marco de datos contenga columnas `col_a` y `col_b`:
+ Concatenar dos columnas: `concat(col_a, col_b)`
+ Añadir dos columnas: `col_a + col_b`
+ Restar dos columnas: `col_a - col_b`
+ Dividir dos columnas: `col_a / col_b`
+ Tomar el valor absoluto de una columna: `abs(col_a)`

Para obtener más información, consulte la [documentación de Spark](http://spark.apache.org/docs/latest/api/python) sobre la selección de datos. 

## Reducir la dimensionalidad dentro de un conjunto de datos
<a name="canvas-transform-dimensionality-reduction"></a>

Reduzca la dimensionalidad de sus datos mediante el análisis de componentes principales (PCA). La dimensionalidad de su conjunto de datos depende de la cantidad de características. Cuando utiliza la reducción de dimensionalidad en Data Wrangler, obtiene un nuevo conjunto de características denominados componentes. Cada componente tiene en cuenta cierta variabilidad en los datos.

El primer componente representa la mayor cantidad de variación en los datos. El segundo componente representa la segunda mayor cantidad de variación en los datos, y así sucesivamente.

Puede utilizar la reducción de dimensionalidad para reducir el tamaño de los conjuntos de datos que utiliza para entrenar los modelos. En lugar de utilizar las características en su conjunto de datos, puede utilizar los componentes principales.

Para realizar la PCA, Data Wrangler crea ejes para sus datos. Un eje es una combinación afín de columnas en su conjunto de datos. El primer componente principal es el valor del eje que tiene la mayor cantidad de varianza. El segundo componente principal es el valor del eje que tiene la segunda mayor cantidad de varianza. El enésimo componente principal es el valor del eje que tiene la enésima cantidad de varianza más alta.

Puede configurar el número de componentes principales que devuelve Data Wrangler. Puede especificar el número de componentes principales directamente o puede especificar el porcentaje del umbral de varianza. Cada componente principal explica una cantidad de varianza en los datos. Por ejemplo, podría tener un componente principal con un valor de 0,5. El componente explicaría el 50 % de la variación de los datos. Al especificar un porcentaje umbral de varianza, Data Wrangler devuelve el menor número de componentes posible que cumple con el porcentaje que especifique.

A continuación, se muestran ejemplos de componentes principales con la cantidad de varianza que explican en los datos.
+ Componente 1: 0,5
+ Componente 2: 0,45
+ Componente 3: 0,05

Si especifica un porcentaje de umbral de varianza de `94` o `95`, Data Wrangler devuelve el componente 1 y el componente 2. Si especifica un porcentaje de umbral de varianza de `96`, Data Wrangler devuelve los tres componentes principales.

Puede utilizar el siguiente procedimiento para ejecutar el PCA en el conjunto de datos.

Para ejecutar el PCA en el conjunto de datos, haga lo siguiente.

1. Abra el flujo de datos de Data Wrangler.

1. Seleccione **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Elija **Reducción de dimensionalidad**.

1. En **Columnas de entrada**, elija las características que va a reducir en los componentes principales.

1. (Opcional) En **Número de componentes principales**, elija el número de componentes principales que Data Wrangler devuelve en su conjunto de datos. Si especifica un valor para el campo, no podrá especificar un valor para el **porcentaje del umbral de varianza**.

1. (Opcional) En el **porcentaje del umbral de varianza**, especifique el porcentaje de variación de los datos que desea que expliquen los componentes principales. Data Wrangler utiliza el valor predeterminado de `95` si no especifica un valor para el umbral de varianza. No puede especificar un porcentaje de umbral de varianza si ha especificado un valor para el **número de componentes principales**.

1. (Opcional) Deseleccione **Centrar** para no usar la media de las columnas como centro de los datos. De forma predeterminada, Data Wrangler centra los datos con la media antes de escalarlos.

1. (Opcional) Deseleccione **Escala** para no escalar los datos con la desviación estándar de la unidad.

1. (Opcional) Elija **Columnas** para generar los componentes en columnas separadas. Elija **Vector** para generar los componentes como un vector único.

1. (Opcional) En **Columna de salida**, especifique un nombre para la columna de salida. Si va a enviar los componentes a columnas independientes, el nombre que especifique es un prefijo. Si va a generar los componentes en un vector, el nombre que especifique es el nombre de la columna vectorial.

1. (Opcional) Seleccione **Conservar columnas de entrada**. No recomendamos seleccionar esta opción si planea usar solo los componentes principales para entrenar el modelo.

1. Seleccione **Preview** (Versión preliminar).

1. Elija **Añadir**.

## Codificar categóricos
<a name="canvas-transform-cat-encode"></a>

Los datos categóricos suelen estar compuestos por un número finito de categorías, donde cada categoría se representa con una cadena. Por ejemplo, si tiene una tabla de datos de clientes, una columna que indica el país en el que vive una persona es categórica. Las categorías serían *Afganistán*, *Albania*, *Argelia*, etc. Los datos categóricos pueden ser *nominales* u *ordinales*. Las categorías ordinales tienen un orden inherente, pero las categorías nominales no. El grado de educación más alto obtenido (*bachillerato*, *licenciatura*, *máster*, etc.) es un ejemplo de categorías ordinales. 

La codificación de datos categóricos es el proceso de crear una representación numérica de las categorías. Por ejemplo, si sus categorías son *Perro* y *Gato*, puede codificar esta información en dos vectores: `[1,0]` para representar a *Perro* y `[0,1]` para representar a *Gato*.

Al codificar categorías ordinales, es posible que necesite traducir el orden natural de las categorías a su codificación. Por ejemplo, puede representar el grado más alto obtenido con el siguiente mapa: `{"High school": 1, "Bachelors": 2, "Masters":3}`.

Utilice la codificación categórica para codificar datos categóricos en formato de cadena en matrices de enteros. 

Los codificadores categóricos de Data Wrangler crean codificaciones para todas las categorías que existen en una columna en el momento en que se define el paso. Si se han agregado nuevas categorías a una columna al iniciar un trabajo de Data Wrangler para procesar el conjunto de datos en el momento *t* y esa columna era la entrada para una transformación de codificación categórica de Data Wrangler en el momento *t*-1, esas nuevas categorías se consideran *ausentes* en el trabajo de Data Wrangler. La opción que seleccione para **estrategia de gestión no válida** se aplica a estos valores que faltan. Algunos ejemplos de situaciones en las que esto puede ocurrir: 
+ Cuando se utiliza un archivo .flow para crear un trabajo de Data Wrangler a fin de procesar un conjunto de datos que se actualizó tras la creación del flujo de datos. Por ejemplo, puedes usar un flujo de datos para procesar regularmente los datos de ventas cada mes. Si los datos de ventas se actualizan semanalmente, es posible que se introduzcan nuevas categorías en las columnas para las que se defina un paso categórico de codificación. 
+ Al seleccionar el **muestreo** al importar el conjunto de datos, es posible que algunas categorías queden fuera de la muestra. 

En estas situaciones, estas nuevas categorías se consideran valores ausentes en el trabajo de Data Wrangler.

Puede elegir y configurar una codificación *ordinal* y una *codificación One-Hot*. Utilice las siguientes secciones para obtener más información sobre estas opciones. 

Ambas transformaciones crean una nueva columna llamada **Nombre de columna de salida**. El formato de salida de esta columna se especifica con **Estilo de salida**:
+ Seleccione **Vector** para producir una sola columna con un vector disperso. 
+ Seleccione **Columnas** para crear una columna para cada categoría con una variable indicadora de si el texto de la columna original contiene un valor igual a esa categoría.

### Codificación ordinal
<a name="canvas-transform-cat-encode-ordinal"></a>

Seleccione **Codificación ordinal** para codificar las categorías en un número entero entre 0 y el número total de categorías de la **columna de entrada** que seleccione.

**Estrategia de administración no válida**: seleccione un método para gestionar los valores no válidos o ausentes. 
+ Elija **Omitir** si desea omitir las filas en las que falten valores.
+ Elija **Conservar** para retener los valores faltantes como última categoría.
+ Seleccione **Error** si desea que Data Wrangler arroje un error si se encuentran valores faltantes en la **columna de entrada**.
+ Elija **Reemplazar por NaN** para reemplazar lo que falte por NaN. Se recomienda utilizar esta opción si el algoritmo ML puede gestionar los valores faltantes. De lo contrario, las tres primeras opciones de esta lista pueden producir mejores resultados.

### Codificación One-Hot
<a name="canvas-transform-cat-encode-onehot"></a>

Seleccione **Codificación One-Hot** para que **Transform** utilice la codificación One-Hot. Para configurar esta transformación, haga lo siguiente: 
+ **Descartar la última categoría**: si es `True`, la última categoría no tiene un índice correspondiente en la codificación One-Hot. Cuando es posible que falten valores, una categoría ausente siempre será la última; si se establece esto en `True`, un valor ausente dará como resultado un vector completamente cero.
+ **Estrategia de administración no válida**: seleccione un método para gestionar los valores no válidos o ausentes. 
  + Elija **Omitir** si desea omitir las filas en las que falten valores.
  + Elija **Conservar** para retener los valores faltantes como última categoría.
  + Seleccione **Error** si desea que Data Wrangler arroje un error si se encuentran valores faltantes en la **columna de entrada**.
+ **Entrada con codificación ordinal**: seleccione esta opción si el vector de entrada contiene datos con codificación ordinal. Esta opción requiere que los datos de entrada contengan números enteros no negativos. Si es **Verdadero**, la entrada *i* se codifica como un vector con un valor distinto de cero en la ubicación número *i*. 

### Codificación por similitud
<a name="canvas-transform-cat-encode-similarity"></a>

Utilice la codificación por similitud cuando tenga lo siguiente:
+ Un gran número de variables categóricas
+ Datos con ruido

El codificador por similitud crea incrustaciones para columnas con datos categóricos. Una integración es una asignación de objetos discretos, como palabras, a vectores de números reales. Codifica cadenas similares a vectores que contienen valores similares. Por ejemplo, crea codificaciones muy similares para “California” y “Calfornia”.

Data Wrangler convierte cada categoría de su conjunto de datos en un conjunto de tokens mediante un tokenizador de 3 gramos. Convierte los tokens en una incrustación mediante la codificación MinHash.

Características de las codificaciones por similitud que crea Data Wrangler:
+ Tienen una dimensionalidad baja.
+ Son escalables a un gran número de categorías.
+ Son robustas y resistentes al ruido.

Por las razones anteriores, la codificación por similitud es más versátil que la codificación centralizada.

Para agregar la transformación de codificación por similitud en su conjunto de datos, utilice el siguiente procedimiento.

Para utilizar la codificación por similitud, haga lo siguiente.

1. Inicia sesión en [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker/).

1. Elija **Abrir Studio Classic**.

1. Elija **Lanzar aplicación**.

1. Elija **Studio**.

1. Especifique su flujo de datos.

1. Elija un paso con una transformación.

1. Seleccione **Agregar paso**.

1. Elija **Codificar categóricos**.

1. Especifique lo siguiente:
   + **Transformar**: **codificación por similitud**
   + **Columna de entrada**: la columna que contiene los datos categóricos que está codificando.
   + **Dimensión de destino**: la dimensión del vector de incrustación categórica (opcional). El valor predeterminado es 30. Recomendamos usar una dimensión de destino más grande si tiene un conjunto de datos grande con muchas categorías.
   + **Estilo de salida**: elija **Vector** para un único vector con todos los valores codificados. Elija **Columna** para tener los valores codificados en columnas separadas.
   + **Columna de salida**: el nombre de la columna de salida para una salida codificada vectorial (opcional). En el caso de una salida codificada por columnas, este es el prefijo de los nombres de las columnas seguido del número indicado.

## Caracterización del texto
<a name="canvas-transform-featurize-text"></a>

Utilice el grupo de transformaciones **Caracterizar texto** para inspeccionar las columnas de tipo cadena y utilizar la incrustación de texto a fin de caracterizar estas columnas. 

Este grupo de características contiene dos características: *Estadísticas de caracteres* y *Vectorizar*. Utilice las siguientes secciones para obtener más información sobre estas transformaciones. Para ambas opciones, la **columna de entrada** debe contener datos de texto (tipo cadena).

### Estadísticas de caracteres
<a name="canvas-transform-featurize-text-character-stats"></a>

Utilice **Estadísticas de caracteres** para generar estadísticas para cada fila de una columna que contenga datos de texto. 

Esta transformación calcula las siguientes proporciones y recuentos para cada fila y crea una nueva columna para informar del resultado. La nueva columna recibe el nombre de la columna de entrada como prefijo y un sufijo específico de la proporción o el recuento. 
+ **Número de palabras**: el número total de palabras de esa fila. El sufijo de esta columna de salida es `-stats_word_count`.
+ **Número de caracteres**: el número total de caracteres de esa fila. El sufijo de esta columna de salida es `-stats_char_count`.
+ **Proporción de mayúsculas**: el número de caracteres en mayúscula, de la A a la Z, dividido entre todos los caracteres de la columna. El sufijo de esta columna de salida es `-stats_capital_ratio`.
+ **Proporción de minúsculas**: el número de caracteres en minúscula, de la a a la z, dividido entre todos los caracteres de la columna. El sufijo de esta columna de salida es `-stats_lower_ratio`.
+ **Proporción de dígitos**: la relación entre los dígitos de una sola fila y la suma de los dígitos de la columna de entrada. El sufijo de esta columna de salida es `-stats_digit_ratio`.
+ **Proporción de caracteres especiales**: proporción entre caracteres no alfanuméricos (como \$1\$1&%: @) y la suma de todos los caracteres de la columna de entrada. El sufijo de esta columna de salida es `-stats_special_ratio`.

### Vectorizar
<a name="canvas-transform-featurize-text-vectorize"></a>

La incrustación de texto implica asignar palabras o frases de un vocabulario a vectores de números reales. Utilice la transformación de incrustación de texto de Data Wrangler para tokenizar y vectorizar datos de texto en vectores de frecuencia de término/frecuencia inversa de documento (TF-IDF). 

Cuando se calcula la TF-IDF para una columna de datos de texto, cada palabra de cada oración se convierte en un número real que representa su importancia semántica. Los números más altos se asocian a palabras menos frecuentes, que suelen ser más significativas. 

Al definir un paso de transformación **Vectorizar**, Data Wrangler utiliza los datos de su conjunto de datos para definir el vectorizador de recuento y los métodos TF-IDF. Al ejecutar un trabajo de Data Wrangler, se utilizan estos mismos métodos.

Para usar esta transformación, configure lo siguiente: 
+ **Nombre de la columna de salida**: esta transformación crea una nueva columna con el texto incrustado. Utilice este campo para especificar un nombre para esta columna de salida. 
+ **Tokenizador**: un tokenizador convierte la oración en una lista de palabras o *tokens*. 

  Elija **Estándar** para usar un tokenizador que divida por espacios en blanco y convierta cada palabra en minúsculas. Por ejemplo, `"Good dog"` está tokenizado a `["good","dog"]`.

  Elija **Personalizado** para usar un tokenizador personalizado. Si elige **Personalizado**, puede usar los siguientes campos para configurar el tokenizador.
  + **Longitud mínima del token**: la longitud mínima, en caracteres, para que un token sea válido. El valor predeterminado es `1`. Por ejemplo, si especifica `3` como longitud mínima del token, las palabras como `a, at, in` se eliminarán de la oración tokenizada. 
  + **La expresión regular debe dividirse en espacios**: si se selecciona, la **expresión regular** se dividirá en espacios. De lo contrario, se ajusta a los tokens. El valor predeterminado es `True`. 
  + **Patrón de expresiones regulares**: el patrón de expresiones regulares que define el proceso de tokenización. El valor predeterminado es `' \\ s+'`.
  + **A minúsculas**: si se selecciona, Data Wrangler convierte todos los caracteres a minúsculas antes de la tokenización. El valor predeterminado es `True`.

  Para obtener más información, consulte la documentación de Spark en [Tokenizer](https://spark.apache.org/docs/latest/ml-features#tokenizer).
+ **Vectorizador**: el vectorizador convierte la lista de tokens en un vector numérico disperso. Cada token corresponde a un índice del vector, y un valor distinto de cero indica la existencia del token en la oración de entrada. Puede elegir entre dos opciones de vectorización: *Recuento* y *Hashing*.
  + **Vectorización de recuento** permite personalizaciones con las que filtrar tokens poco frecuentes o demasiado comunes. Los **parámetros de Vectorización de recuento** son los siguientes. 
    + **Frecuencia mínima de términos**: en cada fila, se filtran los términos (tokens) con una frecuencia menor. Si especifica un número entero, se trata de un umbral absoluto (inclusivo). Si especifica una fracción entre 0 y 1 (ambos incluidos), el umbral es relativo al recuento total de términos. El valor predeterminado es `1`.
    + **Frecuencia mínima de documentos**: número mínimo de filas en las que debe aparecer un término (token) para poder incluirlo. Si especifica un número entero, se trata de un umbral absoluto (inclusivo). Si especifica una fracción entre 0 y 1 (ambos incluidos), el umbral es relativo al recuento total de términos. El valor predeterminado es `1`.
    + **Frecuencia máxima de documentos**: número máximo de documentos (filas) en los que puede aparecer un término (token) para ser incluido. Si especifica un número entero, se trata de un umbral absoluto (inclusivo). Si especifica una fracción entre 0 y 1 (ambos incluidos), el umbral es relativo al recuento total de términos. El valor predeterminado es `0.999`.
    + **Tamaño máximo del vocabulario**: tamaño máximo del vocabulario. El vocabulario se compone de todos los términos (tokens) de todas las filas de la columna. El valor predeterminado es `262144`.
    + **Salidas binarias**: si se selecciona, las salidas vectoriales no incluyen el número de apariciones de un término en un documento, sino que son un indicador binario de su presencia. El valor predeterminado es `False`.

    Para obtener más información sobre esta opción, consulta la documentación de Spark en [CountVectorizer](https://spark.apache.org/docs/latest/ml-features#countvectorizer).
  + El **Hashing** es computacionalmente más rápido. Los **parámetros de Vectorización de hashing** son los siguientes.
    + **Número de características durante el hashing**: un vectorizador de hashing asigna los tokens a un índice vectorial según su valor de hash. Esta característica determina el número de valores de hash posibles. Los valores grandes dan como resultado menos colisiones entre los valores hash, pero un vector de salida de mayor dimensión.

    Para obtener más información sobre esta opción, consulta la documentación de Spark en [FeatureHasher](https://spark.apache.org/docs/latest/ml-features#featurehasher)
+ **Apply IDF** aplica una transformación IDF, que multiplica la frecuencia de término por la frecuencia inversa de documento estándar utilizada para la incrustación TF-IDF. Los **parámetros de IDF** son los siguientes. 
  + **Frecuencia mínima de documentos**: número mínimo de documentos (filas) en las que debe aparecer un término (token) para poder incluirlo. Si el vectorizador elegido es **count\$1vectorize**, le recomendamos que mantenga el valor predeterminado y que solo modifique el campo **min\$1doc\$1freq** en los parámetros de **Count vectorize**. El valor predeterminado es `5`.
+ **Formato de salida**: el formato de salida de cada fila. 
  + Seleccione **Vector** para producir una sola columna con un vector disperso. 
  + Seleccione **Plano** para crear una columna para cada categoría con una variable indicadora de si el texto de la columna original contiene un valor igual a esa categoría. Solo puede elegir Plano si **Vectorizador** está configurado como **Vectorizador de recuento**.

## Transformar series temporales
<a name="canvas-transform-time-series"></a>

En Data Wrangler puede transformar datos de serie temporal. Los valores de un conjunto de datos de series temporales están indexados en función de un tiempo específico. Por ejemplo, un conjunto de datos que muestra el número de clientes en una tienda por cada hora del día es un conjunto de datos de series temporales. En la siguiente tabla, se muestra un ejemplo de un conjunto de datos de series temporales.

Número de clientes por hora en una tienda


| Número de clientes | Hora (hora) | 
| --- | --- | 
| 4 | 09:00 | 
| 10 | 10:00 | 
| 14 | 11:00 | 
| 25 | 12:00 | 
| 20 | 13:00 | 
| 18 | 14:00 | 

En la tabla anterior, la columna **Número de clientes** contiene los datos de serie temporal. Los datos de serie temporal se indexan en función de los datos horarios de la columna **Hora**.

Es posible que necesite realizar una serie de transformaciones en los datos para ponerlos en un formato que pueda utilizar en el análisis. Utilice el grupo de transformaciones **Series temporales** para transformar los datos de series temporales. Para obtener más información acerca de las transformaciones que puede realizar, consulte las siguientes secciones.

**Topics**
+ [Agrupación por serie temporal](#canvas-group-by-time-series)
+ [Remuestreo de datos de series temporales](#canvas-resample-time-series)
+ [Gestión de datos ausentes de series temporales](#canvas-transform-handle-missing-time-series)
+ [Validar la marca de tiempo de sus datos de series temporales](#canvas-transform-validate-timestamp)
+ [Estandarizar la longitud de las series temporales](#canvas-transform-standardize-length)
+ [Extracción de características a partir de datos de series temporales](#canvas-transform-extract-time-series-features)
+ [Uso de características desfasadas en los datos de series temporales](#canvas-transform-lag-time-series)
+ [Crear un rango de fecha y hora en su serie temporal](#canvas-transform-datetime-range)
+ [Uso de periodos móviles en series temporales](#canvas-transform-rolling-window)

### Agrupación por serie temporal
<a name="canvas-group-by-time-series"></a>

Puede utilizar el agrupamiento por operación para agrupar los datos de series temporales para valores específicos de una columna.

Por ejemplo, tiene la siguiente tabla que registra el consumo medio diario de electricidad en un domicilio.

Consumo medio diario de electricidad en un domicilio


| ID del domicilio | Marca de tiempo diaria | Consumo de electricidad (kWh) | Número de ocupantes del domicilio | 
| --- | --- | --- | --- | 
| household\$10 | 1/1/2020 | 30 | 2 | 
| household\$10 | 1/2/2020 | 40 | 2 | 
| household\$10 | 1/4/2020 | 35 | 3 | 
| household\$11 | 1/2/2020 | 45 | 3 | 
| household\$11 | 1/3/2020 | 55 | 4 | 

Si elige agrupar por ID, obtendrá la siguiente tabla.

El consumo de electricidad se agrupa por ID de domicilio


| ID del domicilio | Serie de consumo de electricidad (kWh) | Serie de número de ocupantes del domicilio | 
| --- | --- | --- | 
| household\$10 | [30, 40, 35] | [2, 2, 3] | 
| household\$11 | [45, 55] | [3, 4] | 

Cada entrada de la secuencia de series temporales está ordenada por la marca de tiempo correspondiente. El primer elemento de la secuencia corresponde a la primera marca de tiempo de la serie. Para `household_0`, `30` es el primer valor de la **Serie de consumo de electricidad**. El valor de `30` corresponde a la primera marca de tiempo de `1/1/2020`.

Puede incluir la marca de tiempo inicial y la marca de tiempo final. En la siguiente tabla, se muestra cómo aparece esa información.

El consumo de electricidad se agrupa por ID de domicilio


| ID del domicilio | Serie de consumo de electricidad (kWh) | Serie de número de ocupantes del domicilio | Start\$1time | End\$1time | 
| --- | --- | --- | --- | --- | 
| household\$10 | [30, 40, 35] | [2, 2, 3] | 1/1/2020 | 1/4/2020 | 
| household\$11 | [45, 55] | [3, 4] | 1/2/2020 | 1/3/2020 | 

Puede utilizar el siguiente procedimiento para agrupar por una columna de series temporales. 

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Seleccione **Serie temporal**.

1. En **Transformar**, elija **Agrupar por**.

1. Especifique una columna en **Agrupar por esta columna**.

1. En **Aplicar a columnas**, especifique un valor.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

### Remuestreo de datos de series temporales
<a name="canvas-resample-time-series"></a>

Los datos de series temporales suelen contener observaciones que no se toman a intervalos regulares. Por ejemplo, un conjunto de datos puede tener algunas observaciones que se registran cada hora y otras observaciones que se registran cada dos horas.

Muchos análisis, como los algoritmos de pronóstico, requieren que las observaciones se realicen a intervalos regulares. El remuestreo le permite establecer intervalos regulares para las observaciones de su conjunto de datos.

Puede aumentar o reducir el muestreo de una serie temporal. La reducción del muestreo aumenta el intervalo entre las observaciones del conjunto de datos. Por ejemplo, si reduce el muestreo de las observaciones que se realizan cada hora o cada dos horas, cada observación del conjunto de datos se realiza cada dos horas. Las observaciones horarias se agregan en un único valor mediante un método de agregación, como la media o la mediana.

El aumento del muestreo reduce el intervalo entre las observaciones del conjunto de datos. Por ejemplo, si aumenta el muestreo de las observaciones que se toman cada dos horas para convertirlas en observaciones por hora, puede usar un método de interpolación para inferir las observaciones por hora a partir de las que se han realizado cada dos horas. [Para obtener información sobre los métodos de interpolación, consulte pandas. DataFrame.interpolar.](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html)

Puede volver a muestrear datos numéricos y no numéricos.

Utilice la operación **Remuestreo** para volver a muestrear los datos de series temporales. Si tiene varias series temporales en su conjunto de datos, Data Wrangler estandariza el intervalo de tiempo para cada serie temporal.

En la siguiente tabla, se muestra un ejemplo de reducción del muestreo de datos de series temporales utilizando la media como método de agregación. Los datos del muestreo se reducen de cada dos horas a cada hora.

Lecturas de temperatura por hora durante un día antes de la reducción de muestreo


| Timestamp | Temperatura (Celsius) | 
| --- | --- | 
| 12:00 | 30 | 
| 1:00 | 32 | 
| 2:00 | 35 | 
| 3:00 | 32 | 
| 4:00 | 30 | 

Las lecturas de temperatura se redujeron a cada dos horas


| Timestamp | Temperatura (Celsius) | 
| --- | --- | 
| 12:00 | 30 | 
| 2:00 | 33,5 | 
| 4:00 | 35 | 

Puede utilizar el siguiente procedimiento para volver a muestrear datos de serie temporal.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Seleccione **Remuestrear**.

1. En **Marca temporal**, elija la columna timestamp.

1. En **Unidad de frecuencia**, especifique la frecuencia que va a volver a muestrear.

1. (Opcional) Especifique un valor para la **Cantidad de frecuencia**.

1. Configure la transformación especificando los campos restantes.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

### Gestión de datos ausentes de series temporales
<a name="canvas-transform-handle-missing-time-series"></a>

Si faltan valores en el conjunto de datos, puede elegir una de las siguientes opciones:
+ En el caso de los conjuntos de datos que tienen varias series temporales, elimine las series temporales en las que faltan valores superiores al umbral que especifique.
+ Impute los valores faltantes en una serie temporal utilizando otros valores de la serie temporal.

La imputación de un valor faltante implica reemplazar los datos especificando un valor o utilizando un método inferencial. Estos son los métodos que puede utilizar para la imputación.
+ Valor constante: reemplaza todos los datos que faltan en su conjunto de datos por un valor que especifique.
+ Valor más común: reemplaza todos los datos que faltan por el valor que tenga la frecuencia más alta en el conjunto de datos.
+ Rellenar hacia delante: utilice un relleno hacia delante para reemplazar los valores faltantes por el valor no faltante que precede a los valores faltantes. En la secuencia [2, 4, 7, NaN, NaN, NaN, 8], todos los valores faltantes se sustituyen por 7. La secuencia que resulta del uso de un relleno hacia delante es [2, 4, 7, 7, 7, 7, 8].
+ Rellenar hacia atrás: utilice un relleno hacia detrás para reemplazar los valores faltantes por el valor no faltante que sigue a los valores faltantes. En la secuencia [2, 4, 7, NaN, NaN, NaN, 8], todos los valores faltantes se sustituyen por 8. La secuencia que resulta del uso de un relleno hacia atrás es [2, 4, 7, 8, 8, 8, 8]. 
+ Interpolar: utilice una función de interpolación para imputar los valores faltantes. [Para obtener más información sobre las funciones que puede utilizar para la interpolación, consulte pandas. DataFrame.interpolar.](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html)

Es posible que algunos de los métodos de imputación no puedan imputar todo el valor que falta en el conjunto de datos. Por ejemplo, **Rellenar hacia delante** no puede imputar un valor faltante que aparezca al principio de la serie temporal. Puede imputar los valores utilizando un relleno hacia delante o hacia atrás.

Puede imputar los valores faltantes en una celda o en una columna.

En el siguiente ejemplo, se muestra cómo se imputan los valores dentro de una celda.

Consumo de electricidad con valores faltantes


| ID del domicilio | Serie de consumo de electricidad (kWh) | 
| --- | --- | 
| household\$10 | [30, 40, 35, NaN, NaN] | 
| household\$11 | [45, NaN, 55] | 

Consumo de electricidad con valores imputados mediante un relleno hacia delante


| ID del domicilio | Serie de consumo de electricidad (kWh) | 
| --- | --- | 
| household\$10 | [30, 40, 35, 35, 35] | 
| household\$11 | [45, 45, 55] | 

En el siguiente ejemplo, se muestra cómo se imputan los valores dentro de una columna.

Consumo medio diario de electricidad de un domicilio con valores faltantes


| ID del domicilio | Consumo de electricidad (kWh) | 
| --- | --- | 
| household\$10 | 30 | 
| household\$10 | 40 | 
| household\$10 | NaN | 
| household\$11 | NaN | 
| household\$11 | NaN | 

Consumo medio diario de electricidad en un domicilio, con valores imputados mediante un relleno hacia delante


| ID del domicilio | Consumo de electricidad (kWh) | 
| --- | --- | 
| household\$10 | 30 | 
| household\$10 | 40 | 
| household\$10 | 40 | 
| household\$11 | 40 | 
| household\$11 | 40 | 

Puede utilizar el siguiente procedimiento para gestionar los valores que faltan.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Elija **Manejo de ausentes**.

1. Para el **tipo de entrada de series temporales**, elija si desea gestionar los valores faltantes dentro de una celda o a lo largo de una columna.

1. En **Imputar valores faltantes para esta columna**, especifique la columna que tiene los valores faltantes.

1. En **Método para imputar valores**, seleccione un método.

1. Configure la transformación especificando los campos restantes.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Si faltan valores, puede especificar un método para imputarlos en **Método para imputar valores**.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

### Validar la marca de tiempo de sus datos de series temporales
<a name="canvas-transform-validate-timestamp"></a>

Es posible que tenga datos de marca de tiempo que no sean válidos. Puede usar la función **Validar marca de tiempo** para determinar si las marcas de tiempo de su conjunto de datos son válidas. La marca de tiempo puede no ser válida por uno o varios de los motivos siguientes:
+ Faltan valores en la columna de marca de tiempo.
+ Los valores de la columna de marca de tiempo no tienen el formato correcto.

Si tiene marcas de tiempo no válidas en su conjunto de datos, no podrá realizar el análisis correctamente. Puede usar Data Wrangler para identificar las marcas de tiempo no válidas y saber dónde debe limpiar sus datos.

La validación de series temporales funciona de dos maneras:

Puede configurar Data Wrangler para realizar una de las siguientes acciones si encuentra valores faltantes en el conjunto de datos:
+ Descarte las filas en las que falten valores o haya valores no válidos.
+ Identifique las filas en las que falten valores o haya valores no válidos.
+ Lance un error si encuentra algún valor faltante o no válido en el conjunto de datos.

Puede validar las marcas de tiempo en las columnas del tipo `timestamp` o `string`. Si la columna tiene el tipo `string`, Data Wrangler convierte el tipo de columna a `timestamp` y realiza la validación.

Puede utilizar el siguiente procedimiento para validar las marcas de tiempo de su conjunto de datos.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Seleccione **Validar marcas de tiempo**.

1. En **Columna marca de tiempo**, elija la columna marca de tiempo.

1. En **Política**, elija si desea gestionar las marcas de tiempo que faltan.

1. (Opcional) En **Columna de salida**, especifique un nombre para la columna de salida.

1. Si la columna de fecha y hora está formateada para el tipo de cadena, elija **Transmitir a fecha y hora**.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

### Estandarizar la longitud de las series temporales
<a name="canvas-transform-standardize-length"></a>

Si tiene datos de series temporales almacenados como matrices, puede estandarizar cada serie temporal con la misma longitud. La estandarización de la longitud de la matriz de series temporales podría facilitar la realización del análisis de los datos.

Puede estandarizar las series temporales para las transformaciones de datos que requieren que la longitud de los datos sea fija.

Muchos algoritmos de ML requieren que aplane los datos de las series temporales antes de usarlos. Aplanar los datos de series temporales consiste en separar cada valor de la serie temporal en su propia columna de un conjunto de datos. El número de columnas de un conjunto de datos no puede cambiar, por lo que es necesario estandarizar las longitudes de las series temporales antes de aplanar cada matriz en un conjunto de características.

Cada serie temporal se establece de acuerdo con la longitud que se especifique como cuantil o percentil del conjunto de series temporales. Por ejemplo, puede tener tres secuencias que tengan las siguientes longitudes:
+ 3
+ 4
+ 5

Puede establecer la longitud de todas las secuencias como la longitud de la secuencia que tenga la longitud del percentil número 50.

A las matrices de series temporales que son más cortas que la longitud que especificó se les agregan los valores faltantes. Lo que sigue es un ejemplo de formato de estandarización de la serie temporal a una longitud mayor: [2, 4, 5, NaN, NaN].

Puede utilizar diferentes métodos para gestionar los valores faltantes. Para obtener más información sobre estos métodos, consulte [Gestión de datos ausentes de series temporales](#canvas-transform-handle-missing-time-series).

Las matrices de series temporales que son más largas que la longitud especificada se truncan.

Puede utilizar el siguiente procedimiento para estandarizar la longitud de la serie temporal.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Elija **Estandarizar longitud**.

1. En **Estandarizar la longitud de la serie temporal de la columna**, elija una columna.

1. (Opcional) En **Columna de salida**, especifique un nombre para la columna de salida. Si no especifica un nombre, la transformación se realiza en ese lugar.

1. Si la columna de fecha y hora está formateada para el tipo de cadena, elija **Transmitir a fecha y hora**.

1. Elija un **Cuantil de corte** y especifique un cuantil para establecer la longitud de la secuencia.

1. Seleccione **Aplanar la salida** para extraer los valores de la serie temporal en columnas independientes.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

### Extracción de características a partir de datos de series temporales
<a name="canvas-transform-extract-time-series-features"></a>

Si está ejecutando un algoritmo de clasificación o regresión en los datos de series temporales, le recomendamos que extraiga las características de las series temporales antes de ejecutar el algoritmo. La extracción de características podría mejorar el rendimiento del algoritmo.

Utilice las siguientes opciones para elegir cómo desea extraer las características de los datos:
+ Utilice el **subconjunto mínimo** para especificar la extracción de 8 características que usted considere útiles para los análisis posteriores. Puede utilizar un subconjunto mínimo cuando necesite realizar cálculos rápidamente. También puede usarlo cuando su algoritmo de ML tenga un alto riesgo de sobreajuste y desee proporcionarle menos características.
+ Utilice el **subconjunto eficiente** para especificar la extracción de la mayor cantidad de posible de características sin extraer en sus análisis las características que requieran un uso intensivo de recursos computacionales.
+ Utilice **Todas las características** para especificar la extracción de todas las características de la serie de ajustes.
+ Utilice el **subconjunto manual** para elegir una lista de características que, en su opinión, explican bien la variación de los datos.

Utilice el siguiente procedimiento para extraer características de los datos de series temporales.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Seleccione **Extraer características**.

1. En **Extraer características para esta columna**, seleccione una columna.

1. (Opcional) Seleccione **Aplanar** para extraer las características en columnas independientes.

1. En **Estrategia**, elija una estrategia para extraer las características.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

### Uso de características desfasadas en los datos de series temporales
<a name="canvas-transform-lag-time-series"></a>

En muchos casos de uso, la mejor manera de predecir el comportamiento futuro de una serie temporal es usar su comportamiento más reciente.

Los usos más comunes de las características desfasadas son los siguientes:
+ Recopilación de algunos valores pasados. Por ejemplo, para el tiempo t \$1 1, se recopila t, t - 1, t - 2 y t - 3.
+ Recopilación de valores que corresponden al comportamiento estacional de los datos. Por ejemplo, para predecir la ocupación de un restaurante a las 13:00 horas, puede utilizar las características a partir de las 13:00 horas del día anterior. El uso de las características a partir de las 12:00 o las 11:00 del mismo día puede no ser tan predictivo como el uso de las características de los días anteriores.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Seleccione **Características con retraso**.

1. En **Generar características con retraso para esta columna**, seleccione una columna.

1. En **Columna marca de tiempo**, elija la columna con las marcas de tiempo.

1. En **Retraso**, especifique la duración del retraso.

1. (Opcional) Configure la salida mediante una de las siguientes opciones:
   + **Incluir toda el plazo de retraso**
   + **Aplanar la salida**
   + **Descartar filas sin historial**

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

### Crear un rango de fecha y hora en su serie temporal
<a name="canvas-transform-datetime-range"></a>

Es posible que tenga datos de series temporales que no tengan marcas de tiempo. Si sabe que las observaciones se realizaron a intervalos regulares, puede generar marcas temporales para las series temporales en una columna independiente. Para generar marcas de tiempo, especifique el valor de la marca de tiempo de inicio y la frecuencia de las marcas de tiempo.

Por ejemplo, puede tener los siguientes datos de series temporales para el número de clientes de un restaurante.

Datos de series temporales sobre el número de clientes de un restaurante


| Número de clientes | 
| --- | 
| 10 | 
| 14 | 
| 24 | 
| 40 | 
| 30 | 
| 20 | 

Si sabe que el restaurante abre a las 17:00 y que las observaciones se realizan cada hora, puede añadir una columna de fecha y hora que corresponda a los datos de la serie temporal. Puede consultar la columna de marca de tiempo en la siguiente tabla.

Datos de series temporales sobre el número de clientes de un restaurante


| Número de clientes | Timestamp | 
| --- | --- | 
| 10 | 13:00 | 
| 14 | 14:00 | 
| 24 | 15:00 | 
| 40 | 16:00 | 
| 30 | 17:00 | 
| 20 | 18:00 | 

Utilice el siguiente procedimiento para agregar un rango de fechas y horas a los datos.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Elija un **rango de fecha y hora**.

1. En **Tipo de frecuencia**, elija la unidad utilizada para medir la frecuencia de las marcas de tiempo.

1. En **Marca de tiempo de inicio**, especifique la marca de tiempo de inicio.

1. En **Columna de salida**, especifique un nombre para la columna de salida.

1. (Opcional) Configure la salida con los campos restantes.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

### Uso de periodos móviles en series temporales
<a name="canvas-transform-rolling-window"></a>

Puede extraer características a lo largo de un periodo de tiempo. Por ejemplo, para el tiempo *t* (con una longitud de periodo temporal de 3), para la fila que indica la marca temporal número *t*, agregamos las características que se extraen de la serie temporal en los momentos *t* - 3, *t* -2 y *t* - 1. Para obtener información sobre la extracción de características, consulte [Extracción de características a partir de datos de series temporales](#canvas-transform-extract-time-series-features). 

Puede utilizar el siguiente procedimiento para extraer características durante un periodo de tiempo.

1. Abra el flujo de datos de Data Wrangler.

1. En el flujo de datos, en **Tipos de datos**, elija el signo **\$1** y seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Seleccione las **Características de periodo móvil**.

1. En **Generar características de periodo móvil para esta columna**, seleccione una columna.

1. En **Columna marca de tiempo**, elija la columna con las marcas de tiempo.

1. (Opcional) En **Columna de salida**, especifique un nombre para la columna de salida.

1. En **Tamaño del periodo**, especifique el tamaño del periodo.

1. En **Estrategia**, elija una estrategia de extracción.

1. Elija **Vista previa** para generar una vista previa del análisis.

1. Elija **Agregar** para agregar la transformación al flujo de datos de Data Wrangler.

## Caracterizar la fecha y la hora
<a name="canvas-transform-datetime-embed"></a>

Utilice **Caracterizar fecha/hora** para crear una incrustación vectorial que represente un campo de fecha y hora. Para utilizar esta transformación, los datos de fecha y hora deben estar en uno de los siguientes formatos. 
+ Cadenas que describen la fecha y hora, como `"January 1st, 2020, 12:44pm"`. 
+ Una marca de tiempo de Unix: una marca de tiempo de Unix describe el número de segundos, milisegundos, microsegundos o nanosegundos desde el 1 de enero de 1970. 

Puede elegir **Inferir el formato de fecha y hora** y proporcionar un **Formato de fecha y hora**. Si proporciona un formato de fecha y hora, debe usar los códigos descritos en la [documentación de Python](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes). Las opciones que seleccione para estas dos configuraciones tienen implicaciones en la velocidad de la operación y en los resultados finales.
+ La opción más manual y rápida desde el punto de vista computacional es especificar un **formato de fecha y hora** y seleccionar **No** en **Inferir el formato de fecha y hora**.
+ Para reducir el trabajo manual, puede elegir **Inferir el formato de fecha y hora** en lugar de especificar un formato de fecha y hora. También es una operación rápida desde el punto de vista computacional; sin embargo, asume que el primer formato de fecha y hora que se encuentre en la columna de entrada será el formato de toda la columna. Si hay otros formatos en la columna, estos valores son NaN en la salida final. Si se infiere el formato de fecha y hora, se pueden obtener cadenas sin analizar. 
+ Si no especifica un formato y selecciona **No** para **inferir el formato de fecha y hora**, obtendrá los resultados más sólidos. Se analizan todas las cadenas de fecha y hora válidas. Sin embargo, esta operación puede ser un orden de magnitud más lenta que las dos primeras opciones de esta lista. 

Al utilizar esta transformación, se especifica una **columna de entrada** que contiene datos de fecha y hora en uno de los formatos enumerados anteriormente. La transformación crea una columna de salida denominada **Nombre de columna de salida**. El formato de la columna de salida depende de que la configuración use lo siguiente.
+ **Vector**: genera una sola columna como un vector. 
+ **Columnas**: crea una nueva columna para cada característica. Por ejemplo, si la salida contiene un año, un mes y un día, se crean tres columnas independientes para el año, el mes y el día. 

Además, debe elegir un **Modo de incrustación**. Para los modelos lineales y las redes profundas, se recomienda elegir el **cíclico**. Para los algoritmos basados en árboles, recomendamos elegir **ordinal**.

## Formatear cadena
<a name="canvas-transform-format-string"></a>

Las transformaciones **Formatear cadena** contienen operaciones de formato de cadenas estándar. Por ejemplo, puede utilizar estas operaciones para eliminar caracteres especiales, normalizar la longitud de las cadenas y actualizar las mayúsculas y minúsculas de las cadenas.

Este grupo de características contiene las siguientes transformaciones. Todas las transformaciones devuelven copias de las cadenas de la **columna de entrada** y añaden el resultado a una nueva columna de salida.


| Name | Función | 
| --- | --- | 
| Left pad |  Relleno a la izquierda de la cadena con un **carácter de relleno** determinado y hasta el **ancho** indicado. Si la cadena es más larga que el **ancho**, el valor devuelto se acorta al número de caracteres de **ancho**.  | 
| Right pad |  Relleno a la derecha de la cadena con un **carácter de relleno** determinado y hasta el **ancho** indicado. Si la cadena es más larga que el **ancho**, el valor devuelto se acorta al número de caracteres de **ancho**.  | 
| Center (relleno a ambos lados) |  Relleno en el centro de la cadena (añade relleno a ambos lados de la cadena) con un **carácter de relleno** determinado del **ancho** indicado. Si la cadena es más larga que el **ancho**, el valor devuelto se acorta al número de caracteres de **ancho**.  | 
| Prepend zeros |  Relleno a la izquierda de una cadena numérica con ceros, hasta un **ancho** determinado. Si la cadena es más larga que el **ancho**, el valor devuelto se acorta al número de caracteres de **ancho**.  | 
| Strip left and right |  Devuelve una copia de la cadena sin los caracteres iniciales ni finales.  | 
| Strip characters from left |  Devuelve una copia de la cadena sin los caracteres iniciales.  | 
| Strip characters from right |  Devuelve una copia de la cadena sin los caracteres finales.  | 
| Lower case |  Convierte todas las letras del texto a minúsculas.  | 
| Upper case |  Convierte todas las letras del texto a mayúsculas.  | 
| Capitalize |  Escribe en mayúscula la primera letra de cada oración.   | 
| Swap case | Convierte todas las mayúsculas en minúsculas y todas las minúsculas en mayúsculas en la cadena y la devuelve. | 
| Add prefix or suffix |  Añade un prefijo y un sufijo a la columna de cadena. Debe especificar, al menos, un **prefijo** o un **sufijo**.   | 
| Remove symbols |  Elimina los símbolos determinados de una cadena. Se eliminan todos los caracteres de la lista. El valor predeterminado es el espacio en blanco.   | 

## Gestionar valores atípicos
<a name="canvas-transform-handle-outlier"></a>

Los modelos de machine learning son sensibles a la distribución y el rango de los valores de sus características. Los valores atípicos, o valores poco frecuentes, pueden afectar negativamente a la precisión del modelo y provocar tiempos de entrenamiento más prolongados. Utilice este grupo de características para detectar y actualizar los valores atípicos en su conjunto de datos. 

Al definir un paso de transformación **Gestionar valores atípicos**, las estadísticas utilizadas para detectar valores atípicos se generan a partir de los datos disponibles en Data Wrangler al definir este paso. Estas mismas estadísticas se utilizan cuando se ejecuta un trabajo de Data Wrangler. 

Utilice las siguientes secciones para obtener más información sobre las transformaciones que contiene este grupo. Usted especifica un **nombre de salida** y cada una de estas transformaciones genera una columna de salida con los datos resultantes. 

### Valores atípicos de desviación estándar sólida
<a name="canvas-transform-handle-outlier-rstdev"></a>

Esta transformación detecta y corrige los valores atípicos en las características numéricas mediante estadísticas resistentes a valores atípicos.

Debe definir un **cuantil superior** y un **cuantil inferior** para las estadísticas utilizadas para calcular los valores atípicos. También debe especificar el número de **desviaciones estándar** desde las que un valor debe variar de la media para que se considere un valor atípico. Por ejemplo, si especifica 3 para **Desviaciones estándar**, un valor debe estar a más de 3 desviaciones estándar de la media para que se considere un valor atípico. 

El **Método de resolución** es el método que se utiliza para gestionar los valores atípicos cuando se detectan. Puede elegir entre las siguientes opciones:
+ **Recortar**: utilice esta opción para recortar los valores atípicos al límite de detección de valores atípicos correspondiente.
+ **Eliminar**: utilice esta opción para eliminar las filas con valores atípicos del marco de datos.
+ **Invalidar**: utilice esta opción para reemplazar los valores atípicos por valores no válidos.

### Valores atípicos de desviación estándar
<a name="canvas-transform-handle-outlier-sstdev"></a>

Esta transformación detecta y corrige los valores atípicos en las características numéricas mediante la media y la desviación estándar.

Usted especifica el número de **desviaciones estándar** que debe separar a un valor de la media para que se considere un valor atípico. Por ejemplo, si especifica 3 para **Desviaciones estándar**, un valor debe estar a más de 3 desviaciones estándar de la media para que se considere un valor atípico. 

El **Método de resolución** es el método que se utiliza para gestionar los valores atípicos cuando se detectan. Puede elegir entre las siguientes opciones:
+ **Recortar**: utilice esta opción para recortar los valores atípicos al límite de detección de valores atípicos correspondiente.
+ **Eliminar**: utilice esta opción para eliminar las filas con valores atípicos del marco de datos.
+ **Invalidar**: utilice esta opción para reemplazar los valores atípicos por valores no válidos.

### Valores atípicos numéricos cuantiles
<a name="canvas-transform-handle-outlier-quantile-numeric"></a>

Utilice esta transformación para detectar y corregir valores atípicos en entidades numéricas mediante cuantiles. Puede definir un **cuantil superior** y un **cuantil inferior**. Todos los valores que están por encima del cuantil superior o por debajo del cuantil inferior se consideran valores atípicos. 

El **Método de resolución** es el método que se utiliza para gestionar los valores atípicos cuando se detectan. Puede elegir entre las siguientes opciones:
+ **Recortar**: utilice esta opción para recortar los valores atípicos al límite de detección de valores atípicos correspondiente.
+ **Eliminar**: utilice esta opción para eliminar las filas con valores atípicos del marco de datos.
+ **Invalidar**: utilice esta opción para reemplazar los valores atípicos por valores no válidos. 

### Valores atípicos numéricos mínimos y máximos
<a name="canvas-transform-handle-outlier-minmax-numeric"></a>

Esta transformación detecta y corrige los valores atípicos en las características numéricas mediante un umbral superior e inferior. Utilice este método si conoce los valores límite que marcan los valores atípicos.

Debe especificar un **umbral superior** y un **umbral inferior**; si los valores están por encima o por debajo de esos umbrales, respectivamente, se consideran valores atípicos. 

El **Método de resolución** es el método que se utiliza para gestionar los valores atípicos cuando se detectan. Puede elegir entre las siguientes opciones:
+ **Recortar**: utilice esta opción para recortar los valores atípicos al límite de detección de valores atípicos correspondiente.
+ **Eliminar**: utilice esta opción para eliminar las filas con valores atípicos del marco de datos.
+ **Invalidar**: utilice esta opción para reemplazar los valores atípicos por valores no válidos. 

### Sustituir poco frecuentes
<a name="canvas-transform-handle-outlier-replace-rare"></a>

Cuando utiliza la transformación **Sustituir poco frecuentes**, especifica un umbral; Data Wrangler busca todos los valores que lo cumplen y los reemplaza por la cadena que haya especificado. Por ejemplo, es posible que desee utilizar esta transformación para clasificar todos los valores atípicos de una columna en la categoría “Otros”. 
+ **Cadena de reemplazo**: la cadena con la que se reemplazan los valores atípicos.
+ **Umbral absoluto**: una categoría es poco frecuente si el número de instancias es inferior o igual a este umbral absoluto.
+ **Umbral de fracción**: una categoría es poco frecuente si el número de instancias es inferior o igual a este umbral de fracción multiplicado por el número de filas.
+ **Máximo de categorías comunes**: número máximo de categorías no poco frecuentes que permanecen después de la operación. Si el umbral no filtra suficientes categorías, las que tienen el mayor número de apariciones se clasifican como no poco frecuentes. Si se establece en 0 (valor predeterminado), no hay un límite estricto en cuanto al número de categorías.

## Gestión de valores que faltan
<a name="canvas-transform-handle-missing"></a>

Los valores faltantes son frecuentes en los conjuntos de datos de machine learning. En algunas situaciones, es apropiado imputar los datos faltantes a un valor calculado, como un valor promedio o categóricamente común. Puede procesar los valores faltantes mediante el grupo de transformaciones **Gestión de valores que faltan**. Este grupo de características contiene las siguientes transformaciones. 

### Rellenar faltantes
<a name="canvas-transform-fill-missing"></a>

Use la transformación **Rellenar faltantes** para reemplazar los valores faltantes por un **valor de relleno** que usted defina. 

### Imputar faltantes
<a name="canvas-transform-impute"></a>

Utilice la transformación **Imputar faltantes** para crear una nueva columna que contenga valores imputados donde se encontraron valores faltantes en los datos numéricos y categóricos de entrada. La configuración depende del tipo de datos.

Para los datos numéricos, elija una estrategia de imputación: la estrategia utilizada para determinar el nuevo valor que se va a imputar. Puede optar por imputar la media o la mediana a los valores que están presentes en su conjunto de datos. Data Wrangler usa el valor que calcula para imputar los valores faltantes.

Para los datos categóricos, Data Wrangler imputa los valores faltantes utilizando el valor más frecuente de la columna. Para imputar una cadena personalizada, use la transformación **Rellenar faltantes**.

### Agregar indicador de faltante
<a name="canvas-transform-missing-add-indicator"></a>

Utilice la transformación **Agregar indicador de faltante** para crear una nueva columna indicadora que contenga un booleano `"false"` si una fila contiene un valor o un booleano `"true"` si una fila contiene un valor faltante. 

### Descartar faltantes
<a name="canvas-transform-drop-missing"></a>

Utilice la opción **Descartar faltantes** para descartar las filas que contienen valores faltantes en la **columna de entrada**.

## Administrar columnas
<a name="canvas-manage-columns"></a>

Puede usar las siguientes transformaciones para actualizar y administrar rápidamente las columnas de su conjunto de datos: 


****  

| Name | Función | 
| --- | --- | 
| Descartar columnas | Eliminar una columna.  | 
| Duplicar columna | Duplicar una columna. | 
| Cambiar el nombre de las columnas | Cambiar el nombre de una columna. | 
| Mover columna |  Mover la ubicación de una columna en el conjunto de datos. Elija mover la columna al principio o al final del conjunto de datos, antes o después de una columna de referencia, o a un índice específico.   | 

## Administrar filas
<a name="canvas-transform-manage-rows"></a>

Utilice este grupo de transformación para realizar rápidamente operaciones de ordenación y mezcla de filas. Este grupo contiene lo siguiente:
+ **Ordenar**: ordena todo el marco de datos por una columna determinada. Seleccione la casilla de verificación situada junto a **Orden ascendente** para esta opción; de lo contrario, anule la selección de la casilla y se utilizará el orden descendente para ordenar. 
+ **Mezclar**: mezcla aleatoriamente todas las filas del conjunto de datos. 

## Administrar vectores
<a name="canvas-transform-manage-vectors"></a>

Utilice este grupo de transformación para combinar o aplanar columnas vectoriales. Este grupo de características contiene las siguientes transformaciones. 
+ **Ensamblar**: use esta transformación para combinar vectores de Spark y datos numéricos en una sola columna. Por ejemplo, puede combinar tres columnas: dos que contienen datos numéricos y una que contiene vectores. Agregue todas las columnas que desee combinar en las **columnas de entrada** y especifique un **nombre de columna de salida** para los datos combinados. 
+ **Aplanar**: utilice esta transformación para aplanar una sola columna que contenga datos vectoriales. La columna de entrada debe contener PySpark vectores u objetos tipo matriz. Puede controlar el número de columnas creadas especificando un **método para detectar el número de salidas**. Por ejemplo, si selecciona **Longitud del primer vector**, el número de elementos del primer vector o matriz válido que se encuentre en la columna determina el número de columnas de salida que se crean. Todos los demás vectores de entrada con demasiados elementos se truncan. Las entradas con muy pocos elementos se rellenan con. NaNs

  También se especifica un **prefijo de salida**, que se utiliza como prefijo para cada columna de salida. 

## Procesar numéricos
<a name="canvas-transform-process-numeric"></a>

Utilice el grupo de características **Procesar numéricos** para procesar datos numéricos. Cada valor escalar de este grupo se define mediante la biblioteca Spark. Se admiten los siguientes valores escalares:
+ **Escalador estándar**: estandariza la columna de entrada restando la media de cada valor y escalando a la varianza unitaria. Para obtener más información, consulta la documentación de Spark para [StandardScaler](https://spark.apache.org/docs/latest/ml-features#standardscaler).
+ **Escalador robusto**: escala la columna de entrada mediante estadísticas resistentes a los valores atípicos. Para obtener más información, consulta la documentación de Spark para [RobustScaler](https://spark.apache.org/docs/latest/ml-features#robustscaler).
+ **Escalador mínimo y máximo**: transforme la columna de entrada mediante el escalado de cada característica a un rango determinado. Para obtener más información, consulta la documentación de Spark para [MinMaxScaler](https://spark.apache.org/docs/latest/ml-features#minmaxscaler).
+ **Escalador absoluto máximo**: escala la columna de entrada dividiendo cada valor entre el valor absoluto máximo. Para obtener más información, consulta la documentación de Spark para [MaxAbsScaler](https://spark.apache.org/docs/latest/ml-features#maxabsscaler).

## Muestreo
<a name="canvas-transform-sampling"></a>

Después de importar los datos, puede usar el transformador de **muestreo** para tomar una o más muestras de los mismos. Cuando usa el transformador de muestreo, Data Wrangler toma muestras de su conjunto de datos original.

Puede usar uno de los métodos de muestreo siguientes.
+ **Límite**: toma muestras del conjunto de datos desde la primera fila hasta el límite que especifique.
+ **Aleatorio**: toma una muestra aleatoria del tamaño que especifique.
+ **Estratificado**: toma una muestra aleatoria estratificada.

Puede estratificar una muestra aleatoria para asegurarse de que representa la distribución original del conjunto de datos.

Es posible que esté preparando datos para varios casos de uso. Para cada caso de uso, puede tomar una muestra diferente y aplicar un conjunto diferente de transformaciones.

El siguiente procedimiento describe el proceso de creación de una muestra aleatoria. 

Para tomar una muestra aleatoria de los datos.

1. Seleccione **\$1**, a la derecha del conjunto de datos que ha importado. El nombre del conjunto de datos se encuentra debajo del signo **\$1**.

1. Seleccione **Agregar transformación**.

1. Seleccione **Muestreo**.

1. En **Método de muestreo**, elija el método de muestreo.

1. En **Tamaño aproximado de la muestra**, elija el número aproximado de observaciones que desee incluir en la muestra.

1. (Opcional) Especifique un número entero para **Inicio aleatorio** a fin de crear una muestra reproducible.

El siguiente procedimiento describe el proceso de creación de una muestra estratificada.

Para tomar una muestra estratificada de sus datos.

1. Seleccione **\$1**, a la derecha del conjunto de datos que ha importado. El nombre del conjunto de datos se encuentra debajo del signo **\$1**.

1. Seleccione **Agregar transformación**.

1. Seleccione **Muestreo**.

1. En **Método de muestreo**, elija el método de muestreo.

1. En **Tamaño aproximado de la muestra**, elija el número aproximado de observaciones que desee incluir en la muestra.

1. En **Estratificar columna**, especifique el nombre de la columna en la que desea estratificar.

1. (Opcional) Especifique un número entero para **Inicio aleatorio** a fin de crear una muestra reproducible.

## Buscar y editar
<a name="canvas-transform-search-edit"></a>

Utilice esta sección para buscar y editar patrones específicos dentro de las cadenas. Por ejemplo, puede buscar y actualizar cadenas dentro de oraciones o documentos, dividir cadenas por delimitadores y buscar las apariciones de cadenas específicas. 

Las siguientes transformaciones se admiten en **Buscar y editar**. Todas las transformaciones devuelven copias de las cadenas de la **columna de entrada** y añaden el resultado a una nueva columna de salida.


****  

| Name | Función | 
| --- | --- | 
|  Buscar subcadena  |  Devuelve el índice de la primera aparición de la **subcadena** que ha buscado. Puede iniciar y finalizar la búsqueda en **Iniciar** y **Finalizar** respectivamente.   | 
|  Buscar subcadena (desde la derecha)  |  Devuelve el índice de la última aparición de la **subcadena** que ha buscado. Puede iniciar y finalizar la búsqueda en **Iniciar** y **Finalizar** respectivamente.   | 
|  Coincidencia con el prefijo  |  Devuelve un valor booleano si la cadena contiene un **patrón** determinado. Un patrón puede ser una secuencia de caracteres o una expresión regular. Si lo desea, puede hacer que el patrón distinga entre mayúsculas y minúsculas.   | 
|  Buscar todas las apariciones  |  Devuelve una matriz con todas las apariciones de un patrón dado. Un patrón puede ser una secuencia de caracteres o una expresión regular.   | 
|  Extraer con expresión regular  |  Devuelve una cadena que coincide con un patrón de expresiones regulares determinado.  | 
|  Extraer entre delimitadores  |  Devuelve una cadena con todos los caracteres encontrados entre el **delimitador izquierdo** y el **delimitador derecho**.   | 
|  Extraer de la posición  |  Devuelve una cadena, empezando por la **posición inicial** de la cadena de entrada, que contiene todos los caracteres hasta la posición inicial más la **longitud**.   | 
|  Buscar y reemplazar la subcadena  |  Devuelve una cadena con todas las coincidencias de un **patrón** determinado (expresión regular) reemplazadas por una **cadena de reemplazo**.  | 
|  Sustituir entre delimitadores  |  Devuelve una cadena con la subcadena que se encuentra entre la primera aparición de un **delimitador izquierdo** y la última aparición de un **delimitador derecho**, sustituida por una **cadena de reemplazo**. Si no se encuentran coincidencias, no se reemplaza nada.   | 
|  Sustituir desde la posición  |  Devuelve una cadena con la subcadena entre la **posición inicial** y la **posición inicial** más la **longitud**, reemplazada por la **cadena de reemplazo**. Si la **posición inicial** más la **longitud** es mayor que la longitud de la cadena de reemplazo, la salida contiene **...**  | 
|  Convertir expresión regular a faltante  |  Convierte una cadena en `None` si no es válida y devuelve el resultado. La validez se define con una expresión regular en **Patrón**.  | 
|  Dividir cadena por el delimitador  |  Devuelve una matriz de cadenas desde la cadena de entrada, dividida por un **delimitador**, con hasta el **número máximo de divisiones** (opcional). El delimitador tiene como valor predeterminado un espacio en blanco.   | 

## Dividir datos
<a name="canvas-transform-split-data"></a>

Use la transformación **Dividir datos** para dividir el conjunto de datos en dos o tres conjuntos de datos. Por ejemplo, puede dividir el conjunto de datos en un conjunto de datos que se utilice para entrenar el modelo y un conjunto de datos que se utilice para probarlo. Puede determinar la proporción del conjunto de datos que se incluye en cada división. Por ejemplo, si está dividiendo un conjunto de datos en dos conjuntos de datos, el conjunto de datos de entrenamiento puede contener el 80 % de los datos, mientras que el conjunto de datos de prueba tiene el 20 %.

Al dividir los datos en tres conjuntos de datos, podrá crear conjuntos de datos de entrenamiento, validación y prueba. Puede ver el rendimiento del modelo en el conjunto de datos de prueba si elimina la columna de destino.

Su caso de uso determina qué parte del conjunto de datos original obtiene cada uno de sus conjuntos de datos y el método que utiliza para dividir los datos. Por ejemplo, es posible que desee usar una división estratificada para asegurarse de que la distribución de las observaciones en la columna de destino sea la misma en todos los conjuntos de datos. Puede usar una de las siguientes transformaciones.
+ División aleatoria: cada división es una muestra aleatoria y no superpuesta del conjunto de datos original. Para conjuntos de datos más grandes, el uso de una división aleatoria puede resultar costoso desde el punto de vista computacional y llevar más tiempo que una división ordenada.
+ División ordenada: divide el conjunto de datos en función del orden secuencial de las observaciones. Por ejemplo, en el caso de una división 80/20 entre entrenamiento y prueba, las primeras observaciones que constituyen el 80 % del conjunto de datos se destinan al entrenamiento. El último 20 % de las observaciones se destina al conjunto de datos de prueba. Las divisiones ordenadas son eficaces a la hora de mantener el orden existente de los datos entre las divisiones.
+ División estratificada: divide el conjunto de datos para garantizar que el número de observaciones de la columna de entrada tenga una representación proporcional. En una columna de entrada con las observaciones 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, una división de 80/20 en la columna significaría que aproximadamente el 80 % de los 1, el 80 % de los 2 y el 80 % de los 3 van al conjunto de entrenamiento. Aproximadamente el 20 % de cada tipo de observación se destina al conjunto de pruebas.
+ Dividir por clave: evita que los datos con la misma clave aparezcan en más de una división. Por ejemplo, si tiene un conjunto de datos con la columna “customer\$1id” y lo utiliza como clave, no habrá ningún identificador de cliente en más de una división.

Después de dividir los datos, puede aplicar transformaciones adicionales a cada conjunto de datos. En la mayoría de los casos de uso, no son necesarios.

Data Wrangler calcula las proporciones de las divisiones para garantizar el rendimiento. Puede elegir un umbral de error para establecer la precisión de las divisiones. Los umbrales de error más bajos reflejan con mayor precisión las proporciones que se especifican para las divisiones. Si establece un umbral de error más alto, obtendrá un mejor rendimiento, pero una menor precisión.

Para dividir perfectamente los datos, establezca el umbral de error en 0. Puede especificar un umbral entre 0 y 1 para mejorar el rendimiento. Si especifica un valor mayor que 1, Data Wrangler interpreta ese valor como 1.

Si tiene 10 000 filas en su conjunto de datos y especifica una división de 80/20 con un error de 0,001, obtendrá observaciones que se aproximan a uno de los siguientes resultados:
+ 8010 observaciones en el conjunto de entrenamiento y 1990 en el conjunto de prueba.
+ 7990 observaciones en el conjunto de entrenamiento y 2010 en el conjunto de prueba.

El número de observaciones del conjunto de pruebas del ejemplo anterior está en el intervalo entre 8010 y 7990.

De forma predeterminada, Data Wrangler utiliza una semilla (o inicio) aleatoria para hacer que las divisiones sean reproducibles. Puede especificar un valor diferente para la semilla a fin de crear una división reproducible diferente.

------
#### [ Randomized split ]

Utilice el siguiente procedimiento para realizar una división aleatoria en el conjunto de datos.

Para dividir el conjunto de datos de forma aleatoria, haga lo siguiente

1. Elija el signo **\$1**, situado junto al nodo que contiene el conjunto de datos que va a dividir.

1. Seleccione **Agregar transformación**.

1. Elija **Dividir datos**.

1. (Opcional) En **Divisiones**, especifique los nombres y las proporciones de cada división. La suma de las proporciones debe ser 1.

1. (Opcional) Seleccione **\$1** para crear una división adicional.

   1. Especifique los nombres y las proporciones de todas las divisiones. La suma de las proporciones debe ser 1.

1. (Opcional) Especifique un valor para **Umbral de error** distinto del valor predeterminado.

1. (Opcional) Especifique un valor para la **Semilla aleatoria**.

1. Seleccione **Preview** (Versión preliminar).

1. Elija **Añadir**.

------
#### [ Ordered split ]

Utilice el siguiente procedimiento para realizar una división ordenada en el conjunto de datos.

Para realizar una división ordenada en su conjunto de datos, haga lo siguiente.

1. Elija el signo **\$1**, situado junto al nodo que contiene el conjunto de datos que va a dividir.

1. Seleccione **Agregar transformación**.

1. En **Transformar**, seleccione **División ordenada**.

1. Elija **Dividir datos**.

1. (Opcional) En **Divisiones**, especifique los nombres y las proporciones de cada división. La suma de las proporciones debe ser 1.

1. (Opcional) Seleccione **\$1** para crear una división adicional.

   1. Especifique los nombres y las proporciones de todas las divisiones. La suma de las proporciones debe ser 1.

1. (Opcional) Especifique un valor para **Umbral de error** distinto del valor predeterminado.

1. (Opcional) En **Columna de entrada**, especifique una columna con valores numéricos. Utilice los valores de las columnas para deducir qué registros hay en cada división. Los valores más pequeños se encuentran en una división y los valores más grandes en las otras divisiones.

1. (Opcional) Seleccione **Gestionar duplicados** para añadir ruido a los valores duplicados y crear un conjunto de datos de valores totalmente únicos.

1. (Opcional) Especifique un valor para la **Semilla aleatoria**.

1. Seleccione **Preview** (Versión preliminar).

1. Elija **Añadir**.

------
#### [ Stratified split ]

Utilice el siguiente procedimiento para realizar una división estratificada en el conjunto de datos.

Para realizar una división estratificada en su conjunto de datos, haga lo siguiente.

1. Elija el signo **\$1**, situado junto al nodo que contiene el conjunto de datos que va a dividir.

1. Seleccione **Agregar transformación**.

1. Elija **Dividir datos**.

1. En **Transformar**, elija **División estratificada**.

1. (Opcional) En **Divisiones**, especifique los nombres y las proporciones de cada división. La suma de las proporciones debe ser 1.

1. (Opcional) Seleccione **\$1** para crear una división adicional.

   1. Especifique los nombres y las proporciones de todas las divisiones. La suma de las proporciones debe ser 1.

1. En **Columna de entrada**, especifique una columna con hasta 100 valores únicos. Data Wrangler no puede estratificar una columna con más de 100 valores únicos.

1. (Opcional) Especifique un valor para **Umbral de error** distinto del valor predeterminado.

1. (Opcional) Especifique un valor en **Semilla aleatoria** para especificar una semilla diferente.

1. Seleccione **Preview** (Versión preliminar).

1. Elija **Añadir**.

------
#### [ Split by column keys ]

Utilice el siguiente procedimiento para dividir el conjunto de datos por las claves de las columnas.

Para dividir el conjunto de datos por las claves de columna, haga lo siguiente.

1. Elija el signo **\$1**, situado junto al nodo que contiene el conjunto de datos que va a dividir.

1. Seleccione **Agregar transformación**.

1. Elija **Dividir datos**.

1. En **Transformar**, selecciona **Dividir por clave**.

1. (Opcional) En **Divisiones**, especifique los nombres y las proporciones de cada división. La suma de las proporciones debe ser 1.

1. (Opcional) Seleccione **\$1** para crear una división adicional.

   1. Especifique los nombres y las proporciones de todas las divisiones. La suma de las proporciones debe ser 1.

1. En el caso de las **columnas clave**, especifique las columnas con valores que no desee que aparezcan en ambos conjuntos de datos.

1. (Opcional) Especifique un valor para **Umbral de error** distinto del valor predeterminado.

1. Seleccione **Preview** (Versión preliminar).

1. Elija **Añadir**.

------

## Analizar valor como tipo
<a name="canvas-transform-cast-type"></a>

Use esta transformación para convertir una columna en un nuevo tipo. Los tipos de datos de Data Wrangler compatibles son los siguientes:
+ Largo
+ Flotante
+ Booleano
+ Fecha, en el formato dd-MM-yyyy, que representa el día, el mes y el año, respectivamente. 
+ Cadena

## Validar cadena
<a name="canvas-transform-validate-string"></a>

Utilice las transformaciones **Validar cadena** para crear una nueva columna que indique que una fila de datos de texto cumple una condición específica. Por ejemplo, puede usar una transformación **Validar cadena** para comprobar que una cadena solo contiene caracteres en minúscula. **Validar cadena** admite las siguientes transformaciones. 

Las siguientes transformaciones se incluyen en este grupo de transformaciones. Si una transformación genera un valor booleano, `True` se representa con un `1` y `False` se representa con un `0`.


****  

| Name | Función | 
| --- | --- | 
|  Longitud de cadena  |  Devuelve `True` si la longitud de una cadena es igual a la longitud especificada. De lo contrario, devuelve `False`.   | 
|  Empieza por  |  Devuelve `True` si una cadena comienza con un prefijo especificado. De lo contrario, devuelve `False`.  | 
|  Acaba con  |  Devuelve `True` si la longitud de una cadena es igual a la longitud especificada. De lo contrario, devuelve `False`.  | 
|  Es alfanumérico  |  Devuelve `True` si una cadena solo contiene números y letras. De lo contrario, devuelve `False`.  | 
|  Es alfa (letras)  |  Devuelve `True` si una cadena solo contiene letras. De lo contrario, devuelve `False`.  | 
|  Es dígito  |  Devuelve `True` si una cadena solo contiene dígitos. De lo contrario, devuelve `False`.  | 
|  Es espacio  |  Devuelve `True` si una cadena solo contiene números y letras. De lo contrario, devuelve `False`.  | 
|  Es un título  |  Devuelve `True` si una cadena contiene algún espacio en blanco. De lo contrario, devuelve `False`.  | 
|  Está en minúsculas  |  Devuelve `True` si una cadena solo contiene letras en minúscula. De lo contrario, devuelve `False`.  | 
|  Está en mayúscula  |  Devuelve `True` si una cadena solo contiene letras en mayúscula. De lo contrario, devuelve `False`.  | 
|  Es numérico  |  Devuelve `True` si una cadena solo contiene números. De lo contrario, devuelve `False`.  | 
|  Es decimal  |  Devuelve `True` si una cadena solo contiene números decimales. De lo contrario, devuelve `False`.  | 

## Datos JSON de Unnest
<a name="canvas-transform-flatten-column"></a>

Si tiene un archivo .csv, es posible que tengas valores en su conjunto de datos que sean cadenas JSON. Del mismo modo, es posible que tenga datos anidados en columnas de un archivo Parquet o de un documento JSON.

Utilice el operador **Flatten structured** para separar las claves del primer nivel en columnas independientes. Una clave de primer nivel es una clave que no está anidada dentro de un valor.

Por ejemplo, puede tener un conjunto de datos que tenga una columna *persona*, con información demográfica sobre cada persona almacenada como cadenas JSON. La estructura JSON podría tener el siguiente aspecto.

```
 "{"seq": 1,"name": {"first": "Nathaniel","last": "Ferguson"},"age": 59,"city": "Posbotno","state": "WV"}"
```

El operador **Flatten structured** convierte las siguientes claves de primer nivel en columnas adicionales del conjunto de datos:
+ seq
+ name
+ edad
+ ciudad
+ estado

Data Wrangler coloca los valores de las claves como valores debajo de las columnas. A continuación se muestran los nombres y valores de las columnas del JSON.

```
seq, name,                                    age, city, state
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV
```

Para cada valor del conjunto de datos que contenga JSON, el operador **Flatten structured** crea columnas para las claves de primer nivel. Para crear columnas para claves anidadas, vuelve a llamar al operador. En el ejemplo anterior, la llamada al operador crea las siguientes columnas:
+ name\$1first
+ name\$1last

En el siguiente ejemplo, se muestra el conjunto de datos que resulta de volver a llamar a la operación.

```
seq, name,                                    age, city, state, name_first, name_last
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV, Nathaniel, Ferguson
```

Elija **Claves en las que aplanar** para especificar las claves de primer nivel que desee extraer como columnas independientes. Si no especifica ninguna clave, Data Wrangler extrae todas las claves por defecto.

## Desglosar matriz
<a name="canvas-transform-explode-array"></a>

Utilice **Desglosar matriz** para expandir los valores de la matriz en filas de salida independientes. Por ejemplo, la operación puede tomar todos los valores de la matriz [[1, 2, 3], [4, 5, 6], [7, 8, 9]] y crear una nueva columna con las siguientes filas:

```
                [1, 2, 3]
                [4, 5, 6]
                [7, 8, 9]
```

Data Wrangler le pone a la nueva columna el nombre input\$1column\$1name\$1flatten.

Puede llamar a la operación **Desglosar matriz** varias veces para obtener los valores anidados de la matriz en columnas de salida separadas. El siguiente ejemplo muestra el resultado de llamar a la operación varias veces en un conjunto de datos con una matriz anidada.

Colocar los valores de una matriz anidada en columnas separadas


| id | array | id | array\$1items | id | array\$1items\$1items | 
| --- | --- | --- | --- | --- | --- | 
| 1 | [ [cat, dog], [bat, frog] ] | 1 | [cat, dog] | 1 | cat | 
| 2 |  [[rose, petunia], [lily, daisy]]  | 1 | [bat, frog] | 1 | dog | 
|  |  | 2 | [rose, petunia] | 1 | bat | 
|  |  | 2 | [lily, daisy] | 1 | frog | 
|  |  |  | 2 | 2. | rose | 
|  |  |  | 2 | 2. | petunia | 
|  |  |  | 2 | 2. | lily | 
|  |  |  | 2 | 2. | daisy | 

## Transformar datos de imagen
<a name="canvas-transform-image"></a>

Use Data Wrangler para importar y transformar las imágenes que utiliza en sus canalizaciones de machine learning (ML). Cuando haya preparado los datos de imagen, puede exportarlos desde su flujo de Data Wrangler a su canalización de ML.

Puede utilizar la información proporcionada aquí para familiarizarse con la importación y la transformación de datos de imagen en Data Wrangler. Data Wrangler usa OpenCV para importar imágenes. Para obtener más información sobre los formatos de imagen compatibles, consulte [Image file reading and writing](https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56).

Una vez que se haya familiarizado con los conceptos de la transformación de los datos de imagen, siga el siguiente tutorial, [Prepare los datos de imagen con Amazon SageMaker Data Wrangler](https://aws.amazon.com/blogs/machine-learning/prepare-image-data-with-amazon-sagemaker-data-wrangler/).

Los siguientes sectores y casos de uso son ejemplos en los que puede resultar útil aplicar machine learning a los datos de imágenes transformados.
+ Fabricación: identificación de defectos en los artículos de la línea de ensamblaje.
+ Alimentación: identificación de alimentos en mal estado o podridos.
+ Medicina: identificación de lesiones en los tejidos.

Cuando se trabaja con datos de imágenes en Data Wrangler, se sigue el siguiente proceso.

1. Importación: seleccione las imágenes eligiendo el directorio que las contiene en el bucket de Amazon S3.

1. Transformación: utilice las transformaciones integradas a fin de preparar las imágenes para la canalización de machine learning.

1. Exportación: exporte las imágenes que ha transformado a una ubicación a la que pueda acceder desde la canalización.

Utilice el siguiente procedimiento para importar los datos de imágenes.

**Para importar los datos de imágenes**

1. Vaya a la página **Crear conexión**.

1. Seleccione **Amazon S3**.

1. Especifique la ruta del archivo de Amazon S3 que contiene los datos de imagen.

1. En **Tipo de archivo**, elija **Imagen**.

1. (Opcional) Seleccione **Importar directorios anidados** para importar imágenes desde varias rutas de Amazon S3.

1. Seleccione **Importar**.

Data Wrangler utiliza la biblioteca [imgaug](https://imgaug.readthedocs.io/en/latest/) de código abierto para sus transformaciones de imágenes integradas. Puede utilizar las siguientes transformaciones integradas:
+ **ResizeImage**
+ **EnhanceImage**
+ **CorruptImage**
+ **SplitImage**
+ **DropCorruptedImages**
+ **DropImageDuplicates**
+ **Brightness (Brillo)**
+ **ColorChannels**
+ **Grayscale**
+ **Rotación**

Utilice el siguiente procedimiento para transformar sus imágenes sin escribir código.

**Para transformar los datos de imágenes sin escribir código**

1. En el flujo de Data Wrangler, seleccione **\$1**, junto al nodo que representa las imágenes que ha importado.

1. Seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Elija la transformación y configúrela.

1. Seleccione **Preview** (Versión preliminar).

1. Elija **Añadir**.

Además de utilizar las transformaciones que proporciona Data Wrangler, también puede utilizar sus propios fragmentos de código personalizados. Para obtener más información acerca del uso de fragmentos de código personalizados, consulte [Transformaciones personalizadas](#canvas-transform-custom). Puede importar las bibliotecas OpenCV e imgaug dentro de sus fragmentos de código y utilizar las transformaciones asociadas a ellas. Lo que sigue es un ejemplo de fragmento de código que detecta bordes dentro de las imágenes.

```
# A table with your image data is stored in the `df` variable
import cv2
import numpy as np
from pyspark.sql.functions import column

from sagemaker_dataprep.compute.operators.transforms.image.constants import DEFAULT_IMAGE_COLUMN, IMAGE_COLUMN_TYPE
from sagemaker_dataprep.compute.operators.transforms.image.decorators import BasicImageOperationDecorator, PandasUDFOperationDecorator


@BasicImageOperationDecorator
def my_transform(image: np.ndarray) -> np.ndarray:
  # To use the code snippet on your image data, modify the following lines within the function
    HYST_THRLD_1, HYST_THRLD_2 = 100, 200
    edges = cv2.Canny(image,HYST_THRLD_1,HYST_THRLD_2)
    return edges
    

@PandasUDFOperationDecorator(IMAGE_COLUMN_TYPE)
def custom_image_udf(image_row):
    return my_transform(image_row)
    

df = df.withColumn(DEFAULT_IMAGE_COLUMN, custom_image_udf(column(DEFAULT_IMAGE_COLUMN)))
```

Al aplicar transformaciones en su flujo de Data Wrangler, Data Wrangler solo las aplica a una muestra de las imágenes de su conjunto de datos. Para optimizar su experiencia con la aplicación, Data Wrangler no aplica las transformaciones a todas sus imágenes.

## Filtrar datos
<a name="canvas-transform-filter-data"></a>

Use Data Wrangler para filtrar los datos de sus columnas. Cuando filtra los datos de una columna, debe especificar los siguientes campos.
+ **Nombre de la columna**: el nombre de la columna que está utilizando para filtrar los datos.
+ **Condición**: el tipo de filtro que se aplica a los valores de la columna.
+ **Valor**: el valor o la categoría de la columna a la que se aplica el filtro.

Puede añadir filtros de acuerdo con las siguientes condiciones.
+ **=**: devuelve valores que coinciden con el valor o la categoría que especifica.
+ **\$1=**: devuelve valores que no coinciden con el valor o la categoría que especifica.
+ **>=**: en el caso de datos **largos** o **flotantes**, filtra los valores superiores o iguales al valor que especifica.
+ **<=**: en el caso de datos **largos** o **flotantes**, filtra los valores que son inferiores o iguales al valor que especifica.
+ **>**: en el caso de datos **largos** o **flotantes**, filtra los valores superiores al valor que especifica.
+ **<**: en el caso de datos **largos** o **flotantes**, filtra los valores que son inferiores al valor que especifica.

En una columna que contiene las categorías `male` y `female`, puede filtrar todos los valores `male`. También puede filtrar todos los valores `female`. Como solo hay valores `male` y `female` en la columna, el filtro devuelve una columna que solo tiene valores `female`.

También puede agregar varios filtros. Los filtros se pueden aplicar en varias columnas o en la misma columna. Por ejemplo, si va a crear una columna que solo tiene valores dentro de un rango determinado, agregará dos filtros diferentes. Un filtro especifica que la columna debe tener valores superiores al valor que usted proporciona. El otro filtro especifica que la columna debe tener valores inferiores al valor que usted proporciona.

Utilice el siguiente procedimiento para agregar la transformación del filtro a los datos.

**Cómo filtrar los datos**

1. En el flujo de Data Wrangler, seleccione **\$1**, situado junto al nodo con los datos que está filtrando.

1. Seleccione **Agregar transformación**.

1. Seleccione **Agregar paso**.

1. Seleccione **Filtrar datos**.

1. Especifique los siguientes campos.
   + **Nombre de la columna**: la columna que está filtrando.
   + **Condición**: estado del filtro.
   + **Valor**: el valor o la categoría de la columna a la que se aplica el filtro.

1. (Opcional) Seleccione **\$1** tras el filtro que ha creado.

1. Configure el filtro.

1. Seleccione **Preview** (Versión preliminar).

1. Elija **Añadir**.

# Chat para preparación de datos
<a name="canvas-chat-for-data-prep"></a>

**importante**  
Para administradores:  
El chat para preparación de datos requiere la política `AmazonSageMakerCanvasAIServicesAccess`. Para obtener más información, consulte [AWS política gestionada: Acceso AmazonSageMakerCanvas AIServices](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess)
El chat para preparación de datos requiere acceso a Amazon Bedrock y al modelo **Anthropic Claude** dentro de este. Para obtener más información, consulte [Adición de acceso a modelos](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html#add-model-access).
Debe ejecutar la preparación de datos de SageMaker Canvas en la Región de AWS misma región en la que está ejecutando el modelo. El chat para la preparación de datos está disponible en los EE.UU. Este (Norte de Virginia), EE.UU. Oeste (Oregón) y Europa (Fráncfort) Regiones de AWS.

Además de utilizar las transformaciones y los análisis integrados, puede utilizar lenguaje natural para explorar, visualizar y transformar los datos en una interfaz conversacional. Dentro de la interfaz conversacional, puede utilizar consultas en lenguaje natural para comprender y preparar los datos y crear modelos de ML.

A continuación se ofrecen ejemplos de peticiones que puede utilizar:
+ Resumir mis datos
+ Eliminar columnas `example-column-name`
+ Reemplazar valores que faltan por mediana
+ Trazar histograma de precios
+ ¿Cuál es el artículo más caro vendido?
+ ¿Cuántos artículos distintos se vendieron?
+ Ordenar datos por región

Al transformar los datos utilizando peticiones, puede ver una vista previa que muestra cómo se están transformando los datos. Puede elegir añadirlos como paso en el flujo de Data Wrangler en función de lo que ve en la vista previa.

Las respuestas a las peticiones generan código para transformaciones y análisis. Puede modificar el código para actualizar la salida de la petición. Por ejemplo, puede modificar el código de un análisis para cambiar los valores de los ejes de un gráfico.

Siga este procedimiento para empezar a chatear con los datos:

**Chateo con los datos**

1. Abra el flujo de datos de SageMaker Canvas.

1. Seleccione el bocadillo.  
![\[Chat para preparación de datos está en la parte superior de la pantalla\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/chat-for-data-prep-welcome-step.png)

1. Especifique una petición.

1. (Opcional) Si la consulta ha generado un análisis, seleccione **Añadir a los análisis** para consultarlo más adelante.  
![\[La vista de un bloque de código editable y copiable.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/encanto-query-for-visualization.png)

1. (Opcional) Si ha transformado los datos mediante una petición, haga lo siguiente.

   1. Elija **Ejecutar** para ver los resultados.

   1. (Opcional) Modifique el código en la transformación y elija **Actualizar**.

   1. (Opcional) Si está satisfecho con los resultados de la transformación, seleccione **Añadir a los pasos** para añadirla al panel de pasos de la barra de navegación de la derecha.  
![\[Añadida a los pasos muestra la confirmación de que la transformación se ha agregado al flujo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/transform-added-to-steps-panel.png)

Una vez que haya preparado los datos en lenguaje natural, puede crear un modelo con los datos transformados. Para obtener más información acerca de la creación de un modelo, consulte [Cómo funcionan los modelos personalizados](canvas-build-model.md).

# Cómo funciona el procesamiento de datos en Data Wrangler
<a name="canvas-data-processing"></a>

Mientras trabaja con datos de forma interactiva en un flujo de datos de Amazon SageMaker Data Wrangler, Amazon SageMaker Canvas solo aplica las transformaciones a un conjunto de datos de muestra para que pueda previsualizarlos. Una vez finalizado el flujo de datos en SageMaker Canvas, puede procesar todos los datos y guardarlos en una ubicación adecuada para sus flujos de trabajo de aprendizaje automático.

Hay varias opciones para continuar cuando termine de transformar los datos en Data Wrangler:
+ [Creación de un modelo](canvas-processing-export-model.md) Puede crear un modelo de Canvas, donde puede empezar directamente a crearlo con los datos preparados. Puede crear un modelo después de procesar todo el conjunto de datos o exportando solo los datos de muestra con los que ha trabajado en Data Wrangler. Canvas guarda los datos procesados (ya sea el conjunto de datos completo o los datos de muestra) como un conjunto de datos de Canvas.

  Le recomendamos que utilice los datos de muestra para iteraciones rápidas, pero utilice todos los datos cuando desee entrenar el modelo final. Cuando crea modelos tabulares, los conjuntos de datos de más de 5 GB se reducen automáticamente a 5 GB y, en el caso de los modelos de previsión de series temporales, los conjuntos de datos de más de 30 GB se reducen a 30 GB.

  Para obtener más información acerca de la creación de modelos, consulte [Cómo funcionan los modelos personalizados](canvas-build-model.md).
+ [Exportación de los datos](canvas-export-data.md) Puede exportar los datos para usarlos en flujos de trabajo de machine learning. Dispone de varias opciones para exportar los datos:
  + Puede guardar sus datos en la aplicación de Canvas como un conjunto de datos. Para obtener más información sobre los tipos de archivo compatibles con los conjuntos de datos de Canvas y los requisitos adicionales para importar datos a Canvas, consulte [Creación de un conjunto de datos](canvas-import-dataset.md).
  + Puede guardar los datos en Amazon S3. Según la disponibilidad de memoria de Canvas, los datos se procesan en la aplicación y, a continuación, se exportan a Amazon S3. Si el tamaño del conjunto de datos supera lo que Canvas puede procesar, Canvas utiliza de forma predeterminada un trabajo de EMR sin servidor para escalar a varias instancias de computación, procesar todo el conjunto de datos y exportarlo a Amazon S3. También puede configurar manualmente un trabajo de SageMaker procesamiento para tener un control más detallado sobre los recursos informáticos utilizados para procesar sus datos.
+ [Exportación de un flujo de datos](canvas-export-data-flow.md). Puede resultar conveniente guardar el código del flujo de datos para poder modificar o ejecutar las transformaciones fuera de Canvas. Canvas le ofrece la opción de guardar las transformaciones del flujo de datos como código Python en un cuaderno de Jupyter, que luego puede exportar a Amazon S3 para usarlo en otros lugares de los flujos de trabajo de machine learning.

Cuando exporta los datos de un flujo de datos y los guarda como un conjunto de datos de Canvas o en Amazon S3, Canvas crea un nuevo nodo de destino en el flujo de datos, que es un nodo final que muestra dónde se almacenan los datos procesados. Puede añadir nodos de destino adicionales al flujo si desea realizar varias operaciones de exportación. Por ejemplo, puede exportar los datos desde distintos puntos del flujo de datos para aplicar solo algunas de las transformaciones o exportar los datos transformados a diferentes ubicaciones de Amazon S3. Para obtener más información sobre cómo añadir o editar un nodo de destino, consulte [Adición de nodos de destino](canvas-destination-nodes-add.md) y [Edición de un nodo de destino](canvas-destination-nodes-edit.md).

Para obtener más información sobre cómo configurar un cronograma con Amazon EventBridge para procesar y exportar automáticamente tus datos según un cronograma, consulta[Creación de una programación para procesar automáticamente los datos nuevos](canvas-data-export-schedule-job.md).

# Exportación para crear un modelo
<a name="canvas-processing-export-model"></a>

Con solo unos clics desde el flujo de datos, puede exportar los datos transformados y empezar a crear un modelo de ML en Canvas. Canvas guarda los datos como conjunto de datos de Canvas y le redirige a la página de configuración de creación de un modelo nuevo.

Para crear un modelo de Canvas con los datos transformados:

1. Vaya al flujo de datos.

1. Elija el icono de puntos suspensivos junto al nodo que está exportando.

1. Seleccione **Crear modelo** en el menú contextual.

1. En el panel lateral **Exportar para crear un modelo**, introduzca un **Nombre del conjunto de datos** para el nuevo conjunto de datos.

1. Deje seleccionada la opción **Procesar todo el conjunto de datos** para procesar y exportar todo el conjunto de datos antes de continuar con la creación de un modelo. Desactive esta opción para entrenar el modelo con los datos de muestra interactivos con los que está trabajando en el flujo de datos.

1. En **Nombre del modelo**, introduzca un nombre para el modelo.

1. Seleccione un **Tipo de problema** o el tipo de modelo que desee crear. Para obtener más información sobre los tipos de modelos compatibles en SageMaker Canvas, consulte[Cómo funcionan los modelos personalizados](canvas-build-model.md).

1. Seleccione la **Columna de destino** o el valor que desee que prediga el modelo.

1. Elija **Exportar y crear modelo**.

Debería abrirse la pestaña **Crear** para un nuevo modelo de Canvas, donde podrá terminar de configurar y entrenar el modelo. Para obtener más información acerca de la creación de un modelo, consulte [Creación de un modelo](canvas-build-model-how-to.md).

# Exportar datos
<a name="canvas-export-data"></a>

Exporte los datos para aplicar las transformaciones del flujo de datos a todo el conjunto de datos importado. Puede exportar cualquier nodo del flujo de datos a las siguientes ubicaciones:
+ SageMaker Conjunto de datos Canvas
+ Amazon S3

Si desea entrenar modelos en Canvas, puede exportar el conjunto de datos completo y transformado como conjunto de datos de Canvas. Si desea utilizar sus datos transformados en flujos de trabajo de aprendizaje automático externos a SageMaker Canvas, puede exportar su conjunto de datos a Amazon S3.

## Exportación a un conjunto de datos de Canvas
<a name="canvas-export-data-canvas"></a>

Utilice el siguiente procedimiento para exportar un conjunto de datos de SageMaker Canvas desde un nodo de su flujo de datos.

**Para exportar un nodo de su flujo como un conjunto de datos de SageMaker Canvas**

1. Vaya al flujo de datos.

1. Elija el icono de puntos suspensivos junto al nodo que está exportando.

1. En el menú contextual, coloque el cursor sobre **Exportar** y, a continuación, seleccione **Exportar datos al conjunto de datos de Canvas**.

1. En el panel lateral **Exportar a conjunto de datos de Canvas**, introduzca un **Nombre del conjunto de datos** para el nuevo conjunto de datos.

1. Deje seleccionada la opción **Procesar todo el conjunto** de datos si desea que SageMaker Canvas procese y guarde todo el conjunto de datos. Desactive esta opción para aplicar las transformaciones solo a los datos de muestra con los que está trabajando en el flujo de datos.

1. Seleccione **Exportar**.

Ahora debería poder ir a la página de **Conjuntos de datos** de la aplicación de Canvas y ver el nuevo conjunto de datos.

## Exportar a Amazon S3.
<a name="canvas-export-data-s3"></a>

Al exportar datos a Amazon S3, puede escalarlos para transformar y procesar datos de cualquier tamaño. Canvas procesa automáticamente los datos de forma local si la memoria de la aplicación puede gestionar el tamaño del conjunto de datos. Si el tamaño del conjunto de datos supera la capacidad de memoria local de 5 GB, Canvas inicia una tarea remota en su nombre para aprovisionar recursos de computación adicionales y procesar los datos con mayor rapidez. De forma predeterminada, Canvas usa Amazon EMR sin servidor para ejecutar estos trabajos remotos. Sin embargo, puede configurar Canvas manualmente para que utilice EMR Serverless o un trabajo de SageMaker procesamiento con sus propios ajustes.

**nota**  
Al ejecutar un trabajo sin servidor de EMR, de forma predeterminada, el trabajo hereda el rol de IAM, la configuración clave de KMS y las etiquetas de la aplicación de Canvas.

A continuación, se resumen las opciones de los trabajos remotos en Canvas:
+ **EMR sin servidor**: es la opción predeterminada que usa Canvas para trabajos remotos. EMR sin servidor aprovisiona y escala automáticamente los recursos de computación para procesar los datos, de modo que no tenga que preocuparse por elegir los recursos de computación adecuados para la carga de trabajo. Para obtener más información sobre EMR sin servidor, consulte la [Guía del usuario de EMR sin servidor](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless.html).
+ **SageMaker Procesamiento**: los trabajos de SageMaker procesamiento ofrecen opciones más avanzadas y un control detallado de los recursos informáticos utilizados para procesar los datos. Por ejemplo, puede especificar el tipo y el recuento de las instancias de computación, configurar el trabajo en su propia VPC y controlar el acceso a la red, automatizar los trabajos de procesamiento, etc. Para obtener más información sobre la automatización de trabajos de procesamiento, consulte [Creación de una programación para procesar automáticamente los datos nuevos](canvas-data-export-schedule-job.md). Para obtener más información general sobre los trabajos de SageMaker procesamiento, consulte[Cargas de trabajo de transformación de datos con procesamiento SageMaker](processing-job.md).

Se admiten los siguientes tipos de archivos al exportar a Amazon S3:
+ CSV
+ Parquet

Para empezar, revise los requisitos previos siguientes.

### Requisitos previos para trabajos de EMR sin servidor
<a name="canvas-export-data-emr-prereqs"></a>

Para crear un trabajo remoto que utilice recursos de EMR sin servidor debe tener los permisos necesarios. Puede conceder permisos a través del dominio de Amazon SageMaker AI o de la configuración del perfil de usuario, o bien puede configurar manualmente el rol de AWS IAM del usuario. Para obtener instrucciones sobre cómo conceder a los usuarios permisos para realizar procesamiento de datos de gran tamaño, consulte [Concesión de permisos a los usuarios para usar datos de gran tamaño durante todo el ciclo de vida de ML](canvas-large-data-permissions.md).

Si no quieres configurar estas políticas, pero aun así necesitas procesar grandes conjuntos de datos a través de Data Wrangler, también puedes usar un trabajo de procesamiento. SageMaker 

Siga este procedimiento para exportar los datos a Amazon S3. Para configurar un trabajo remoto, siga los pasos avanzados opcionales.

**Exportación de un nodo del flujo a Amazon S3**

1. Vaya al flujo de datos.

1. Elija el icono de puntos suspensivos junto al nodo que está exportando.

1. En el menú contextual, coloque el cursor sobre **Exportar** y, a continuación, seleccione **Exportar datos a Amazon S3**.

1. En el panel lateral **Exportar a Amazon S3**, puede cambiar el **Nombre del conjunto de datos** del nuevo conjunto de datos.

1. En **Ubicación de S3**, introduzca la ubicación de Amazon S3 a la que desea exportar el conjunto de datos. Puede introducir el URI, el alias o el ARN de S3 de la ubicación de S3 o el punto de acceso de S3. Para obtener más información sobre los puntos de acceso, consulte [Administración del acceso a datos con puntos de acceso de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) en la *Guía del usuario de Amazon S3*.

1. (Opcional) En **Configuración avanzada**, especifique valores para los campos siguientes:

   1. **Tipo de archivo**: formato de archivo de los datos exportados.

   1. **Delimitador**: delimitador utilizado para separar los valores del archivo.

   1. **Compresión**: método de compresión utilizado para reducir el tamaño del archivo.

   1. **Número de particiones**: número de archivos de conjunto de datos que Canvas escribe como salida del trabajo.

   1. **Elegir columnas**: puede elegir un subconjunto de columnas de los datos para incluirlas en las particiones.

1. Deje seleccionada la opción **Procesar todo el conjunto de datos** si desea que Canvas aplique las transformaciones del flujo de datos a todo el conjunto de datos y exporte el resultado. Si anula la selección de esta opción, Canvas solo aplica las transformaciones a la muestra del conjunto de datos utilizada en el flujo de datos interactivo de Data Wrangler.
**nota**  
Si solo exporta una muestra de los datos, Canvas los procesa en la aplicación y no crea un trabajo remoto.

1. Deje seleccionada la opción **Configuración automática de trabajos** si desea que Canvas determine automáticamente si se debe ejecutar el trabajo con la memoria de la aplicación de Canvas o con un trabajo de EMR sin servidor. Si deselecciona esta opción y configura el trabajo manualmente, puede optar por utilizar un trabajo EMR Serverless o SageMaker un trabajo de procesamiento. Para obtener instrucciones sobre cómo configurar un EMR sin servidor o un trabajo de SageMaker procesamiento, consulte la sección posterior a este procedimiento antes de exportar los datos.

1. Seleccione **Exportar**.

Los siguientes procedimientos muestran cómo configurar manualmente los ajustes del trabajo remoto para EMR Serverless o SageMaker Processing al exportar el conjunto de datos completo a Amazon S3.

------
#### [ EMR Serverless ]

Para configurar un trabajo de EMR sin servidor mientras exporta datos a Amazon S3, haga lo siguiente:

1. En el panel lateral Exportar a Amazon S3, desactive la opción **Configuración automática de trabajos**.

1. Seleccione **EMR sin servidor**.

1. En **Nombre del trabajo**, escriba un nombre para el trabajo de EMR sin servidor. El nombre puede contener letras, números, guiones y guiones bajos.

1. En **Rol de IAM**, introduzca el rol de ejecución de IAM del usuario. Este rol debe tener los permisos necesarios para ejecutar aplicaciones de EMR sin servidor. Para obtener más información, consulte [Concesión de permisos a los usuarios para usar datos de gran tamaño durante todo el ciclo de vida de ML](canvas-large-data-permissions.md).

1. (Opcional) Para la **clave KMS**, especifique el ID de clave o el ARN de una AWS KMS key para cifrar los registros de trabajos. Si no introduce una clave, Canvas usa una clave predeterminada para EMR sin servidor.

1. (Opcional) Para la **configuración de monitorización**, introduce el nombre del grupo de CloudWatch registros de Amazon Logs en el que quieras publicar tus registros.

1. (Opcional) En **Etiquetas**, agregue etiquetas de metadatos al trabajo de EMR sin servidor que consten de pares clave-valor. Estas etiquetas se pueden usar para clasificar y buscar trabajos.

1. Elija **Export** para iniciar el trabajo.

------
#### [ SageMaker Processing ]

Para configurar un trabajo SageMaker de procesamiento al exportar a Amazon S3, haga lo siguiente:

1. En el panel lateral **Exportar a Amazon S3**, desactive la opción **Configuración automática de trabajos**.

1. Seleccione **SageMaker Procesamiento**.

1. En **Nombre del trabajo**, introduzca un nombre para su trabajo de procesamiento de SageMaker IA.

1. En **Tipo de instancia**, seleccione el tipo de instancia de computación para ejecutar el trabajo de procesamiento.

1. En **Número de instancias**, especifique el número de instancias de computación que desea iniciar.

1. En **Rol de IAM**, introduzca el rol de ejecución de IAM del usuario. Este rol debe tener los permisos necesarios para que la SageMaker IA cree y ejecute trabajos de procesamiento en tu nombre. Estos permisos se conceden si tienes la [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)política asociada a tu función de IAM.

1. En **Tamaño del volumen**, introduzca el tamaño de almacenamiento en GB para el volumen de almacenamiento de ML asociado a cada instancia de procesamiento. Elija el tamaño en función del tamaño esperado de los datos de entrada y salida.

1. (Opcional) En **Clave de KMS del volumen**, especifique una clave de KMS para cifrar el volumen de almacenamiento. Si no especifica una clave, se utiliza la clave de cifrado de Amazon EBS predeterminada.

1. (Opcional) En **Clave de KMS**, especifique una clave de KMS para cifrar los orígenes de datos de entrada y salida de Amazon S3 utilizados por el trabajo de procesamiento.

1. (Opcional) En **Configuración de memoria Spark**, haga lo siguiente:

   1. Introduzca **Memoria del controlador en MB** para el nodo del controlador de Spark que se encarga de la coordinación y programación de trabajos.

   1. Introduzca **Memoria del ejecutor en MB** para los nodos ejecutores de Spark que ejecutan tareas individuales del trabajo.

1. (Opcional) En **Configuración de red**, haga lo siguiente:

   1. Para la **configuración de subred**, introduzca las subredes IDs de VPC en las que se van a lanzar las instancias de procesamiento. De forma predeterminada, el trabajo usa la configuración de la VPC predeterminada.

   1. Para **configurar los grupos de seguridad**, introduzca los grupos IDs de seguridad para controlar las reglas de conectividad entrante y saliente.

   1. Active la opción **Habilitar el cifrado del tráfico entre contenedores** para cifrar la comunicación de red entre los contenedores de procesamiento durante el trabajo.

1. (Opcional) Para las **programaciones de Associate**, puedes elegir crear una EventBridge programación de Amazon para que el trabajo de procesamiento se ejecute en intervalos periódicos. Seleccione **Crear nueva programación** y rellene el cuadro de diálogo. Para obtener más información sobre cómo rellenar esta sección y ejecutar los trabajos de procesamiento de acuerdo con una programación, consulte [Creación de una programación para procesar automáticamente los datos nuevos](canvas-data-export-schedule-job.md).

1. (Opcional) Añada **Etiquetas** como pares clave-valor para clasificar y buscar trabajos de procesamiento.

1. Elija **Exportar** para iniciar el trabajo de procesamiento.

------

Tras exportar los datos, debe encontrar el conjunto de datos completamente procesado en la ubicación de Amazon S3 especificada.

# Exportación de un flujo de datos
<a name="canvas-export-data-flow"></a>

La exportación de un flujo de datos traduce las operaciones que ha realizado en Data Wrangler y las exporta a un cuaderno de Jupyter de código Python que puede modificar y ejecutar. Esto puede resultar útil para integrar el código de las transformaciones de datos en canalizaciones de machine learning.

Puede elegir cualquier nodo de datos del flujo y exportarlo. Al exportar el nodo de datos, se exporta la transformación que representa el nodo y las transformaciones que la preceden.

**Exportación de un flujo de datos como cuaderno de Jupyter**

1. Vaya al flujo de datos.

1. Elija el icono de puntos suspensivos junto al nodo que desea exportar.

1. En el menú contextual, coloque el cursor sobre **Exportar** y, a continuación, sobre **Exportar a través del cuaderno de Jupyter**.

1. Seleccione una de las siguientes opciones:
   + **SageMaker Canalizaciones**
   + **Amazon S3**
   + **SageMaker Canalización de inferencias de IA**
   + **SageMaker Tienda de funciones de IA**
   + **Código Python**

1. Se abre el cuadro de diálogo **Exportar flujo de datos como cuaderno**. Seleccione una de estas opciones:
   + **Descargar una copia local**
   + **Exportar a una ubicación de S3**

1. Si seleccionó **Exportar a una ubicación de S3**, introduzca la ubicación de Amazon S3 a la que desea exportar el cuaderno.

1. Seleccione **Exportar**.

Su cuaderno de Jupyter debe descargarse en su máquina local o puede encontrarlo guardado en la ubicación de Amazon S3 que especificó.

# Adición de nodos de destino
<a name="canvas-destination-nodes-add"></a>

Un nodo de destino en SageMaker Canvas especifica dónde almacenar los datos procesados y transformados. Cuando elige exportar los datos transformados a Amazon S3, Canvas utiliza la ubicación del nodo de destino especificada y aplica todas las transformaciones que haya configurado en el flujo de datos. Para obtener más información acerca de los trabajos de exportación a Amazon S3, consulte la sección anterior [Exportar a Amazon S3.](canvas-export-data.md#canvas-export-data-s3).

De forma predeterminada, si decide exportar los datos a Amazon S3, se añade un nodo de destino al flujo de datos. Sin embargo, puede añadir varios nodos de destino al flujo, lo que le permitirá exportar simultáneamente diferentes conjuntos de transformaciones o variaciones de sus datos a diferentes ubicaciones de Amazon S3. Por ejemplo, puede crear un nodo de destino que exporte los datos después de aplicar todas las transformaciones y otro nodo de destino que exporte los datos solo después de determinadas transformaciones iniciales, como una operación de unión. Esta flexibilidad le permite exportar y almacenar diferentes versiones o subconjuntos de los datos transformados en ubicaciones de S3 independientes para distintos casos de uso.

Siga este procedimiento para agregar un nodo de destino al flujo de datos.

**Adición de un nodo de destino**

1. Vaya al flujo de datos.

1. Elija el icono de los puntos suspensivos situado junto al nodo en el que desea colocar el nodo de destino.

1. En el menú contextual, coloque el cursor sobre **Exportar** y, a continuación, seleccione **Agregar destino**.

1. En el panel lateral de **Destino de exportación**, introduzca un **Nombre del conjunto de datos** para asignar un nombre a la salida.

1. En **Ubicación de Amazon S3**, introduzca la ubicación de Amazon S3 a la que desea exportar la salida. Puede introducir el URI, el alias o el ARN de S3 de la ubicación de S3 o el punto de acceso de S3. Para obtener más información sobre los puntos de acceso, consulte [Administración del acceso a datos con puntos de acceso de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) en la *Guía del usuario de Amazon S3*.

1. En **Configuración de exportación**, especifique los siguientes campos:

   1. **Tipo de archivo**: formato de archivo de los datos exportados.

   1. **Delimitador**: delimitador utilizado para separar los valores del archivo.

   1. **Compresión**: método de compresión utilizado para reducir el tamaño del archivo.

1. En **Partición**, especifique los siguientes campos:

   1. **Número de particiones**: el número de archivos de conjuntos de datos que SageMaker Canvas escribe como salida del trabajo.

   1. **Elegir columnas**: puede elegir un subconjunto de columnas de los datos para incluirlas en las particiones.

1. Elija **Agregar** si simplemente desea agregar un nodo de destino al flujo de datos, o elija **Agregar** y, a continuación, **Exportar** si desea agregar el nodo e iniciar un trabajo de exportación.

Ahora debería ver un nuevo nodo de destino en el flujo.

# Edición de un nodo de destino
<a name="canvas-destination-nodes-edit"></a>

Un *nodo de destino* de un flujo de datos de Amazon SageMaker Canvas especifica la ubicación de Amazon S3 en la que se almacenan los datos procesados y transformados, y aplica todas las transformaciones configuradas en el flujo de datos. Puede editar la configuración de un nodo de destino existente y, a continuación, volver a ejecutar el trabajo para sobrescribir los datos en la ubicación de Amazon S3 especificada. Para obtener más información acerca de la adición de un nodo de destino nuevo, consulte [Adición de nodos de destino](canvas-destination-nodes-add.md).

Siga este procedimiento para editar un nodo de destino en el flujo de datos e iniciar un trabajo de exportación.

**Edición de un nodo de destino**

1. Vaya al flujo de datos.

1. Elija el icono de puntos suspensivos junto al nodo de destino que desea editar.

1. En el menú contextual, elija **Editar**.

1. Se abre el panel lateral **Editar destino**. Desde este panel puede editar detalles como el nombre del conjunto de datos, la ubicación de Amazon S3 y la configuración de exportación y partición.

1. (Opcional) En **Nodos adicionales para exportar** puede seleccionar más nodos de destino para procesarlos cuando ejecute el trabajo de exportación.

1. Deje seleccionada la opción **Procesar todo el conjunto de datos** si desea que Canvas aplique las transformaciones del flujo de datos a todo el conjunto de datos y exporte el resultado. Si anula la selección de esta opción, Canvas solo aplica las transformaciones a la muestra del conjunto de datos utilizada en el flujo de datos interactivo de Data Wrangler.

1. Deje seleccionada la opción **Configuración automática de trabajos** si desea que Canvas determine automáticamente si se debe ejecutar el trabajo con la memoria de la aplicación de Canvas o con un trabajo de EMR sin servidor. Si deselecciona esta opción y configura el trabajo manualmente, puede optar por utilizar un trabajo EMR Serverless o SageMaker un trabajo de procesamiento. Para obtener instrucciones sobre cómo configurar un EMR sin servidor o un trabajo de SageMaker procesamiento, consulte la sección anterior. [Exportar a Amazon S3.](canvas-export-data.md#canvas-export-data-s3)

1. Cuando haya terminado de realizar los cambios, elija **Actualizar**.

Al guardar los cambios en la configuración del nodo de destino no se vuelve a ejecutar automáticamente un trabajo ni se sobrescriben los datos que ya se han procesado y exportado. Vuelva a exportar los datos para ejecutar un trabajo con la nueva configuración. Si decide volver a exportar los datos con un trabajo, Canvas utiliza la configuración actualizada del nodo de destino para transformar y enviar los datos a la ubicación especificada, sobrescribiendo los datos existentes.

# Creación de una programación para procesar automáticamente los datos nuevos
<a name="canvas-data-export-schedule-job"></a>

**nota**  
La siguiente sección solo se aplica a los trabajos SageMaker de procesamiento. Esta sección no procede si ha utilizado la configuración predeterminada de Canvas o EMR sin servidor para crear un trabajo remoto para aplicar transformaciones al conjunto de datos completo.

Si procesa datos periódicamente, puede crear una programación para ejecutar el trabajo de procesamiento de forma automática. Por ejemplo, puede crear una programación que ejecute un trabajo de procesamiento automáticamente cuando obtenga datos nuevos. Para obtener más información acerca de los trabajos de procesamiento, consulte [Exportar a Amazon S3.](canvas-export-data.md#canvas-export-data-s3).

Al crear un trabajo, debe especificar un rol de IAM que tenga permisos para crear el trabajo. Puede usar la [AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)política para añadir permisos.

Agregue la siguiente política de confianza al rol EventBridge para poder asumirlo.

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
}
```

**importante**  
Al crear una programación, Data Wrangler crea una `eventRule` entrada. EventBridge Se le cobrará tanto por las reglas de eventos que cree como por las instancias que utilice para ejecutar el trabajo de procesamiento.  
Para obtener información sobre EventBridge los precios, consulta los [ EventBridge precios de Amazon](https://aws.amazon.com/eventbridge/pricing/). Para obtener información sobre cómo procesar los precios de los trabajos, consulta [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

Utilice uno de los métodos siguientes para definir una programación:
+ [Expresiones CRON](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)
**nota**  
Data Wrangler no admite las siguientes expresiones:  
LW\$1
Abreviaturas para días
Abreviaturas para días
+ [Expresiones de frecuencia](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-rate-expressions)
+ Recurrente: establece un intervalo de una hora o un día para ejecutar el trabajo.
+ Hora específica: establece días y horas concretos para ejecutar el trabajo.

En las siguientes secciones se proporcionan procedimientos para programar trabajos al rellenar la configuración del trabajo de procesamiento de SageMaker IA al [exportar los datos a Amazon S3](canvas-export-data.md#canvas-export-data-s3). Todas las instrucciones siguientes comienzan en la sección **Asociar horarios** de la configuración del trabajo de SageMaker procesamiento.

------
#### [ CRON ]

Utilice el siguiente procedimiento para crear una programación con una expresión CRON.

1. En el panel lateral **Exportar a Amazon S3**, asegúrese de haber desactivado la opción **Configuración automática de tareas** y de haber seleccionado la opción **SageMaker Procesamiento**.

1. En la configuración del trabajo de **SageMaker procesamiento**, abre la sección **Asociar cronogramas** y selecciona **Crear un nuevo cronograma**.

1. Se abre el cuadro de diálogo **Crear nueva programación**. En **Nombre de la programación**, especifique el nombre de la programación.

1. En **Frecuencia de ejecución**, elija **CRON**.

1. En cada uno de los campos **Minutos**, **Horas**, **Días del mes**, **Mes** y **Día de la semana**, introduzca valores de expresión CRON válidos.

1. Seleccione **Crear**.

1. De forma opcional, elija **Agregar otra programación** para ejecutar el trabajo según una programación adicional.
**nota**  
Puede asociar un máximo de dos programaciones. Las programaciones son independientes y no se afectan entre sí a menos que los horarios se superpongan.

1. Seleccione una de las siguientes opciones:
   + **Programar y ejecutar ahora**: el trabajo se ejecuta inmediatamente y, posteriormente, se ejecuta según las programaciones.
   + **Solo programar**: el trabajo solo se ejecuta según las programaciones que usted especifique.

1. Seleccione **Exportar** después de haber rellenado el resto de la configuración de trabajos de exportación.

------
#### [ RATE ]

Utilice el siguiente procedimiento para crear una programación con una expresión de frecuencia.

1. En el panel lateral **Exportar a Amazon S3**, asegúrese de haber desactivado la opción **Configuración automática de tareas** y de haber seleccionado la opción **SageMaker Procesamiento**.

1. En la configuración del trabajo de **SageMaker procesamiento**, abre la sección **Asociar cronogramas** y selecciona **Crear un nuevo cronograma**.

1. Se abre el cuadro de diálogo **Crear nueva programación**. En **Nombre de la programación**, especifique el nombre de la programación.

1. En **Frecuencia de ejecución**, elija **Velocidad**.

1. En **Valor**, especifique un valor entero.

1. En **Unidad**, seleccione una de las opciones siguientes:
   + **Minutos**
   + **Horas**
   + **Días**

1. Seleccione **Crear**.

1. De forma opcional, elija **Agregar otra programación** para ejecutar el trabajo según una programación adicional.
**nota**  
Puede asociar un máximo de dos programaciones. Las programaciones son independientes y no se afectan entre sí a menos que los horarios se superpongan.

1. Seleccione una de las siguientes opciones:
   + **Programar y ejecutar ahora**: el trabajo se ejecuta inmediatamente y, posteriormente, se ejecuta según las programaciones.
   + **Solo programar**: el trabajo solo se ejecuta según las programaciones que usted especifique.

1. Seleccione **Exportar** después de haber rellenado el resto de la configuración de trabajos de exportación.

------
#### [ Recurring ]

Utilice el siguiente procedimiento para crear un programa que ejecute un trabajo de forma recurrente.

1. En el panel lateral **Exportar a Amazon S3**, asegúrese de haber desactivado la opción **Configuración automática de tareas** y de haber seleccionado la opción **SageMaker Procesamiento**.

1. En la configuración del trabajo de **SageMaker procesamiento**, abre la sección **Asociar cronogramas** y selecciona **Crear un nuevo cronograma**.

1. Se abre el cuadro de diálogo **Crear nueva programación**. En **Nombre de la programación**, especifique el nombre de la programación.

1. En **Frecuencia de ejecución**, seleccione **Recurrente**.

1. En **Cada x horas**, especifique la frecuencia horaria con la que se ejecuta el trabajo durante el día. Los valores válidos son enteros en el rango inclusivo de **1** a**23**.

1. Para **En días**, seleccione una de las siguientes opciones:
   + **Todos los días**
   + **Fines de semana**
   + **Días laborales**
   + **Seleccionar días**

   1. De forma opcional, si eligió **Seleccionar días**, elija los días de la semana en los que se ejecutará el trabajo.
**nota**  
El horario se restablece cada día. Si programa un trabajo para que se ejecute cada cinco horas, se ejecutará en los siguientes momentos del día:  
00:00
05:00
10:00
15:00
20:00

1. Seleccione **Crear**.

1. De forma opcional, elija **Agregar otra programación** para ejecutar el trabajo según una programación adicional.
**nota**  
Puede asociar un máximo de dos programaciones. Las programaciones son independientes y no se afectan entre sí a menos que los horarios se superpongan.

1. Seleccione una de las siguientes opciones:
   + **Programar y ejecutar ahora**: el trabajo se ejecuta inmediatamente y, posteriormente, se ejecuta según las programaciones.
   + **Solo programar**: el trabajo solo se ejecuta según las programaciones que usted especifique.

1. Seleccione **Exportar** después de haber rellenado el resto de la configuración de trabajos de exportación.

------
#### [ Specific time ]

Utilice el siguiente procedimiento para crear una programación que ejecute un trabajo en momentos concretos.

1. En el panel lateral **Exportar a Amazon S3**, asegúrese de haber desactivado la opción **Configuración automática de tareas** y de haber seleccionado la opción **SageMaker Procesamiento**.

1. En la configuración del trabajo de **SageMaker procesamiento**, abre la sección **Asociar cronogramas** y selecciona **Crear un nuevo cronograma**.

1. Se abre el cuadro de diálogo **Crear nueva programación**. En **Nombre de la programación**, especifique el nombre de la programación.

1. En **Frecuencia de ejecución**, seleccione **Hora de inicio.**

1. En **Hora de inicio**, introduzca una hora en formato UTC (por ejemplo, **09:00**). La hora de inicio se establece de forma predeterminada en la zona horaria en la que se encuentra.

1. Para **En días**, seleccione una de las siguientes opciones:
   + **Todos los días**
   + **Fines de semana**
   + **Días laborales**
   + **Seleccionar días**

   1. De forma opcional, si eligió **Seleccionar días**, elija los días de la semana en los que se ejecutará el trabajo.

1. Seleccione **Crear**.

1. De forma opcional, elija **Agregar otra programación** para ejecutar el trabajo según una programación adicional.
**nota**  
Puede asociar un máximo de dos programaciones. Las programaciones son independientes y no se afectan entre sí a menos que los horarios se superpongan.

1. Seleccione una de las siguientes opciones:
   + **Programar y ejecutar ahora**: el trabajo se ejecuta inmediatamente y, posteriormente, se ejecuta según las programaciones.
   + **Solo programar**: el trabajo solo se ejecuta según las programaciones que usted especifique.

1. Seleccione **Exportar** después de haber rellenado el resto de la configuración de trabajos de exportación.

------

Puede usar la SageMaker IA Consola de administración de AWS para ver los trabajos que están programados para ejecutarse. Sus trabajos de procesamiento se ejecutan en Canalizaciones. Cada trabajo de procesamiento tiene su propia canalización. Se ejecuta como un paso de procesamiento dentro de la canalización. Puede ver las programaciones que ha creado dentro de una canalización. Para obtener información acerca de cómo visualizar una canalización, consulte [Visualización de los detalles de una canalización](pipelines-studio-list.md).

Utilice el siguiente procedimiento para ver los trabajos que ha programado.

Para ver los trabajos que ha programado, haga lo siguiente.

1. Abre Amazon SageMaker Studio Classic.

1. Apertura de canalizaciones

1. Vea las canalizaciones de los trabajos que ha creado.

   La canalización que ejecuta el trabajo usa el nombre del trabajo como prefijo. Por ejemplo, si ha creado un trabajo denominado `housing-data-feature-enginnering`, el nombre de la canalización es `canvas-data-prep-housing-data-feature-engineering`.

1. Elija la canalización que contiene su trabajo.

1. Vea el estado de las canalizaciones. Las canalizaciones con un **Estado** **Correcto** han ejecutado el trabajo de procesamiento correctamente.

Para detener la ejecución del trabajo de procesamiento, haga lo siguiente:

Para detener la ejecución de un trabajo de procesamiento, elimine la regla de eventos que especifica la programación. Al eliminar una regla de eventos, se detiene la ejecución de todos los trabajos asociados a la programación. Para obtener información sobre cómo eliminar una regla, consulta Cómo [deshabilitar o eliminar una EventBridge regla de Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html).

También puede detener y eliminar las canalizaciones asociadas a las programaciones. Para obtener información sobre cómo detener una canalización, consulta [StopPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopPipelineExecution.html). Para obtener información sobre la eliminación de una canalización, consulte [DeletePipeline](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeletePipeline.html#API_DeletePipeline_RequestSyntax).

# Automatice la preparación de datos en SageMaker Canvas
<a name="canvas-data-export"></a>

Tras transformar los datos en un flujo de datos, puede exportar las transformaciones a los flujos de trabajo de machine learning. Cuando exporta sus transformaciones, SageMaker Canvas crea un cuaderno Jupyter. Debe ejecutar el bloc de notas en Amazon SageMaker Studio Classic. Para obtener más información acerca de la utilización de Studio Classic, póngase en contacto con su administrador.

## Automatice la preparación de datos mediante canalizaciones
<a name="canvas-data-export-pipelines"></a>

Si desea crear e implementar flujos de trabajo de aprendizaje automático (ML) a gran escala, puede usar Pipelines para crear flujos de trabajo que gestionen e implementen trabajos de SageMaker IA. Con Pipelines, puedes crear flujos de trabajo que gestionen la preparación de datos de SageMaker IA, la formación de modelos y los trabajos de despliegue de modelos. Puedes usar los algoritmos propios que ofrece la SageMaker IA mediante Pipelines. [Para obtener más información sobre Pipelines, consulta Pipelines. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines.html)

Cuando exporta uno o más pasos de su flujo de datos a Canalizaciones, Data Wrangler crea un cuaderno de Jupyter que puede utilizar para definir, instanciar, ejecutar y administrar una canalización.

### Uso de un cuaderno de Jupyter para crear una canalización
<a name="canvas-pipelines-notebook"></a>

Utilice el siguiente procedimiento para crear un cuaderno de Jupyter para exportar el flujo de Data Wrangler a Canalizaciones.

Utilice el siguiente procedimiento para generar un cuaderno de Jupyter y ejecutarlo para exportar el flujo de Data Wrangler a Canalizaciones.

1. Elija el signo **\$1** junto al nodo que desea exportar.

1. Elija **Exportar flujo de datos**.

1. Elija **Canalizaciones (a través del cuaderno de Jupyter**).

1. Descargue el cuaderno de Jupyter o cópielo en una ubicación de Amazon S3. Recomendamos copiarlo en una ubicación de Amazon S3 a la que pueda acceder desde Studio Classic. Póngase en contacto con el administrador si necesita orientación sobre una ubicación adecuada.

1. Ejecute el cuaderno de Jupyter.

Puede utilizar el cuaderno de Jupyter que produce Data Wrangler para definir una canalización. La canalización incluye los pasos de procesamiento de datos definidos por el flujo de Data Wrangler. 

Puede agregar pasos adicionales a la canalización si agrega pasos a la lista `steps` que aparece en el siguiente código del cuaderno:

```
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[instance_type, instance_count],
    steps=[step_process], #Add more steps to this list to run in your Pipeline
)
```

Para obtener más información sobre la definición de canalizaciones, consulta [Definir SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/define-pipeline.html) canalización de IA.

## Automatice la preparación de datos mediante un punto de conexión de inferencia
<a name="canvas-data-export-inference"></a>

Utilice su flujo de Data Wrangler para procesar los datos en el momento de la inferencia creando una canalización de inferencia en serie de SageMaker IA a partir de su flujo de Data Wrangler. Una canalización de inferencia es una serie de pasos que dan como resultado que un modelo entrenado haga predicciones a partir de nuevos datos. Una canalización de inferencia en serie dentro de Data Wrangler transforma los datos sin procesar y los proporciona al modelo de machine learning para que realice una predicción. La canalización de inferencia se crea, ejecuta y administra desde un cuaderno de Jupyter en Studio Classic. Para obtener más información acerca de cómo acceder al cuaderno, consulte [Uso de un cuaderno de Jupyter para crear un punto de conexión de inferencia](#canvas-inference-notebook).

En el cuaderno, puede entrenar un modelo de machine learning o especificar uno que ya haya entrenado. Puede usar Amazon SageMaker Autopilot o XGBoost entrenar el modelo con los datos que ha transformado en su flujo de Data Wrangler.

La canalización permite realizar inferencias por lotes o en tiempo real. También puede añadir el flujo de Data Wrangler a Model Registry. SageMaker Para obtener más información acerca de los modelos de alojamiento, consulte [Puntos de conexión multimodelo](multi-model-endpoints.md).

**importante**  
No puede exportar el flujo de Data Wrangler a un punto de conexión de inferencia si tiene las siguientes transformaciones:  
Join
Concatenar
Agrupación por
Si tiene que usar las transformaciones anteriores para preparar los datos, use el siguiente procedimiento.  
Cree un flujo de Data Wrangler.
Aplique las transformaciones anteriores que no son compatibles.
Exporte los datos a un bucket de Amazon S3.
Cree un flujo de Data Wrangler independiente.
Importe los datos que haya exportado del flujo anterior.
Aplique el resto de las transformaciones.
Cree una canalización de inferencia en serie con el cuaderno de Jupyter que le proporcionamos.
Para obtener información sobre la exportación de datos a un bucket de Amazon S3, consulte [Exportar datos](canvas-export-data.md). Para obtener información sobre cómo abrir el cuaderno de Jupyter utilizado para crear la canalización de inferencia en serie, consulte [Uso de un cuaderno de Jupyter para crear un punto de conexión de inferencia](#canvas-inference-notebook).

Data Wrangler hace caso omiso de las transformaciones que eliminan datos en el momento de la inferencia. Por ejemplo, Data Wrangler hace caso omiso de la transformación [Gestión de valores que faltan](canvas-transform.md#canvas-transform-handle-missing) si utiliza la configuración **Eliminar ausentes**.

Si ha modificado las transformaciones de todo el conjunto de datos, las transformaciones se aplicarán a la canalización de inferencia. Por ejemplo, si empleó el valor de la mediana para imputar los valores ausentes, el valor de la mediana resultante del reajuste de la transformada se aplica a las solicitudes de inferencia. Puede reajustar las transformaciones del flujo de Data Wrangler cuando utilice el cuaderno de Jupyter o cuando exporte los datos a una canalización de inferencia.

La canalización de inferencia en serie admite los siguientes tipos de datos para las cadenas de entrada y salida. Cada tipo de datos tiene un conjunto de requisitos.

**Tipos de datos admitidos**
+ `text/csv`: el tipo de datos de las cadenas CSV.
  + La cadena no puede tener un encabezado.
  + Las características utilizadas para la canalización de inferencia deben estar en el mismo orden que las características del conjunto de datos de entrenamiento.
  + Debe haber un delimitador de coma entre las características.
  + Los registros deben estar delimitados por un carácter de nueva línea.

  A continuación, se muestra un ejemplo de una cadena CSV con un formato válido que puede proporcionar en una solicitud de inferencia.

  ```
  abc,0.0,"Doe, John",12345\ndef,1.1,"Doe, Jane",67890                    
  ```
+ `application/json`: el tipo de datos de las cadenas JSON.
  + Las características utilizadas para la canalización de inferencia deben estar en el mismo orden que las características del conjunto de datos de entrenamiento.
  + Los datos deben tener un esquema específico. El esquema se define como un objeto `instances` único que tiene un conjunto de `features`. Cada objeto `features` representa una observación.

  A continuación, se muestra un ejemplo de una cadena JSON con un formato válido que puede proporcionar en una solicitud de inferencia.

  ```
  {
      "instances": [
          {
              "features": ["abc", 0.0, "Doe, John", 12345]
          },
          {
              "features": ["def", 1.1, "Doe, Jane", 67890]
          }
      ]
  }
  ```

### Uso de un cuaderno de Jupyter para crear un punto de conexión de inferencia
<a name="canvas-inference-notebook"></a>

Utilice el siguiente procedimiento para exportar el flujo de Data Wrangler y crear una canalización de inferencia.

Para crear una canalización de inferencia con un cuaderno de Jupyter, haga lo siguiente.

1. Elija el signo **\$1** junto al nodo que desea exportar.

1. Elija **Exportar flujo de datos**.

1. Elija **SageMaker AI Inference Pipeline (a través de Jupyter** Notebook).

1. Descargue el cuaderno de Jupyter o cópielo en una ubicación de Amazon S3. Recomendamos copiarlo en una ubicación de Amazon S3 a la que pueda acceder desde Studio Classic. Póngase en contacto con el administrador si necesita orientación sobre una ubicación adecuada.

1. Ejecute el cuaderno de Jupyter.

Al ejecutar el cuaderno de Jupyter, se crea un artefacto de flujo de inferencia. Un artefacto de flujo de inferencia es un archivo de flujo de Data Wrangler con metadatos adicionales que se utiliza para crear la canalización de inferencia en serie. El nodo que exporta incluye todas las transformaciones de los nodos anteriores.

**importante**  
Data Wrangler necesita el artefacto del flujo de inferencia para ejecutar la canalización de inferencia. No puede usar su propio archivo de flujo como artefacto. Debe crearlo mediante el procedimiento anterior.

## Automatización de la preparación de datos con código Python
<a name="canvas-data-export-python-code"></a>

Para exportar todos los pasos del flujo de datos a un archivo de Python que pueda integrar manualmente en cualquier flujo de trabajo de procesamiento de datos, utilice el siguiente procedimiento.

Siga este procedimiento para generar un cuaderno de Jupyter y ejecútelo para exportar el flujo de Data Wrangler a código de Python.

1. Elija el signo **\$1** junto al nodo que desea exportar.

1. Elija **Exportar flujo de datos**.

1. Elija **Código Python**.

1. Descargue el cuaderno de Jupyter o cópielo en una ubicación de Amazon S3. Recomendamos copiarlo en una ubicación de Amazon S3 a la que pueda acceder desde Studio Classic. Póngase en contacto con el administrador si necesita orientación sobre una ubicación adecuada.

1. Ejecute el cuaderno de Jupyter.

Es posible que tenga que configurar el script de Python para que se ejecute en su canalización. Por ejemplo, si ejecutas un entorno de Spark, asegúrate de ejecutar el script desde un entorno que tenga permiso para acceder a los recursos. AWS 

# Modelos básicos de IA generativa en Canvas SageMaker
<a name="canvas-fm-chat"></a>

Amazon SageMaker Canvas proporciona modelos básicos de IA generativa que puede utilizar para iniciar conversaciones conversacionales. Estos modelos de generación de contenido se entrenan con grandes cantidades de datos de texto para aprender los patrones estadísticos y las relaciones entre las palabras, y pueden producir un texto coherente que sea estadísticamente similar al texto en el que se entrenaron. Puede utilizar esta capacidad para aumentar la productividad de la siguiente manera:
+ Generar contenido, como esquemas de documentos, informes y blogs
+ Resumir el texto a partir de grandes corpus de texto, como transcripciones de presentaciones de beneficios, informes anuales o capítulos de manuales de usuario
+ Extraer información y conclusiones clave de amplios pasajes de texto, como notas o transcripciones de reuniones
+ Mejorar el texto y captar errores gramaticales o tipográficos

Los modelos básicos son una combinación de los grandes modelos de lenguaje de [Amazon SageMaker JumpStart y Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html) (LLMs). Canvas ofrece los siguientes modelos:


| Modelo | Tipo | Description (Descripción) | 
| --- | --- | --- | 
|  Amazon Titán  | Modelo de Amazon Bedrock |  Amazon Titan es un modelo de lenguaje potente y de uso general que puede utilizar para tareas como el resumen, la generación de texto (como la creación de una entrada de blog), la clasificación, las preguntas y respuestas abiertas y la extracción de información. Está entrenado previamente con conjuntos de datos de gran tamaño, lo que hace que resulte adecuado para tareas y razonamientos complejos. Para seguir respaldando las prácticas recomendadas en el uso responsable de la IA, los modelos fundacionales de Amazon Titan están diseñados para detectar y eliminar el contenido dañino de los datos, rechazar el contenido inapropiado en las entradas de los usuarios y filtrar los resultados de los modelos que contengan contenido inapropiado (como la incitación al odio, las palabras malsonantes y la violencia).  | 
|  Anthropic Claude Instant  | Modelo de Amazon Bedrock |  El Anthropic Claude Instant es un modelo más rápido y rentable, pero aún así tiene una alta capacidad. Este modelo puede realizar una variedad de tareas, como el diálogo informal, el análisis de texto, el resumen y la respuesta a preguntas sobre documentos. Al igual que el Claude-2, el Claude Instant puede admitir hasta 100 000 tokens en cada solicitud, lo que equivale a unas 200 páginas de información.  | 
|  Anthropic Claude-2  | Modelo de Amazon Bedrock |  El Claude-2 es el modelo más potente de Anthropic, y resulta excepcional en una amplia gama de tareas, desde diálogos sofisticados y generación de contenido creativo hasta el seguimiento detallado de instrucciones. El Claude-2 puede admitir hasta 100 000 tokens en cada solicitud, lo que equivale a unas 200 páginas de información. Puede generar respuestas más largas en comparación con su versión anterior. Admite casos de uso como la respuesta a preguntas, la extracción de información, la eliminación de información de identificación personal, la generación de contenido, la clasificación de opción múltiple, los juegos de roles, la comparación de texto, la síntesis y las preguntas y respuestas de documentos con citas.  | 
|  Falcon-7B-Instruct  | JumpStart modelo |  El Falcon-7B-Instruct tiene 7000 millones de parámetros y se ha ajustado a partir de una combinación de conjuntos de datos de chat e instrucción. Es adecuado como asistente virtual y funciona mejor cuando se siguen instrucciones o se entabla una conversación. Dado que el modelo se entrenó con grandes cantidades de datos web en inglés, contiene los estereotipos y sesgos que se encuentran comúnmente en Internet y no es adecuado para otros idiomas que no sean el inglés. En comparación con el Falcon-40B-Instruct, el Falcon-7B-Instruct es un modelo un poco más pequeño y compacto.  | 
|  Falcon-40B-Instruct  | JumpStart modelo |  El Falcon-40B-Instruct tiene 40 000 millones de parámetros y se ha ajustado a partir de una combinación de conjuntos de datos de chat e instrucción. Es adecuado como asistente virtual y funciona mejor cuando se siguen instrucciones o se entabla una conversación. Dado que el modelo se entrenó con grandes cantidades de datos web en inglés, contiene los estereotipos y sesgos que se encuentran comúnmente en Internet y no es adecuado para otros idiomas que no sean el inglés. En comparación con el Falcon-7B-Instruct, el Falcon-40B-Instruct es un modelo un poco más grande y potente.  | 
|  Jurassic-2 Mid  | Modelo de Amazon Bedrock |  Jurassic-2 Mid es un modelo de generación de texto de alto rendimiento entrenado en un corpus de texto masivo (actualizado hasta mediados de 2022). Es muy versátil, de uso general y capaz de componer textos similares a los humanos y de resolver tareas complejas, como responder preguntas, clasificar textos y muchas otras. Este modelo ofrece capacidades de instrucción de cero intentos, lo que permite que se dirija únicamente con lenguaje natural y sin el uso de ejemplos. Funciona hasta un 30 % más rápido que su predecesor, el modelo Jurassic-1. El Jurassic-2 Mid es AI21 el modelo de tamaño medio, diseñado cuidadosamente para lograr el equilibrio adecuado entre una calidad excepcional y un precio asequible.  | 
|  Jurassic-2 Ultra  | Modelo de Amazon Bedrock |  Jurassic-2 Ultra es un modelo de generación de texto de alto rendimiento entrenado en un corpus de texto masivo (actualizado hasta mediados de 2022). Es muy versátil, de uso general y capaz de componer textos similares a los humanos y de resolver tareas complejas, como responder preguntas, clasificar textos y muchas otras. Este modelo ofrece capacidades de instrucción de cero intentos, lo que permite que se dirija únicamente con lenguaje natural y sin el uso de ejemplos. Funciona hasta un 30 % más rápido que su predecesor, el modelo Jurassic-1. En comparación con el Jurassic-2 Mid, el Jurassic-2 Ultra es un modelo un poco más grande y potente.  | 
|  Llama-2-7b-Chat  | JumpStart modelo |  Llama-2-7b-chat es un modelo fundacional de Meta que resulta adecuado para entablar conversaciones significativas y coherentes, generar contenido nuevo y extraer respuestas de las notas existentes. Dado que el modelo se ha entrenado con grandes cantidades de datos de Internet en inglés, contiene los sesgos y las limitaciones que suelen encontrarse en Internet y resulta más adecuado para tareas en inglés.  | 
|  Llama-2-13B-Chat  | Modelo de Amazon Bedrock |  Llama-2-13B-Chat de Meta se ha afinado con datos conversacionales después de un entrenamiento inicial con datos de Internet. Está optimizado para un diálogo natural y una atractiva capacidad de chat, lo que hace que resulte idóneo como agente conversacional. En comparación con Llama-2-7b-Chat, más pequeño, Llama-2-13B-Chat tiene casi el doble de parámetros, lo que le permite recordar más contexto y producir respuestas conversacionales más matizadas. Al igual que Llama-2-7b-Chat, Llama-2-13B-Chat se ha entrenado con datos en inglés y es idóneo para tareas en inglés.  | 
|  Llama-2-70B-Chat  | Modelo de Amazon Bedrock |  Al igual que Llama-2-7b-Chat y Llama-2-13B-Chat, el modelo Llama-2-70B-Chat de Meta está optimizado para entablar un diálogo natural y significativo. Con 70 000 millones de parámetros, este gran modelo conversacional puede recordar un contexto más extenso y producir respuestas muy coherentes en comparación con las versiones de modelos más compactos. Sin embargo, esto se produce a costa de respuestas más lentas y mayores necesidades de recursos. Llama-2-70B-Chat se ha entrenado con grandes cantidades datos de Internet en inglés y es idóneo para tareas en inglés.  | 
|  Mistral-7B  | JumpStart modelo |  Mistral-7B de Mistral.AI es un excelente modelo de lenguaje de uso general adecuado para una amplia gama de tareas de lenguaje natural (NLP), como generación de texto, síntesis y respuesta a preguntas. Utiliza la atención de consulta agrupada (GQA), que permite velocidades de inferencia más rápidas, con un rendimiento comparable al de los modelos con el doble o el triple de parámetros. Se ha entrenado con una combinación de datos de texto, incluidos libros, sitios web y artículos científicos en inglés, por lo que es idóneo para tareas en inglés.  | 
|  Mistral-7B-Chat  | JumpStart modelo |  Mistral-7B-Chat es un modelo conversacional de Mistral.AI basado en Mistral-7B. Si bien el Mistral-7B resulta idóneo para tareas generales de NLP, Mistral-7B-Chat se ha afinado aún más sobre datos conversacionales para optimizar sus capacidades de chat natural y atractivo. Por ello, Mistral-7B-Chat genera respuestas más parecidas a las humanas y recuerda el contexto de respuestas anteriores. Al igual que el Mistral-7B, este modelo es más adecuado para tareas en inglés.  | 
|  MPT-7B-Instruct  | JumpStart modelo |  El MPT-7B-Instruct es un modelo para la instrucción de formato largo con posterioridad a las tareas y puede ayudarle con tareas de redacción, como el resumen de textos y la respuesta a preguntas, para ahorrarle tiempo y esfuerzo. Este modelo se entrenó con grandes cantidades de datos ajustados y puede hacer frente a entradas más grandes, como documentos complejos. Utilice este modelo cuando desee procesar cuerpos de texto grandes o si desea que el modelo genere respuestas largas.  | 

Por el momento, los modelos fundacionales de Amazon Bedrock solo están disponibles en las regiones Este de EE. UU. (Norte de Virginia) y Oeste de EE. UU. (Oregón). Además, cuando utilice modelos fundacionales de Amazon Bedrock, se le cobrará en función del volumen de los tokens de entrada y salida, según lo especifique cada proveedor de modelos. Para obtener más información, consulte la [página de Precios de Amazon Bedrock](https://aws.amazon.com/bedrock/pricing/). Los JumpStart modelos básicos se implementan en las instancias de SageMaker AI Hosting y se le cobrará por la duración del uso en función del tipo de instancia utilizado. Para obtener más información sobre el costo de los distintos tipos de instancias, consulte la sección Amazon SageMaker AI Hosting: Inferencia en tiempo real en la [página de SageMaker precios](https://aws.amazon.com/sagemaker/pricing/).

La consulta de documentos es una característica adicional que puede utilizar para consultar y obtener información de los documentos almacenados en índices mediante Amazon Kendra. Con esta funcionalidad, puede generar contenido a partir del contexto de esos documentos y recibir respuestas específicas para su caso de uso empresarial, en lugar de respuestas genéricas según las grandes cantidades de datos en las que se basaron los modelos fundacionales. Para obtener más información acerca de los índices en Amazon Kendra, consulte la [Guía para desarrolladores de Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html).

Si desea obtener respuestas de alguno de los modelos fundacionales personalizados con sus datos y su caso de uso, puede afinar dichos modelos. Para obtener más información, consulte [Afinamiento de modelos fundacionales](canvas-fm-chat-fine-tune.md).

Si quieres obtener predicciones de un modelo SageMaker JumpStart básico de Amazon a través de una aplicación o un sitio web, puedes implementar el modelo en un *punto final* de SageMaker IA. SageMaker Los puntos finales de IA alojan su modelo y usted puede enviar solicitudes al punto final a través del código de su aplicación para recibir predicciones del modelo. Para obtener más información, consulte [Implementación de sus modelos en un punto de conexión](canvas-deploy-model.md).

# Complete los requisitos previos para los modelos básicos en Canvas SageMaker
<a name="canvas-fm-chat-prereqs"></a>

En las siguientes secciones se describen los requisitos previos para interactuar con los modelos fundacionales y utilizar la característica de consulta de documentos de Canvas. El resto del contenido de esta página presupone que ha cumplido con los requisitos previos para los modelos fundacionales. La característica de consulta de documentos requiere permisos adicionales.

## Requisitos previos para los modelos fundacionales
<a name="canvas-fm-chat-prereqs-fm"></a>

Los permisos que necesita para interactuar con los modelos se incluyen en los permisos de los Ready-to-use modelos de Canvas. Para usar los modelos generativos impulsados por IA en Canvas, debes activar los permisos de **configuración de los Ready-to-use modelos de Canvas** al configurar tu dominio de Amazon SageMaker AI. Para obtener más información, consulte [Requisitos previos para configurar Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites). La **configuración de Ready-to-use los modelos de Canvas** vincula la política de [AmazonSageMakerCanvasAIServicesacceso a](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) la función de ejecución de su usuario de Canvas AWS Identity and Access Management (IAM). Si tiene algún problema con la concesión de permisos, consulte el tema [Solución de problemas relacionados con la concesión de permisos a través de la consola de SageMaker IA](canvas-limits.md#canvas-troubleshoot-trusted-services).

Si ya ha configurado un dominio, puede editar esa configuración y activar los permisos. Para obtener instrucciones acerca de cómo editar la configuración de dominio, consulte [Edición de la configuración del dominio](domain-edit.md). Al editar la configuración de su dominio, vaya a la **configuración de Canvas** y active la **opción Habilitar Ready-to-use modelos de Canvas**.

Algunos modelos JumpStart básicos también requieren que solicites un aumento de la cuota de instancias de SageMaker IA. Canvas aloja los modelos con los que está interactuando actualmente en estas instancias, pero es posible que la cuota predeterminada de su cuenta no sea suficiente. Si se produce un error al ejecutar alguno de los siguientes modelos, solicite un aumento de cuota para los tipos de instancias asociados:
+ Falcon-40B – `ml.g5.12xlarge`, `ml.g5.24xlarge`
+ Falcon-13B – `ml.g5.2xlarge`, `ml.g5.4xlarge`, `ml.g5.8xlarge`
+ MPT-7B-Instruct – `ml.g5.2xlarge`, `ml.g5.4xlarge`, `ml.g5.8xlarge`

Para los tipos de instancias anteriores, solicite un aumento de 0 a 1 en la cuota de uso de puntos de conexión. Para obtener información sobre cómo aumentar una cuota para su cuenta, consulte [Solicitar un aumento de cuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) en la *Guía del usuario de Service Quotas*.

## Requisitos previos para la consulta de documentos
<a name="canvas-fm-chat-prereqs-kendra"></a>

**nota**  
La consulta de documentos se admite en las siguientes regiones Regiones de AWS: EE.UU. Este (Norte de Virginia), EE.UU. Este (Ohio), EE.UU. Oeste (Oregón), Europa (Irlanda), Asia Pacífico (Singapur), Asia Pacífico (Sídney), Asia Pacífico (Tokio) y Asia Pacífico (Bombay).

La característica de consulta de documentos requiere que ya disponga de un índice de Amazon Kendra que almacene sus documentos y sus metadatos de documentos. Para obtener más información acerca de Amazon Kendra, consulte la [Guía para desarrolladores de Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html). Para obtener más información sobre las cuotas para consultar índices, consulte [Cuotas](https://docs.aws.amazon.com/kendra/latest/dg/quotas.html) en la *Guía para desarrolladores de Amazon Kendra*.

También debe asegurarse de que su perfil de usuario de Canvas tenga los permisos necesarios para consultar documentos. La [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política debe estar asociada a la función de ejecución de AWS IAM del dominio de SageMaker IA que aloja su aplicación de Canvas (esta política se adjunta de forma predeterminada a todos los perfiles de usuario de Canvas nuevos y existentes). También debe conceder específicamente permisos de consulta de documentos y especificar el acceso a uno o más índices de Amazon Kendra.

Si su administrador de Canvas está configurando un nuevo dominio o perfil de usuario, pídale que configure el dominio siguiendo las instrucciones que se indican en [Requisitos previos para configurar Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites). Al configurar el dominio, pueden activar los permisos de consulta de documentos mediante la configuración de los ** Ready-to-usemodelos de Canvas**.

El administrador de Canvas también puede administrar los permisos de consulta de documentos en el nivel del perfil de usuario. Por ejemplo, si el administrador quiere conceder permisos de consulta de documentos a algunos perfiles de usuario pero eliminar los permisos a otros, puede editar los permisos de un usuario específico.

El siguiente procedimiento muestra cómo activar los permisos de consulta de documentos para un perfil de usuario específico:

1. Abre la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**.

1. En la lista de dominios, seleccione el dominio del perfil de usuario.

1. En la página de **Detalles del dominio**, elija el **Perfil de usuario** cuyos permisos desee editar.

1. En la página **Detalles del usuario**, elija **Editar**.

1. En el panel de navegación izquierdo, elija **Configuración de Canvas**.

1. En la sección de **configuración de Ready-to-use modelos de Canvas**, active la **opción Habilitar la consulta de documentos mediante Amazon Kendra**.

1. En el menú desplegable, seleccione uno o varios índices de Amazon Kendra a los que quiera conceder acceso.

1. Seleccione **Enviar** para guardar los cambios en la configuración de su dominio.

Ahora debería poder utilizar los modelos fundacionales de Canvas para consultar documentos en los índices de Amazon Kendra especificados.

# Iniciar una nueva conversación para generar, extraer o resumir contenido
<a name="canvas-fm-chat-new"></a>

Para empezar a utilizar los modelos fundacionales de IA generativa en Canvas, puede iniciar una nueva sesión de chat con uno de los modelos. En el caso de los JumpStart modelos, se le cobrará mientras el modelo esté activo, por lo que debe iniciarlos cuando quiera usarlos y apagarlos cuando termine de interactuar. Si no apagas un JumpStart modelo, Canvas lo apagará después de 2 horas de inactividad. En el caso de los modelos Amazon Bedrock (como Amazon Titan), se le cobrará por petición; los modelos ya están activos y no es necesario iniciarlos ni cerrarlos. Amazon Bedrock le cobrará directamente por el uso de estos modelos.

Para abrir una conversación con un modelo, haga lo siguiente:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, selecciona **R eady-to-use models**.

1. Elija **Generar, extraer y resumir contenido**.

1. En la página de bienvenida, recibirá una recomendación para iniciar el modelo predeterminado. Puede iniciar el modelo recomendado o elegir **Seleccionar otro modelo** en el menú desplegable para elegir uno diferente.

1. Si ha seleccionado un modelo de JumpStart base, debe ponerlo en marcha antes de que esté disponible para su uso. Seleccione **Iniciar el modelo** y, a continuación, el modelo se implementará en una instancia de SageMaker IA. Esto puede tardar varios minutos en completarse. Cuando el modelo esté listo, puede introducir las indicaciones y hacerle preguntas.

   Si ha seleccionado un modelo fundacional de Amazon Bedrock, puede empezar a usarlo al instante introduciendo un mensaje y haciendo preguntas.

Según el modelo, puede realizar varias tareas. Por ejemplo, puede introducir un pasaje de texto y pedirle al modelo que lo resuma. O bien, puede pedirle al modelo que elabore un breve resumen de las tendencias del mercado en su dominio.

Las respuestas de la modelo en un chat se basan en el contexto de sus solicitudes anteriores. Si quiere plantear una pregunta nueva en el chat que no esté relacionada con el tema de la conversación anterior, le recomendamos que inicie una nueva conversación con el modelo.

# Extracción de información de los documentos mediante la consulta de documentos
<a name="canvas-fm-chat-query"></a>

**nota**  
En esta sección se presupone que ha completado la sección anterior [Requisitos previos para la consulta de documentos](canvas-fm-chat-prereqs.md#canvas-fm-chat-prereqs-kendra).

La consulta de documentos es una característica que puede utilizar al interactuar con los modelos fundacionales en Canvas. Con la consulta de documentos, puede acceder a un corpus de documentos almacenado en un *índice* de Amazon Kendra, que contiene el contenido de sus documentos y está estructurado de forma que permite realizar búsquedas en los documentos. Puede hacer preguntas específicas dirigidas a los datos de su índice de Amazon Kendra, y el modelo fundacional devuelve las respuestas a sus preguntas. Por ejemplo, puede consultar una base de conocimientos interna sobre información de TI y hacer preguntas como “¿Cómo me conecto a la red de mi empresa?” Para obtener más información acerca de cómo configurar un índice, consulte la [Guía para desarrolladores de Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html).

Al utilizar la función de consulta de documentos, los modelos fundacionales restringen sus respuestas al contenido de los documentos del índice con una técnica denominada Generación Aumentada de Recuperación (RAG). Esta técnica agrupa la información más relevante del índice junto con la solicitud del usuario y la envía al modelo fundacional para obtener una respuesta. Las respuestas se limitan a lo que se encuentra en el índice, lo que impide que el modelo dé respuestas incorrectas basadas en datos externos. Para obtener más información sobre este proceso, consulte la entrada del blog [Compilación rápida de aplicaciones de IA generativa de gran precisión con datos empresariales](https://aws.amazon.com/blogs/machine-learning/quickly-build-high-accuracy-generative-ai-applications-on-enterprise-data-using-amazon-kendra-langchain-and-large-language-models/).

Para empezar, en una conversación con un modelo fundacional en Canvas, active el botón **Consulta de documentos** situado en la parte superior de la página. En el menú desplegable, seleccione el índice de Amazon Kendra que quiera consultar. A continuación, puede empezar a hacer preguntas relacionadas con los documentos de su índice.

**importante**  
La consulta de documentos es compatible con la función [Comparación de los resultados del modelo](canvas-fm-chat-compare.md). Cualquier historial de chat existente se sobrescribe al iniciar un nuevo chat para comparar los resultados del modelo.

# Inicio de modelos
<a name="canvas-fm-chat-manage"></a>

**nota**  
En la siguiente sección se describen los modelos iniciales, que solo se aplican a los modelos de JumpStart base, como el Falcon-40B-Instruct. Puede acceder a los modelos de Amazon Bedrock, como Amazon Titan, de forma instantánea y en cualquier momento.

Puede poner en marcha tantos modelos como desee. JumpStart Cada JumpStart modelo activo conlleva cargos en tu cuenta, por lo que te recomendamos que no pongas en marcha más modelos de los que utilizas actualmente.

Para iniciar otro modelo, puede hacer lo siguiente:

1. En la página **Generar, extraer y resumir contenido**, seleccione **Nuevo chat**.

1. Seleccione el modelo en el menú desplegable. Si desea elegir un modelo que no aparezca en el menú desplegable, elija **Iniciar otro modelo** y, a continuación, seleccione el modelo que desee iniciar.

1. Seleccione **Iniciar modelo**.

El modelo debería empezar a iniciarse y, en unos minutos, podrá charlar con el modelo.

# Cierre de modelos
<a name="canvas-fm-chat-shut-down"></a>

Le recomendamos encarecidamente que cierre los modelos que no esté utilizando. Los modelos se cierran automáticamente tras 2 horas de inactividad. Sin embargo, para apagar un modelo manualmente, puede hacer lo siguiente:

1. En la página **Generar, extraer y resumir contenido**, abra el chat del modelo que desee cerrar.

1. En la página de chat, seleccione el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Seleccione **Cerrar modelo**.

1. En el cuadro de confirmación **Cerrar modelo**, seleccione **Cerrar**.

El modelo comienza a cerrarse. Si su chat compara dos o más modelos, puede cerrar un modelo individual desde la página del chat. Para ello, seleccione el icono **Más opciones** del modelo (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) y, a continuación, seleccione **Cerrar modelo**.

# Comparación de los resultados del modelo
<a name="canvas-fm-chat-compare"></a>

Es posible que desee comparar los resultados de los distintos modelos uno junto al otro para ver qué resultado de modelo prefiere. Esto puede ayudarle a decidir qué modelo se adapta mejor a su caso de uso. Puede comparar hasta tres modelos en los chats.

**nota**  
Cada modelo individual genera cargos en su cuenta.

Debe iniciar un nuevo chat para agregar modelos para compararlos. Para comparar los resultados de los modelos uno junto al otro en un chat, haga lo siguiente:

1. En un chat, seleccione **Nuevo chat**.

1. Seleccione **Comparar** y use el menú desplegable para elegir el modelo que quiera agregar. Para agregar un tercer modelo, vuelva a seleccionar **Comparar** para agregar otro modelo.
**nota**  
Si desea utilizar un JumpStart modelo que no esté activo actualmente, se le solicitará que inicie el modelo.

Cuando los modelos estén activos, verá los dos modelos uno junto al otro en el chat. Puede enviar su mensaje y cada modelo responderá en el mismo chat, como se muestra en la siguiente captura de pantalla.

![\[Captura de pantalla de la interfaz de Canvas con los resultados de dos modelos mostrados uno junto al otro.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-chat-compare-outputs.png)


Cuando termines de interactuar, asegúrate de apagar todos JumpStart los modelos individualmente para evitar incurrir en cargos adicionales.

# Afinamiento de modelos fundacionales
<a name="canvas-fm-chat-fine-tune"></a>

Los modelos básicos a los que puede acceder a través de Amazon SageMaker Canvas pueden ayudarle con una variedad de tareas de uso general. Sin embargo, si tiene un caso de uso específico y desea personalizar las respuestas en función de sus propios datos, puede *afinar* un modelo fundacional.

Para afinar un modelo fundacional, proporcione un conjunto de datos que conste de ejemplos de peticiones y respuestas de modelos. A continuación, entrene el modelo fundacional sobre los datos. Por último, el modelo fundacional afinado puede proporcionarle respuestas más específicas.

La siguiente lista contiene los modelos fundacionales que puede afinar en Canvas:
+ Titan Express
+ Falcon-7B
+ Falcon-7B-Instruct
+ Falcon-40B-Instruct
+ Falcon-40B
+ Flan-T5-Large
+ Flan-T5-Xl
+ Flan-T5-Xxl
+ MPT-7B
+ MPT-7B-Instruct

Puede acceder a información más detallada sobre cada modelo fundacional en la aplicación de Canvas mientras afina un modelo. Para obtener más información, consulte [Afinamiento del modelo](#canvas-fm-chat-fine-tune-procedure-model).

En este tema se describe cómo afinar modelos fundacionales en Canvas.

## Antes de empezar
<a name="canvas-fm-chat-fine-tune-prereqs"></a>

Antes de ajustar un modelo base, asegúrese de tener los permisos para los Ready-to-use modelos en Canvas y un rol de AWS Identity and Access Management ejecución que tenga una relación de confianza con Amazon Bedrock, lo que le permitirá a Amazon Bedrock asumir su rol mientras ajusta los modelos base.

Al configurar o editar su dominio de Amazon SageMaker AI, debe 1) activar los permisos de configuración de los Ready-to-use modelos Canvas y 2) crear o especificar un rol de Amazon Bedrock, que es un rol de ejecución de IAM al que SageMaker AI vincula una relación de confianza con Amazon Bedrock. Para obtener más información sobre la configuración de estos ajustes, consulte [Requisitos previos para configurar Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).

Puede configurar el rol de Amazon Bedrock manualmente si prefiere usar su propio rol de ejecución de IAM (en lugar de dejar que SageMaker AI cree uno en su nombre). Para obtener más información sobre cómo configurar la relación de confianza de su rol de ejecución de IAM con Amazon Bedrock, consulte [Concesión de permisos a los usuarios para usar características de Amazon Bedrock e IA generativa en Canvas](canvas-fine-tuning-permissions.md).

También debe tener un conjunto de datos formateado para ajustar los modelos de lenguaje de gran tamaño (). LLMs A continuación se ofrece una lista de requisitos para el conjunto de datos:
+ El conjunto de datos debe ser tabular y contener al menos dos columnas de datos de texto: una columna de entrada (que contiene ejemplos de peticiones del modelo) y una columna de salida (que contiene respuestas de ejemplo del modelo).

  A continuación se muestra un ejemplo:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/canvas-fm-chat-fine-tune.html)
+ Recomendamos que el conjunto de datos tenga al menos 100 pares de texto (filas de los elementos de entrada y salida correspondientes). Esto garantiza que el modelo fundacional tenga datos suficientes para realizar afinamientos y aumenta la exactitud de sus respuestas.
+ Cada elemento de entrada y salida debe contener un máximo de 512 caracteres. Si son más largos se reducen a 512 caracteres al afinar el modelo fundacional.

Para afinar un modelo de Amazon Bedrock debe cumplir las cuotas de Amazon Bedrock. Para obtener más información, consulte [Model customization quotas](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html#model-customization-quotas) en la *Guía del usuario de Amazon Bedrock*.

Para obtener más información acerca de los requisitos y limitaciones generales de conjuntos de datos en Canvas, consulte [Creación de un conjunto de datos](canvas-import-dataset.md).

## Ajuste de un modelo fundacional
<a name="canvas-fm-chat-fine-tune-procedure"></a>

Puede afinar un modelo fundacional mediante cualquiera de los siguientes métodos en la aplicación de Canvas:
+ Mientras se encuentra en un chat de **Generar, extraer y resumir contenido** con un modelo fundacional, elija el icono de **Afinar modelo** (![\[Magnifying glass icon with a plus sign, indicating a search or zoom-in function.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/wrench-icon-small.png)).
+ Mientras se encuentra en un chat con un modelo fundacional, si ha vuelto a generar la respuesta dos o más veces, Canvas le ofrece la opción de **Afinar modelo**. En la siguiente captura de pantalla se muestra qué aspecto tiene.  
![\[Captura de pantalla de la opción Afinar modelo fundacional que se muestra en un chat.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/fine-tuning-ingress.png)
+ En la página **Mis modelos** puede crear un nuevo modelo seleccionando **Nuevo modelo** y, a continuación, **Afinar modelo fundacional**.
+ En la página de inicio del **Ready-to-use modelo**, puede elegir **Crear su propio modelo** y, a continuación, en el cuadro de diálogo **Crear nuevo modelo**, elegir **Ajustar** con precisión el modelo base.
+ Mientras navega por los conjuntos de datos en la pestaña **Data Wrangler**, puede seleccionar un conjunto de datos y elegir **Crear un modelo**. A continuación, elija **Afinar modelo fundacional**.

Cuando haya empezado a afinar un modelo, haga lo siguiente:

### Selección de un conjunto de datos
<a name="canvas-fm-chat-fine-tune-procedure-select"></a>

En la pestaña **Seleccionar** para afinar un modelo, elija los datos con los que desea entrenar el modelo fundacional.

Seleccione un conjunto de datos existente o cree uno nuevo que cumpla con los requisitos enumerados en la sección [Antes de empezar](#canvas-fm-chat-fine-tune-prereqs). Para obtener más información acerca de cómo crear un conjunto de datos, consulte [Creación de un conjunto de datos](canvas-import-dataset.md).

Cuando haya seleccionado o creado un conjunto de datos y esté listo para continuar, elija **Seleccionar conjunto de datos**.

### Afinamiento del modelo
<a name="canvas-fm-chat-fine-tune-procedure-model"></a>

Tras seleccionar los datos, ya está listo para empezar a entrenar y afinar el modelo.

En la pestaña **Ajustar**, haga lo siguiente:

1. (Opcional) Elija **Más información sobre nuestros modelos fundacionales** para acceder a más información sobre cada modelo y ayudarle a decidir qué modelo o modelos fundacionales implementar.

1. Para **seleccionar hasta 3 modelos básicos**, abre el menú desplegable y selecciona hasta 3 modelos de base (hasta 2 JumpStart modelos y 1 modelo Amazon Bedrock) que te gustaría ajustar con precisión durante el trabajo de formación. Al afinar varios modelos fundacionales, puede comparar su rendimiento y, en última instancia, elegir el que mejor se adapte a su caso de uso como modelo predeterminado. Para obtener más información acerca de los modelos predeterminados, consulte [Visualización de los candidatos del modelo en la tabla de clasificación de modelos](canvas-evaluate-model-candidates.md).

1. En **Seleccionar columna de entrada**, seleccione la columna de datos de texto del conjunto de datos que contenga las peticiones del modelo de ejemplo.

1. En **Seleccionar columna de salida**, seleccione la columna de datos de texto del conjunto de datos que contenga las respuestas del modelo de ejemplo.

1. (Opcional) Para configurar los ajustes avanzados del trabajo de entrenamiento, elija **Configurar modelo**. Para obtener más información sobre los ajustes avanzados de creación de modelos, consulte [Configuraciones avanzadas de compilación de modelos](canvas-advanced-settings.md).

   En la ventana emergente **Configurar modelo**, haga lo siguiente:

   1. En **Hiperparámetros** puede ajustar **Recuento de épocas**, **Tamaño del lote**, **Tasa de aprendizaje** y **Pasos de calentamiento de la tasa de aprendizaje** para cada modelo que haya seleccionado. Para obtener más información sobre estos parámetros, consulte la sección [Hiperparámetros de la documentación](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-fine-tune.html#jumpstart-hyperparameters). JumpStart 

   1. En **División de datos** puede especificar porcentajes sobre cómo dividir los datos entre el **Conjunto de entrenamiento** y el **Conjunto de validación**.

   1. En **Tiempo máximo de ejecución del trabajo** puede establecer la cantidad máxima de tiempo durante el cual Canvas ejecuta el trabajo de compilación. Esta función solo está disponible para los modelos de JumpStart base.

   1. Después de realizar la configuración, seleccione **Guardar**.

1. Seleccione **Ajustar** para empezar a entrenar los modelos fundacionales que ha seleccionado.

Cuando comience el trabajo de afinamiento, puede salir de la página. Cuando el modelo aparezca como **Listo** en la página **Mis modelos**, estará listo para su uso y podrá analizar el rendimiento del modelo fundacional afinado.

### Análisis del modelo fundacional afinado
<a name="canvas-fm-chat-fine-tune-procedure-analyze"></a>

En la pestaña **Analizar** del modelo fundacional afinado puede ver el rendimiento del modelo.

La pestaña **Descripción general** de esta página muestra las puntuaciones de perplejidad y pérdida, junto con análisis que permiten visualizar la mejora del modelo a lo largo del tiempo durante el entrenamiento. La siguiente captura de pantalla muestra la pestaña **Descripción general**.

![\[La pestaña Analizar de un modelo fundacional afinado en Canvas, que muestra las curvas de perplejidad y pérdida.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-analyze-2.png)


En esta página puede ver las siguientes visualizaciones:
+ La **Curva de perplejidad** mide si el modelo predice correctamente la siguiente palabra de una secuencia o si es gramatical la salida del modelo. Lo ideal es que, a medida que el modelo mejore durante el entrenamiento, la puntuación disminuya y genere una curva que disminuya y se aplane con el tiempo.
+ La **Curva de pérdida** cuantifica la diferencia entre la salida correcta y la salida predicha del modelo. Una curva de pérdida que disminuye y se aplana con el tiempo indica que el modelo está mejorando su capacidad para realizar predicciones precisas.

La pestaña **Métricas avanzadas** muestra los hiperparámetros y las métricas adicionales del modelo. Tiene un aspecto similar al de la captura de pantalla siguiente:

![\[Captura de pantalla de la pestaña Avanzadas métricas de un modelo fundacional afinado en Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-metrics.png)


La pestaña **Métricas avanzadas** contiene la siguiente información:
+ La sección **Explicabilidad** contiene los **Hiperparámetros**, que son los valores establecidos antes del trabajo para guiar el afinamiento del modelo. Si no ha especificado hiperparámetros personalizados en la configuración avanzada del modelo en la sección [Afinamiento del modelo](#canvas-fm-chat-fine-tune-procedure-model), Canvas selecciona hiperparámetros predeterminados.

  Para JumpStart los modelos, también puede utilizar la métrica avanzada [ROUGE (Recall-Oriented Understudy for Gisting Evaluation)](https://en.wikipedia.org/wiki/ROUGE_(metric)), que evalúa la calidad de los resúmenes generados por el modelo. Mide si el modelo puede resumir correctamente los puntos principales de un pasaje.
+ La sección **Artefactos** proporciona enlaces a los artefactos generados durante el trabajo de afinamiento. Puede acceder a los datos de entrenamiento y validación guardados en Amazon S3, así como al enlace del informe de evaluación del modelo (para obtener más información, consulte el párrafo siguiente).

Para obtener más información sobre la evaluación del modelo, puede descargar un informe generado con [SageMaker Clarify](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-configure-processing-jobs.html), una función que puede ayudarle a detectar sesgos en el modelo y en los datos. En primer lugar, genere el informe seleccionando **Generar informe de evaluación** en la parte inferior de la página. Una vez generado el informe, puede descargar el informe completo seleccionando **Descargar el informe** o volviendo a la sección **Artefactos**.

También puede acceder a un cuaderno de Jupyter que muestra cómo replicar el trabajo de afinamiento en código Python. Puede usarlo para replicar o realizar cambios programáticos en el trabajo de afinamiento o para comprender mejor cómo afina Canvas el modelo. Para obtener más información sobre los cuadernos del modelo y cómo acceder a ellos, consulte [Descarga de un modelo de cuaderno](canvas-notebook.md).

Para obtener más información sobre cómo interpretar la información de la pestaña **Analizar** del modelo fundacional afinado, consulte el tema [Evaluación de modelos](canvas-evaluate-model.md).

Tras analizar las pestañas **Descripción general** y **Métricas avanzadas**, también puede abrir la **Tabla de clasificación de modelos**, que muestra la lista de los modelos fundacionales entrenados durante la compilación. El modelo con la puntuación de pérdida más baja se considera el modelo con mejor rendimiento y se selecciona como **Modelo predeterminado** y su análisis se ve en la pestaña **Analizar**. Solo puede probar e implementar el modelo predeterminado. Para obtener más información acerca de la tabla de clasificación de modelos y cómo cambiar el modelo predeterminado, consulte [Visualización de los candidatos del modelo en la tabla de clasificación de modelos](canvas-evaluate-model-candidates.md).

### Prueba de un modelo fundacional afinado en un chat
<a name="canvas-fm-chat-fine-tune-procedure-test"></a>

Después de analizar el rendimiento de un modelo fundacional afinado conviene probarlo o comparar sus respuestas con el modelo base. Puede probar un modelo fundacional afinado en un chat con la característica **Generar, extraer y resumir contenido**.

Inicie un chat con un modelo afinado eligiendo uno de los siguientes métodos:
+ En la pestaña **Analizar** del modelo ajustado, elija **Probar en modelos básicos Ready-to-use.**
+ En la página de **Ready-to-use modelos** de Canvas, elija **Generar, extraer y resumir contenido**. A continuación, elija **Nuevo chat** y seleccione la versión del modelo que desee probar.

El modelo se inicia en un chat y puede interactuar con él como con cualquier otro modelo fundacional. Puede añadir más modelos al chat y comparar sus resultados. Para obtener más información sobre la funcionalidad de los chats, consulte [Modelos básicos de IA generativa en Canvas SageMaker](canvas-fm-chat.md).

## Operacionalización de modelos fundacionales afinados
<a name="canvas-fm-chat-fine-tune-mlops"></a>

Después de afinar el modelo en Canvas, puede hacer lo siguiente:
+ Registre el modelo en el Registro de SageMaker modelos para integrarlo en MLOps los procesos de su organización. Para obtener más información, consulte [Registre una versión del modelo en el registro de modelos de IA SageMaker](canvas-register-model.md).
+ Implemente el modelo en un punto final de SageMaker IA y envíe solicitudes al modelo desde su aplicación o sitio web para obtener predicciones (o *inferencias*). Para obtener más información, consulte [Implementación de sus modelos en un punto de conexión](canvas-deploy-model.md).

**importante**  
Solo puede registrar e implementar modelos de JumpStart base ajustados con precisión, no modelos basados en Amazon Bedrock.

# Ready-to-use modelos
<a name="canvas-ready-to-use-models"></a>

Con Ready-to-use los modelos de Amazon SageMaker Canvas, puede realizar predicciones sobre sus datos sin escribir una sola línea de código ni tener que crear un modelo; todo lo que tiene que traer son sus datos. Los Ready-to-use modelos utilizan modelos prediseñados para generar predicciones sin que tenga que invertir el tiempo, la experiencia o el costo necesarios para crear un modelo, y puede elegir entre una variedad de casos de uso que van desde la detección del lenguaje hasta el análisis de gastos.

Canvas se integra con AWS los servicios existentes, como [Amazon Textract](https://docs.aws.amazon.com/textract/latest/dg/what-is.html), Amazon [Rekognition y Amazon](https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html) [Comprehend, para analizar sus datos y](https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html) realizar predicciones o extraer información. Puede utilizar el poder predictivo de estos servicios desde la aplicación de Canvas para obtener predicciones de alta calidad para sus datos.

Canvas admite los siguientes tipos de modelos: Ready-to-use


| Ready-to-use modelo | Description (Descripción) | Tipos de datos admitidos | 
| --- | --- | --- | 
| Análisis de opiniones | Detecta opiniones en líneas de texto, que pueden ser positivas, negativas, neutras o mixtas. En la actualidad, solo puede realizar análisis de opiniones para textos en inglés. | Texto sin formato o tabular (CSV, Parquet) | 
| Extracción de entidades | Extraiga del texto entidades, que son objetos del mundo real, como personas, lugares y artículos comerciales, o unidades, como fechas y cantidades. | Texto sin formato o tabular (CSV, Parquet) | 
| Detección de idioma | Determine el idioma dominante del texto, como el inglés, el francés o el alemán. | Texto sin formato o tabular (CSV, Parquet) | 
| Detección de información personal | Detecte información personal que podría usarse para identificar a una persona, como direcciones, números de cuentas bancarias y números de teléfono, a partir del texto. | Texto sin formato o tabular (CSV, Parquet) | 
| Detección de objetos en imágenes | Detecte objetos, conceptos, escenas y acciones en sus imágenes. | Imagen (JPG, PNG) | 
| Detección de texto en imágenes | Detecte texto en sus imágenes: | Imagen (JPG, PNG) | 
| Análisis de gastos | Extraiga información de las facturas y los recibos, como la fecha, el número, los precios de los artículos, el importe total y las condiciones de pago. | Documento (PDF, JPG, PNG, TIFF) | 
| Análisis de documentos de identidad | Extraiga información de los pasaportes, licencias de conducir y otros documentos de identidad emitidos por el Gobierno de los EE. UU. | Documento (PDF, JPG, PNG, TIFF) | 
| Análisis de documentos | Analice documentos y formularios para ver las relaciones entre el texto detectado. | Documento (PDF, JPG, PNG, TIFF) | 
| Consultas de documentos | Extraiga información de documentos estructurados, como recibos de pago, extractos bancarios, formularios W-2 y formularios de solicitud de hipotecas mediante el planteamiento de preguntas en lenguaje natural. | Documento (PDF) | 

## Introducción
<a name="canvas-ready-to-use-get-started"></a>

Para empezar con Ready-to-use los modelos, revise la siguiente información.

**Requisitos previos**

Para usar Ready-to-use modelos en Canvas, debes activar los permisos de **configuración de Ready-to-use los modelos de Canvas** al [configurar tu dominio de Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites). La **configuración de Ready-to-use los modelos de Canvas** adjunta la política de [AmazonSageMakerCanvasAIServicesacceso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) a la función de ejecución de su usuario de Canvas AWS Identity and Access Management (IAM). Si tiene algún problema con la concesión de permisos, consulte el tema [Solución de problemas relacionados con la concesión de permisos a través de la consola de SageMaker IA](canvas-limits.md#canvas-troubleshoot-trusted-services).

Si ya ha configurado un dominio, puede editar esa configuración y activar los permisos. Para obtener instrucciones sobre cómo editar la configuración del su dominio, consulte [Edit domain settings](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-edit.html). Al editar la configuración de su dominio, vaya a la **configuración de Canvas** y active la **opción Habilitar Ready-to-use modelos de Canvas**.

**(Opcional) Exclusión del almacenamiento de datos de los servicios de IA**

Algunos servicios de AWS IA almacenan y utilizan tus datos para realizar mejoras en el servicio. Usted puede excluir el almacenamiento o el uso de su contenido para mejorar el servicio. Para obtener más información sobre cómo excluirse, consulte [Políticas de exclusión de servicios de IA](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html) en la *Guía del usuario de AWS Organizations *.

**¿Cómo usar Ready-to-use los modelos**

Para empezar con Ready-to-use los modelos, haga lo siguiente:

1. **(Opcional) Importe sus datos.** Puede importar un conjunto de datos tabular, de imágenes o de documentos para generar predicciones por lotes, o un conjunto de datos de predicciones, con Ready-to-use modelos. Para empezar a importar un conjunto de datos, consulte [Creación de un flujo de datos](canvas-data-flow.md).

1. **Genere predicciones.** Puede generar predicciones individuales o por lotes con el Ready-to-use modelo que elija. Para empezar a hacer predicciones, consulte [Predicciones para datos de texto](canvas-ready-to-use-predict-text.md).

# Predicciones para datos de texto
<a name="canvas-ready-to-use-predict-text"></a>

En los siguientes procedimientos se describe cómo hacer predicciones tanto individuales como por lotes para conjuntos de datos de texto. Cada Ready-to-use modelo admite **predicciones individuales y predicciones** **por lotes** para su conjunto de datos. Una **Predicción única** sirve cuando solo necesita hacer una predicción. Por ejemplo, si tiene una imagen de la que desea extraer texto o un párrafo de texto en el que desea detectar el idioma dominante. Una **Predicción por lotes** sirve cuando quiere hacer predicciones para un conjunto de datos completo. Por ejemplo, puede tener un archivo CSV con valoraciones de clientes en las que querría analizar la opinión general de los clientes, o puedes tener archivos de imágenes en los que querría detectar objetos.

Puede usar estos procedimientos para los siguientes tipos de Ready-to-use modelos: análisis de sentimientos, extracción de entidades, detección de lenguaje y detección de información personal.

**nota**  
Para el análisis de opiniones, solo puede utilizar textos en el idioma inglés.

## Predicciones únicas
<a name="canvas-ready-to-use-predict-text-single"></a>

Para realizar una predicción única para Ready-to-use los modelos que aceptan datos de texto, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación Canvas, elija **eady-to-usemodelos R.**

1. En la página de **Ready-to-use modelos**, elija el Ready-to-use modelo para su caso de uso. En el caso de los datos de texto, debe ser una de las siguientes opciones: **análisis de opiniones**, **extracción de entidades**, **detección de idioma** o **detección de información personal**.

1. En la página **Ejecutar predicciones** del Ready-to-use modelo elegido, elija **Predicción única**.

1. En **Campo de texto**, introduzca el texto para el que quiera obtener una predicción.

1. Seleccione **Generar resultados de predicción** para obtener su predicción.

En **Resultados de la predicción** en el lado derecho verá un análisis del texto, además de una puntuación de **Confianza** para cada resultado o etiqueta. Por ejemplo, si elige la detección de idioma e introduce un fragmento de texto en francés, es posible que obtenga una puntuación de confianza del 95 % en francés y trazas de otros idiomas, como el inglés, con una puntuación de confianza del 5 %.

En la siguiente captura de pantalla se muestran los resultados de una sola predicción mediante la detección del idioma, en la que el modelo está al 100 % seguro de que el pasaje está en inglés.

![\[Captura de pantalla de los resultados de una sola predicción con el Ready-to-use modelo de detección del lenguaje.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-text-prediction.png)


## Predicciones por lotes
<a name="canvas-ready-to-use-predict-text-batch"></a>

Para realizar predicciones por lotes para Ready-to-use los modelos que aceptan datos de texto, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación Canvas, elija **eady-to-usemodelos R.**

1. En la página de **Ready-to-use modelos**, elija el Ready-to-use modelo para su caso de uso. En el caso de los datos de texto, debe ser una de las siguientes opciones: **análisis de opiniones**, **extracción de entidades**, **detección de idioma** o **detección de información personal**.

1. En la página **Ejecutar predicciones** del Ready-to-use modelo elegido, elija **Predicción por lotes**.

1. Elija **Seleccionar conjunto de datos** si ya ha importado su conjunto de datos. Si no es así, seleccione **Importar un nuevo conjunto de datos** y, a continuación, se le guiará a lo largo del flujo de trabajo de importación de datos.

1. En la lista de conjuntos de datos disponibles, seleccione su conjunto de datos y elija **Generar predicciones** para obtener sus predicciones.

Cuando termine de ejecutarse el trabajo de predicción, en la página **Ejecutar predicciones**, verá un conjunto de datos de salida en la sección **Predicciones**. Este conjunto de datos contiene los resultados y, si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puede obtener una **Vista previa** de los datos del resultado. A continuación, puede elegir **Descargar** para descargar los resultados.

# Predicciones para los datos de imágenes
<a name="canvas-ready-to-use-predict-image"></a>

En los siguientes procedimientos se describe cómo hacer predicciones tanto individuales como por lotes para conjuntos de datos de imágenes. Cada Ready-to-use modelo admite **predicciones individuales y predicciones** **por lotes** para su conjunto de datos. Una **Predicción única** sirve cuando solo necesita hacer una predicción. Por ejemplo, si tiene una imagen de la que desea extraer texto o un párrafo de texto en el que desea detectar el idioma dominante. Una **Predicción por lotes** sirve cuando quiere hacer predicciones para un conjunto de datos completo. Por ejemplo, puede tener un archivo CSV con valoraciones de clientes en las que querría analizar la opinión general de los clientes, o puedes tener archivos de imágenes en los que querría detectar objetos.

Puede utilizar estos procedimientos para los siguientes tipos de Ready-to-use modelos: imágenes de detección de objetos y detección de texto en imágenes.

## Predicciones únicas
<a name="canvas-ready-to-use-predict-image-single"></a>

Para realizar una predicción única para Ready-to-use los modelos que aceptan datos de imagen, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación Canvas, elija **eady-to-usemodelos R.**

1. En la página de **Ready-to-use modelos**, elija el Ready-to-use modelo para su caso de uso. En el caso de los datos de imágenes, debe ser una de las siguientes opciones: **Imágenes de detección de objetos** o **Detección de texto en imágenes**.

1. En la página **Ejecutar predicciones** del Ready-to-use modelo elegido, elija **Predicción única**.

1. Elija **Cargar imagen**.

1. Se le solicitará que seleccione una imagen para cargarla desde su equipo local. Seleccione la imagen de sus archivos locales y, a continuación, se generarán los resultados de la predicción.

En **Resultados de la predicción** en el lado derecho verá un análisis de la imagen, además de una puntuación de **Confianza** para cada objeto o texto detectados. Por ejemplo, si elige la detección de objetos en las imágenes, recibirá una lista de los objetos de la imagen junto con una puntuación de confianza que indica la certeza que tiene el modelo sobre que cada objeto se ha detectado con precisión, por ejemplo, un 93 %.

En la siguiente captura de pantalla se muestran los resultados de una sola predicción con la solución de detección de objetos en imágenes, en la que el modelo predice objetos como una torre de reloj o un autobús con un 100 % de confianza.

![\[Los resultados de una predicción única con la solución de detección de objetos en el Ready-to-use modelo de imágenes.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-image-prediction.png)


## Predicciones por lotes
<a name="canvas-ready-to-use-predict-image-batch"></a>

Para realizar predicciones por lotes para Ready-to-use los modelos que aceptan datos de imagen, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación Canvas, elija **eady-to-usemodelos R.**

1. En la página de **Ready-to-use modelos**, elija el Ready-to-use modelo para su caso de uso. En el caso de los datos de imágenes, debe ser una de las siguientes opciones: **Imágenes de detección de objetos** o **Detección de texto en imágenes**.

1. En la página **Ejecutar predicciones** del Ready-to-use modelo elegido, elija **Predicción por lotes**.

1. Elija **Seleccionar conjunto de datos** si ya ha importado su conjunto de datos. Si no es así, seleccione **Importar un nuevo conjunto de datos** y, a continuación, se le guiará a lo largo del flujo de trabajo de importación de datos.

1. En la lista de conjuntos de datos disponibles, seleccione su conjunto de datos y elija **Generar predicciones** para obtener sus predicciones.

Cuando termine de ejecutarse el trabajo de predicción, en la página **Ejecutar predicciones**, verá un conjunto de datos de salida en la sección **Predicciones**. Este conjunto de datos contiene los resultados y, si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puede seleccionar **Ver resultados de predicción** para ver una vista previa de los datos del resultado. A continuación, puede elegir **Descargar la predicción** y descargar los resultados en un archivo CSV o ZIP.

# Predicciones para datos de documentos
<a name="canvas-ready-to-use-predict-document"></a>

En los siguientes procedimientos se describe cómo hacer predicciones tanto individuales como por lotes para conjuntos de datos de documentos. Cada Ready-to-use modelo admite **predicciones individuales y predicciones** **por lotes** para su conjunto de datos. Una **Predicción única** sirve cuando solo necesita hacer una predicción. Por ejemplo, si tiene una imagen de la que desea extraer texto o un párrafo de texto en el que desea detectar el idioma dominante. Una **Predicción por lotes** sirve cuando quiere hacer predicciones para un conjunto de datos completo. Por ejemplo, puede tener un archivo CSV con valoraciones de clientes en las que querría analizar la opinión general de los clientes, o puedes tener archivos de imágenes en los que querría detectar objetos.

Puede utilizar estos procedimientos para los siguientes tipos de Ready-to-use modelos: análisis de gastos, análisis de documentos de identidad y análisis de documentos.

**nota**  
Para las consultas de documentos, actualmente solo se admiten predicciones únicas.

## Predicciones únicas
<a name="canvas-ready-to-use-predict-document-single"></a>

Para realizar una predicción única para Ready-to-use los modelos que aceptan datos de documentos, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación Canvas, elija **eady-to-usemodelos R.**

1. En la página de **Ready-to-use modelos**, elija el Ready-to-use modelo para su caso de uso. En el caso de los datos de documentos, debe ser uno de los siguientes: **análisis de gastos**, **análisis de documentos de identidad** o **análisis de documentos**.

1. En la página **Ejecutar predicciones** del Ready-to-use modelo elegido, elija **Predicción única**.

1. Si su Ready-to-use modelo es un análisis de documentos de identidad o un análisis de documentos, complete las siguientes acciones. Si está realizando un análisis de gastos o consultas de documentos, omita este paso y vaya al paso 5 o al paso 6, respectivamente.

   1. Seleccione **Cargar documento**.

   1. Se le solicitará que cargue un archivo PDF, JPG o PNG desde su equipo local. Seleccione el documento de sus archivos locales y, a continuación, se generarán los resultados de la predicción.

1. Si su Ready-to-use modelo es un análisis de gastos, haga lo siguiente:

   1. Seleccione **Cargar factura o recibo.**

   1. Se le solicitará que cargue un archivo PDF, JPG, PNG o TIFF desde su equipo local. Seleccione el documento de sus archivos locales y, a continuación, se generarán los resultados de la predicción.

1. Si su Ready-to-use modelo consiste en consultas de documentos, haga lo siguiente:

   1. Seleccione **Cargar documento**.

   1. Se le solicitará que cargue un archivo PDF desde su equipo local. Seleccione el documento de sus archivos locales. El PDF debe tener entre 1 y 100 páginas.
**nota**  
Si se encuentra en las regiones Asia-Pacífico (Seúl), Asia-Pacífico (Singapur), Asia-Pacífico (Sídney) o Europa (Fráncfort), el tamaño máximo del PDF para las consultas de documentos es de 20 páginas.

   1. En el panel lateral derecho, introduzca consultas para buscar información en el documento. El número de caracteres que puede tener una sola consulta es de 1 a 200. Puede agregar hasta 15 consultas a la vez.

   1. Seleccione **Enviar consultas** y, a continuación, se generarán los resultados con las respuestas a sus consultas. Se le facturará una vez por cada envío de consultas que realice.

En el panel derecho, en **Resultados de la predicción**, recibirá un análisis de su documento.

La siguiente información describe los resultados de cada tipo de solución:
+ Para el análisis de gastos, los resultados se clasifican en **Campos de resumen**, que incluyen campos como el total de un recibo, y **Campos de partidas**, que incluyen campos como los elementos individuales de un recibo. Los campos identificados aparecen resaltados en la imagen del documento en el resultado.
+ Para el análisis de los documentos de identidad, el resultado muestra los campos que identificó el Ready-to-use modelo, como el nombre y apellidos, la dirección o la fecha de nacimiento. Los campos identificados aparecen resaltados en la imagen del documento en el resultado.
+ Para el análisis de documentos, los resultados se clasifican en **texto sin formato**, **formularios**, **tablas** y **firmas**. El **texto sin formato** incluye todo el texto extraído, mientras que los **formularios**, las **tablas** y las **firmas** solo incluyen la información del formulario que pertenezca a esas categorías. Por ejemplo, las **tablas** solo incluyen la información extraída de las tablas del documento. Los campos identificados aparecen resaltados en la imagen del documento en el resultado.
+ Para las consultas de documentos, Canvas devuelve las respuestas a cada una de sus consultas. Puede abrir el menú desplegable de consultas para ver un resultado, junto con la puntuación de confianza de la predicción. Si Canvas encuentra varias respuestas en el documento, es posible que aparezca más de un resultado para cada consulta.

La siguiente captura de pantalla muestra los resultados de una sola predicción utilizando la solución de análisis de documentos.

![\[Captura de pantalla de los resultados de una sola predicción con el Ready-to-use modelo de análisis de documentos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-document-analysis.png)


## Predicciones por lotes
<a name="canvas-ready-to-use-predict-document-batch"></a>

Para realizar predicciones por lotes para Ready-to-use los modelos que aceptan datos de documentos, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación Canvas, elija **eady-to-usemodelos R.**

1. En la página de **Ready-to-use modelos**, elija el Ready-to-use modelo para su caso de uso. En el caso de los datos de imágenes, debe ser uno de los siguientes: **análisis de gastos**, **análisis de documentos de identidad** o **análisis de documentos**.

1. En la página **Ejecutar predicciones** del Ready-to-use modelo elegido, elija **Predicción por lotes**.

1. Elija **Seleccionar conjunto de datos** si ya ha importado su conjunto de datos. Si no es así, seleccione **Importar un nuevo conjunto de datos** y, a continuación, se le guiará a lo largo del flujo de trabajo de importación de datos.

1. En la lista de conjuntos de datos disponibles, seleccione su conjunto de datos y elija **Generar predicciones**. Si su caso de uso es el análisis de documentos, continúe con el paso 6.

1. (Opcional) Si su caso de uso es el análisis de documentos, aparecerá otro cuadro de diálogo denominado **Seleccione las características que desee incluir en la predicción por lotes**. Puede seleccionar **formularios**, **tablas** y **firmas** para agrupar los resultados por esas características. A continuación, elija **Generar predicciones**.

Cuando termine de ejecutarse el trabajo de predicción, en la página **Ejecutar predicciones**, verá un conjunto de datos de salida en la sección **Predicciones**. Este conjunto de datos contiene los resultados y, si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puede seleccionar **Ver resultados de predicción** para ver una vista previa de los datos del análisis de su documento.

La siguiente información describe los resultados de cada tipo de solución:
+ Para el análisis de gastos, los resultados se clasifican en **Campos de resumen**, que incluyen campos como el total de un recibo, y **Campos de partidas**, que incluyen campos como los elementos individuales de un recibo. Los campos identificados aparecen resaltados en la imagen del documento en el resultado.
+ Para el análisis de los documentos de identidad, la salida muestra los campos que identificó el Ready-to-use modelo, como el nombre y apellidos, la dirección o la fecha de nacimiento. Los campos identificados aparecen resaltados en la imagen del documento en el resultado.
+ Para el análisis de documentos, los resultados se clasifican en **texto sin formato**, **formularios**, **tablas** y **firmas**. El **texto sin formato** incluye todo el texto extraído, mientras que los **formularios**, las **tablas** y las **firmas** solo incluyen la información del formulario que pertenezca a esas categorías. Por ejemplo, las **tablas** solo incluyen la información extraída de las tablas del documento. Los campos identificados aparecen resaltados en la imagen del documento en el resultado.

Tras obtener una vista previa de los resultados, puede seleccionar **Descargar la predicción** y descargar los resultados como un archivo ZIP.

# Modelos personalizados
<a name="canvas-custom-models"></a>

En Amazon SageMaker Canvas, puede entrenar modelos de aprendizaje automático personalizados que se adapten a sus datos y casos de uso específicos. Al entrenar un modelo personalizado con sus datos, puede capturar las características y tendencias que son específicas y más representativas de sus datos. Por ejemplo, es posible que desee crear un modelo de previsión de series temporales personalizado que se entrene con los datos de inventario de su almacén para administrar sus operaciones logísticas.

Canvas admite el entrenamiento de diversos tipos de modelos. Después de entrenar un modelo personalizado, puede evaluar el rendimiento y la exactitud del modelo. Una vez satisfecho con un modelo, puede hacer predicciones a partir de nuevos datos y también tiene la opción de compartir el modelo personalizado con los científicos de datos para analizarlo más a fondo o de implementarlo en un punto final alojado por SageMaker IA para realizar inferencias en tiempo real, todo ello desde la aplicación Canvas.

Puede entrenar un modelo personalizado de Canvas con los siguientes tipos de conjuntos de datos:
+ Tabular (incluye datos numéricos, categóricos, de series temporales y de texto)
+ Image

La siguiente tabla muestra los tipos de modelos personalizados que puede crear en Canvas, junto con los tipos de datos y los orígenes de datos compatibles.


| Tipo de modelo | Ejemplo de caso de uso | Tipos de datos compatibles | Orígenes de datos admitidos | 
| --- | --- | --- | --- | 
| Predicción numérica | Predicción de los precios de la vivienda en función de características como la superficie | Numérico | Carga local, Amazon S3, conectores de SaaS | 
| Predicción de 2 categorías | Predecir si es probable que un cliente deje de confiar en su marca o no | Binario o categórico | Carga local, Amazon S3, conectores de SaaS | 
| Predicción de 3 y más categorías | Predicción de los resultados de los pacientes tras ser dados de alta del hospital | Categórico | Carga local, Amazon S3, conectores de SaaS | 
| Previsión de serie temporal | Predicción de su inventario para el próximo trimestre | Serie temporal | Carga local, Amazon S3, conectores de SaaS | 
| Predicción de imágenes de etiqueta única | Predicción de los tipos de defectos de fabricación en imágenes | Imagen (JPG, PNG) | Carga local, Amazon S3 | 
| Predicción de texto multicategoría | Predicción de categorías de productos, como ropa, artículos electrónicos o artículos para el hogar, en función de las descripciones de los productos |  Columna de origen: texto Columna de destino: binaria o categórica | Carga local, Amazon S3 | 

**Introducción**

Para empezar a crear y generar predicciones a partir de un modelo personalizado, haga lo siguiente:
+ Determine su caso de uso y el tipo de modelo que quiera crear. Para obtener más información acerca de los tipos de modelos personalizados, consulte [Cómo funcionan los modelos personalizados](canvas-build-model.md). Para obtener más información sobre los tipos de datos y orígenes compatibles con los modelos personalizados, consulte [Importación de datos](canvas-importing-data.md).
+ [Importe sus datos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-importing-data.html) a Canvas. Puede crear un modelo personalizado con cualquier conjunto de datos tabular o de imágenes que cumpla con los requisitos de entrada. Para obtener más información acerca de los requisitos de entrada, consulte [Creación de un conjunto de datos](canvas-import-dataset.md).

  Para obtener más información sobre los conjuntos de datos de muestra proporcionados por la SageMaker IA con los que puede experimentar, consulte. [Conjuntos de datos de ejemplo en Canvas](canvas-sample-datasets.md)
+ [Cree](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) de su modelo personalizado. Puede realizar una **Compilación rápida** para obtener su modelo y empezar a hacer predicciones con mayor rapidez, o puede realizar una **Compilación estándar** para obtener una mayor precisión.

  Para los tipos de modelos de previsión numéricos, categóricos y de series temporales, puede limpiar y preparar los datos con la [característica Data Wrangler](canvas-data-prep.md). En Data Wrangler, puede crear un flujo de datos y utilizar diversas técnicas de preparación de datos, como aplicar transformaciones avanzadas o unir conjuntos de datos. En el caso de los modelos de predicción de imágenes, puede [Edición de un conjunto de datos de imágenes](canvas-edit-image.md) para actualizar las etiquetas o agregar y eliminar imágenes. Tenga en cuenta que no puede utilizar estas características para modelos de predicción de texto de varias categorías.
+ [Evalúe el rendimiento del modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html) y determine en qué medida podría funcionar con datos del mundo real.
+ [Realice predicciones únicas o por lotes](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-make-predictions.html) con su modelo.

# Cómo funcionan los modelos personalizados
<a name="canvas-build-model"></a>

Utilice Amazon SageMaker Canvas para crear un modelo personalizado en el conjunto de datos que ha importado. Utilice el modelo que ha creado para hacer predicciones a partir de nuevos datos. SageMaker Canvas usa la información del conjunto de datos para crear hasta 250 modelos y elegir el que tenga el mejor rendimiento.

Al empezar a crear un modelo, Canvas recomienda automáticamente uno o más *tipos de modelos*. Los tipos de modelos se dividen en las siguientes categorías:
+ **Predicción numérica**: esto se conoce como *regresión* en el machine learning. Utilice el tipo de modelo de predicción numérica cuando desee realizar predicciones para datos numéricos. Por ejemplo, es posible que desee predecir el precio de las casas en función de características como la superficie de la casa.
+ **Predicción categórica**: esto se conoce como *clasificación* en el machine learning. Cuando desee clasificar los datos en grupos, utilice los tipos de modelos de predicción categórica:
  + **Predicción de 2 categorías**: utilice el tipo de modelo de predicción de 2 categorías (también conocido como *clasificación binaria* en el machine learning) cuando tenga dos categorías que desee predecir para sus datos. Por ejemplo, es posible que desee determinar si es probable que un cliente se dé de baja.
  + **Predicción de 3 categorías o más**: utilice el tipo de modelo de predicción de 3 categorías o más (también conocido como *clasificación multiclase* en el machine learning) cuando desee predecir tres o más categorías a partir de sus datos. Por ejemplo, es posible que desee predecir el estado del préstamo de un cliente en función de características como los pagos anteriores.
+ **Previsión de series temporales**: utilice previsiones de series temporales cuando desee realizar predicciones durante un período de tiempo. Por ejemplo, es posible que desee predecir la cantidad de artículos que venderá en el próximo trimestre. Para obtener información sobre las previsiones de series temporales, consulte [Pronósticos de series temporales en Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-time-series.html).
+ **Predicción de imágenes**: utilice el tipo de modelo de predicción de imágenes de etiqueta única (también conocido como *clasificación de imágenes de etiqueta única* en el machine learning) cuando desee asignar etiquetas a las imágenes. Por ejemplo, es posible que desee clasificar diferentes tipos de defectos de fabricación en las imágenes de su producto.
+ **Predicción de texto**: utilice el tipo de modelo de predicción de texto multicategoría (también conocido como *clasificación de texto multiclase* en el machine learning) cuando desee asignar etiquetas a pasajes de texto. Por ejemplo, es posible que tenga un conjunto de datos de reseñas de clientes sobre un producto y quiera determinar si a los clientes les gustó o no el producto. Puede hacer que su modelo prediga si un pasaje de texto determinado es `Positive`, `Negative` o `Neutral`.

Para ver una tabla de los tipos de datos de entrada admitidos para cada tipo de modelo, consulte [Modelos personalizados](canvas-custom-models.md).

Para cada modelo de datos tabulares que cree (que incluye modelos numéricos, categóricos, de previsión de series temporales y de predicción de texto), debe elegir la **Columna de destino**. La **Columna de destino** es la columna que contiene la información que quiera predecir. Por ejemplo, si está creando un modelo para predecir si las personas han cancelado sus suscripciones, la **Columna de destino** contiene puntos de datos que indican `yes` o `no` en relación con el estado de cancelación de una persona.

En el caso de los modelos de predicción de imágenes, se crea el modelo con un conjunto de datos de imágenes a las que se les han asignado etiquetas. Para las imágenes sin etiquetas que proporcione, el modelo predice una etiqueta. Por ejemplo, si está creando un modelo para predecir si una imagen es de un gato o un perro, debe proporcionar imágenes etiquetadas como gatos o perros al crear el modelo. A continuación, el modelo puede aceptar imágenes sin etiquetar y predecirlas como gatos o perros.

**Qué ocurre cuando se crea un modelo**

Para crear su modelo, puede elegir entre una **compilación rápida** o una **compilación estándar**. La **compilación rápida** tiene un tiempo de compilación más corto, pero la **compilación estándar** generalmente tiene una precisión mayor.

Para los modelos de previsión tabulares y de series temporales, Canvas utiliza *reducción del muestreo* para reducir el tamaño de los conjuntos de datos de más de 5 GB o 30 GB, respectivamente. Canvas reduce el muestreo con el método de muestreo estratificado. La siguiente tabla presenta el tamaño de la muestra reducida por tipo de modelo. Para controlar el proceso de muestreo, puede utilizar Data Wrangler en Canvas para muestrear utilizando la técnica de muestreo que prefiera. En el caso de los datos de series temporales, puede volver a muestrear para agregar puntos de datos. Para obtener más información sobre el muestreo, consulte [Muestreo](canvas-transform.md#canvas-transform-sampling). Para obtener más información sobre el remuestreo de datos de series temporales, consulte [Remuestreo de datos de series temporales](canvas-transform.md#canvas-resample-time-series).

Si realiza una **Compilación rápida** a partir de un conjunto de datos con más de 50 000 filas, Canvas muestreará los datos hasta 50 000 filas para reducir el tiempo de entrenamiento del modelo.

La siguiente tabla resume las características clave del proceso de compilación de modelos, incluidos los tiempos de compilación medios de cada modelo y tipo de compilación, el tamaño de la muestra reducida al compilar modelos con conjuntos de datos de gran tamaño y la cantidad mínima y máxima de puntos de datos que debe tener para cada tipo de compilación.


| Límite | Predicción numérica y categórica | Previsión de serie temporal | Predicción de imágenes | Predicción de texto | 
| --- | --- | --- | --- | --- | 
| Tiempo de **compilación rápida** | De 2 a 20 minutos | De 2 a 20 minutos | De 3 a 15 minutos | De 3 a 15 minutos | 
| Tiempo de **compilación estándar** | De 2 a 4 horas | De 2 a 4 horas | De 2 a 5 horas | De 2 a 5 horas | 
| Tamaño de la muestra reducida (tamaño de un conjunto de datos grande después de que Canvas reduzca la muestra) | 5 GB | 30 GB | N/A | N/A | 
| Número mínimo de entradas (filas) para **compilaciones rápidas** |  2 categorías: 500 filas Más de 3 categorías, numéricos, serie temporal: N/A  | N/A | N/A | N/A | 
| Número mínimo de entradas (filas, imágenes o documentos) para las **compilaciones estándares** | 250 | 50 | 50 | N/A | 
| Número máximo de entradas (filas, imágenes o documentos) para las **compilaciones rápidas** | N/A | N/A | 5000 | 7500 | 
| Número máximo de entradas (filas, imágenes o documentos) para las **compilaciones estándares** | N/A | 150.000 | 180,000 | N/A | 
| Número máximo de columnas. | 1 000 | 1 000 | N/A | N/A | 

Canvas predice los valores utilizando la información del resto del conjunto de datos, según el tipo de modelo:
+ Para la predicción categórica, Canvas coloca cada fila en una de las categorías enumeradas en la **Columna de destino**.
+ Para la predicción numérica, Canvas utiliza la información del conjunto de datos para predecir los valores numéricos de la **Columna de destino**.
+ Para la previsión de series temporales, Canvas utiliza datos históricos para predecir los valores de la **Columna de destino** en el futuro.
+ Para la predicción de imágenes, Canvas utiliza imágenes a las que se les han asignado etiquetas para predecir las etiquetas de las imágenes sin etiquetar.
+ Para la predicción de texto, Canvas analiza los datos de texto a los que se les han asignado etiquetas para predecir las etiquetas de los pasajes de texto sin etiquetar.

**Características adicionales que le ayudarán a crear su modelo**

Antes de compilar el modelo, puede usar Data Wrangler en Canvas para preparar los datos con más de 300 transformaciones y operadores integrados. Data Wrangler admite transformaciones para conjuntos de datos tabulares y de imágenes. Además, puede conectarse a orígenes de datos fuera de Canvas, crear trabajos para aplicar transformaciones a todo el conjunto de datos y exportar datos completamente preparados y limpios para usarlos en flujos de trabajo de ML fuera de Canvas. Para obtener más información, consulte [Preparación de datos](canvas-data-prep.md).

Para ver visualizaciones y análisis a fin de explorar los datos y determinar qué características se incluyen en el modelo, puede utilizar los análisis integrados de Data Wrangler. También puede acceder a un **informe de información y calidad de los datos** que destaca los posibles problemas del conjunto de datos y proporciona recomendaciones sobre cómo solucionarlos. Para obtener más información, consulte [Realización de análisis de datos exploratorio (EDA)](canvas-analyses.md).

Además de la funcionalidad más avanzada de preparación y exploración de datos que ofrece Data Wrangler, Canvas ofrece características básicas que puede utilizar:
+ Para filtrar los datos y acceder a un conjunto de transformaciones de datos básicas, consulte [Preparación de datos para la creación de modelos](canvas-prepare-data.md).
+ Para acceder a visualizaciones y análisis sencillos para explorar características, consulte [Exploración y análisis de datos](canvas-explore-data.md).
+ Para obtener más información sobre características adicionales, como la vista previa del modelo, la validación del conjunto de datos y el cambio del tamaño de la muestra aleatoria utilizada para crear el modelo, consulte [Vista previa del modelo](canvas-preview-model.md).

En el caso de los conjuntos de datos tabulares con varias columnas (como los conjuntos de datos para crear tipos de modelos de previsión categóricos, numéricos o de series temporales), es posible que tenga filas en las que falten puntos de datos. Mientras Canvas crea el modelo, agrega automáticamente los valores faltantes. Canvas usa los valores de su conjunto de datos para realizar una aproximación matemática de los valores faltantes. Para obtener la máxima precisión del modelo, le recomendamos agregar los datos que faltan si puede encontrarlos. Tenga en cuenta que la característica de datos faltantes no es compatible con los modelos de predicción de texto o de imagen.

**Introducción**

Para empezar a compilar un modelo personalizado, consulte [Creación de un modelo](canvas-build-model-how-to.md) y siga el procedimiento correspondiente al tipo de modelo que desee crear.

# Vista previa del modelo
<a name="canvas-preview-model"></a>

**nota**  
La siguiente funcionalidad solo está disponible para los modelos personalizados creados con conjuntos de datos tabulares. También se excluyen los modelos de predicción de texto de varias categorías.

SageMaker Canvas le proporciona una herramienta para previsualizar el modelo antes de empezar a construir. Proporciona una puntuación de exactitud estimada y también brinda una idea preliminar de cómo podría afectar cada columna al modelo. 

Para obtener una vista previa de la puntuación del modelo, cuando esté en la pestaña **Compilar** del modelo, elija **Vista previa del modelo**.

La vista previa del modelo genera una predicción de **Exactitud estimada** de la eficacia con la que el modelo podría analizar los datos. La precisión de una **Compilación rápida** o una **Compilación estándar** representa el rendimiento del modelo con datos reales y, por lo general, es superior a la **Precisión estimada**.

La vista previa del modelo también proporciona puntuaciones de **Impacto de columnas**, que pueden indicar la importancia de cada columna en las predicciones del modelo.

La siguiente captura de pantalla muestra una vista previa del modelo en la aplicación de Canvas.

![\[Captura de pantalla de la pestaña Compilación de un modelo en Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-build/canvas-build-preview-model.png)


Amazon SageMaker Canvas gestiona automáticamente los valores que faltan en el conjunto de datos mientras crea el modelo. Infiere los valores faltantes mediante el uso de valores adyacentes que están presentes en el conjunto de datos.

Si está satisfecho con la vista previa del modelo y desea continuar con la compilación de un modelo, consulte [Creación de un modelo](canvas-build-model-how-to.md).

# Validación de datos
<a name="canvas-dataset-validation"></a>

Antes de crear el modelo, SageMaker Canvas comprueba el conjunto de datos para detectar problemas que puedan provocar un error en la compilación. Si SageMaker Canvas encuentra algún problema, te avisará en la página de **compilación** antes de que intentes crear un modelo.

Puede elegir **Validar datos** para ver una lista de los problemas de su conjunto de datos. Luego, puede usar las [funciones de preparación de datos de SageMaker Canvas Data Wrangler](canvas-data-prep.md), o sus propias herramientas, para corregir su conjunto de datos antes de comenzar una compilación. Si no soluciona los problemas del conjunto de datos, la compilación fallará.

Si realiza cambios en su conjunto de datos para solucionar los problemas, tendrá la opción de volver a validarlo antes de intentar compilarlo. Se recomienda volver a validar el conjunto de datos antes de compilarlo.

La siguiente tabla muestra los problemas que SageMaker Canvas comprueba en tu conjunto de datos y cómo resolverlos.


| Problema | Resolución | 
| --- | --- | 
|  El tipo de modelo de sus datos es incorrecto  |  Pruebe con otro tipo de modelo o utilice un conjunto de datos diferente.  | 
|  Faltan valores en la columna de destino  |  Reemplace los valores faltantes, elimine filas con valores faltantes o use un conjunto de datos diferente.  | 
|  Hay demasiadas etiquetas únicas en la columna de destino  |  Compruebe que ha utilizado la columna correcta para la columna de destino o utilice un conjunto de datos diferente.  | 
|  Hay demasiados valores no numéricos en la columna de destino  |  Elija una columna de destino diferente, seleccione otro tipo de modelo o utilice un conjunto de datos diferente.  | 
|  Uno o más nombres de columnas contienen guiones bajos dobles  |  Cambie el nombre de las columnas para eliminar los guiones bajos dobles e inténtelo de nuevo.  | 
|  Ninguna de las filas del conjunto de datos está completa  |  Reemplace los valores faltantes o use un conjunto de datos diferente.  | 
|  Demasiadas etiquetas únicas para el número de filas de los datos  |  Compruebe que esté usando la columna de destino correcta, aumente el número de filas de su conjunto de datos, consolide etiquetas similares o use un conjunto de datos diferente.  | 

# Muestra aleatoria
<a name="canvas-random-sample"></a>

SageMaker Canvas utiliza el método de muestreo aleatorio para muestrear su conjunto de datos. El método de muestreo aleatorio significa que cada fila tiene la misma probabilidad de ser seleccionada para la muestra. Puede elegir una columna en la vista previa para obtener un resumen de las estadísticas de la muestra aleatoria, como la media y la moda.

De forma predeterminada, SageMaker Canvas usa un tamaño de muestra aleatorio de 20 000 filas de su conjunto de datos para conjuntos de datos con más de 20 000 filas. Para conjuntos de datos de menos de 20 000 filas, el tamaño de muestra predeterminado es el número de filas del conjunto de datos. Puede aumentar o disminuir el tamaño de la muestra seleccionando **Muestra aleatoria** en la pestaña **Crear** de la aplicación SageMaker Canvas. Puede utilizar el control deslizante para seleccionar el tamaño de muestra que desee y, a continuación, seleccionar **Actualizar** para cambiar el tamaño de la muestra. El tamaño máximo de muestra que puede elegir para un conjunto de datos es de 40 000 filas y el tamaño mínimo de muestra es de 500 filas. Si elige un tamaño de muestra grande, es posible que la vista previa del conjunto de datos y las estadísticas del resumen tarden unos minutos en volver a cargarse.

La página de **Compilación** muestra una vista previa de 100 filas del conjunto de datos. Si el tamaño de la muestra es del mismo tamaño que el conjunto de datos, la vista previa utiliza las 100 primeras filas del conjunto de datos. De lo contrario, la vista previa usa las 100 primeras filas de la muestra aleatoria.

# Creación de un modelo
<a name="canvas-build-model-how-to"></a>

En las secciones siguientes se muestra cómo crear un modelo para cada uno de los principales tipos de modelos personalizados.
+ Para crear modelos de predicción numérica, predicción de 2 categorías o de 3 categorías o más, consulte [Creación de un modelo de predicción numérica o categórica personalizado](#canvas-build-model-numeric-categorical).
+ Para crear modelos de predicción de imágenes de etiqueta única, consulte [Creación de un modelo de predicción de imágenes personalizado](#canvas-build-model-image).
+ Para crear modelos de predicción de texto de varias categorías, consulte [Creación de un modelo de predicción de texto personalizado](#canvas-build-model-text).
+ Para crear modelos de previsión de series temporales, consulte [Compilación de un modelo de previsión de series temporales](#canvas-build-model-forecasting).

**nota**  
Si encuentra un error durante el análisis posterior a la creación que le indique que debe aumentar la cuota de instancias `ml.m5.2xlarge`, consulte [Solicitar un aumento de cuota](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-requesting-quota-increases.html).

## Creación de un modelo de predicción numérica o categórica personalizado
<a name="canvas-build-model-numeric-categorical"></a>

Los modelos de predicción numérica y categórica admiten **compilaciones rápidas** y **compilaciones estándar**.

Para crear un modelo de predicción numérica o categórica, utilice el siguiente procedimiento:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. Elija **Nuevo modelo**.

1. En el cuadro de diálogo **Crear nuevo modelo** haga lo siguiente:

   1. Escriba un nombre en el campo **Nombre de modelo**.

   1. Seleccione el tipo de problema de **Análisis predictivo**.

   1. Seleccione **Crear**.

1. En **Seleccionar conjunto de datos**, seleccione su conjunto de datos de la lista de conjuntos de datos. Si aún no ha importado sus datos, elija **Importar** para seguir el flujo de trabajo de importación de datos.

1. Cuando tenga todo listo para comenzar a crear el modelo, elija **Seleccionar conjunto de datos**.

1. En la pestaña **Compilación**, en la lista desplegable de la **Columna de destino**, seleccione el objetivo del modelo que desee predecir.

1. En **Tipo de modelo**, Canvas detecta automáticamente el tipo de problema. Si desea cambiar el tipo o establecer ajustes avanzados del modelo, elija **Configurar modelo**.

   Cuando se abra el cuadro de diálogo **Configurar modelo**, haga lo siguiente:

   1. En **Tipo de modelo**, elija el tipo de modelo que desee crear.

   1. Después de elegir el tipo de modelo, hay una **Configuración avanzada** adicional. Para obtener más información sobre cada uno de los ajustes avanzados, consulte [Configuraciones avanzadas de compilación de modelos](canvas-advanced-settings.md). Para realizar la configuración avanzada, haga lo siguiente:

      1. (Opcional) En el menú desplegable **Métrica objetiva**, seleccione la métrica que desee que Canvas optimice al crear su modelo. Si no selecciona una métrica, Canvas elegirá una por defecto. Para ver descripciones de métricas disponibles, consulte [Referencia de métricas](canvas-metrics.md).

      1. En **Método de entrenamiento**, elija el modo de optimización **Automático**, **Ensamblaje** u **Optimización de hiperparámetros (HPO)**.

      1. En **Algoritmos**, seleccione los algoritmos que desee incluir en la compilación de candidatos del modelo.

      1. En **División de datos** especifique porcentajes sobre cómo dividir los datos entre el **Conjunto de entrenamiento** y el **Conjunto de validación**. El conjunto de entrenamiento se usa para compilar el modelo, mientras que el conjunto de validación se usa para probar la exactitud de los candidatos del modelo.

      1. En **Máximo de candidatos y tiempo de ejecución**, haga lo siguiente:

         1. Establezca el valor **Máximo de candidatos** o el número máximo de candidatos del modelo que Canvas puede generar. Tenga en cuenta que **Máximo de candidatos** solo está disponible en el modo HPO.

         1. Establezca los valores de horas y minutos en **Tiempo de ejecución máximo de trabajos** o la cantidad máxima de tiempo que Canvas puede dedicar a compilar el modelo. Transcurrido el tiempo máximo, Canvas deja de compilar y selecciona el mejor candidato del modelo.

   1. Después de realizar la configuración avanzada, seleccione **Guardar**.

1. Seleccione o deseleccione las columnas de sus datos para incluirlas o eliminarlas de la compilación.
**nota**  
Si realiza predicciones por lotes con su modelo después de crearlo, Canvas agrega columnas eliminadas a los resultados de sus predicciones. Sin embargo, Canvas no agrega las columnas eliminadas a sus predicciones por lotes para los modelos de series temporales.

1. (Opcional) Utilice las herramientas de visualización y análisis que proporciona Canvas para visualizar sus datos y determinar qué características podría querer incluir en su modelo. Para obtener información, consulte [Exploración y análisis de sus datos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html).

1. (Opcional) Utilice las transformaciones de datos para limpiar, transformar y preparar los datos para la creación de modelos. Para obtener más información, consulte [Preparación de los datos con transformaciones avanzadas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html). Para ver y eliminar las transformaciones, seleccione **Receta de modelo** para abrir el panel lateral **Receta de modelo**.

1. (Opcional) Para ver características adicionales, como obtener una vista previa de la precisión del modelo, validar el conjunto de datos y cambiar el tamaño de la muestra aleatoria que Canvas toma del conjunto de datos, consulte [Vista previa del modelo](canvas-preview-model.md).

1. Tras revisar los datos y realizar cualquier cambio en el conjunto de datos, elija **Compilación rápida** o **Compilación estándar** para empezar a crear el modelo. La siguiente captura de pantalla muestra la página de **Compilación** y las opciones de **compilación rápida** y **compilación estándar**.  
![\[La página de Compilación de un modelo de 2 categorías que muestra las opciones de construcción rápida y construcción estándar.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/build-page-tabular-quick-standard-options.png)

Cuando el modelo comience la compilación, puede salir de la página. Cuando el modelo aparezca como **Listo** en la página **Mis modelos**, estará listo para el análisis y las predicciones.

## Creación de un modelo de predicción de imágenes personalizado
<a name="canvas-build-model-image"></a>

Los modelos de predicción de imágenes de etiqueta única admiten **compilaciones rápidas** y **compilaciones estándar**.

Para crear un modelo de predicción de imágenes de etiqueta única, utilice el siguiente procedimiento:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. Elija **Nuevo modelo**.

1. En el cuadro de diálogo **Crear nuevo modelo** haga lo siguiente:

   1. Escriba un nombre en el campo **Nombre de modelo**.

   1. Seleccione el tipo de problema de **Análisis de imágenes**.

   1. Seleccione **Crear**.

1. En **Seleccionar conjunto de datos**, seleccione su conjunto de datos de la lista de conjuntos de datos. Si aún no ha importado sus datos, elija **Importar** para seguir el flujo de trabajo de importación de datos.

1. Cuando tenga todo listo para comenzar a crear el modelo, elija **Seleccionar conjunto de datos**.

1. En la pestaña **Crear**, verá la **Distribución de etiquetas** de las imágenes de su conjunto de datos. El **Tipo de modelo** está configurado como **Predicción de imágenes de etiqueta única**.

1. En esta página, puede obtener una vista previa de las imágenes y editar el conjunto de datos. Si tiene alguna imagen sin etiquetar, seleccione **Editar conjunto de datos** y [Asignación de etiquetas a las imágenes sin etiquetar](canvas-edit-image.md#canvas-edit-image-assign). También puede realizar otras tareas al mismo tiempo que realiza la acción [Edición de un conjunto de datos de imágenes](canvas-edit-image.md), como cambiar el nombre de las etiquetas y agregar imágenes al conjunto de datos.

1. Tras revisar los datos y realizar cualquier cambio en el conjunto de datos, elija **Compilación rápida** o **Compilación estándar** para empezar a crear el modelo. La siguiente captura de pantalla muestra la página de **Compilación** de un modelo de predicción de imágenes que está listo para ser creado.  
![\[La página de Compilación de un modelo de predicción de imágenes de etiqueta única.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/build-page-image-model.png)

Cuando el modelo comience la compilación, puede salir de la página. Cuando el modelo aparezca como **Listo** en la página **Mis modelos**, estará listo para el análisis y las predicciones.

## Creación de un modelo de predicción de texto personalizado
<a name="canvas-build-model-text"></a>

Los modelos de predicción de texto multicategoría admiten **compilaciones rápidas** y **compilaciones estándar**.

Para crear un modelo de predicción de texto, utilice el siguiente procedimiento:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. Elija **Nuevo modelo**.

1. En el cuadro de diálogo **Crear nuevo modelo** haga lo siguiente:

   1. Escriba un nombre en el campo **Nombre de modelo**.

   1. Seleccione el tipo de problema de **Análisis de texto**.

   1. Seleccione **Crear**.

1. En **Seleccionar conjunto de datos**, seleccione su conjunto de datos de la lista de conjuntos de datos. Si aún no ha importado sus datos, elija **Importar** para seguir el flujo de trabajo de importación de datos.

1. Cuando tenga todo listo para comenzar a crear el modelo, elija **Seleccionar conjunto de datos**.

1. En la pestaña **Compilación**, en la lista desplegable de la **Columna de destino**, seleccione el objetivo del modelo que desee predecir. La columna de destino debe tener un tipo de datos binario o categórico y debe haber al menos 25 entradas (o filas de datos) para cada etiqueta única de la columna de destino.

1. Para el **Tipo de modelo**, confirme que el tipo de modelo se establece automáticamente en **Predicción de texto multicategoría**.

1. Para la columna de entrenamiento, seleccione la columna de origen de datos de texto. Esta debe ser la columna que contenga el texto que quiera analizar.

1. Elija **Compilación rápida** o **Compilación estándar** para empezar a construir el modelo. La siguiente captura de pantalla muestra la página de **Compilación** de un modelo de predicción de texto que está listo para ser creado.  
![\[La página de Compilación de un modelo de predicción de texto de varias categorías.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/build-page-text-model.png)

Cuando el modelo comience la compilación, puede salir de la página. Cuando el modelo aparezca como **Listo** en la página **Mis modelos**, estará listo para el análisis y las predicciones.

## Compilación de un modelo de previsión de series temporales
<a name="canvas-build-model-forecasting"></a>

Los modelos de previsión de series temporales admiten **Compilaciones rápidas** y **Compilaciones estándar**.

Siga este procedimiento para realizar una previsión de series temporales.

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. Elija **Nuevo modelo**.

1. En el cuadro de diálogo **Crear nuevo modelo** haga lo siguiente:

   1. Escriba un nombre en el campo **Nombre de modelo**.

   1. Seleccione el tipo de problema **Previsión de series temporales**.

   1. Seleccione **Crear**.

1. En **Seleccionar conjunto de datos**, seleccione su conjunto de datos de la lista de conjuntos de datos. Si aún no ha importado sus datos, elija **Importar** para seguir el flujo de trabajo de importación de datos.

1. Cuando tenga todo listo para comenzar a crear el modelo, elija **Seleccionar conjunto de datos**.

1. En la pestaña **Compilación**, en la lista desplegable de la **Columna de destino**, seleccione el objetivo del modelo que desee predecir.

1. En la sección **Tipo de modelo**, elija **Configurar modelo**.

1. Se abre el cuadro **Configurar modelo**. En la sección **Configuración de series temporales**, rellene los siguientes campos:

   1. En **Columna de ID de elemento**, elija una columna del conjunto de datos que identifique de forma única cada fila. La columna debe tener un tipo de datos de `Text`.

   1. (Opcional) En **Columna de grupo**, elija una o más columnas categóricas (con un tipo de datos de `Text`) que desee usar para agrupar valores de previsión.

   1. En **Columna de marca de tiempo**, seleccione la columna con marcas de tiempo (en formato de fecha y hora). Para obtener más información sobre los formatos de fecha y hora aceptados, consulte [Pronósticos de series temporales en Amazon SageMaker Canvas](canvas-time-series.md).

   1. En el campo **Duración de la previsión**, introduzca el período de tiempo para el que desea prever valores. Canvas detecta automáticamente las unidades de tiempo de los datos.

   1. (Opcional) Active el conmutador **Usar calendario de días festivos** para seleccionar un calendario de días festivos de varios países y aumentar la precisión de sus previsiones con datos de días festivos.

1. En el cuadro **Configurar modelo** hay ajustes adicionales en la sección **Avanzado**. Para obtener más información sobre cada uno de los ajustes avanzados, consulte [Configuraciones avanzadas de compilación de modelos](canvas-advanced-settings.md). Para realizar la configuración **Avanzada**, haga lo siguiente:

   1. En el menú desplegable **Métrica objetiva**, seleccione la métrica que desee que Canvas optimice al crear su modelo. Si no selecciona una métrica, Canvas elegirá una por defecto. Para ver descripciones de métricas disponibles, consulte [Referencia de métricas](canvas-metrics.md).

   1. Si está ejecutando una compilación estándar, verá la sección **Algoritmos**. Esta sección sirve para seleccionar los algoritmos de previsión de series temporales que desea utilizar para compilar el modelo. Puede seleccionar un subconjunto de los algoritmos disponibles o puede seleccionarlos todos si no está seguro de cuáles probar.

      Al ejecutar la compilación estándar, Canvas crea un modelo de conjunto que combina todos los algoritmos para optimizar la exactitud de la predicción.
**nota**  
Si está ejecutando una compilación rápida, Canvas utiliza un único algoritmo de aprendizaje basado en árboles para entrenar el modelo y no tiene que seleccionar ningún algoritmo.

   1. En **Cuantiles de previsión**, introduzca hasta 5 valores de cuantiles separados por comas para especificar los límites superior e inferior de la previsión.

   1. Después de realizar la configuración **Avanzada**, seleccione **Guardar**.

1. Seleccione o deseleccione las columnas de sus datos para incluirlas o eliminarlas de la compilación.
**nota**  
Si realiza predicciones por lotes con su modelo después de crearlo, Canvas agrega columnas eliminadas a los resultados de sus predicciones. Sin embargo, Canvas no agrega las columnas eliminadas a sus predicciones por lotes para los modelos de series temporales.

1. (Opcional) Utilice las herramientas de visualización y análisis que proporciona Canvas para visualizar sus datos y determinar qué características podría querer incluir en su modelo. Para obtener información, consulte [Exploración y análisis de sus datos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html).

1. (Opcional) Utilice las transformaciones de datos para limpiar, transformar y preparar los datos para la creación de modelos. Para obtener más información, consulte [Preparación de los datos con transformaciones avanzadas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html). Para ver y eliminar las transformaciones, seleccione **Receta de modelo** para abrir el panel lateral **Receta de modelo**.

1. (Opcional) Para ver características adicionales, como obtener una vista previa de la precisión del modelo, validar el conjunto de datos y cambiar el tamaño de la muestra aleatoria que Canvas toma del conjunto de datos, consulte [Vista previa del modelo](canvas-preview-model.md).

1. Tras revisar los datos y realizar cualquier cambio en el conjunto de datos, elija **Compilación rápida** o **Compilación estándar** para empezar a crear el modelo.

Cuando el modelo comience la compilación, puede salir de la página. Cuando el modelo aparezca como **Listo** en la página **Mis modelos**, estará listo para el análisis y las predicciones.

# Configuraciones avanzadas de compilación de modelos
<a name="canvas-advanced-settings"></a>

Amazon SageMaker Canvas admite varios ajustes avanzados que puede configurar al crear un modelo. En la siguiente página se enumeran todos los ajustes avanzados junto con información adicional sobre sus opciones y configuraciones.

**nota**  
Actualmente, las siguientes configuraciones avanzadas solo se admiten para tipos de modelos de previsión numéricos, categóricos y de series temporales.

## Configuración avanzada de modelos de predicción numéricos y categóricos
<a name="canvas-advanced-settings-predictive"></a>

Canvas admite la siguiente configuración avanzada para tipos de modelos de predicción numéricos y categóricos.

### Métrica objetiva
<a name="canvas-advanced-settings-predictive-obj-metric"></a>

La métrica objetiva es la métrica que desea que Canvas optimice al compilar el modelo. Si no selecciona una métrica, Canvas elegirá una por defecto. Para ver descripciones de métricas disponibles, consulte [Referencia de métricas](canvas-metrics.md).

### Método de entrenamiento
<a name="canvas-advanced-settings-predictive-method"></a>

Canvas puede seleccionar automáticamente el método de entrenamiento en función del tamaño del conjunto de datos, aunque también puede seleccionarlo usted manualmente. Puede elegir entre los siguientes métodos de entrenamiento:
+ **Ensamblaje**: la SageMaker IA aprovecha la AutoGluon biblioteca para entrenar varios modelos básicos. Para encontrar la mejor combinación para su conjunto de datos, el modo de ensamblaje ejecuta 5-10 pruebas con diferentes ajustes de modelo y metaparámetro. A continuación, estos modelos se combinan mediante un método de conjuntos apilados para crear un modelo predictivo óptimo. Para obtener una lista de los algoritmos que admite el modo de conjunto para datos tabulares, consulte la siguiente sección de [Algoritmos](#canvas-advanced-settings-predictive-algos).
+ **Optimización de hiperparámetros (HPO)**: la SageMaker IA encuentra la mejor versión de un modelo ajustando los hiperparámetros mediante la optimización bayesiana o la optimización de multifidelidad mientras ejecuta tareas de entrenamiento en el conjunto de datos. El modo HPO selecciona los algoritmos que son más relevantes para el conjunto de datos y selecciona el mejor rango de hiperparámetros para ajustar los modelos. Para ajustar sus modelos, el modo HPO ejecuta hasta 100 pruebas (predeterminado) para encontrar la configuración de hiperparámetros óptima dentro del rango seleccionado. Si el tamaño del conjunto de datos es inferior a 100 MB, la IA utiliza la optimización bayesiana. SageMaker SageMaker La IA elige la optimización de fidelidad múltiple si el conjunto de datos tiene más de 100 MB.

  Para obtener una lista de los algoritmos que admite el modo HPO para datos tabulares, consulte la siguiente sección de [Algoritmos](#canvas-advanced-settings-predictive-algos).
+ **Automático**: la SageMaker IA elige automáticamente el modo de ensamblaje o el modo HPO en función del tamaño del conjunto de datos. Si su conjunto de datos es superior a 100 MB, SageMaker AI elige el modo HPO. De lo contrario, elige el modo de ensamblaje.

### Algoritmos
<a name="canvas-advanced-settings-predictive-algos"></a>

En el modo **Ensamblaje**, Canvas admite los siguientes algoritmos de machine learning:
+ [LightGBM](https://docs.aws.amazon.com/sagemaker/latest/dg/lightgbm.html): un marco optimizado que utiliza algoritmos basados en árboles con potenciación por gradiente. Este algoritmo utiliza árboles que crecen en amplitud, en lugar de en profundidad, y está altamente optimizado para la velocidad.
+ [CatBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/catboost.html)— Un marco que utiliza algoritmos basados en árboles con aumento de gradiente. Optimizado para la gestión de variables categóricas.
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)— Un marco que utiliza algoritmos basados en árboles con un aumento de gradiente que aumenta en profundidad, en lugar de en amplitud.
+ [Random Forest](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html): algoritmo basado en árboles que utiliza varios árboles de decisión en submuestras aleatorias de los datos y las reemplaza. Los árboles se dividen en nodos óptimos en cada nivel. Las decisiones de cada árbol se promedian para evitar el sobreajuste y mejorar las predicciones.
+ [Extra Trees](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html#sklearn.ensemble.ExtraTreesClassifier): un algoritmo basado en árboles que utiliza varios árboles de decisión en todo el conjunto de datos. Los árboles se dividen aleatoriamente en cada nivel. Las decisiones de cada árbol se promedian para evitar el sobreajuste y mejorar las predicciones. Extra Trees añade un grado de asignación al azar en comparación con el algoritmo Random Forest.
+ [Linear Models](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model): un marco que utiliza una ecuación lineal para modelar la relación entre dos variables en los datos observados.
+ Neural network torch: un modelo de red neuronal que se implementa con [Pytorch](https://pytorch.org/).
+ Neural network fast.ai: un modelo de red neuronal que se implementa con [fast.ai](https://www.fast.ai/).

En **Modo HPO**, Canvas admite los siguientes algoritmos de machine learning:
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)— Un algoritmo de aprendizaje supervisado que intenta predecir con precisión una variable objetivo mediante la combinación de un conjunto de estimaciones de un conjunto de modelos más simples y más débiles.
+ Algoritmo de aprendizaje profundo: un perceptrón multicapa (MLP) y una red neuronal artificial de retroalimentación. Este algoritmo puede procesar datos que no se pueden separar linealmente.

### División de datos
<a name="canvas-advanced-settings-predictive-split"></a>

Tiene la opción de especificar cómo quiere dividir el conjunto de datos entre el conjunto de entrenamiento (la parte del conjunto de datos que se utiliza para compilar el modelo) y el conjunto de validación (la parte del conjunto de datos que se utiliza para verificar la exactitud del modelo). Por ejemplo, una proporción de división común es 80 % de entrenamiento y 20 % de validación, donde el 80 % de los datos se utilizan para compilar el modelo y el 20 % se reserva para medir el rendimiento del modelo. Si no especifica una proporción personalizada, Canvas divide el conjunto de datos automáticamente.

### Candidatos máximos
<a name="canvas-advanced-settings-predictive-candidates"></a>

**nota**  
Esta característica solo está disponible en el modo de entrenamiento HPO.

Puede especificar el número máximo de candidatos del modelo que Canvas genera al compilar el modelo. Recomendamos que utilice el número predeterminado de candidatos, que es 100, para crear los modelos más precisos. El número máximo que puede especificar es 250. La reducción del número de candidatos del modelo puede afectar a la exactitud del modelo.

### Tiempo de ejecución máximo de trabajos
<a name="canvas-advanced-settings-predictive-runtime"></a>

Puede especificar el tiempo de ejecución máximo de los trabajos o la cantidad máxima de tiempo que Canvas dedica a compilar el modelo. Una vez transcurrido el límite de tiempo, Canvas deja de compilar y selecciona el mejor candidato del modelo.

El tiempo máximo que puede especificar es de 720 horas. Le recomendamos encarecidamente que mantenga el tiempo máximo de ejecución del trabajo en más de 30 minutos para garantizar que Canvas tenga tiempo suficiente para generar candidatos del modelo y terminar de compilar el modelo.

## Configuración avanzada del modelo de previsión de series temporales
<a name="canvas-advanced-settings-time-series"></a>

Para los modelos de previsión de series temporales, Canvas admite la métrica Objetivo, que se detalla en la sección anterior.

Los modelos de previsión de series temporales también admiten la siguiente configuración avanzada:

### Selección de algoritmos
<a name="canvas-advanced-settings-time-series-algos"></a>

Cuando compila un modelo de previsión de series temporales, Canvas utiliza un *ensamblaje* (o una combinación) de algoritmos estadísticos y de machine learning para ofrecer previsiones de series temporales de gran precisión. De forma predeterminada, Canvas selecciona la combinación óptima de todos los algoritmos disponibles en función de la serie temporal del conjunto de datos. Sin embargo, tiene la opción de especificar uno o más algoritmos para usarlos en el modelo de previsión. En este caso, Canvas determina la mejor combinación utilizando solo los algoritmos seleccionados. Si no está seguro de qué algoritmo seleccionar para entrenar el modelo, le recomendamos que elija todos los algoritmos disponibles.

**nota**  
La selección de algoritmos solo se admite en compilaciones estándar. Si no seleccionas ningún algoritmo en la configuración avanzada, de forma predeterminada, la SageMaker IA ejecuta una compilación rápida y entrena a los candidatos del modelo mediante un único algoritmo de aprendizaje basado en árboles. Para obtener más información acerca de la diferencia entre compilaciones rápidas y compilaciones estándar, consulte [Cómo funcionan los modelos personalizados](canvas-build-model.md).

Canvas admite los siguientes algoritmos de previsión de series temporales:
+ [ Media móvil integrada autorregresiva (ARIMA)](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average): modelo estocástico simple de series temporales que utiliza el análisis estadístico para interpretar los datos y hacer predicciones futuras. Este algoritmo resulta útil para conjuntos de datos simples con menos de 100 series temporales.
+ [ Red neuronal convolucional: regresión cuantil (CNN-QR)](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-algo-cnnqr.html): algoritmo de aprendizaje supervisado patentado que entrena un modelo global a partir de una gran colección de series temporales y utiliza un descodificador de cuantiles para realizar predicciones. CNN-QR funciona mejor con conjuntos de datos grandes que contienen cientos de series temporales.
+ [DeepAr\$1](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-recipe-deeparplus.html): un algoritmo de aprendizaje supervisado patentado para pronosticar series temporales escalares mediante redes neuronales recurrentes (RNNs) para entrenar un único modelo de forma conjunta en todas las series temporales. DeepAR\$1 funciona mejor con conjuntos de datos grandes que contienen cientos de series temporales de características.
+ [Series temporales no paramétricas (NPTS)](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-recipe-npts.html): método de previsión escalable de línea base probabilística que predice la distribución futura de valores de una serie temporal determinada mediante el muestreo de observaciones anteriores. NPTS resulta útil cuando se trabaja con series temporales dispersas o intermitentes (por ejemplo, previsión de la demanda de elementos individuales en los que la serie temporal tiene muchos ceros o recuentos bajos).
+ [Suavizado exponencial (ETS)](https://en.wikipedia.org/wiki/Exponential_smoothing): método de previsión que produce previsiones que son medias ponderadas de observaciones anteriores, en las que disminuyen exponencialmente las ponderaciones de observaciones más antiguas. El algoritmo es útil para conjuntos de datos simples con menos de 100 series temporales y conjuntos de datos con patrones de estacionalidad.
+ [Prophet](https://facebook.github.io/prophet/): modelo de regresión aditiva que funciona mejor con series temporales que tienen fuertes efectos estacionales y varias temporadas de datos históricos. El algoritmo es útil para conjuntos de datos con tendencias de crecimiento no lineales que se acercan a un límite.

### Cuantiles de previsión
<a name="canvas-advanced-settings-time-series-quantiles"></a>

Para la previsión de series temporales, la SageMaker IA entrena a 6 candidatos a modelos con las series temporales objetivo. A continuación, la SageMaker IA combina estos modelos mediante un método de apilamiento por conjuntos para crear un modelo de pronóstico óptimo para una métrica objetivo determinada. Cada modelo de previsión genera una previsión probabilística con produciendo previsiones en cuantiles entre P1 y P99. Estos cuantiles se utilizan para contabilizar la incertidumbre de las previsiones. De forma predeterminada, se generarán previsiones para los valores 0,1 (`p10`), 0,5 (`p50`) y 0,9 (`p90`). Puede elegir especificar hasta cinco cuantiles propios, desde 0,01 (`p1`) hasta 0,99 (`p99`), con incrementos de 0,01 o más.

# Edición de un conjunto de datos de imágenes
<a name="canvas-edit-image"></a>

En Amazon SageMaker Canvas, puede editar sus conjuntos de datos de imágenes y revisar las etiquetas antes de crear un modelo. Es posible que desee realizar tareas como asignar etiquetas a imágenes sin etiquetar o agregar más imágenes al conjunto de datos. Todas estas tareas se pueden realizar en la aplicación de Canvas, lo que le proporciona un solo lugar para modificar su conjunto de datos y crear un modelo.

**nota**  
Antes de crear un modelo, debe asignar etiquetas a todas las imágenes del conjunto de datos. Además, debe tener al menos 25 imágenes por etiqueta y un mínimo de dos etiquetas. Para obtener más información sobre la asignación de etiquetas, consulte la sección de esta página denominada **Asignación de etiquetas a imágenes sin etiquetar**. Si no puede determinar una etiqueta para una imagen, debe eliminarla del conjunto de datos. Para obtener más información acerca de cómo eliminar imágenes, consulte la sección [Agregar o eliminar imágenes del conjunto de datos](#canvas-edit-image-add-delete) en esta página.

Para empezar a editar su conjunto de datos de imágenes, debe estar en la pestaña **Compilación** mientras crea su modelo de predicción de imágenes de etiqueta única.

Se abre una nueva página en la que se muestran las imágenes del conjunto de datos junto con sus etiquetas. En esta página se clasifica su conjunto de datos de imágenes en **Imágenes totales**, **Imágenes etiquetadas** e **Imágenes sin etiquetar**. También puede consultar la **Guía de preparación de conjuntos de datos** para conocer las prácticas recomendadas sobre cómo crear un modelo de predicción de imágenes más preciso.

En la siguiente captura de pantalla se muestra la página para editar el conjunto de datos de imágenes.

![\[Captura de pantalla de la página de administración del conjunto de datos de imágenes en Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/dataset-management-page.png)


Desde esta página puede hacer lo siguiente:

## Ver las propiedades de cada imagen (etiqueta, tamaño, dimensiones)
<a name="canvas-edit-image-view"></a>

Para ver una imagen individual, puede buscarla por nombre de archivo en la barra de búsqueda. A continuación, seleccione la imagen para abrir la vista completa. Puede ver las propiedades de la imagen y reasignar la etiqueta de la imagen. Seleccione **Guardar** cuando termine de ver la imagen.

## Agregar, eliminar o cambiar el nombre de etiquetas en el conjunto de datos
<a name="canvas-edit-image-labels"></a>

Canvas muestra las etiquetas de su conjunto de datos en el panel de navegación izquierdo. Puede agregar nuevas etiquetas al conjunto de datos especificando una etiqueta en el campo de texto **Agregar etiqueta**.

Para cambiar el nombre de una etiqueta de su conjunto de datos o eliminarla, elija el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) situado junto a la etiqueta y seleccione **Cambiar nombre** o **Eliminar**. Si cambia el nombre de la etiqueta, puede introducir el nombre de la nueva etiqueta y elegir **Confirmar**. Si elimina la etiqueta, se eliminará de todas las imágenes del conjunto de datos que tengan esa etiqueta. Las imágenes que tengan esa etiqueta se quedarán sin etiquetar.

## Asignación de etiquetas a las imágenes sin etiquetar
<a name="canvas-edit-image-assign"></a>

Para ver las imágenes sin etiquetar de su conjunto de datos, elija **Sin etiquetar** en el panel de navegación izquierdo. Para cada imagen, selecciónela y abra la etiqueta titulada **Sin etiquetar** y, en la lista desplegable, seleccione una etiqueta para asignarla a la imagen. También puede seleccionar más de una imagen y realizar esta acción, y a todas las imágenes seleccionadas se les asignará la etiqueta que seleccione.

## Reasignación de etiquetas a las imágenes
<a name="canvas-edit-image-reassign"></a>

Para reasignar etiquetas a las imágenes, seleccione la imagen (o varias imágenes a la vez) y abra el menú desplegable con la etiqueta actual. Seleccione la etiqueta que quiera y la imagen o imágenes se actualizarán con la nueva etiqueta.

## Ordenación de sus imágenes por etiqueta
<a name="canvas-edit-image-sort"></a>

Puede ver todas las imágenes de una etiqueta determinada seleccionando la etiqueta en el panel de navegación izquierdo.

## Agregar o eliminar imágenes del conjunto de datos
<a name="canvas-edit-image-add-delete"></a>

Puede agregar más imágenes a su conjunto de datos seleccionando **Agregar imágenes** en el panel de navegación superior. Se le guiará por el flujo de trabajo para importar más imágenes. Las imágenes que importe se agregan a su conjunto de datos existente.

Para eliminar imágenes de su conjunto de datos, selecciónelas y, a continuación, elija **Eliminar** en el panel de navegación superior.

**nota**  
Después de realizar cualquier cambio en el conjunto de datos, seleccione **Guardar conjunto de datos** para asegurarse de no perder los cambios.

# Exploración y análisis de datos
<a name="canvas-explore-data"></a>

**nota**  
Solo puede usar las visualizaciones y los análisis de SageMaker Canvas para modelos basados en conjuntos de datos tabulares. También se excluyen los modelos de predicción de texto de varias categorías.

En Amazon SageMaker Canvas, puede explorar las variables de su conjunto de datos mediante visualizaciones y análisis, y crear visualizaciones y análisis en la aplicación. Puede utilizar estas exploraciones para descubrir las relaciones entre las variables antes de crear el modelo.

Para obtener más información sobre las técnicas de visualización en Canvas, consulte [Exploración de los datos con técnicas de visualización](canvas-explore-data-visualization.md).

Para obtener más información sobre los análisis en Canvas, consulte [Exploración de los datos mediante el análisis](canvas-explore-data-analytics.md).

# Exploración de los datos con técnicas de visualización
<a name="canvas-explore-data-visualization"></a>

**nota**  
Solo puede usar las visualizaciones de SageMaker Canvas para modelos basados en conjuntos de datos tabulares. También se excluyen los modelos de predicción de texto de varias categorías.

Con Amazon SageMaker Canvas, puede explorar y visualizar sus datos para obtener información avanzada sobre ellos antes de crear sus modelos de aprendizaje automático. Puede realizar la visualización mediante gráficos de dispersión, gráficos de barras y diagramas de cajas, que pueden ayudarle a comprender los datos y a descubrir las relaciones entre las características que podrían afectar a la precisión del modelo.

En la pestaña **Crear** de la aplicación SageMaker Canvas, elija el **visualizador de datos** para empezar a crear sus visualizaciones.

Puede cambiar el tamaño de la muestra de visualización para ajustar el tamaño de la muestra aleatoria tomada del conjunto de datos. Un tamaño de muestra demasiado grande puede afectar al rendimiento de las visualizaciones de datos, por lo que le recomendamos que elija un tamaño de muestra adecuado. Para cambiar el tamaño de la muestra, use el procedimiento siguiente.

1. Elija una **Muestra de visualización**.

1. Utilice el control deslizante para seleccionar el tamaño de muestra que desee.

1. Seleccione **Actualizar** para confirmar el cambio en el tamaño de la muestra.

**nota**  
Algunas técnicas de visualización requieren columnas de un tipo de datos específico. Por ejemplo, solo puede usar columnas numéricas para los ejes x e y de los gráficos de dispersión.

## Gráfico de dispersión
<a name="canvas-explore-data-scatterplot"></a>

Para crear un gráfico de dispersión con su conjunto de datos, elija **Gráfico de dispersión** en el panel de **Visualización**. Elija las características que quiera trazar en los ejes x e y en la sección **Columnas**. Puede arrastrar y soltar las columnas sobre los ejes o, una vez que se haya colocado un eje, puede elegir una columna de la lista de columnas compatibles.

Puede utilizar **Colorear por** para colorear los puntos de datos del gráfico con una tercera característica. También puede usar **Agrupar por** para agrupar los datos en gráficos separados en función de una cuarta característica.

La siguiente imagen muestra un gráfico de dispersión que utiliza **Colorear por** y **Agrupar por**. En este ejemplo, la característica `MaritalStatus` colorea cada punto de datos y, al agruparlo por la característica `Department`, se obtiene un gráfico de dispersión para los puntos de datos de cada departamento.

![\[Captura de pantalla de un gráfico de dispersión en la vista del Visualizador de datos de la aplicación de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-eda-scatter-plot.png)


## Gráfico de barras
<a name="canvas-explore-data-barchart"></a>

Para crear un gráfico de barras con su conjunto de datos, elija **Gráfico de barras** en el panel de **Visualización**. Elija las características que quiera trazar en los ejes x e y en la sección **Columnas**. Puede arrastrar y soltar las columnas sobre los ejes o, una vez que se haya colocado un eje, puede elegir una columna de la lista de columnas compatibles.

Puede utilizar **Agrupar por** para agrupar el gráfico de barras por una tercera característica. Puede utilizar **Apilar por** para sombrear verticalmente cada barra en función de los valores únicos de una cuarta característica.

La siguiente imagen muestra un gráfico de barras que utiliza **Agrupar por** y **Apilar por**. En este ejemplo, el gráfico de barras está agrupado por la característica `MaritalStatus` y apilado por la característica `JobLevel`. Para cada `JobRole` del eje x, hay una barra independiente para las categorías únicas de la característica `MaritalStatus`, y cada barra se apila verticalmente según la característica `JobLevel`.

![\[Captura de pantalla de un gráfico de barras en la vista del Visualizador de datos de la aplicación de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-eda-bar-chart.png)


## Gráfico de cajas
<a name="canvas-explore-data-boxplot"></a>

Para crear un gráfico de cajas con su conjunto de datos, elija **Diagrama de cajas** en el panel de **Visualización**. Elija las características que quiera trazar en los ejes x e y en la sección **Columnas**. Puede arrastrar y soltar las columnas sobre los ejes o, una vez que se haya colocado un eje, puede elegir una columna de la lista de columnas compatibles.

Puede utilizar **Agrupar por** para agrupar los diagramas de caja por una tercera característica.

La siguiente imagen muestra un gráfico de cajas que utiliza **Agrupar por**. En este ejemplo, los ejes x e y muestran `JobLevel` y `JobSatisfaction`, respectivamente, y los diagramas de cajas de colores se agrupan por la característica `Department`.

![\[Captura de pantalla de un gráfico de cajas en la vista del Visualizador de datos de la aplicación de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-eda-box-plot.png)


# Exploración de los datos mediante el análisis
<a name="canvas-explore-data-analytics"></a>

**nota**  
Solo puede usar el análisis de SageMaker Canvas para modelos basados en conjuntos de datos tabulares. También se excluyen los modelos de predicción de texto de varias categorías.

Con los análisis de Amazon SageMaker Canvas, puede explorar su conjunto de datos y obtener información sobre todas las variables antes de crear un modelo. Puede determinar las relaciones entre las entidades de su conjunto de datos mediante matrices de correlación. Puede usar esta técnica para resumir el conjunto de datos en una matriz que muestre las correlaciones entre dos o más valores. Esto le ayuda a identificar y visualizar los patrones en un conjunto de datos determinado para un análisis de datos avanzado.

La matriz muestra la correlación entre cada característica como positiva, negativa o neutra. Es posible que desee incluir características que tengan una alta correlación entre sí al crear el modelo. Las características que tengan poca o ninguna correlación pueden ser irrelevantes para el modelo, y puede omitirlas al crear el modelo.

Para empezar a utilizar las matrices de correlación en SageMaker Canvas, consulte la siguiente sección.

## Creación de una matriz de correlación
<a name="canvas-explore-data-analytics-correlation-matrix"></a>

Puede crear una matriz de correlación cuando se prepare para construir un modelo en la pestaña **Construir** de la aplicación SageMaker Canvas.

Para obtener instrucciones acerca de cómo empezar a crear un modelo, consulte [Creación de un modelo](canvas-build-model-how-to.md).

Cuando haya empezado a preparar un modelo en la aplicación SageMaker Canvas, haga lo siguiente:

1. En la pestaña **Compilación**, elija el **Visualizador de datos**.

1. Seleccione **Análisis**.

1. Seleccione **Matriz de correlación**.

Debería ver una visualización similar a la siguiente captura de pantalla, que muestra hasta 15 columnas del conjunto de datos organizadas en una matriz de correlación.

![\[Captura de pantalla de una matriz de correlación en la aplicación de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-correlation-matrix-2.png)


Después de haber creado la matriz de correlación, puede personalizarla haciendo lo siguiente:

### 1. Elija sus columnas
<a name="canvas-explore-data-analytics-correlation-matrix-columns"></a>

Para **Columnas**, puede seleccionar las columnas que quiera incluir en la matriz. Puede comparar hasta 15 columnas de su conjunto de datos.

**nota**  
Puede usar tipos de columnas numéricas, categóricas o binarias para una matriz de correlación. La matriz de correlación no admite los tipos de columnas de datos de texto o fecha y hora.

Para agregar o eliminar columnas de la matriz de correlación, seleccione y deseleccione las columnas en el panel **Columnas**. También puede arrastrar y soltar columnas del panel directamente a la matriz. Si su conjunto de datos tiene muchas columnas, puede buscar las columnas que desee en la barra **Buscar columnas**.

Para filtrar las columnas por tipo de datos, seleccione la lista desplegable y elija **Todas**, **Numéricas** o **Categóricas**. Al seleccionar **Todas**, se muestran todas las columnas del conjunto de datos, mientras que los filtros **Numéricas** y **Categóricas** solo muestran las columnas numéricas o categóricas del conjunto de datos. Tenga en cuenta que los tipos de columnas binarias se incluyen en los filtros de numéricas o categóricas.

Para obtener la mejor información sobre los datos, incluya la columna de destino en la matriz de correlación. Al incluir la columna de destino en la matriz de correlación, aparece como la última característica de la matriz con un símbolo objetivo.

### 2. Elija el tipo de correlación
<a name="canvas-explore-data-analytics-correlation-matrix-cor-type"></a>

SageMaker Canvas admite diferentes *tipos de correlación* o métodos para calcular la correlación entre las columnas.

Para cambiar el tipo de correlación, utilice el filtro **Columnas** mencionado en la sección anterior para filtrar por el tipo de columna y las columnas que desee. Debería ver el **Tipo de correlación** en el panel lateral. Para las comparaciones numéricas, tiene la opción de seleccionar **Pearson** o **Spearman**. Para las comparaciones categóricas, el tipo de correlación se establece como **MI**. Para las comparaciones categóricas y mixtas, el tipo de correlación se establece como **Spearman & MI**.

Para las matrices que solo comparan columnas numéricas, el tipo de correlación es Pearson o Spearman. La medida de Pearson evalúa la relación lineal entre dos variables continuas. La medida de Spearman evalúa la relación monótona entre dos variables. Tanto para Pearson como para Spearman, la escala de correlación varía de -1 a 1; cada extremo de la escala indica una correlación perfecta (una relación 1:1 directa) y 0 indica que no hay correlación. Es posible que desee seleccionar Pearson si los datos tienen relaciones más lineales (como lo revela una [visualización de un gráfico de dispersión](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html#canvas-explore-data-scatterplot)). Si los datos no son lineales o contienen una mezcla de relaciones lineales y monótonas, puede que prefiera seleccionar Spearman.

Para las matrices que solo comparan columnas categóricas, el tipo de correlación se establece como Clasificación de información mutua (MI). El valor MI es una medida de la dependencia mutua entre dos variables aleatorias. La medida MI está en una escala de 0 a 1, donde 0 indica que no hay correlación y 1 indica una correlación perfecta.

Para las matrices que comparan una combinación de columnas numéricas y categóricas, el tipo de correlación **Spearman y MI** es una combinación de los tipos de correlación Spearman y MI. Para las correlaciones entre dos columnas numéricas, la matriz muestra el valor de Spearman. Para las correlaciones entre una columna numérica y una categórica o dos columnas categóricas, la matriz muestra el valor MI.

Por último, recuerde que la correlación no indica necesariamente causalidad. Un valor de correlación fuerte solo indica que existe una relación entre dos variables, pero es posible que las variables no tengan una relación causal. Revise cuidadosamente las columnas de interés para evitar sesgos al crear el modelo.

### 3. Filtre sus correlaciones
<a name="canvas-explore-data-analytics-correlation-matrix-filter"></a>

En el panel lateral, puede utilizar la característica **Filtrar correlaciones** para filtrar el rango de valores de correlación que desee incluir en la matriz. Por ejemplo, si desea filtrar entidades que solo tengan una correlación positiva o neutra, puede establecer el valor **mínimo** en 0 y el **máximo** en 1 (los valores válidos son -1 a 1).

Para las comparaciones de Spearman y Pearson, puede establecer el rango de **Correlaciones del filtro** entre -1 y 1, donde 0 significa que no hay correlación. -1 y 1 significan que las variables tienen una fuerte correlación negativa o positiva, respectivamente.

En las comparaciones de MI, el rango de correlación solo va de 0 a 1, donde 0 significa que no hay correlación y 1 significa que las variables tienen una correlación fuerte, ya sea positiva o negativa.

Cada característica tiene una correlación perfecta (1) consigo misma. Por lo tanto, puede observar que la fila superior de la matriz de correlación siempre es 1. Si desea excluir estos valores, puede usar el filtro para establecer el **máximo** en menos de 1.

Tenga en cuenta que si su matriz compara una combinación de columnas numéricas y categóricas y utiliza el tipo de correlación de **Spearman y MI**, las correlaciones *categóricas x numéricas* y *categóricas x categóricas* (que utilizan la medida MI) están en una escala de 0 a 1, mientras que las correlaciones *numéricas x numéricas* (que utilizan la medida de Spearman) están en una escala de -1 a 1. Revise sus correlaciones de interés detenidamente para asegurarse de que conoce el tipo de correlación que se utiliza para calcular cada valor.

### 4. Seleccione el método de visualización
<a name="canvas-explore-data-analytics-correlation-matrix-viz-method"></a>

En el panel lateral, puede usar **Visualizar por** para cambiar el método de visualización de la matriz. Elija el método de visualización **Numérico** para mostrar el valor de correlación (Pearson, Spearman o MI) o elija el método de visualización por **Tamaño** para visualizar la correlación con puntos de diferentes tamaños y colores. Si elige **Tamaño**, puede pasar el ratón sobre un punto específico de la matriz para ver el valor de correlación real.

### 5. Elija una paleta de colores
<a name="canvas-explore-data-analytics-correlation-matrix-color"></a>

En el panel lateral, puede utilizar la **Selección de colores** para cambiar la paleta de colores utilizada para la escala de correlación negativa a positiva en la matriz. Seleccione una de las paletas de colores alternativas para cambiar los colores utilizados en la matriz.

# Preparación de datos para la creación de modelos
<a name="canvas-prepare-data"></a>

**nota**  
Ahora puede realizar una preparación avanzada de datos en SageMaker Canvas con Data Wrangler, que le proporciona una interfaz de lenguaje natural y más de 300 transformaciones integradas. Para obtener más información, consulte [Preparación de datos](canvas-data-prep.md).

Es posible que su conjunto de datos de machine learning requiera la preparación de los datos antes de crear el modelo. Es posible que quiera limpiar los datos debido a varios problemas, entre los que se pueden incluir valores faltantes o valores atípicos, y realizar ingeniería de características para mejorar la precisión del modelo. Amazon SageMaker Canvas proporciona transformaciones de datos de aprendizaje automático con las que puede limpiar, transformar y preparar los datos para la creación de modelos. Puede utilizar estas transformaciones en sus conjuntos de datos sin necesidad de código. SageMaker Canvas agrega las transformaciones que usa a la **receta del modelo**, que es un registro de la preparación de datos realizada con los datos antes de crear el modelo. Cualquier transformación de datos que utilice solo modifica los datos de entrada para la creación del modelo y no modifica el origen de datos original.

La vista previa de su conjunto de datos muestra las primeras 100 filas del conjunto de datos. Si su conjunto de datos tiene más de 20 000 filas, Canvas toma una muestra aleatoria de 20 000 filas y obtiene una vista previa de las 100 primeras filas de esa muestra. Solo puede buscar y especificar valores de las filas previsualizadas, y la funcionalidad de filtrado solo filtra las filas previsualizadas y no todo el conjunto de datos.

Las siguientes transformaciones están disponibles en SageMaker Canvas para que pueda preparar los datos para la construcción.

**nota**  
Solo puede usar transformaciones avanzadas para modelos basados en conjuntos de datos tabulares. También se excluyen los modelos de predicción de texto de varias categorías.

## Exclusión de columnas
<a name="canvas-prepare-data-drop"></a>

Puede excluir una columna de la compilación del modelo colocándola en la pestaña **Construir** de la aplicación SageMaker Canvas. Deseleccione la columna que quiera excluir y no se incluirá al crear el modelo.

**nota**  
Si elimina columnas y, a continuación, hace [predicciones por lotes](canvas-make-predictions.md) con su modelo, SageMaker Canvas vuelve a agregar las columnas eliminadas al conjunto de datos de salida disponible para su descarga. Sin embargo, SageMaker Canvas no vuelve a agregar las columnas desplegadas para los modelos de series temporales.

## Filtrado de filas
<a name="canvas-prepare-data-filter"></a>

La funcionalidad de filtrado filtra las filas previsualizadas (las 100 primeras filas del conjunto de datos) según las condiciones que especifique. El filtrado de filas crea una vista previa temporal de los datos y no afecta a la creación del modelo. Puede filtrar para obtener una vista previa de las filas a las que les falten valores, contengan valores atípicos o cumplan condiciones personalizadas en la columna que elija.

### Filtrado de filas por valores faltantes
<a name="canvas-prepare-data-filter-missing"></a>

Los valores faltantes son frecuentes en los conjuntos de datos de machine learning. Si tiene filas con valores nulos o vacíos en determinadas columnas, puede que desee filtrarlas y obtener una vista previa de esas filas.

Para filtrar los valores faltantes de los datos de la vista previa, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Filtrar por filas** (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/filter-icon.png)).

1. Elija la **Columna** en la que desee comprobar si faltan valores.

1. Para la **Operación**, elija **Faltante**.

SageMaker Canvas filtra las filas que contienen valores faltantes en la **columna** que ha seleccionado y proporciona una vista previa de las filas filtradas.

![\[Captura de pantalla de la operación de filtrado por valores faltantes en la aplicación SageMaker Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-filter-missing.png)


### Filtrado de filas por valores atípicos
<a name="canvas-prepare-data-filter-outliers"></a>

Los valores atípicos, o valores poco frecuentes en la distribución y el rango de los datos, pueden afectar negativamente a la precisión del modelo y prolongar los tiempos de construcción. SageMaker Canvas le permite detectar y filtrar filas que contienen valores atípicos en columnas numéricas. Puede elegir definir los valores atípicos con desviaciones estándar o con un rango personalizado.

Para filtrar los valores atípicos en sus datos, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Filtrar por filas** (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/filter-icon.png)).

1. Elija la **Columna** en la que desee comprobar si hay valores atípicos.

1. Para la **Operación**, elija **Atípico**.

1. Establezca el **Rango de valores atípicos** en **Desviación estándar** o **Rango personalizado**.

1. Si elige **Desviación estándar**, especifique un valor de **SD** (desviación estándar) comprendido entre 1 y 3. Si elige **Rango personalizado**, seleccione **Percentil** o **Número** y, a continuación, especifique los valores **Mín** y **Máx**.

La opción **Desviación estándar** detecta y filtra los valores atípicos en las columnas numéricas mediante la media y la desviación estándar. Usted especifica el número de desviaciones estándar que debe separar a un valor de la media para que se considere un valor atípico. Por ejemplo, si especifica `3` para la **SD**, un valor debe estar a más de 3 desviaciones estándar de la media para que se considere un valor atípico.

La opción **Rango personalizado** detecta y filtra los valores atípicos en las columnas numéricas mediante valores mínimos y máximos. Utilice este método si conoce los valores límite que delimitan los valores atípicos. Puede establecer el **Tipo** de rango en **Percentil** o **Número**. Si elige **Percentil**, los valores **Mín** y **Máx** deben ser el mínimo y el máximo del rango de percentiles (0-100) que desee permitir. Si elige **Número**, los valores **Mín** y **Máx** deben ser los valores numéricos mínimos y máximos que desee filtrar en los datos.

![\[Captura de pantalla de la operación de filtrado por valores atípicos en la aplicación SageMaker Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-filter-outlier.png)


### Filtrado de las filas por valores personalizados
<a name="canvas-prepare-data-filter-custom"></a>

Puede filtrar por las filas con valores que cumplan condiciones personalizadas. Por ejemplo, es posible que desee obtener una vista previa de las filas que tengan un valor de precio superior a 100 antes de eliminarlas. Con esta funcionalidad, puede filtrar las filas que superen el umbral que haya establecido y obtener una vista previa de los datos filtrados.

Para utilizar la función de filtrado personalizado, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Filtrar por filas** (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/filter-icon.png)).

1. Elija la **Columna** en la que desee comprobar.

1. Seleccione el tipo de **Operación** que desee utilizar y, a continuación, especifique los valores de la condición seleccionada.

Para la **Operación**, puede elegir una de las siguientes opciones: Tenga en cuenta que las operaciones disponibles dependen del tipo de datos de la columna que elija. Por ejemplo, no puede crear una operación `is greater than` para una columna que contenga valores de texto.


| Operación | Tipos de datos admitidos | Tipo de característica admitida | Función | 
| --- | --- | --- | --- | 
|  Es igual que  |  Numérico, texto  | Binario, categórico |  Filtra las filas en las que el valor de la **Columna** sea igual a los valores que especifique.  | 
|  No es igual a  |  Numérico, texto  | Binario, categórico |  Filtra las filas en las que el valor de la **Columna** no sea igual a los valores que especifique.  | 
|  Es menor que  |  Numérico  | N/A |  Filtra las filas en las que el valor de la **Columna** es inferior al valor especificado.  | 
|  Es menor o igual que  |  Numérico  | N/A |  Filtra las filas en las que el valor de la **Columna** es inferior o igual que el valor especificado.  | 
|  Es mayor que  |  Numérico  | N/A |  Filtra las filas en las que el valor de la **Columna** es mayor que el valor especificado.  | 
|  Es mayor o igual que  |  Numérico  | N/A |  Filtra las filas en las que el valor de la **Columna** es mayor o igual que el valor especificado.  | 
|  Está entre  |  Numérico  | N/A |  Filtra las filas en las que el valor de la **Columna** es igual a o está entre los dos valores que especifique.  | 
|  Contiene  |  Texto  | Categórico |  Filtra las filas en las que el valor de la **Columna** contenga los valores que especifique.  | 
|  Empieza por  |  Texto  | Categórico |  Filtra las filas en las que el valor de la **Columna** comienza por los valores que especifique.  | 
|  Acaba con  |  Categórico  | Categórico |  Filtra las filas en las que el valor de la **Columna** termina con un valor que especifique.  | 

Después de configurar la operación de filtrado, SageMaker Canvas actualiza la vista previa del conjunto de datos para mostrarle los datos filtrados.

![\[Captura de pantalla de la operación de filtrado por valores personalizados en la aplicación SageMaker Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-filter-custom.png)


## Funciones y operadores
<a name="canvas-prepare-data-custom-formula"></a>

Puede utilizar funciones y operadores matemáticos para explorar y distribuir los datos. Puede utilizar las funciones compatibles con SageMaker Canvas o crear su propia fórmula con los datos existentes y crear una nueva columna con el resultado de la fórmula. Por ejemplo, puede agregar los valores correspondientes de dos columnas y guardar el resultado en una nueva columna.

Puede agrupar sentencias para crear funciones más complejas. A continuación se muestran algunos ejemplos de funciones anidadas que podría utilizar.
+ Para calcular el BMI, puede utilizar la función `weight / (height ^ 2)`.
+ Para clasificar las edades, puede utilizar la función `Case(age < 18, 'child', age < 65, 'adult', 'senior')`.

Puede especificar las funciones en la etapa de preparación de los datos antes de crear el modelo. Para usar una función, haga lo siguiente.
+ En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Ver todo** y, a continuación, elija **Fórmula personalizada** para abrir el panel de **fórmulas personalizadas**.
+ En el panel de **Fórmula personalizada**, puede elegir una **Fórmula** para agregarla a su **Receta de modelo**. Cada fórmula se aplica a todos los valores de las columnas que especifique. Para las fórmulas que aceptan dos o más columnas como argumentos, utilice columnas con tipos de datos coincidentes; de lo contrario, obtendrá un error o valores `null` en la nueva columna. 
+ Una vez que haya especificado una **fórmula**, añada un nombre de columna en el campo **Nombre de nueva columna**. SageMaker Canvas usa este nombre para la nueva columna que se crea.
+ (Opcional) Seleccione **Vista previa** para obtener una vista previa de la transformación.
+ Para agregar la función a la **Receta de modelo**, seleccione **Agregar**.

SageMaker Canvas guarda el resultado de su función en una nueva columna con el nombre que especificó en **Nombre de nueva columna**. Puede ver o eliminar funciones desde el panel **Receta de modelo**.

SageMaker Canvas admite los siguientes operadores para las funciones. Puede utilizar el formato de texto o el formato en línea para especificar la función.


| Operador | Description (Descripción) | Tipos de datos compatibles | Formato de texto | Formato en línea | 
| --- | --- | --- | --- | --- | 
|  Add (Suma)  |  Devuelve la suma de los valores  |  Numérico  | Add(sales1, sales2) | sales1 \$1 sales2 | 
|  Subtract (Sustracción)  |  Devuelve la diferencia entre los valores  |  Numérico  | Subtract(sales1, sales2) | sales1 ‐ sales2 | 
|  Multiply (Multiplicación)  |  Devuelve el producto de los valores  |  Numérico  | Multiply(sales1, sales2) | sales1 \$1 sales2 | 
|  Divide (División)  |  Devuelve el cociente de los valores  |  Numérico  | Divide(sales1, sales2) | sales1 / sales2 | 
|  Mod (Módulo)  |  Devuelve el resultado del operador módulo (el resto después de dividir los dos valores)  |  Numérico  | Mod(sales1, sales2) | sales1 % sales2 | 
|  Abs (Absoluto)  | Devuelve el valor absoluto del valor |  Numérico  | Abs(sales1) | N/A | 
|  Negate  | Devuelve el negativo del valor |  Numérico  | Negate(c1) | ‐c1 | 
|  Exp (Exponente)  |  Devuelve e (número de Euler) elevado a la potencia del valor  |  Numérico  | Exp(sales1) | N/A | 
|  Registro  |  Devuelve el logaritmo (de base 10) del valor   |  Numérico  | Log(sales1) | N/A | 
|  Ln  |  Devuelve el logaritmo natural (de base e) del valor   |  Numérico  | Ln(sales1) | N/A | 
|  Pow (Potencia)  |  Devuelve el valor elevado a una potencia  |  Numérico  | Pow(sales1, 2) | sales1 ^ 2 | 
|  If (Condicional)  |  Devuelve una etiqueta de verdadero o falso en función de la condición que especifique  |  Booleano, numérico, texto  | If(sales1>7000, 'truelabel, 'falselabel') | N/A | 
|  Or (Disyunción)  |  Devuelve un valor booleano que indica si uno de los valores o las condiciones especificados es verdadero o no  |  Booleano  | Or(fullprice, discount) | fullprice \$1\$1 discount | 
|  And (Conjunción)  |  Devuelve un valor booleano que indica si dos de los valores o las condiciones especificados son verdaderos o no  |  Booleano  | And(sales1,sales2) | sales1 && sales2 | 
|  No (Negación)  |  Devuelve un valor booleano opuesto al valor o las condiciones especificados  |  Booleano  | Not(sales1) | \$1sales1 | 
|  Case (Caso condicional)  |  Devuelve un valor booleano basado en sentencias condicionales (devuelve c1 si cond1 es verdadero, devuelve c2 si cond2 es verdadero, de lo contrario devuelve c3)  |  Booleano, numérico, texto  | Case(cond1, c1, cond2, c2, c3) | N/A | 
|  Igualdad  |  Devuelve un valor booleano que indica si dos valores son iguales  |  Booleano, numérico, texto  | N/A | c1 = c2c1 == c2 | 
|  Desigualdad  |  Devuelve un valor booleano que indica si dos valores no son iguales  |  Booleano, numérico, texto  | N/A | c1 \$1= c2 | 
|  Menor que  |  Devuelve un valor booleano que indica si c1 es menor que c2  |  Booleano, numérico, texto  | N/A | c1 < c2 | 
|  Mayor que  |  Devuelve un valor booleano que indica si c1 es mayor que c2  |  Booleano, numérico, texto  | N/A | c1 > c2 | 
|  Menor que o igual a  |  Devuelve un valor booleano que indica si c1 es menor o igual que c2  |  Booleano, numérico, texto  | N/A | c1 <= c2 | 
|  Mayor que o igual a  |  Devuelve un valor booleano que indica si c1 es mayor o igual que c2  |  Booleano, numérico, texto  | N/A | c1 >= c2 | 

SageMaker Canvas también admite operadores agregados, que pueden realizar operaciones como calcular la suma de todos los valores o encontrar el valor mínimo en una columna. Puede utilizar operadores de agregación en combinación con operadores estándar en sus funciones. Por ejemplo, para calcular la diferencia de valores con respecto a la media, puede utilizar la función`Abs(height – avg(height))`. SageMaker Canvas admite los siguientes operadores agregados.


| Operador de agregación | Description (Descripción) | Formato | Ejemplo | 
| --- | --- | --- | --- | 
|  sum  |  Devuelve la suma de todos los valores de una columna  | sum | sum(c1) | 
|  minimum  |  Devuelve el valor mínimo de una columna  | min | min(c2) | 
|  maximum  |  Devuelve el valor máximo de una columna  | max | max(c3) | 
|  average  |  Devuelve el valor medio de una columna  | avg | avg(c4) | 
|  std  | Devuelve la desviación estándar muestral de una columna | std | std(c1) | 
|  stddev  | Devuelve la desviación estándar de los valores de una columna | stddev | stddev(c1) | 
|  variance  | Devuelve la varianza no sesgada de los valores de una columna | variance | variance(c1) | 
|  approx\$1count\$1distinct  | Devuelve el número aproximado de elementos distintos de una columna | approx\$1count\$1distinct | approx\$1count\$1distinct(c1) | 
|  count  | Devuelve el número de elementos de una columna | count | count(c1) | 
|  first  |  Devuelve el valor medio de una columna  | first | first(c1) | 
|  last  |  Devuelve el valor medio de una columna  | last | last(c1) | 
|  stddev\$1pop  | Devuelve la desviación estándar poblacional de una columna | stddev\$1pop | stddev\$1pop(c1) | 
|  variance\$1pop  |  Devuelve la varianza poblacional de los valores de una columna  | variance\$1pop | variance\$1pop(c1) | 

## Administrar filas
<a name="canvas-prepare-data-manage"></a>

Con la transformación Administrar filas, puede ordenar, mezclar aleatoriamente y eliminar filas de datos del conjunto de datos.

### Ordenar filas
<a name="canvas-prepare-data-manage-sort"></a>

Para ordenar las filas de un conjunto de datos por una columna determinada, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Administrar filas** y, a continuación, elija **Ordenar filas**.

1. En **Ordenar columna**, elija la columna por la que desee ordenar.

1. En **Orden de clasificación**, seleccione **Ascendente** o **Descendente**.

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

### Mezclar filas
<a name="canvas-prepare-data-manage-shuffle"></a>

Para mezclar aleatoriamente las filas de un conjunto de datos, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Administrar filas** y, a continuación, elija **Organizar filas**.

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

### Eliminar filas duplicadas
<a name="canvas-prepare-data-manage-drop-duplicate"></a>

Para eliminar las filas duplicadas de un conjunto de datos, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, selecciona **Administrar filas** y, a continuación, selecciona Eliminar **filas duplicadas**.

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

### Eliminar filas por valores faltantes
<a name="canvas-prepare-data-remove-missing"></a>

Los valores faltantes son frecuentes en los conjuntos de datos de machine learning y pueden afectar a la precisión del modelo. Utilice esta transformación si desea eliminar filas con valores nulos o vacíos en determinadas columnas.

Para eliminar las filas que contengan valores faltantes en una columna específica, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Administrar filas**.

1. Seleccione **Eliminar filas por valores faltantes**.

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

SageMaker Canvas descarta las filas que contienen valores faltantes en la **columna** que seleccionó. Después de eliminar las filas del conjunto de datos, SageMaker Canvas agrega la transformación en la sección de **recetas del modelo**. Si elimina la transformación de la sección de **Recetas de modelo**, las filas vuelven a su conjunto de datos.

![\[Captura de pantalla de la operación de eliminar filas mediante valores faltantes en la aplicación SageMaker Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-remove-missing.png)


### Eliminar filas por valores atípicos
<a name="canvas-prepare-data-remove-outliers"></a>

Los valores atípicos, o valores poco frecuentes en la distribución y el rango de los datos, pueden afectar negativamente a la precisión del modelo y provocar tiempos de compilación más prolongados. Con SageMaker Canvas, puede detectar y eliminar filas que contienen valores atípicos en columnas numéricas. Puede elegir definir los valores atípicos con desviaciones estándar o con un rango personalizado.

Para eliminar los valores atípicos de los datos, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Administrar filas**.

1. Seleccione **Eliminar filas por valores atípicos**.

1. Elija la **Columna** en la que desee comprobar si hay valores atípicos.

1. Establezca el **Operador** en **Desviación estándar**, **Rango numérico personalizado** o **Rango de cuantiles personalizado**.

1. Si elige **Desviación estándar**, especifique un valor de **Desviaciones estándares** (desviación estándar) comprendido entre 1 y 3. Si elige **Rango numérico personalizado** o **Rango de cuantiles personalizado**, especifique los valores **Mín** y **Máx** (números para los rangos numéricos o percentiles entre el 0 y el 100 % para los rangos de cuantiles).

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

La opción **Desviación estándar** detecta y elimina los valores atípicos en las columnas numéricas mediante la media y la desviación estándar. Usted especifica el número de desviaciones estándar que debe separar a un valor de la media para que se considere un valor atípico. Por ejemplo, si especifica `3` para **Desviaciones estándares**, un valor debe estar a más de 3 desviaciones estándares de la media para que se considere un valor atípico.

Las opciones **Rango numérico personalizado** y **Rango de cuantiles personalizado** detectan y eliminan los valores atípicos en las columnas numéricas utilizando valores mínimos y máximos. Utilice este método si conoce los valores límite que delimitan los valores atípicos. Si elige un rango numérico, los valores **Mín** y **Máx** deben ser los valores numéricos mínimos y máximos que desee permitir en los datos. Si elige un rango de cuantiles, los valores **Mín** y **Máx** deben ser el mínimo y el máximo del rango de percentiles (0-100) que desee permitir.

Después de eliminar las filas del conjunto de datos, SageMaker Canvas agrega la transformación en la sección de **recetas del modelo**. Si elimina la transformación de la sección de **Recetas de modelo**, las filas vuelven a su conjunto de datos.

![\[Captura de pantalla de la operación de eliminar filas mediante valores atípicos en la aplicación SageMaker Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-remove-outlier.png)


### Eliminar filas por valores personalizados
<a name="canvas-prepare-data-remove-custom"></a>

Puede eliminar las filas con valores que cumplan condiciones personalizadas. Por ejemplo, es posible que desee excluir todas las filas con un valor de precio superior a 100 al crear el modelo. Con esta transformación, puede crear una regla que elimine todas las filas que superen el umbral que haya establecido.

Para usar la transformación de eliminación personalizada, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Administrar filas**.

1. Seleccione **Borrar filas por fórmula**.

1. Elija la **Columna** en la que desee comprobar.

1. Seleccione el tipo de **Operación** que desee utilizar y, a continuación, especifique los valores de la condición seleccionada.

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

Para la **Operación**, puede elegir una de las siguientes opciones: Tenga en cuenta que las operaciones disponibles dependen del tipo de datos de la columna que elija. Por ejemplo, no puede crear una operación `is greater than` para una columna que contenga valores de texto.


| Operación | Tipos de datos admitidos | Tipo de característica admitida | Función | 
| --- | --- | --- | --- | 
|  Es igual que  |  Numérico, texto  |  Binario, categórico  |  Elimina las filas en las que el valor de la **Columna** sea igual a los valores que especifique.  | 
|  No es igual a  |  Numérico, texto  |  Binario, categórico  |  Elimina las filas en las que el valor de la **Columna** no sea igual a los valores que especifique.  | 
|  Es menor que  |  Numérico  | N/A |  Elimina las filas en las que el valor de la **Columna** es inferior al valor especificado.  | 
|  Es menor o igual que  |  Numérico  | N/A |  Elimina las filas en las que el valor de la **Columna** es inferior o igual que el valor especificado.  | 
|  Es mayor que  |  Numérico  | N/A |  Elimina las filas en las que el valor de la **Columna** es mayor al valor especificado.  | 
|  Es mayor o igual que  | Numérico | N/A |  Elimina las filas en las que el valor de la **Columna** es mayor o igual que el valor especificado.  | 
|  Está entre  | Numérico | N/A |  Elimina las filas en las que el valor de la **Columna** es igual a o está entre los dos valores que especifique.  | 
|  Contiene  |  Texto  | Categórico |  Elimina las filas en las que el valor de la **Columna** contenga los valores que especifique.  | 
|  Empieza por  |  Texto  | Categórico |  Elimina las filas en las que el valor de la **Columna** comienza por los valores que especifique.  | 
|  Acaba con  |  Texto  | Categórico |  Elimina las filas en las que el valor de la **Columna** termina por los valores que especifique.  | 

Después de eliminar las filas del conjunto de datos, SageMaker Canvas agrega la transformación en la sección de **recetas del modelo**. Si elimina la transformación de la sección de **Recetas de modelo**, las filas vuelven a su conjunto de datos.

![\[Captura de pantalla de la operación de eliminar filas mediante valores personalizados en la aplicación SageMaker Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-remove-custom.png)


## Cambio del nombre de las columnas
<a name="canvas-prepare-data-rename"></a>

Con la transformación de cambio del nombre de las columnas, puede cambiar el nombre de las columnas de sus datos. Al cambiar el nombre de una columna, SageMaker Canvas cambia el nombre de la columna en la entrada del modelo.

Puede cambiar el nombre de una columna de su conjunto de datos haciendo doble clic en el nombre de la columna en la pestaña **Crear** de la aplicación SageMaker Canvas e introduciendo un nombre nuevo. Al pulsar la tecla **Intro**, se envía el cambio y, al hacer clic en cualquier lugar fuera de la entrada, se cancela el cambio. También puede cambiar el nombre de una columna haciendo clic en el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), situado al final de la fila en la vista de lista o al final de la celda del encabezado en la vista de cuadrícula, y seleccionando **Cambiar nombre**.

El nombre de la columna no puede tener más de 32 caracteres ni caracteres de guion bajo dobles (\$1\$1), y no se puede cambiar el nombre de una columna por el mismo nombre que otra columna. Tampoco se puede cambiar el nombre de una columna eliminada.

La siguiente captura de pantalla muestra cómo cambiar el nombre de una columna haciendo doble clic en el nombre de la columna.

![\[Captura de pantalla del cambio de nombre de una columna con el método de doble clic en la SageMaker aplicación Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-rename-column.png)


Al cambiar el nombre de una columna, SageMaker Canvas añade la transformación en la sección de **recetas del modelo**. Si elimina la transformación de la sección **Recetas de modelo**, la columna vuelve a su nombre original.

## Administrar columnas
<a name="canvas-prepare-data-manage-cols"></a>

Con las siguientes transformaciones, puede cambiar el tipo de datos de las columnas y reemplazar los valores faltantes o los valores atípicos de columnas específicas. SageMaker Canvas utiliza los tipos de datos o valores actualizados al crear el modelo, pero no cambia el conjunto de datos original. Tenga en cuenta que si ha eliminado una columna de su conjunto de datos mediante la transformación [Exclusión de columnas](#canvas-prepare-data-drop), no podrá reemplazar los valores de esa columna.

### Reemplazar valores faltantes
<a name="canvas-prepare-data-replace-missing"></a>

Los valores faltantes son frecuentes en los conjuntos de datos de machine learning y pueden afectar a la precisión del modelo. Puede optar por eliminar las filas que tengan valores faltantes, pero su modelo será más preciso si opta por reemplazar los valores faltantes. Con esta transformación, puede reemplazar los valores que falten en las columnas numéricas por la media o mediana de los datos de una columna, o también puede especificar un valor personalizado con el que reemplazar los valores faltantes. En el caso de las columnas no numéricas, puede reemplazar los valores faltantes por el modo (el valor más común) de la columna o por un valor personalizado.

Utilice esta transformación si desea reemplazar los valores nulos o vacíos en determinadas columnas. Para reemplazar valores faltantes en una columna específica, haga lo siguiente. 

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Administrar columnas**.

1. Seleccione **Reemplazar valores faltantes**.

1. Elija la **Columna** en la que desee reemplazar los valores faltantes.

1. Establezca el **Modo** como **Manual** para reemplazar los valores faltantes por los valores que especifique. Con la configuración **automática (predeterminada)**, SageMaker Canvas reemplaza los valores faltantes por los valores imputados que mejor se ajusten a sus datos. Este método de imputación se realiza automáticamente para cada compilación del modelo, a menos que especifique el modo **Manual**.

1. Establezca el valor **Reemplazar por**:
   + Si la columna es numérica, seleccione **Media**, **Mediana** o **Personalizado**. La **Media** reemplaza los valores faltantes por la media de la columna y la **Mediana** reemplaza los valores faltantes por la mediana de la columna. Si elige **Personalizado**, debe especificar un valor personalizado que quiera usar para reemplazar los valores faltantes.
   + Si la columna es no numérica, seleccione **Modo** o **Personalizado**. El **Modo** reemplaza los valores faltantes por el modo, o el valor más común, de la columna. Para **Personalizado**, especifique un valor personalizado que quiera usar para reemplazar los valores faltantes.

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

Después de reemplazar los valores faltantes en el conjunto de datos, SageMaker Canvas agrega la transformación en la sección de **recetas del modelo**. Si elimina la transformación de la sección **Recetas de modelo**, las filas vuelven al conjunto de datos.

![\[Captura de pantalla de la operación de reemplazar los valores faltantes en la aplicación SageMaker Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-replace-missing.png)


### Reemplazar valores atípicos
<a name="canvas-prepare-data-replace-outliers"></a>

Los valores atípicos, o valores poco frecuentes en la distribución y el rango de los datos, pueden afectar negativamente a la precisión del modelo y provocar tiempos de creación más prolongados. SageMaker Canvas le permite detectar valores atípicos en columnas numéricas y reemplazarlos por valores que se encuentren dentro de un rango aceptado en sus datos. Puede elegir definir los valores atípicos con desviaciones estándares o con un rango personalizado, y puede reemplazar los valores atípicos por los valores mínimo y máximo del rango aceptado.

Para eliminar los valores atípicos de los datos, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Administrar** columnas.

1. Seleccione **Reemplazar valores atípicos**.

1. Elija la **Columna** en la que desee reemplazar los valores atípicos.

1. En **Definir valores atípicos**, elija **Desviación estándar**, **Rango numérico personalizado** o **Rango de cuantiles personalizado**.

1. Si elige **Desviación estándar**, especifique un valor de **Desviaciones estándares** (desviación estándar) comprendido entre 1 y 3. Si elige **Rango numérico personalizado** o **Rango de cuantiles personalizado**, especifique los valores **Mín** y **Máx** (números para los rangos numéricos o percentiles entre el 0 y el 100 % para los rangos de cuantiles).

1. En **Reemplazar por**, seleccione **Rango mínimo/máximo**.

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

La opción **Desviación estándar** detecta los valores atípicos en las columnas numéricas mediante la media y la desviación estándar. Usted especifica el número de desviaciones estándar que debe separar a un valor de la media para que se considere un valor atípico. Por ejemplo, si especifica 3 para **las desviaciones estándar**, un valor debe estar a más de 3 desviaciones estándar de la media para que se considere un valor atípico. SageMaker Canvas reemplaza los valores atípicos por el valor mínimo o máximo del rango aceptado. Por ejemplo, si configura las desviaciones estándar para que solo incluyan valores de 200 a 300, SageMaker Canvas cambiará un valor de 198 a 200 (el mínimo).

Las opciones **Rango numérico personalizado** y **Rango de cuantiles personalizado** detectan los valores atípicos en las columnas numéricas utilizando valores mínimos y máximos. Utilice este método si conoce los valores límite que delimitan los valores atípicos. Si elige un rango numérico, los valores **mínimo** y **máximo** deben ser los valores numéricos mínimos y máximos que desee permitir. SageMaker Canvas reemplaza cualquier valor que quede fuera del mínimo y el máximo por los valores mínimo y máximo. Por ejemplo, si su rango solo permite valores del 1 al 100, SageMaker Canvas cambia el valor de 102 a 100 (el máximo). Si elige un rango de cuantiles, los valores **Mín** y **Máx** deben ser el mínimo y el máximo del rango de percentiles (0-100) que desee permitir.

Después de reemplazar los valores en el conjunto de datos, SageMaker Canvas agrega la transformación en la sección de **recetas del modelo**. Si elimina la transformación de la sección **Recetas de modelo**, los valores originales vuelven al conjunto de datos.

![\[Captura de pantalla de la operación de reemplazar valores atípicos en la aplicación SageMaker Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-replace-outlier.png)


### Cambiar el tipo de datos
<a name="canvas-prepare-data-change-type"></a>

SageMaker Canvas le permite cambiar el *tipo de datos* de sus columnas entre numérico, texto y fecha y hora, además de mostrar el tipo de *función asociado a ese tipo de* datos. Un *tipo de datos* hace referencia al formato de los datos y a la forma en que se almacenan, mientras que el *tipo de característica* se refiere a la característica de los datos que se utilizan en los algoritmos de machine learning, como los binarios o los categóricos. Esto le da la flexibilidad de cambiar manualmente el tipo de datos de las columnas en función de las características. La posibilidad de elegir el tipo de datos correcto garantiza la integridad y precisión de los datos antes de crear modelos. Estos tipos de datos se utilizan al crear modelos.

**nota**  
Actualmente, no se admite el cambio del tipo de característica (por ejemplo, de binaria a categórica).

En la siguiente tabla, se enumeran todos los tipos de datos en Canvas.


| Tipo de datos: | Description (Descripción) | Ejemplo | 
| --- | --- | --- | 
| Numérico | Los datos numéricos representan valores numéricos | 1, 2, 31,1, 1,2. 1.3 | 
| Texto | Los datos de texto representan secuencias de caracteres, como nombres o descripciones | A, B, C, Dmanzana, plátano, naranja1A\$1, 2A\$1, 3A\$1 | 
| Fecha y hora | Los datos de fecha y hora representan fechas y horas en formato de marca de tiempo (timestamp) | 2019-07-01 01:00:00, 2019-07-01 02:00:00, 2019-07-01 03:00:00 | 

En la siguiente tabla, se enumeran todos los tipos de característica admitidos en Canvas.


| Tipo de característica | Description (Descripción) | Ejemplo | 
| --- | --- | --- | 
| Binario | Las características binarias representan dos valores posibles | 0, 1, 0, 1, 0 (2 valores distintos)true, false, true (2 valores distintos) | 
| Categórico | Las características categóricas representan categorías o grupos distintos | manzana, plátano, naranja, manzana (3 valores distintos)A, B, C, D, E, A, D, C (5 valores distintos) | 

Para modificar el tipo de datos de una columna de un conjunto de datos, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, vaya a la vista por **columnas o a la vista** de **cuadrícula** y seleccione el menú desplegable **Tipo de datos** para la columna específica.

1. En el menú desplegable de **Tipo de datos**, seleccione el tipo de datos al que desee realizar la conversión. En la siguiente captura de pantalla se muestra el menú desplegable.  
![\[El menú desplegable de conversión de tipos de datos de una columna, que se muestra en la pestaña Crear.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-prepare-data-change.png)

1. En **Columna**, elija o verifique la columna en la que desee cambiar el tipo de datos.

1. En **Nuevo tipo de datos**, seleccione o verifique el nuevo tipo de datos al que desee convertir.

1. Si el **Nuevo tipo de datos** es `Datetime` o `Numeric`, elija una de las siguientes opciones en **Gestionar valores no válidos**:

   1. **Reemplazar por un valor vacío**: los valores no válidos se sustituyen por un valor vacío

   1. **Eliminar filas**: las filas con un valor no válido se eliminan del conjunto de datos

   1. **Reemplazar por un valor personalizado**: los valores no válidos se sustituyen por el **Valor personalizado** que especifique.

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

Ahora debería actualizarse el tipo de datos de la columna.

## Preparación de datos de series temporales
<a name="canvas-prepare-data-timeseries"></a>

Utilice las siguientes funcionalidades para preparar los datos de series temporales para crear modelos de previsión de series temporales.

### Remuestreo de datos de series temporales
<a name="canvas-prepare-data-resample"></a>

Al volver a muestrear los datos de series temporales, puede establecer intervalos regulares para las observaciones de su conjunto de datos de series temporales. Esto resulta particularmente útil cuando se trabaja con datos de series temporales que contengan observaciones espaciadas de forma irregular. Por ejemplo, puede utilizar el remuestreo para transformar un conjunto de datos con observaciones registradas cada intervalo de una, dos y tres horas en un intervalo regular de una hora entre observaciones. Los algoritmos de previsión requieren que las observaciones se realicen a intervalos regulares.

Para remuestrear los datos de series temporales, haga lo siguiente.

1. En la pestaña **Crear** de la aplicación SageMaker Canvas, elija **Series temporales**.

1. Seleccione **Remuestrear**.

1. En la **columna Marca de tiempo**, seleccione la columna a la que quiera aplicar la transformación. Solo puede seleccionar columnas del tipo **Fecha y hora**.

1. En la sección de **Configuración de frecuencia**, seleccione una **Frecuencia** y un **Ritmo**. La **Frecuencia** es la unidad de frecuencia y el **Ritmo** es el intervalo de la unidad de frecuencia que se aplicará a la columna. Por ejemplo, al elegir `Calendar Day` para el **valor de Frecuencia** y `1` para el **Ritmo**, se establece que el intervalo aumente cada 1 día natural, por ejemplo `2023-03-26 00:00:00`, `2023-03-27 00:00:00`, `2023-03-28 00:00:00`. Consulte la tabla siguiente a este procedimiento para obtener una lista completa del **valor de Frecuencia**. 

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

La siguiente tabla muestra todos los tipos de **Frecuencia** que puede seleccionar al remuestrear datos de series temporales.


| Frecuencia | Description (Descripción) | Valores de ejemplo (suponiendo que el ritmo sea 1) | 
| --- | --- | --- | 
|  Día laborable  |  Se remuestrean las observaciones de la columna de fecha y hora para convertirlas en 5 días laborables de la semana (lunes, martes, miércoles, jueves y viernes)  |  2023-03-24 00:00:00 2023-03-27 00:00:00 2023-03-28 00:00:00 2023-03-29 00:00:00 2023-03-30 00:00:00 2023-03-31 00:00:00 2023-04-03 00:00:00  | 
|  Día natural  |  Se remuestrean las observaciones de la columna de fecha y hora para convertirlas en los 7 días de la semana (lunes, martes, miércoles, jueves, viernes, sábado y domingo)  |  2023-03-26 00:00:00 2023-03-27 00:00:00 2023-03-28 00:00:00 2023-03-29 00:00:00 2023-03-30 00:00:00 2023-03-31 00:00:00 2023-04-01 00:00:00  | 
|  Semana  |  Se remuestrean las observaciones en la columna de fecha y hora al primer día de cada semana.  |  2023-03-13 00:00:00 2023-03-20 00:00:00 2023-03-27 00:00:00 2023-04-03 00:00:00  | 
|  Mes  |  Se remuestrean las observaciones en la columna de fecha y hora al primer día de cada mes.  |  2023-03-01 00:00:00 2023-04-01 00:00:00 2023-05-01 00:00:00 2023-06-01 00:00:00  | 
|  Trimestre anual  |  Se remuestrean las observaciones en la columna de fecha y hora al último día de cada trimestre.  |  2023-03-31 00:00:00 2023-06-30 00:00:00 2023-09-30 00:00:00 2023-12-31 00:00:00  | 
|  Año  |  Se remuestrean las observaciones en la columna de fecha y hora al último día de cada año.  |  2022-12-31 0:00:00 2023-12-31 00:00:00 2024-12-31 00:00:00  | 
|  Hora  |  Se remuestrean las observaciones en la columna de fecha y hora a cada hora de cada día  |  2023-03-24 00:00:00 2023-03-24 01:00:00 2023-03-24 02:00:00 2023-03-24 03:00:00  | 
|  Minuto  |  Se remuestrean las observaciones en la columna de fecha y hora a cada minuto de cada hora  |  2023-03-24 00:00:00 2023-03-24 00:01:00 2023-03-24 00:02:00 2023-03-24 00:03:00  | 
|  Segundo  |  Se remuestrean las observaciones en la columna de fecha y hora a cada segundo de cada minuto  |  2023-03-24 00:00:00 2023-03-24 00:00:01 2023-03-24 00:00:02 2023-03-24 00:00:03  | 

Al aplicar la transformación de remuestreo, puede usar la opción **Avanzada** para especificar cómo se modifican los valores resultantes del resto de las columnas (distintas de la columna de fecha y hora) del conjunto de datos. Esto se puede lograr especificando la metodología de remuestreo, que puede ser reducir o aumentar el muestreo tanto para las columnas numéricas como para las no numéricas.

La *reducción del muestreo* aumenta el intervalo entre las observaciones del conjunto de datos. Por ejemplo, si reduce el muestreo de las observaciones que se realizan cada hora o cada dos horas, cada observación del conjunto de datos se realiza cada dos horas. Los valores de las demás columnas de las observaciones horarias se agregan en un único valor mediante un método de combinación. En las siguientes tablas se muestra un ejemplo de reducción del muestreo de datos de series temporales utilizando la media como método de combinación. Los datos del muestreo se reducen de cada dos horas a cada hora.

La siguiente tabla muestra las lecturas de temperatura por hora durante un día antes de la reducción de la muestra.


| Timestamp | Temperatura (Celsius) | 
| --- | --- | 
| 12:00 pm | 30 | 
| 1:00 am | 32 | 
| 2:00 am | 35 | 
| 3:00 am | 32 | 
| 4:00 am | 30 | 

La siguiente tabla muestra las lecturas de temperatura después de reducir el muestreo a cada dos horas.


| Timestamp | Temperatura (Celsius) | 
| --- | --- | 
| 12:00 pm | 30 | 
| 2:00 am | 33,5 | 
| 2:00 am | 35 | 
| 4:00 am | 32,5 | 

Para reducir el muestreo de datos de series temporales, haga lo siguiente:

1. Expanda la sección **Avanzadas** situada debajo de la transformación **Remuestrear**.

1. Elija **Combinación no numérica** para especificar el método de combinación para las columnas no numéricas. Consulte la siguiente tabla para obtener una lista completa de métodos de combinación.

1. Elija **Combinación numérica** para especificar el método de combinación para las columnas numéricas. Consulte la siguiente tabla para obtener una lista completa de métodos de combinación.

Si no especifica los métodos de combinación, los valores predeterminados son `Most Common` para la **Combinación no numérica** y `Mean` para la **Combinación numérica**. En la siguiente tabla se enumeran los métodos de combinación numérica y no numérica.


| Metodología de reducción de muestreo | Método de combinación | Description (Descripción) | 
| --- | --- | --- | 
| Combinación no numérica | Más común | Agrega los valores de la columna no numérica por el valor que aparece con más frecuencia | 
| Combinación no numérica | Último | Agrega los valores de la columna no numérica por el último valor de la columna | 
| Combinación no numérica | Primero | Agrega los valores de la columna no numérica por el primer valor de la columna | 
| Combinación numérica | Media | Agrega los valores de la columna numérica tomando la media de todos los valores de la columna | 
| Combinación numérica | Median | Agrega los valores de la columna numérica tomando la mediana de todos los valores de la columna | 
| Combinación numérica | Mínimo | Agrega los valores de la columna numérica tomando el mínimo de todos los valores de la columna | 
| Combinación numérica | Máximo | Agrega los valores de la columna numérica tomando el máximo de todos los valores de la columna | 
| Combinación numérica | Sum | Agrega los valores de la columna numérica sumando todos los valores de la columna | 
| Combinación numérica | Cuantil | Agrega los valores de la columna numérica tomando el cuantil de todos los valores de la columna | 

El *aumento del muestreo* reduce el intervalo entre las observaciones del conjunto de datos. Por ejemplo, si aumenta el muestreo de las observaciones que se toman cada dos horas para convertirlas en observaciones por hora, los valores de las demás columnas de las observaciones por hora se interpolan a partir de las que se han tomado cada dos horas.

Para aumentar el muestreo los datos de series temporales, haga lo siguiente.

1. Expanda la sección **Avanzadas** situada debajo de la transformación **Remuestrear**.

1. Elija **Estimación no numérica** para especificar el método de estimación para las columnas no numéricas. Consulte la tabla siguiente a este procedimiento para obtener una lista completa de los métodos.

1. Elija **Estimación numérica** para especificar el método de estimación para las columnas numéricas. Consulte la siguiente tabla para obtener una lista completa de métodos.

1. (Opcional) Elija **ID Column** para especificar la columna que contiene las IDs observaciones de la serie temporal. Especifique esta opción si su conjunto de datos tiene dos series temporales. Si tiene una columna que representa solo una serie temporal, no especifique un valor para este campo. Por ejemplo, puede tener un conjunto de datos que contenga las columnas `id` y `purchase`. La columna `id` tiene los siguientes valores: `[1, 2, 2, 1]`. La columna `purchase` tiene los siguientes valores: `[$2, $3, $4, $1]`. Por lo tanto, el conjunto de datos tiene dos series temporales: una serie temporal es: `1: [$2, $1]` y la otra serie temporal es `2: [$3, $4]`.

Si no especifica los métodos de estimación, los valores predeterminados son `Forward Fill` para la **Estimación no numérica** y `Linear` para la **Estimación numérica**. En la siguiente tabla se muestran los métodos de estimación.


| Metodología de aumento de muestreo | Método de estimación | Description (Descripción) | 
| --- | --- | --- | 
| Estimación no numérica | Rellenar hacia delante | Interpola los valores de la columna no numérica tomando los valores consecutivos después de todos los valores de la columna | 
| Estimación no numérica | Rellenar hacia atrás | Interpola los valores de la columna no numérica tomando los valores consecutivos antes de todos los valores de la columna | 
| Estimación no numérica | Mantener faltantes | Interpola los valores en la columna no numérica mostrando valores vacíos | 
| Estimación numérica | Lineal, temporal, índice, cero, lineal S, más cercano, cuadrático, cúbico, baricéntrico, polinómico, Krogh, polinómico por partes, spline, chip P, Akima, spline cúbico, a partir de derivadas | Interpola los valores de la columna numérica mediante el interpolador especificado. [Para obtener información sobre los métodos de interpolación, consulte pandas. DataFrame.interpolate](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html) en la documentación de pandas. | 

La siguiente captura de pantalla muestra la configuración **Avanzada** con los campos de aumento y reducción de muestreo rellenados.

![\[La aplicación de Canvas, con el panel lateral de remuestreo de series temporales que muestra las opciones avanzadas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-prepare-data-resampling.png)


### Uso de la extracción de fecha y hora
<a name="canvas-prepare-data-datetime"></a>

Con la transformación de extracción de fecha y hora, puede extraer valores de una columna de fecha y hora en una columna independiente. Por ejemplo, si tiene una columna que contiene las fechas de compra, puede extraer el valor del mes en una columna independiente y utilizar la nueva columna al crear el modelo. También puede extraer varios valores para separar columnas con una sola transformación.

La columna de fecha y hora debe usar un formato de marca de tiempo compatible. Para obtener una lista de los formatos compatibles con SageMaker Canvas, consulte. [Pronósticos de series temporales en Amazon SageMaker Canvas](canvas-time-series.md) Si su conjunto de datos no utiliza uno de los formatos compatibles, actualícelo para que utilice un formato de marca de tiempo compatible y vuelva a importarlo a Amazon SageMaker Canvas antes de crear el modelo.

Para realizar una extracción de fecha y hora, haga lo siguiente.

1. **En la pestaña **Crear** de la aplicación SageMaker Canvas, en la barra de transformaciones, elija Ver todo.**

1. Seleccione **Extraer características**.

1. Elija la **columna Marca de tiempo** de la que desee extraer los valores.

1. En **Valores**, seleccione uno o más valores para extraerlos de la columna. Los valores que puede extraer de una columna de fecha y hora son **Año**, **Mes**, **Día**, **Hora**, **Semana del año**, **Día del año** y **Trimestre**.

1. (Opcional) Seleccione **Vista previa** para obtener una vista previa de los resultados de la transformación.

1. Seleccione **Agregar** para agregar la transformación a la **Receta de modelo**.

SageMaker Canvas crea una nueva columna en el conjunto de datos para cada uno de los valores que extraiga. A excepción de los valores de **año**, SageMaker Canvas utiliza una codificación basada en 0 para los valores extraídos. Por ejemplo, si extrae el valor del **Mes**, enero se extrae como 0 y febrero como 1.

![\[Captura de pantalla del cuadro de extracción de fecha y hora de la SageMaker aplicación Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-datetime-extract.png)


Puede ver la transformación en la sección **Recetas de modelo**. Si elimina la transformación de la sección **Recetas de modelo**, las nuevas columnas se eliminan del conjunto de datos.

# Evaluación de modelos
<a name="canvas-evaluate-model"></a>

Una vez creado el modelo, puede evaluar el rendimiento del modelo con los datos antes de usarlo para hacer predicciones. Puede utilizar información, como la precisión del modelo al predecir etiquetas y métricas avanzadas, para determinar si el modelo puede realizar predicciones suficientemente precisas para sus datos.

La sección [Evaluación del desempeño de su modelo](canvas-scoring.md) describe cómo ver e interpretar la información de la página de **Analizar** del modelo. La sección [Uso de métricas avanzadas en sus análisis](canvas-advanced-metrics.md) contiene información más detallada sobre las **Métricas avanzadas** que se utilizan para cuantificar la exactitud del modelo.

También puede ver información más avanzada sobre *modelos candidatos* específicos, que son todas las iteraciones de modelos que Canvas ejecuta al crear el modelo. En función de las métricas avanzadas de un modelo candidato determinado, puede seleccionar un candidato diferente para que sea el predeterminado o la versión que se utilice para realizar predicciones e implementar. Para cada modelo candidato, puede ver la información de **Métricas avanzadas** para ayudarlo a decidir qué modelo candidato desea seleccionar como predeterminado. Puede ver esta información seleccionando el modelo candidato en la **Tabla de clasificación de modelos**. Para obtener más información, consulte [Visualización de los candidatos del modelo en la tabla de clasificación de modelos](canvas-evaluate-model-candidates.md).

Canvas también ofrece la opción de descargar un cuaderno de Jupyter para ver y ejecutar el código utilizado para crear el modelo. Esto resulta útil si desea realizar ajustes en el código u obtener más información sobre cómo se creó su modelo. Para obtener más información, consulte [Descarga de un modelo de cuaderno](canvas-notebook.md).

# Evaluación del desempeño de su modelo
<a name="canvas-scoring"></a>

Amazon SageMaker Canvas proporciona información general y de puntuación para los distintos tipos de modelos. La puntuación del modelo puede ayudarle a determinar la precisión del modelo a la hora de hacer predicciones. La información adicional sobre las puntuaciones puede ayudarle a cuantificar las diferencias entre los valores reales y los previstos.

Para ver el análisis del modelo, haga lo siguiente:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. Elija el modelo que ha creado.

1. En el panel de navegación superior, elija la pestaña **Analizar**.

1. En la pestaña **Analizar**, puede ver la información general y la información de puntuación de su modelo.

En las siguientes secciones se describe cómo interpretar la puntuación para cada tipo de modelo.

## Evaluación de los modelos de predicción categórica
<a name="canvas-scoring-categorical"></a>

La pestaña **Información general** muestra el impacto de cada columna en cada columna. El **Impacto de columna** es una puntuación porcentual que indica el peso que tiene una columna a la hora de realizar predicciones en relación con las demás columnas. Para un impacto de columna del 25 %, Canvas pondera la predicción en un 25 % para la columna y un 75 % para las demás columnas.

La siguiente captura de pantalla muestra la puntuación de **Precisión** del modelo, junto con la **Métrica de optimización**, que es la métrica que se elige optimizar al crear el modelo. En este caso, la **Métrica de optimización** es **Exactitud**. Puede especificar una métrica de optimización diferente si crea una nueva versión del modelo.

![\[Captura de pantalla de la puntuación de precisión y la métrica de optimización en la pestaña Analizar de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-category.png)


La pestaña **Puntuación** de un modelo de predicción categórica le permite visualizar todas las predicciones. Los segmentos de línea se extienden desde la izquierda de la página e indican todas las predicciones que ha realizado el modelo. En el centro de la página, los segmentos de línea convergen en un segmento perpendicular para indicar la proporción de cada predicción en una sola categoría. A partir de la categoría pronosticada, los segmentos se ramifican hacia la categoría real. Puede hacerse una idea visual de la precisión de las predicciones siguiendo cada segmento de línea desde la categoría pronosticada hasta la categoría real.

La siguiente imagen muestra un ejemplo de una sección de **Puntuación** para un modelo de **predicción de 3 categorías o más**.

![\[Captura de pantalla de la pestaña Puntuación de un modelo de predicción de 3 categorías o más.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-analyze/canvas-multiclass-classification.png)


También puede consultar la pestaña **Métricas avanzadas** para obtener información más detallada sobre el rendimiento del modelo, como métricas avanzadas, gráficas de densidad de errores o matrices de confusión. Para obtener más información sobre la pestaña **Métricas avanzadas**, consulte [Uso de métricas avanzadas en sus análisis](canvas-advanced-metrics.md).

## Evaluación de los modelos de predicción numérica
<a name="canvas-scoring-numeric"></a>

La pestaña **Información general** muestra el impacto de cada columna en cada columna. El **Impacto de columna** es una puntuación porcentual que indica el peso que tiene una columna a la hora de realizar predicciones en relación con las demás columnas. Para un impacto de columna del 25 %, Canvas pondera la predicción en un 25 % para la columna y un 75 % para las demás columnas.

La siguiente captura de pantalla muestra la puntuación **RMSE** del modelo en la pestaña **Información general**, que en este caso es la **métrica de Optimización**. La **métrica de Optimización** es la métrica que se elige optimizar al crear el modelo. Puede especificar una métrica de optimización diferente si crea una nueva versión del modelo.

![\[Captura de pantalla de la métrica de optimización RMSE en la pestaña Analizar de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-numeric.png)


La pestaña **Puntuación** de la predicción numérica muestra una línea para indicar el valor previsto del modelo en relación con los datos utilizados para realizar las predicciones. Los valores de la predicción numérica suelen ser \$1/- el valor del RMSE (error cuadrático medio). El valor que predice el modelo suele estar dentro del rango del RMSE. El ancho de la banda violeta que rodea la línea indica el rango de RMSE. Los valores pronosticados suelen estar dentro del rango.

La siguiente imagen muestra la sección de **Puntuación** para la predicción numérica.

![\[Captura de pantalla de la pestaña Puntuación de un modelo de predicción numérica.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-analyze/canvas-analyze-regression-scoring.png)


También puede consultar la pestaña **Métricas avanzadas** para obtener información más detallada sobre el rendimiento del modelo, como métricas avanzadas, gráficas de densidad de errores o matrices de confusión. Para obtener más información sobre la pestaña **Métricas avanzadas**, consulte [Uso de métricas avanzadas en sus análisis](canvas-advanced-metrics.md).

## Evaluación de los modelos de previsión de series temporales
<a name="canvas-scoring-time-series"></a>

En la página **Analizar** de los modelos de previsión de series temporales, puede ver una descripción general de las métricas del modelo. Puede pasar el cursor sobre cada métrica para obtener más información, o puede consultar [Uso de métricas avanzadas en sus análisis](canvas-advanced-metrics.md) para obtener más información sobre cada métrica.

En la sección **Impacto de columna**, puedes ver la puntuación de cada columna. El **Impacto de columna** es una puntuación porcentual que indica el peso que tiene una columna a la hora de realizar predicciones en relación con las demás columnas. Para un impacto de columna del 25 %, Canvas pondera la predicción en un 25 % para la columna y un 75 % para las demás columnas.

La siguiente captura de pantalla muestra las puntuaciones de las métricas de las series temporales del modelo, junto con la **Métrica de optimización**, que es la métrica que se elige optimizar al crear el modelo. En este caso, la **Métrica de optimización** es **RMSE**. Puede especificar una métrica de optimización diferente si crea una nueva versión del modelo. Las puntuaciones de estas métricas se toman de los resultados de las pruebas de datos, que están disponibles para su descarga en la pestaña **Artefactos**.

![\[Captura de pantalla de la métrica de optimización RMSE en la pestaña Analizar de Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-time-series.png)


La pestaña **Artefactos** proporciona acceso a varios recursos clave que puede utilizar para profundizar en el rendimiento del modelo y seguir iterando sobre este:
+ **Divisiones desordenadas de entrenamiento y validación**: en esta sección se incluyen enlaces a los artefactos que se generaron cuando el conjunto de datos se dividió en conjuntos de entrenamiento y validación, lo que le permitirá revisar la distribución de los datos y posibles sesgos.
+ **Resultados de pruebas de datos**: en esta sección se incluye un enlace a los valores pronosticados para el conjunto de datos de validación, que se utiliza para generar métricas de exactitud y datos de evaluación para el modelo.
+ **Métricas de exactitud**: en esta sección se muestran las métricas avanzadas que evalúan el rendimiento del modelo, como el error cuadrático medio (RMSE). Para obtener más información acerca de cada métrica, consulte [Métricas para previsiones de series temporales](canvas-metrics.md#canvas-time-series-forecast-metrics).
+ **Informe de explicabilidad**: en esta sección se proporciona un enlace para descargar el informe de explicabilidad, que ofrece información sobre el proceso de toma de decisiones del modelo y la importancia relativa de las columnas de entrada. Este informe puede ayudarle a identificar posibles áreas de mejora.

En la página **Analizar** también puede pulsar el botón **Descargar** para descargar directamente a su máquina local resultados de pruebas de datos, métricas de exactitud y artefactos de los informes de explicabilidad.

## Evaluación de los modelos de predicción de imágenes
<a name="canvas-scoring-image"></a>

La pestaña **Información general** muestra el **Rendimiento por etiqueta**, lo que proporciona una puntuación de precisión general para las imágenes pronosticadas para cada etiqueta. Puede elegir una etiqueta para ver detalles más específicos, como las imágenes **Pronosticadas correctamente** y **Pronosticadas incorrectamente** para la etiqueta.

Puede activar el conmutador del **Mapa de calor** para ver un mapa de calor para cada imagen. El mapa de calor muestra las áreas de interés que tienen el mayor impacto cuando el modelo realiza predicciones. Para obtener más información sobre los mapas de calor y cómo utilizarlos para mejorar el modelo, seleccione el icono de **Más información** situado junto al conmutador del **Mapa de calor**.

La pestaña **Puntuación** de los modelos de predicción de imágenes de una sola etiqueta muestra una comparación entre lo que el modelo predijo como etiqueta y lo que era la etiqueta real. Puede seleccionar hasta 10 etiquetas a la vez. Puede cambiar las etiquetas de la visualización seleccionando el menú desplegable de etiquetas y seleccionando o deseleccionando las etiquetas.

También puede ver la información de etiquetas individuales o grupos de etiquetas, como las tres etiquetas con la precisión más alta o más baja, seleccionando el menú desplegable **Ver puntuaciones para** la sección **Información sobre la precisión del modelo**.

La siguiente captura de pantalla muestra la información de **Puntuación** de un modelo de predicción de imágenes de una sola etiqueta.

![\[Etiquetas reales y predichas en la página de puntuación para un modelo de predicción de texto de varias categorías.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/analyze-image-scoring.png)


## Evaluación de los modelos de predicción de texto
<a name="canvas-scoring-text"></a>

La pestaña **Información general** muestra el **Rendimiento por etiqueta**, lo que proporciona una puntuación de precisión general para los pasajes de texto pronosticados para cada etiqueta. Puede elegir una etiqueta para ver detalles más específicos, como las imágenes **Pronosticadas correctamente** y **Pronosticadas incorrectamente** para los pasajes.

La pestaña **Puntuación** de los modelos de predicción de texto multicategoría muestra una comparación entre lo que el modelo predijo como etiqueta y lo que era la etiqueta real.

En la sección **Información sobre la precisión del modelo**, puede ver la **categoría más frecuente**, que indica la categoría que el modelo predijo con más frecuencia y la precisión de esas predicciones. Si su modelo predice correctamente una etiqueta de **Positivo** el 99 % de las veces, puede estar bastante seguro de que su modelo es bueno para predecir la opinión positiva en el texto.

La siguiente captura de pantalla muestra la información de **Puntuación** de un modelo de predicción de texto multicategoría.

![\[Etiquetas reales y predichas en la página de puntuación para un modelo de predicción de imágenes de una sola etiqueta.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/analyze-text-scoring.png)


# Uso de métricas avanzadas en sus análisis
<a name="canvas-advanced-metrics"></a>

En la siguiente sección, se describe cómo buscar e interpretar las métricas avanzadas de su modelo en Amazon SageMaker Canvas.

**nota**  
En la actualidad, solo hay métricas avanzadas disponibles para los modelos de predicción numéricos y categóricos.

Para buscar la pestaña **Métricas avanzadas**, haga lo siguiente:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. Elija el modelo que ha creado.

1. En el panel de navegación superior, elija la pestaña **Analizar**.

1. En la pestaña **Analizar**, seleccione la pestaña **Métricas avanzadas**.

En la pestaña **Métricas avanzadas**, encontrará la pestaña **Rendimiento**. La página es similar a la captura de pantalla siguiente.

![\[Captura de pantalla de la pestaña de métricas avanzadas para un modelo de predicción categórica.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-analyze-performance.png)


En la parte superior aparece un resumen de las puntuaciones de las métricas, incluida la **Métrica de optimización**, que es la métrica que ha seleccionado (o que Canvas ha seleccionado de forma predeterminada) para optimizar al compilar el modelo.

En las siguientes secciones se describe información más detallada sobre la pestaña **Rendimiento** de **Métricas avanzadas**.

## Desempeño
<a name="canvas-advanced-metrics-performance"></a>

En la pestaña **Rendimiento** aparece una **Tabla de métricas**, junto con las visualizaciones que Canvas crea en función del tipo de modelo. Para los modelos de predicción categórica, Canvas proporciona una *matriz de confusión*, mientras que para los modelos de predicción numérica, proporciona gráficos de *residuos* y *densidad de errores*.

En la **Tabla de métricas** se proporciona una lista completa de las puntuaciones del modelo para cada métrica avanzada, que es más completa que la descripción general de las puntuaciones que aparece en la parte superior de la página. Las métricas que se muestran aquí dependen del tipo de modelo. Para obtener una referencia que le ayude a entender e interpretar cada métrica, consulte [Referencia de métricas](canvas-metrics.md).

Para comprender las visualizaciones que pueden aparecer en función del tipo de modelo, consulte las siguientes opciones:
+ **Matriz de confusión**: Canvas utiliza matrices de confusión para ayudarle a visualizar cuándo un modelo hace predicciones correctamente. En una matriz de confusión, los resultados se organizan para comparar los valores pronosticados con los valores reales. El siguiente ejemplo explica cómo funciona una matriz de confusión para un modelo de predicción de 2 categorías que predice etiquetas positivas y negativas:
  + Positivo verdadero: el modelo predijo correctamente el positivo cuando la etiqueta verdadera era positiva.
  + Negativo verdadero: el modelo predijo correctamente el negativo cuando la etiqueta verdadera era negativa.
  + Falso positivo: el modelo predijo incorrectamente el positivo cuando la etiqueta verdadera era negativa.
  + Falso negativo: el modelo predijo incorrectamente el negativo cuando la etiqueta verdadera era positiva.
+ **Curva de exhaustividad de precisión**: la curva de exhaustividad de precisión es una visualización de la puntuación de precisión del modelo comparada con la puntuación de exhaustividad del modelo. Por lo general, un modelo que puede realizar predicciones perfectas tendría puntuaciones de precisión y exhaustividad iguales a 1. La curva de exhaustividad de precisión de un modelo correctamente preciso es bastante alta tanto en precisión como en exhaustividad.
+ **Residuos**: los residuos son la diferencia entre los valores reales y los valores pronosticados por el modelo. Un gráfico de residuos representa los residuos comparándolos con los valores correspondientes para visualizar su distribución y cualquier patrón o valor atípico. Una distribución normal de los residuos en torno a cero indica que el modelo es adecuado para los datos. Sin embargo, si los residuos están sesgados significativamente o tienen valores atípicos, puede indicar que el modelo está sobreajustando los datos o que hay otros problemas que deben abordarse.
+ **Densidad de errores**: una gráfica de densidad de errores es una representación de la distribución de los errores cometidos por un modelo. Muestra la densidad de probabilidad de los errores en cada punto, lo que le ayuda a identificar cualquier área en la que el modelo pueda estar sobreajustándose o cometiendo errores sistemáticos.

# Visualización de los candidatos del modelo en la tabla de clasificación de modelos
<a name="canvas-evaluate-model-candidates"></a>

Cuando realiza una [compilación estándar](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) para modelos de previsión tabulares y de series temporales en Amazon SageMaker Canvas, la SageMaker IA entrena a varios *candidatos* a modelos (diferentes iteraciones del modelo) y, de forma predeterminada, selecciona el que tenga el valor más alto para la métrica de optimización. En el caso de los modelos tabulares, Canvas crea hasta 250 candidatos del modelo diferentes mediante diversos algoritmos y ajustes de hiperparámetros. Para los modelos de previsión de series temporales, Canvas crea 7 modelos diferentes: uno para cada uno de los [algoritmos de previsión compatibles](canvas-advanced-settings.md#canvas-advanced-settings-time-series) y un modelo de conjunto que promedia las predicciones de los demás modelos para intentar optimizar la exactitud.

El candidato del modelo predeterminado es la única versión que puede usar en Canvas para acciones como hacer predicciones, registrarse en el registro del modelo o implementarlo en un punto de conexión. Sin embargo, puede resultar conveniente revisar todos los candidatos del modelo y seleccionar un candidato diferente como modelo predeterminado. Puede ver todos los candidatos del modelo y más detalles sobre cada candidato en la **Tabla de clasificación de modelos** en Canvas.

Para ver la **Tabla de clasificación de modelos**, haga lo siguiente:

1. Abra la aplicación Canvas SageMaker .

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. Elija el modelo que ha creado.

1. En el panel de navegación superior, elija la pestaña **Analizar**.

1. En la pestaña **Analizar**, elija **Tabla de clasificación de modelos**.

Se abre la página **Tabla de clasificación de modelos**, que en el caso de los modelos tabulares se parece a la siguiente captura de pantalla.

![\[La tabla de clasificación de modelos, en la que se enumeran todos los candidatos del modelo que Canvas ha entrenado.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-model-leaderboard.png)


En el caso de los modelos de previsión de series temporales, aparecen 7 modelos, que incluyen uno para cada uno de los algoritmos de previsión de series temporales compatibles con Canvas y un modelo de conjunto. Para obtener más información sobre los algoritmos, consulte [Configuración avanzada del modelo de previsión de series temporales](canvas-advanced-settings.md#canvas-advanced-settings-time-series).

En la captura de pantalla anterior puede ver que el primer candidato del modelo de la lista está marcado como **Modelo predeterminado**. Este es el candidato del modelo con el que puede hacer predicciones o que puede implementar en los puntos de conexión.

Para ver información de métricas más detalladas sobre los candidatos del modelo y compararlos, puede elegir el icono de **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) y **Ver detalles del modelo**.

**importante**  
 La carga de los detalles del modelo para los modelos candidatos no predeterminados puede tardar unos minutos (normalmente menos de 10 minutos) y se aplican cargos por alojamiento de SageMaker IA. Para obtener más información, consulta los [precios de SageMaker IA](https://aws.amazon.com/sagemaker/pricing/).

El candidato del modelo se abre en la pestaña **Analizar** y las métricas que se muestran son específicas de ese candidato del modelo. Cuando termine de revisar las métricas del candidato del modelo, puede volver atrás o salir de la vista para volver a la **Tabla de clasificación de modelos**.

Si quiere establecer el **Modelo predeterminado** en un candidato diferente, puede elegir el icono de **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) y **Cambiar al modelo predeterminado**. Cambiar el modelo predeterminado por un modelo entrenado con el modo HPO puede tardar varios minutos.

**nota**  
Si el modelo ya está implementado en producción, [registrado en el registro de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-register-model.html) o tiene [automatizaciones](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-manage-automations.html) configuradas, debe eliminar la implementación, el registro de modelos o las automatizaciones antes de cambiar el modelo predeterminado.

# Referencia de métricas
<a name="canvas-metrics"></a>

En las siguientes secciones se describen las métricas que están disponibles en Amazon SageMaker Canvas para cada tipo de modelo.

## Métricas para la predicción numérica
<a name="canvas-numeric-metrics"></a>

En la siguiente lista se definen las métricas para la predicción numérica en SageMaker Canvas y se proporciona información sobre cómo utilizarlas.
+ InferenceLatency — El tiempo aproximado que transcurre entre la solicitud de una predicción del modelo y su recepción desde un punto final en tiempo real en el que se implementa el modelo. Esta métrica se mide en segundos y solo está disponible para los modelos creados con el modo **Ensamblaje**.
+ MEA: error absoluto medio. De media, la predicción para la columna de destino es \$1/- \$1MAE\$1 respecto al valor real.

  Mide la diferencia entre los valores pronosticados y reales cuando se promedian entre todos los valores. MAE se utiliza habitualmente en la predicción numérica para comprender el error de predicción del modelo. Si las predicciones son lineales, MAE representa la distancia media desde una línea predicha hasta el valor real. El MAE se define como la suma de los errores absolutos dividida por el número de observaciones. Los valores van desde 0 hasta el infinito, y los números más pequeños indican un mejor ajuste del modelo a los datos.
+ MAPE: error porcentual absoluto medio. De media, la predicción para la columna de destino es de \$1/- \$1MAPE\$1 % del valor real.

  MAPE es la media de las diferencias absolutas entre los valores reales y los valores pronosticados o estimados, dividida por los valores reales y expresada en porcentaje. Un valor de MAPE más bajo indica mejor rendimiento, ya que significa que los valores pronosticados o estimados se acercan más a los valores reales.
+ MSE: error cuadrático medio o media de las diferencias cuadráticas entre los valores pronosticados y reales.

  Los valores de MSE son siempre positivos. Cuanto mejor prediga los valores reales un modelo, menor será el valor de MSE.
+ R2: el porcentaje de la diferencia en la columna de destino que se puede explicar mediante la columna de entrada.

  Cuantifica en qué medida un modelo puede explicar la varianza de una variable dependiente. Los valores oscilan entre uno (1) y menos uno (-1). Los números más altos indican una fracción mayor de la variabilidad explicada. Los valores cercanos a cero (0) indican que el modelo puede explicar muy poco sobre la variable dependiente. Los valores negativos indican que hay un ajuste deficiente y que el rendimiento del modelo es superado por una función constante (o una línea horizontal).
+ RMSE: raíz del error cuadrático medio o desviación estándar de los errores.

  Mide la raíz cuadrada de la diferencia cuadrática entre los valores pronosticados y los reales, y es la media de todos los valores. Se utiliza para comprender el error de predicción del modelo y es una métrica importante para indicar la presencia de valores atípicos y errores de modelo grandes. Los valores van desde cero (0) hasta infinito, y los números más pequeños indican el modelo que se ajusta mejor a los datos. RMSE depende de la escala y no debe usarse para comparar conjuntos de datos de diferentes tipos.

## Métricas para la predicción categórica
<a name="canvas-categorical-metrics"></a>

En esta sección, se definen las métricas para la predicción categórica en SageMaker Canvas y se proporciona información sobre cómo utilizarlas.

A continuación se ofrece una lista de las métricas disponibles para la predicción de 2 categorías.
+ Exactitud: la exactitud mide el porcentaje de predicciones correctas.

  O la relación entre el número de elementos pronosticados correctamente y el número total de predicciones realizadas. La precisión mide el grado de aproximación de los valores de clase pronosticados con respecto a los valores reales. Los valores de las métricas de precisión varían entre cero (0) y uno (1). Un valor de 1 indica una exactitud perfecta y un 0 indica una inexactitud completa.
+ AUC: un valor entre 0 y 1 que indica en qué medida el modelo es capaz de separar las categorías del conjunto de datos. Un valor de 1 indica que fue capaz de separar las categorías a la perfección.
+ BalancedAccuracy — Mide la relación entre las predicciones precisas y todas las predicciones.

  Esta relación se calcula después de normalizar los positivos verdaderos (TP) y los negativos verdaderos (TN) mediante el número total de valores positivos (P) y negativos (N). Se define de la siguiente manera: `0.5*((TP/P)+(TN/N))`, con valores que van de 0 a 1. La métrica de exactitud equilibrada proporciona una medida mejor de la precisión cuando el número de positivos o negativos es muy diferente entre sí en un conjunto de datos desequilibrado; por ejemplo, cuando solo el 1 % del correo electrónico es no deseado.
+ F1: una medida equilibrada de precisión que tiene en cuenta el equilibrio de clases.

  Es la media armónica de las puntuaciones de precisión y exhaustividad, definidas de la siguiente manera: `F1 = 2 * (precision * recall) / (precision + recall)`. Las puntuaciones de F1 varían entre 0 y 1. Una puntuación de 1 indica el mejor rendimiento posible y 0 indica el peor.
+ InferenceLatency — El tiempo aproximado que transcurre entre la solicitud de una predicción del modelo y su recepción desde un punto final en tiempo real en el que se despliega el modelo. Esta métrica se mide en segundos y solo está disponible para los modelos creados con el modo **Ensamblaje**.
+ LogLoss — La pérdida logarítmica, también conocida como pérdida de entropía cruzada, es una métrica que se utiliza para evaluar la calidad de las salidas probabilísticas, en lugar de las salidas en sí mismas. La pérdida logarítmica es una métrica importante para indicar, con una alta probabilidad, el momento en el que un modelo hace predicciones incorrectas. Los valores están comprendidos entre 0 e infinito. Un valor de 0 representa un modelo que predice perfectamente los datos.
+ Precisión: de todas las veces que se predijo \$1category x\$1, la predicción fue correcta el \$1precision\$1 % de las veces.

  La precisión mide el rendimiento de un algoritmo al predecir los verdaderos positivos (TP) de entre todos los positivos que identifica. Se define de la siguiente manera: `Precision = TP/(TP+FP)`, con valores que van de cero (0) a uno (1). La precisión es una métrica importante cuando el costo de un falso positivo es elevado. Por ejemplo, el costo de un falso positivo es muy elevado si el sistema de seguridad de un avión se equivoca al decir que es seguro volar. Un falso positivo (FP) refleja una predicción positiva que, en realidad, es negativa en los datos.
+ Exhaustividad: el modelo predijo correctamente que \$1recall\$1% sería \$1category x\$1 cuando \$1target\$1column\$1 en realidad era \$1category x\$1.

  La exhaustividad mide el rendimiento de un algoritmo a la hora de predecir correctamente todos los positivos verdaderos (TP) de un conjunto de datos. Un positivo verdadero es una predicción positiva que también es un valor positivo real en los datos. La exhaustividad se define de la siguiente manera: `Recall = TP/(TP+FN)`, con valores que van de 0 a 1. Las puntuaciones más altas reflejan una mejor capacidad del modelo para predecir los verdaderos positivos (TP) en los datos. Tenga en cuenta que a menudo no basta con medir solo la exhaustividad, ya que, si se predice cada salida como un verdadero positivo, se obtiene una puntuación de exhaustividad perfecta.

A continuación se ofrece una lista de las métricas disponibles para la predicción de más de 3 categorías.
+ Exactitud: la exactitud mide el porcentaje de predicciones correctas.

  O la relación entre el número de elementos pronosticados correctamente y el número total de predicciones realizadas. La precisión mide el grado de aproximación de los valores de clase pronosticados con respecto a los valores reales. Los valores de las métricas de precisión varían entre cero (0) y uno (1). Un valor de 1 indica una exactitud perfecta y un 0 indica una inexactitud completa.
+ BalancedAccuracy — Mide la relación entre las predicciones precisas y todas las predicciones.

  Esta relación se calcula después de normalizar los positivos verdaderos (TP) y los negativos verdaderos (TN) mediante el número total de valores positivos (P) y negativos (N). Se define de la siguiente manera: `0.5*((TP/P)+(TN/N))`, con valores que van de 0 a 1. La métrica de exactitud equilibrada proporciona una medida mejor de la precisión cuando el número de positivos o negativos es muy diferente entre sí en un conjunto de datos desequilibrado; por ejemplo, cuando solo el 1 % del correo electrónico es no deseado.
+ F1macro: la puntuación F1macro aplica la puntuación F1 calculando la precisión y la exhaustividad y, a continuación, aplicando la media armónica para calcular la puntuación de F1 de cada clase. A continuación, F1macro calcula la media de las puntuaciones individuales para obtener la puntuación F1macro. Las puntuaciones F1macro varían entre 0 y 1. Una puntuación de 1 indica el mejor rendimiento posible y 0 indica el peor.
+ InferenceLatency — El tiempo aproximado que transcurre entre la solicitud de una predicción del modelo y su recepción desde un punto final en tiempo real en el que se despliega el modelo. Esta métrica se mide en segundos y solo está disponible para los modelos creados con el modo **Ensamblaje**.
+ LogLoss — La pérdida logarítmica, también conocida como pérdida de entropía cruzada, es una métrica que se utiliza para evaluar la calidad de las salidas probabilísticas, en lugar de las salidas en sí mismas. La pérdida logarítmica es una métrica importante para indicar, con una alta probabilidad, el momento en el que un modelo hace predicciones incorrectas. Los valores están comprendidos entre 0 e infinito. Un valor de 0 representa un modelo que predice perfectamente los datos.
+ PrecisionMacro — Mide la precisión calculando la precisión de cada clase y promediando las puntuaciones para obtener la precisión de varias clases. Las puntuaciones están comprendidas entre cero (0) y uno (1). Las puntuaciones más altas reflejan la capacidad del modelo para predecir positivos verdaderos (TP) a partir de todos los positivos que identifica, promediados en varias clases.
+ RecallMacro — Mide la memoria calculando la memoria de cada clase y promediando las puntuaciones para obtener la memoria de varias clases. Las puntuaciones están comprendidas entre 0 y 1. Las puntuaciones más altas reflejan la capacidad del modelo para predecir positivos verdaderos (TP) en un conjunto de datos, mientras que un resultado positivo verdadero refleja una predicción positiva que también es un valor positivo real en los datos. A menudo, no basta con medir solo la exhaustividad, ya que, si se predice cada salida como un verdadero positivo, se obtiene una puntuación de exhaustividad perfecta.

Tenga en cuenta que en las predicciones de 3 categorías o más, también recibe las métricas medias de F1, precisión, exactitud y exhaustividad. Las puntuaciones de estas métricas son solo la media de las puntuaciones de las métricas para todas las categorías.

## Métricas para la predicción de imágenes y de texto
<a name="canvas-cv-nlp-metrics"></a>

A continuación se ofrece una lista de las métricas disponibles para la predicción de imágenes y de texto.
+ Exactitud: la exactitud mide el porcentaje de predicciones correctas.

  O la relación entre el número de elementos pronosticados correctamente y el número total de predicciones realizadas. La precisión mide el grado de aproximación de los valores de clase pronosticados con respecto a los valores reales. Los valores de las métricas de precisión varían entre cero (0) y uno (1). Un valor de 1 indica una exactitud perfecta y un 0 indica una inexactitud completa.
+ F1: una medida equilibrada de precisión que tiene en cuenta el equilibrio de clases.

  Es la media armónica de las puntuaciones de precisión y exhaustividad, definidas de la siguiente manera: `F1 = 2 * (precision * recall) / (precision + recall)`. Las puntuaciones de F1 varían entre 0 y 1. Una puntuación de 1 indica el mejor rendimiento posible y 0 indica el peor.
+ Precisión: de todas las veces que se predijo \$1category x\$1, la predicción fue correcta el \$1precision\$1 % de las veces.

  La precisión mide el rendimiento de un algoritmo al predecir los verdaderos positivos (TP) de entre todos los positivos que identifica. Se define de la siguiente manera: `Precision = TP/(TP+FP)`, con valores que van de cero (0) a uno (1). La precisión es una métrica importante cuando el costo de un falso positivo es elevado. Por ejemplo, el costo de un falso positivo es muy elevado si el sistema de seguridad de un avión se equivoca al decir que es seguro volar. Un falso positivo (FP) refleja una predicción positiva que, en realidad, es negativa en los datos.
+ Exhaustividad: el modelo predijo correctamente que \$1recall\$1% sería \$1category x\$1 cuando \$1target\$1column\$1 en realidad era \$1category x\$1.

  La exhaustividad mide el rendimiento de un algoritmo a la hora de predecir correctamente todos los positivos verdaderos (TP) de un conjunto de datos. Un positivo verdadero es una predicción positiva que también es un valor positivo real en los datos. La exhaustividad se define de la siguiente manera: `Recall = TP/(TP+FN)`, con valores que van de 0 a 1. Las puntuaciones más altas reflejan una mejor capacidad del modelo para predecir los verdaderos positivos (TP) en los datos. Tenga en cuenta que a menudo no basta con medir solo la exhaustividad, ya que, si se predice cada salida como un verdadero positivo, se obtiene una puntuación de exhaustividad perfecta.

Tenga en cuenta que, en el caso de los modelos de predicción de imágenes y texto en los que predice 3 o más categorías, también recibirá las métricas *medias* de F1, precisión, exactitud y exhaustividad. Las puntuaciones de estas métricas son solo la media de las puntuaciones de las métricas para todas las categorías.

## Métricas para previsiones de series temporales
<a name="canvas-time-series-forecast-metrics"></a>

A continuación, se definen las métricas avanzadas para las previsiones de series temporales en Amazon SageMaker Canvas y se proporciona información sobre cómo utilizarlas.
+ Pérdida de cuantil ponderada media (wQL): evalúa el pronóstico promediando la exactitud de los cuantiles P10, P50 y P90. Un valor más bajo indica un modelo más exacto.
+ Error porcentual absoluto ponderado (WAPE): suma del error absoluto normalizado por la suma del objetivo absoluto, que mide la desviación general de los valores pronosticados con respecto a los valores observados. Un valor más bajo indica un modelo más exacto, donde WAPE = 0 es un modelo sin errores.
+ Error cuadrático medio (RMSE): la raíz cuadrada del promedio de errores cuadráticos. Un RMSE más bajo indica un modelo más exacto, donde RMSE = 0 es un modelo sin errores.
+ Error porcentual absoluto medio (MAPE): el porcentaje de error (diferencia porcentual entre el valor medio previsto y el valor real) promediado en todos los puntos temporales. Un valor más bajo indica un modelo más exacto, donde MAPE = 0 es un modelo sin errores.
+ Error escalado absoluto medio (MASE): el error absoluto medio de la previsión normalizado mediante el error absoluto medio de un método de previsión de referencia simple. Un valor más bajo indica un modelo más preciso, en el que MASE <1 se considera mejor que la referencia y MASE >1 se considera peor que la referencia.

# Predicciones con modelos personalizados
<a name="canvas-make-predictions"></a>

Utilice el modelo personalizado que creó en SageMaker Canvas para hacer predicciones para sus datos. En las siguientes secciones se muestra cómo realizar predicciones para modelos de predicción numéricos y categóricos, previsiones de series temporales, modelos de predicción de imágenes y modelos de predicción de texto.

Los modelos personalizados de predicción numérica y categórica, predicción de imágenes y predicción de texto permiten realizar los siguientes tipos de predicciones para sus datos:
+ **Predicciones únicas**: una **Predicción única** se realiza cuando solo se necesita hacer una predicción. Por ejemplo, si tiene una imagen o un pasaje de texto que desea clasificar.
+ **Predicciones por lotes**: una **Predicción por lotes** se realiza cuando se quiere hacer predicciones para un conjunto de datos completo. Puede realizar predicciones por lotes para conjuntos de datos de 1 TB o más. Por ejemplo, puede tener un archivo CSV de valoraciones de clientes sobre las que le gustaría predecir la opinión de los clientes, o tiene una carpeta de archivos de imágenes que le gustaría clasificar. Debería hacer predicciones con un conjunto de datos que coincida con el conjunto de datos de entrada. Canvas le permite realizar predicciones por lotes manualmente, o puede configurar predicciones automáticas por lotes que se ejecutan cada vez que actualiza un conjunto de datos.

Para cada predicción o conjunto de predicciones, SageMaker Canvas devuelve lo siguiente:
+ Los valores previstos
+ La probabilidad de que el valor previsto sea correcto

**Introducción**

Elija uno de los siguientes flujos de trabajo para realizar predicciones con su modelo personalizado:
+ [Predicciones por lotes en SageMaker Canvas](canvas-make-predictions-batch.md)
+ [Predicciones únicas](canvas-make-predictions-single.md)

Después de generar predicciones con el modelo, también puede tomar las siguientes medidas:
+ [Actualice el modelo añadiendo versiones.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-update-model.html) Si quiere intentar mejorar la precisión de la predicción de su modelo, puede crear nuevas versiones del modelo. Puede clonar la configuración y el conjunto de datos de creación de modelos originales, o puede cambiar la configuración y seleccionar un conjunto de datos diferente. Después de añadir una nueva versión, puede revisar y comparar versiones para elegir la mejor.
+ [Registre una versión del modelo en el registro de modelos de IA SageMaker](canvas-register-model.md). Puede registrar versiones de su modelo en el registro de SageMaker modelos, que es una función para rastrear y administrar el estado de las versiones del modelo y los procesos de aprendizaje automático. Un científico de datos o un usuario del MLOps equipo con acceso al registro de SageMaker modelos puede revisar las versiones de su modelo y aprobarlas o rechazarlas antes de implementarlas en producción.
+ [Envíe sus predicciones de lotes a Quick.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-send-predictions.html) En Quick, puede crear y publicar paneles con sus conjuntos de datos de predicción por lotes. Esto puede ayudarle a analizar y compartir los resultados generados por su modelo personalizado.

# Predicciones únicas
<a name="canvas-make-predictions-single"></a>

**nota**  
En esta sección se describe cómo obtener predicciones únicas de su modelo en la aplicación de Canvas. Para obtener información sobre cómo realizar invocaciones en tiempo real en un entorno de producción mediante la implementación del modelo en un punto de conexión, consulte [Implementación de sus modelos en un punto de conexión](canvas-deploy-model.md).

Realice predicciones únicas si desea obtener una predicción para un único punto de datos. Puede usar esta característica para obtener predicciones en tiempo real o para experimentar con valores individuales cambiantes para ver cómo afectan al resultado de la predicción. Tenga en cuenta que las predicciones individuales se basan en un punto de conexión de inferencia asíncrona, que se cierra cuando está inactivo (o no recibe ninguna solicitud de predicción) durante dos horas.

Elija uno de los siguientes procedimientos según el tipo de modelo.

## Realización de predicciones únicas con modelos de predicción numéricos y categóricos
<a name="canvas-make-predictions-numeric-categorical"></a>

Para realizar una predicción única para un modelo de predicción numérico o categórico, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación de Canvas, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo.

1. Tras abrir el modelo, seleccione la pestaña **Predecir**.

1. En la página **Ejecutar predicciones**, elija **Predicción única**.

1. Para cada campo de **Columna**, que representa las columnas de los datos de entrada, puede cambiar el **Valor**. Seleccione el menú desplegable correspondiente al **Valor** que desea cambiar. En el caso de los campos numéricos, puede introducir un número nuevo. Para los campos con etiquetas, puede seleccionar una etiqueta diferente.

1. Cuando lo tenga todo listo para generar la predicción, en el panel de **Predicción** de la derecha, elija **Actualizar**.

En el panel de **Predicción** de la derecha, verá el resultado de la predicción. Puede **Copiar** el gráfico de resultados de la predicción, o también puede seleccionar **Descargar** para descargar el gráfico de resultados de la predicción como una imagen o para descargar los valores y la predicción como un archivo CSV.

## Realización de predicciones únicas con modelos de previsión de series temporales
<a name="canvas-make-predictions-forecast"></a>

Para realizar una predicción única para un modelo de previsión de series temporales, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación de Canvas, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo.

1. Tras abrir el modelo, seleccione la pestaña **Predecir**.

1. Elija **Predicción única**.

1. En **Elemento**, seleccione el elemento para el que desee realizar previsiones de valores.

1. Si ha utilizado un grupo por columnas para entrenar el modelo, seleccione el grupo por categoría para el elemento.

El resultado de la predicción se carga en el panel siguiente, que muestra un gráfico con la previsión para cada cuantil. Seleccione **Vista de esquema** para ver los valores numéricos pronosticados. También puede elegir **Descargar** para descargar los resultados de la predicción en un archivo de imagen o CSV.

## Realización de predicciones únicas con modelos de predicción de imágenes
<a name="canvas-make-predictions-image"></a>

Para realizar una predicción única para un modelo de predicción de imágenes de etiqueta única, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación de Canvas, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo.

1. Tras abrir el modelo, seleccione la pestaña **Predecir**.

1. En la página **Ejecutar predicciones**, elija **Predicción única**.

1. Elija **Importar paquete**.

1. Se le pedirá que suba una imagen. Puede cargar una imagen desde el equipo local o desde un bucket de Amazon S3.

1. Seleccione **Importar** para importar la imagen y generar la predicción.

En el panel de **Resultados de la predicción** de la derecha, el modelo muestra las posibles etiquetas para la imagen junto con una puntuación de **Confianza** para cada etiqueta. Por ejemplo, el modelo podría predecir la etiqueta **mar** de una imagen, con una puntuación de confianza del 96 %. Es posible que el modelo haya predicho la imagen como un **glaciar** con solo una puntuación de confianza del 4 %. Por lo tanto, puede determinar que su modelo es bastante seguro a la hora de predecir imágenes del mar.

## Realización de predicciones únicas con modelos de predicción de texto
<a name="canvas-make-predictions-text"></a>

Para realizar una predicción única para un modelo de predicción de texto multicategoría, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación de Canvas, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo.

1. Tras abrir el modelo, seleccione la pestaña **Predecir**.

1. En la página **Ejecutar predicciones**, elija **Predicción única**.

1. En el **campo de Texto**, introduzca el texto para el que quiera obtener una predicción.

1. Seleccione **Generar resultados de predicción** para obtener su predicción.

En el panel de **Resultados de la predicción** en el lado derecho verá un análisis del texto, además de una puntuación de **Confianza** para cada posible etiqueta. Por ejemplo, si ha escrito una buena reseña sobre un producto, podría obtener un **Positivo** con una puntuación de confianza del 85 %, mientras que la puntuación de confianza de **Neutral** podría ser del 10 % y la puntuación de confianza de **Negativo** solo del 5 %.

# Predicciones por lotes en SageMaker Canvas
<a name="canvas-make-predictions-batch"></a>

Realice predicciones por lotes cuando tenga un conjunto de datos completo para el que desee generar predicciones. Amazon SageMaker Canvas admite predicciones por lotes para conjuntos de datos de un tamaño máximo. PBs 

Hay dos tipos de predicciones por lotes que puede realizar:
+ Las predicciones por lotes [manuales](canvas-make-predictions-batch-manual.md) e producen cuando tiene un conjunto de datos para el que quiera hacer predicciones únicas.
+ Las predicciones [automáticas](canvas-make-predictions-batch-auto.md) por lotes se producen cuando se establece una configuración que se ejecuta cada vez que se actualiza un conjunto de datos específico. Por ejemplo, si ha configurado actualizaciones semanales para un conjunto de datos de inventario de SageMaker Canvas, puede configurar predicciones por lotes automáticas que se ejecuten siempre que actualice el conjunto de datos. Tras configurar un flujo de trabajo de predicciones por lotes automatizado, consulte [¿Cómo administrar las automatizaciones](canvas-manage-automations.md) para obtener más información sobre cómo ver y editar los detalles de la configuración. Para obtener más información acerca de la configuración de actualizaciones de conjuntos de datos automáticas, consulte [Configuración de las actualizaciones automáticas de un conjunto de datos](canvas-update-dataset-auto.md).

**nota**  
Los modelos de previsión de serie temporal no admiten las predicciones automáticas por lotes.  
Solo puede configurar predicciones por lotes automáticas para conjuntos de datos importados mediante carga local o Amazon S3. Además, las predicciones por lotes automáticas solo se pueden ejecutar mientras tenga la sesión iniciada en la aplicación de Canvas. Si cierra sesión en Canvas, los trabajos de predicción automática por lotes se reanudarán cuando vuelva a iniciar sesión.

Para empezar, revise los [Requisitos del conjunto de datos para la predicción por lotes](canvas-make-predictions-batch-preqreqs.md) y, a continuación, elija uno de los siguientes flujos de trabajo de predicción por lotes manuales o automáticos.

**Topics**
+ [Requisitos del conjunto de datos para la predicción por lotes](canvas-make-predictions-batch-preqreqs.md)
+ [Realización de predicciones por lotes manuales](canvas-make-predictions-batch-manual.md)
+ [Realización de predicciones automáticas por lotes](canvas-make-predictions-batch-auto.md)
+ [Edición de su configuración de predicción automática por lotes](canvas-make-predictions-batch-auto-edit.md)
+ [Eliminación de su configuración de predicción automática por lotes](canvas-make-predictions-batch-auto-delete.md)
+ [Visualización de trabajos de predicción por lotes](canvas-make-predictions-batch-auto-view.md)

# Requisitos del conjunto de datos para la predicción por lotes
<a name="canvas-make-predictions-batch-preqreqs"></a>

Para las predicciones por lotes, asegúrese de que sus conjuntos de datos cumplan los requisitos descritos en [Creación de un conjunto de datos](canvas-import-dataset.md). Si el conjunto de datos tiene más de 5 GB, Canvas utiliza Amazon EMR sin servidor para procesar los datos y dividirlos en lotes más pequeños. Después de dividir sus datos, Canvas usa SageMaker AI Batch Transform para hacer predicciones. Es posible que vea los cargos de ambos servicios después de ejecutar predicciones por lotes. Para obtener más información, consulte [Precios de Canvas](https://aws.amazon.com/sagemaker/canvas/pricing/).

Es posible que no pueda realizar predicciones en algunos conjuntos de datos si tienen *esquemas incompatibles*. Un *esquema* es una estructura organizativa. En el caso de un conjunto de datos tabular, el esquema son los nombres de las columnas y el tipo de datos de las columnas. Puede producirse un esquema incompatible por las razones siguientes:
+ El conjunto de datos que utiliza para hacer predicciones tiene menos columnas que el conjunto de datos que utiliza para crear el modelo.
+ Los tipos de datos de las columnas que utilizó para crear el conjunto de datos pueden ser diferentes de los tipos de datos del conjunto de datos que utiliza para hacer predicciones.
+ El conjunto de datos que utiliza para hacer predicciones y el conjunto de datos que ha utilizado para crear el modelo tienen nombres de columna que no coinciden. En los nombres de columna se distingue entre mayúsculas y minúsculas. `Column1` no es lo mismo que `column1`.

Para asegurarse de que puede generar correctamente las predicciones por lotes, haga coincidir el esquema de su conjunto de datos de predicciones por lotes con el conjunto de datos que utilizó para entrenar el modelo.

**nota**  
En el caso de las predicciones por lotes, si eliminó alguna columna al crear el modelo, Canvas volverá a agregar las columnas eliminadas a los resultados de la predicción. Sin embargo, Canvas no agrega las columnas eliminadas a sus predicciones por lotes para los modelos de series temporales.

# Realización de predicciones por lotes manuales
<a name="canvas-make-predictions-batch-manual"></a>

Elija uno de los siguientes procedimientos para realizar predicciones por lotes manuales según el tipo de modelo.

## Realización de predicciones manuales por lotes con modelos de predicción numéricos, categóricos y de series temporales
<a name="canvas-make-predictions-batch-numeric-categorical"></a>

Para realizar predicciones manuales por lotes para tipos de modelos de previsión numéricos, categóricos y de series temporales, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación de Canvas, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo.

1. Tras abrir el modelo, seleccione la pestaña **Predecir**.

1. En la página **Ejecutar predicciones**, elija **Predicción por lotes**.

1. Elija **Seleccionar conjunto de datos** para elegir un conjunto de datos para generar predicciones.

1. En la lista de conjuntos de datos disponibles, seleccione un conjunto de datos y elija **Iniciar predicciones** para obtener predicciones.

Cuando termine de ejecutarse el trabajo de predicción, aparecerá un conjunto de datos de salida en la misma página de la sección **Predicciones**. Este conjunto de datos contiene los resultados y, si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puede seleccionar **Vista previa** para ver una vista previa de los datos del resultado. Puede ver los datos de entrada que coinciden con la predicción y la probabilidad de que la predicción sea correcta. A continuación, puede elegir **Descargar la predicción** y descargar los resultados en un archivo.

## Realización de predicciones por lotes manuales con modelos de predicción de imágenes
<a name="canvas-make-predictions-batch-image"></a>

Para realizar predicciones por lotes manuales para un modelo de predicción de imágenes de etiqueta única, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación de Canvas, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo.

1. Tras abrir el modelo, seleccione la pestaña **Predecir**.

1. En la página **Ejecutar predicciones**, elija **Predicción por lotes**.

1. Elija **Seleccionar conjunto de datos** si ya ha importado su conjunto de datos. Si no es así, seleccione **Importar un nuevo conjunto de datos** y, a continuación, se le guiará a lo largo del flujo de trabajo de importación de datos.

1. En la lista de conjuntos de datos disponibles, seleccione su conjunto de datos y elija **Generar predicciones** para obtener sus predicciones.

Cuando termine de ejecutarse el trabajo de predicción, en la página **Ejecutar predicciones**, verá un conjunto de datos de salida en la sección **Predicciones**. Este conjunto de datos contiene los resultados y, si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puede seleccionar **Ver resultados de predicción** para ver los datos del resultado. Puede ver las imágenes junto con sus etiquetas pronosticadas y sus puntuaciones de confianza. A continuación, puede elegir **Descargar la predicción** para descargar los resultados en un archivo CSV o ZIP.

## Realización de predicciones por lotes manuales con modelos de predicción de texto
<a name="canvas-make-predictions-batch-text"></a>

Para realizar predicciones por lotes manuales para un modelo de predicción de texto multicategoría, haga lo siguiente:

1. En el panel de navegación izquierdo de la aplicación de Canvas, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo.

1. Tras abrir el modelo, seleccione la pestaña **Predecir**.

1. En la página **Ejecutar predicciones**, elija **Predicción por lotes**.

1. Elija **Seleccionar conjunto de datos** si ya ha importado su conjunto de datos. Si no es así, seleccione **Importar un nuevo conjunto de datos** y, a continuación, se le guiará a lo largo del flujo de trabajo de importación de datos. El conjunto de datos que elija debe tener la misma columna de origen que el conjunto de datos con el que creó el modelo.

1. En la lista de conjuntos de datos disponibles, seleccione su conjunto de datos y elija **Generar predicciones** para obtener sus predicciones.

Cuando termine de ejecutarse el trabajo de predicción, en la página **Ejecutar predicciones**, verá un conjunto de datos de salida en la sección **Predicciones**. Este conjunto de datos contiene los resultados y, si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puede seleccionar **Vista previa** para ver los datos del resultado. Puede ver las imágenes junto con sus etiquetas pronosticadas y sus puntuaciones de confianza. A continuación, puede elegir **Descargar la predicción** y descargar los resultados.

# Realización de predicciones automáticas por lotes
<a name="canvas-make-predictions-batch-auto"></a>

**nota**  
Los modelos de previsión de serie temporal no admiten las predicciones automáticas por lotes.

Para configurar un programa de predicciones por lotes automáticas, haga lo siguiente:

1. En el panel de navegación izquierdo de Canvas, elija **Mis modelos**.

1. Elija su modelo.

1. Seleccione la pestaña **Predecir**.

1. Elija **Predicción por lotes**.

1. En **Generar predicciones**, seleccione **Automático**.

1. Aparece el cuadro de diálogo **Automatizar las predicciones por lotes**. Elija **Seleccionar conjunto de datos** y seleccione el conjunto de datos para el que quiera automatizar las predicciones. Tenga en cuenta que solo puede seleccionar un conjunto de datos que se haya importado mediante carga local o Amazon S3.

1. Tras seleccionar un conjunto de datos, seleccione **Configurar**.

Canvas ejecuta un trabajo de predicciones por lotes para el conjunto de datos después de establecer la configuración. Luego, cada vez que [Actualización de un conjunto de datos](canvas-update-dataset.md), ya sea de forma manual o automática, se ejecuta otro trabajo de predicciones por lotes.

Cuando termine de ejecutarse el trabajo de predicción, en la página **Ejecutar predicciones**, verá un conjunto de datos de salida en la sección **Predicciones**. Este conjunto de datos contiene los resultados y, si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puede seleccionar **Vista previa** para ver una vista previa de los datos del resultado. Puede ver los datos de entrada que coinciden con la predicción y la probabilidad de que la predicción sea correcta. A continuación, puede elegir **Descargar** para descargar los resultados.

En las siguientes secciones se describe cómo ver, actualizar y eliminar la configuración de predicción por lotes automática a través de la página de **Conjuntos de datos** de la aplicación de Canvas. Solo puede configurar un máximo de 20 configuraciones automáticas en Canvas. Para obtener más información sobre cómo ver su historial de trabajos de predicciones por lotes automáticas o realizar cambios en la configuración automática a través de la página **Automatizaciones**, consulte [¿Cómo administrar las automatizaciones](canvas-manage-automations.md).

# Edición de su configuración de predicción automática por lotes
<a name="canvas-make-predictions-batch-auto-edit"></a>

Es posible que desee realizar cambios en la configuración de actualización automática de un conjunto de datos, como cambiar la frecuencia de las actualizaciones. También puede desactivar la configuración de actualización automática para pausar las actualizaciones del conjunto de datos.

Cuando se edita una configuración de predicción por lotes, se puede cambiar el conjunto de datos de destino pero no la frecuencia (ya que las predicciones por lotes automáticas se producen siempre que se actualiza el conjunto de datos).

Para editar la configuración de actualización automática, haga lo siguiente:

1. Vaya a la pestaña **Predecir** de su modelo.

1. En **Predicciones**, elija la pestaña **Configuración**.

1. Busque su configuración y elija el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Desde el menú desplegable, elija **Crear una configuración**.

1. Se abre el cuadro de diálogo **Automatizar las predicciones por lotes**. Puede seleccionar otro conjunto de datos y elegir **Configurar** para guardar los cambios.

Su configuración de predicciones por lotes automáticas ahora está actualizada.

Para pausar las predicciones por lotes automáticas, desactive la configuración automática de la siguiente manera:

1. Vaya a la pestaña **Predecir** de su modelo.

1. En **Predicciones**, elija la pestaña **Configuración**.

1. Busque su configuración en la lista y desactive la opción de **Actualización automática**.

Las predicciones por lotes automáticas ahora están pausadas. Puede volver a activar esta opción en cualquier momento para reanudar la programación de actualizaciones.

# Eliminación de su configuración de predicción automática por lotes
<a name="canvas-make-predictions-batch-auto-delete"></a>

Para obtener información sobre cómo eliminar la configuración de predicción de lotes automática, consulte [Eliminación de una configuración automática](canvas-manage-automations-delete.md).

También puede eliminar la configuración del modo siguiente:

1. Vaya a la pestaña **Predecir** de su modelo.

1. En **Predicciones**, elija la pestaña **Configuración**.

1. Busque su configuración en la lista y elija el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Desde el menú desplegable, elija **Eliminar configuración**.

Ahora debería eliminarse su configuración.

# Visualización de trabajos de predicción por lotes
<a name="canvas-make-predictions-batch-auto-view"></a>

Para ver los estados y el historial de trabajos de predicción por lotes, vaya a la pestaña **Predecir** del modelo.

Cada trabajo de predicción por lotes aparece en la pestaña **Predecir** de su modelo. En **Predicciones**, puede ver las pestañas **Todos los trabajos** y **Configuración**:
+ **Todos los trabajos**: en esta pestaña, puede ver todos los trabajos de predicción automática y manual por lotes de este modelo. Puede filtrar los trabajos por nombre de configuración. Para cada trabajo, puede ver los campos siguientes:
  + **Estado**: estado actual del trabajo de predicción por lotes. Si el estado es **Error** o **Error parcial**, puede pasar el cursor sobre el estado para ver un mensaje de error más detallado que le ayude a solucionar el problema.
  + **Conjunto de datos de entrada**: nombre del conjunto de datos de entrada de Canvas, incluida la versión del conjunto de datos.
  + **Tipo de predicción**: si el trabajo de predicción fue automático o manual.
  + **Filas**: número de filas pronosticado.
  + **Nombre de la configuración**: nombre de la configuración del trabajo de predicción por lotes.
  + **QuickSight**— Describe si ha enviado las predicciones de lotes a Quick.
  + **Creado**: hora de creación del trabajo de predicción de lotes.

  Si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puede elegir **Ver detalles**, **Previsualizar la predicción**, **Descargar la predicción** o **Enviar a Quick**. Si eliges **Ver detalles**, se abre una página que muestra todos los detalles del trabajo de predicción de lotes, incluido el estado, las configuraciones de los datos de entrada y salida, información sobre las instancias utilizadas para completar el trabajo y el acceso a los CloudWatch registros de Amazon. La página es similar a la captura de pantalla siguiente.  
![\[Página de detalles del trabajo de predicción por lotes que muestra todos los detalles adicionales sobre un trabajo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-view-batch-prediction-job-details.png)
+ **Configuración**: en esta pestaña, puede ver todas las configuraciones de predicción automática por lotes que ha creado para este modelo. Para cada configuración, puede ver campos como la marca temporal del momento en que fue **Creada**, el **Conjunto de datos de entrada** del que se hace un seguimiento en busca de actualizaciones y el **Siguiente trabajo programado**, que es el momento en el que está programado que se inicie el siguiente trabajo de predicción automática. Si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puede elegir **Ver todos los trabajos** para ver el historial de trabajos y los trabajos en curso de la configuración.



# Envía las predicciones a Quick
<a name="canvas-send-predictions"></a>

**nota**  
Puede enviar predicciones por lotes a Quick para obtener modelos de predicción numérica y categórica y de series temporales. Se excluyen los modelos de predicción de imágenes de etiqueta única y de predicción de texto multicategoría.

Una vez generadas las predicciones por lotes con modelos tabulares personalizados en SageMaker Canvas, puede enviar esas predicciones como archivos CSV a Quick, que es un servicio de inteligencia empresarial (BI) para crear y publicar cuadros de mando predictivos.

Por ejemplo, si creó un modelo de predicción de dos categorías para determinar si un cliente abandonará sus clientes, puede crear un panel predictivo visual en Quick para mostrar el porcentaje de clientes que se espera que abandonen el mercado. Para obtener más información sobre Quick, consulta la Guía [rápida del usuario](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html).

En las siguientes secciones, se muestra cómo enviar las predicciones de lotes a Quick para su análisis.

## Antes de empezar
<a name="canvas-send-predictions-prereqs"></a>

Su usuario debe tener los permisos AWS Identity and Access Management (IAM) necesarios para enviar sus predicciones a Quick. El administrador puede configurar los permisos de IAM para su usuario. Para obtener más información, consulte [Otorgue a sus usuarios permisos para enviar predicciones a Quick](canvas-quicksight-permissions.md).

Su cuenta Quick debe contener el espacio de `default` nombres, que se configuró cuando creó su cuenta Quick por primera vez. Ponte en contacto con tu administrador para que te ayude a acceder a Quick. Para obtener más información, consulte [Configuración de Quick](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html) en la *Guía rápida del usuario*.

Su cuenta Quick debe crearse en la misma región que su aplicación de Canvas. Si la región de origen de su cuenta Quick es diferente de la región de su aplicación Canvas, debe [cerrar](https://docs.aws.amazon.com/quicksight/latest/user/closing-account.html) y volver a crear su cuenta Quick o [configurar una aplicación Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites) en la misma región que su cuenta Quick. Puede comprobar su región de inicio de Quick de la siguiente manera (suponiendo que ya tenga una cuenta de Quick):

1. Abre la [consola Quick](https://quicksight.aws.amazon.com/).

1. Cuando se carga la página, su región de inicio rápido se adjunta a la URL en el siguiente formato:`https://<your-home-region>.quicksight.aws.amazon.com/`.

Debe conocer los nombres de usuario de los usuarios rápidos a los que desea enviar sus predicciones. Puede enviarse las predicciones a usted mismo o a otros usuarios que tengan los permisos adecuados. Los usuarios a los que envíes predicciones deben estar en el espacio de `default` [nombres](https://docs.aws.amazon.com/quicksight/latest/user/namespaces.html) de tu cuenta de Quick y tener el rol `Author` o `Admin` rol en Quick.

Además, Quick debe tener acceso al bucket Amazon S3 predeterminado de SageMaker AI para su dominio, que se denomina con el siguiente formato:`sagemaker-{REGION}-{ACCOUNT_ID}`. La región debe ser la misma que la región de origen de su cuenta Quick y la región de su aplicación Canvas. Para obtener información sobre cómo dar acceso rápido a las predicciones de lotes almacenadas en su bucket de Amazon S3, consulte el tema [No puedo conectarme a Amazon S3](https://docs.aws.amazon.com/quicksight/latest/user/troubleshoot-connect-S3.html) en la *Guía rápida del usuario*.

## Formatos de datos admitidos
<a name="canvas-send-predictions-formatting"></a>

Antes de enviar sus predicciones, compruebe que el formato de datos de sus predicciones por lotes sea compatible con Quick.
+ Para obtener más información sobre los formatos de datos aceptados para los datos de series temporales, consulte [Formatos de fecha compatibles](https://docs.aws.amazon.com/quicksight/latest/user/supported-date-formats.html) en la *Guía rápida del usuario*.
+ Para obtener más información sobre los valores de datos que podrían impedirle enviarlos a Quick, consulte [Valores no admitidos en los datos en](https://docs.aws.amazon.com/quicksight/latest/user/unsupported-data-values.html) la Guía *rápida del usuario*.

Tenga en cuenta también que Quick usa el carácter `"` como calificador de texto, por lo que si sus datos de Canvas contienen algún `"` carácter, asegúrese de cerrar todas las comillas que coincidan. Cualquier comilla que no coincida puede provocar problemas al enviar el conjunto de datos a Quick.

## Envía tus predicciones de lotes a Quick
<a name="canvas-send-predictions-send"></a>

Utilice el siguiente procedimiento para enviar sus predicciones a Quick:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo.

1. Seleccione la pestaña **Predecir**.

1. En **Predicciones**, seleccione el conjunto de datos (o conjuntos de datos) de predicciones por lotes que quiera compartir. Puede compartir hasta 5 conjuntos de datos de predicciones por lotes a la vez.

1. Después de seleccionar el conjunto de datos, elija **Enviar a Quick**.
**nota**  
El botón **Enviar a rápido** no se activa a menos que selecciones uno o más conjuntos de datos.

   Como alternativa, puede obtener una vista previa de sus predicciones seleccionando el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) y, a continuación, **Ver los resultados de la predicción**. En la vista previa del conjunto de datos, puedes elegir **Enviar a Quick**. La siguiente captura de pantalla muestra el botón **Enviar a rápido** en una vista previa del conjunto de datos.  
![\[Captura de pantalla de una vista previa de un conjunto de datos con el botón Enviar a rápido en la parte inferior.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/send-to-quicksight-preview.png)

1. En el cuadro de diálogo **Enviar a rápido**, haga lo siguiente:

   1. Para **QuickSight los usuarios**, introduzca el nombre de los usuarios rápidos a los que quiere enviar sus predicciones. Si quiere enviárselas a usted mismo, introduzca su propio nombre de usuario. Solo puede enviar predicciones a los usuarios del `default` espacio de nombres de la cuenta Quick y el usuario debe tener el `Admin` rol `Author` o en Quick.

   1. Seleccione **Enviar**.

   La siguiente captura de pantalla muestra el cuadro de diálogo **Enviar a Quick**:  
![\[El cuadro de diálogo Enviar a rápido.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/send-to-quicksight.png)

Después de enviar las predicciones por lotes, el **QuickSight**campo de los conjuntos de datos que envió se muestra como`Sent`. En el cuadro de confirmación que confirma el envío de sus predicciones, puede seleccionar **Abrir rápido** para abrir la aplicación Quick. Si ha terminado de usar Canvas, debe [cerrar sesión](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-log-out.html) en la aplicación de Canvas.

Los usuarios de Quick a los que haya enviado los conjuntos de datos pueden abrir su aplicación Quick y ver los conjuntos de datos de Canvas que se han compartido con ellos. A continuación, pueden crear paneles predictivos con los datos. Para obtener más información, consulte [Introducción al análisis rápido de datos](https://docs.aws.amazon.com/quicksight/latest/user/getting-started.html) en la Guía *rápida del usuario*.

De forma predeterminada, todos los usuarios a los que se envían las predicciones tienen permisos de propietario para el conjunto de datos en Quick. Los propietarios pueden crear análisis, actualizar, editar, eliminar y volver a compartir conjuntos de datos. Los cambios que los propietarios realizan en un conjunto de datos cambian el conjunto de datos para todos los usuarios con acceso. Para cambiar los permisos, ve al conjunto de datos en Quick y administra sus permisos. Para obtener más información, consulte [Visualización y edición de los usuarios con permisos con los que se comparte un conjunto](https://docs.aws.amazon.com/quicksight/latest/user/sharing-data-sets.html#view-users-data-set) de datos en la *Guía rápida del usuario*.

# Descarga de un modelo de cuaderno
<a name="canvas-notebook"></a>

**nota**  
La característica de cuaderno del modelo está disponible para modelos tabulares de compilación rápida y estándar, y modelos fundacionales afinados. Los cuadernos del modelo no son compatibles con los modelos de predicción de imágenes, predicción de texto o predicción de series temporales.  
Si desea generar un modelo de cuaderno para un modelo tabular creado antes de la inicialización de esta característica, debe volver a crear el modelo para generar un cuaderno.

Para los modelos aptos que haya creado correctamente en Amazon SageMaker Canvas, se generará un cuaderno de Jupyter que contiene un informe de todos los pasos de creación del modelo. Este cuaderno de Jupyter contiene código Python que puede ejecutar localmente o en un entorno como Amazon SageMaker Studio Classic para replicar los pasos necesarios para crear su modelo. El cuaderno puede resultarle útil si desea experimentar con el código o ver los detalles del backend de cómo Canvas crea modelos.

Para agregar el cuaderno del modelo, haga lo siguiente:

1. Abre la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. Elija el modelo y la versión que ha creado.

1. En la página de la versión del modelo, elija el icono de **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) en el encabezado.

1. En el menú desplegable, seleccione **Ver cuaderno**.

1. Aparece una ventana emergente con el contenido del cuaderno. Puede seleccionar **Descargar** y, a continuación, realizar una de las siguientes acciones:

   1. Seleccione **Descargar** para guardar el contenido del cuaderno en el dispositivo local.

   1. Elija **Copiar URI de S3** para copiar la ubicación de Amazon S3 en la que está almacenado el cuaderno. El cuaderno se almacena en el bucket de Amazon S3 especificado en la **Configuración de almacenamiento de Canvas**, que se configura en la sección [Requisitos previos para configurar Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).

Ahora debería poder ver el cuaderno de forma local o como objeto en Amazon S3. Puede cargar el cuaderno en un IDE para editar y ejecutar el código, o puede compartir el cuaderno con otros miembros de su organización para que lo revisen.

# Envía tu modelo a Quick
<a name="canvas-send-model-to-quicksight"></a>

Si usa Quick y quiere aprovechar SageMaker Canvas en sus visualizaciones de Quick, puede crear un modelo de Amazon SageMaker Canvas y usarlo como un *campo predictivo* en su conjunto de datos de Quick. Un *campo predictivo* es un campo de su conjunto de datos Quick que puede realizar predicciones para una columna determinada de su conjunto de datos, de forma similar a como los usuarios de Canvas hacen predicciones individuales o por lotes con un modelo. Para obtener más información sobre cómo integrar las capacidades predictivas de Canvas en sus conjuntos de datos rápidos, consulte la [integración de SageMaker Canvas](https://docs.aws.amazon.com/quicksight/latest/user/sagemaker-canvas-integration.html) en la [Guía rápida del usuario](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html).

Los siguientes pasos explican cómo puede agregar un campo predictivo a su conjunto de datos de Quick mediante un modelo de Canvas:

1. Abra la aplicación de Canvas y cree un modelo con su conjunto de datos.

1. Después de crear el modelo en Canvas, envíalo a Quick. Al enviar el modelo a Quick, se descarga automáticamente un archivo de esquema en su máquina local. Cargue este archivo de esquema en Quick en el siguiente paso.

1. Abra Quick y elija un conjunto de datos con el mismo esquema que el conjunto de datos que utilizó para crear el modelo. Agregue un campo predictivo al conjunto de datos y haga lo siguiente:

   1. Especifique el modelo enviado desde Canvas.

   1. Cargue el archivo de esquema que se descargó en el paso 2.

1. Guarde y publique los cambios y, a continuación, genere predicciones para el nuevo conjunto de datos. Quick usa el modelo para rellenar la columna de destino con predicciones.

Para enviar un modelo de Canvas a Quick, debe cumplir los siguientes requisitos previos:
+ Debe tener tanto Canvas como Quick configurados. Su cuenta Quick debe crearse de la Región de AWS misma manera que su aplicación de Canvas. Si la región de origen de su cuenta Quick es diferente de la región de su aplicación Canvas, debe [cerrar](https://docs.aws.amazon.com/quicksight/latest/user/closing-account.html) y volver a crear su cuenta Quick o [configurar una aplicación Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites) en la misma región que su cuenta Quick. Su cuenta Quick también debe contener el espacio de nombres predeterminado, que configuró al crear su cuenta Quick por primera vez. Ponte en contacto con tu administrador para que te ayude a acceder a Quick. Para obtener más información, consulte [Configuración de Quick](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html) en la *Guía rápida del usuario*.
+ Su usuario debe tener los permisos AWS Identity and Access Management (IAM) necesarios para enviar sus predicciones a Quick. El administrador puede configurar los permisos de IAM para su usuario. Para obtener más información, consulte [Conceder a sus usuarios permisos para enviar predicciones a Quick](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-quicksight-permissions.html).
+ Debe tener acceso rápido al depósito de Amazon S3 que especificó para el almacenamiento de aplicaciones de Canvas. Para obtener más información, consulte [Configurar el almacenamiento de Amazon S3](canvas-storage-configuration.md).

# Pronósticos de series temporales en Amazon SageMaker Canvas
<a name="canvas-time-series"></a>

**nota**  
Los modelos de previsión de series temporales solo se admiten para conjuntos de datos tabulares.

Amazon SageMaker Canvas le permite utilizar pronósticos de series temporales de aprendizaje automático. Las previsiones de series temporales le permiten realizar predicciones que pueden variar con el tiempo.

Puede hacer una previsión de series temporales para los siguientes ejemplos:
+ Previsión del inventario para los próximos meses.
+ Cantidad de artículos vendidos en los próximos cuatro meses.
+ Efecto de reducir el precio en las ventas durante la temporada navideña.
+ Inventario de artículos en los próximos 12 meses.
+ Número de clientes que entrarán en una tienda en las próximas horas.
+ Predicción de cómo afecta una reducción del 10 % en el precio de un producto a las ventas durante un período de tiempo.

Para realizar una previsión de series temporales, el conjunto de datos debe tener lo siguiente:
+ Una columna de fecha y hora con todos los valores del tipo `datetime`.
+ Una columna de destino que contenga los valores que se utilizan para pronosticar valores futuros.
+ Una columna de ID de elemento que contiene los identificadores únicos de cada elemento del conjunto de datos, como los números de SKU.

Los valores `datetime` de la columna de marca temporal deben usar uno de los siguientes formatos:
+ `YYYY-MM-DD HH:MM:SS`
+ `YYYY-MM-DDTHH:MM:SSZ`
+ `YYYY-MM-DD`
+ `MM/DD/YY`
+ `MM/DD/YY HH:MM`
+ `MM/DD/YYYY`
+ `YYYY/MM/DD HH:MM:SS`
+ `YYYY/MM/DD`
+ `DD/MM/YYYY`
+ `DD/MM/YY`
+ `DD-MM-YY`
+ `DD-MM-YYYY`

Puede realizar previsiones para los siguientes intervalos:
+ 1 min
+ 5 min
+ 15 min
+ 30 min
+ 1 hora
+ 1 día
+ 1 semana
+ 1 mes
+ 1 año

## Valores futuros en su conjunto de datos de entrada
<a name="canvas-time-series-future"></a>

Canvas detecta automáticamente las columnas de su conjunto de datos que podrían contener valores futuros. Si están presentes, estos valores pueden mejorar la precisión de las predicciones. Canvas marca estas columnas específicas con una etiqueta `Future values`. Canvas deduce la relación entre los datos de estas columnas y la columna de destino que está intentando predecir y utiliza esa relación para generar previsiones más precisas.

Por ejemplo, puede prever la cantidad de helado que venderá una tienda de comestibles. Para hacer una previsión, debe tener una columna de fecha y hora y una columna que indique la cantidad de helado que vendió la tienda. Para obtener una previsión más precisa, su conjunto de datos también puede incluir el precio, la temperatura ambiente, el sabor del helado o un identificador único del helado.

Las ventas de helados pueden aumentar cuando el clima es más cálido. Una disminución en el precio del helado podría provocar la venta de más unidades. Tener una columna con datos de temperatura ambiente y otra con datos de precios puede mejorar la capacidad de pronosticar el número de unidades de helado que vende la tienda de comestibles.

Si bien proporcionar valores futuros es opcional, le ayuda a realizar análisis hipotéticos directamente en la aplicación de Canvas, lo que le muestra cómo los cambios en los valores futuros podrían alterar sus predicciones.

## Gestión de valores faltantes
<a name="canvas-time-series-missing"></a>

Es posible que le falten datos por diferentes motivos. El motivo de la falta de datos podría indicar cómo quiere que Canvas los impute. Por ejemplo, su organización podría usar un sistema automático que solo registre cuándo se produce una venta. Si utiliza un conjunto de datos que provenga de este tipo de sistema automático, tendrá valores faltantes en la columna de destino.

**importante**  
Si faltan valores en la columna de destino, le recomendamos que utilice un conjunto de datos que no los tenga. SageMaker Canvas usa la columna objetivo para pronosticar valores futuros. Los valores faltantes en la columna de destino pueden reducir considerablemente la precisión de la previsión.

En el caso de los valores faltantes en el conjunto de datos, Canvas imputa automáticamente los valores faltantes rellenando la columna de destino con `0` y otras columnas numéricas con el valor de la mediana de la columna.

Sin embargo, puede seleccionar su propia lógica de rellenado para la columna de destino y otras columnas numéricas de sus conjuntos de datos. Las columnas de destino tienen pautas y restricciones de llenado diferentes a las del resto de las columnas numéricas. Las columnas de destino se rellenan hasta el final del período histórico, mientras que las columnas numéricas se rellenan tanto para los períodos históricos como para los futuros hasta el final del horizonte de previsión. Canvas solo rellena los valores futuros en una columna numérica si sus datos tienen al menos un registro con una marca de tiempo futura y un valor para esa columna específica.

Puede elegir una de las siguientes opciones de lógica de rellenado para imputar valores faltantes en sus datos:
+ `zero`: rellenar con `0`.
+ `NaN`: rellenar con NaN o no con un número. Esto solo se admite en la columna de destino.
+ `mean`: rellenar con el valor medio de la serie de datos.
+ `median`: rellenar con el valor mediano de la serie de datos.
+ `min`: rellenar con el valor mínimo de la serie de datos.
+ `max`: rellenar con el valor máximo de la serie de datos.

Al elegir una lógica de rellenado, debe considerar cómo interpretará su modelo la lógica. Por ejemplo, en un caso comercial, registrar cero ventas de un artículo disponible es diferente de registrar cero ventas de un artículo no disponible, ya que este último caso no implica necesariamente una falta de interés del cliente en el artículo no disponible. En este caso, rellenar con `0` en la columna de destino del conjunto de datos podría provocar que el modelo no tenga un sesgo suficiente en sus predicciones y deducir una falta de interés de los clientes por los artículos no disponibles. Por el contrario, rellenar con `NaN` podría provocar que el modelo ignore los casos reales en los que no se venda ningún artículo de los artículos disponibles.

## Tipos de previsiones
<a name="canvas-time-series-types"></a>

Puede realizar uno de los siguientes tipos de previsiones:
+ **Elemento único**
+ **Todos los elementos**

Para obtener una previsión de todos los elementos de su conjunto de datos, SageMaker Canvas devuelve una previsión de los valores futuros de cada elemento de su conjunto de datos.

Para una previsión de un solo elemento, usted especifica el elemento y SageMaker Canvas devuelve una previsión para los valores futuros. La previsión incluye un gráfico lineal que traza los valores pronosticados a lo largo del tiempo.

**Topics**
+ [Valores futuros en su conjunto de datos de entrada](#canvas-time-series-future)
+ [Gestión de valores faltantes](#canvas-time-series-missing)
+ [Tipos de previsiones](#canvas-time-series-types)
+ [Opciones adicionales para previsión de información](canvas-additional-insights.md)

# Opciones adicionales para previsión de información
<a name="canvas-additional-insights"></a>

En Amazon SageMaker Canvas, puede usar los siguientes métodos opcionales para obtener más información a partir de su pronóstico:
+ Columna de grupo
+ Calendario de días festivos
+ Escenario hipotético

Puede especificar una columna de su conjunto de datos como **columna de grupo**. Amazon SageMaker Canvas agrupa la previsión por cada valor de la columna. Por ejemplo, puede agrupar la previsión en columnas que contengan datos de precios o identificadores de artículos únicos. Agrupar una previsión por una columna le permite hacer previsiones más específicas. Por ejemplo, si agrupa una previsión en una columna que contenga identificadores de elementos, podrá ver la previsión de cada elemento.

Las ventas generales de artículos pueden verse afectadas por la presencia de días festivos. Por ejemplo, en los Estados Unidos, la cantidad de artículos vendidos en noviembre y diciembre puede diferir considerablemente de la cantidad de artículos vendidos en enero. Si utiliza los datos de noviembre y diciembre para pronosticar las ventas de enero, es posible que los resultados no sean precisos. Si utiliza un calendario de días festivos, evitará obtener resultados imprecisos. Puede utilizar un calendario de festivos para 251 países.

Para hacer una previsión sobre un solo elemento de su conjunto de datos, puede usar escenarios hipotéticos. Un escenario hipotético le da la posibilidad de cambiar los valores de sus datos y alterar la previsión. Por ejemplo, puede responder a las siguientes preguntas utilizando un escenario hipotético: “¿Qué pasaría si bajara los precios? ¿Cómo afectaría eso a la cantidad de artículos vendidos?”.

# Añadir versiones de modelos en Amazon SageMaker Canvas
<a name="canvas-update-model"></a>

En Amazon SageMaker Canvas, puedes actualizar los modelos que has creado añadiendo *versiones*. Cada modelo que cree tiene un número de versión. El primer modelo es la versión 1 o `V1`. Puede utilizar las versiones del modelo para ver los cambios en la precisión de las predicciones al actualizar los datos o utilizar [transformaciones avanzadas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html).

Al ver su modelo, SageMaker Canvas le muestra el historial del modelo para que pueda comparar todas las versiones del modelo que creó. También puede eliminar las versiones que ya no le resulten útiles. Al crear varias versiones del modelo y evaluar su exactitud, puede mejorar el rendimiento del modelo de forma iterativa.

**nota**  
Los modelos de predicción de texto e imagen solo admiten una versión del modelo.

Para agregar una versión del modelo puede clonar una versión existente o crear una nueva. 

Al clonar una versión existente, se copia la configuración del modelo actual, incluida la receta del modelo y el conjunto de datos de entrada. Como alternativa, puede crear una nueva versión si desea configurar una nueva receta del modelo o elegir un conjunto de datos diferente. 

Si crea una nueva versión y selecciona un conjunto de datos diferente, debe elegir un conjunto de datos con la misma columna de destino y el mismo esquema que el conjunto de datos de la versión 1.

Para poder añadir una nueva versión debe crear correctamente al menos una versión del modelo. A continuación, puede [registrar una versión del modelo en el Registro de SageMaker modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-register-model.html). Utilice el registro para realizar un seguimiento de las versiones del modelo y para colaborar con los usuarios de Studio Classic en la aprobación de modelos de producción.

Si ha realizado una compilación rápida para la primera versión del modelo, tiene la opción de ejecutar una compilación estándar al añadir una versión. Las compilaciones estándar suelen tener mayor exactitud. Por tanto, si confía en la configuración de compilación rápida, puede ejecutar una compilación estándar para crear una versión final del modelo. Para obtener más información sobre las diferencias entre compilaciones rápidas y compilaciones estándar, consulte [Cómo funcionan los modelos personalizados](canvas-build-model.md).

Los siguientes procedimientos muestran cómo agregar versiones del modelo; el procedimiento es diferente en función de si se agrega una versión del mismo tipo de compilación o de un tipo de compilación diferente (rápida o estándar). Utilice el procedimiento **Adición de una nueva versión del modelo** para añadir versiones del mismo tipo de compilación. Para agregar una versión del modelo de compilación estándar después de ejecutar una compilación rápida, siga el procedimiento **Ejecución de una compilación estándar**.

**Adición de una nueva versión del modelo**

1. Abra su aplicación SageMaker Canvas. Para obtener más información, consulte [Cómo empezar a usar Amazon SageMaker Canvas](canvas-getting-started.md).

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo. Para buscar el modelo, puede elegir **Filtrar por tipo de problema**.

1. Cuando se abra el modelo, pulse el botón **Añadir versión** en el panel superior.

1. En el menú desplegable, seleccione una de las siguientes opciones:

   1. **Añadir una nueva versión desde cero**: al seleccionar esta opción se abre la pestaña **Compilar** con el borrador de una nueva versión del modelo. Puede seleccionar un conjunto de datos diferente (siempre que el esquema coincida con el esquema del conjunto de datos de la primera versión del modelo) y configurar una nueva receta de modelo. Para obtener más información acerca de la compilación de una versión del modelo, consulte [Creación de un modelo](canvas-build-model-how-to.md).

   1. **Clonar una versión existente con configuraciones**: un cuadro de diálogo le pide que seleccione la versión que desea clonar. Una vez que haya seleccionado la versión que desee, elija **Clonar**. Se abre la pestaña **Compilar** con el borrador de una nueva versión del modelo. Todas las configuraciones de recetas del modelo se copian de la versión clonada. Para obtener más información acerca de la compilación de una versión del modelo, consulte [Creación de un modelo](canvas-build-model-how-to.md).

**Ejecución de una compilación estándar**

1. Abra su aplicación SageMaker Canvas. Para obtener más información, consulte [Cómo empezar a usar Amazon SageMaker Canvas](canvas-getting-started.md).

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo. Puede elegir **Filtrar por tipo de problema** para buscar el modelo más fácilmente.

1. Cuando se abra el modelo, elija la pestaña **Analizar**.

1. Elija **Compilación estándar**.  
![\[Pestaña Analizar de un modelo de Canvas que muestra el botón de compilación estándar.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-add-version-quick-to-standard.png)

   En la página del borrador del modelo que se abre en la pestaña **Compilación** puede modificar la configuración del modelo e iniciar una compilación. Para obtener más información acerca de la compilación de una versión del modelo, consulte [Creación de un modelo](canvas-build-model-how-to.md).

Ahora debería una nueva compilación de la versión del modelo en curso. Para obtener más información acerca de la creación de un modelo, consulte [Cómo funcionan los modelos personalizados](canvas-build-model.md).

Después de crear una versión del modelo, puede volver a la página de detalles del modelo en cualquier momento para ver todas las versiones o añadir más versiones. En la siguiente imagen se muestra la página **Versiones** de un modelo.

![\[La página Versiones de un modelo en Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/model-versions.png)


En la página **Versiones**, puede ver la siguiente información para cada una de las versiones de su modelo:
+ **Estado**: este campo indica si el modelo se está compilando actualmente (`In building`), si ha terminado de compilarse (`Ready`), si no se ha podido compilar (`Failed`) o si aún se está editando (`In draft`).
+ **Puntuación del modelo**, **F1**, **Precisión**, **Recuerdo** y **AUC**: si activa la opción **Mostrar métricas avanzadas** en esta página, podrá ver estas métricas del modelo. Estas métricas indican la exactitud y el rendimiento del modelo. Para obtener más información, consulte [Evaluar el modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html).
+ **Compartida**: este campo indica si ha compartido la versión del modelo con los usuarios de SageMaker Studio Classic.
+ **Registro de modelos**: este campo le indica si ha registrado la versión en un registro de modelos. Para obtener más información, consulte [Registre una versión del modelo en el registro de modelos de IA SageMaker](canvas-register-model.md).

# MLOps
<a name="canvas-mlops"></a>

Después de crear un modelo en SageMaker Canvas en el que se sienta seguro, es posible que desee integrarlo con los procesos de operaciones (MLOps) de aprendizaje automático de su organización. MLOps incluye tareas comunes, como la implementación de un modelo para su uso en producción o la configuración de canalizaciones de integración e implementación continuas (CI/CD).

Los siguientes temas describen cómo puede utilizar las funciones de Canvas para utilizar un modelo creado en Canvas en producción.

**Topics**
+ [Registre una versión del modelo en el registro de modelos de IA SageMaker](canvas-register-model.md)
+ [Implementación de sus modelos en un punto de conexión](canvas-deploy-model.md)
+ [Visualización de sus implementaciones](canvas-deploy-model-view.md)
+ [Actualización de una configuración de implementación](canvas-deploy-model-update.md)
+ [Pruebe la implementación](canvas-deploy-model-test.md)
+ [Invocación de un punto de conexión](canvas-deploy-model-invoke.md)
+ [Eliminación de la implementación de un modelo](canvas-deploy-model-delete.md)

# Registre una versión del modelo en el registro de modelos de IA SageMaker
<a name="canvas-register-model"></a>

Con SageMaker Canvas, puede crear múltiples iteraciones o versiones de su modelo para mejorarlo con el tiempo. Es posible que desee crear una nueva versión del modelo si adquiere mejores datos de entrenamiento o si quiere intentar mejorar la exactitud del modelo. Para obtener más información sobre cómo agregar versiones al modelo, consulte [Actualización de un modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-update-model.html).

Una vez que haya [creado un modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) en el que se sienta seguro, es posible que desee evaluar su rendimiento y hacer que un científico de datos o un MLOps ingeniero de su organización lo revise antes de usarlo en producción. Para ello, puede registrar las versiones de sus modelos en el [Registro de SageMaker modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html). El registro de SageMaker modelos es un repositorio que los científicos o ingenieros de datos pueden utilizar para catalogar los modelos de aprendizaje automático (ML) y gestionar las versiones de los modelos y sus metadatos asociados, como las métricas de entrenamiento. También pueden gestionar y registrar el estado de aprobación de un modelo.

Tras registrar las versiones de los modelos en el Registro de SageMaker modelos, un científico de datos o su MLOps equipo pueden acceder al Registro de SageMaker modelos a través de [SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html), que es un entorno de desarrollo integrado (IDE) basado en la web para trabajar con modelos de aprendizaje automático. En la interfaz del registro de SageMaker modelos de Studio Classic, el científico de datos o el MLOps equipo pueden evaluar el modelo y actualizar su estado de aprobación. Si el modelo no cumple con sus requisitos, el científico de datos o el MLOps equipo pueden actualizar el estado a`Rejected`. Si el modelo cumple con sus requisitos, el científico de datos o el MLOps equipo pueden actualizar el estado a`Approved`. Luego, pueden [implementar el modelo en un punto final](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html#deploy-model-prereqs) o [automatizar la implementación del modelo mediante](https://aws.amazon.com/blogs/machine-learning/building-automating-managing-and-scaling-ml-workflows-using-amazon-sagemaker-pipelines/) CI/CD canalizaciones. Puede utilizar la función de registro de modelos de SageMaker IA para integrar sin problemas los modelos creados en Canvas con los MLOps procesos de su organización.

El siguiente diagrama resume un ejemplo del registro de una versión de modelo creada en Canvas en el SageMaker Registro de Modelos para integrarla en un MLOps flujo de trabajo.

![\[Los pasos para registrar una versión de modelo creada en Canvas para su integración en un MLOps flujo de trabajo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-model-registration-diagram.jpg)


Puede registrar las versiones de modelos tabulares, de imagen y de texto en el Registro de SageMaker modelos. Esto incluye modelos de pronóstico de series temporales y modelos básicos JumpStart basados en [ajustes precisos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat-fine-tune.html).

**nota**  
Actualmente, no se pueden registrar en el Registro de modelos los modelos de cimentación optimizados basados en Amazon Bedrock y creados en Canvas. SageMaker 

En las siguientes secciones, se muestra cómo registrar una versión de modelo desde Canvas en el Registro de SageMaker Modelos.

## Administración de permisos
<a name="canvas-register-model-prereqs"></a>

De forma predeterminada, tiene permisos para registrar versiones de modelos en el Registro de SageMaker modelos. SageMaker AI concede estos permisos a todos los perfiles de usuario de Canvas nuevos y existentes a través de la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política, que se adjunta a la función de ejecución de AWS IAM para el dominio de SageMaker IA que aloja su aplicación de Canvas.

Si su administrador de Canvas está configurando un nuevo dominio o perfil de usuario, al configurar el dominio y siguiendo las instrucciones previas de la [guía de introducción](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites), SageMaker AI activa los permisos de registro del modelo mediante la opción de **configuración de permisos de ML Ops**, que está habilitada de forma predeterminada.

El administrador de Canvas también puede gestionar los permisos de registro del modelo en el nivel del perfil de usuario. Por ejemplo, si el administrador quiere conceder permisos de registro de modelos a algunos perfiles de usuario pero eliminar los permisos a otros, puede editar los permisos de un usuario específico. El siguiente procedimiento muestra cómo activar los permisos de registro de modelos para un perfil de usuario específico:

1. Abra la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de dominios, seleccione el dominio del perfil de usuario.

1. En la página de **Detalles del dominio**, elija el **Perfil de usuario** cuyos permisos desee editar.

1. En la página **Detalles del usuario**, elija **Editar**.

1. En el panel de navegación izquierdo, elija **Configuración de Canvas**.

1. En la sección de **configuración de permisos de ML Ops**, desactive la opción **Habilitar los permisos de registro del registro de modelos**.

1. Seleccione **Enviar** para guardar los cambios en la configuración de su dominio.

El perfil de usuario ya no debería tener permisos de registro de modelos.

## Registre una versión del modelo en el registro de modelos de SageMaker IA
<a name="canvas-register-model-register"></a>

SageMaker Model Registry realiza un seguimiento de todas las versiones de modelos que se crean para resolver un problema concreto de un *grupo de modelos*. Cuando crea un modelo de SageMaker Canvas y lo registra en SageMaker Model Registry, se agrega a un grupo de modelos como una nueva versión del modelo. Por ejemplo, si crea y registra cuatro versiones del modelo, un científico de datos o un MLOps equipo que trabaje en la interfaz del Registro de SageMaker modelos podrá ver el grupo de modelos y revisar las cuatro versiones del modelo en un solo lugar.

Al registrar un modelo de Canvas en el Registro de SageMaker modelos, se crea automáticamente un grupo de modelos al que se le asigna el nombre del modelo de Canvas. Si lo desea, puede cambiarle el nombre por el nombre que desee o utilizar un grupo de modelos existente en el Registro de SageMaker modelos. Para obtener más información acerca de la creación de un grupo de modelos, consulte [Creación de un grupo de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-model-group.html).

**nota**  
Actualmente, solo puede registrar modelos creados en Canvas en el Registro de SageMaker Modelos de la misma cuenta.

Para registrar una versión del modelo en el SageMaker Registro de Modelos desde la aplicación Canvas, utilice el siguiente procedimiento:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Mis modelos**.

1. En la página **Mis modelos**, elija su modelo. Puede **filtrar por tipo de problema** para encontrar su modelo más fácilmente.

1. Tras elegir el modelo, se abre la página **Versiones**, en la que se muestran todas las versiones del modelo. Puede activar la opción **Mostrar métricas avanzadas** para ver las métricas avanzadas, como **Recuerdo** y **Precisión**, para comparar las versiones de su modelo y determinar cuál quiere registrar.

1. En la lista de versiones del modelo, seleccione el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) para seleccionar la versión que desee registrar. Como alternativa, puede hacer doble clic en la versión que necesite registrar y, a continuación, en la página de detalles de la versión, elegir el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. En la lista desplegable, seleccione **Agregar al registro de modelos**. Se abre el cuadro de diálogo **Agregar al registro de modelos**.

1. En el cuadro de diálogo **Agregar al registro de modelos**, haga lo siguiente:

   1. (Opcional) En la sección del **grupo de modelos de SageMaker Studio Classic**, en el campo **Nombre del grupo** de modelos, introduzca el nombre del grupo de modelos en el que desea registrar su versión. Puede especificar el nombre de un nuevo grupo de modelos que SageMaker AI cree para usted o puede especificar un grupo de modelos existente. Si no especifica este campo, Canvas registrará su versión en un grupo de modelos predeterminado con el mismo nombre que su modelo.

   1. Elija **Añadir**.

La versión de su modelo ahora debería estar registrada en el grupo de modelos del Registro de SageMaker modelos. Al registrar una versión de modelo en un grupo de modelos en el Registro de SageMaker modelos, todas las versiones posteriores del modelo Canvas se registran en el mismo grupo de modelos (si decide registrarlas). Si registra sus versiones en un grupo de modelos diferente, debe ir al Registro de SageMaker modelos y [eliminar el grupo de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-delete-model-group.html). A continuación, puede volver a registrar las versiones de sus modelos en el nuevo grupo de modelos.

Para ver el estado de sus modelos, puede volver a la página **Versiones** de su modelo en la aplicación de Canvas. Esta página muestra el estado del **Registro de modelos** de cada versión. Si el estado es `Registered`, significa que el modelo se ha registrado correctamente.

Si desea ver los detalles de su versión de modelo registrada, para ver el estado del **Registro de modelos**, puede pasar el ratón sobre el campo **Registrado** para ver el cuadro emergente de **Detalles del registro de modelos**. Estos detalles contienen más información, como la siguiente:
+ El **nombre del grupo de paquetes** de modelos es el grupo de modelos en el que está registrada su versión en el Registro de SageMaker modelos.
+ El **Estado de aprobación**, que puede ser `Pending Approval`, `Approved` o `Rejected`. Si un usuario de Studio Classic aprueba o rechaza su versión en el Registro de SageMaker modelos, este estado se actualizará en la página de versiones de su modelo al actualizar la página.

La siguiente captura de pantalla muestra el cuadro de **detalles del registro del modelo**, junto con el **Estado de aprobación** de `Approved` para esta versión de modelo en concreto.

![\[Captura de pantalla del cuadro de detalles del registro de SageMaker modelos de la aplicación Canvas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/approved-mr.png)


# Implementación de sus modelos en un punto de conexión
<a name="canvas-deploy-model"></a>

En Amazon SageMaker Canvas, puede implementar sus modelos en un punto final para realizar predicciones. SageMaker La IA proporciona la infraestructura de aprendizaje automático para que pueda alojar su modelo en un punto final con las instancias informáticas que elija. A continuación, puede *invocar* el punto de conexión (enviar una solicitud de predicción) y obtener una predicción en tiempo real a partir de su modelo. Con esta funcionalidad, puede usar su modelo en producción para responder a las solicitudes entrantes y puede integrar su modelo con las aplicaciones y los flujos de trabajo existentes.

Para empezar, debe tener un modelo que quiera implementar. Puede implementar versiones de modelos personalizadas que haya creado, modelos SageMaker JumpStart básicos de Amazon y modelos básicos ajustados JumpStart . Para obtener más información acerca de la creación de un modelo, consulte [Cómo funcionan los modelos personalizados](canvas-build-model.md). Para obtener más información sobre los modelos de JumpStart base en Canvas, consulte. [Modelos básicos de IA generativa en Canvas SageMaker](canvas-fm-chat.md)

Revise la siguiente sección de **Administración de permisos** y, a continuación, comience a crear nuevas implementaciones en la sección **Implementación de un modelo**.

## Administración de permisos
<a name="canvas-deploy-model-prereqs"></a>

De forma predeterminada, tiene permisos para implementar modelos en los puntos finales de SageMaker AI Hosting. SageMaker AI concede estos permisos a todos los perfiles de usuario de Canvas nuevos y existentes a través de la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política, que se adjunta a la función de ejecución de AWS IAM para el dominio de SageMaker IA que aloja su aplicación de Canvas.

Si su administrador de Canvas está configurando un nuevo dominio o perfil de usuario, al configurar el dominio y siguiendo las instrucciones previas que figuran en él[Requisitos previos para configurar Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites), la SageMaker IA activa los permisos de implementación del modelo mediante la opción **Habilitar el despliegue directo de los modelos de Canvas**, que está habilitada de forma predeterminada.

El administrador de Canvas también puede gestionar los permisos de implementación del modelo en el nivel del perfil de usuario. Por ejemplo, si el administrador no quiere conceder permisos de implementación de modelos a todos los perfiles de usuario al configurar un dominio, puede conceder permisos a usuarios específicos después de crear el dominio.

El siguiente procedimiento muestra cómo activar los permisos de implementación de modelos para un perfil de usuario específico:

1. Abra la consola de SageMaker IA en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. En **Configuraciones de administración**, elija **Dominios**.

1. En la lista de dominios, seleccione el dominio del perfil de usuario.

1. En la página **Detalles del dominio**, elija la pestaña **Perfiles de usuario**.

1. Elija un **Perfil de usuario**.

1. En la página del perfil del usuario, elija la pestaña **Configuraciones de aplicaciones**.

1. En la sección **Canvas**, seleccione **Editar**.

1. En la sección **Configuración de ML Ops**, active la opción **Habilitar la implementación directa de los modelos de Canvas** para habilitar los permisos de implementación.

1. Seleccione **Enviar** para guardar los cambios en la configuración de su dominio.

El perfil de usuario debería tener ahora permisos de implementación de modelos.

Tras conceder permisos al dominio o al perfil de usuario, asegúrese de que el usuario cierre sesión en su aplicación de Canvas y vuelva a iniciarla para aplicar los cambios de permisos.

## Implementación de un modelo
<a name="canvas-deploy-model-deploy"></a>

Para comenzar a implementar su modelo, cree una nueva implementación en Canvas y especifique la versión del modelo que desea implementar junto con la infraestructura de machine learning, como el tipo y la cantidad de instancias de procesamiento que le gustaría usar para alojar el modelo.

Canvas sugiere un tipo y un número de instancias predeterminados en función de tu tipo de modelo, o puedes obtener más información sobre los distintos tipos de instancias de SageMaker IA en la [página de SageMaker precios de Amazon](https://aws.amazon.com/sagemaker/pricing/). Se le cobrará en función del precio de las instancias de SageMaker IA mientras su terminal esté activo.

Al implementar JumpStart modelos básicos, también tiene la opción de especificar la duración del tiempo de implementación. Puede implementar el modelo en un punto de conexión de forma indefinida (lo que significa que el punto de conexión estará activo hasta que elimine la implementación). O bien, si solo necesita el punto final durante un período breve y desea reducir los costes, puede implementar el modelo en un punto final durante un período de tiempo específico, tras lo cual la SageMaker IA cierra el punto final por usted.

**nota**  
Si implementa un modelo durante un período de tiempo específico, mantenga la sesión iniciada en la aplicación de Canvas durante todo el tiempo que dure el punto de conexión. Si cierra sesión o elimina la aplicación, Canvas no podrá cerrar el punto de conexión a la hora especificada.

Una vez que el modelo se haya implementado en un [punto final de inferencia en tiempo real](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html) de SageMaker AI Hosting, puede empezar a hacer predicciones *invocando* el punto final.

Hay varias formas de implementar una versión del modelo desde la aplicación de Canvas. Puede obtener acceso a la opción de implementación del modelo mediante cualquiera de los métodos siguientes:
+ En la página **Mis modelos** de la aplicación de Canvas, elija el modelo que quiera implementar. A continuación, en la página de **Versiones** del modelo, elija el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) situado junto a la versión del modelo y seleccione **Implementar**.
+ En la página de detalles de una versión del modelo, en la pestaña **Analizar**, elija la opción **Implementar**.
+ En la página de detalles de una versión del modelo, en la pestaña **Predecir**, seleccione el icono de **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) situado en la parte superior de la página y seleccione **Implementar**.
+ En la página **Operaciones de machine learning** de la aplicación de Canvas, elija la pestaña **Implementaciones** y, a continuación, **Crear implementación**.
+ Para ver los modelos de JumpStart base y los modelos de base ajustados, vaya a la página de **Ready-to-use modelos de la aplicación** Canvas. Elija **Generar, extraer y resumir contenido**. A continuación, busque el modelo de JumpStart base o el modelo de base ajustado que desee implementar. Elija el modelo y, en la página de chat del modelo, seleccione el botón **Implementar**.

Todos estos métodos abren el panel lateral **Implementar modelo**, donde puede especificar la configuración de implementación de su modelo. Para implementar el modelo desde este panel, haga lo siguiente:

1. (Opcional) Si va a crear una implementación desde la página **Operaciones de machine learning**, tendrá la opción de **Seleccionar el modelo y la versión**. Utilice los menús desplegables para seleccionar el modelo y la versión del modelo que desee implementar.

1. Escriba un nombre en el campo **Nombre de implementación** .

1. **(Solo para modelos de JumpStart base y modelos de base ajustados) Elija una longitud de despliegue.** Seleccione **Indefinido** para dejar el punto de conexión activo hasta que lo cierre, o **Especificar la longitud** y, a continuación, introduzca el período de tiempo durante el que desea que el punto de conexión permanezca activo.

1. En el **caso del tipo de instancia**, la SageMaker IA detecta un tipo y un número de instancia predeterminados adecuados para su modelo. Sin embargo, puede cambiar el tipo de instancia que quiera utilizar para alojar el modelo.
**nota**  
Si se te acaba la cuota de instancias para el tipo de instancia elegido en tu AWS cuenta, puedes solicitar un aumento de la cuota. Para obtener más información sobre las cuotas predeterminadas y cómo solicitar un aumento, consulta los [puntos de conexión y las cuotas de Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html) en la *guía de referencia AWS general*.

1. En **cuanto al recuento** de instancias, puede establecer la cantidad de instancias activas que se utilizan para su punto final. SageMaker La IA detecta un número predeterminado que es adecuado para su modelo, pero puede cambiarlo.

1. Cuando esté listo para implementar el modelo, elija **Implementar**.

Su modelo ahora debería implementarse en un punto de conexión.

# Visualización de sus implementaciones
<a name="canvas-deploy-model-view"></a>

Es posible que desee comprobar el estado o los detalles de la implementación de un modelo en Amazon SageMaker Canvas. Por ejemplo, si su implementación falló, es posible que desee comprobar los detalles para solucionar el problema.

Puede ver las implementaciones de sus modelos de Canvas desde la aplicación Canvas o desde la consola Amazon SageMaker AI.

Para ver los detalles de implementación desde Canvas, elija uno de los procedimientos siguientes:

Para ver los detalles de la implementación desde la página **Operaciones de machine learning**, haga lo siguiente:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Operaciones de machine learning**.

1. Elija la pestaña **Implementaciones**.

1. Seleccione la implementación por el nombre en la lista.

Para ver los detalles de la implementación desde la página de la versión de un modelo, haga lo siguiente:

1. En la aplicación SageMaker Canvas, ve a la página de detalles de la versión de tu modelo.

1. Seleccione la pestaña **Implementar**.

1. En la sección **Implementaciones**, que enumera todas las configuraciones de implementación asociadas a esa versión del modelo, busque su implementación.

1. Seleccione el icono **Más opciones** (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) y, a continuación, seleccione **Ver detalles** para abrir la página de detalles.

Se abre la página de detalles de su implementación y puede ver información como la hora de la predicción más reciente, el estado y la configuración del punto de conexión y la versión del modelo que está actualmente implementada en el punto de conexión.

También puede ver las instancias de espacio de trabajo de Canvas y los puntos de conexión activos actualmente desde el **panel de SageMaker IA** de la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker/). Sus puntos de enlace de Canvas aparecen junto con cualquier otro punto de enlace de SageMaker AI Hosting que haya creado, y puede filtrarlos buscando puntos de enlace con la etiqueta Canvas.

La siguiente captura de pantalla muestra el panel de control de SageMaker IA. En la sección **Canvas**, puede ver que hay una instancia de espacio de trabajo en servicio y cuatro puntos de conexión activos.

![\[Captura de pantalla del panel de control de SageMaker IA que muestra las instancias y los puntos finales del espacio de trabajo de Canvas activos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-sagemaker-dashboard.png)


# Actualización de una configuración de implementación
<a name="canvas-deploy-model-update"></a>

Puede actualizar la configuración de implementación de los modelos que ha implementado en los puntos finales de Amazon SageMaker Canvas. Por ejemplo, puede implementar una versión de modelo actualizada en el punto de conexión o puede actualizar el tipo de instancia o el número de instancias detrás del punto de conexión en función de sus necesidades de capacidad.

Hay varias formas de actualizar la implementación desde la aplicación de Canvas. Puede usar cualquiera de los métodos siguientes:
+ En la página **Operaciones de machine learning** de la aplicación de Canvas, puede elegir la pestaña **Implementaciones** y seleccionar la implementación que desee actualizar. Seleccione **Crear una configuración**.
+ En la página de detalles de una versión de modelo, en la pestaña **Implementar**, puede ver las implementaciones de esa versión. Junto a la implementación, elija el icono **Más opciones** (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) y, a continuación, elija **Crear una configuración**.

Los dos métodos anteriores abren el panel lateral **Crear una configuración**, donde puede realizar cambios en la configuración de la implementación. Para actualizar la configuración, realice las siguientes acciones:

1. En el menú desplegable **Seleccionar versión**, puede seleccionar una versión de modelo diferente para implementarla en el punto de conexión.
**nota**  
Al actualizar una configuración de implementación, solo puede elegir una versión de modelo diferente para implementarla. Para implementar un modelo diferente, cree una nueva implementación.

1. En el **Tipo de instancia**, puede seleccionar un tipo de instancia diferente para alojar el modelo.

1. Para el **Recuento de instancias**, puede cambiar el número de instancias activas que se utilizan para su punto de conexión.

1. Seleccione **Guardar**.

La configuración de implementación debería actualizarse ahora.

# Pruebe la implementación
<a name="canvas-deploy-model-test"></a>

Puede probar la implementación de un modelo invocando el punto final o realizando solicitudes de predicción únicas a través de la aplicación Amazon SageMaker Canvas. Puede usar esta funcionalidad para confirmar que su punto de conexión responde a las solicitudes antes de invocarlo mediante programación en un entorno de producción.

## Prueba de implementación de un modelo personalizado
<a name="canvas-deploy-model-test-custom"></a>

Puede probar la implementación de un modelo personalizado accediendo a él a través de la página **Operaciones de machine learning** y realizando una única invocación, que devuelve una predicción junto con la probabilidad de que sea correcta.

**nota**  
La duración de la ejecución es una estimación del tiempo que se tarda en invocar y obtener una respuesta del punto de conexión en Canvas. Para obtener métricas de latencia detalladas, consulte Estadísticas de [invocación de terminales de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html#cloudwatch-metrics-endpoint-invocation).

Para probar el punto de conexión a través de la aplicación de Canvas, haga lo siguiente:

1. Abre la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Operaciones de machine learning**.

1. Elija la pestaña **Implementaciones**.

1. En la lista de implementaciones, elija la que tenga el punto de conexión que desee invocar.

1. En la página de detalles de la implementación, seleccione la pestaña **Probar implementación**.

1. En la página de pruebas de implementación, puede modificar los campos de **Valor** para especificar un nuevo punto de datos. En el caso de los modelos de previsión de series temporales, especifique el **ID de elemento** para el que desea realizar una previsión.

1. Tras modificar los valores, elija **Actualizar** para obtener el resultado de la predicción.

La predicción se carga junto con los campos de **Resultados de la invocación**, que indican si la invocación se ha realizado correctamente o no y cuánto tiempo ha tardado en procesarse la solicitud.

La siguiente captura de pantalla muestra una predicción realizada en la aplicación de Canvas, en la pestaña **Probar implementación**.

![\[Aplicación de Canvas mostrando una predicción de prueba para un modelo implementado.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/canvas-test-deployments.png)


Para todos los tipos de modelos, excepto predicción numérica y previsión de series temporales, la se devuelven los siguientes campos:
+  **predicted\$1label**: el resultado previsto
+  **probability**: la probabilidad de que la etiqueta prevista sea correcta
+  **labels**: la lista de todas las etiquetas posibles
+  **probabilities**: las probabilidades correspondientes a cada etiqueta (el orden de esta lista coincide con el orden de las etiquetas)

En el caso de los modelos de predicción numérica, la predicción solo contiene el campo **score**, que es el resultado previsto del modelo, como el precio previsto de una vivienda.

Para los modelos de previsión de series temporales, la predicción es un gráfico que muestra las previsiones por cuantil. Puede elegir **Vista de esquema** para ver los valores numéricos pronosticados para cada cuantil.

Puede seguir realizando predicciones únicas a través de la página de pruebas de implementación o puede consultar la siguiente sección [Invocación de un punto de conexión](canvas-deploy-model-invoke.md) para obtener información sobre cómo invocar su punto de conexión mediante programación desde las aplicaciones.

## Pruebe el despliegue de un modelo JumpStart básico
<a name="canvas-deploy-model-test-js"></a>

Puede chatear con un modelo JumpStart básico implementado a través de la aplicación Canvas para probar su funcionalidad antes de invocarlo mediante código.

Para conversar con un modelo JumpStart básico implementado, haga lo siguiente:

1. Abra la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Operaciones de machine learning**.

1. Elija la pestaña **Implementaciones**.

1. En la lista de implementaciones, busque la que quiera invocar y elija el icono de **Más opciones** (![\[More options icon for a model deployment.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. En el menú contextual, seleccione **Probar implementación**.

1. Se abrirá un nuevo chat sobre cómo **generar, extraer y resumir contenido** con el modelo JumpStart básico, en el que podrá empezar a escribir las instrucciones. Ten en cuenta que las solicitudes de este chat se envían como solicitudes a tu terminal de SageMaker AI Hosting.

# Invocación de un punto de conexión
<a name="canvas-deploy-model-invoke"></a>

**nota**  
Le recomendamos que [pruebe la implementación de su modelo en Amazon SageMaker Canvas](canvas-deploy-model-test.md) antes de invocar un punto final de SageMaker IA mediante programación.

Puede usar los modelos de Amazon SageMaker Canvas que haya implementado en un punto final de SageMaker IA en producción con sus aplicaciones. [Invoque el punto final mediante programación del mismo modo que invoca cualquier otro SageMaker punto final de IA en tiempo real.](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html) Al invocar un punto de conexión mediante programación, se devuelve un objeto de respuesta que contiene los campos explicados en [Pruebe la implementación](canvas-deploy-model-test.md).

Para obtener información más detallada acerca de cómo invocar puntos de conexión mediante programación, consulte [Invocación de modelos para realizar inferencias en tiempo real](realtime-endpoints-test-endpoints.md).

Los siguientes ejemplos de Python muestran cómo invocar el punto de conexión en función del tipo de modelo.

## JumpStart modelos básicos
<a name="canvas-invoke-js-example"></a>

En el siguiente ejemplo, se muestra cómo invocar un modelo JumpStart básico que ha implementado en un punto final.

```
import boto3
import pandas as pd

client = boto3.client("runtime.sagemaker")
body = pd.DataFrame(
    [['feature_column1', 'feature_column2'], 
    ['feature_column1', 'feature_column2']]
).to_csv(header=False, index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

## Modelos de predicción numérica y categórica
<a name="canvas-invoke-tabular-example"></a>

En el siguiente ejemplo se muestra cómo invocar modelos de predicción numéricos o categóricos.

```
import boto3
import pandas as pd

client = boto3.client("runtime.sagemaker")
body = pd.DataFrame(['feature_column1', 'feature_column2'], ['feature_column1', 'feature_column2']).to_csv(header=False, index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

## Modelos de previsión de series temporales
<a name="canvas-invoke-forecast-example"></a>

En el siguiente ejemplo se muestra cómo invocar modelos de previsión de series temporales. Para ver un ejemplo completo de cómo probar la invocación de un modelo de previsión de series temporales, consulte Previsión de [series temporales con Amazon Autopilot](https://github.com/aws/amazon-sagemaker-examples/blob/eef13dae197a6e588a8bc111aba3244f99ee0fbb/autopilot/autopilot_time_series.ipynb). SageMaker 

```
import boto3
import pandas as pd

csv_path = './real-time-payload.csv'
data = pd.read_csv(csv_path)

client = boto3.client("runtime.sagemaker")

body = data.to_csv(index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

## Modelos de predicción de imágenes
<a name="canvas-invoke-cv-example"></a>

En el siguiente ejemplo se muestra cómo invocar modelos de predicción de imágenes.

```
import boto3
client = boto3.client("runtime.sagemaker")
with open("example_image.jpg", "rb") as file:
    body = file.read()
    response = client.invoke_endpoint(
        EndpointName="endpoint_name",
        ContentType="application/x-image",
        Body=body,
        Accept="application/json"
    )
```

## Modelos de predicción de texto
<a name="canvas-invoke-nlp-example"></a>

En el siguiente ejemplo se muestra cómo invocar modelos de predicción de texto.

```
import boto3
import pandas as pd

client = boto3.client("runtime.sagemaker")
body = pd.DataFrame([["Example text 1"], ["Example text 2"]]).to_csv(header=False, index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

# Eliminación de la implementación de un modelo
<a name="canvas-deploy-model-delete"></a>

Puede eliminar las implementaciones de sus modelos desde la aplicación Amazon SageMaker Canvas. Esta acción también elimina el punto final de la consola de SageMaker IA y cierra todos los recursos relacionados con el punto final.

**nota**  
Si lo desea, puede eliminar su punto final a través de la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker/) o mediante la API de IA. SageMaker `DeleteEndpoint` Para obtener más información, consulte [Eliminar puntos de conexión y recursos](realtime-endpoints-delete-resources.md). Sin embargo, al eliminar el punto final a través de la consola de SageMaker IA o APIs en lugar de la aplicación Canvas, la lista de implementaciones en Canvas no se actualiza automáticamente. También debe eliminar la implementación de la aplicación de Canvas para eliminarla de la lista.

Para eliminar una implementación en Canvas, haga lo siguiente:

1. Abre la aplicación SageMaker Canvas.

1. En el panel de navegación izquierdo, elija **Operaciones de machine learning**.

1. Elija la pestaña **Implementaciones**.

1. En la lista de implementaciones, elija la que quiera eliminar.

1. En la parte superior de la página de detalles de la implementación, elija el icono **Más opciones** (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Seleccione **Eliminar implementación**.

1. En el cuadro de diálogo **Eliminar implementación**, elija **Eliminar**.

Su implementación y el punto final de SageMaker AI Hosting ahora deberían eliminarse tanto de Canvas como de la consola de SageMaker AI.

# ¿Cómo administrar las automatizaciones
<a name="canvas-manage-automations"></a>

En SageMaker Canvas, puede crear automatizaciones que actualicen su conjunto de datos o generen predicciones a partir de su modelo según un cronograma. Por ejemplo, es posible que reciba nuevos datos de envío a diario. Puede configurar una actualización automática para su conjunto de datos y predicciones automáticas por lotes que se ejecuten cada vez que se actualice el conjunto de datos. Con estas características, puede configurar un flujo de trabajo automatizado y reducir el tiempo que dedica a actualizar manualmente los conjuntos de datos y a hacer predicciones.

**nota**  
Solo puede configurar un máximo de 20 configuraciones automáticas en su aplicación de Canvas. Las automatizaciones solo están activas mientras está conectado a la aplicación de Canvas. Si cierra sesión en Canvas, sus trabajos automáticos se detienen hasta que vuelva a iniciar sesión.

En las siguientes secciones se describe cómo ver, editar y eliminar configuraciones para las automatizaciones existentes. Para obtener información sobre cómo configurar las automatizaciones, consulte los siguientes temas:
+ Para configurar las actualizaciones automáticas de los conjuntos de datos, consulte [Actualización de un conjunto de datos](canvas-update-dataset.md).
+ Para configurar las predicciones por lotes automáticas, consulte [Predicciones por lotes en SageMaker Canvas](canvas-make-predictions-batch.md).

**Topics**
+ [Visualización de automatizaciones](canvas-manage-automations-view.md)
+ [Edición de configuraciones automáticas](canvas-manage-automations-edit.md)
+ [Eliminación de una configuración automática](canvas-manage-automations-delete.md)

# Visualización de automatizaciones
<a name="canvas-manage-automations-view"></a>

También puede ver todos sus trabajos de actualización automática yendo al panel de navegación izquierdo de Canvas y seleccionando **Operaciones de machine learning**. La página de **Operaciones de machine learning** combina las automatizaciones tanto para las actualizaciones automáticas de los conjuntos de datos como para las predicciones automáticas por lotes. En la pestaña **Automatizaciones** puede ver las siguientes pestañas:
+ **Todos los trabajos**: puede ver todas las instancias de un trabajo de **Actualización de conjunto de datos** o **Predicción por lotes** que Canvas ha realizado. Para cada trabajo, puede ver campos como el **Conjunto de datos de entrada** asociado, el **Nombre de configuración** de la configuración de actualización automática asociada y el **Estado** que muestra si el trabajo se realizó correctamente o no. Puede filtrar los trabajos por nombre de configuración:
  + Para los trabajos de actualización del conjunto de datos, puede elegir la última versión del conjunto de datos, o el trabajo más reciente, para obtener una vista previa del conjunto de datos.
  + En el caso de los trabajos de predicción por lotes, puede seleccionar el icono de **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) para previsualizar o descargar las predicciones de ese trabajo. También puede elegir **Ver detalles** para ver más detalles sobre el trabajo de predicción. Para obtener más información sobre los detalles del trabajo de predicción por lotes, consulte [Visualización de trabajos de predicción por lotes](canvas-make-predictions-batch-auto-view.md).
+ **Configuración**: puede ver todas las configuraciones de **Actualización de conjunto de datos** y **Predicción por lotes** que ha creado. Para cada configuración, puedes ver campos como el **Conjunto de datos de entrada** asociado y la **Frecuencia** de los trabajos. También puede activar o desactivar el conmutador de **Actualización automática** para pausar o reanudar las actualizaciones automáticas. Si selecciona el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) para una configuración específica, puede elegir entre **Ver todos los trabajos** de la configuración, **Crear una configuración** o **Eliminar configuración**.

# Edición de configuraciones automáticas
<a name="canvas-manage-automations-edit"></a>

Después de establecer una configuración, es posible que desee realizar cambios en ella. Para las actualizaciones automáticas de los conjuntos de datos, puede actualizar la ubicación de Amazon S3 para que Canvas importe los datos, la frecuencia de las actualizaciones y la hora de inicio. Para realizar predicciones por lotes automáticas, puede cambiar el conjunto de datos del que la configuración rastrea para las actualizaciones. También puede desactivar la automatización para pausar temporalmente las actualizaciones hasta que decida reanudarlas.

En las secciones siguientes se muestra cómo actualizar cada tipo de configuración.

**nota**  
No puede cambiar la frecuencia de las predicciones por lotes automáticas porque las predicciones por lotes automáticas se ejecutan cada vez que se actualiza el conjunto de datos de destino.

**Topics**
+ [Edición de la configuración de actualización automática del conjunto de datos](canvas-manage-automations-edit-dataset.md)
+ [Edición de su configuración de predicción automática por lotes](canvas-manage-automations-edit-batch.md)

# Edición de la configuración de actualización automática del conjunto de datos
<a name="canvas-manage-automations-edit-dataset"></a>

Es posible que desee realizar cambios en la configuración de actualización automática de un conjunto de datos, como cambiar la frecuencia de las actualizaciones. También puede desactivar la configuración de actualización automática para pausar las actualizaciones del conjunto de datos.

Para realizar cambios en la configuración de actualización automática de un conjunto de datos, haga lo siguiente:

1. En el panel de navegación izquierdo de Canvas, elija **Operaciones de machine learning**.

1. Elija la pestaña **Automatizaciones**.

1. Elija la pestaña **Configuración**.

1. Para la configuración de actualización automática, seleccione el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. En el menú desplegable, elija **Crear una configuración**. Se abrirá la pestaña **Actualizaciones automáticas** del conjunto de datos.

1. Realización de cambios en la configuración. Cuando termine de realizar los cambios, seleccione **Guardar**.

Para pausar las actualizaciones del conjunto de datos, desactive la configuración automática. Una forma de desactivar las actualizaciones automáticas es hacer lo siguiente:

1. En el panel de navegación izquierdo de Canvas, elija **Operaciones de machine learning**.

1. Elija la pestaña **Automatizaciones**.

1. Elija la pestaña **Configuración**.

1. Busque su configuración en la lista y desactive la opción de **Actualización automática**.

Las actualizaciones automáticas del conjunto de datos ahora están pausadas. Puede volver a activar esta opción en cualquier momento para reanudar la programación de actualizaciones.

# Edición de su configuración de predicción automática por lotes
<a name="canvas-manage-automations-edit-batch"></a>

Cuando se edita una configuración de predicción por lotes, se puede cambiar el conjunto de datos de destino pero no la frecuencia (ya que las predicciones por lotes automáticas se producen siempre que se actualiza el conjunto de datos).

Para realizar cambios en la configuración de las predicciones por lotes automáticas, haga lo siguiente:

1. En el panel de navegación izquierdo de Canvas, elija **Operaciones de machine learning**.

1. Elija la pestaña **Automatizaciones**.

1. Elija la pestaña **Configuración**.

1. Para la configuración de actualización automática, seleccione el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. En el menú desplegable, elija **Crear una configuración**. Se abrirá la pestaña **Actualizaciones automáticas** del conjunto de datos.

1. Se abre el cuadro de diálogo **Automatizar las predicciones por lotes**. Puede seleccionar otro conjunto de datos y elegir **Configurar** para guardar los cambios.

Su configuración de predicciones por lotes automáticas ahora está actualizada.

Para pausar las predicciones por lotes automáticas, desactive la configuración automática. Use el siguiente procedimiento para desactivar su configuración:

1. En el panel de navegación izquierdo de Canvas, elija **Operaciones de machine learning**.

1. Elija la pestaña **Automatizaciones**.

1. Elija la pestaña **Configuración**.

1. Busque su configuración en la lista y desactive la opción de **Actualización automática**.

Las predicciones automáticas por lotes de su conjunto de datos ahora están en pausa. Puede volver a activar esta opción en cualquier momento para reanudar la programación de actualizaciones.

# Eliminación de una configuración automática
<a name="canvas-manage-automations-delete"></a>

Es posible que desee eliminar una configuración para detener su flujo de trabajo automatizado en SageMaker Canvas.

Para eliminar una configuración para las actualizaciones automáticas de conjuntos de datos o las predicciones automáticas por lotes, haga lo siguiente:

1. En el panel de navegación izquierdo de Canvas, elija **Operaciones de machine learning**.

1. Elija la pestaña **Automatizaciones**.

1. Elija la pestaña **Configuración**.

1. Busque la configuración de actualización automática y elija el icono **Más opciones** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Elija **Eliminar configuración**.

1. En el cuadro de diálogo que aparece, elija **Confirmar**.

La configuración de actualización automática ahora está eliminada.

# Cerrar sesión en Amazon SageMaker Canvas
<a name="canvas-log-out"></a>

Tras completar su trabajo en Amazon SageMaker Canvas, puede cerrar sesión o configurar la aplicación para que finalice automáticamente la *instancia del espacio* de trabajo. Cada vez que lance una aplicación de Canvas dispondrá de una instancia de espacio de trabajo dedicada y se le facturará mientras se ejecute la instancia. Al cerrar sesión o cerrar la instancia de espacio de trabajo, se detiene la facturación de la instancia de espacio de trabajo. Para obtener más información, consulte [SageMaker Precios](https://aws.amazon.com/sagemaker/pricing/).

En las siguientes secciones se describe cómo cerrar sesión en la aplicación de Canvas y cómo configurar la aplicación para que se cierre automáticamente de acuerdo con una programación.

## Cierre de sesión de Canvas
<a name="canvas-log-out-how-to"></a>

Al cerrar la sesión de Canvas, sus modelos y conjuntos de datos no se ven afectados. Todas las compilaciones de modelos rápidas o estándar o los [trabajos de procesamiento de datos de gran tamaño](canvas-export-data.md#canvas-export-data-s3) seguirán ejecutándose incluso si cierra sesión.

Para cerrar sesión, pulse el botón **Cerrar sesión** (![\[Filter icon in the SageMaker Canvas app.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/canvas/logout-icon.png)) en el panel izquierdo de la aplicación SageMaker Canvas.

También puede cerrar sesión en la aplicación SageMaker Canvas cerrando la pestaña del navegador y, a continuación, [eliminando la aplicación](canvas-manage-apps-delete.md) en la consola.

Después de cerrar sesión, SageMaker Canvas le indicará que la vuelva a iniciar en una pestaña diferente. El inicio de sesión tarda alrededor de 1 minuto. Si tiene un administrador que configuró SageMaker Canvas por usted, siga las instrucciones que le dieron para volver a iniciar sesión. Si no tiene un administrador, consulte el procedimiento para acceder a SageMaker Canvas[Requisitos previos para configurar Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).

## Cierre automático de Canvas
<a name="canvas-auto-shutdown"></a>

Si es administrador de Canvas, quizá le convenga cerrar las aplicaciones con regularidad para reducir costos. Puede crear una programación para cerrar las aplicaciones de Canvas activas o crear una automatización para cerrar las aplicaciones de Canvas en cuanto estén *inactivas* (lo que significa que el usuario no ha estado activo durante 2 horas).

Puede crear estas soluciones mediante AWS Lambda funciones que llamen a la `DeleteApp` API y eliminen las aplicaciones de Canvas en determinadas condiciones. Para obtener más información sobre estas soluciones y acceder a CloudFormation las plantillas que puede utilizar, consulte el blog [Optimización de los costes de Amazon SageMaker Canvas con el cierre automático de aplicaciones inactivas](https://aws.amazon.com/blogs/machine-learning/optimizing-costs-for-amazon-sagemaker-canvas-with-automatic-shutdown-of-idle-apps/).

**nota**  
Es posible que te falten CloudWatch métricas de [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) si se ha producido un error al configurar tu programa de cierres por inactividad o si se ha CloudWatch producido un error. Te recomendamos que añadas una CloudWatch alarma que controle las métricas faltantes. Si te encuentras con este problema, ponte en contacto con nosotros Soporte para obtener ayuda.

# Limitaciones y solución de problemas
<a name="canvas-limits"></a>

En la siguiente sección, se describe la ayuda para la solución de problemas y las limitaciones que se aplican al usar Amazon SageMaker Canvas. Puede utilizar este tema como ayuda para solucionar cualquier problema que se le presente.

## Solución de problemas relacionados con la concesión de permisos a través de la consola de SageMaker IA
<a name="canvas-troubleshoot-trusted-services"></a>

Si tiene problemas para conceder permisos básicos o permisos de Ready-to-use modelos de Canvas a su usuario, es posible que su usuario tenga una función de ejecución de AWS IAM con más de una relación de confianza con otros AWS servicios. Una relación de confianza es una política asociada a su rol que define qué entidades principales (usuarios, funciones, cuentas o servicios) pueden asumir ese rol. Por ejemplo, es posible que se produzca un problema al conceder permisos adicionales de Canvas a tu usuario si su función de ejecución tiene una relación de confianza tanto con Amazon SageMaker AI como con Amazon Forecast.

Para solucionar este problema, elija una de las siguientes opciones.

### 1. Elimine del rol todos los servicios de confianza excepto uno.
<a name="canvas-troubleshoot-trusted-services-remove"></a>

Esta solución requiere que edites la relación de confianza para la función de IAM de tu perfil de usuario y que elimines todos los AWS servicios excepto la SageMaker IA.

Para editar la relación de confianza para el rol de ejecución de IAM, haga lo siguiente:

1. Diríjase a la consola de IAM en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En el panel de navegación de la consola de IAM, elija **Roles**. La consola muestra los roles asociados a su cuenta.

1. Elija el nombre del rol que desea modificar y seleccione la pestaña **Relaciones de confianza** en la página de detalles.

1. Elija **Editar la política de confianza**.

1. En el **editor Editar la política de confianza**, pegue lo siguiente y, a continuación, seleccione **Actualizar política**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "sagemaker.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

También puede actualizar este documento de política mediante la CLI de IAM. Para obtener más información, consulte [update-trust](https://docs.aws.amazon.com/cli/latest/reference/ds/update-trust.html) en la *Referencia de comandos de IAM*.

Ahora puede volver a intentar conceder los permisos básicos de Canvas o los permisos de los Ready-to-use modelos a su usuario.

### 2. Utilice un rol diferente con uno o varios servicios de confianza.
<a name="canvas-troubleshoot-trusted-services-alternate"></a>

Esta solución requiere que especifique un rol de IAM diferente para su perfil de usuario. Use esta opción si ya tiene un rol de IAM que pueda sustituir.

Para especificar otro rol de ejecución para el usuario, haga lo siguiente:

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de dominios, seleccione el dominio del que desea ver una lista de perfiles de usuario.

1. En la página **Detalles del dominio**, elija la pestaña **Perfiles de usuario**.

1. Elija el usuario cuyos permisos quiera editar. En la página **Detalles del usuario**, elija **Editar**.

1. En la página de **Configuración general**, elija la lista desplegable **Rol de ejecución** y seleccione el rol que desee usar.

1. Seleccione **Enviar** para guardar los cambios en el perfil de usuario.

Su usuario ahora debería utilizar un rol de ejecución con un solo servicio de confianza (SageMaker AI).

Puede volver a intentar conceder los permisos básicos de Canvas o los permisos de los Ready-to-use modelos a su usuario.

### 3. Adjunte manualmente la política AWS gestionada a la función de ejecución en lugar de utilizar el conmutador de la configuración del dominio de SageMaker IA.
<a name="canvas-troubleshoot-trusted-services-manual"></a>

En lugar de utilizar el conmutador de la configuración del dominio o del perfil de usuario, puede asociar manualmente las políticas administradas de AWS que concedan al usuario los permisos correctos.

Para conceder a un usuario los permisos básicos de Canvas, adjunta la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)política. Para conceder permisos a un Ready-to-use modelo de usuario, adjunte la política de [AmazonSageMakerCanvasAIServicesacceso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess).

Utilice el siguiente procedimiento para adjuntar una política AWS gestionada a su función:

1. Vaya a la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Elija **Roles**.

1. En el cuadro de búsqueda, busque el rol de IAM del usuario por su nombre y selecciónelo.

1. En la página del rol del usuario, en **Permisos**, seleccione **Agregar permisos**.

1. En el menú desplegable, seleccione **Asociar políticas**.

1. Busque y seleccione la política o las políticas que desee asociar al rol de ejecución del usuario:

   1. Para conceder los permisos básicos de Canvas, busque y seleccione la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)política.

   1. Para conceder permisos a los Ready-to-use modelos, busque y seleccione la política de [AmazonSageMakerCanvasAIServicesacceso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess).

1. Seleccione **Agregar permisos** para asociar la política al rol.

Tras adjuntar una política AWS gestionada a la función del usuario a través de la consola de IAM, su usuario debería disponer ahora de los permisos básicos de Canvas o los permisos de Ready-to-use modelos.

## Solución de problemas relacionados con la creación de una aplicación en Canvas por error de espacio
<a name="canvas-troubleshoot-spaces"></a>

Al crear una nueva aplicación de Canvas, si encuentras un error al indicarlo`Unable to create app <app-arn> because space <space-arn> is not in InService state`, esto indica que la creación del espacio subyacente de Amazon SageMaker Studio ha fallado. Un *espacio* de Studio es el almacenamiento subyacente que aloja los datos de las aplicaciones de Canvas. Para obtener más información sobre los espacios de Studio, consulte [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md). Para obtener más información sobre la configuración de espacios en Canvas, consulte [Guarde los datos de las aplicaciones de SageMaker Canvas en su propio espacio de IA SageMaker](canvas-spaces-setup.md).

Para determinar la causa principal del error en la creación del espacio, puede utilizar la [DescribeSpace](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeSpace.html)API para comprobar el `FailureReason` campo. Para obtener más información sobre los estados posibles y su significado, consulte [Entidades y estados de dominio de Amazon SageMaker AI](sm-domain.md).

Para resolver este problema, busca tu dominio en la consola de SageMaker IA y elimina el espacio fallido que aparece en el mensaje de error que recibiste. Para ver los pasos detallados sobre cómo buscar y eliminar un espacio, consulte la página [Detención y eliminación de aplicaciones y espacios en ejecución de Studio](studio-updated-running-stop.md) y siga las instrucciones para **Delete a Studio space**. Al eliminar el espacio también se eliminan todas las aplicaciones asociadas al espacio. Tras eliminar el espacio, puede intentar volver a crear la aplicación de Canvas. El espacio debería aprovisionarse ahora correctamente, lo que permitiría que Canvas se iniciara.

# Facturación y costes en SageMaker Canvas
<a name="canvas-manage-cost"></a>

Para realizar un seguimiento de los costes asociados a su aplicación SageMaker Canvas, puede utilizar el Administración de facturación y costos de AWS servicio. Administración de costos y facturación proporciona herramientas útiles que ayudan a recopilar información relacionada con los costos y el uso, analizar los generadores de costos y las tendencias de uso, y tomar medidas para presupuestar los gastos. Para obtener más información, consulte [¿Qué es Administración de facturación y costos de AWS?](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html)

La facturación en SageMaker Canvas consta de los siguientes componentes:
+ Cargos por instancia de Workspace: se le cobrará por el número de horas que lleve conectado o utilice SageMaker Canvas. Le recomendamos que cierre sesión o cree una programación para cerrar cualquier aplicación de Canvas que no esté utilizando activamente a fin de reducir costos. Para obtener más información, consulte [Cerrar sesión en Amazon SageMaker Canvas](canvas-log-out.md).
+ AWS cargos de servicio: se le cobra por crear y hacer predicciones con modelos personalizados o por hacer predicciones con Ready-to-use modelos:
  + Gastos de entrenamiento: para todos los tipos de modelos, se le cobrará en función del uso de recursos mientras se compila el modelo. Estos recursos incluyen cualquier instancia de computación que active Canvas. Es posible que veas estos cargos en su cuenta como trabajos de alojamiento, entrenamiento, procesamiento o transformación por lotes.
  + Cargos por predicción: se le cobrarán los recursos utilizados para generar predicciones, según el tipo de modelo personalizado que haya creado o el tipo de Ready-to-use modelo que haya utilizado.

Los [Ready-to-use modelos](canvas-ready-to-use-models.md) de Canvas aprovechan otros AWS servicios para generar predicciones. Cuando utiliza un Ready-to-use modelo, el servicio correspondiente le cobra y se aplican sus condiciones de precios:
+ Para el análisis de opiniones, la extracción de entidades, la detección de idioma y la detección de información personal, se le cobrarán los [precios de Amazon Comprehend](https://aws.amazon.com/comprehend/pricing/).
+ Para la detección de objetos en las imágenes y la detección de texto en las imágenes, se le cobrará el precio de [Amazon Rekognition](https://aws.amazon.com/rekognition/pricing/).
+ Para el análisis de gastos, el análisis de documentos de identidad y el análisis de documentos, se le cobrará el precio de [Amazon Textract](https://aws.amazon.com/textract/pricing/).

Para obtener más información, consulte [SageMaker Precios de Canvas](https://aws.amazon.com/sagemaker/canvas/pricing/).

Para ayudarlo a realizar un seguimiento de sus costos en Billing and Cost Management, puede asignar etiquetas personalizadas a su aplicación SageMaker Canvas y a sus usuarios. Puede realizar un seguimiento de los costes en los que incurren sus aplicaciones y, al etiquetar los perfiles de usuario individuales, puede realizar un seguimiento de los costes en función del perfil de usuario. Para obtener más información acerca de las etiquetas, consulte [Uso de etiquetas de asignación de costos](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).

Puede agregar etiquetas a su aplicación SageMaker Canvas y a sus usuarios de la siguiente manera:
+ Si estás configurando tu dominio Amazon SageMaker AI y SageMaker Canvas por primera vez, sigue las instrucciones de [introducción](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) y añade etiquetas al crear tu dominio o tus usuarios. Puede añadir etiquetas a través de la **configuración general** de la consola del dominio o a través de APIs ([CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)o [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)). SageMaker La IA agrega las etiquetas especificadas en su dominio o UserProfile en cualquier aplicación o usuario de SageMaker Canvas que cree después de crear el dominio.
+ Si desea agregar etiquetas a las aplicaciones de un dominio existente, debe agregar etiquetas al dominio o al UserProfile. Puede añadir etiquetas a través de la consola o la [AddTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html)API. Si agrega etiquetas a través de la consola, debe eliminar y volver a iniciar su aplicación SageMaker Canvas para que las etiquetas se propaguen a la aplicación. Si utiliza la API, las etiquetas se agregan directamente a la aplicación. [Para obtener más información sobre cómo eliminar y volver a iniciar una aplicación de SageMaker Canvas, consulte Administrar aplicaciones.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-manage-apps.html)

Después de agregar etiquetas a su dominio, es posible que las etiquetas tarden hasta 24 horas en aparecer en la Administración de facturación y costos de AWS consola para su activación. Una vez que aparezcan en la consola, las etiquetas tardarán otras 24 horas en activarse.

En la página del **Explorador de costos**, puede agrupar y filtrar los costos por etiquetas y tipos de uso para separar los cargos de la instancia de Workspace de los gastos de entrenamiento. Los cargos de cada uno de ellos son los siguientes:
+ Cargos por instancia de espacio de trabajo: los cargos aparecen en función del tipo de uso `REGION-Canvas:Session-Hrs (Hrs)`.
+ Cargos de formación: los cargos aparecen en los tipos de uso de los trabajos de SageMaker AI Hosting, Training, Processing o Batch Transform.

# Capacidades SageMaker geoespaciales de Amazon
<a name="geospatial"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. Si antes del 30 de noviembre de 2023 creaste un dominio de Amazon SageMaker AI, Studio Classic sigue siendo la experiencia predeterminada. Los dominios creados después del 30 de noviembre de 2023 utilizarán de forma predeterminada la nueva experiencia de Studio.  
Las funciones y los recursos SageMaker geoespaciales de Amazon *solo* están disponibles en Studio Classic. Para obtener más información sobre cómo configurar un dominio y empezar a usar Studio, consulte [Primeros pasos con Amazon SageMaker geospatial](geospatial-getting-started.md).

Las capacidades SageMaker geoespaciales de Amazon facilitan a los científicos de datos y a los ingenieros de aprendizaje automático (ML) la creación, el entrenamiento y la implementación de modelos de ML con mayor rapidez utilizando datos geoespaciales. Tiene acceso a herramientas de visualización, procesamiento y datos de código abierto y de terceros para que sea más eficiente preparar los datos geoespaciales para el machine learning. Puede aumentar su productividad mediante el uso de algoritmos diseñados específicamente y modelos de machine learning previamente entrenados para acelerar la creación y el entrenamiento de modelos, y utilizar las herramientas de visualización integradas para explorar los resultados de las predicciones en un mapa interactivo y, a continuación, colaborar entre equipos para obtener información y resultados.

**nota**  
Actualmente, las capacidades SageMaker geoespaciales solo se admiten en la región EE.UU. Oeste (Oregón).  
Si no ve la interfaz de usuario SageMaker geoespacial disponible en su instancia actual de Studio Classic, compruebe que se encuentra actualmente en la región EE.UU. Oeste (Oregón).
<a name="why-use-geo"></a>
**¿Por qué utilizar las SageMaker capacidades geoespaciales?**  
Puede utilizar las capacidades SageMaker geoespaciales para hacer predicciones sobre los datos geoespaciales con mayor rapidez que las soluciones. do-it-yourself SageMaker Las capacidades geoespaciales facilitan el acceso a los datos geoespaciales de los lagos de datos de sus clientes actuales, los conjuntos de datos de código abierto y otros proveedores de datos geoespaciales. SageMaker SageMaker Las capacidades geoespaciales minimizan la necesidad de crear una infraestructura personalizada y funciones de preprocesamiento de datos al ofrecer algoritmos diseñados específicamente para una preparación eficiente de los datos, el entrenamiento de modelos y la inferencia. También puede crear y compartir visualizaciones y datos personalizados con su empresa desde Amazon SageMaker Studio Classic. SageMaker Las capacidades geoespaciales ofrecen modelos previamente entrenados para usos comunes en la agricultura, el sector inmobiliario, los seguros y los servicios financieros.

## ¿Cómo puedo utilizar las capacidades SageMaker geoespaciales?
<a name="how-use-geo"></a>

Puede utilizar las capacidades SageMaker geoespaciales de dos maneras.
+ A través de la interfaz de usuario SageMaker geoespacial, como parte de la interfaz de usuario clásica de Amazon SageMaker Studio.
+ A través de una instancia de cuaderno de Studio Classic que utilice la imagen **Geospatial 1.0**.

**SageMaker La IA tiene las siguientes capacidades geoespaciales**
+ Utilice una imagen SageMaker geoespacial especialmente diseñada que sea compatible con instancias de notebook basadas en CPU y GPU, y que también incluya bibliotecas de código abierto de uso común que se encuentran en los flujos de trabajo de aprendizaje automático geoespacial.
+ Utilice Amazon SageMaker Processing y el contenedor SageMaker geoespacial para ejecutar cargas de trabajo a gran escala con sus propios conjuntos de datos, como suelo, meteorología, clima, LiDAR e imágenes aéreas y satelitales comerciales.
+ Ejecute un [trabajo de observación de la Tierra](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-eoj.html) para procesar datos ráster.
+ Ejecute un [trabajo de enriquecimiento vectorial](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-vej.html) para convertir la latitud y la longitud en direcciones legibles para el ser humano y haga coincidir los trazados de GPS imprecisos con carreteras específicas.
+ Utilice [las herramientas de visualización integradas directamente en Studio Classic para ver de forma interactiva datos geoespaciales o modelar predicciones en un mapa.](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-visualize.html)

También puede usar datos de un conjunto de proveedores de datos geoespaciales. En la actualidad, las recopilaciones de datos disponibles incluyen:
+ [https://www.usgs.gov/centers/eros/data-citation?qt-science_support_page_related_con=0#qt-science_support_page_related_con](https://www.usgs.gov/centers/eros/data-citation?qt-science_support_page_related_con=0#qt-science_support_page_related_con)
+ [https://sentinels.copernicus.eu/documents/247904/690755/Sentinel_Data_Legal_Notice](https://sentinels.copernicus.eu/documents/247904/690755/Sentinel_Data_Legal_Notice)
+ [https://sentinel.esa.int/web/sentinel/missions/sentinel-2](https://sentinel.esa.int/web/sentinel/missions/sentinel-2)
+ [https://registry.opendata.aws/copernicus-dem/](https://registry.opendata.aws/copernicus-dem/)
+ [https://registry.opendata.aws/naip/](https://registry.opendata.aws/naip/)

## ¿Es la primera vez que utiliza la tecnología geoespacial? SageMaker
<a name="first-time-geospatial-data"></a>

A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. Los dominios nuevos que se creen después del 30 de noviembre de 2023 utilizan de forma predeterminada la experiencia Studio. El acceso a la información SageMaker geoespacial está limitado a Studio Classic; para obtener más información, consulte[Acceder a datos geoespaciales SageMaker](access-studio-classic-geospatial.md).

Si es la primera vez que utilizas AWS Amazon SageMaker AI, te recomendamos que hagas lo siguiente:

1. **Crea un Cuenta de AWS.**

   Para obtener más información sobre cómo configurar una AWS cuenta y empezar a utilizar la SageMaker IA, consulte[Complete los requisitos previos de Amazon SageMaker AI](gs-set-up.md).

1. **Cree un rol de usuario y un rol de ejecución que funcionen con la tecnología SageMaker geoespacial**.

   Como servicio gestionado, las capacidades SageMaker geoespaciales de Amazon realizan operaciones en su nombre en el AWS hardware que gestiona la SageMaker IA. Un rol de ejecución de SageMaker IA solo puede realizar las operaciones que los usuarios le asignen. Para trabajar con las capacidades SageMaker geoespaciales, debe configurar un rol de usuario y un rol de ejecución. Para obtener más información, consulte [SageMaker funciones de capacidades geoespaciales](sagemaker-geospatial-roles.md).

1. **Actualice su política de confianza para incluir la información SageMaker geoespacial**.

   SageMaker geospatial define un principio de servicio adicional. Para obtener información sobre cómo crear o actualizar la política de confianza de su función de ejecución de SageMaker IA, consulte[Añadir  el director del servicio SageMaker geoespacial a una función de ejecución de SageMaker IA existente](sagemaker-geospatial-roles-pass-role.md).

1. **Configure un dominio Amazon SageMaker AI para acceder a Amazon SageMaker Studio Classic.**

   Para utilizar la SageMaker tecnología geoespacial, se requiere un dominio. Para los dominios creados antes del 30 de noviembre de 2023, la experiencia predeterminada es Studio Classic. Los dominios creados después del 30 de noviembre de 2023 utilizan la experiencia predeterminada de Studio. Para obtener más información sobre cómo acceder a Studio Classic desde Studio, consulte [Acceder a datos geoespaciales SageMaker](access-studio-classic-geospatial.md).

1. **Recuerde cerrar los recursos.**

   Cuando haya terminado de utilizar las capacidades SageMaker geoespaciales, cierre la instancia en la que se ejecuta para evitar incurrir en cargos adicionales. Para obtener más información, consulte [Cierre los recursos de Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md). 

**Topics**
+ [¿Cómo puedo utilizar las capacidades SageMaker geoespaciales?](#how-use-geo)
+ [¿Es la primera vez que utiliza la tecnología geoespacial? SageMaker](#first-time-geospatial-data)
+ [Primeros pasos con Amazon SageMaker geospatial](geospatial-getting-started.md)
+ [Uso de trabajos de procesamiento para cargas de trabajo geoespaciales personalizadas](geospatial-custom-operations.md)
+ [Trabajos de observación de la Tierra](geospatial-eoj.md)
+ [Trabajos de enriquecimiento vectorial](geospatial-vej.md)
+ [Visualización mediante capacidades SageMaker geoespaciales](geospatial-visualize.md)
+ [SDK de mapas SageMaker geoespaciales de Amazon](geospatial-notebook-sdk.md)
+ [SageMaker Preguntas frecuentes sobre las capacidades geoespaciales](geospatial-faq.md)
+ [SageMaker Seguridad y permisos geoespaciales](geospatial-security-general.md)
+ [Tipos de instancias de computación](geospatial-instances.md)
+ [Recopilaciones de datos](geospatial-data-collections.md)

# Primeros pasos con Amazon SageMaker geospatial
<a name="geospatial-getting-started"></a>

 SageMaker geospatial proporciona un **tipo de imagen e instancia** **especialmente** diseñado para los blocs de notas Amazon SageMaker Studio Classic. **Puede utilizar cuadernos con CPU o GPU con la SageMaker imagen geoespacial.** También puede visualizar sus datos geoespaciales mediante un visualizador especialmente diseñado. Además, la SageMaker tecnología geoespacial también permite APIs consultar recopilaciones de datos ráster. También puede utilizar modelos previamente entrenados para analizar los datos geoespaciales, la geocodificación inversa y la coincidencia de mapas.

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. Si antes del 30 de noviembre de 2023 creaste un dominio de Amazon SageMaker AI, Studio Classic sigue siendo la experiencia predeterminada. Los dominios creados después del 30 de noviembre de 2023 utilizarán de forma predeterminada la nueva experiencia de Studio.

Para acceder y empezar a utilizar Amazon SageMaker geospatial, haga lo siguiente:

**Topics**
+ [Acceder a datos geoespaciales SageMaker](access-studio-classic-geospatial.md)
+ [Cree un bloc de notas Amazon SageMaker Studio Classic con la imagen geoespacial](geospatial-launch-notebook.md)
+ [Acceso a la recopilación de datos ráster del Sentinel-2 y creación de un trabajo de observación de la Tierra para realizar la segmentación del terreno](geospatial-demo.md)

# Acceder a datos geoespaciales SageMaker
<a name="access-studio-classic-geospatial"></a>

**nota**  
Actualmente, las capacidades SageMaker geoespaciales solo se admiten en la región EE.UU. Oeste (Oregón) y en Studio Classic.  
Si no ve la interfaz de usuario SageMaker geoespacial disponible en su instancia actual de Studio Classic, compruebe que se encuentra actualmente en la región EE.UU. Oeste (Oregón).

Se necesita un dominio para acceder a la información SageMaker geoespacial. Si ha creado un dominio antes del 30 de noviembre de 2023, la experiencia predeterminada es Studio Classic.

Si creó un dominio después del 30 de noviembre de 2023 o si ha migrado a Studio, puede utilizar el siguiente procedimiento para activar Studio Classic desde Studio y utilizar las funciones SageMaker geoespaciales.

Para obtener más información sobre cómo crear un dominio, consulta [Incorporar un dominio de Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html).

**Acceso a Studio Classic desde Studio**

1. Abre Amazon SageMaker Studio.

1. En **Aplicaciones**, seleccione **Studio Classic**.

1. A continuación, seleccione **Crear un espacio de Studio Classic**.

1. En la página **Crear un espacio de Studio Classic**, introduzca un **Nombre**.

1. Desactiva la opción **Compartir con mi dominio**. SageMaker la tecnología geoespacial no está disponible en los dominios compartidos.

1. A continuación, elija **Crear espacio**.

Si se ejecuta correctamente, el **Estado** cambia a **Actualizando**. Cuando la aplicación de Studio Classic esté lista para usarse, el estado cambiará a **Detenido**.

Para iniciar la aplicación de Studio Classic, seleccione **Ejecutar**.

# Cree un bloc de notas Amazon SageMaker Studio Classic con la imagen geoespacial
<a name="geospatial-launch-notebook"></a>

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección es específica del uso de la aplicación de Studio Classic. Para obtener información sobre el uso de la experiencia de Studio actualizada, consulte [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic se sigue manteniendo para las cargas de trabajo existentes, pero ya no está disponible para su incorporación. Solo puede detener o eliminar las aplicaciones de Studio Classic existentes y no puede crear aplicaciones nuevas. Te recomendamos que [migres tu carga de trabajo a la nueva experiencia de Studio](studio-updated-migrate.md).

**nota**  
Actualmente, la SageMaker tecnología geoespacial solo se admite en la región EE.UU. Oeste (Oregón).  
Si no ve la opción SageMaker geoespacial disponible en su dominio o instancia de bloc de notas actual, asegúrese de que se encuentra actualmente en la región EE.UU. Oeste (Oregón).

Utilice el siguiente procedimiento para crear un bloc de notas de Studio Classic con la imagen SageMaker geoespacial. Si su experiencia de estudio predeterminada es Studio, consulte [Acceder a datos geoespaciales SageMaker](access-studio-classic-geospatial.md) para obtener información sobre cómo iniciar una aplicación de Studio Classic.

**Para crear un cuaderno Studio Classic con la imagen SageMaker geoespacial**

1. Inicialización de Studio Classic

1. Seleccione **Inicio** en la barra de menú.

1. En **Acciones rápidas**, elige **Abrir lanzador**.

1. Se abrirá el cuadro de diálogo del **Lanzador**. Seleccione **Cambiar entorno** en **Cuadernos y recursos de computación**.

1. Se abrirá el cuadro de diálogo **Cambiar entorno**. Seleccione el menú desplegable **Imagen** y elija o escriba **Geospatial 1.0**.  
![\[Un cuadro de diálogo que muestra la imagen geoespacial correcta y el tipo de instancia seleccionados.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/geospatial-environment-dialogue.png)

1. A continuación, elija un **Tipo de instancia** en el menú desplegable.

   SageMaker geospatial admite dos tipos de instancias de bloc de notas: CPU y GPU. La instancia de CPU compatible se denomina **ml.geospatial.interactive**. Se puede usar cualquier instancia de GPU de la familia G5 con la imagen Geospatial 1.0.
**nota**  
Si recibes un ResourceLimitExceedederror al intentar iniciar una instancia basada en la GPU, debes solicitar un aumento de cuota. Para aprender a solicitar un aumento de cuota, consulte [Solicitud de aumento de cuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) en la *Guía del usuario de Service Quotas*. 

1. Elija **Seleccionar**.

1. Elija **Crear cuaderno**.

Después de crear un cuaderno, para obtener más información sobre SageMaker geoespacial, prueba el tutorial [SageMaker geoespacial](geospatial-demo.md). Le muestra cómo procesar los datos de imágenes del Sentinel-2 y segmentar el terreno en ellos utilizando la API de trabajos de observación de la Tierra. 

# Acceso a la recopilación de datos ráster del Sentinel-2 y creación de un trabajo de observación de la Tierra para realizar la segmentación del terreno
<a name="geospatial-demo"></a>

Este tutorial basado en Python utiliza el SDK para Python (Boto3) y un bloc de notas Amazon Studio Classic. SageMaker Para completar esta demostración correctamente, asegúrese de tener los permisos AWS Identity and Access Management (IAM) necesarios para usar Geospatial y Studio Classic. SageMaker SageMaker geospatial requiere que tenga un usuario, grupo o rol que pueda acceder a Studio Classic. También debe tener una función de ejecución de SageMaker IA que especifique el director del servicio SageMaker geoespacial `sagemaker-geospatial.amazonaws.com` en su política de confianza. 

Para obtener más información sobre estos requisitos, consulte las funciones de [SageMaker IAM geoespacial](sagemaker-geospatial-roles.md).

En este tutorial, se muestra cómo utilizar la API SageMaker geoespacial para realizar las siguientes tareas:
+ Encontrar las recopilaciones de datos ráster disponibles con `list_raster_data_collections`.
+ Buscar una recopilación de datos ráster específica mediante `search_raster_data_collection`.
+ Crear un trabajo de observación de la Tierra (EOJ) mediante `start_earth_observation_job`.

## Utilizar `list_raster_data_collections` para encontrar las colecciones de datos disponibles
<a name="demo-use-list-rdc"></a>

SageMaker geospatial admite múltiples recopilaciones de datos ráster. Para obtener más información sobre las recopilaciones de datos disponibles, consulte [Recopilaciones de datos](geospatial-data-collections.md).

En esta demostración se utilizan datos satelitales recopilados de satélites [Sentinel-2 GeoTIFF optimizados para la nube](https://registry.opendata.aws/sentinel-2-l2a-cogs/). Estos satélites proporcionan una cobertura global de la superficie de la Tierra cada cinco días. Además de recopilar imágenes de la superficie terrestre, los satélites Sentinel-2 también recopilan datos en una variedad de bandas espectrales.

Para buscar en un área de interés (AOI), necesita el ARN asociado a los datos del satélite Sentinel-2. Para encontrar las recopilaciones de datos disponibles y las que están asociadas a las ARNs suyas Región de AWS, utilice la operación de la `list_raster_data_collections` API.

Como la respuesta se puede paginar, debe usar la operación `get_paginator` para devolver todos los datos relevantes:

```
import boto3
import sagemaker
import sagemaker_geospatial_map
import json 

## SageMaker Geospatial  is currently only avaialable in US-WEST-2  
session = boto3.Session(region_name='us-west-2')
execution_role = sagemaker.get_execution_role()

## Creates a SageMaker Geospatial client instance 
geospatial_client = session.client(service_name="sagemaker-geospatial")

# Creates a resusable Paginator for the list_raster_data_collections API operation 
paginator = geospatial_client.get_paginator("list_raster_data_collections")

# Create a PageIterator from the paginator class
page_iterator = paginator.paginate()

# Use the iterator to iterate throught the results of list_raster_data_collections
results = []
for page in page_iterator:
    results.append(page['RasterDataCollectionSummaries'])

print(results)
```

Este es un ejemplo de respuesta en JSON de la operación de la API `list_raster_data_collections`. Está truncado para incluir solo la recopilación de datos (Sentinel-2) que se utiliza en este ejemplo de código: . Para obtener más información sobre una recopilación de datos ráster específica, utilice `get_raster_data_collection`:

```
{
    "Arn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",
    "Description": "Sentinel-2a and Sentinel-2b imagery, processed to Level 2A (Surface Reflectance) and converted to Cloud-Optimized GeoTIFFs",
    "DescriptionPageUrl": "https://registry.opendata.aws/sentinel-2-l2a-cogs",
    "Name": "Sentinel 2 L2A COGs",
    "SupportedFilters": [
        {
            "Maximum": 100,
            "Minimum": 0,
            "Name": "EoCloudCover",
            "Type": "number"
        },
        {
            "Maximum": 90,
            "Minimum": 0,
            "Name": "ViewOffNadir",
            "Type": "number"
        },
        {
            "Name": "Platform",
            "Type": "string"
        }
    ],
    "Tags": {},
    "Type": "PUBLIC"
}
```

Tras ejecutar el ejemplo de código anterior, obtendrá el ARN de la recopilación de datos ráster de Sentinel-2, `arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8`. En la [siguiente sección](#demo-search-raster-data), puede consultar la recopilación de datos de Sentinel-2 mediante la API `search_raster_data_collection`.

## Búsqueda en la recopilación de datos ráster de Sentinel-2 con `search_raster_data_collection`
<a name="demo-search-raster-data"></a>

En la sección anterior, utilizó `list_raster_data_collections` para obtener el ARN de la recopilación de datos de Sentinel-2. Ahora puede usar ese ARN para buscar en la recopilación de datos en un área de interés (AOI) determinada, un rango de tiempo, propiedades y las bandas UV disponibles.

Para llamar a la API `search_raster_data_collection`, debe pasar un diccionario Python al parámetro `RasterDataCollectionQuery`. En este ejemplo se utilizan `AreaOfInterest`, `TimeRangeFilter`, `PropertyFilters` y `BandFilter`. Para mayor facilidad, puede especificar el diccionario de Python utilizando la variable **search\$1rdc\$1query** para contener los parámetros de la consulta de búsqueda:

```
search_rdc_query = {
    "AreaOfInterest": {
        "AreaOfInterestGeometry": {
            "PolygonGeometry": {
                "Coordinates": [
                    [
                        # coordinates are input as longitute followed by latitude 
                        [-114.529, 36.142],
                        [-114.373, 36.142],
                        [-114.373, 36.411],
                        [-114.529, 36.411],
                        [-114.529, 36.142],
                    ]
                ]
            }
        }
    },
    "TimeRangeFilter": {
        "StartTime": "2022-01-01T00:00:00Z",
        "EndTime": "2022-07-10T23:59:59Z"
    },
    "PropertyFilters": {
        "Properties": [
            {
                "Property": {
                    "EoCloudCover": {
                        "LowerBound": 0,
                        "UpperBound": 1
                    }
                }
            }
        ],
        "LogicalOperator": "AND"
    },
    "BandFilter": [
        "visual"
    ]
}
```

En este ejemplo, consulta un `AreaOfInterest` que incluye el [lago Mead](https://en.wikipedia.org/wiki/Lake_Mead) en Utah. Además, Sentinel-2 admite varios tipos de bandas de imagen. Para medir el cambio en la superficie del agua, solo necesita la banda `visual`.

Tras crear los parámetros de la consulta, puede utilizar la API `search_raster_data_collection` para realizar la solicitud. 

El siguiente ejemplo de código implementa una solicitud de la API `search_raster_data_collection`. Esta API no admite la paginación mediante la API `get_paginator`. Para asegurarse de que se ha recopilado la respuesta completa de la API, el ejemplo de código utiliza un bucle `while` para comprobar si `NextToken` existe. A continuación, el ejemplo de código `.extend()` se utiliza para añadir la imagen de satélite URLs y otros metadatos de respuesta al`items_list`. 

Para obtener más información al respecto`search_raster_data_collection`, consulte [SearchRasterDataCollection](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_SearchRasterDataCollection.html)la *referencia de la API de Amazon SageMaker AI*.

```
search_rdc_response = sm_geo_client.search_raster_data_collection(
    Arn='arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
    RasterDataCollectionQuery=search_rdc_query
)


## items_list is the response from the API request. 
items_list = []

## Use the python .get() method to check that the 'NextToken' exists, if null returns None breaking the while loop 
while search_rdc_response.get('NextToken'):
    items_list.extend(search_rdc_response['Items'])
    search_rdc_response = sm_geo_client.search_raster_data_collection(
        Arn='arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
        RasterDataCollectionQuery=search_rdc_query, NextToken=search_rdc_response['NextToken']
    )

## Print the number of observation return based on the query
print (len(items_list))
```

El siguiente ejemplo es una respuesta JSON de su consulta. Se ha truncado para mayor claridad. En el par clave-valor `Assets`, solo se devuelve el **"BandFilter": ["visual"]** especificado en la solicitud:

```
{
    'Assets': {
        'visual': {
            'Href': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/15/T/UH/2022/6/S2A_15TUH_20220623_0_L2A/TCI.tif'
        }
    },
    'DateTime': datetime.datetime(2022, 6, 23, 17, 22, 5, 926000, tzinfo = tzlocal()),
    'Geometry': {
        'Coordinates': [
            [
                [-114.529, 36.142],
                [-114.373, 36.142],
                [-114.373, 36.411],
                [-114.529, 36.411],
                [-114.529, 36.142],
            ]
        ],
        'Type': 'Polygon'
    },
    'Id': 'S2A_15TUH_20220623_0_L2A',
    'Properties': {
        'EoCloudCover': 0.046519,
        'Platform': 'sentinel-2a'
    }
}
```

Ahora que tiene los resultados de la consulta, en la siguiente sección puede visualizarlos utilizando `matplotlib`. Esto sirve para comprobar que los resultados provengan de la región geográfica correcta. 

## Visualización de su `search_raster_data_collection` con `matplotlib`
<a name="demo-geospatial-visualize"></a>

Antes de empezar el trabajo de observación de la Tierra (EOJ), puede visualizar el resultado de nuestra consulta con `matplotlib`. El siguiente ejemplo de código toma el primer elemento, `items_list[0]["Assets"]["visual"]["Href"]`, de la variable `items_list` creada en el ejemplo de código anterior e imprime una imagen con `matplotlib`.

```
# Visualize an example image.
import os
from urllib import request
import tifffile
import matplotlib.pyplot as plt

image_dir = "./images/lake_mead"
os.makedirs(image_dir, exist_ok=True)

image_dir = "./images/lake_mead"
os.makedirs(image_dir, exist_ok=True)

image_url = items_list[0]["Assets"]["visual"]["Href"]
img_id = image_url.split("/")[-2]
path_to_image = image_dir + "/" + img_id + "_TCI.tif"
response = request.urlretrieve(image_url, path_to_image)
print("Downloaded image: " + img_id)

tci = tifffile.imread(path_to_image)
plt.figure(figsize=(6, 6))
plt.imshow(tci)
plt.show()
```

Tras comprobar que los resultados se encuentran en la región geográfica correcta, puede iniciar el trabajo de observación de la Tierra (EOJ) en el siguiente paso. El EOJ se utiliza para identificar los cuerpos de agua a partir de las imágenes de satélite mediante un proceso denominado segmentación del terreno.

## Inicio de un trabajo de observación de la Tierra (EOJ) que consiste en segmentar el terreno a partir de una serie de imágenes de satélite
<a name="demo-start-eoj"></a>

SageMaker geospatial proporciona varios modelos previamente entrenados que puede usar para procesar datos geoespaciales de colecciones de datos ráster. Para obtener más información sobre los modelos previamente entrenados y las operaciones personalizadas disponibles, consulte [Tipos de operaciones](geospatial-eoj-models.md).

Para calcular el cambio en la superficie del agua, es necesario identificar qué píxeles de las imágenes corresponden al agua. La segmentación de la cobertura terrestre es un modelo de segmentación semántica compatible con la API `start_earth_observation_job`. Los modelos de segmentación semántica asocian una etiqueta a cada píxel de cada imagen. En los resultados, a cada píxel se le asigna una etiqueta que se basa en el mapa de clases del modelo. Este es el mapa de clases del modelo de segmentación de terrenos:

```
{
    0: "No_data",
    1: "Saturated_or_defective",
    2: "Dark_area_pixels",
    3: "Cloud_shadows",
    4: "Vegetation",
    5: "Not_vegetated",
    6: "Water",
    7: "Unclassified",
    8: "Cloud_medium_probability",
    9: "Cloud_high_probability",
    10: "Thin_cirrus",
    11: "Snow_ice"
}
```

Para iniciar un trabajo de observación de la Tierra, utilice la API `start_earth_observation_job`. Cuando envíe su solicitud, debe especificar lo siguiente:
+ `InputConfig` (*diccionario*): se utiliza para especificar las coordenadas del área en la que desea buscar y otros metadatos asociados a la búsqueda.
+ `JobConfig` (*diccionario*): se usa para especificar el tipo de operación de EOJ que se realizó con los datos. En este ejemplo se utiliza **LandCoverSegmentationConfig**.
+ `ExecutionRoleArn`(*string*): el ARN del rol de ejecución de SageMaker IA con los permisos necesarios para ejecutar el trabajo.
+ `Name` (*cadena*): un nombre para el trabajo de observación de la Tierra.

El `InputConfig` es un diccionario de Python. Utilice la siguiente variable **eoj\$1input\$1config** para almacenar los parámetros de la consulta de búsqueda. Utilice esta variable cuando realice la solicitud a la API `start_earth_observation_job`. w.

```
# Perform land cover segmentation on images returned from the Sentinel-2 dataset.
eoj_input_config = {
    "RasterDataCollectionQuery": {
        "RasterDataCollectionArn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {
                "PolygonGeometry": {
                    "Coordinates":[
                        [
                            [-114.529, 36.142],
                            [-114.373, 36.142],
                            [-114.373, 36.411],
                            [-114.529, 36.411],
                            [-114.529, 36.142],
                        ]
                    ]
                }
            }
        },
        "TimeRangeFilter": {
            "StartTime": "2021-01-01T00:00:00Z",
            "EndTime": "2022-07-10T23:59:59Z",
        },
        "PropertyFilters": {
            "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}],
            "LogicalOperator": "AND",
        },
    }
}
```

El `JobConfig` es un diccionario de Python que se utiliza para especificar la operación de EOJ que quiera que se realice en sus datos:

```
eoj_config = {"LandCoverSegmentationConfig": {}}
```

Con los elementos del diccionario ahora especificados, puede enviar su solicitud a la API `start_earth_observation_job` mediante el siguiente ejemplo de código:

```
# Gets the execution role arn associated with current notebook instance 
execution_role_arn = sagemaker.get_execution_role()

# Starts an earth observation job
response = sm_geo_client.start_earth_observation_job(
    Name="lake-mead-landcover",
    InputConfig=eoj_input_config,
    JobConfig=eoj_config,
    ExecutionRoleArn=execution_role_arn,
)
            
print(response)
```

Al iniciar un trabajo de observación de la Tierra, se devuelve un ARN junto con otros metadatos.

Para obtener una lista de todos los trabajos de observación de la Tierra en curso y actuales, utilice la API `list_earth_observation_jobs`. Para supervisar el estado de un único trabajo de observación de la Tierra, use la API `get_earth_observation_job`. Para realizar esta solicitud, use el ARN creado después de enviar su solicitud de EOJ. Para obtener más información, consulta [GetEarthObservationJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_GetEarthObservationJob.html)la *referencia de la API de Amazon SageMaker AI*.

Para encontrar lo que ARNs está asociado a su operación, EOJs utilice la `list_earth_observation_jobs` API. Para obtener más información, consulta [ListEarthObservationJobs](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_geospatial_ListEarthObservationJobs.html)la *referencia de la API de Amazon SageMaker AI*.

```
# List all jobs in the account
sg_client.list_earth_observation_jobs()["EarthObservationJobSummaries"]
```

A continuación, se muestra un ejemplo de respuesta JSON:

```
{
    'Arn': 'arn:aws:sagemaker-geospatial:us-west-2:111122223333:earth-observation-job/futg3vuq935t',
    'CreationTime': datetime.datetime(2023, 10, 19, 4, 33, 54, 21481, tzinfo = tzlocal()),
    'DurationInSeconds': 3493,
    'Name': 'lake-mead-landcover',
    'OperationType': 'LAND_COVER_SEGMENTATION',
    'Status': 'COMPLETED',
    'Tags': {}
}, {
    'Arn': 'arn:aws:sagemaker-geospatial:us-west-2:111122223333:earth-observation-job/wu8j9x42zw3d',
    'CreationTime': datetime.datetime(2023, 10, 20, 0, 3, 27, 270920, tzinfo = tzlocal()),
    'DurationInSeconds': 1,
    'Name': 'mt-shasta-landcover',
    'OperationType': 'LAND_COVER_SEGMENTATION',
    'Status': 'INITIALIZING',
    'Tags': {}
}
```

Cuando el estado de su trabajo de EOJ cambie a `COMPLETED`, pase a la siguiente sección para calcular el cambio en la superficie del lago Mead's .

## Cálculo del cambio en la superficie del lago Mead
<a name="demo-geospatial-calc"></a>

Para calcular el cambio en la superficie del lago Mead, exporte primero los resultados del EOJ a Amazon S3 mediante `export_earth_observation_job`:

```
sagemaker_session = sagemaker.Session()
s3_bucket_name = sagemaker_session.default_bucket()  # Replace with your own bucket if needed
s3_bucket = session.resource("s3").Bucket(s3_bucket_name)
prefix = "export-lake-mead-eoj"  # Replace with the S3 prefix desired
export_bucket_and_key = f"s3://{s3_bucket_name}/{prefix}/"

eoj_output_config = {"S3Data": {"S3Uri": export_bucket_and_key}}
export_response = sm_geo_client.export_earth_observation_job(
    Arn="arn:aws:sagemaker-geospatial:us-west-2:111122223333:earth-observation-job/7xgwzijebynp",
    ExecutionRoleArn=execution_role_arn,
    OutputConfig=eoj_output_config,
    ExportSourceImages=False,
)
```

Para ver el estado de su trabajo de exportación, utilice `get_earth_observation_job`:

```
export_job_details = sm_geo_client.get_earth_observation_job(Arn=export_response["Arn"])
```

Para calcular los cambios en el nivel del agua del lago Mead, descarga las máscaras de cobertura terrestre en el SageMaker cuaderno local y descarga las imágenes originales de nuestra consulta anterior. En el mapa de clases del modelo de segmentación del suelo, el índice de clases del agua es 6.

Para extraer la máscara de agua de una imagen de Sentinel-2, siga estos pasos. Primero, cuente el número de píxeles marcados como agua (índice de clase 6) en la imagen. En segundo lugar, multiplique el recuento por el área que cubre cada píxel. Las bandas pueden diferir en su resolución espacial. Para el modelo de segmentación de la cobertura terrestre, todas las bandas se muestrean hacia abajo hasta una resolución espacial igual a 60 metros.

```
import os
from glob import glob
import cv2
import numpy as np
import tifffile
import matplotlib.pyplot as plt
from urllib.parse import urlparse
from botocore import UNSIGNED
from botocore.config import Config

# Download land cover masks
mask_dir = "./masks/lake_mead"
os.makedirs(mask_dir, exist_ok=True)
image_paths = []
for s3_object in s3_bucket.objects.filter(Prefix=prefix).all():
    path, filename = os.path.split(s3_object.key)
    if "output" in path:
        mask_name = mask_dir + "/" + filename
        s3_bucket.download_file(s3_object.key, mask_name)
        print("Downloaded mask: " + mask_name)

# Download source images for visualization
for tci_url in tci_urls:
    url_parts = urlparse(tci_url)
    img_id = url_parts.path.split("/")[-2]
    tci_download_path = image_dir + "/" + img_id + "_TCI.tif"
    cogs_bucket = session.resource(
        "s3", config=Config(signature_version=UNSIGNED, region_name="us-west-2")
    ).Bucket(url_parts.hostname.split(".")[0])
    cogs_bucket.download_file(url_parts.path[1:], tci_download_path)
    print("Downloaded image: " + img_id)

print("Downloads complete.")

image_files = glob("images/lake_mead/*.tif")
mask_files = glob("masks/lake_mead/*.tif")
image_files.sort(key=lambda x: x.split("SQA_")[1])
mask_files.sort(key=lambda x: x.split("SQA_")[1])
overlay_dir = "./masks/lake_mead_overlay"
os.makedirs(overlay_dir, exist_ok=True)
lake_areas = []
mask_dates = []

for image_file, mask_file in zip(image_files, mask_files):
    image_id = image_file.split("/")[-1].split("_TCI")[0]
    mask_id = mask_file.split("/")[-1].split(".tif")[0]
    mask_date = mask_id.split("_")[2]
    mask_dates.append(mask_date)
    assert image_id == mask_id
    image = tifffile.imread(image_file)
    image_ds = cv2.resize(image, (1830, 1830), interpolation=cv2.INTER_LINEAR)
    mask = tifffile.imread(mask_file)
    water_mask = np.isin(mask, [6]).astype(np.uint8)  # water has a class index 6
    lake_mask = water_mask[1000:, :1100]
    lake_area = lake_mask.sum() * 60 * 60 / (1000 * 1000)  # calculate the surface area
    lake_areas.append(lake_area)
    contour, _ = cv2.findContours(water_mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    combined = cv2.drawContours(image_ds, contour, -1, (255, 0, 0), 4)
    lake_crop = combined[1000:, :1100]
    cv2.putText(lake_crop, f"{mask_date}", (10,50), cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 0), 3, cv2.LINE_AA)
    cv2.putText(lake_crop, f"{lake_area} [sq km]", (10,100), cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 0), 3, cv2.LINE_AA)
    overlay_file = overlay_dir + '/' + mask_date + '.png'
    cv2.imwrite(overlay_file, cv2.cvtColor(lake_crop, cv2.COLOR_RGB2BGR))

# Plot water surface area vs. time.
plt.figure(figsize=(20,10))
plt.title('Lake Mead surface area for the 2021.02 - 2022.07 period.', fontsize=20)
plt.xticks(rotation=45)
plt.ylabel('Water surface area [sq km]', fontsize=14)
plt.plot(mask_dates, lake_areas, marker='o')
plt.grid('on')
plt.ylim(240, 320)
for i, v in enumerate(lake_areas):
    plt.text(i, v+2, "%d" %v, ha='center')
plt.show()
```

Con `matplotlib`, puede visualizar los resultados con un gráfico. El gráfico muestra que la superficie del lago Mead disminuyó entre enero de 2021 y julio de 2022.

![\[Un gráfico de barras que muestra que la superficie del lago Mead disminuyó entre enero de 2021 y julio de 2022.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/lake-mead-decrease.png)


# Uso de trabajos de procesamiento para cargas de trabajo geoespaciales personalizadas
<a name="geospatial-custom-operations"></a>

Con [Amazon SageMaker Processing](processing-job.md), puede utilizar una experiencia simplificada y administrada en SageMaker IA para ejecutar sus cargas de trabajo de procesamiento de datos con el contenedor geoespacial diseñado específicamente.

 La infraestructura subyacente de un trabajo de Amazon SageMaker Processing está totalmente gestionada por SageMaker IA. Durante un trabajo de procesamiento, los recursos del clúster se aprovisionan durante la duración del trabajo y se limpian cuando se completa un trabajo.

![\[Ejecución de un trabajo de procesamiento.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/Processing-1.png)


El diagrama anterior muestra cómo la SageMaker IA genera un trabajo de procesamiento geoespacial. SageMaker La IA toma el script de carga de trabajo geoespacial, copia los datos geoespaciales de Amazon Simple Storage Service (Amazon S3) y, a continuación, extrae el contenedor geoespacial especificado. La infraestructura subyacente para el trabajo de procesamiento está totalmente gestionada por la IA. SageMaker Los recursos del clúster se aprovisionan durante la duración del trabajo y se limpian cuando se completa un trabajo. El resultado del trabajo de procesamiento se almacena en el bucket que especifique. 

**Restricciones en la ruta de nomenclatura**  
Las rutas locales dentro de un contenedor de trabajos de procesamiento deben empezar por **/opt/ml/processing/**.

SageMaker geospatial proporciona un contenedor diseñado específicamente, `081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest` que se puede especificar al ejecutar un trabajo de procesamiento.

**Topics**
+ [Descripción general: ejecute trabajos de procesamiento utilizando un contenedor geoespacial `ScriptProcessor` SageMaker](geospatial-custom-operations-overview.md)
+ [Uso de `ScriptProcessor` para calcular el índice diferencial de vegetación normalizado (NDVI) con datos del satélite Sentinel-2](geospatial-custom-operations-procedure.md)

# Descripción general: ejecute trabajos de procesamiento utilizando un contenedor geoespacial `ScriptProcessor` SageMaker
<a name="geospatial-custom-operations-overview"></a>

SageMaker geospatial proporciona un contenedor de procesamiento diseñado específicamente,. `081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest` Puedes usar este contenedor cuando ejecutes un trabajo con Amazon SageMaker Processing. Cuando cree una instancia de la [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor)clase que está disponible a través del *SDK de Amazon SageMaker Python para procesamiento*, especifique esto`image_uri`.

**nota**  
Si recibe un ResourceLimitExceedederror al intentar iniciar un trabajo de procesamiento, debe solicitar un aumento de cuota. Para aprender a solicitar un aumento de cuota, consulte [Solicitud de aumento de cuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) en la *Guía del usuario de Service Quotas*. 

**Requisitos previos para utilizar `ScriptProcessor`**

1. Ha creado un script Python que especifica su carga de trabajo de machine learning geoespacial.

1. Ha concedido a la función de ejecución de SageMaker IA acceso a todos los buckets de Amazon S3 que sean necesarios.

1. Preparación de los datos para importarlos al contenedor. Los trabajos SageMaker de procesamiento de Amazon admiten establecer un `s3_data_type` valor igual a `"ManifestFile"` o a`"S3Prefix"`.

El siguiente procedimiento le muestra cómo crear una instancia `ScriptProcessor` y enviar un trabajo de Amazon SageMaker Processing mediante el contenedor SageMaker geoespacial.

**Para crear una `ScriptProcessor` instancia y enviar un trabajo de Amazon SageMaker Processing mediante un contenedor SageMaker geoespacial**

1. Cree una instancia de la `ScriptProcessor` clase mediante la imagen geoespacial: SageMaker 

   ```
   from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput
   	
   sm_session = sagemaker.session.Session()
   execution_role_arn = sagemaker.get_execution_role()
   
   # purpose-built geospatial container
   image_uri = '081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest'
   
   script_processor = ScriptProcessor(
   	command=['python3'],
   	image_uri=image_uri,
   	role=execution_role_arn,
   	instance_count=4,
   	instance_type='ml.m5.4xlarge',
   	sagemaker_session=sm_session
   )
   ```

   *execution\$1role\$1arn*Sustitúyalo por el ARN de la función de ejecución de SageMaker IA que tiene acceso a los datos de entrada almacenados en Amazon S3 y cualquier otro AWS servicio al que desee llamar en su trabajo de procesamiento. Puede actualizar el `instance_count` y el `instance_type` para que coincidan con los requisitos de su trabajo de procesamiento.

1. Para iniciar un trabajo de procesamiento, utilice el método `.run()`:

   ```
   # Can be replaced with any S3 compliant string for the name of the folder.
   s3_folder = geospatial-data-analysis
   
   # Use .default_bucket() to get the name of the S3 bucket associated with your current SageMaker session
   s3_bucket = sm_session.default_bucket()
   					
   s3_manifest_uri = f's3://{s3_bucket}/{s3_folder}/manifest.json'
   s3_prefix_uri =  f's3://{s3_bucket}/{s3_folder}/image-prefix
   
   script_processor.run(
   	code='preprocessing.py',
   	inputs=[
   		ProcessingInput(
   			source=s3_manifest_uri | s3_prefix_uri ,
   			destination='/opt/ml/processing/input_data/',
   			s3_data_type= "ManifestFile" | "S3Prefix",
   			s3_data_distribution_type= "ShardedByS3Key" | "FullyReplicated"
   		)
   	],
   	outputs=[
           ProcessingOutput(
               source='/opt/ml/processing/output_data/',
               destination=s3_output_prefix_url
           )
       ]
   )
   ```
   + *preprocessing.py*Sustitúyalo por el nombre de tu propio script de procesamiento de datos de Python.
   + Un trabajo de procesamiento admite dos métodos para formatear los datos de entrada. Puede crear un archivo de manifiesto que apunte a todos los datos de entrada para su trabajo de procesamiento o puede usar un prefijo común en cada entrada de datos individual. Si ha creado un archivo de manifiesto, establezca un `s3_manifest_uri` igual a `"ManifestFile"`. Si usó un conjunto de prefijos de archivo `s3_manifest_uri` igual a `"S3Prefix"`. Para especificar la ruta de acceso a sus datos, utilice `source`.
   + Puede distribuir los datos del trabajo de procesamiento de dos maneras:
     + Distribuya sus datos a todas las instancias de procesamiento estableciendo un valor `s3_data_distribution_type` igual a `FullyReplicated`.
     + Distribuya sus datos en fragmentos en particiones en función de la clave de Amazon S3 estableciendo un valor de `s3_data_distribution_type` igual a `ShardedByS3Key`. Cuando se utiliza `ShardedByS3Key`, se envía una partición de datos a cada instancia de procesamiento.

    Puede utilizar un script para procesar datos SageMaker geoespaciales. Ese script se encuentra en el [Paso 3: Escritura de un script que pueda calcular el NDVI](geospatial-custom-operations-procedure.md#geospatial-custom-operations-script-mode). Para obtener más información sobre el funcionamiento de la `.run()` API, consulte [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor.run](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor.run)el *SDK para procesamiento de Amazon SageMaker Python*.

Para supervisar el progreso de su trabajo de procesamiento, la clase `ProcessingJobs` admite un método [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingJob.describe](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingJob.describe). Este método devuelve una respuesta de la llamada a la API `DescribeProcessingJob`. Para obtener más información, consulta [`DescribeProcessingJob`la *referencia de la API de Amazon SageMaker AI*](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html).

En el siguiente tema, se muestra cómo crear una instancia de la `ScriptProcessor` clase utilizando el contenedor SageMaker geoespacial y, a continuación, cómo usarla para calcular el índice diferencial normalizado de vegetación (NDVI) con imágenes. Sentinel-2



# Uso de `ScriptProcessor` para calcular el índice diferencial de vegetación normalizado (NDVI) con datos del satélite Sentinel-2
<a name="geospatial-custom-operations-procedure"></a>

En los siguientes ejemplos de código, se muestra cómo calcular el índice de vegetación diferencial normalizado de un área geográfica específica mediante la imagen geoespacial diseñada específicamente en un bloc de notas de Studio Classic y cómo ejecutar una carga de trabajo a gran escala con Amazon SageMaker Processing mediante [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor)el SDK de Python para IA SageMaker .

Esta demostración también usa una instancia de bloc de notas Amazon SageMaker Studio Classic que usa el kernel geoespacial y el tipo de instancia. Para obtener información sobre cómo crear una instancia de cuaderno geoespacial de Studio Classic, consulte [Cree un bloc de notas Amazon SageMaker Studio Classic con la imagen geoespacial](geospatial-launch-notebook.md).

Puede seguir esta demostración en su propia instancia de cuaderno copiando y pegando los siguientes fragmentos de código:

1. [Utilice `search_raster_data_collection` para consultar un área de interés (AOI) específica en un intervalo de tiempo determinado mediante una recopilación de datos ráster específica, Sentinel-2.](#geospatial-custom-operations-procedure-search)

1. [Cree un archivo de manifiesto que especifique qué datos se procesarán durante el trabajo de procesamiento.](#geospatial-custom-operations-procedure-manifest)

1. [Escriba un script Python de procesamiento de datos para calcular el NDVI.](#geospatial-custom-operations-script-mode)

1. [Crea una `ScriptProcessor` instancia e inicia el trabajo de Amazon SageMaker Processing](#geospatial-custom-operations-create).

1. [Visualización de los resultados de su trabajo de procesamiento](#geospatial-custom-operations-visual).

## Consulta de la recopilación de datos ráster de Sentinel-2 mediante `SearchRasterDataCollection`
<a name="geospatial-custom-operations-procedure-search"></a>

Con `search_raster_data_collection` puede consultar las colecciones de datos ráster compatibles. En este ejemplo, se utilizan datos extraídos de los satélites Sentinel-2. El área de interés especificada (`AreaOfInterest`) es una zona rural del norte de Iowa y el intervalo de tiempo (`TimeRangeFilter`) va del 1 de enero de 2022 al 30 de diciembre de 2022. Para ver las recopilaciones de datos ráster disponibles en su Región de AWS , use `list_raster_data_collections`. Para ver un ejemplo de código con esta API, consulta [`ListRasterDataCollections`](geospatial-data-collections.md)la *Guía para desarrolladores de Amazon SageMaker AI*.

En los siguientes ejemplos de código, utilizará el ARN asociado a la recopilación de datos ráster de Sentinel-2, `arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8`.

Una solicitud a la API `search_raster_data_collection` requiere dos parámetros:
+ Debe especificar un parámetro `Arn` que corresponda a la recopilación de datos ráster que desea consultar.
+ También debe especificar un parámetro `RasterDataCollectionQuery`, que incluye un diccionario Python.

El siguiente ejemplo de código contiene los pares clave-valor necesarios para el parámetro `RasterDataCollectionQuery` guardado en la variable `search_rdc_query`.

```
search_rdc_query = {
    "AreaOfInterest": {
        "AreaOfInterestGeometry": {
            "PolygonGeometry": {
                "Coordinates": [[
                    [
              -94.50938680498298,
              43.22487436936203
            ],
            [
              -94.50938680498298,
              42.843474642037194
            ],
            [
              -93.86520004156142,
              42.843474642037194
            ],
            [
              -93.86520004156142,
              43.22487436936203
            ],
            [
              -94.50938680498298,
              43.22487436936203
            ]
               ]]
            }
        }
    },
    "TimeRangeFilter": {"StartTime": "2022-01-01T00:00:00Z", "EndTime": "2022-12-30T23:59:59Z"}
}
```

Para realizar la solicitud `search_raster_data_collection`, debe especificar el ARN de la recopilación de datos ráster de Sentinel-2: `arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8`. También debe pasar el diccionario de Python que se definió anteriormente, que especifica los parámetros de consulta. 

```
## Creates a SageMaker Geospatial client instance 
sm_geo_client= session.create_client(service_name="sagemaker-geospatial")

search_rdc_response1 = sm_geo_client.search_raster_data_collection(
    Arn='arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
    RasterDataCollectionQuery=search_rdc_query
)
```

Los resultados de esta API no se pueden paginar. Para recopilar todas las imágenes de satélite devueltas por la operación `search_raster_data_collection`, puede implementar un bucle de tipo `while`. Esto comprueba si existe un `NextToken` en la respuesta de la API:

```
## Holds the list of API responses from search_raster_data_collection
items_list = []
while search_rdc_response1.get('NextToken') and search_rdc_response1['NextToken'] != None:
    items_list.extend(search_rdc_response1['Items'])
    
    search_rdc_response1 = sm_geo_client.search_raster_data_collection(
    	Arn='arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
        RasterDataCollectionQuery=search_rdc_query, 
        NextToken=search_rdc_response1['NextToken']
    )
```

La respuesta de la API devuelve una lista de URLs debajo de la `Assets` clave correspondiente a bandas de imagen específicas. A continuación presentamos una versión truncada de la respuesta de la API. Hemos quitado algunas de las bandas de la imagen para ofrecer una mayor claridad.

```
{
	'Assets': {
        'aot': {
            'Href': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/15/T/UH/2022/12/S2A_15TUH_20221230_0_L2A/AOT.tif'
        },
        'blue': {
            'Href': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/15/T/UH/2022/12/S2A_15TUH_20221230_0_L2A/B02.tif'
        },
        'swir22-jp2': {
            'Href': 's3://sentinel-s2-l2a/tiles/15/T/UH/2022/12/30/0/B12.jp2'
        },
        'visual-jp2': {
            'Href': 's3://sentinel-s2-l2a/tiles/15/T/UH/2022/12/30/0/TCI.jp2'
        },
        'wvp-jp2': {
            'Href': 's3://sentinel-s2-l2a/tiles/15/T/UH/2022/12/30/0/WVP.jp2'
        }
    },
    'DateTime': datetime.datetime(2022, 12, 30, 17, 21, 52, 469000, tzinfo = tzlocal()),
    'Geometry': {
        'Coordinates': [
            [
                [-95.46676936182894, 43.32623760511659],
                [-94.11293433656887, 43.347431265475954],
                [-94.09532154452742, 42.35884880571144],
                [-95.42776890002203, 42.3383710796791],
                [-95.46676936182894, 43.32623760511659]
            ]
        ],
        'Type': 'Polygon'
    },
    'Id': 'S2A_15TUH_20221230_0_L2A',
    'Properties': {
        'EoCloudCover': 62.384969,
        'Platform': 'sentinel-2a'
    }
}
```

En la [siguiente sección](#geospatial-custom-operations-procedure-manifest), creará un archivo de manifiesto con la clave `'Id'` de la respuesta de la API.

## Creación de un archivo de manifiesto de entrada con la clave `Id` de la respuesta de la API `search_raster_data_collection`
<a name="geospatial-custom-operations-procedure-manifest"></a>

Al ejecutar un trabajo de procesamiento, debe especificar una entrada de datos de Amazon S3. El tipo de datos de entrada puede ser un archivo de manifiesto, que luego apunta a los archivos de datos individuales. También puede agregar un prefijo a cada archivo que desee procesar. El siguiente ejemplo de código define la carpeta en la que se generarán los archivos de manifiesto.

Use el SDK for Python (Boto3) para obtener el bucket predeterminado y el ARN del rol de ejecución que esté asociado a su instancia de cuaderno de Studio Classic:

```
sm_session = sagemaker.session.Session()
s3 = boto3.resource('s3')
# Gets the default excution role associated with the notebook
execution_role_arn = sagemaker.get_execution_role() 

# Gets the default bucket associated with the notebook
s3_bucket = sm_session.default_bucket() 

# Can be replaced with any name
s3_folder = "script-processor-input-manifest"
```

A continuación, creará un archivo de manifiesto. Contendrá las imágenes URLs de satélite que desee procesar cuando ejecute el trabajo de procesamiento más adelante en el paso 4.

```
# Format of a manifest file
manifest_prefix = {}
manifest_prefix['prefix'] = 's3://' + s3_bucket + '/' + s3_folder + '/'
manifest = [manifest_prefix]

print(manifest)
```

El siguiente ejemplo de código devuelve el URI de S3 en el que se crearán los archivos de manifiesto.

```
[{'prefix': 's3://sagemaker-us-west-2-111122223333/script-processor-input-manifest/'}]
```

No se necesitan todos los elementos de respuesta de la respuesta search\$1raster\$1data\$1collection para ejecutar el trabajo de procesamiento. 

El siguiente fragmento de código elimina los elementos innecesarios `'Properties'`, `'Geometry'` y `'DateTime'`. El par clave-valor `'Id'`, `'Id': 'S2A_15TUH_20221230_0_L2A'`, contiene el año y el mes. El siguiente ejemplo de código analiza esos datos para crear nuevas claves en el diccionario de Python **dict\$1month\$1items**. Los valores son los activos que se devuelven desde la consulta `SearchRasterDataCollection`. 

```
# For each response get the month and year, and then remove the metadata not related to the satelite images.
dict_month_items = {}
for item in items_list:
    # Example ID being split: 'S2A_15TUH_20221230_0_L2A' 
    yyyymm = item['Id'].split("_")[2][:6]
    if yyyymm not in dict_month_items:
        dict_month_items[yyyymm] = []
    
    # Removes uneeded metadata elements for this demo 
    item.pop('Properties', None)
    item.pop('Geometry', None)
    item.pop('DateTime', None)

    # Appends the response from search_raster_data_collection to newly created key above
    dict_month_items[yyyymm].append(item)
```

En este ejemplo de código,  carga el `dict_month_items` en Amazon S3 como un objeto JSON mediante la operación de la API [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/upload_file.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/upload_file.html):

```
## key_ is the yyyymm timestamp formatted above
## value_ is the reference to all the satellite images collected via our searchRDC query 
for key_, value_ in dict_month_items.items():
    filename = f'manifest_{key_}.json'
    with open(filename, 'w') as fp:
        json.dump(value_, fp)
    s3.meta.client.upload_file(filename, s3_bucket, s3_folder + '/' + filename)
    manifest.append(filename)
    os.remove(filename)
```

En este ejemplo de código se carga un archivo `manifest.json` principal que apunta a todos los demás manifiestos subidos a Amazon S3. También guarda la ruta a una variable local: **s3\$1manifest\$1uri**. Volverá a utilizar esa variable para especificar la fuente de los datos de entrada cuando ejecute el trabajo de procesamiento en el paso 4.

```
with open('manifest.json', 'w') as fp:
    json.dump(manifest, fp)
s3.meta.client.upload_file('manifest.json', s3_bucket, s3_folder + '/' + 'manifest.json')
os.remove('manifest.json')

s3_manifest_uri = f's3://{s3_bucket}/{s3_folder}/manifest.json'
```

Ahora que ha creado los archivos de manifiesto de entrada y los ha cargado, puede escribir un script que procese los datos en el trabajo de procesamiento. Procesa los datos de las imágenes de satélite, calcula el NDVI y, a continuación, devuelve los resultados a una ubicación diferente de Amazon S3.

## Escritura de un script que calcule el NDVI
<a name="geospatial-custom-operations-script-mode"></a>

Amazon SageMaker Studio Classic admite el uso del comando `%%writefile` cell magic. Tras ejecutar una celda con este comando, su contenido se guardará en el directorio local de Studio Classic. Se trata de un código específico para calcular el NDVI. Sin embargo, lo que explicamos a continuación puede resultar útil a la hora de escribir su propio script para un trabajo de procesamiento:
+ En el contenedor de tareas de procesamiento, las rutas locales dentro del contenedor deben empezar por `/opt/ml/processing/`. En este ejemplo, **input\$1data\$1path = '/opt/ml/processing/input\$1data/' ** y **processed\$1data\$1path = '/opt/ml/processing/output\$1data/'** se especifican de esa manera.
+ Con Amazon SageMaker Processing, un  script que ejecute un trabajo de procesamiento puede cargar los datos procesados directamente en Amazon S3. Para ello, asegúrese de que la función de ejecución asociada a la instancia `ScriptProcessor` cumpla los requisitos necesarios para acceder al bucket de S3. También puede especificar un parámetro de salida al ejecutar el trabajo de procesamiento. Para obtener más información, consulte el [funcionamiento de la `.run()` API](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor.run) en el *SDK de Amazon SageMaker Python*. En este ejemplo de código, los resultados del procesamiento de datos se cargan directamente en Amazon S3.
+ Para gestionar el tamaño del Amazon EBScontainer adjunto a tu trabajo de procesamiento, usa el `volume_size_in_gb` parámetro. El tamaño predeterminado de los contenedores es de 30 GB. Si lo desea, también puede utilizar la biblioteca de Python [Garbage Collector](https://docs.python.org/3/library/gc.html) para gestionar el almacenamiento en su contenedor de Amazon EBS.

  El siguiente ejemplo de código carga las matrices en el contenedor de tareas de procesamiento. Cuando las matrices se acumulan y llenan la memoria, el trabajo de procesamiento se bloquea. Para evitar este bloqueo, el siguiente ejemplo contiene comandos que eliminan las matrices del contenedor del trabajo de procesamiento.

```
%%writefile compute_ndvi.py

import os
import pickle
import sys
import subprocess
import json
import rioxarray

if __name__ == "__main__":
    print("Starting processing")
    
    input_data_path = '/opt/ml/processing/input_data/'
    input_files = []
    
    for current_path, sub_dirs, files in os.walk(input_data_path):
        for file in files:
            if file.endswith(".json"):
                input_files.append(os.path.join(current_path, file))
    
    print("Received {} input_files: {}".format(len(input_files), input_files))

    items = []
    for input_file in input_files:
        full_file_path = os.path.join(input_data_path, input_file)
        print(full_file_path)
        with open(full_file_path, 'r') as f:
            items.append(json.load(f))
            
    items = [item for sub_items in items for item in sub_items]

    for item in items:
        red_uri = item["Assets"]["red"]["Href"]
        nir_uri = item["Assets"]["nir"]["Href"]

        red = rioxarray.open_rasterio(red_uri, masked=True)
        nir = rioxarray.open_rasterio(nir_uri, masked=True)

        ndvi = (nir - red)/ (nir + red)
        
        file_name = 'ndvi_' + item["Id"] + '.tif'
        output_path = '/opt/ml/processing/output_data'
        output_file_path = f"{output_path}/{file_name}"
        
        ndvi.rio.to_raster(output_file_path)
        print("Written output:", output_file_path)
```

Ahora tiene un script que puede calcular el NDVI. A continuación, puede crear una instancia del trabajo de procesamiento ScriptProcessor y ejecutarlo.

## Creación de una instancia de la clase `ScriptProcessor`
<a name="geospatial-custom-operations-create"></a>

Esta demostración usa la [ScriptProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor)clase que está disponible a través del SDK de Amazon SageMaker Python. En primer lugar, debe crear una instancia de la clase y, a continuación, puede iniciar el trabajo de procesamiento mediante el método `.run()`.

```
from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput

image_uri = '081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest'

processor = ScriptProcessor(
	command=['python3'],
	image_uri=image_uri,
	role=execution_role_arn,
	instance_count=4,
	instance_type='ml.m5.4xlarge',
	sagemaker_session=sm_session
)

print('Starting processing job.')
```

Al iniciar el trabajo de procesamiento, debe especificar un objeto [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingInput](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingInput). En ese objeto, puede especificar lo siguiente:
+ La ruta al archivo de manifiesto que creó en el paso 2, **s3\$1manifest\$1uri**. Este es el origen de los datos de entrada al contenedor.
+ La ruta en la que desea que se guarden los datos de entrada en el contenedor. Debe coincidir con la ruta que especificó en el script.
+ Use el parámetro `s3_data_type` para especificar la entrada como `"ManifestFile"`.

```
s3_output_prefix_url = f"s3://{s3_bucket}/{s3_folder}/output"

processor.run(
    code='compute_ndvi.py',
    inputs=[
        ProcessingInput(
            source=s3_manifest_uri,
            destination='/opt/ml/processing/input_data/',
            s3_data_type="ManifestFile",
            s3_data_distribution_type="ShardedByS3Key"
        ),
    ],
    outputs=[
        ProcessingOutput(
            source='/opt/ml/processing/output_data/',
            destination=s3_output_prefix_url,
            s3_upload_mode="Continuous"
        )
    ]
)
```

El siguiente ejemplo de código utiliza el [método `.describe()`](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingJob.describe) para obtener detalles de su trabajo de procesamiento.

```
preprocessing_job_descriptor = processor.jobs[-1].describe()
s3_output_uri = preprocessing_job_descriptor["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
print(s3_output_uri)
```

## Visualización de los resultados mediante `matplotlib`
<a name="geospatial-custom-operations-visual"></a>

Con la biblioteca de Python [Matplotlib](https://matplotlib.org/stable/index.html), puede trazar datos ráster. Antes de trazar los datos, debe calcular el NDVI utilizando imágenes de muestra de los satélites Sentinel-2. El siguiente ejemplo de código abre las matrices de imágenes mediante la operación de la API `.open_rasterio()` y, a continuación, calcula el NDVI mediante las bandas de imagen `nir` y `red` de los datos del satélite Sentinel-2. 

```
# Opens the python arrays 
import rioxarray

red_uri = items[25]["Assets"]["red"]["Href"]
nir_uri = items[25]["Assets"]["nir"]["Href"]

red = rioxarray.open_rasterio(red_uri, masked=True)
nir = rioxarray.open_rasterio(nir_uri, masked=True)

# Calculates the NDVI
ndvi = (nir - red)/ (nir + red)

# Common plotting library in Python 
import matplotlib.pyplot as plt

f, ax = plt.subplots(figsize=(18, 18))
ndvi.plot(cmap='viridis', ax=ax)
ax.set_title("NDVI for {}".format(items[25]["Id"]))
ax.set_axis_off()
plt.show()
```

El resultado del ejemplo de código anterior es una imagen de satélite con los valores del NDVI superpuestos. Un valor de NDVI cercano a 1 indica que hay mucha vegetación y los valores cercanos a 0 indican que no hay vegetación.

![\[Imagen satelital del norte de Iowa con el NDVI superpuesto en la parte superior\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/ndvi-iowa.png)


Esto completa la demostración de uso de `ScriptProcessor`.

# Trabajos de observación de la Tierra
<a name="geospatial-eoj"></a>

Con un trabajo de observación de la Tierra (EOJ), puede adquirir, transformar y visualizar datos geoespaciales para hacer predicciones. Puede elegir una operación en función de su caso de uso entre una amplia gama de operaciones y modelos. Tiene la flexibilidad de elegir su área de interés, seleccionar los proveedores de datos y configurar cloud-cover-percentage-based filtros y en función del intervalo de tiempo. Una vez que la SageMaker IA cree un EOJ para usted, podrá visualizar las entradas y salidas del trabajo mediante la funcionalidad de visualización. Un EOJ tiene varios casos de uso que incluyen la comparación de la deforestación a lo largo del tiempo y el diagnóstico de la salud de las plantas. Puede crear un EOJ utilizando un SageMaker cuaderno con una imagen SageMaker geoespacial. También puede acceder a la interfaz de usuario SageMaker geoespacial como parte de la interfaz de usuario clásica de Amazon SageMaker Studio para ver la lista de todos sus trabajos. También puede usar la interfaz de usuario para pausar o detener un trabajo en curso. Puede elegir un trabajo de la lista de EOJ disponibles para ver el **Resumen del trabajo**, los **Detalles del trabajo** y visualizar el **Resultado del trabajo**.

**Topics**
+ [Cree un trabajo de observación de la Tierra con una libreta Amazon SageMaker Studio Classic con una imagen SageMaker geoespacial](geospatial-eoj-ntb.md)
+ [Tipos de operaciones](geospatial-eoj-models.md)

# Cree un trabajo de observación de la Tierra con una libreta Amazon SageMaker Studio Classic con una imagen SageMaker geoespacial
<a name="geospatial-eoj-ntb"></a>

**Para usar un cuaderno SageMaker Studio Classic con una imagen SageMaker geoespacial:**

1. En el **Lanzador**, seleccione **Cambiar entorno** en **Cuadernos y recursos de computación**.

1. A continuación, se abrirá el cuadro de diálogo **Cambiar entorno**.

1. Seleccione el menú desplegable **Imagen** y elija **Geospatial 1.0**. El **Tipo de instancia** debe ser **ml.geospatial.interactive**. No cambie los valores predeterminados de las demás opciones.

1. Elija **Seleccionar**.

1. Elija **Crear cuaderno**.

Puede iniciar un EOJ con un bloc de notas Amazon SageMaker Studio Classic con una imagen SageMaker geoespacial mediante el código que se proporciona a continuación.

```
import boto3
import sagemaker
import sagemaker_geospatial_map

session = boto3.Session()
execution_role = sagemaker.get_execution_role()
sg_client = session.client(service_name="sagemaker-geospatial")
```

En el siguiente ejemplo se muestra cómo crear un EOJ en la región Oeste de EE. UU. (Oregón).

```
#Query and Access Data
search_rdc_args = {
    "Arn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",  # sentinel-2 L2A COG
    "RasterDataCollectionQuery": {
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {
                "PolygonGeometry": {
                    "Coordinates": [
                        [
                            [-114.529, 36.142],
                            [-114.373, 36.142],
                            [-114.373, 36.411],
                            [-114.529, 36.411],
                            [-114.529, 36.142],
                        ]
                    ]
                }
            }
        },
        "TimeRangeFilter": {
            "StartTime": "2021-01-01T00:00:00Z",
            "EndTime": "2022-07-10T23:59:59Z",
        },
        "PropertyFilters": {
            "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}],
            "LogicalOperator": "AND",
        },
        "BandFilter": ["visual"],
    },
}

tci_urls = []
data_manifests = []
while search_rdc_args.get("NextToken", True):
    search_result = sg_client.search_raster_data_collection(**search_rdc_args)
    if search_result.get("NextToken"):
        data_manifests.append(search_result)
    for item in search_result["Items"]:
        tci_url = item["Assets"]["visual"]["Href"]
        print(tci_url)
        tci_urls.append(tci_url)

    search_rdc_args["NextToken"] = search_result.get("NextToken")
        
# Perform land cover segmentation on images returned from the sentinel dataset.
eoj_input_config = {
    "RasterDataCollectionQuery": {
        "RasterDataCollectionArn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {
                "PolygonGeometry": {
                    "Coordinates": [
                        [
                            [-114.529, 36.142],
                            [-114.373, 36.142],
                            [-114.373, 36.411],
                            [-114.529, 36.411],
                            [-114.529, 36.142],
                        ]
                    ]
                }
            }
        },
        "TimeRangeFilter": {
            "StartTime": "2021-01-01T00:00:00Z",
            "EndTime": "2022-07-10T23:59:59Z",
        },
        "PropertyFilters": {
            "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}],
            "LogicalOperator": "AND",
        },
    }
}
eoj_config = {"LandCoverSegmentationConfig": {}}

response = sg_client.start_earth_observation_job(
    Name="lake-mead-landcover",
    InputConfig=eoj_input_config,
    JobConfig=eoj_config,
    ExecutionRoleArn=execution_role,
)
```

Una vez creado el EOJ, se le devolverá el `Arn`. El `Arn` se utiliza para identificar un trabajo y realizar más operaciones. Para obtener el estado de un trabajo, puede ejecutar `sg_client.get_earth_observation_job(Arn = response['Arn'])`.

En el siguiente ejemplo se muestra cómo consultar el estado de un EOJ hasta que se complete.

```
eoj_arn = response["Arn"]
job_details = sg_client.get_earth_observation_job(Arn=eoj_arn)
{k: v for k, v in job_details.items() if k in ["Arn", "Status", "DurationInSeconds"]}
# List all jobs in the account
sg_client.list_earth_observation_jobs()["EarthObservationJobSummaries"]
```

Una vez finalizado el EOJ, puede visualizar los resultados del EOJ directamente en el portátil. En el siguiente ejemplo se muestra cómo se puede renderizar un mapa interactivo.

```
map = sagemaker_geospatial_map.create_map({
'is_raster': True
})
map.set_sagemaker_geospatial_client(sg_client)
# render the map
map.render()
```

El siguiente ejemplo muestra cómo se puede centrar el mapa en un área de interés y cómo la entrada y la salida del EOJ se pueden representar como capas independientes dentro del mapa.

```
# visualize the area of interest
config = {"label": "Lake Mead AOI"}
aoi_layer = map.visualize_eoj_aoi(Arn=eoj_arn, config=config)

# Visualize input.
time_range_filter = {
    "start_date": "2022-07-01T00:00:00Z",
    "end_date": "2022-07-10T23:59:59Z",
}
config = {"label": "Input"}

input_layer = map.visualize_eoj_input(
    Arn=eoj_arn, config=config, time_range_filter=time_range_filter
)
# Visualize output, EOJ needs to be in completed status.
time_range_filter = {
    "start_date": "2022-07-01T00:00:00Z",
    "end_date": "2022-07-10T23:59:59Z",
}
config = {"preset": "singleBand", "band_name": "mask"}
output_layer = map.visualize_eoj_output(
    Arn=eoj_arn, config=config, time_range_filter=time_range_filter
)
```

Puede utilizar la función `export_earth_observation_job` para exportar los resultados de EOJ a su bucket de Amazon S3. La función de exportación facilita el intercambio de resultados entre equipos. SageMaker La IA también simplifica la gestión de los conjuntos de datos. Simplemente podemos compartir los resultados del EOJ mediante el ARN del trabajo, en lugar de rastrear miles de archivos en el bucket de S3. Cada EOJ se convierte en un activo del catálogo de datos, ya que los resultados se pueden agrupar por el ARN del trabajo. El siguiente ejemplo muestra cómo se pueden exportar los resultados de un EOJ.

```
sagemaker_session = sagemaker.Session()
s3_bucket_name = sagemaker_session.default_bucket()  # Replace with your own bucket if needed
s3_bucket = session.resource("s3").Bucket(s3_bucket_name)
prefix = "eoj_lakemead"  # Replace with the S3 prefix desired
export_bucket_and_key = f"s3://{s3_bucket_name}/{prefix}/"

eoj_output_config = {"S3Data": {"S3Uri": export_bucket_and_key}}
export_response = sg_client.export_earth_observation_job(
    Arn=eoj_arn,
    ExecutionRoleArn=execution_role,
    OutputConfig=eoj_output_config,
    ExportSourceImages=False,
)
```

Puede monitorear el estado de su trabajo de exportación mediante el siguiente fragmento de código.

```
# Monitor the export job status
export_job_details = sg_client.get_earth_observation_job(Arn=export_response["Arn"])
{k: v for k, v in export_job_details.items() if k in ["Arn", "Status", "DurationInSeconds"]}
```

No se le cobrarán las tarifas de almacenamiento después de eliminar el EOJ.

Para ver un ejemplo que muestra cómo ejecutar un EOJ, consulte esta [entrada de blog](https://aws.amazon.com/blogs/machine-learning/monitoring-lake-mead-drought-using-the-new-amazon-sagemaker-geospatial-capabilities/).

[Para ver más ejemplos de cuadernos sobre capacidades SageMaker geoespaciales, consulta este repositorio. GitHub ](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-geospatial)

# Tipos de operaciones
<a name="geospatial-eoj-models"></a>

Al crear un EOJ, selecciona una operación en función del caso de uso. Las capacidades SageMaker geoespaciales de Amazon proporcionan una combinación de operaciones diseñadas específicamente y modelos previamente entrenados. Puede utilizar estas operaciones para comprender el impacto de los cambios ambientales y las actividades humanas a lo largo del tiempo o para identificar píxeles en la nube y sin nubes.

**Enmascaramiento de nubes**

Identificar las nubes en las imágenes de satélite es un paso previo al procesamiento esencial para producir datos geoespaciales de alta calidad. Ignorar los píxeles de las nubes puede provocar errores en el análisis, y la sobredetección de los píxeles de las nubes puede reducir el número de observaciones válidas. El enmascaramiento de nubes permite identificar los píxeles con nubes y sin nubes en las imágenes de satélite. Un enmascaramiento de nube preciso ayuda a obtener imágenes de satélite para su procesamiento y mejora la generación de datos. A continuación presentamos un mapa de clases para el enmascaramiento de nubes.

```
{
0: "No_cloud",
1: "cloud"
}
```

**Eliminación de nubes**

La eliminación de nubes en los datos de Sentinel-2 utiliza un modelo de segmentación semántica basado en machine learning para identificar las nubes en la imagen. Los píxeles con nubes se pueden reemplazar por píxeles de otras marcas temporales. Los datos de USGS Landsat contienen metadatos de Landsat que se utilizan para eliminar las nubes.

**Estadísticas temporales**

Las estadísticas temporales calculan las estadísticas de los datos geoespaciales a lo largo del tiempo. Las estadísticas temporales que se admiten actualmente incluyen la media, la mediana y la desviación estándar. Puede calcular estas estadísticas utilizando `GROUPBY` y configurándolas en `all` o `yearly`. También puede mencionar las `TargetBands`.

**Estadísticas zonales**

Las estadísticas zonales realizan operaciones estadísticas en un área específica de la imagen. 

**Remuestreo**

El remuestreo se utiliza para aumentar y reducir la resolución de una imagen geoespacial. El atributo `value` del remuestreo representa la longitud de un lado del píxel.

**Geomosaico**

El geomosaico permite unir imágenes más pequeñas en una imagen grande.

**Apilamiento de bandas**

El apilamiento de bandas toma más de una banda de imagen como entrada y las apila en un solo GeoTIFF. El atributo `OutputResolution` determina la resolución de la imagen de salida. En función de las resoluciones de las imágenes de entrada, puede configurarlo en `lowest`, `highest` o `average`.

**Matemáticas de banda**

Las matemáticas de banda, también conocidas como índice espectral, es un proceso que consiste en transformar las observaciones de múltiples bandas espectrales en una sola banda, lo que indica la abundancia relativa de características de interés. Por ejemplo, el índice diferencial normalizado de vegetación (NDVI) y el índice de vegetación mejorado (EVI) son útiles para observar la presencia de elementos vegetales verdes.

**Segmentación de la cubierta terrestre**

La segmentación de la cubierta terrestre es un modelo de segmentación semántica que tiene la capacidad de identificar el material físico, como la vegetación, el agua y el suelo desnudo, en la superficie terrestre. Disponer de una forma precisa de trazar un mapa de los patrones de cobertura terrestre le ayuda a comprender el impacto del cambio ambiental y de las actividades humanas a lo largo del tiempo. La segmentación de la cubierta terrestre se utiliza a menudo para la planificación regional, la respuesta a los desastres, la gestión ecológica y la evaluación del impacto ambiental. Este es el mapa de clases de la segmentación de la cubierta terrestre.

```
{
0: "No_data",
1: "Saturated_or_defective",
2: "Dark_area_pixels",
3: "Cloud_shadows",
4: "Vegetation",
5: "Not_vegetated",
6: "Water",
7: "Unclassified",
8: "Cloud_medium_probability",
9: "Cloud_high_probability",
10: "Thin_cirrus",
11: "Snow_ice"
}
```

## Disponibilidad de las operaciones de EOJ
<a name="geospatial-eoj-models-avail"></a>

La disponibilidad de las operaciones depende de si utiliza la interfaz de usuario SageMaker geoespacial o las libretas clásicas de Amazon SageMaker Studio con una imagen SageMaker geoespacial. Actualmente, los cuadernos son compatibles con todas las funcionalidades. En resumen, la IA admite las siguientes operaciones geoespaciales: SageMaker 


| Operaciones |  Description (Descripción)  |  Disponibilidad.  | 
| --- | --- | --- | 
| Enmascaramiento de nubes | Identifique píxeles con y sin nubes para obtener imágenes de satélite mejoradas y precisas. | Interfaz de usuario, Cuaderno | 
| Eliminación de nubes | Elimine los píxeles que contengan partes de una nube en las imágenes de satélite. | Cuaderno | 
| Estadísticas temporales | Calcule las estadísticas en el tiempo para un GeoTIFF determinado. | Cuaderno | 
| Estadísticas zonales | Calcule las estadísticas de las regiones definidas por el usuario. | Cuaderno | 
| Remuestreo | Escale las imágenes a diferentes resoluciones. | Cuaderno | 
| Geomosaico | Combine varias imágenes para obtener una mayor fidelidad. | Cuaderno | 
| Apilamiento de bandas | Combine varias bandas espectrales para crear una sola imagen. | Cuaderno | 
| Matemáticas de bandas e índice espectral | Obtenga una combinación de bandas espectrales que indique la abundancia de características de interés. | Interfaz de usuario, Cuaderno | 
| Segmentación de la cubierta terrestre | Identifique los tipos de cobertura terrestre, como la vegetación y el agua, en las imágenes de satélite. | Interfaz de usuario, Cuaderno | 

# Trabajos de enriquecimiento vectorial
<a name="geospatial-vej"></a>

Un trabajo de enriquecimiento vectorial (VEJ) realiza operaciones con los datos vectoriales. Actualmente, puede utilizar un VEJ para realizar geocodificación inversa o coincidencia de mapas.
<a name="geospatial-vej-rev-geo"></a>
**Geocodificación inversa**  
Con un VEJ de geocodificación inversa, puede convertir coordenadas geográficas (latitud, longitud) en direcciones legibles por humanos con la tecnología de Amazon Location Service. Al cargar un archivo CSV que contenga las coordenadas de longitud y latitud, devuelve el número de dirección, el país, la etiqueta, el municipio, el barrio, el código postal y la región de esa ubicación. El archivo de salida consta de los datos de entrada junto con las columnas que contienen estos valores asociados al final. Estos trabajos están optimizados para aceptar decenas de miles de trazas GPS. 
<a name="geospatial-vej-map-match"></a>
**Coincidencia de mapas**  
La coincidencia de mapas le permite ajustar las coordenadas GPS a los segmentos de carretera. La entrada debe ser un archivo CSV que contenga el identificador de rastreo (ruta), la longitud, la latitud y los atributos de la marca temporal. Puede haber varias coordenadas GPS por ruta. La entrada también puede contener varias rutas. El resultado es un archivo GeoJSON que contiene los enlaces de la ruta prevista. También tiene los puntos de captura proporcionados en la entrada. Estos trabajos están optimizados para aceptar decenas de miles de trayectos en una solicitud. La coincidencia de mapas es compatible con. [OpenStreetMap](https://www.openstreetmap.org/) La coincidencia de mapas falla si los nombres del campo fuente de entrada no coinciden con los nombres que aparecen en `MapMatchingConfig`. El mensaje de error que recibe contiene los nombres de campo presentes en el archivo de entrada y el nombre de campo esperado que no se encuentra en la `MapMatchingConfig`. 

El archivo CSV de entrada de un VEJ debe contener lo siguiente:
+ Una fila de encabezado
+ Latitud y longitud en columnas separadas
+ Las columnas de ID y marca tempral pueden estar en formato numérico o de cadena. Todos los demás datos de las columnas deben estar únicamente en formato numérico
+ No debe haber falta de coincidencia en las comillas

Para la columna de fecha y hora, las capacidades SageMaker geoespaciales admiten el tiempo de época en segundos y milisegundos (entero largo). Los formatos de cadena compatibles son los siguientes.
+ "dd.MM.aaaa HH:mm:ss z"
+ "aaaa-MM-dd'T'HH:mm:ss.SSS'Z'"
+ "aaaa-MM-dd'T'HH:mm:ss"
+ «hh:mm:ss a» yyyy-MM-dd 
+ «yyyy-MM-dd Hh:mm:ss»
+ «yyyy MMddHHmmss»

Si bien necesita usar un bloc de notas Amazon SageMaker Studio Classic para ejecutar un VEJ, puede ver todos los trabajos que cree mediante la interfaz de usuario. Para utilizar la visualización del cuaderno, primero tiene que exportar la salida a su bucket de S3. Las acciones de VEJ que puede realizar son las siguientes.
+ [StartVectorEnrichmentJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_StartVectorEnrichmentJob.html)
+ [GetVectorEnrichmentJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_GetVectorEnrichmentJob.html)
+ [ListVectorEnrichmentJobs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListVectorEnrichmentJobs.html)
+ [StopVectorEnrichmentJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_StopVectorEnrichmentJob.html)
+ [DeleteVectorEnrichmentJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_DeleteVectorEnrichmentJob.html)

# Visualización mediante capacidades SageMaker geoespaciales
<a name="geospatial-visualize"></a>

Con las funcionalidades de visualización que ofrece Amazon SageMaker Geospatial, puede visualizar los datos geoespaciales, las entradas de sus trabajos de EOJ o VEJ, así como las salidas exportadas desde su bucket de Amazon S3. La herramienta de visualización funciona con la tecnología de [Foursquare Studio](https://studio.foursquare.com/home). La siguiente imagen muestra la herramienta de visualización compatible con las capacidades geoespaciales. SageMaker 

![\[La herramienta de visualización que utiliza capacidades SageMaker geoespaciales muestra un mapa de la costa de California.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/geospatial_vis.png)


Puede utilizar el panel de navegación izquierdo para añadir datos, capas, filtros y columnas. También puede modificar la forma en que interactúa con el mapa.

**Conjunto de datos**

El origen de datos utilizado para la visualización se denomina **Conjunto de datos**. Para agregar datos para su visualización, elija **Agregar datos** en el panel de navegación izquierdo. Puede cargar los datos desde su bucket de Amazon S3 o desde su equipo local. Los formatos de datos admitidos son CSV, JSON y GeoJSON. Puede agregar varios conjuntos de datos al mapa. Después de cargar el conjunto de datos, podrá verlo cargado en la pantalla del mapa. 

**Capas**

En el panel de capas, se crea una capa y se rellena automáticamente al agregar un conjunto de datos. Si el mapa consta de más de un conjunto de datos, puede seleccionar qué conjunto de datos pertenece a una capa. Puede crear nuevas capas y agruparlas. SageMaker SageMaker Las capacidades geoespaciales admiten varios tipos de capas, incluidos puntos, arcos, iconos y polígonos. 

Puede elegir cualquier punto de datos de una capa para tener un **Contorno**. También puede personalizar aún más los puntos de datos. Por ejemplo, puede elegir el tipo de capa como **Punto** y, a continuación, **Color de relleno** en función de cualquier columna de su conjunto de datos. También puede cambiar el radio de los puntos. 

La siguiente imagen muestra el panel de capas compatible con las capacidades SageMaker geoespaciales.

![\[El panel de capas con puntos de datos en un mapa de EE. UU. está respaldado por capacidades SageMaker geoespaciales.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/geospatial_vis_layer.png)


**Columnas**

Puede ver las columnas presentes en su conjunto de datos mediante la pestaña **Columnas** del panel de navegación izquierdo.

**Filtros**

Puede usar filtros para limitar los puntos de datos que se muestran en el mapa.

**Interacciones**

En el panel **Interacciones**, puede personalizar la forma en que interactúa con el mapa. Por ejemplo, puede elegir qué métricas mostrar en la información emergente que aparece al pasar el ratón por encima de un punto de datos.

**Mapa base**

Actualmente, la SageMaker IA solo es compatible con el mapa base de Amazon Dark.

**Modos de mapa dividido**

Puede tener un **Mapa único**, **Mapas dobles** o **Mapas deslizantes**. Con **Dual Maps**, puedes comparar el mismo mapa side-by-side con diferentes capas. Use los **Mapas deslizantes** para superponer dos mapas uno sobre otro y compararlos mediante un separador deslizante. Puede elegir el modo de mapa dividido seleccionando el botón **Modo dividido** en la esquina superior derecha del mapa.

## Leyendas para EOJ en la interfaz de usuario SageMaker geoespacial
<a name="geo-legends-eoj"></a>

La visualización del resultado de un EOJ depende de la operación que elija para crearlo. La leyenda se basa en la escala de colores predeterminada. Puede ver la leyenda pulsando el botón **Mostrar leyenda** en la esquina superior derecha del mapa.

**Índice espectral**

Al visualizar el resultado de un EOJ en el que se utilice la operación de índice espectral, puede mapear la categoría en función del color de la leyenda, como se muestra.

![\[La leyenda del mapeo de índice espectral.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/geo_spectral_index.png)


**Enmascaramiento de nubes**

Al visualizar el resultado de un EOJ en el que se utilice la operación de enmascaramiento de nubes, puede mapear la categoría en función del color de la leyenda, como se muestra.

![\[La leyenda del mapeo de enmascaramiento de nubes.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/geo_cloud_masking.png)


**Segmentación de la cubierta terrestre**

Al visualizar el resultado de un EOJ en el que se utilice la operación de segmentación de la cubierta terrestre, puede mapear la categoría en función del color de la leyenda, como se muestra.

![\[La leyenda del mapeo de segmentación de la cubierta terrestre.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/geo_landcover_ss.png)


# SDK de mapas SageMaker geoespaciales de Amazon
<a name="geospatial-notebook-sdk"></a>

Puede utilizar las capacidades SageMaker geoespaciales de Amazon para visualizar mapas dentro de la interfaz de usuario SageMaker geoespacial, así como SageMaker blocs de notas con una imagen geoespacial. Estas visualizaciones son compatibles con la biblioteca de visualización de mapas denominada [Foursquare Studio](https://studio.foursquare.com/home)

Puede utilizar lo que APIs proporciona el SDK de mapas SageMaker geoespaciales para visualizar sus datos geoespaciales, incluidas la entrada, la salida y el AoI de la EOJ.

**Topics**
+ [API add\$1dataset](#geo-add-dataset)
+ [API update\$1dataset](#geo-update-dataset)
+ [API add\$1layer](#geo-add-layer)
+ [API update\$1layer](#geo-update-layer)
+ [API visualize\$1eoj\$1aoi](#geo-visualize-eoj-aoi)
+ [API visualize\$1eoj\$1input](#geo-visualize-eoj-input)
+ [API visualize\$1eoj\$1output](#geo-visualize-eoj-output)

## API add\$1dataset
<a name="geo-add-dataset"></a>

Agrega un objeto de conjunto de datos de ráster o vectoriales al mapa.

**Sintaxis de la solicitud**

```
Request = 
    add_dataset(
      self,
      dataset: Union[Dataset, Dict, None] = None,
      *,
      auto_create_layers: bool = True,
      center_map: bool = True,
      **kwargs: Any,
    ) -> Optional[Dataset]
```

**Parámetros de solicitud**

La solicitud acepta los siguientes parámetros.

Argumentos de posición


| Argumento |  Tipo  |  Description (Descripción)  | 
| --- | --- | --- | 
| `dataset` | Union[Dataset, Dict, None] | Datos utilizados para crear un conjunto de datos, en formato CSV, JSON o GeoJSON (para conjuntos de datos locales) o en una cadena de UUID. | 

Argumentos de palabras clave


| Argumento |  Tipo  |  Descripción  | 
| --- | --- | --- | 
| `auto_create_layers` | Booleano | Si se debe intentar crear nuevas capas al agregar un conjunto de datos. El valor predeterminado es `False`. | 
| `center_map` | Booleano | Si se debe centrar el mapa en el conjunto de datos creado. El valor predeterminado es `True`. | 
| `id` | Cadena | Identificador único del conjunto de datos. Si no lo proporciona, se genera un ID aleatorio. | 
| `label` | Cadena | Etiqueta del conjunto de datos que se muestra. | 
| `color` | Tuple[float, float, float] | Etiqueta de color del conjunto de datos. | 
| `metadata` | Diccionario | Objeto que contiene metadatos de conjuntos de mosaicos (para conjuntos de datos en mosaico). | 

**Respuesta**

Esta API devuelve el objeto de [Conjunto de datos](https://location.foursquare.com/developer/docs/studio-map-sdk-types#dataset) que se agregó al mapa.

## API update\$1dataset
<a name="geo-update-dataset"></a>

Actualiza la configuración de un conjunto de datos existente.

**Sintaxis de la solicitud**

```
Request = 
    update_dataset(
    self,
    dataset_id: str,
    values: Union[_DatasetUpdateProps, dict, None] = None,
    **kwargs: Any,
) -> Dataset
```

**Parámetros de solicitud**

La solicitud acepta los siguientes parámetros.

Argumentos de posición


| Argumento |  Tipo  |  Description (Descripción)  | 
| --- | --- | --- | 
| `dataset_id` | Cadena | El identificador del conjunto de datos que se va a actualizar. | 
| `values` | Union [[\$1DatasetUpdateProps, dict, None](https://location.foursquare.com/developer/docs/studio-map-sdk-types#datasetupdateprops)] | Los valores que se van a actualizar. | 

Argumentos de palabras clave


| Argumento |  Tipo  |  Description (Descripción)  | 
| --- | --- | --- | 
| `label` | Cadena | Etiqueta del conjunto de datos que se muestra. | 
| `color` | [RGBColor](https://location.foursquare.com/developer/docs/studio-map-sdk-types#rgbcolor) | Etiqueta de color del conjunto de datos. | 

**Respuesta**

Esta API devuelve el objeto del conjunto de datos actualizado para mapas interactivos o `None` para entornos HTML no interactivos. 

## API add\$1layer
<a name="geo-add-layer"></a>

Agrega una nueva capa al mapa. Esta función requiere al menos una configuración de capa válida.

**Sintaxis de la solicitud**

```
Request = 
    add_layer(
    self,
    layer: Union[LayerCreationProps, dict, None] = None,
    **kwargs: Any
) -> Layer
```

**Parámetros de solicitud**

La solicitud acepta los siguientes parámetros.

Argumentos


| Argumento |  Tipo  |  Description (Descripción)  | 
| --- | --- | --- | 
| `layer` | Unión [[LayerCreationProps](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layercreationprops), dictado, ninguno] | Conjunto de propiedades que se utilizan para crear una capa. | 

**Respuesta**

El objeto de capa que se agregó al mapa.

## API update\$1layer
<a name="geo-update-layer"></a>

Actualizar una capa existente con los valores dados.

**Sintaxis de la solicitud**

```
Request = 
    update_layer(
  self,
  layer_id: str,
  values: Union[LayerUpdateProps, dict, None],
  **kwargs: Any
) -> Layer
```

**Parámetros de solicitud**

La solicitud acepta los siguientes parámetros.

Argumentos


| Argumento de posición |  Tipo  |  Description (Descripción)  | 
| --- | --- | --- | 
| `layer_id` | Cadena | El ID de la capa que se va a actualizar. | 
| `values` | Unión [[LayerUpdateProps](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layerupdateprops), dictado, ninguno] | Los valores que se van a actualizar. | 

Argumentos de palabras clave


| Argumento |  Tipo  |  Description (Descripción)  | 
| --- | --- | --- | 
| `type` | [LayerType](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layertype) | Tipo de capa. | 
| `data_id` | Cadena | Identificador único del conjunto de datos que visualiza esta capa. | 
| `fields` | Dict [string, Optional[string]] | Diccionario que asigna los campos que la capa requiere para su visualización a los campos correspondientes del conjunto de datos. | 
| `label` | Cadena | Etiqueta canónica de esta capa. | 
| `is_visible` | Booleano | Si la capa es visible o no. | 
| `config` | [LayerConfig](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layerconfig) | Configuración de capas específica para su tipo.  | 

**Respuesta**

Devuelve el objeto de capa actualizado.

## API visualize\$1eoj\$1aoi
<a name="geo-visualize-eoj-aoi"></a>

Visualización del AoI del ARN del trabajo dado.

**Parámetros de solicitud**

La solicitud acepta los siguientes parámetros.

Argumentos


| Argumento |  Tipo  |  Description (Descripción)  | 
| --- | --- | --- | 
|  `Arn`  |  Cadena  |  El ARN del trabajo.  | 
|  `config`  |  Diccionario config = \$1 label: <string> etiqueta personalizada de la capa de AoI agregado, AoI predeterminado\$1  |  Una opción para pasar las propiedades de la capa.  | 

**Respuesta**

Referencia del objeto de la capa de entrada agregado.

## API visualize\$1eoj\$1input
<a name="geo-visualize-eoj-input"></a>

Visualización de la entrada del ARN del EOJ dado.

**Parámetros de solicitud**

La solicitud acepta los siguientes parámetros.

Argumentos


| Argumento |  Tipo  |  Description (Descripción)  | 
| --- | --- | --- | 
| `Arn` | Cadena | El ARN del trabajo. | 
| `time_range_filter` |  Diccionario time\$1range\$1filter = \$1 start\$1date: <string> fecha en formato ISO end\$1date: <string> fecha en formato ISO \$1  | Una opción para proporcionar la hora de inicio y finalización. El valor predeterminado es la fecha de inicio y finalización de la búsqueda de la recopilación de datos ráster. | 
| `config` |  Diccionario config = \$1 label: <string> etiqueta personalizada de la capa de salida agregada, entrada predeterminada \$1  | Una opción para pasar las propiedades de la capa. | 

**Respuesta**

Referencia del objeto de la capa de entrada agregado.

## API visualize\$1eoj\$1output
<a name="geo-visualize-eoj-output"></a>

Visualización de la salida del ARN del EOJ dado

**Parámetros de solicitud**

La solicitud acepta los siguientes parámetros.

Argumentos


| Argumento |  Tipo  |  Description (Descripción)  | 
| --- | --- | --- | 
|  `Arn`  |  Cadena  |  El ARN del trabajo.  | 
|  `time_range_filter`  |  Diccionario time\$1range\$1filter = \$1 start\$1date: <string> fecha en formato ISO end\$1date: <string> fecha en formato ISO \$1  | Una opción para proporcionar la hora de inicio y finalización. El valor predeterminado es la fecha de inicio y finalización de la búsqueda de la recopilación de datos ráster. | 
| `config` |  Diccionario config = \$1 label: <string> etiqueta personalizada de la capa de salida agregada, salida predeterminada prestablecido: <string> singleBand o trueColor, band\$1name: <string>, solo se requiere para el prestablecido 'singleBand’. Bandas permitidas para un EOJ \$1  | Una opción para pasar las propiedades de la capa. | 

**Respuesta**

Referencia del objeto de salida Layer agregado.

Para obtener más información sobre la visualización de sus datos geoespaciales, consulte [Visualización mediante Amazon SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-visualize.html) geospatial.

# SageMaker Preguntas frecuentes sobre las capacidades geoespaciales
<a name="geospatial-faq"></a>

Utilice los siguientes elementos de preguntas frecuentes para encontrar respuestas a las preguntas más frecuentes sobre las capacidades SageMaker geoespaciales.

1. **¿En qué regiones están disponibles las capacidades SageMaker geoespaciales de Amazon?**

   Actualmente, las capacidades SageMaker geoespaciales solo se admiten en la región EE.UU. Oeste (Oregón). Para ver datos SageMaker geoespaciales, elija el nombre de la región que se muestra actualmente en la barra de navegación de la consola. A continuación, elija la región Oeste de EE. UU. (Oregón).

1. **¿Qué AWS Identity and Access Management permisos y políticas se requieren para usar la tecnología SageMaker geoespacial?**

   Para usar la SageMaker tecnología geoespacial, necesita un usuario, grupo o rol que pueda acceder a SageMaker la IA. También debe crear una función de ejecución de SageMaker IA para que SageMaker Geospatial pueda realizar operaciones en su nombre. Para obtener más información, consulte las funciones de [las capacidades SageMaker geoespaciales.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-geospatial-roles.html)

1. **Actualmente tengo un puesto de ejecución de SageMaker IA. ¿Tengo que actualizarlo?**

   Sí. Para utilizar la SageMaker tecnología geoespacial, debe especificar un principio de servicio adicional en su política de confianza de IAM:. `sagemaker-geospatial.amazonaws.com` Para obtener más información sobre cómo especificar un director de servicio en una relación de confianza, consulte [Añadir  el director del servicio SageMaker geoespacial a una función de ejecución de SageMaker IA existente](sagemaker-geospatial-roles-pass-role.md) la *Guía para desarrolladores de Amazon SageMaker AI*.

1. **¿Puedo utilizar las capacidades SageMaker geoespaciales a través de mi entorno de VPC?**

   Sí, puede utilizar la tecnología SageMaker geoespacial a través de una VPN. Para obtener más información, consulte [Utilice las capacidades SageMaker geoespaciales de Amazon en su Amazon Virtual Private Cloud](geospatial-notebooks-and-internet-access-vpc-requirements.md).

1. **¿Por qué no puedo ver el visualizador de mapas SageMaker geoespaciales, la imagen o el tipo de instancia cuando navego a Amazon SageMaker Studio Classic?**

   Compruebe que está lanzando Amazon SageMaker Studio Classic en la región EE.UU. Oeste (Oregón) y que no está utilizando un espacio compartido.

1. **¿Por qué no puedo ver la imagen SageMaker geoespacial o el tipo de instancia cuando intento crear una instancia de bloc de notas en Studio Classic?**

   Compruebe que está lanzando Amazon SageMaker Studio Classic en la región EE.UU. Oeste (Oregón) y que no está utilizando un espacio compartido. Para obtener más información, consulte [Cree un bloc de notas Amazon SageMaker Studio Classic con la imagen geoespacial](geospatial-launch-notebook.md).

1. **¿Qué bandas son compatibles con las distintas recopilaciones de datos ráster?**

   Utilice la respuesta de la API `GetRasterDataCollection` y consulte el campo `ImageSourceBands` para encontrar las bandas compatibles con esa recopilación de datos en particular.

# SageMaker Seguridad y permisos geoespaciales
<a name="geospatial-security-general"></a>

Utilice los temas de esta página para obtener información sobre las funciones de seguridad de las capacidades SageMaker geoespaciales. Además, aprenda a utilizar las capacidades SageMaker geoespaciales en una Amazon Virtual Private Cloud y a proteger sus datos en reposo mediante el cifrado.

Para obtener más información acerca de los usuarios y roles de IAM, consulte [Identidades (usuarios, grupos de usuarios y roles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) en la Guía del usuario de IAM. 

Para obtener más información sobre el uso de IAM con SageMaker IA, consulte. [AWS Identity and Access Management para Amazon SageMaker AI](security-iam.md)

**Topics**
+ [Análisis de configuración y vulnerabilidad en SageMaker el ámbito geoespacial](geospatial-config-vulnerability.md)
+ [Mejores prácticas de seguridad para las capacidades SageMaker geoespaciales](geospatial-sec-best-practices.md)
+ [Utilice las capacidades SageMaker geoespaciales de Amazon en su Amazon Virtual Private Cloud](geospatial-notebooks-and-internet-access-vpc-requirements.md)
+ [Utilice AWS KMS los permisos para las capacidades SageMaker geoespaciales de Amazon](geospatial-kms.md)

# Análisis de configuración y vulnerabilidad en SageMaker el ámbito geoespacial
<a name="geospatial-config-vulnerability"></a>

La configuración y los controles de TI son una responsabilidad compartida entre usted AWS y usted, nuestro cliente. AWS se encarga de las tareas de seguridad básicas, como la aplicación de parches al sistema operativo (SO) huésped y a las bases de datos, la configuración del firewall y la recuperación ante desastres. Estos procedimientos han sido revisados y certificados por los terceros pertinentes. Para obtener más detalles, consulte los siguientes recursos de : 
+ [Modelo de responsabilidad compartida](https://aws.amazon.com/compliance/shared-responsibility-model/).
+ [Amazon Web Services: vista general de los procesos de seguridad](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)

# Mejores prácticas de seguridad para las capacidades SageMaker geoespaciales
<a name="geospatial-sec-best-practices"></a>

Las capacidades SageMaker geoespaciales de Amazon proporcionan una serie de características de seguridad que debe tener en cuenta a la hora de desarrollar e implementar sus propias políticas de seguridad. Las siguientes prácticas recomendadas son directrices generales y no suponen una solución de seguridad completa. Puesto que es posible que estas prácticas recomendadas no sean adecuadas o suficientes para el entorno, plantéeselas como consideraciones útiles en lugar de como normas.
<a name="geospatial-least-privilege"></a>
**Aplicación del principio de privilegios mínimos**  
Las capacidades SageMaker geoespaciales de Amazon proporcionan una política de acceso granular para las aplicaciones que utilizan funciones de IAM. Recomendamos que a los roles se les conceda únicamente el conjunto mínimo de privilegios que requiera el trabajo. También recomendamos auditar los trabajos para detectar permisos de forma regular y ante cualquier cambio en su aplicación.
<a name="geospatial-role-access"></a>
**Permisos de control de acceso basado en roles (RBAC)**  
Los administradores deben controlar estrictamente los permisos de control de acceso basado en roles (RBAC) para las capacidades geoespaciales de Amazon. SageMaker 
<a name="geospatial-temp-creditentials"></a>
**Utilice credenciales temporales siempre que sea posible**  
Siempre que sea posible, utilice credenciales temporales en lugar de credenciales permanentes, como claves de acceso. En aquellas situaciones en las que necesite usuarios de IAM con acceso programático y credenciales de larga duración, se recomienda rotar las claves de acceso. Rotar periódicamente las credenciales de larga duración ayuda a familiarizarse con el proceso. Esto resulta útil si alguna vez se encuentra en una situación en la que debe rotar las credenciales, como cuando un trabajador deja la empresa. Se recomienda utilizar información sobre el último uso de acceso de IAM para rotar y eliminar las claves de acceso de manera segura. Para obtener más información, consulte [Rotación de claves de acceso](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) y [Prácticas recomendadas de seguridad en IAM.](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)
<a name="geospatial-cloudtrail-log"></a>
**Se utiliza para ver y registrar las llamadas AWS CloudTrail a la API**  
AWS CloudTrail rastrea a cualquier persona que realice llamadas a la API en tu AWS cuenta. Las llamadas a la API se registran siempre que alguien utilice la API de capacidades SageMaker geoespaciales de Amazon, la consola de capacidades SageMaker geoespaciales de Amazon o los comandos CLI AWS de SageMaker capacidades geoespaciales de Amazon. Active el registro y especifique un bucket de Amazon S3 para almacenar los registros.

La confianza, privacidad y seguridad de su contenido son nuestras máximas prioridades. Implementamos controles técnicos y físicos responsables y sofisticados diseñados para evitar el acceso no autorizado o la divulgación de su contenido y garantizar que nuestro uso cumple con nuestros compromisos con usted. Para obtener más información, consulte [Preguntas frecuentes sobre la privacidad de datos de AWS](https://aws.amazon.com/compliance/data-privacy-faq/).

# Utilice las capacidades SageMaker geoespaciales de Amazon en su Amazon Virtual Private Cloud
<a name="geospatial-notebooks-and-internet-access-vpc-requirements"></a>

En el siguiente tema se proporciona información sobre cómo utilizar las SageMaker libretas con una imagen SageMaker geoespacial en un dominio de Amazon SageMaker AI con modo solo VPC. Para obtener más información sobre VPCs Amazon SageMaker Studio Classic, consulte [Elegir una VPC de Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-vpc.html).

## Comunicación `VPC only` con Internet
<a name="studio-notebooks-and-internet-access-vpc-geospatial"></a>

De forma predeterminada, el dominio SageMaker AI usa dos Amazon VPC. Una de las VPC de Amazon está gestionada por Amazon SageMaker AI y proporciona acceso directo a Internet. Usted especifica la otra Amazon VPC, que proporciona tráfico cifrado entre el dominio y el volumen de Amazon Elastic File System (Amazon EFS).

Puede cambiar este comportamiento para que la SageMaker IA envíe todo el tráfico a través de la Amazon VPC especificada. Si se `VPC only` eligió como modo de acceso a la red durante la creación del dominio de SageMaker IA, se deben tener en cuenta los siguientes requisitos para seguir permitiendo el uso de las libretas SageMaker Studio Classic dentro del dominio de IA creado SageMaker .

## Requisitos para usar el modo `VPC only`
<a name="studio-notebooks-and-internet-access-vpc-geospatial-requirements"></a>

**nota**  
Para utilizar los componentes de visualización de las capacidades SageMaker geoespaciales, el navegador que utilice para acceder a la interfaz de usuario de SageMaker Studio Classic debe estar conectado a Internet.

Si ha elegido `VpcOnly`, siga estos pasos:

1. Debe utilizar solo subredes privadas. No puede usar subredes públicas en el modo `VpcOnly`.

1. Asegúrese de que sus subredes tengan la cantidad necesaria de direcciones IP. La cantidad esperada de direcciones IP necesarias por usuario puede variar según el caso de uso. Se recomiendan entre 2 y 4 direcciones IP por usuario. La capacidad total de direcciones IP de un dominio de Studio Classic es la suma de las direcciones IP disponibles para cada subred que se proporcionan al crear el dominio. Asegúrese de que el uso estimado de direcciones IP no supere la capacidad admitida por la cantidad de subredes que proporcione. Además, el uso de subredes distribuidas en muchas zonas de disponibilidad puede mejorar la disponibilidad de las direcciones IP. Para obtener más información, consulte el tamaño de la [VPC y la subred](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#vpc-sizing-ipv4) para. IPv4
**nota**  
Solo puede configurar subredes con una VPC de tenencia predeterminada en la que su instancia se ejecute en hardware compartido. [Para obtener más información sobre el atributo de arrendamiento VPCs, consulte Instancias dedicadas.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)

1. Configure uno o más grupos de seguridad con reglas de entrada y salida que, en conjunto, permitan el siguiente tráfico:
   + [Tráfico NFS a través de TCP en el puerto 2049](https://docs.aws.amazon.com/efs/latest/ug/network-access.html) entre el dominio y el volumen de Amazon EFS.
   + [Tráfico TCP en el grupo de seguridad](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances). Esto es necesario para la conectividad entre la JupyterServer aplicación y las KernelGateway aplicaciones. Debe permitir el acceso al menos a los puertos del rango `8192-65535`.

1. Si desea permitir el acceso a Internet, debe usar una [puerta de enlace NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with) con acceso a Internet, por ejemplo, a través de una [puerta de enlace de Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html).

1. Si no quiere permitir el acceso a Internet, [cree puntos finales de VPC de interfaz](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) (AWS PrivateLink) para permitir que Studio Classic acceda a los siguientes servicios con los nombres de servicio correspondientes. También debe asociar los grupos de seguridad de la VPC a estos puntos de conexión.
**nota**  
Actualmente, las capacidades SageMaker geoespaciales solo se admiten en la región EE.UU. Oeste (Oregón).
   + SageMaker API: `com.amazonaws.us-west-2.sagemaker.api` 
   + SageMaker Tiempo de ejecución de IA:`com.amazonaws.us-west-2.sagemaker.runtime`. Esto es necesario para ejecutar los cuadernos Studio Classic con una imagen SageMaker geoespacial.
   + Amazon S3: `com.amazonaws.us-west-2.s3`.
   + Para usar SageMaker Projects:. `com.amazonaws.us-west-2.servicecatalog`
   + SageMaker capacidades geoespaciales: `com.amazonaws.us-west-2.sagemaker-geospatial`

    Si utiliza el [SDK de SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) para ejecutar tareas de formación remota, también debe crear los siguientes puntos de enlace de Amazon VPC.
   + AWS Security Token Service: `com.amazonaws.region.sts`
   + Amazon CloudWatch:. `com.amazonaws.region.logs` Esto es necesario para permitir que el SDK de SageMaker Python obtenga el estado del trabajo de formación remota desde Amazon CloudWatch.

**nota**  
Para un cliente que trabaja en modo VPC, los firewalls de la empresa pueden provocar problemas de conexión con SageMaker Studio Classic o entre y JupyterServer . KernelGateway Realice las siguientes comprobaciones si encuentra alguno de estos problemas al utilizar SageMaker Studio Classic desde un firewall.  
Compruebe que la URL de Studio Classic esté en la lista de permitidas de su red.
Compruebe que las conexiones de websocket no estén bloqueadas. Jupyter usa websocket internamente. Si la KernelGateway aplicación lo está InService, es JupyterServer posible que no pueda conectarse al KernelGateway. También debería ver este problema al abrir la terminal del sistema. 

# Utilice AWS KMS los permisos para las capacidades SageMaker geoespaciales de Amazon
<a name="geospatial-kms"></a>

Puede proteger sus datos en reposo mediante el cifrado para las capacidades SageMaker geoespaciales. De forma predeterminada, utiliza el cifrado del lado del servidor con una clave propiedad de Amazon SageMaker Geospatial. SageMaker Las capacidades geoespaciales también admiten una opción de cifrado del lado del servidor con una clave KMS administrada por el cliente.

## Cifrado del lado del servidor con clave gestionada SageMaker geoespacial de Amazon (predeterminada)
<a name="geospatial-managed-key"></a>

SageMaker Las capacidades geoespaciales cifran todos sus datos, incluidos los resultados computacionales de sus trabajos de observación de la Tierra (EOJ) y de enriquecimiento vectorial (VEJ), junto con todos los metadatos de sus servicios. No hay datos almacenados sin cifrar en las capacidades geoespaciales. SageMaker Utiliza una clave propia predeterminada AWS para cifrar todos sus datos.

## Cifrado de lado de servidor con una clave de KMS administrada por el cliente (opcional)
<a name="geospatial-customer-managed-key"></a>

SageMaker Las capacidades geoespaciales permiten el uso de una clave simétrica gestionada por el cliente que usted crea, posee y administra para añadir una segunda capa de cifrado sobre la codificación propia existente AWS . Como usted tiene el control total de este cifrado, puede realizar dichas tareas como:
+ Establecer y mantener políticas de claves
+ Establecer y mantener concesiones y políticas de IAM
+ Habilitar y deshabilitar políticas de claves
+ Rotar el material criptográfico
+ Adición de etiquetas de 
+ Crear alias de clave
+ Programar la eliminación de claves

Para obtener más información, consulte las [claves administradas por el cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) en la * Guía para desarrolladores de AWS Key Management Service *.

## Cómo utilizan las capacidades SageMaker geoespaciales las subvenciones en AWS KMS
<a name="geospatial-grants-cmk"></a>

 SageMaker las capacidades geoespaciales requieren una subvención para utilizar la clave gestionada por el cliente. Al crear un EOJ o un VEJ cifrados con una clave gestionada por el cliente, SageMaker Geospatial Capabilities crea una subvención en su nombre enviando una solicitud a. `CreateGrant` AWS KMS Las subvenciones AWS KMS se utilizan para permitir que las capacidades SageMaker geoespaciales accedan a una clave KMS en la cuenta de un cliente. Puede revocar el acceso a la concesión o eliminar el acceso del servicio a la clave administrada por el cliente en cualquier momento. Si lo hace, las capacidades SageMaker geoespaciales no podrán acceder a ninguno de los datos cifrados por la clave administrada por el cliente, lo que afectará a las operaciones que dependen de esos datos. 

## Creación de una clave administrada por el cliente
<a name="geospatial-create-cmk"></a>

Puede crear una clave simétrica gestionada por el cliente mediante la consola AWS de gestión o la. AWS KMS APIs

**Para crear una clave simétrica administrada por el cliente**

Siga los pasos para [crear claves KMS de cifrado simétrico](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) de la Guía para AWS Key Management Service desarrolladores.

**Política de claves**

Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de clave. Para obtener más información, consulte [Determinar el acceso a AWS KMS las claves](https://docs.aws.amazon.com/kms/latest/developerguide/determining-access.html) en la *Guía para AWS Key Management Service desarrolladores*.

Para utilizar la clave gestionada por el cliente con los recursos de sus capacidades SageMaker geoespaciales, la política de claves debe permitir las siguientes operaciones de API. La función principal de estas operaciones debe ser la función de ejecución que proporcione en la solicitud de capacidades SageMaker geoespaciales. SageMaker Las capacidades geoespaciales asumen la función de ejecución proporcionada en la solicitud para realizar estas operaciones de KMS.
+ `[kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)`
+ `kms:GenerateDataKey`
+ `kms:Decrypt`
+ `kms:GenerateDataKeyWithoutPlaintext`

Los siguientes son ejemplos de declaraciones de políticas que puede agregar para las capacidades SageMaker geoespaciales:

**CreateGrant**

```
"Statement" : [ 
    {
      "Sid" : "Allow access to Amazon SageMaker geospatial capabilities",
      "Effect" : "Allow",
      "Principal" : {
        "AWS" : "<Customer provided Execution Role ARN>"
      },
      "Action" : [ 
          "kms:CreateGrant",
           "kms:Decrypt",
           "kms:GenerateDataKey",
           "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource" : "*",
    },
 ]
```

Para obtener más información sobre cómo especificar permisos en una política, consulte [permisos de AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) en la *Guía para desarrolladores de AWS Key Management Service *. Para obtener más información sobre cómo solucionar problemas, consulte [Solución de problemas de acceso a las claves](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) en la *Guía para desarrolladores de AWS Key Management Service *. 

Si su política de claves no tiene la raíz de su cuenta como administrador de claves, debe agregar los mismos permisos de KMS en el ARN de su rol de ejecución. Este es un ejemplo de política que puede agregar al rol de ejecución:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "kms:CreateGrant",
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:GenerateDataKeyWithoutPlaintext"
            ],
            "Resource": [
              "arn:aws:kms:us-east-1:111122223333:key/key-id"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Supervisar las claves de cifrado para determinar las capacidades SageMaker geoespaciales
<a name="geospatial-monitor-cmk"></a>

Cuando utiliza una clave gestionada por el AWS KMS cliente con sus recursos de capacidades SageMaker geoespaciales, puede utilizar AWS CloudTrail Amazon CloudWatch Logs para realizar un seguimiento de las solicitudes que envía SageMaker geospatial. AWS KMS

Seleccione una pestaña de la siguiente tabla para ver ejemplos de AWS CloudTrail eventos para monitorear las operaciones de KMS a los que recurren las capacidades SageMaker geoespaciales para acceder a los datos cifrados por su clave administrada por el cliente.

------
#### [ CreateGrant ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SageMaker-Geospatial-StartEOJ-KMSAccess",
        "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole/SageMaker-Geospatial-StartEOJ-KMSAccess",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE3",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AKIAIOSFODNN7EXAMPLE3",
                "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole",
                "accountId": "111122223333",
                "userName": "SageMakerGeospatialCustomerRole"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-03-17T18:02:06Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "arn:aws:iam::111122223333:root"
    },
    "eventTime": "2023-03-17T18:02:06Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "172.12.34.56",
    "userAgent": "ExampleDesktop/1.0 (V1; OS)",
    "requestParameters": {
        "retiringPrincipal": "sagemaker-geospatial.us-west-2.amazonaws.com",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "operations": [
            "Decrypt"
        ],
        "granteePrincipal": "sagemaker-geospatial.us-west-2.amazonaws.com"
    },
    "responseElements": {
        "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ GenerateDataKey ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "sagemaker-geospatial.amazonaws.com"
    },
    "eventTime": "2023-03-24T00:29:45Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "sagemaker-geospatial.amazonaws.com",
    "userAgent": "sagemaker-geospatial.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "aws:s3:arn": "arn:aws:s3:::axis-earth-observation-job-378778860802/111122223333/napy9eintp64/output/consolidated/32PPR/2022-01-04T09:58:03Z/S2B_32PPR_20220104_0_L2A_msavi.tif"
        },
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "keySpec": "AES_256"
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ Decrypt ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "sagemaker-geospatial.amazonaws.com"
    },
    "eventTime": "2023-03-28T22:04:24Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "sagemaker-geospatial.amazonaws.com",
    "userAgent": "sagemaker-geospatial.amazonaws.com",
    "requestParameters": {
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT",
        "encryptionContext": {
            "aws:s3:arn": "arn:aws:s3:::axis-earth-observation-job-378778860802/111122223333/napy9eintp64/output/consolidated/32PPR/2022-01-04T09:58:03Z/S2B_32PPR_20220104_0_L2A_msavi.tif"
        },
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ GenerateDataKeyWithoutPlainText ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SageMaker-Geospatial-StartEOJ-KMSAccess",
        "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole/SageMaker-Geospatial-StartEOJ-KMSAccess",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE3",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AKIAIOSFODNN7EXAMPLE3",
                "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole",
                "accountId": "111122223333",
                "userName": "SageMakerGeospatialCustomerRole"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-03-17T18:02:06Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "arn:aws:iam::111122223333:root"
    },
    "eventTime": "2023-03-28T22:09:16Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKeyWithoutPlaintext",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "172.12.34.56",
    "userAgent": "ExampleDesktop/1.0 (V1; OS)",
    "requestParameters": {
        "keySpec": "AES_256",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------

# Tipos de instancias de computación
<a name="geospatial-instances"></a>

SageMaker Las capacidades geoespaciales ofrecen tres tipos de instancias informáticas.
+ SageMaker Instancias de **bloc de notas geoespaciales de Studio Classic: SageMaker geospatial admite instancias** de bloc de notas basadas en CPU y basadas en GPU en Studio Classic. Las instancias de cuaderno se utilizan para crear, entrenar e implementar modelos de machine learning. Para obtener una lista de los tipos de instancias de cuaderno disponibles que funcionan con la imagen geoespacial, consulte [Tipos de instancias de cuaderno compatibles](#supported-geospatial-instances). 
+ **SageMaker instancias de trabajos geoespaciales: ejecute trabajos** de procesamiento para transformar los datos de imágenes de satélite.
+ **SageMaker tipos de inferencia de modelos geoespaciales**: realice predicciones utilizando modelos de aprendizaje automático previamente entrenados en imágenes de satélite.

El tipo de instancia viene determinado por las operaciones que ejecute.

En la siguiente tabla se muestran las operaciones SageMaker geoespaciales específicas y los tipos de  instancias disponibles que puede utilizar.


|  Operaciones  |  Instancia  | 
| --- | --- | 
| Estadísticas temporales | ml.geospatial.jobs | 
| Estadísticas zonales | ml.geospatial.jobs | 
| Remuestreo | ml.geospatial.jobs | 
| Geomosaico | ml.geospatial.jobs | 
| Apilamiento de bandas | ml.geospatial.jobs | 
| Matemáticas de banda | ml.geospatial.jobs | 
| Eliminación de nubes con Landsat8 | ml.geospatial.jobs | 
| Eliminación de nubes con Sentinel-2 | ml.geospatial.models | 
| Enmascaramiento de nubes | ml.geospatial.models | 
| Segmentación de la cubierta terrestre | ml.geospatial.models | 

## SageMaker tipos de instancias de bloc de notas compatibles con la tecnología geoespacial
<a name="notebook-instances"></a>

SageMaker geospatial admite instancias de bloc de notas basadas en CPU y GPU en Studio Classic. Si recibes un ResourceLimitExceedederror al iniciar una instancia de notebook con GPU, debes solicitar un aumento de cuota. Para aprender a solicitar un aumento de cuota, consulte [Solicitud de aumento de cuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) en la *Guía del usuario de Service Quotas*.

Tipos de instancias de cuaderno de Studio Classic compatibles


|  Name  |  Tipo de instancia  | 
| --- | --- | 
| ml.geospatial.interactive | CPU | 
| ml.g5.xlarge | GPU | 
| ml.g5.2xlarge | GPU | 
| ml.g5.4xlarge | GPU | 
| ml.g5.8xlarge | GPU | 
| ml.g5.16xlarge | GPU | 
| ml.g5.12xlarge | GPU | 
| ml.g5.24xlarge | GPU | 
| ml.g5.48xlarge | GPU | 

Se le cobrarán tarifas diferentes por cada tipo de instancia de computación que utilice. Para obtener más información sobre los precios, consulte [Geospatial ML with Amazon SageMaker AI](https://aws.amazon.com/sagemaker/geospatial).

## SageMaker bibliotecas geoespaciales
<a name="geospatial-notebook-libraries"></a>

El **tipo de instancia SageMaker ** geoespacial específico **ml.geospatial.interactive** contiene las siguientes bibliotecas de Python.

Bibliotecas geoespaciales disponibles en el tipo de instancia geoespacial


|  Nombre de la biblioteca  |  Versión disponible  | 
| --- | --- | 
| numpy | 1.23.4 | 
| scipy | 1.11.2 | 
| pandas | 1.4.4 | 
| gdal | 3.2.2 | 
| fiona | 1.8.22 | 
| geopandas | 0.11.1 | 
| shapley | 1.8.4 | 
| seaborn | 0.11.2 | 
| notebook | 1.8.22 | 
| scikit-image | 0.11.2 | 
| rasterio | 6.4.12 | 
| scikit-learn | 0,19,2 | 
| ipyleaflet | 1.0.1 | 
| rtree | 0,17.2 | 
| opencv | 4,60.66 | 
| supy | 2022.4.7 | 
| SNAP toolbox | 9.0 | 
| cdsapi | 0.6.1 | 
| arosics | 1.8.1 | 
| rasterstats | 0,18.0 | 
| rioxarray | 0.14.1 | 
| pyroSAR | 0,20.0 | 
| eo-learn | 1.4.1 | 
| deepforest | 1.2.7 | 
| scrapy | 2.8.0 | 
| neto CDF4 | 1.6.3 | 
| xarray[complete] | 0.20.1 | 
| Orfeotoolbox | OTB-8.1.1 | 
| pytorch | 2.0.1 | 
| pytorch-cuda | 11.8 | 
| torchvision | 0.15.2 | 
| torchaudio | 2.0.2 | 
| pytorch-lightning | 2.0.6 | 
| tensorflow | 2.13.0 | 

# Recopilaciones de datos
<a name="geospatial-data-collections"></a>

Amazon SageMaker geospatial admite las siguientes recopilaciones de datos ráster. De las siguientes recopilaciones de datos, puede utilizar las recopilaciones de datos USGS Landsat y Sentinel-2 Cloud-Optimized GeoTIFF al iniciar un trabajo de observación de la Tierra (EOJ). Para obtener más información sobre el EOJs, consulte. [Trabajos de observación de la Tierra](geospatial-eoj.md)
+ [Copernicus Digital Elevation Model (DEM): GLO-30](https://registry.opendata.aws/copernicus-dem/)
+ [Copernicus Digital Elevation Model (DEM): GLO-90](https://registry.opendata.aws/copernicus-dem/)
+ [https://registry.opendata.aws/sentinel-2-l2a-cogs/](https://registry.opendata.aws/sentinel-2-l2a-cogs/)
+ [https://registry.opendata.aws/sentinel-1/](https://registry.opendata.aws/sentinel-1/)
+ [National Agriculture Imagery Program (NAIP)en AWS](https://registry.opendata.aws/naip/)
+ [https://registry.opendata.aws/usgs-landsat/](https://registry.opendata.aws/usgs-landsat/)

Para encontrar la lista de recopilaciones de datos ráster disponibles en su cuenta Regiones de AWS, utilice`ListRasterDataCollections`. En la [respuesta `ListRasterDataCollections`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListRasterDataCollections.html#API_geospatial_ListRasterDataCollections_ResponseSyntax), obtendrá un objeto [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListRasterDataCollections.html#API_geospatial_ListRasterDataCollections_ResponseSyntax](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListRasterDataCollections.html#API_geospatial_ListRasterDataCollections_ResponseSyntax) que contiene detalles sobre las recopilaciones de datos ráster disponibles.

**Example Ejemplo: llamar a la `ListRasterDataCollections` API mediante el AWS SDK para Python (Boto3)**  <a name="list-raster-data-collections"></a>
Cuando utilice el SDK para Python (Boto3) y SageMaker geoespacial, debe crear un cliente geoespacial,. `geospatial_client` Utilice el siguiente fragmento Python para realizar una llamada a la API `list_raster_data_collections`:  

```
import boto3
import sagemaker
import sagemaker_geospatial_map
import json 

## SageMaker Geospatial Capabilities is currently only avaialable in US-WEST-2  
session = boto3.Session(region_name='us-west-2')
execution_role = sagemaker.get_execution_role()

## Creates a SageMaker Geospatial client instance 
geospatial_client = session.client(service_name="sagemaker-geospatial")

# Creates a resusable Paginator for the list_raster_data_collections API operation 
paginator = geospatial_client.get_paginator("list_raster_data_collections")

# Create a PageIterator from the Paginator
page_iterator = paginator.paginate()

# Use the iterator to iterate throught the results of list_raster_data_collections
results = []
for page in page_iterator:
	results.append(page['RasterDataCollectionSummaries'])

print (results)
```
En la respuesta JSON, recibirá lo siguiente, que se ha truncado para mayor claridad:  

```
{
    "Arn": "arn:aws:sagemaker-geospatial:us-west-2:555555555555:raster-data-collection/public/dxxbpqwvu9041ny8",
    "Description": "Copernicus DEM is a Digital Surface Model which represents the surface of the Earth including buildings, infrastructure, and vegetation. GLO-30 is instance of Copernicus DEM that provides limited worldwide coverage at 30 meters.",
    "DescriptionPageUrl": "https://registry.opendata.aws/copernicus-dem/",
    "Name": "Copernicus DEM GLO-30",
    "Tags": {},
    "Type": "PUBLIC"
}
```

## Información sobre la banda de imágenes de las recopilaciones de datos de USGS Landsat y Sentinel-2
<a name="image-band-information"></a>

La información sobre las bandas de imágenes de las recopilaciones de datos USGS Landsat 8 y Sentinel-2 se proporciona en la siguiente tabla.

USGS Landsat


| Nombre de la banda | Rango de longitud de onda (nm) | Unidades | Rango válido | Valor de rellenado | Resolución espacial | 
| --- | --- | --- | --- | --- | --- | 
| coastal | 435 - 451 | Sin unidades | 1 - 65455 | 0 (sin datos) | 30 m | 
| azul | 452 - 512 | Sin unidades | 1 - 65455 | 0 (sin datos) | 30 m | 
| green | 533 - 590 | Sin unidades | 1 - 65455 | 0 (sin datos) | 30 m | 
| red | 636 - 673 | Sin unidades | 1 - 65455 | 0 (sin datos) | 30 m | 
| nir | 851 - 879 | Sin unidades | 1 - 65455 | 0 (sin datos) | 30 m | 
| swir16 | 1566 - 1651 | Sin unidades | 1 - 65455 | 0 (sin datos) | 30 m | 
| swir22 | 2107 - 2294 | Sin unidades | 1 - 65455 | 0 (sin datos) | 30 m | 
| qa\$1aerosol | N/D | Índice de bits | 0 - 255 | 1 | 30 m | 
| qa\$1pixel | N/D | Índice de bits | 1 - 65455 | 1 (bit 0) | 30 m | 
| qa\$1radsat | N/D | Índice de bits | 1 - 65455 | N/D | 30 m | 
| t | 10600 - 11190 | Kelvin escalado | 1 - 65455 | 0 (sin datos) | 30 m (escalado a partir de 100 m) | 
| atran | N/D | Sin unidades | 0 - 10000 | -9999 (sin datos) | 30 m | 
| cdist | N/D | Kilómetros | 0 - 24000 | -9999 (sin datos) | 30 m | 
| drad | N/D | W/(m^2 sr µm)/DN | 0 - 28000 | -9999 (sin datos) | 30 m | 
| urad | N/D | W/(m^2 sr µm)/DN | 0 - 28000 | -9999 (sin datos) | 30 m | 
| trad | N/D | W/(m^2 sr µm)/DN | 0 - 28000 | -9999 (sin datos) | 30 m | 
| emis | N/D | Coeficiente de emisividad | 1 - 10000 | -9999 (sin datos) | 30 m | 
| emsd | N/D | Coeficiente de emisividad | 1 - 10000 | -9999 (sin datos) | 30 m | 

Sentinel-2


| Nombre de la banda | Rango de longitud de onda (nm) | Escalado | Rango válido | Valor de rellenado | Resolución espacial | 
| --- | --- | --- | --- | --- | --- | 
| coastal | 443 | 0,0001 | N/D | 0 (sin datos) | 60 m | 
| azul | 490 | 0,0001 | N/D | 0 (sin datos) | 10 m | 
| green | 560 | 0,0001 | N/D | 0 (sin datos) | 10 m | 
| red | 665 | 0,0001 | N/D | 0 (sin datos) | 10 m | 
| rededge1 | 705 | 0,0001 | N/D | 0 (sin datos) | 20 m | 
| rededge2 | 740 | 0,0001 | N/D | 0 (sin datos) | 20 m | 
| rededge3 | 783 | 0,0001 | N/D | 0 (sin datos) | 20 m | 
| nir | 842 | 0,0001 | N/D | 0 (sin datos) | 10 m | 
| nir08 | 865 | 0,0001 | N/D | 0 (sin datos) | 20 m | 
| nir08 | 865 | 0,0001 | N/D | 0 (sin datos) | 20 m | 
| nir09 | 940 | 0,0001 | N/D | 0 (sin datos) | 60 m | 
| swir16 | 1610 | 0,0001 | N/D | 0 (sin datos) | 20 m | 
| swir22 | 2190 | 0,0001 | N/D | 0 (sin datos) | 20 m | 
| aot | Espesor óptico del aerosol | 0.001 | N/D | 0 (sin datos) | 10 m | 
| wvp | Vapor de agua promedio de la escena | 0.001 | N/D | 0 (sin datos) | 10 m | 
| scl | Datos de clasificación de escenas | N/D | 1 - 11 | 0 (sin datos) | 20 m | 

# RStudio en Amazon SageMaker AI
<a name="rstudio"></a>

RStudio es un entorno de desarrollo integrado para R, con una consola, un editor de resaltado de sintaxis que admite la ejecución directa de código y herramientas para el trazado, el historial, la depuración y la gestión del espacio de trabajo. Amazon SageMaker AI es compatible con RStudio un entorno de desarrollo integrado (IDE) totalmente gestionado e integrado con el dominio Amazon SageMaker AI a través de Posit Workbench. RStudio permite a los clientes crear conocimientos de ciencia de datos mediante un entorno R. Con RStudio la integración, puede lanzar un RStudio entorno en el dominio para ejecutar sus RStudio flujos de trabajo con recursos de SageMaker IA. Para obtener más información acerca de Posit Workbench, consulte el [sitio web de Posit](https://posit.co/products/enterprise/workbench/). Esta página proporciona información sobre RStudio conceptos importantes.

SageMaker La IA se integra RStudio mediante la creación de una RStudio ServerPro aplicación.

 Una SageMaker IA admite lo RStudio siguiente. 
+ Los desarrolladores de R utilizan la interfaz RStudio IDE con herramientas de desarrollo populares del ecosistema R. Los usuarios pueden iniciar nuevas RStudio sesiones, escribir código R, instalar dependencias desde RStudio Package Manager y publicar aplicaciones Shiny mediante RStudio Connect. 
+ Los desarrolladores de R pueden escalar rápidamente los recursos informáticos subyacentes para ejecutar procesamiento de datos y análisis estadístico a gran escala.  
+ Los administradores de la plataforma pueden configurar las identidades de los usuarios, la autorización, las redes, el almacenamiento y la seguridad de sus equipos de ciencia de datos mediante AWS IAM Identity Center la AWS Identity and Access Management integración. Esto incluye la conexión a los recursos privados de Amazon Virtual Private Cloud (Amazon VPC) y el modo sin Internet con. AWS PrivateLink
+ Integración con. AWS License Manager

 Para obtener información sobre los pasos de incorporación para crear un dominio con la RStudio opción habilitada, consulte[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Disponibilidad por región
<a name="rstudio-region"></a>

En la siguiente tabla se proporciona información sobre las Regiones de AWS RStudio aplicaciones compatibles con la SageMaker IA.


|  Nombre de la región  |  Región  | 
| --- | --- | 
|  Este de EE. UU. (Ohio)  |  us-east-2  | 
|  Este de EE. UU. (Norte de Virginia)  |  us-east-1  | 
|  Oeste de EE. UU. (Norte de California)  |  us-west-1  | 
|  Oeste de EE. UU. (Oregón)  |  us-west-2  | 
|  Asia-Pacífico (Bombay)  |  ap-south-1  | 
|  Asia-Pacífico (Seúl)  |  ap-northeast-2  | 
|  Asia-Pacífico (Singapur)  |  ap-southeast-1  | 
|  Asia-Pacífico (Sídney)  |  ap-southeast-2  | 
|  Asia-Pacífico (Tokio)  |  ap-northeast-1  | 
|  Canadá (centro)  |  ca-central-1  | 
|  Europa (Fráncfort)  |  eu-central-1  | 
|  Europa (Irlanda)  |  eu-west-1  | 
|  Europa (Londres)  |  eu-west-2  | 
|  Europa (París)  |  eu-west-3  | 
|  Europa (Estocolmo)  |  eu-north-1  | 
|  América del Sur (São Paulo)  |  sa-east-1  | 

## RStudio componentes
<a name="rstudio-components"></a>
+ *RStudioServerPro*: La RStudio ServerPro aplicación es una aplicación multiusuario que es un recurso compartido entre todos los perfiles de usuario del dominio. Una vez que se crea una RStudio aplicación en un dominio, el administrador puede conceder permisos a los usuarios del dominio.  
+ *RStudio usuario*: RStudio los usuarios son usuarios del dominio que están autorizados a usar la RStudio licencia.
+ *RStudio admin*: Un administrador RStudio de Amazon SageMaker AI puede acceder al panel RStudio administrativo. RStudio en Amazon SageMaker AI, los administradores se diferencian de los administradores «estándar» de Posit Workbench porque no tienen acceso root a la instancia en la que se ejecuta la RStudio ServerPro aplicación y no pueden modificar el archivo de configuración. RStudio 
+ *RStudio Servidor*: la instancia del RStudio servidor es responsable de proporcionar la RStudio interfaz de usuario a todos los usuarios autorizados. Esta instancia se lanza en una instancia de Amazon SageMaker AI.
+ *RSession*: An RSession es una interfaz basada en navegador para el RStudio IDE que se ejecuta en una instancia de Amazon SageMaker AI. Los usuarios pueden crear sus RStudio proyectos e interactuar con ellos a través del. RSession
+ *RSessionGateway*: La aplicación RSession Gateway se utiliza para respaldar un RSession. 
+ *RStudio panel administrativo*: este panel proporciona información sobre los RStudio usuarios del dominio Amazon SageMaker AI y sus sesiones. Solo los usuarios que tengan autorización de RStudio administrador pueden acceder a este panel.

## Diferencias con Posit Workbench
<a name="rstudio-differences"></a>

RStudio en Amazon SageMaker AI tiene algunas diferencias significativas con respecto a [Posit Workbench.](https://posit.co/products/enterprise/workbench/)
+ Cuando se usa con RStudio SageMaker IA, los usuarios no tienen acceso a los archivos de RStudio configuración. Amazon SageMaker AI administra el archivo de configuración y establece los valores predeterminados. Puede modificar el RStudio Connect and RStudio Package Manager URLs al crear su dominio Amazon SageMaker AI RStudio habilitado.
+ El uso compartido de proyectos, la colaboración en tiempo real y Job Launcher no son compatibles actualmente cuando se utilizan en RStudio Amazon SageMaker AI.
+ Cuando se usa RStudio en SageMaker IA, el RStudio IDE se ejecuta en instancias de Amazon SageMaker AI para recursos de cómputo en contenedores bajo demanda. 
+ RStudio on SageMaker AI solo es compatible con el RStudio IDE y no IDEs con otros compatibles con una instalación de Posit Workbench.
+ RStudio on SageMaker AI solo es compatible con la RStudio versión especificada en. [RStudio Control de versiones](rstudio-version.md)

# RStudio sobre la gestión de Amazon SageMaker AI
<a name="rstudio-manage"></a>

 En los siguientes temas se proporciona información RStudio sobre la administración en Amazon SageMaker AI. Esto incluye información sobre la configuración del RStudio entorno, las sesiones de usuario y los recursos necesarios. Para obtener información sobre cómo usarlo RStudio en la SageMaker IA, consulte[RStudio en la guía del usuario de Amazon SageMaker AI](rstudio-use.md). 

 Para obtener información sobre cómo crear un dominio de Amazon SageMaker AI con RStudio activado, consulte[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).  

 Para obtener información sobre las AWS regiones RStudio en las que se admite la SageMaker IA, consulte[Regiones y cuotas admitidas](regions-quotas.md).  

**Topics**
+ [Obtenga una RStudio licencia](rstudio-license.md)
+ [RStudio Control de versiones](rstudio-version.md)
+ [Red y almacenamiento](rstudio-network.md)
+ [RStudioServerPro tipo de instancia](rstudio-select-instance.md)
+ [Añadir una URL de RStudio Connect](rstudio-configure-connect.md)
+ [Actualizar la URL RStudio del Package Manager](rstudio-configure-pm.md)
+ [Cree un dominio Amazon SageMaker AI RStudio con el AWS CLI](rstudio-create-cli.md)
+ [Agrega RStudio soporte a un dominio existente](rstudio-add-existing.md)
+ [Imágenes personalizadas RStudio sin SageMaker IA](rstudio-byoi.md)
+ [Crea un usuario para usarlo RStudio](rstudio-create-user.md)
+ [Inicie sesión RStudio como otro usuario](rstudio-login-another.md)
+ [Finalice las sesiones de otro usuario](rstudio-terminate-another.md)
+ [Utilice el panel RStudio administrativo](rstudio-admin.md)
+ [Apagar RStudio](rstudio-shutdown.md)
+ [Facturación y costo](rstudio-billing.md)
+ [Diagnosticar problemas y obtener asistencia](rstudio-troubleshooting.md)

# Obtenga una RStudio licencia
<a name="rstudio-license"></a>

RStudio en Amazon SageMaker AI es un producto de pago y requiere que cada usuario tenga la licencia adecuada. Las licencias para RStudio Amazon SageMaker AI se pueden obtener directamente de RStudio PBC o mediante la compra de una suscripción a Posit Workbench on Marketplace. AWS Las licencias se emiten sin costo adicional para los clientes actuales de Posit Workbench Enterprise. Para usar una RStudio licencia con Amazon SageMaker AI, primero debe tener registrada una RStudio licencia válida AWS License Manager. En el caso de las licencias adquiridas directamente a través de Rstudio PBC, debe crear una concesión de licencias para su AWS cuenta. Póngase en contacto con nosotros RStudio para comprar licencias directamente o para activar las licencias existentes. AWS License Manager Para obtener más información sobre cómo registrar una licencia con AWS License Manager, consulte [Licencias emitidas por el vendedor en AWS License Manager](https://docs.aws.amazon.com/license-manager/latest/userguide/seller-issued-licenses.html). 

Los siguientes temas muestran cómo adquirir y validar una licencia otorgada por RStudio PBC.

 **Obtenga una licencia RStudio ** 

1. Si no tiene una RStudio licencia, puede comprar una en AWS Marketplace o directamente en RStudio PBC.
   + Para comprar una suscripción en AWS Marketplace, complete los pasos para [suscribirse con un contrato de SaaS](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-saas-products.html) buscando **Posit** Team. Para cumplir con la licencia, se le redirigirá a un formulario externo externo al AWS Marketplace. Debe proporcionar información adicional, incluidos el nombre de la empresa y la dirección de correo electrónico. Si no puede acceder a ese formulario para proporcionar el nombre de la empresa y un correo electrónico de contacto, cree un ticket con Posit Support en [https://support.posit. co/hc/en-us/requests/new](https://support.posit.co/hc/en-us/requests/new)con los detalles de su compra.
   + Para comprar directamente en RStudio PBC, dirígete a [RStudio Precios](https://www.rstudio.com/pricing/) o [ponte en contacto con sales@rstudio.com.](mailto:sales@rstudio.com) Al comprar o actualizar una RStudio licencia, debes proporcionar la AWS cuenta que alojará tu dominio de Amazon SageMaker AI. 

   Si ya tiene una RStudio licencia, póngase RStudio en contacto con su representante de RStudio ventas o [envíe un correo electrónico a sales@rstudio.com](mailto:sales@rstudio.com) para añadir Amazon SageMaker AI a su licencia Posit Workbench Enterprise o para convertir su licencia Posit Workbench Standard. El representante RStudio de ventas le enviará el formulario de pedido electrónico correspondiente.

1. RStudio otorga una licencia de Posit Workbench a su AWS cuenta AWS License Manager en la región EE.UU. Este (Norte de Virginia). Aunque la RStudio licencia se concede en la región EE.UU. Este (Virginia del Norte), la licencia se puede utilizar en cualquier AWS región compatible con Amazon SageMaker AI. RStudio Puede esperar que el proceso de concesión de la licencia se complete en un plazo de tres días laborables después de compartir con usted el ID de su AWS cuenta RStudio.

1. Cuando se conceda esta licencia, recibirá un correo electrónico de su representante de RStudio ventas con instrucciones para aceptar la concesión de la licencia.

 **Valide su RStudio licencia para utilizarla con Amazon SageMaker AI** 

1. Inicia sesión en la AWS License Manager consola en la misma región que tu dominio de Amazon SageMaker AI. Si es la primera vez que lo utiliza AWS License Manager , AWS License Manager le solicitará que conceda permiso de uso AWS License Manager. 

1.  Seleccione **Comenzar a usar el administrador AWS de licencias**. 

1.  Seleccione `I grant AWS License Manager the required permissions` y, a continuación, **Conceder permisos**. 

1. Navegue hasta **Licencias concedidas** en el panel izquierdo. 

1. Seleccione la licencia concedida con `RSW-SageMaker` como `Product name` y seleccione **Ver**.

1. En la página de detalles de la licencia, seleccione **Aceptar y activar la licencia**. 

 **RStudio panel administrativo** 

Puede utilizar el panel de RStudio administración para ver el número de usuarios de la licencia siguiendo los pasos que se indican[Utilice el panel RStudio administrativo](rstudio-admin.md).

# RStudio Control de versiones
<a name="rstudio-version"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

En esta guía se proporciona información sobre la actualización de la `2025.05.1+513.pro3` versión para RStudio SageMaker IA. A partir del 31 de octubre de 2025, se crearán nuevos dominios RStudio compatibles con Posit Workbench la versión`2025.05.1+513.pro3`. Esto es válido para las aplicaciones `RStudioServerPro` y las aplicaciones `RSessionGateway` predeterminadas.

En las siguientes secciones se proporciona información sobre la `2025.05.1+513.pro3` versión.

## Actualización a la versión más reciente
<a name="rstudio-version-latest"></a>

La última RStudio versión es`2025.05.1+513.pro3`. 
+ Versiones de R compatibles:
  + 4.5.1
  + 4.4.3
  + 4.4.0
  + 4.3.3
  + 4.2.3
  + 4.2.1
  + 4.1.3
  + 4.0.2

Para obtener más información sobre los cambios en esta versión, consulte [https://docs.posit.co/ide/news/](https://docs.posit.co/ide/news/). 

**nota**  
Para garantizar la compatibilidad, le recomendamos que utilice un prefijo que coincida RSessions con la versión actualPosit Workbench.  
Si ves la siguiente advertencia, significa que hay una discordancia entre la versión utilizada en `RSession` AI y la Posit Workbench versión utilizada RStudio en SageMaker AI. Para resolver este problema, actualiza la RStudio versión del dominio. Para obtener información sobre la actualización de la RStudio versión, consulte[Actualizar a la nueva versión](rstudio-version-upgrade.md).  

```
Session version 2024.04.2+764.pro1 does not match server version 2025.05.1+513.pro3 - this is an unsupported configuration, and you may experience unexpected issues as a result.
```

## Control de versiones
<a name="rstudio-version-new"></a>

Actualmente hay dos versiones Posit Workbench compatibles con SageMaker AI. 
+ Última versión: `2025.05.1+513.pro3`

  Fecha de caducidad: 5 de diciembre de 2026
+ Versión anterior: `2024.04.2+764.pro1`

  Fecha de caducidad: 30 de abril de 2026

**nota**  
Si bien puede seguir creando nuevos dominios con la versión anterior `2024.04.2+764.pro1` hasta el 30 de abril de 2026 fijando explícitamente la versión al crear el dominio mediante CLI, recomendamos encarecidamente a los clientes que comiencen a usar la `2025.05` versión en todos los dominios. POSIT ha dejado de proporcionar correcciones de vulnerabilidades para. `2024.04.2+764.pro1`  
Las versiones A `2023.03.2-547.pro5` y `2022.02.2-485.pro2` están en desuso y ya no se admiten. Le recomendamos que actualice a la versión más reciente.

La Posit Workbench versión predeterminada que selecciona SageMaker AI depende de la fecha de creación del dominio. 
+ Para los dominios creados después del 31 de octubre de 2025, la versión `2025.05.1+513.pro3` es la versión seleccionada por defecto. 
+ Para los dominios creados después del 4 de septiembre de 2024 y antes del 31 de octubre de 2025, la versión `2024.04.2+764.pro1` es la versión seleccionada por defecto. Puede actualizar sus dominios a la versión más reiente (`2025.05.1+513.pro3`) estableciéndola como la versión predeterminada del dominio. Para obtener más información, consulte [Actualizar a la nueva versión](rstudio-version-upgrade.md).

**nota**  
La versión predeterminada de la aplicación `RSessionGateway` coincide con la versión actual de la aplicación `RStudioServerPro`.

En la siguiente tabla se muestra la imagen de ambas versiones ARNs para cada una de ellas Región de AWS. ARNs Se pasan como parte de un `update-domain` comando para establecer la versión deseada.


|  Region | ARN de imagen `2024.04.2+764.pro1`  | ARN de imagen `2025.05.1+513.pro3`  | 
| --- | --- | --- | 
| us-east-1 |  arn:aws:sagemaker:us-east-1:081325390199:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:us-east-1:081325390199:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| us-east-2 |  arn:aws:sagemaker:us-east-2:429704687514:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:us-east-2:429704687514:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| us-west-1 |  arn:aws:sagemaker:us-west-1:742091327244:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:us-west-1:742091327244:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| us-west-2 |  arn:aws:sagemaker:us-west-2:236514542706:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:us-west-2:236514542706:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| af-south-1 |  arn:aws:sagemaker:af-south-1:559312083959:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:af-south-1:559312083959:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-east-1 |  arn:aws:sagemaker:ap-east-1:493642496378:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-east-1:493642496378:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-south-1 |  arn:aws:sagemaker:ap-south-1:394103062818:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-south-1:394103062818:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-northeast-2 |  arn:aws:sagemaker:ap-northeast-2:806072073708:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-northeast-2:806072073708:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-southeast-1 |  arn:aws:sagemaker:ap-southeast-1:492261229750:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-southeast-1:492261229750:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-southeast-2 |  arn:aws:sagemaker:ap-southeast-2:452832661640:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-southeast-2:452832661640:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-northeast-1 |  arn:aws:sagemaker:ap-northeast-1:102112518831:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-northeast-1:102112518831:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ca-central-1 |  arn:aws:sagemaker:ca-central-1:310906938811:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ca-central-1:310906938811:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-central-1 |  arn:aws:sagemaker:eu-central-1:936697816551:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-central-1:936697816551:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-west-1 |  arn:aws:sagemaker:eu-west-1:470317259841:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-west-1:470317259841:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-west-2 |  arn:aws:sagemaker:eu-west-2:712779665605:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-west-2:712779665605:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-west-3 |  arn:aws:sagemaker:eu-west-3:615547856133:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-west-3:615547856133:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-north-1 |  arn:aws:sagemaker:eu-north-1:243637512696:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-north-1:243637512696:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-south-1 |  arn:aws:sagemaker:eu-south-1:592751261982:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-south-1:592751261982:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| sa-east-1 |  arn:aws:sagemaker:sa-east-1:782484402741:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:sa-east-1:782484402741:image/rstudio-workbench-2025.05-sagemaker-1.0  | 

### Cambios en las imágenes BYOI
<a name="rstudio-version-byoi"></a>

Si utilizas una imagen de BYOI RStudio y la actualizas a `RStudioServerPro` ella`2025.05.1+513.pro3`, debes actualizar tus imágenes personalizadas para poder usar la `2025.05.1+513.pro3` versión y volver a implementar las existentes. RSessions Si intentas cargar una imagen no compatible en un dominio que utilice RSession la `2025.05.1+513.pro3` versión, se producirá un RSession error porque no podrá analizar los parámetros que recibe. Para evitar errores, actualice todas las imágenes personalizadas implementadas en su aplicación `RStudioServerPro` existente. 

El `RSW_VERSION` en Dockerfile debe ser coherente con la Posit Workbench versión utilizada RStudio en la SageMaker IA. Puede validar la versión actual en Posit Workbench. Para ello, utilice el nombre de la versión que se encuentra en la esquina inferior izquierda de la página de inicio de Posit Workbench.

```
ARG RSW_VERSION=2025.05.1+513.pro3
ENV RSTUDIO_FORCE_NON_ZERO_EXIT_CODE="1"
ARG RSW_NAME=rstudio-workbench
ARG OS_CODE_NAME=jammy
ARG RSW_DOWNLOAD_URL=https://s3.amazonaws.com/rstudio-ide-build/server/${OS_CODE_NAME}/amd64
RUN RSW_VERSION_URL=`echo -n "${RSW_VERSION}" | sed 's/+/-/g'` \
    && curl -o rstudio-workbench.deb ${RSW_DOWNLOAD_URL}/${RSW_NAME}-${RSW_VERSION_URL}-amd64.deb \
    && gdebi -n ./rstudio-workbench.deb
```

# Actualizar a la nueva versión
<a name="rstudio-version-upgrade"></a>

Los dominios existentes que utilizan la versión `2024.04.2+764.pro1` pueden actualizarse a la versión `2025.05.1+513.pro3` de dos maneras:
+ Cree un nuevo dominio a partir de la RStudio opción AWS CLI habilitada.
+ Actualice un dominio existente para utilizar la versión `2025.05.1+513.pro3`.

El siguiente procedimiento muestra cómo eliminar la RStudio aplicación de un dominio existente, establecer la versión predeterminada en y`2025.05.1+513.pro3`, a continuación, crear una RStudio aplicación.

1. Elimine la aplicación `RStudioServerPro` y todas las aplicaciones `RSessionGateway` asociadas a su dominio actual. Para obtener información sobre cómo buscar su ID de dominio, consulte [Visualización de dominios](domain-view.md). Para obtener más información sobre cómo eliminar aplicaciones, consulte [Apagar RStudio](rstudio-shutdown.md).

   ```
   aws sagemaker delete-app \
       --region region \
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

1. Si su dominio usa la RStudio versión`2024.04.2+764.pro1`, actualice el dominio para `2025.05.1+513.pro3` establecerlo como la Posit Workbench versión predeterminada. El `SageMakerImageArn` valor del siguiente `update-domain` comando especifica la RStudio `2025.05.1+513.pro3` versión como predeterminada. Este ARN debe coincidir con la Region en la que se encuentra su dominio. Para obtener una lista de todas las disponibles ARNs, consulte[Control de versiones](rstudio-version.md#rstudio-version-new).

   Pase un ARN de rol de ejecución para el dominio que proporcione permisos para actualizar el dominio. 

   ```
   aws sagemaker update-domain \
       --region region \
       --domain-id domainId \
       --domain-settings-for-update "{\"RStudioServerProDomainSettingsForUpdate\":{\"DefaultResourceSpec\": {\"SageMakerImageArn\": \"arn-for-2025.05.1+513.pro3-version\", \"InstanceType\": \"system\"}, \"DomainExecutionRoleArn\": \"execution-role-arn\"}}"
   ```

1. Cree una nueva aplicación `RStudioServerPro` en el dominio existente.

   ```
   aws sagemaker create-app \
       --region region
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

La aplicación `RStudioServerPro` se actualiza ahora a la versión `2025.05.1+513.pro3`. Ahora puede volver a iniciar sus aplicaciones `RSessionGateway`.

# Bajar a una versión anterior
<a name="rstudio-version-downgrade"></a>

Puede degradar manualmente la versión de su RStudio aplicación existente a la `2024.04.2+764.pro1` versión. 

**Para cambiar a una versión anterior**

1. Elimine la aplicación `RStudioServerPro` asociada a su dominio existente. Para obtener información sobre cómo buscar su ID de dominio, consulte [Visualización de dominios](domain-view.md).

   ```
   aws sagemaker delete-app \
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

1. Pase el ARN `2024.04.2+764.pro1` correspondiente a su Region como parte del comando `update-domain`. Para obtener una lista de todas las disponibles ARNs, consulte[Control de versiones](rstudio-version.md#rstudio-version-new). También debe pasar un ARN de rol de ejecución para el dominio que proporcione permisos para actualizar el dominio. 

   ```
   aws sagemaker update-domain \
       --region region \
       --domain-id domainId \
       --domain-settings-for-update "{\"RStudioServerProDomainSettingsForUpdate\":{\"DefaultResourceSpec\": {\"SageMakerImageArn\": \"arn-for-2024.04.2+764.pro1-version\", \"InstanceType\": \"system\"}, \"DomainExecutionRoleArn\": \"execution-role-arn\"}}"
   ```

1. Cree una nueva aplicación `RStudioServerPro` en el dominio existente. La RStudio versión predeterminada es. `2024.04.2+764.pro1`

   ```
   aws sagemaker create-app \
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

La aplicación `RStudioServerPro` se actualiza ahora a la versión `2024.04.2+764.pro1`. 

# Red y almacenamiento
<a name="rstudio-network"></a>

En el siguiente tema, se describen las consideraciones sobre el acceso a la red y el almacenamiento de datos para la RStudio instancia. Para obtener información general sobre el acceso a la red y el almacenamiento de datos cuando se utiliza Amazon SageMaker AI, consulte[Protección de datos en Amazon SageMaker AI](data-protection.md).

 **Volumen de Amazon EFS**

RStudio en Amazon SageMaker AI comparte un volumen de Amazon EFS con la aplicación Amazon SageMaker Studio Classic del dominio. Cuando la RStudio aplicación se añade a un dominio, SageMaker AI crea una carpeta con el nombre `shared` en el directorio Amazon EFS. Si esta `shared` carpeta se elimina o se modifica manualmente, es posible que la RStudio aplicación deje de funcionar. Para obtener más información sobre el volumen de Amazon EFS, consulte [Administre su volumen de almacenamiento de Amazon EFS en Amazon SageMaker Studio Classic](studio-tasks-manage-storage.md).

 **Paquetes y scripts instalados**

Los paquetes que se instalan desde dentro RStudio se refieren al nivel del perfil de usuario. Esto significa que el paquete instalado persiste durante el RSession cierre, el reinicio y en todos los perfiles RSessions de usuario en los que esté instalado. Los scripts R que se guardan en RSessions se comportan de la misma manera. Tanto los paquetes como los scripts de R se guardan en el volumen de Amazon EFS del usuario.

 **Cifrado**

 RStudio en Amazon SageMaker AI admite el cifrado en reposo.

 **Uso RStudio en modo solo VPC**

RStudio en Amazon, la SageMaker IA admite [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html)la integración. Con esta integración, puede utilizar RStudio la SageMaker IA en modo solo VPC sin acceso directo a Internet. Cuando utiliza el RStudio modo solo VPC, el servicio administra automáticamente sus grupos de seguridad. Esto incluye la conectividad entre usted RServer y su. RSessions

Se requiere lo siguiente para su uso RStudio en el modo solo VPC. Para obtener más información sobre la selección de una VPC, consulte [Elección de una Amazon VPC](onboard-vpc.md).
+ Una subred privada con acceso a Internet para realizar una llamada a Amazon SageMaker AI & License Manager o a los puntos de conexión de Amazon Virtual Private Cloud (Amazon VPC) para SageMaker Amazon AI y License Manager.
+ El dominio no puede tener más de dos grupos de seguridad asociados.
+ Un ID de grupo de seguridad para su uso con el dominio en la configuración del dominio. Esto debe permitir todos los accesos salientes.
+ Un ID de grupo de seguridad para su uso con el punto de conexión de Amazon VPC. Este grupo de seguridad debe permitir el tráfico entrante desde el ID del grupo de seguridad del dominio.
+ Amazon VPC Endpoint para `sagemaker.api` y. AWS License Manager Debe estar en la misma Amazon VPC que la subred privada. 

# RStudioServerPro tipo de instancia
<a name="rstudio-select-instance"></a>

A la hora de decidir qué tipo de instancia de Amazon EC2 utilizar para la RStudio ServerPro aplicación, el factor principal a tener en cuenta es el ancho de banda. El ancho de banda es importante porque la RStudio ServerPro instancia es responsable de ofrecer la RStudio interfaz de usuario a todos los usuarios. Esto incluye flujos de trabajo intensivos para la interfaz de usuario, como la generación de ilustraciones y animaciones y la visualización de muchas filas de datos. Por tanto, es posible que se produzca una cierta degradación del rendimiento de la interfaz de usuario en función de la carga de trabajo de todos los usuarios. Los siguientes son los tipos de instancias disponibles que puede usar en su caso RStudioServerPro. Para obtener información sobre los precios de estas instancias, consulta [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).
+ `system`: se recomienda este tipo de instancia para dominios con poco uso de la interfaz de usuario.
**nota**  
El valor `system` se traduce a `ml.t3.medium`.
+ `ml.c5.4xlarge`: este tipo de instancia se recomienda para dominios con uso moderado de la interfaz de usuario.
+ `ml.c5.9xlarge`: se recomienda este tipo de instancia para dominios con uso intenso de la interfaz de usuario.

 **Cambiar el tipo de RStudio instancia** 

Para cambiar su tipo de instancia RStudioServerPro, pase el nuevo tipo de instancia como parte de una llamada al comando `update-domain` CLI. A continuación, debe eliminar la RStudio ServerPro aplicación existente mediante el comando `delete-app` CLI y crear una nueva RStudio ServerPro aplicación mediante el comando `create-app` CLI. 

# Añadir una URL de RStudio Connect
<a name="rstudio-configure-connect"></a>

RStudio Connect es una plataforma de publicación para aplicaciones Shiny, informes de R Markdown, paneles, gráficos y más. RStudio Connect facilita la obtención de información sobre aprendizaje automático y ciencia de datos al hacer que el alojamiento de contenido sea simple y escalable. Si tiene un servidor RStudio Connect, puede configurar el servidor como el lugar predeterminado donde se publican las aplicaciones. Para obtener más información sobre RStudio Connect, consulte [RStudio Connect](https://www.rstudio.com/products/connect/).

Cuando te incorporas a un dominio de RStudio on Amazon SageMaker AI, no se crea un servidor RStudio Connect. Puede crear un servidor RStudio Connect en una instancia de Amazon EC2 para usar el dominio Connect with SageMaker Amazon AI. Para obtener información sobre cómo configurar el servidor RStudio Connect, consulte [Host RStudio Connect y Package Manager for ML development RStudio en Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/host-rstudio-connect-and-package-manager-for-ml-development-in-rstudio-on-amazon-sagemaker/). 

 **Añadir una URL de RStudio Connect** 

Si tienes una URL de RStudio Connect, puedes actualizar la URL predeterminada para que tus RStudio usuarios puedan publicar en ella. 

1. Vaya a la página **Dominios**. 

1. Seleccione el dominio que desee.

1. Seleccione **Configuración del dominio**.

1. En **Configuración general**, seleccione **Editar**.

1.  En la nueva página, selecciona **RStudio Configuración** en la parte izquierda.  

1.  En **RStudio Connect URL**, introduzca la URL de RStudio Connect que desee añadir. 

1.  Seleccione **Enviar**. 

 **CLI** 

 Puedes establecer una URL de RStudio Connect predeterminada al crear tu dominio. La única forma de actualizar tu URL de RStudio Connect desde el AWS CLI es eliminar tu dominio y crear uno nuevo con la URL de RStudio Connect actualizada. 

# Actualizar la URL RStudio del Package Manager
<a name="rstudio-configure-pm"></a>

RStudio Package Manager es un servidor de administración de repositorios que se utiliza para organizar y centralizar los paquetes en toda la organización. Para obtener más información sobre RStudio Package Manager, consulte [RStudio Package Manager](https://www.rstudio.com/products/package-manager/). Si no proporciona su propia URL de Package Manager, el dominio Amazon SageMaker AI utilizará el repositorio predeterminado de Package Manager al incorporarlo RStudio siguiendo los pasos que se indican[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md). Para obtener más información, consulte [Host RStudio Connect y Package Manager para el desarrollo de ML RStudio en Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/host-rstudio-connect-and-package-manager-for-ml-development-in-rstudio-on-amazon-sagemaker/). En el siguiente procedimiento se muestra cómo actualizar la URL del Administrador de paquetes.

 **Actualizar la URL de Package Manager** 

Puede actualizar la URL de Package Manager utilizada para su dominio RStudio habilitado de la siguiente manera.

1. Vaya a la página **Dominios**. 

1. Seleccione el dominio que desee.

1. Seleccione **Configuración del dominio**.

1. En **Configuración general**, seleccione **Editar**.

1.  En la nueva página, selecciona **RStudio Configuración** en el lado izquierdo.  

1.  En **RStudio Package Manager**, introduce la URL de tu RStudio Package Manager. 

1.  Seleccione **Enviar**. 

 **CLI** 

La única forma de actualizar la URL de Package Manager desde el AWS CLI es eliminar el dominio y crear uno nuevo con la URL actualizada del Package Manager. 

# Cree un dominio Amazon SageMaker AI RStudio con el AWS CLI
<a name="rstudio-create-cli"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

En el siguiente tema se muestra cómo incorporarse a un dominio de Amazon SageMaker AI con la RStudio opción habilitada mediante AWS CLI. Para realizar la incorporación mediante el Consola de administración de AWS, consulte[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md). 

## Requisitos previos
<a name="rstudio-create-cli-prerequisites"></a>
+  Instalar y configurar [AWS CLI versión 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) 
+  Configurar [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) con las credenciales de IAM 

## Crear el rol `DomainExecution`
<a name="rstudio-create-cli-domainexecution"></a>

Para iniciar la RStudio aplicación, debe proporcionar un `DomainExecution` rol. Esta función se utiliza para determinar si es RStudio necesario lanzarlo como parte de la creación de dominios de Amazon SageMaker AI. Amazon SageMaker AI también utiliza esta función para acceder a la RStudio licencia y enviar RStudio registros.  

**nota**  
El `DomainExecution` rol debe tener al menos AWS License Manager permisos para acceder a la RStudio licencia y CloudWatch permisos para insertar registros en su cuenta.

El siguiente procedimiento muestra cómo crear el rol `DomainExecution` con AWS CLI. 

1.  Cree un archivo llamado `assume-role-policy.json` con el siguiente contenido. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": "sts:AssumeRole",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "sagemaker.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

------

1.  Cree el rol `DomainExecution`. `<REGION>` debería ser la región de AWS en la que se inicia el dominio. 

   ```
   aws iam create-role --region <REGION> --role-name DomainExecution --assume-role-policy-document file://assume-role-policy.json
   ```

1. Cree un archivo llamado `domain-setting-policy.json` con el siguiente contenido. Esta política permite que la RStudio ServerPro aplicación acceda a los recursos necesarios y que Amazon SageMaker AI lance automáticamente una RStudio ServerPro aplicación cuando la RStudio ServerPro aplicación existente esté en `Failed` estado `Deleted` o.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "license-manager:ExtendLicenseConsumption",
                   "license-manager:ListReceivedLicenses",
                   "license-manager:GetLicense",
                   "license-manager:CheckoutLicense",
                   "license-manager:CheckInLicense",
                   "logs:CreateLogDelivery",
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DeleteLogDelivery",
                   "logs:Describe*",
                   "logs:GetLogDelivery",
                   "logs:GetLogEvents",
                   "logs:ListLogDeliveries",
                   "logs:PutLogEvents",
                   "logs:PutResourcePolicy",
                   "logs:UpdateLogDelivery",
                   "sagemaker:CreateApp"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1.  Cree la política de configuración de dominio asociada al rol `DomainExecution`. Tenga en cuenta el `PolicyArn` de la respuesta. Deberá introducir ese ARN en los siguientes pasos. 

   ```
   aws iam create-policy --region <REGION> --policy-name domain-setting-policy --policy-document file://domain-setting-policy.json
   ```

1.  Asocie `domain-setting-policy` al rol `DomainExecution`. Utilice el `PolicyArn` devuelto en el paso anterior.

   ```
   aws iam attach-role-policy --role-name DomainExecution --policy-arn <POLICY_ARN>
   ```

## Crea un dominio Amazon SageMaker AI con RStudio la aplicación
<a name="rstudio-create-cli-domain"></a>

La RStudio ServerPro aplicación se inicia automáticamente al crear un dominio de Amazon SageMaker AI mediante el comando `create-domain` CLI con el `RStudioServerProDomainSettings` parámetro especificado. Al iniciar la RStudio ServerPro aplicación, Amazon SageMaker AI comprueba si hay una RStudio licencia válida en la cuenta y no crea el dominio si no se encuentra la licencia. 

La creación de un dominio Amazon SageMaker AI varía según el método de autenticación y el tipo de red. Estas opciones deben utilizarse juntas, con un método de autenticación y una tipo de conexión de red seleccionados. Para obtener más información sobre los requisitos para crear un dominio nuevo, consulte [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html). 

Se admiten los siguientes métodos de autenticación:
+  `IAM Auth` 
+  `SSO Auth` 

Se admiten los siguientes tipos de conexión de red:
+  `PublicInternet` 
+  `VPCOnly` 

### Métodos de autenticación
<a name="rstudio-create-cli-domain-auth"></a>

 **Modo de autenticación IAM** 

A continuación, se muestra cómo crear un dominio de Amazon SageMaker AI con RStudio activado y un tipo de `IAM Auth` red. Para obtener más información AWS Identity and Access Management, consulte [¿Qué es la IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) .
+ `DomainExecutionRoleArn` debe ser el ARN del rol creado en el paso anterior.
+ `ExecutionRole`es el ARN del rol asignado a los usuarios en el dominio Amazon SageMaker AI.
+ `vpc-id`debe ser el ID de su Amazon Virtual Private Cloud. `subnet-ids`debe ser una lista de subredes separadas por espacios. IDs [Para obtener información acerca de las subredes `vpc-id` y`subnet-ids`, consulte VPCs las subredes y.](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ `RStudioPackageManagerUrl`y `RStudioConnectUrl` son opcionales y deben configurarse en URLs los servidores RStudio Package Manager y RStudio Connect, respectivamente.
+ `app-network-access-type` debe ser `PublicInternetOnly` o `VPCOnly`.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode IAM \
    --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --app-network-access-type <NETWORK_ACCESS_TYPE>
```

 **Autenticación mediante el Centro de identidades de IAM** 

A continuación, se muestra cómo crear un dominio de Amazon SageMaker AI con RStudio activado y un tipo de `SSO Auth` red. AWS IAM Identity Center debe estar habilitado en la región en la que se lanza el dominio. Para obtener más información sobre el Centro de identidad de IAM, consulte [¿Qué es? AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) .
+ `DomainExecutionRoleArn` debe ser el ARN del rol creado en el paso anterior.
+ `ExecutionRole`es el ARN del rol asignado a los usuarios en el dominio Amazon SageMaker AI.
+ `vpc-id`debe ser el ID de su Amazon Virtual Private Cloud. `subnet-ids`debe ser una lista de subredes separadas por espacios. IDs [Para obtener información acerca de las subredes `vpc-id` y`subnet-ids`, consulte VPCs las subredes y.](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ `RStudioPackageManagerUrl`y `RStudioConnectUrl` son opcionales y deben configurarse en URLs los servidores RStudio Package Manager y RStudio Connect, respectivamente.
+ `app-network-access-type` debe ser `PublicInternetOnly` o `VPCOnly`.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode SSO \
    --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --app-network-access-type <NETWORK_ACCESS_TYPE>
```

### Tipos de conexión
<a name="rstudio-create-cli-domain-connection"></a>

 **PublicInternet/Tipo de red de Internet directo** 

A continuación, se muestra cómo crear un dominio de Amazon SageMaker AI con RStudio activado y un tipo de `PublicInternet` red.
+ `DomainExecutionRoleArn` debe ser el ARN del rol creado en el paso anterior.
+ `ExecutionRole`es el ARN del rol asignado a los usuarios en el dominio Amazon SageMaker AI.
+ `vpc-id`debe ser el ID de su Amazon Virtual Private Cloud. `subnet-ids`debe ser una lista de subredes separadas por espacios. IDs [Para obtener información acerca de las subredes `vpc-id` y`subnet-ids`, consulte VPCs las subredes y.](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ `RStudioPackageManagerUrl`y `RStudioConnectUrl` son opcionales y deben configurarse en URLs los servidores RStudio Package Manager y RStudio Connect, respectivamente.
+ `auth-mode` debe ser `SSO` o `IAM`.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode <AUTH_MODE> \
    --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --app-network-access-type PublicInternetOnly
```

 **VPCOnly mode** 

A continuación, se muestra cómo lanzar un dominio de Amazon SageMaker AI con RStudio activado y un tipo de `VPCOnly` red. Para obtener más información sobre el uso del tipo de acceso de red `VPCOnly`, consulte [Conexión de cuadernos de Studio en una VPC a recursos externos](studio-notebooks-and-internet-access.md).
+ `DomainExecutionRoleArn` debe ser el ARN del rol creado en el paso anterior.
+ `ExecutionRole`es el ARN del rol asignado a los usuarios en el dominio Amazon SageMaker AI.
+ `vpc-id`debe ser el ID de su Amazon Virtual Private Cloud. `subnet-ids`debe ser una lista de subredes separadas por espacios. IDs Su subred privada debe poder acceder a Internet para realizar una llamada a Amazon SageMaker AI AWS License Manager o tener puntos de enlace de Amazon VPC para Amazon SageMaker AI y. AWS License Manager[Para obtener información sobre los puntos de enlace de Amazon VPC, consulte Interface Los puntos de enlace de [Amazon VPC. Para obtener información sobre `vpc-id` las subredes](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) y, consulte, y. `subnet-ids` VPCs ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) 
+ `SecurityGroups`debe permitir el acceso saliente a Amazon SageMaker AI y a los puntos AWS License Manager finales.
+ `auth-mode` debe ser `SSO` o `IAM`.

**nota**  
Cuando utilice puntos de conexión de Amazon Virtual Private Cloud, el grupo de seguridad asociado a sus puntos de conexión de Amazon Virtual Private Cloud debe permitir el tráfico entrante desde el grupo de seguridad que pase como parte del parámetro `domain-setting` de la llamada de `create-domain` CLI.

Con RStudio Amazon SageMaker AI gestiona los grupos de seguridad por ti. Esto significa que Amazon SageMaker AI gestiona las reglas de los grupos de seguridad para garantizar RSessions el acceso a RStudio ServerPro las aplicaciones. Amazon SageMaker AI crea una regla de grupo de seguridad por perfil de usuario.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode <AUTH_MODE> \
    --default-user-settings SecurityGroups=<USER_SECURITY_GROUP>,ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings SecurityGroupIds=<DOMAIN_SECURITY_GROUP>,RStudioServerProDomainSettings={DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids "<SUBNET_IDS>" \
    --app-network-access-type VPCOnly --app-security-group-management Service
```

Nota: La RStudio ServerPro aplicación se inicia mediante un perfil de usuario especial denominado`domain-shared`. Por ello, ningún otro perfil de usuario devuelve esta aplicación como parte de las llamadas de la API `list-app`. 

Puede que tenga que aumentar la cuota de VPC de Amazon en su cuenta para incrementar el número de usuarios. Para obtener más información, consulte [Cuotas de VPC de Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-security-groups). 

## Comprobación de la creación del dominio
<a name="rstudio-create-cli-domain-verify"></a>

Utilice el siguiente comando para comprobar que el dominio se haya creado con un `Status` de `InService`. El `domain-id` se añade al ARN del dominio. Por ejemplo, `arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:domain/<DOMAIN_ID>`.

```
aws sagemaker describe-domain --domain-id <DOMAIN_ID> --region <REGION>
```

# Agrega RStudio soporte a un dominio existente
<a name="rstudio-add-existing"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

 Si has añadido una RStudio licencia mediante AWS License Manager, puedes crear un nuevo dominio de Amazon SageMaker AI compatible con SageMaker IA. RStudio Si ya tienes un dominio que no es compatible RStudio, puedes añadir RStudio soporte a ese dominio sin tener que eliminarlo ni volver a crearlo.  

 En el siguiente tema se explica cómo añadir esta compatibilidad. 

## Requisitos previos
<a name="rstudio-add-existing-prerequisites"></a>

 Debes completar los siguientes pasos antes de actualizar tu dominio actual para añadir compatibilidad con SageMaker IA. RStudio   
+  Instalar y configurar [AWS CLI versión 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) 
+  Configurar [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) con las credenciales de IAM 
+  Cree una función de ejecución de dominio siguiendo los pasos de [Crear un dominio de SageMaker IA RStudio con el AWS CLI](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio-create-cli.html#rstudio-create-cli-domainexecution). La aplicación requiere este rol de IAM a nivel de dominio. RStudio ServerPro El rol requiere acceso a AWS License Manager para verificar una licencia válida de Posit Workbench y a Amazon CloudWatch Logs para publicar los registros del servidor.  
+  [Utilice su RStudio licencia para AWS License Manager seguir los pasos que se indican en la licencia. RStudio](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio-license.html) 
+  (Opcional) Si quieres usarlo RStudio en `VPCOnly` modo, completa los pasos que se indican solo [RStudio en VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio-network.html). 
+  Asegúrese de que los grupos de seguridad que ha configurado para cada uno [UserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)de sus dominios cumplan con las cuotas a nivel de cuenta. Al configurar el perfil de usuario predeterminado durante la creación del dominio, puede utilizar el `DefaultUserSettings` parámetro de la [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)API para añadir los `SecurityGroups` que hereden todos los perfiles de usuario creados en el dominio. También puede proporcionar grupos de seguridad adicionales para un usuario específico como parte del `UserSettings` parámetro de la [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)API. Si ha añadido grupos de seguridad de esta manera, debe asegurarse de que el número total de grupos de seguridad por perfil de usuario no supera la cuota máxima de 2 en modo `VPCOnly` y 4 en modo `PublicInternetOnly`. Si el número total resultante de grupos de seguridad para cualquier perfil de usuario supera la cuota, puede combinar las reglas de varios grupos de seguridad en un solo grupo de seguridad.  

## Agregue RStudio soporte a un dominio existente
<a name="rstudio-add-existing-enable"></a>

Una vez que hayas completado los requisitos previos, puedes añadir RStudio soporte a tu dominio actual. En los siguientes pasos se describe cómo actualizar tu dominio existente para añadirlo a él. RStudio 

### Paso 1: eliminar todas las aplicaciones del dominio
<a name="rstudio-add-existing-enable-step1"></a>

Para añadir compatibilidad a tu dominio, SageMaker AI debe actualizar los grupos de seguridad subyacentes de todos los perfiles de usuario existentes. RStudio Para ello, tendrá que eliminar y volver a crear todas las aplicaciones existentes en el dominio. El siguiente procedimiento muestra cómo eliminar todas las aplicaciones. 

1.  Enumere todas las aplicaciones del dominio. 

   ```
   aws sagemaker \
      list-apps \
      --domain-id-equals <DOMAIN_ID>
   ```

1.  Elimine todas las aplicaciones de todos los perfiles de usuario del dominio. 

   ```
   // JupyterServer apps 
   aws sagemaker \
       delete-app \
       --domain-id <DOMAIN_ID> \
       --user-profile-name <USER_PROFILE> \
       --app-type JupyterServer \
       --app-name <APP_NAME>
   
   // KernelGateway apps
   aws sagemaker \
       delete-app \
       --domain-id <DOMAIN_ID> \
       --user-profile-name <USER_PROFILE> \
       --app-type KernelGateway \
       --app-name <APP_NAME>
   ```

### Paso 2: Actualice todos los perfiles de usuario con la nueva lista de grupos de seguridad
<a name="rstudio-add-existing-enable-step2"></a>

 Se trata de una acción única que debe realizar para todos los perfiles de usuario existentes en el dominio una vez que se hayan refactorizado los grupos de seguridad existentes. Esto evita llegar a la cuota del número máximo de grupos de seguridad. La llamada a la `UpdateUserProfile` API falla si el usuario tiene alguna aplicación en [InService](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeApp.html#sagemaker-DescribeApp-response-Status)estado. Elimine todas las aplicaciones y, a continuación, llame a la API `UpdateUserProfile` para actualizar los grupos de seguridad. 

**nota**  
El siguiente requisito para el `VPCOnly` modo descrito en [Connect Amazon SageMaker Studio Classic Notebooks in a VPC to External](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-vpc-only) Resources ya no es necesario al RStudio añadir soporte`AppSecurityGroupManagement`, ya que lo gestiona SageMaker el servicio de IA:  
"[Tráfico TCP en el grupo de seguridad](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances). Esto es necesario para la conectividad entre la JupyterServer aplicación y las KernelGateway aplicaciones. Debe permitir el acceso al menos a los puertos del rango `8192-65535`”. 

```
aws sagemaker \
    update-user-profile \
    --domain-id <DOMAIN_ID>\
    --user-profile-name <USER_PROFILE> \
    --user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"
```

### Paso 3: Actívala RStudio llamando a la UpdateDomain API
<a name="rstudio-add-existing-enable-step3"></a>

1.  Llama a la [UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)API para añadir compatibilidad RStudio con la SageMaker IA. El parámetro `defaultusersettings` solo es necesario si han refactorizado los grupos de seguridad predeterminados para los perfiles de usuario. 
   +  Para el modo `VPCOnly`: 

     ```
     aws sagemaker \
         update-domain \
         --domain-id <DOMAIN_ID> \
         --app-security-group-management Service \
         --domain-settings-for-update RStudioServerProDomainSettingsForUpdate={DomainExecutionRoleArn=<DOMAIN_EXECUTION_ROLE_ARN>} \
         --default-user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"
     ```
   +  Para el modo `PublicInternetOnly`: 

     ```
     aws sagemaker \
         update-domain \
         --domain-id <DOMAIN_ID> \
         --domain-settings-for-update RStudioServerProDomainSettingsForUpdate={DomainExecutionRoleArn=<DOMAIN_EXECUTION_ROLE_ARN>} \
         --default-user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"
     ```

1. Compruebe que el estado del dominio sea `InService`. Cuando el estado del dominio sea`InService`, se añadirá RStudio la compatibilidad con SageMaker IA.

   ```
   aws sagemaker \
       describe-domain \
       --domain-id <DOMAIN_ID>
   ```

1. Comprueba que el estado de la RStudio ServerPro aplicación esté `InService` utilizando el siguiente comando.

   ```
   aws sagemaker list-apps --user-profile-name domain-shared
   ```

### Paso 4: Añadir RStudio acceso para los usuarios existentes
<a name="rstudio-add-existing-enable-step4"></a>

 Como parte de la actualización del paso 3, la SageMaker IA marca todos los perfiles RStudio [AccessStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RStudioServerProAppSettings.html#sagemaker-Type-RStudioServerProAppSettings-AccessStatus)de usuario existentes en el dominio como `DISABLED` predeterminados. Esto evita superar el número de usuarios que permite su licencia actual. Para añadir acceso a usuarios existentes deberá seguir un paso de suscripción único. Para realizar la suscripción, llama a la [UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html)API con lo siguiente: [RStudioServerProAppSettings](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UserSettings.html#sagemaker-Type-UserSettings-RStudioServerProAppSettings) 
+  `AccessStatus` = `ENABLED` 
+  *Opcional* - `UserGroup` = `R_STUDIO_USER` o `R_STUDIO_ADMIN` 

```
aws sagemaker \
    update-user-profile \
    --domain-id <DOMAIN_ID>\
    --user-profile-name <USER_PROFILE> \
    --user-settings "{\"RStudioServerProAppSettings\": {\"AccessStatus\": \"ENABLED\"}}"
```

**nota**  
De forma predeterminada, el número de usuarios a los que se puede acceder RStudio es de 60.

### Paso 5: Desactivar el RStudio acceso para los nuevos usuarios
<a name="rstudio-add-existing-enable-step5"></a>

 A menos que se especifique lo contrario al llamar`UpdateDomain`, la RStudio asistencia se añade de forma predeterminada a todos los nuevos perfiles de usuario que se creen después de añadir la compatibilidad RStudio con SageMaker IA. Para desactivar el acceso en un perfil de usuario nuevo debe establecer explícitamente el parámetro `AccessStatus` en `DISABLED` como parte de la llamada a la API `CreateUserProfile`. Si no se especifica el parámetro `AccessStatus` como parte de la API `CreateUserProfile`, el estado de acceso predeterminado es `ENABLED`. 

```
aws sagemaker \
    create-user-profile \
    --domain-id <DOMAIN_ID>\
    --user-profile-name <USER_PROFILE> \
    --user-settings "{\"RStudioServerProAppSettings\": {\"AccessStatus\": \"DISABLED\"}}"
```

# Imágenes personalizadas RStudio sin SageMaker IA
<a name="rstudio-byoi"></a>

Una SageMaker imagen es un archivo que identifica los paquetes de idiomas y otras dependencias que se requieren para ejecutarse RStudio en Amazon SageMaker AI. SageMaker La IA utiliza estas imágenes para crear un entorno en el que puedas correr RStudio. Amazon SageMaker AI proporciona una RStudio imagen integrada para que la utilices. Si necesita una funcionalidad diferente, puede llevar sus propias imágenes personalizadas. Esta página proporciona información sobre los conceptos clave para usar imágenes personalizadas con RStudio SageMaker IA. El proceso para crear tu propia imagen y utilizarla con RStudio la SageMaker IA consta de tres pasos:

1. Cree una imagen personalizada a partir de un Dockerfile y envíela a un repositorio de Amazon Elastic Container Registry (Amazon ECR).

1. Cree una SageMaker imagen que apunte a una imagen de contenedor en Amazon ECR y adjúntela a su dominio de Amazon SageMaker AI.

1. Inicie una nueva sesión RStudio con su imagen personalizada.

Puedes crear imágenes y versiones de imágenes y adjuntar versiones de imágenes a tu dominio mediante el panel de control de SageMaker IA [AWS SDK para Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html), el y el [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/). También puedes crear imágenes y versiones de imágenes con la consola de SageMaker IA, incluso si no te has incorporado a ningún dominio.

En los siguientes temas se muestra cómo incorporar tu propia imagen a RStudio la SageMaker IA creando, adjuntando y lanzando una imagen personalizada.

## Terminología clave
<a name="rstudio-byoi-basics"></a>

En la siguiente sección, se definen los términos clave para usar tu propia imagen con RStudio la SageMaker IA.
+ **Dockerfile:** un Dockerfile es un archivo que identifica los paquetes de idioma y otras dependencias de la imagen de Docker.
+ **Imagen de Docker:** la imagen de Docker es un Dockerfile compilado. Esta imagen está registrada en Amazon ECR y sirve de base para la imagen de SageMaker IA.
+ **SageMaker imagen:** una SageMaker imagen es el soporte para un conjunto de versiones de SageMaker imágenes basadas en imágenes de Docker. 
+ **Versión de imagen:** una versión de imagen de una SageMaker imagen representa una imagen de Docker que es compatible RStudio y está almacenada en un repositorio de Amazon ECR. Cada versión de imagen es inmutable. Estas versiones de imágenes se pueden adjuntar a un dominio y utilizar con IA RStudio . SageMaker 

# Cómo completar los requisitos previos de
<a name="rstudio-byoi-prerequisites"></a>

Debes cumplir los siguientes requisitos previos antes de usar tu propia imagen RStudio en Amazon SageMaker AI. 
+ Si ya tienes un dominio RStudio que se creó antes del 7 de abril de 2022, debes eliminar tu RStudio ServerPro aplicación y volver a crearla. Para obtener información sobre cómo eliminar una aplicación, consulte [Cierre y actualice Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).
+ Instale la aplicación Docker. Para obtener información sobre cómo configurar Docker, consulte [Orientación y configuración](https://docs.docker.com/get-started/).
+ Crea una copia local de un Dockerfile RStudio compatible que funcione con IA. SageMaker Para obtener información sobre cómo crear un RStudio dockerfile de muestra, consulte [Usar una imagen personalizada para incorporar su propio entorno de desarrollo a RStudio Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/use-a-custom-image-to-bring-your-own-development-environment-to-rstudio-on-amazon-sagemaker/).
+ Utilice un rol AWS Identity and Access Management de ejecución que tenga la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política adjunta. Si te has incorporado a un dominio, puedes obtener el rol en la sección de **resumen del dominio** del panel de control de la SageMaker IA.

  Añada los siguientes permisos para que el servicio Amazon Elastic Container Registry (Amazon ECR) acceda al rol de ejecución.

------
#### [ JSON ]

****  

  ```
  { 
      "Version":"2012-10-17",		 	 	  
      "Statement":[ 
          {
              "Sid": "VisualEditor0",
              "Effect":"Allow", 
              "Action":[ 
                  "ecr:CreateRepository", 
                  "ecr:BatchGetImage", 
                  "ecr:CompleteLayerUpload", 
                  "ecr:DescribeImages", 
                  "ecr:DescribeRepositories", 
                  "ecr:UploadLayerPart", 
                  "ecr:ListImages", 
                  "ecr:InitiateLayerUpload", 
                  "ecr:BatchCheckLayerAvailability", 
                  "ecr:PutImage" 
              ], 
              "Resource": "*" 
          }
      ]
  }
  ```

------
+ Instálalo y configura AWS CLI con la siguiente versión (o una versión superior). Para obtener información sobre la instalación de AWS CLI, consulte [Instalación o actualización de la versión más reciente de AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

  ```
  AWS CLI v1 >= 1.23.6
  AWS CLI v2 >= 2.6.2
  ```

# Especificaciones RStudio de imagen personalizadas
<a name="rstudio-byoi-specs"></a>

En esta guía, aprenderás las especificaciones de RStudio imagen personalizadas para usarlas cuando traigas tu propia imagen. Hay dos conjuntos de requisitos que debes cumplir con tu RStudio imagen personalizada para utilizarla con Amazon SageMaker AI. Estos requisitos los imponen RStudio PBC y la plataforma Amazon SageMaker Studio Classic. Si no se cumple uno de estos conjuntos de requisitos, la imagen personalizada no funcionará correctamente.

## RStudio Requisitos de PBC
<a name="rstudio-byoi-specs-rstudio"></a>

RStudio Los requisitos de PBC se describen en el artículo [Uso de imágenes de Docker con RStudio Workbench RStudio /Server Pro, Launcher](https://support.rstudio.com/hc/en-us/articles/360019253393-Using-Docker-images-with-RStudio-Server-Pro-Launcher-and-Kubernetes) y Kubernetes. Sigue las instrucciones de este artículo para crear la base de tu imagen personalizada. RStudio 

Para obtener instrucciones sobre cómo instalar varias versiones de R en la imagen personalizada, consulte [Instalación de varias versiones de R en Linux](https://support.rstudio.com/hc/en-us/articles/215488098).

## Requisitos de Amazon SageMaker Studio Classic
<a name="rstudio-byoi-specs-studio"></a>

Amazon SageMaker Studio Classic impone el siguiente conjunto de requisitos de instalación para la RStudio imagen.
+ Debe utilizar una imagen RStudio base de al menos`2025.05.1+513.pro3`. Para obtener más información, consulte [RStudio Control de versiones](rstudio-version.md).
+ Debe instalar los siguientes paquetes:

  ```
  yum install -y sudo \
  openjdk-11-jdk \
  libpng-dev \
  && yum clean all \
  && /opt/R/${R_VERSION}/bin/R -e "install.packages('reticulate', repos='https://packagemanager.rstudio.com/cran/__linux__/centos7/latest')" \
  && /opt/python/${PYTHON_VERSION}/bin/pip install --upgrade \
      'boto3>1.0<2.0' \
      'awscli>1.0<2.0' \
      'sagemaker[local]<3'
  ```
+ Debe proporcionar valores predeterminados para los valores de entorno `RSTUDIO_CONNECT_URL` y `RSTUDIO_PACKAGE_MANAGER_URL`.

  ```
  ENV RSTUDIO_CONNECT_URL "YOUR_CONNECT_URL"
  ENV RSTUDIO_PACKAGE_MANAGER_URL "YOUR_PACKAGE_MANAGER_URL"
  ENV RSTUDIO_FORCE_NON_ZERO_EXIT_CODE 1
  ```

Las siguientes especificaciones generales se aplican a la imagen que se representa mediante una versión de RStudio imagen.

**Ejecutar la imagen**  
`ENTRYPOINT`y `CMD` las instrucciones se anulan para que la imagen se ejecute como una RSession aplicación.

**Detener la imagen**  
La API `DeleteApp` emite el equivalente de un comando `docker stop`. Los demás procesos del contenedor no recibirán las SIGKILL/SIGTERM señales.

**Sistema de archivos**  
Los directorios `/opt/.sagemakerinternal` y `/opt/ml` están reservados. Es posible que los datos de estos directorios no estén visibles en tiempo de ejecución.

**Datos de usuario**  
Cada usuario de un dominio de SageMaker IA obtiene un directorio de usuarios en un volumen compartido de Amazon Elastic File System en la imagen. La ubicación del directorio del usuario actual en el volumen de Amazon EFS es `/home/sagemaker-user`.

**Metadatos**  
Hay un archivo de metadatos en `/opt/ml/metadata/resource-metadata.json`. No se añaden variables de entorno adicionales a las variables definidas en la imagen. Para obtener más información, consulte [Obtener metadatos de aplicaciones](notebooks-run-and-manage-metadata.md#notebooks-run-and-manage-metadata-app).

**GPU**  
En una instancia de GPU, la imagen se ejecuta con la opción `--gpus`. Solo debe incluirse el kit de herramientas CUDA en la imagen, no en los controladores NVIDIA. Para obtener más información, consulte la [Guía del usuario de NVIDIA](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html).

**Métricas y registro**  
Los registros del RSession proceso se envían a Amazon CloudWatch en la cuenta del cliente. El nombre del grupo de registro es `/aws/sagemaker/studio`. El nombre del flujo de registro. es `$domainID/$userProfileName/RSession/$appName`.

**Tamaño de imagen**  
El tamaño de la imagen está limitado a 25 GB. Para ver el tamaño de la imagen, ejecute `docker image ls`.

# Crea una RStudio imagen personalizada
<a name="rstudio-byoi-create"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

En este tema se describe cómo se puede crear una RStudio imagen personalizada mediante la consola de SageMaker IA y el AWS CLI. Si usa el AWS CLI, debe ejecutar los pasos desde su máquina local. Los siguientes pasos no funcionan desde Amazon SageMaker Studio Classic.

Al crear una imagen, la SageMaker IA también crea una versión inicial de la imagen. La versión de la imagen representa una imagen de contenedor en [Amazon Elastic Container Registry (ECR)](https://console.aws.amazon.com/ecr/). La imagen del contenedor debe cumplir los requisitos para ser utilizada RStudio. Para obtener más información, consulte [Especificaciones RStudio de imagen personalizadas](rstudio-byoi-specs.md).

Para obtener información sobre cómo probar la imagen localmente y resolver problemas comunes, consulta el [repositorio de muestras de imágenes personalizadas de SageMaker Studio](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md).

**Topics**
+ [Añadir una imagen de contenedor RStudio Docker SageMaker compatible con IA a Amazon ECR](#rstudio-byoi-sdk-add-container-image)
+ [Cree una SageMaker imagen desde la consola](#rstudio-byoi-create-console)
+ [Crea una imagen a partir del AWS CLI](#rstudio-byoi-create-cli)

## Añadir una imagen de contenedor RStudio Docker SageMaker compatible con IA a Amazon ECR
<a name="rstudio-byoi-sdk-add-container-image"></a>

Siga estos pasos para agregar una imagen de contenedor de Docker a Amazon ECR:
+ Cree un repositorio de Amazon ECR.
+ Autentíquese en Amazon ECR.
+ Cree una imagen de Docker compatible con la IA SageMaker . RStudio 
+ Cargue la imagen en el repositorio de Amazon ECR.

**nota**  
El repositorio de Amazon ECR debe estar en el mismo lugar Región de AWS que su dominio.

**Para crear y añadir una imagen de Docker a Amazon ECR**

1. Cree un repositorio de Amazon ECR usando AWS CLI. Para crear el repositorio mediante la consola de Amazon ECR, consulte [Crear un repositorio](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html).

   ```
   aws ecr create-repository \
       --repository-name rstudio-custom \
       --image-scanning-configuration scanOnPush=true
   ```

   Respuesta:

   ```
   {
       "repository": {
           "repositoryArn": "arn:aws:ecr:us-east-2:acct-id:repository/rstudio-custom",
           "registryId": "acct-id",
           "repositoryName": "rstudio-custom",
           "repositoryUri": "acct-id.dkr.ecr.us-east-2.amazonaws.com/rstudio-custom",
           ...
       }
   }
   ```

1. Autentíquese en Amazon ECR mediante el URI del repositorio devuelto como respuesta del comando `create-repository`. Asegúrese de que la aplicación Docker se está ejecutando. Para obtener más información, consulte [Autenticación del registro](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth).

   ```
   aws ecr get-login-password | \
       docker login --username AWS --password-stdin <repository-uri>
   ```

   Respuesta:

   ```
   Login Succeeded
   ```

1. Cree la imagen de Docker. Ejecute el siguiente comando desde el directorio que incluye el Dockerfile.

   ```
   docker build .
   ```

1. Etiquete la imagen creada con una etiqueta única.

   ```
   docker tag <image-id> "<repository-uri>:<tag>"
   ```

1. Cargue la imagen de contenedor en el repositorio de Amazon ECR. Para obtener más información, consulte [ImagePush](https://docs.docker.com/engine/api/v1.40/#operation/ImagePush)[Empujar una imagen](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).

   ```
   docker push <repository-uri>:<tag>
   ```

   Respuesta:

   ```
   The push refers to repository [<account-id>.dkr.ecr.us-east-2.amazonaws.com/rstudio-custom]
   r: digest: <digest> size: 3066
   ```

## Cree una SageMaker imagen desde la consola
<a name="rstudio-byoi-create-console"></a>

**Para crear una imagen**

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

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

1. En **Configuraciones de administrador**, elija **Imágenes**. 

1. En la página **Imágenes personalizadas**, elija **Crear imagen**.

1. Para **Fuente de imagen**, introduzca la ruta de registro de la imagen de contenedor en Amazon ECR. La ruta tiene el siguiente formato:

   ` acct-id.dkr.ecr.region.amazonaws.com/repo-name[:tag] or [@digest] `

1. Seleccione **Siguiente**.

1. En **Propiedades de imagen**, introduzca lo siguiente:
   + Nombre de imagen: el nombre debe ser exclusivo de su cuenta en la Región de AWS actual.
   + (Opcional) Nombre para mostrar de la imagen: nombre que se muestra en la interfaz de usuario del dominio. Cuando no se proporciona, se muestra `Image name`.
   + (Opcional) Descripción: descripción de la imagen.
   + Función de IAM: la función debe tener la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política adjunta. Utilice el menú desplegable para elegir una de las opciones siguientes:
     + Crear un nuevo rol: especifique cualquier bucket adicional de Amazon Simple Storage Service (Amazon S3) al que desee que accedan los usuarios de blocs de notas. Si no desea permitir el acceso a buckets adicionales, elija **Ninguno**.

       SageMaker La IA vincula la `AmazonSageMakerFullAccess` política a la función. El rol permite a los usuarios de blocs de notas acceder a los buckets de Amazon S3 que aparecen junto a las marcas de verificación.
     + Introduzca un ARN de rol de IAM personalizado: introduzca el nombre de recurso de Amazon (ARN) de su rol de IAM.
     + Usar rol existente: elija uno de los roles existentes de la lista.
   + (Opcional) Etiquetas de imagen: elija **Añadir nueva etiqueta**. Puede añadir hasta 50 etiquetas. Las etiquetas se pueden buscar mediante la consola de SageMaker IA o la `Search` API de SageMaker IA.

1. En **Tipo de imagen**, selecciona RStudio imagen.

1. Elija **Enviar**.

La nueva imagen se muestra en la lista **Imágenes personalizadas** y se resalta brevemente. Una vez creada correctamente la imagen, puede elegir el nombre de la imagen para ver sus propiedades o elegir **Crear versión** para crear otra versión.

**Para crear otra versión de la imagen**

1. Elija **Crear versión** en la misma fila que la imagen.

1. Para **Fuente de imagen**, introduzca la ruta de registro de la imagen de Amazon ECR. La imagen no debe ser la misma que se usó en una versión anterior de la imagen de SageMaker IA.

Para usar la imagen personalizada RStudio, debes adjuntarla a tu dominio. Para obtener más información, consulte [Adjunta una SageMaker imagen personalizada](rstudio-byoi-attach.md).

## Crea una imagen a partir del AWS CLI
<a name="rstudio-byoi-create-cli"></a>

En esta sección se muestra cómo crear una SageMaker imagen de Amazon personalizada con AWS CLI.

Siga los siguientes pasos para crear una SageMaker imagen:
+ Cree una `Image`.
+ Cree una `ImageVersion`.
+ Cree un archivo de configuración. 
+ Cree una `AppImageConfig`.

**Para crear las entidades SageMaker de imagen**

1. Cree una SageMaker imagen. El ARN del rol debe tener asociada como mínimo la política `AmazonSageMakerFullAccessPolicy`.

   ```
   aws sagemaker create-image \
       --image-name rstudio-custom-image \
       --role-arn arn:aws:iam::<acct-id>:role/service-role/<execution-role>
   ```

   Respuesta:

   ```
   {
       "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/rstudio-custom-image"
   }
   ```

1. Cree una versión SageMaker de imagen a partir de la imagen. Pase el valor de etiqueta exclusivo que eligió al insertar la imagen en Amazon ECR.

   ```
   aws sagemaker create-image-version \
       --image-name rstudio-custom-image \
       --base-image <repository-uri>:<tag>
   ```

   Respuesta:

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-image/1"
   }
   ```

1. Compruebe que la versión de la imagen se ha creado correctamente.

   ```
   aws sagemaker describe-image-version \
       --image-name rstudio-custom-image \
       --version 1
   ```

   Respuesta:

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-custom-image/1",
       "ImageVersionStatus": "CREATED"
   }
   ```
**nota**  
Si la respuesta es `"ImageVersionStatus": "CREATED_FAILED"`, también incluye el motivo del error. Un problema de permisos es una causa común de error. También puedes consultar tus Amazon CloudWatch Logs. El nombre del grupo de registro es `/aws/sagemaker/studio`. El nombre del flujo de registro es `$domainID/$userProfileName/KernelGateway/$appName`.

1. Cree un archivo de configuración llamado `app-image-config-input.json`. La configuración de la imagen de la aplicación se utiliza para configurar la ejecución de una SageMaker imagen como una aplicación de Kernel Gateway.

   ```
   {
       "AppImageConfigName": "rstudio-custom-config"
   }
   ```

1. Cree la AppImageConfig misma con el archivo que creó en el paso anterior.

   ```
   aws sagemaker create-app-image-config \
       --cli-input-json file://app-image-config-input.json
   ```

   Respuesta:

   ```
   {
       "AppImageConfigArn": "arn:aws:sagemaker:us-east-2:acct-id:app-image-config/r-image-config"
   }
   ```

# Adjunta una SageMaker imagen personalizada
<a name="rstudio-byoi-attach"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

En esta guía se muestra cómo adjuntar una RStudio imagen personalizada a tu dominio de Amazon SageMaker AI mediante la consola SageMaker AI o el AWS Command Line Interface (AWS CLI). 

Para usar una SageMaker imagen personalizada, debes adjuntar una RStudio imagen personalizada a tu dominio. Al adjuntar una versión de imagen, aparece en el RStudio lanzador y está disponible en la lista desplegable **Seleccionar imagen**. Utiliza el menú desplegable para cambiar la imagen utilizada por. RStudio

Hay un límite en el número de versiones de la imagen que se pueden asociar. Una vez alcanzado el límite, debe eliminar una versión para asociar otra versión de la imagen.

**Topics**
+ [Asociación de una versión de la imagen a un dominio mediante la consola](#rstudio-byoi-attach-console)
+ [Adjunta una versión de imagen existente a tu dominio mediante la AWS CLI](#rstudio-byoi-attach-cli)

## Asociación de una versión de la imagen a un dominio mediante la consola
<a name="rstudio-byoi-attach-console"></a>

Puedes adjuntar una versión de SageMaker imagen personalizada a tu dominio mediante el panel de control de la consola de SageMaker IA. También puedes crear una SageMaker imagen personalizada y una versión de imagen y, a continuación, adjuntar esa versión a tu dominio.

**Para asociar una imagen existente**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio que desee.

1. Seleccione **Entorno**.

1. En **Imágenes de Custom SageMaker Studio Classic adjuntas al dominio**, selecciona **Adjuntar imagen**.

1. Para **Fuente de imagen**, elija **Imagen existente** o **Nueva imagen**.

   Si seleccionas **Imagen existente**, elige una imagen de la tienda de SageMaker imágenes de Amazon.

   Si selecciona **Nueva imagen**, proporcione la ruta de registro de Amazon ECR para la imagen de Docker. La ruta debe estar en la misma Región de AWS que el dominio. El repositorio de Amazon ECR debe estar en la misma cuenta que su dominio, o bien deben estar habilitados los permisos multicuenta para la SageMaker IA.

1. Elija en la lista una imagen existente.

1. Elija una versión de la imagen en la lista.

1. Elija **Siguiente**.

1. Introduzca valores para **Nombre de la imagen**, **Nombre para mostrar de la imagen** y **descripción**.

1. Elija el rol de IAM. Para obtener más información, consulte [Crea una RStudio imagen personalizada](rstudio-byoi-create.md).

1. (Opcional) Agregue etiquetas para la imagen.

1. (Opcional) Elija **Añadir nueva etiqueta** y, a continuación, agregue una etiqueta de configuración.

1. **En **Tipo de imagen, selecciona Imagen**. RStudio**

1. Elija **Enviar**.

Espere a que la versión de la imagen se asocie al dominio. Cuando se asocie la versión, aparecerá en la lista **Imágenes personalizadas** y se resaltará brevemente.

## Adjunta una versión de imagen existente a tu dominio mediante la AWS CLI
<a name="rstudio-byoi-attach-cli"></a>

Hay dos métodos para asociar la versión de la imagen al dominio mediante la AWS CLI. En el primer método, creará un nuevo dominio con la versión asociada. Este método es más sencillo, pero debe especificar la información y el rol de ejecución de Amazon Virtual Private Cloud (Amazon VPC) necesarios para crear el dominio.

Si ya se ha incorporado al dominio, puede emplear el segundo método para asociar la versión de la imagen al dominio actual. En este caso, no es necesario especificar la información y el rol de ejecución de Amazon VPC. Después de adjuntar la versión, elimina todas las aplicaciones de tu dominio y vuelve a RStudio iniciarlas.

### Adjunta la SageMaker imagen a un dominio nuevo
<a name="rstudio-byoi-cli-attach-new-domain"></a>

Para usar este método, debe especificar una función de ejecución que tenga la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política adjunta.

Siga los siguientes pasos para crear el dominio y adjuntar la imagen de SageMaker IA personalizada:
+ Obtenga su ID de VPC y su subred predeterminados. IDs
+ Cree el archivo de configuración para el dominio, que especifica la imagen.
+ Creación del dominio con el archivo de configuración.

**Para añadir la SageMaker imagen personalizada a tu dominio**

1. Obtenga su ID de VPC predeterminado.

   ```
   aws ec2 describe-vpcs \
       --filters Name=isDefault,Values=true \
       --query "Vpcs[0].VpcId" --output text
   ```

   Respuesta:

   ```
   vpc-xxxxxxxx
   ```

1. Obtenga su subred predeterminada IDs con el ID de VPC del paso anterior.

   ```
   aws ec2 describe-subnets \
       --filters Name=vpc-id,Values=<vpc-id> \
       --query "Subnets[*].SubnetId" --output json
   ```

   Respuesta:

   ```
   [
       "subnet-b55171dd",
       "subnet-8a5f99c6",
       "subnet-e88d1392"
   ]
   ```

1. Cree un archivo de configuración llamado `create-domain-input.json`. Inserte el ID de VPC, la subred y IDs uno `ImageName` `AppImageConfigName` de los pasos anteriores. Dado que no se especifica `ImageVersionNumber`, se utiliza la versión más reciente de la imagen, que es la única versión en este caso. El rol de ejecución debe cumplir los requisitos de [Cómo completar los requisitos previos de](rstudio-byoi-prerequisites.md).

   ```
   {
     "DomainName": "domain-with-custom-r-image",
     "VpcId": "<vpc-id>",
     "SubnetIds": [
       "<subnet-ids>"
     ],
     "DomainSettings": {
       "RStudioServerProDomainSettings": {
         "DomainExecutionRoleArn": "<execution-role>"
       }
     },
     "DefaultUserSettings": {
       "ExecutionRole": "<execution-role>",
       "RSessionAppSettings": {
         "CustomImages": [
           {
            "AppImageConfigName": "rstudio-custom-config",
            "ImageName": "rstudio-custom-image"
           }
         ]
        }
     },
     "AuthMode": "IAM"
   }
   ```

1. Cree el dominio con la imagen personalizada SageMaker adjunta.

   ```
   aws sagemaker create-domain \
       --cli-input-json file://create-domain-input.json
   ```

   Respuesta:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id",
       "Url": "https://domain-id.studio.region.sagemaker.aws/..."
   }
   ```

### Adjunta la SageMaker imagen a un dominio existente
<a name="rstudio-byoi-cli-attach-current-domain"></a>

En este método se da por sentado que ya se ha incorporado al dominio. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

**nota**  
Debe eliminar todas las aplicaciones del dominio antes de actualizarlo con la nueva versión de la imagen. Para obtener información acerca de cómo eliminar estas aplicaciones, consulte[Eliminar un dominio de Amazon SageMaker AI](gs-studio-delete-domain.md).

Sigue los siguientes pasos para añadir la SageMaker imagen a tu dominio actual.
+ Consíguelo `DomainID` desde la consola de SageMaker IA.
+ Utilice el `DomainID` para obtener el `DefaultUserSettings` para el dominio.
+ Agregue el `ImageName` y la `AppImageConfig` como una `CustomImage` a la `DefaultUserSettings`.
+ Actualice el dominio para incluir la imagen personalizada.

**Para añadir la SageMaker imagen personalizada a tu dominio**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio que desee.

1. Seleccione **Configuración del dominio**.

1. En **Configuración general**, busque el **ID del dominio**. El ID tendrá el siguiente formato: `d-xxxxxxxxxxxx`.

1. Utilice el ID de dominio para obtener la descripción del dominio.

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   Respuesta:

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. Guardar la sección `DefaultUserSettings` de la respuesta en un archivo denominado `update-domain-input.json`.

1. Inserte el `ImageName` y la `AppImageConfigName` de los pasos anteriores como imagen personalizada. Dado que no se especifica `ImageVersionNumber`, se utiliza la versión más reciente de la imagen, que es la única versión en este caso.

   ```
   {
       "DefaultUserSettings": {
           "RSessionAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "rstudio-custom-image",
                    "AppImageConfigName": "rstudio-custom-config"
                 }
              ]
           }
       }
   }
   ```

1. Utilice el ID de dominio y el archivo de configuración de usuario predeterminado para actualizar el dominio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://update-domain-input.json
   ```

   Respuesta:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id"
   }
   ```

1. Elimine la aplicación `RStudioServerPro`. Debe reiniciar la aplicación de `RStudioServerPro` dominio compartido para que la interfaz de usuario del RStudio Launcher recoja los cambios más recientes.

   ```
   aws sagemaker delete-app \
       --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \
       --app-type RStudioServerPro --app-name default
   ```

1. Cree una nueva aplicación `RStudioServerPro`. Debe crear esta aplicación mediante AWS CLI.

   ```
   aws sagemaker create-app \
       --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \
       --app-type RStudioServerPro --app-name default
   ```

# Lanza una imagen personalizada en SageMaker RStudio
<a name="rstudio-byoi-launch"></a>

Puedes usar tu imagen personalizada al lanzar una RStudio aplicación desde la consola. Tras crear la SageMaker imagen personalizada y adjuntarla a tu dominio, la imagen aparecerá en el cuadro de diálogo del selector de imágenes del RStudio lanzador. Para iniciar una nueva RStudio aplicación, sigue los pasos que se indican [RSessions Lánzalo desde el RStudio lanzador](rstudio-launcher.md) y selecciona tu imagen personalizada, tal y como se muestra en la siguiente imagen.

![\[Captura de pantalla del RStudio lanzador con un menú desplegable de imágenes.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/rstudio-launcher-custom.png)


# Limpiar recursos de imagen
<a name="rstudio-byoi-sdk-cleanup"></a>

Esta guía muestra cómo limpiar los recursos de RStudio imagen que creó en las secciones anteriores. Para eliminar una imagen, complete los siguientes pasos utilizando la consola SageMaker AI o la AWS CLI, como se muestra en esta guía.
+ Separa la imagen y las versiones de las imágenes de tu dominio de Amazon SageMaker AI.
+ Elimine la imagen, la versión de la imagen y la configuración de imágenes de la aplicación.

Cuando complete estos pasos puede eliminar la imagen de contenedor y el repositorio de Amazon ECR. Para obtener más información sobre cómo eliminar la imagen de contenedor y el repositorio, consulte [Eliminar un repositorio](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-delete.html).

## Limpie los recursos de la consola de SageMaker IA
<a name="rstudio-byoi-sdk-cleanup-console"></a>

Al desasociar una imagen de un dominio, se desasocian todas las versiones de la imagen. Cuando se desasocia una imagen, todos los usuarios del dominio pierden el acceso a las versiones de imagen.

**Para eliminar una imagen**

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio que desee.

1. Seleccione **Entorno**.

1. En **Imágenes personalizadas asociadas al dominio**, elija la imagen y, a continuación, elija **Desasociar**.

1. (Opcional) Para eliminar la imagen y todas las versiones de SageMaker AI, selecciona **Eliminar también las imágenes seleccionadas...** . Esto no elimina las imágenes asociadas de Amazon ECR.

1. Elija **Desasociar**.

## Limpie los recursos del AWS CLI
<a name="rstudio-byoi-sdk-cleanup-cli"></a>

**Cómo limpiar los recursos**

1. Desasocie la imagen y las versiones de imagen del dominio pasando una lista de imágenes personalizadas vacía al dominio. Abra el archivo `update-domain-input.json` que creó en [Adjunta la SageMaker imagen a tu dominio actual](studio-byoi-attach.md#studio-byoi-sdk-attach-current-domain).

1. Elimine las imágenes personalizadas de `RSessionAppSettings` y, a continuación, guarde el archivo. No modifique las imágenes personalizadas de `KernelGatewayAppSettings`.

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
            "CustomImages": [
            ],
            ...
         },
         "RSessionAppSettings": { 
           "CustomImages": [ 
           ],
           "DefaultResourceSpec": { 
           }
           ...
         }
       }
   }
   ```

1. Utilice el ID de dominio y el archivo de configuración de usuario predeterminado para actualizar el dominio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://update-domain-input.json
   ```

   Respuesta:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

1. Elimine la configuración de imágenes de la aplicación.

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name rstudio-image-config
   ```

1. Elimine la SageMaker imagen, lo que también eliminará todas las versiones de la imagen. Las imágenes de contenedor de Amazon ECR representadas por las versiones de imagen no se eliminan.

   ```
   aws sagemaker delete-image \
       --image-name rstudio-image
   ```

# Crea un usuario para usarlo RStudio
<a name="rstudio-create-user"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Una vez que se ejecute tu dominio Amazon SageMaker AI RStudio habilitado, puedes añadir perfiles de usuario (UserProfiles) al dominio. En los temas siguientes se muestra cómo crear perfiles de usuario que estén autorizados a usar RStudio, así como cómo actualizar un perfil de usuario existente. Para obtener información sobre cómo eliminar una RStudio aplicación o un dominio, sigue los pasos de [Eliminar un dominio de Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-delete-domain.html). UserProfile 

**nota**  
El límite del número total de dominios UserProfiles de Amazon SageMaker AI es de 60.

 Existen dos tipos de usuarios: 
+ No autorizado: este usuario no puede acceder a la RStudio aplicación.
+ Autorizado: este usuario puede acceder a la RStudio aplicación y utilizar uno de los puestos de RStudio licencia. De forma predeterminada, un usuario nuevo es `Authorized` si el dominio está habilitado para RStudio.

Solo se puede cambiar el estado de autorización de un usuario de `Unauthorized` a`Authorized`. Si un usuario está autorizado, se le puede conceder uno de los siguientes niveles de acceso RStudio. 
+  RStudio Usuario: se trata de un RStudio usuario estándar al que puede acceder RStudio. 
+  RStudio Administrador: el administrador de tu dominio de Amazon SageMaker AI tiene la capacidad de crear usuarios, añadir usuarios existentes y actualizar los permisos de los usuarios existentes. Los administradores también pueden acceder al panel RStudio administrativo. Sin embargo, este administrador no puede actualizar los parámetros gestionados por Amazon SageMaker AI.

## Métodos para crear un usuario
<a name="rstudio-create-user-methods"></a>

En los siguientes temas se muestra cómo crear un usuario en tu dominio de Amazon SageMaker AI RStudio habilitado.

 **Cree una consola de usuario** 

Para crear un usuario en su dominio Amazon SageMaker AI RStudio habilitado desde la consola, complete los pasos que se indican a continuación. [Adición de perfiles de usuario](domain-user-profile-add.md)

 **Crear CLI de usuario** 

 El siguiente comando muestra cómo añadir usuarios a un dominio de Amazon SageMaker AI con autenticación de IAM. Un usuario puede pertenecer al grupo de usuarios `R_STUDIO_USER` o al grupo de `R_STUDIO_ADMIN` usuarios. 

```
aws sagemaker create-user-profile --region <REGION> \
    --domain-id <DOMAIN-ID> \
    --user-profile-name <USER_PROFILE_NAME-ID> \
    --user-settings RStudioServerProAppSettings={UserGroup=<USER-GROUP>}
```

El siguiente comando muestra cómo añadir usuarios a un dominio de Amazon SageMaker AI con autenticación mediante IAM Identity Center. Un usuario puede pertenecer al grupo de usuarios `R_STUDIO_USER` o al grupo de `R_STUDIO_ADMIN` usuarios. 

```
aws sagemaker create-user-profile --region <REGION> \
    --domain-id <DOMAIN-ID> \
    --user-profile-name <USER_PROFILE_NAME-ID> \
    --user-settings RStudioServerProAppSettings={UserGroup=<USER-GROUP>} \
    --single-sign-on-user-identifier UserName \
    --single-sign-on-user-value <USER-NAME>
```

# Inicie sesión RStudio como otro usuario
<a name="rstudio-login-another"></a>

En el siguiente tema se muestra cómo iniciar sesión RStudio en Amazon SageMaker AI como otro usuario.

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

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

1. En **Configuraciones de administración**, elija **Dominios**. 

1. Seleccione el dominio que contiene el perfil de usuario.

1.  Seleccione un nombre de usuario de la lista de usuarios. Esto abre una nueva página con detalles sobre el perfil de usuario y las aplicaciones que se están ejecutando. 

1.  Selecciona **Iniciar**. 

1.  En el menú desplegable, selecciona **RStudio**lanzar una RStudio instancia. 

# Finalice las sesiones de otro usuario
<a name="rstudio-terminate-another"></a>

En el siguiente tema se muestra cómo finalizar las sesiones de otro usuario RStudio en Amazon SageMaker AI.

1.  De la lista de aplicaciones en ejecución, identifique aquella que desee eliminar. 

1.  Haga clic en el botón **Eliminar aplicación** correspondiente a la aplicación que vaya a eliminar. 

# Utilice el panel RStudio administrativo
<a name="rstudio-admin"></a>

 En este tema se muestra cómo acceder al panel RStudio administrativo y usarlo. Con el panel RStudio administrativo, los administradores pueden gestionar los usuarios y RSessions ver información sobre el uso de las instancias RStudio del servidor y Amazon CloudWatch Logs.

 

## Inicie el panel RStudio administrativo
<a name="rstudio-admin-launch"></a>

La `R_STUDIO_ADMIN` autorización permite al usuario acceder al panel RStudio administrativo. Un `R_STUDIO_ADMIN` usuario puede acceder al panel RStudio administrativo `workspaces` sustituyéndolo `admin` manualmente por su RStudio URL. A continuación, se muestra cómo modificar la URL para acceder al panel RStudio administrativo.

Por ejemplo, la siguiente RStudio URL: 

```
https://<DOMAIN-ID>.studio.us-east-2.sagemaker.aws/rstudio/default/s/<SESSION-ID>/workspaces
```

Se puede convertir en: 

```
https://<DOMAIN-ID>.studio.us-east-2.sagemaker.aws/rstudio/default/s/<SESSION-ID>/admin
```

## Pestaña Panel
<a name="rstudio-admin-dashboard"></a>

Esta pestaña ofrece una descripción general del uso de las instancias de RStudio servidor, así como información sobre la cantidad de instancias activas RSessions.

## Pestaña Sesiones
<a name="rstudio-admin-sessions"></a>

Esta pestaña proporciona información sobre el activo RSessions, como el usuario que lo lanzó RSessions, el tiempo que RSessions ha estado ejecutándose y el uso de sus recursos.

## Pestaña Usuarios
<a name="rstudio-admin-users"></a>

Esta pestaña proporciona información sobre los usuarios RStudio autorizados del dominio, como la hora en que RSession se lanzó el último y el uso de los recursos.

## Pestaña Estadísticas
<a name="rstudio-admin-stats"></a>

Esta pestaña proporciona información sobre la utilización de la instancia de RStudio servidor.

## Pestaña Registros
<a name="rstudio-admin-logs"></a>

En esta pestaña se muestran CloudWatch los registros de Amazon para la instancia de RStudio servidor. Para obtener más información sobre el registro de eventos con Amazon CloudWatch Logs, consulta [¿Qué es Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) .

# Apagar RStudio
<a name="rstudio-shutdown"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Para cerrar y reiniciar su Posit Workbench y la RStudio ServerPro aplicación asociada, primero debe cerrar todas las aplicaciones existentes. RSessions Puede cerrar las aplicaciones RSession Gateway desde dentro. RStudio A continuación, puede cerrar la RStudio ServerPro aplicación mediante el AWS CLI. Después de cerrar la RStudio ServerPro aplicación, debes volver a abrirla RStudio a través de la consola de SageMaker IA.

Se perderá la información del cuaderno que no se haya guardado. Los datos de usuario del volumen de Amazon EFS no se ven afectados.

**nota**  
Si utilizas una imagen personalizada con RStudio, asegúrate de que tu imagen de docker utilice una RStudio versión que sea compatible con la versión de Posit Workbench que utiliza SageMaker AI después de reiniciar la aplicación. RStudio ServerPro 

En los siguientes temas se muestra cómo cerrar RSession Gateway y las RStudio ServerPro aplicaciones y reiniciarlas.

## Suspenda su RSessions
<a name="rstudio-suspend"></a>

Complete el siguiente procedimiento para suspender todos sus RSessions.

1. En el RStudio lanzador, identifique lo RSession que desea suspender. 

1. Seleccione **Suspender** la sesión. 

1. Repite esto para todos RSessions.

## Borra tu RSessions
<a name="rstudio-delete"></a>

Complete el siguiente procedimiento para cerrar todos sus RSessions.

1. Desde el RStudio lanzador, identifica lo RSession que deseas eliminar. 

1. Seleccione **Salir** de la sesión. Se abrirá una nueva ventana **Salir de la sesión**. 

1. En la ventana **Salir de la sesión**, seleccione **Forzar salida** para finalizar todos los procesos secundarios de la sesión.

1. Seleccione **Salir de la sesión** para confirmar la eliminación de la sesión.

1. Repite esto para todos RSessions.

## Elimina tu RStudio ServerPro aplicación
<a name="rstudio-delete-restart"></a>

Ejecuta los siguientes comandos desde el AWS CLI para eliminar y reiniciar RStudio ServerPro la aplicación.

1. Elimina la RStudio ServerPro aplicación con tu ID de dominio actual. 

   ```
   aws sagemaker delete-app \
       --domain-id <domainId> \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

1. Vuelva a crear la RStudio ServerPro aplicación. 

   ```
   aws sagemaker create-app \
       --domain-id <domainId> \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

# Facturación y costo
<a name="rstudio-billing"></a>

 Para realizar un seguimiento de los costes asociados a su RStudio entorno, puede utilizar el Administración de facturación y costos de AWS servicio.Administración de facturación y costos de AWS proporciona herramientas útiles para ayudarlo a recopilar información relacionada con sus costos y su uso, analizar sus factores de costo y las tendencias de uso, y tomar medidas para presupuestar sus gastos. Para obtener más información, consulte la documentación sobre [What is AWS Billing and Cost Management?](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html) A continuación, se describen los componentes necesarios para ejecutarse RStudio en Amazon SageMaker AI y cómo cada componente influye en la facturación de la RStudio instancia. 
+  RStudio Licencia: debe adquirir una RStudio licencia. El uso de la RStudio licencia con Amazon SageMaker AI no conlleva ningún coste adicional. Para obtener más información sobre su RStudio licencia, consulte[Obtenga una RStudio licencia](rstudio-license.md).
+  RSession - Se trata de sesiones RStudio de trabajo iniciadas por los usuarios finales. Se le cobrará mientras RSession esté en funcionamiento.
+  RStudio Servidor: un servidor multiusuario administra todos los RSessions. Puede elegir el tipo de instancia en el que ejecutar el RStudio servidor y pagar los costes relacionados. La instancia predeterminada, "sistema", es gratuita, pero puede pagar por niveles superiores. Para obtener más información sobre los tipos de instancias disponibles para su RStudio servidor, consulte[RStudioServerPro tipo de instancia](rstudio-select-instance.md). 

 **Seguimiento de la facturación en el nivel de usuario** 

 Para realizar un seguimiento de la facturación en el nivel de usuario mediante etiquetas de asignación de costos, consulte [Uso de etiquetas de asignación de costos](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).

# Diagnosticar problemas y obtener asistencia
<a name="rstudio-troubleshooting"></a>

 En las siguientes secciones se describe cómo diagnosticar problemas con RStudio Amazon SageMaker AI. Para obtener asistencia RStudio sobre Amazon SageMaker AI, ponte en contacto con el servicio de asistencia de Amazon SageMaker AI. Si necesitas ayuda para comprar una RStudio licencia o modificar el número de licencias, ponte en contacto con [sales@rstudio.com](mailto:sales@rstudio.com).

## Actualizar la versión
<a name="rstudio-troubleshooting-upgrade"></a>

Si recibes una advertencia de que hay una discordancia entre las versiones de tu RStudio ServerPro aplicación RSession y la tuya, debes actualizar la versión de la RStudio ServerPro aplicación. Para obtener más información, consulte [RStudio Control de versiones](rstudio-version.md).

## Ver métricas y registros
<a name="rstudio-troubleshooting-view"></a>

Puede supervisar el rendimiento de su flujo de trabajo mientras lo utiliza RStudio en Amazon SageMaker AI. Consulta los registros de datos y la información sobre las métricas en el panel RStudio administrativo o en Amazon CloudWatch. 

### Consulta tus RStudio registros desde el panel RStudio administrativo
<a name="rstudio-troubleshooting-logs"></a>

 Puede ver las métricas y los registros directamente desde el panel RStudio administrativo. 

1.  Inicia sesión en tu **dominio de Amazon SageMaker AI**. 

1.  Navegue hasta el panel de RStudio administración siguiendo los pasos que se indican[Utilice el panel RStudio administrativo](rstudio-admin.md). 

1.  Seleccione la pestaña **Registros**. 

### Ver tus RStudio registros de Amazon CloudWatch Logs
<a name="rstudio-troubleshooting-logs-cw"></a>

 Amazon CloudWatch monitorea tus AWS recursos y las aplicaciones en las que AWS ejecutas en tiempo real. Puedes usar Amazon CloudWatch para recopilar y realizar un seguimiento de las métricas, que son variables que puedes medir para tus recursos y aplicaciones. Para asegurarte de que tus RStudio aplicaciones tienen permisos para Amazon CloudWatch, debes incluir los permisos descritos en[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md). No necesitas realizar ninguna configuración para recopilar Amazon CloudWatch Logs. 

 Los siguientes pasos muestran cómo ver Amazon CloudWatch Logs para su RSession. 

Estos registros se encuentran en el flujo de `/aws/sagemaker/studio` registros de la AWS CloudWatch consola.

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Seleccione `Logs` desde el lado izquierdo. En el menú desplegable, seleccione `Log groups`.

1. En la pantalla `Log groups`, busque `aws/sagemaker/studio`. Seleccione el grupo de registro.

1. En la pantalla `aws/sagemaker/studio` `Log group`, navegue hasta la pestaña `Log streams`.

1. Para buscar los registros del dominio, busque `Log streams` mediante el siguiente formato:

   ```
   <DomainId>/domain-shared/rstudioserverpro/default
   ```

# RStudio en la guía del usuario de Amazon SageMaker AI
<a name="rstudio-use"></a>

Con el RStudio soporte de Amazon SageMaker AI, puede implementar sus flujos de trabajo de producción y aprovechar las funciones de SageMaker IA. Los siguientes temas muestran cómo iniciar una RStudio sesión y completar los flujos de trabajo clave. Para obtener información RStudio sobre la gestión con SageMaker IA, consulte[RStudio sobre la gestión de Amazon SageMaker AI](rstudio-manage.md). 

Para obtener información sobre los pasos de incorporación para crear un dominio de Amazon SageMaker AI con la RStudio opción activada, consulte[Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).  

Para obtener información sobre las AWS regiones RStudio en las que se admite la SageMaker IA, consulte[Regiones y cuotas admitidas](regions-quotas.md).  

**Topics**
+ [Colabora en RStudio](#rstudio-collaborate)
+ [Imagen de Base R](#rstudio-base-image)
+ [RSession colocación de aplicaciones](#rstudio-colocation)
+ [RSessions Lánzalo desde el RStudio lanzador](rstudio-launcher.md)
+ [Suspende tu RSessions](rstudio-launcher-suspend.md)
+ [Elimina tu RSessions](rstudio-launcher-delete.md)
+ [RStudio Connect](rstudio-connect.md)
+ [Integración de funciones de Amazon SageMaker AI con RStudio Amazon SageMaker AI](rstudio-sm-features.md)

## Colabora en RStudio
<a name="rstudio-collaborate"></a>

 Para compartir tu RStudio proyecto, puedes conectarte RStudio a tu repositorio de Git. Para obtener información sobre cómo configurarlo, consulte [Control de versiones con Git y SVN](https://support.rstudio.com/hc/en-us/articles/200532077-Version-Control-with-Git-and-SVN). 

 Nota: Actualmente, no se admite el uso compartido de proyectos y la colaboración en tiempo real cuando se utilizan RStudio en Amazon SageMaker AI.  

## Imagen de Base R
<a name="rstudio-base-image"></a>

 Al lanzar la RStudio instancia, la imagen Base R sirve de base para la instancia. Esta imagen amplía la imagen de [r-session-complete](https://hub.docker.com/r/rstudio/r-session-complete)Docker.  

 Esta imagen de Base R incluye lo siguiente: 
+  R v4.0 o superior
+  Paquetes `awscli`, `sagemaker` y `boto3` de Python 
+  Paquete [reticulado](https://rstudio.github.io/reticulate/) para integración de R SDK 

## RSession colocación de aplicaciones
<a name="rstudio-colocation"></a>

Los usuarios pueden crear varias RSession aplicaciones en la misma instancia. Cada tipo de instancia admite hasta cuatro RSession aplicaciones colocadas en el mismo lugar. Esto se aplica a cada usuario de forma independiente. Por ejemplo, si dos usuarios crean aplicaciones, la SageMaker IA asigna distintas instancias subyacentes a cada usuario. Cada una de estas instancias admitiría 4 RSession aplicaciones.

Los clientes solo pagan por el tipo de instancia utilizado, independientemente del número de aplicaciones Rsession que se ejecuten en la instancia. Si un usuario crea una RSession con un tipo de instancia asociado diferente, se crea una nueva instancia subyacente.

# RSessions Lánzalo desde el RStudio lanzador
<a name="rstudio-launcher"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

 En las siguientes secciones se muestra cómo utilizar el RStudio lanzador para iniciar RSessions. También incluyen información sobre cómo abrir el RStudio Launcher cuando se usa RStudio en Amazon SageMaker AI.

## Abre el lanzador RStudio
<a name="rstudio-launcher-open"></a>

Abra el RStudio lanzador mediante el siguiente conjunto de procedimientos que se adapten a su entorno.

### Abre RStudio Launcher desde la consola Amazon SageMaker AI
<a name="rstudio-launcher-console"></a>

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

1.  En el panel de navegación de la izquierda, selecciona **RStudio**.

1.  En **Introducción**, seleccione el dominio y perfil de usuario que desea iniciar.

1.  Elija **Iniciar RStudio**.

### Abre RStudio Launcher desde Amazon Studio SageMaker
<a name="rstudio-launcher-studio"></a>

1. Vaya a Studio siguiendo los pasos que se indican en [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

1. En **Aplicaciones**, selecciona **RStudio**.

1. En la página de RStudio inicio, selecciona **Iniciar aplicación**.

### Abre RStudio Launcher desde AWS CLI
<a name="rstudio-launcher-cli"></a>

El procedimiento para abrir el RStudio lanzador AWS CLI varía según el método utilizado para gestionar los usuarios. 

 **Centro de identidades de IAM** 

1.  Usa el portal de AWS acceso para abrir tu dominio de Amazon SageMaker AI. 

1.  Modifique la ruta URL a "/rstudio/default" de la siguiente manera. 

   ```
   #Studio URL
   https://<domain-id>.studio.<region>.sagemaker.aws/jupyter/default/lab
   
   #modified URL
   https://<domain-id>.studio.<region>.sagemaker.aws/rstudio/default
   ```

 **IAM** 

 Para abrir el RStudio lanzador desde el AWS CLI modo IAM, complete el siguiente procedimiento. 

1.  Cree una URL prefirmada con el siguiente comando. 

   ```
   aws sagemaker create-presigned-domain-url --region <REGION> \
       --domain-id <DOMAIN-ID> \
       --user-profile-name <USER-PROFILE-NAME>
   ```

1.  Añada *RStudioServerPro&redirect=* a la URL generada. 

1.  Vaya a la URL actualizada. 

## Lanzamiento RSessions
<a name="rstudio-launcher-launch"></a>

 Una vez que hayas lanzado el RStudio lanzador, puedes crear uno nuevo RSession. 

1.  Seleccione **Nueva sesión**. 

1.  Introduzca un **Nombre de sesión**. 

1.  Selecciona un tipo de instancia en el que RSession se ejecute. El valor predeterminado es `ml.t3.medium`.

1.  Selecciona una imagen que RSession utilices como núcleo. 

1.  Haga clic en Iniciar sesión. 

1.  Después de crear la sesión, puede iniciarla seleccionando su nombre.  
**nota**  
Si recibes una advertencia de que hay una discordancia entre tu versión RSession y la de tus RStudio ServerPro aplicaciones, debes actualizar la versión de tu RStudio ServerPro aplicación. Para obtener más información, consulte [RStudio Control de versiones](rstudio-version.md).

# Suspende tu RSessions
<a name="rstudio-launcher-suspend"></a>

El siguiente procedimiento muestra cómo suspender un elemento RSession desde el RStudio Launcher cuando se utiliza RStudio en Amazon SageMaker AI. Para obtener información sobre cómo acceder al RStudio lanzador, consulte. [RSessions Lánzalo desde el RStudio lanzador](rstudio-launcher.md)

1. En el RStudio lanzador, identifique lo RSession que desea suspender. 

1. Seleccione **Suspender** la sesión. 

# Elimina tu RSessions
<a name="rstudio-launcher-delete"></a>

El siguiente procedimiento muestra cómo eliminar un elemento RSession del RStudio Launcher cuando se utiliza RStudio en Amazon SageMaker AI. Para obtener información sobre cómo acceder al RStudio lanzador, consulte. [RSessions Lánzalo desde el RStudio lanzador](rstudio-launcher.md)

1. En el RStudio lanzador, identifique lo RSession que desee eliminar. 

1. Seleccione **Salir** de la sesión. Se abrirá una nueva ventana **Salir de la sesión**. 

1. En la ventana **Salir de la sesión**, seleccione **Forzar salida** para finalizar todos los procesos secundarios de la sesión.

1. Seleccione **Salir de la sesión** para confirmar la eliminación de la sesión.

# RStudio Connect
<a name="rstudio-connect"></a>

 RStudio Connect permite a los científicos de datos publicar información, paneles y aplicaciones RStudio web desde Amazon SageMaker AI. Para obtener más información, consulte [Host RStudio Connect y Package Manager para el desarrollo de ML RStudio en Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/host-rstudio-connect-and-package-manager-for-ml-development-in-rstudio-on-amazon-sagemaker/).

 Para obtener más información sobre RStudio Connect, consulte la [Guía del usuario de RStudio Connect](https://docs.rstudio.com/connect/user/). 

# Integración de funciones de Amazon SageMaker AI con RStudio Amazon SageMaker AI
<a name="rstudio-sm-features"></a>

 Una de las ventajas de usar RStudio Amazon SageMaker AI es la integración de las funciones de Amazon SageMaker AI. Esto incluye la integración con Amazon SageMaker Studio Classic y Reticulate. A continuación se proporcionan información sobre estas integraciones y ejemplos de su uso.

 **Usa Amazon SageMaker Studio Classic y RStudio en Amazon SageMaker AI** 

 Amazon SageMaker Studio Classic y RStudio las instancias comparten el mismo sistema de archivos de Amazon EFS. Esto significa que se puede acceder a los archivos que importe y cree con Studio Classic utilizando RStudio y viceversa. Esto le permite trabajar en los mismos archivos con Studio Classic y RStudio sin tener que mover los archivos entre ambos. Para obtener más información sobre este flujo de trabajo, consulte el blog [Anunciando Fully Managed RStudio on Amazon SageMaker AI for Data Scientists](https://aws.amazon.com/blogs/aws/announcing-fully-managed-rstudio-on-amazon-sagemaker-for-data-scientists).

 **Usa Amazon SageMaker SDK con reticulate** 

El paquete [reticulado](https://rstudio.github.io/reticulate) se utiliza como una interfaz R para el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) para realizar llamadas de API a Amazon. SageMaker El paquete reticulado traduce entre objetos R y Python, y Amazon SageMaker AI proporciona un entorno de ciencia de datos sin servidor para entrenar e implementar modelos de Machine Learning (ML) a escala. Para obtener más información sobre el paquete reticulado, consulte [Interfaz R con Python](https://rstudio.github.io/reticulate/).

Para ver un blog que describe cómo usar el paquete reticulado con Amazon SageMaker AI, consulte Uso de [R con Amazon SageMaker ](https://aws.amazon.com/blogs/machine-learning/using-r-with-amazon-sagemaker/) AI.

En los ejemplos siguientes se muestra cómo utilizar reticulado para casos de uso específicos.
+ Para ver un cuaderno que describe cómo usar la reticulación para realizar transformaciones por lotes y hacer predicciones, consulte [Transformación por lotes con R con Amazon SageMaker AI.](https://sagemaker-examples.readthedocs.io/en/latest/r_examples/r_batch_transform/r_xgboost_batch_transform.html)
+ Para ver un cuaderno que describe cómo usar la reticulación para realizar ajustes de hiperparámetros y generar predicciones, consulte [Optimización de hiperparámetros mediante R con Amazon AI. SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/r_examples/r_xgboost_hpo_batch_transform/r_xgboost_hpo_batch_transform.html)

# Editor de código en Amazon SageMaker Studio
<a name="code-editor"></a>

El editor de código, basado en [Code-OSS, Visual Studio Code: Open Source](https://github.com/microsoft/vscode#visual-studio-code---open-source-code---oss), le ayuda a escribir, probar, depurar y ejecutar su código de análisis y machine learning. El editor de código se extiende y se integra completamente con Amazon SageMaker Studio. También es compatible con las extensiones del entorno de desarrollo integrado (IDE) disponibles en [Open VSX Registry](https://open-vsx.org/). La siguiente página proporciona información sobre el editor de código y los detalles clave para su uso.

El editor de código tiene preinstalada la extensión [AWS Toolkit for VS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) Code, que permite las conexiones Servicios de AWS a un generador de código de uso general impulsado por el aprendizaje automático que proporciona recomendaciones de código en tiempo real. [Amazon CodeWhisperer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codewhisperer.html) Para obtener más información acerca de las extensiones, consulte [Conexiones y extensiones del editor de código](code-editor-use-connections-and-extensions.md).

**importante**  
A partir del 30 de noviembre de 2023, la experiencia anterior de Amazon SageMaker Studio pasa a denominarse Amazon SageMaker Studio Classic. La siguiente sección está dedicada expresamente al uso de la experiencia de Studio actualizada. Para obtener más información sobre el uso de la aplicación de Studio Classic, consulte [Amazon SageMaker Studio Clásico](studio.md).

Para iniciar el editor de código, cree un espacio privado del editor de código. El espacio del editor de código utiliza una sola instancia de Amazon Elastic Compute Cloud (Amazon EC2) para la computación y un solo volumen de Amazon Elastic Block Store (Amazon EBS) para el almacenamiento. Todo lo que hay en el espacio, como el código, el perfil de Git y las variables de entorno, se almacena en el mismo volumen de Amazon EBS. El volumen tiene 3000 IOPS y un rendimiento de 125. MBps El administrador ha configurado los ajustes de almacenamiento predeterminados de Amazon EBS para su espacio.

El tamaño de almacenamiento predeterminado es de 5 GB, pero el administrador puede aumentar la cantidad de espacio que obtiene. Para obtener más información, consulte [Cambio del tamaño de almacenamiento predeterminado](code-editor-admin-storage-size.md).

El directorio de trabajo de los usuarios dentro del volumen de almacenamiento es `/home/sagemaker-user`. Si especifica su propia AWS KMS clave para cifrar el volumen, todo el contenido del directorio de trabajo se cifra con la clave gestionada por el cliente. Si no especifica ninguna AWS KMS clave, los datos que contiene `/home/sagemaker-user` se cifran con una clave AWS gestionada. Independientemente de si se especifica una AWS KMS clave, todos los datos que se encuentran fuera del directorio de trabajo se cifran con una clave AWS gestionada.

Puede aumentar o reducir la escala de la computación cambiando el tipo de instancia de Amazon EC2 que ejecuta la aplicación de editor de código. Antes de cambiar el tipo de instancia asociado, primero debe detener el espacio del editor de código. Para obtener más información, consulte [Instancias e imágenes de la aplicación del editor de código](code-editor-use-instances.md).

El administrador puede proporcionarle una configuración del ciclo de vida para personalizar el entorno. Puede especificar la configuración del ciclo de vida al crear el espacio. Para obtener más información, consulte [Configuraciones del ciclo de vida del editor de código](code-editor-use-lifecycle-configurations.md).

También puede traer su propio sistema de almacenamiento de archivos si tiene un volumen de Amazon EFS.

![\[La página de bienvenida de la interfaz de usuario de la aplicación del editor de código.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/code-editor/code-editor-home.png)


**Topics**
+ [Uso del editor de código](code-editor-use.md)
+ [Guía del administrador del editor de código](code-editor-admin.md)

# Uso del editor de código
<a name="code-editor-use"></a>

En los temas de esta sección se proporcionan guías sobre el uso del editor de código, que incluyen cómo iniciar recursos, agregar conexiones a Servicios de AWS ellos, cerrarlos y mucho más. Tras crear un espacio de editor de código, puede acceder a la sesión de editor de código directamente a través del navegador.

En el entorno de editor de código, puede hacer lo siguiente: 
+ Acceda a todos los artefactos que persisten en el directorio principal
+ Clona tus GitHub repositorios y confirma los cambios
+ Accede al SDK SageMaker Python

Puede volver a Studio para revisar cualquier recurso creado en su entorno de editor de código, como experimentos, canalizaciones o trabajos de entrenamiento. 

**Topics**
+ [Comprobación de la versión del editor de código](code-editor-use-version.md)
+ [Instancias e imágenes de la aplicación del editor de código](code-editor-use-instances.md)
+ [Inicialización de una aplicación de editor de código en Studio](code-editor-use-studio.md)
+ [Inicie una aplicación de edición de código mediante el AWS CLI](code-editor-launch-cli.md)
+ [Clonación de un repositorio en el editor de código](code-editor-use-clone-a-repository.md)
+ [Conexiones y extensiones del editor de código](code-editor-use-connections-and-extensions.md)
+ [Cierre de los recursos del editor de código](code-editor-use-log-out.md)

# Comprobación de la versión del editor de código
<a name="code-editor-use-version"></a>

Los siguientes pasos muestran cómo comprobar la versión de la aplicación del editor de código.

**Comprobación de la versión de la aplicación del editor de código**

1. Inicie y ejecute un espacio de editor de código y navegue hasta la interfaz de usuario de la aplicación del editor de código. Para obtener más información, consulte [Inicialización de una aplicación de editor de código en Studio](code-editor-use-studio.md).

1. En la esquina superior izquierda de la interfaz de usuario del Editor de Código, elija el botón de menú (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/code-editor/code-editor-menu-icon.png)). A continuación, seleccione **Ayuda**. A continuación, seleccione **Acerca de**.

# Instancias e imágenes de la aplicación del editor de código
<a name="code-editor-use-instances"></a>

Solo algunas instancias son compatibles con las aplicaciones del editor de código. Puede elegir el tipo de instancia que sea compatible con su caso de uso en el menú desplegable **Instancia**. 

Las instancias de **Lanzamiento rápido** se inician mucho más rápido que las demás instancias. Para obtener más información sobre los tipos de instancias de inicialización rápida en Studio, consulte [Tipos de instancias disponibles para su uso con las libretas clásicas de Amazon SageMaker Studio](notebooks-available-instance-types.md).

**nota**  
Si utiliza un tipo de instancia de GPU al configurar la aplicación de editor de código, también debe usar una imagen basada en GPU. La interfaz de usuario del espacio del editor de código selecciona automáticamente una imagen compatible al seleccionar el tipo de instancia.

Dentro de un espacio, los datos se almacenan en un volumen de Amazon EBS que persiste independientemente de la duración de una instancia. No perderá los datos cuando cambie de instancias. Si el espacio del editor de código es `Running`, debe detenerlo antes de cambiar los tipos de instancias.

La siguiente tabla muestra las imágenes ARNs de CPU y GPU del editor de código disponibles para cada región.


|  Region  |  CPU  |  GPU  | 
| --- | --- | --- | 
|  us-east-1  | arn:aws:sagemaker:us-east-1:885854791233:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:us-east-1:885854791233:image/sagemaker-distribution-gpu | 
|  us-east-2  | arn:aws:sagemaker:us-east-2:37914896644:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-east-2:37914896644:image/sagemaker-distribution-gpu | 
|  us-west-1  | arn:aws:sagemaker:us-west-1:053634841547:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-west-1:053634841547:image/sagemaker-distribution-gpu | 
|  us-west-2  | arn:aws:sagemaker:us-west-2:542918446943:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:us-west-2:542918446943:image/sagemaker-distribution-gpu | 
|  af-south-1  | arn:aws:sagemaker:af-south-1:238384257742:image/sagemaker-distribution-cpu | arn:aws:sagemaker:af-south-1:238384257742:image/sagemaker-distribution-gpu | 
|  ap-east-1  | arn:aws:sagemaker:ap-east-1:523751269255:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-east-1:523751269255:image/sagemaker-distribution-gpu | 
|  ap-south-1  | arn:aws:sagemaker:ap-south-1:245090515133:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-south-1:245090515133:image/sagemaker-distribution-gpu | 
|  ap-northeast-2  | arn:aws:sagemaker:ap-northeast-2:064688005998:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-northeast-2:064688005998:image/sagemaker-distribution-gpu | 
|  ap-southeast-1  | arn:aws:sagemaker:ap-southeast-1:022667117163:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-southeast-1:022667117163:image/sagemaker-distribution-gpu | 
|  ap-southeast-2  | arn:aws:sagemaker:ap-southeast-2:648430277019:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-southeast-2:648430277019:image/sagemaker-distribution-gpu | 
|  ap-northeast-1  | arn:aws:sagemaker:ap-northeast-1:010972774902:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-northeast-1:010972774902:image/sagemaker-distribution-gpu | 
|  ca-central-1  | arn:aws:sagemaker:ca-central-1:481561238223:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ca-central-1:481561238223:image/sagemaker-distribution-gpu | 
|  eu-central-1  | arn:aws:sagemaker:eu-central-1:545423591354:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-central-1:545423591354:image/sagemaker-distribution-gpu | 
|  eu-west-1  | arn:aws:sagemaker:eu-west-1:819792524951:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-west-1:819792524951:image/sagemaker-distribution-gpu | 
|  eu-west-2  | arn:aws:sagemaker:eu-west-2:021081402939:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-west-2:021081402939:image/sagemaker-distribution-gpu | 
|  eu-west-3  | arn:aws:sagemaker:eu-west-3:856416204555:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-west-3:856416204555:image/sagemaker-distribution-gpu | 
|  eu-north-1  | arn:aws:sagemaker:eu-north-1:175620155138:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-north-1:175620155138:image/sagemaker-distribution-gpu | 
|  eu-south-1  | arn:aws:sagemaker:eu-south-1:810671768855:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-south-1:810671768855:image/sagemaker-distribution-gpu | 
|  sa-east-1  | arn:aws:sagemaker:sa-east-1:567556641782:image/sagemaker-distribution-cpu | arn:aws:sagemaker:sa-east-1:567556641782:image/sagemaker-distribution-gpu | 
|  ap-northeast-3  | arn:aws:sagemaker:ap-northeast-3:564864627153:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-northeast-3:564864627153:image/sagemaker-distribution-gpu | 
|  ap-southeast-3  | arn:aws:sagemaker:ap-southeast-3:370607712162:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-southeast-3:370607712162:image/sagemaker-distribution-gpu | 
|  me-south-1  | arn:aws:sagemaker:me-south-1:523774347010:image/sagemaker-distribution-cpu | arn:aws:sagemaker:me-south-1:523774347010:image/sagemaker-distribution-gpu | 
|  me-central-1  | arn:aws:sagemaker:me-central-1:358593528301:image/sagemaker-distribution-cpu | arn:aws:sagemaker:me-central-1:358593528301:image/sagemaker-distribution-gpu | 
|  il-central-1  | arn:aws:sagemaker:il-central-1:080319125002:image/sagemaker-distribution-cpu | arn:aws:sagemaker:il-central-1:080319125002:image/sagemaker-distribution-gpu | 
|  cn-north-1  | arn:aws:sagemaker:cn-north-1:674439102856:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:cn-north-1:674439102856:image/sagemaker-distribution-gpu  | 
|  cn-northwest-1  | arn:aws:sagemaker:cn-northwest-1:651871951035:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:cn-northwest-1:651871951035:image/sagemaker-distribution-gpu  | 
|  us-gov-west-1  | arn:aws:sagemaker:us-gov-west-1:300992924816:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-gov-west-1:300992924816:image/sagemaker-distribution-gpu | 
|  us-gov-east-1  | arn:aws:sagemaker:us-gov-east-1:300993876623:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-gov-east-1:300993876623:image/sagemaker-distribution-gpu | 

Si encuentra límites de instancia, póngase en contacto con su administrador. Para obtener más almacenamiento y procesamiento para un usuario, los administradores pueden solicitar un aumento de AWS las cuotas de un usuario. Para obtener más información sobre cómo solicitar un aumento de cuota, consulta los [puntos de conexión y las cuotas de Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Inicialización de una aplicación de editor de código en Studio
<a name="code-editor-use-studio"></a>

Para configurar y acceder al entorno de desarrollo integrado con el editor de código a través de Studio, debe crear un espacio de editor de código. Para obtener más información sobre espacios en Studio, consulte [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md).

![\[El botón de la aplicación del editor de código y el mosaico de información general de la interfaz de usuario de Studio.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/code-editor/code-editor-studio-home.png)


En el siguiente procedimiento se muestra cómo crear y ejecutar un espacio del editor de código.

**Creación y ejecución de un espacio de editor de código**

1. Lance la experiencia de Studio actualizada. Para obtener más información, consulte [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Realice una de las siguientes acciones:
   + En la interfaz de usuario actualizada de Amazon SageMaker Studio, selecciona **Editor de código** en el menú **Aplicaciones**.
   + En la interfaz de usuario actualizada de Amazon SageMaker Studio, selecciona los **espacios de View Code Editor** en la sección **Descripción general** de la página de inicio de Studio.

1. En la esquina superior derecha de la página de inicio del editor de código, elija **Crear espacio del editor de código**.

1. Introduzca un nombre para el espacio del editor de código. El nombre debe tener de 1 a 62 caracteres y usar solo letras, números y guiones.

1. Elija **Crear espacio**.

1. Una vez creado el espacio, dispone de algunas opciones antes de decidir cómo ejecutarlo:
   + Puede editar los ajustes de **Almacenamiento (GB)**, **Configuración del ciclo de vida** o **Asociar sistema de archivos EFS personalizado**. Las opciones para estos ajustes están disponibles según las especificaciones del administrador.
   + En el menú desplegable **Instancia**, puede elegir el tipo de instancia más compatible con su caso de uso. En el menú desplegable **Imagen**, puede elegir una imagen de SageMaker distribución o una imagen personalizada proporcionada por su administrador.
**nota**  
Al cambiar entre las imágenes distribuidas por SageMaker, se modifica la versión subyacente del Editor de código que se utiliza, lo que puede provocar incompatibilidades debido al almacenamiento en caché del navegador. Debe borrar la memoria caché del navegador al cambiar de una imagen a otra.

     Si utiliza un tipo de instancia de GPU al configurar la aplicación de editor de código, también debe usar una imagen basada en GPU. Dentro de un espacio, los datos se almacenan en un volumen de Amazon EBS que persiste independientemente de la duración de una instancia. No perderá los datos cuando cambie de instancias.
**importante**  
Las políticas de IAM personalizadas que permiten a los usuarios de Studio crear espacios también deben conceder permisos para enumerar imágenes (`sagemaker: ListImage`) para ver imágenes personalizadas. Para agregar el permiso, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la Guía del usuario de *AWS Identity and Access Management*.   
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear recursos de SageMaker IA ya incluyen permisos para enumerar imágenes al crear esos recursos.
**nota**  
Para actualizar la configuración del espacio, primero debe detener el espacio. Si tu editor de código usa una NVMe instancia con almacenes de instancias, todos los datos almacenados en el NVMe almacén se eliminan cuando se detiene el espacio.

1. Tras actualizar la configuración, seleccione **Ejecutar espacio** en la página de detalles del espacio.

1. Cuando el estado del espacio sea `Running`, seleccione **Abrir editor de código** para ir a la sesión del editor de código. 

![\[La página de detalles del espacio de una aplicación del editor de código en la interfaz de usuario de Studio.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/code-editor/code-editor-open.png)


# Inicie una aplicación de edición de código mediante el AWS CLI
<a name="code-editor-launch-cli"></a>

Para configurar y acceder al entorno de desarrollo integrado con el editor de código a través de la AWS Command Line Interface (AWS CLI), debe crear un espacio de editor de código. Asegúrese de cumplir los [Cómo completar los requisitos previos de](code-editor-admin-prerequisites.md) antes de realizar los siguientes pasos. Utilice el siguiente procedimiento para crear y ejecutar un espacio del editor de código.

**Creación y ejecución de un espacio de editor de código**

1. Acceda a un espacio mediante AWS Identity and Access Management (IAM) o AWS IAM Identity Center autenticación. Para obtener más información sobre cómo acceder a los espacios mediante la entrada AWS CLI, consulte *Acceder a los espacios mediante la entrada AWS Command Line Interface*. [Espacios de Amazon SageMaker Studio](studio-updated-spaces.md) 

1. Cree una aplicación y especifique `CodeEditor` como el `app-type` mediante el siguiente comando.

   Si utiliza un tipo de instancia de GPU al crear la aplicación de editor de código, también debe usar una imagen basada en GPU.

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:account-id:image/sagemaker-distribution-cpu"
   ```

   Para obtener más información sobre la imagen del editor de código disponible ARNs, consulte[Instancias e imágenes de la aplicación del editor de código](code-editor-use-instances.md).

1. Una vez que la aplicación del editor de código esté en servicio, lance la aplicación mediante una URL prefirmada. Puede usar la API de `describe-app` para comprobar si la aplicación está en servicio. Utilice la API de `create-presigned-domain-url` para crear una URL prefirmada:

   ```
   aws sagemaker create-presigned-domain-url \
   --domain-id domain-id \
   --space-name space-name \
   --user-profile-name user-profile-name \
   --session-expiration-duration-in-seconds 43200 \
   --landing-uri app:CodeEditor:
   ```

1. Abra la URL generada para empezar a trabajar en la aplicación del editor de código.

# Clonación de un repositorio en el editor de código
<a name="code-editor-use-clone-a-repository"></a>

Puede navegar por las carpetas y clonar un repositorio en la ventana del **Explorador** de la interfaz de usuario de la aplicación del editor de código. 

Para clonar un repositorio, realice los siguientes pasos:

**Clonación de un repositorio**

1. Abra la aplicación de edición de código en el navegador y elija el botón **Exploración** (![\[Icon representing multiple documents or pages stacked on top of each other.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/code-editor/code-editor-exploration-icon.png)) en el panel de navegación izquierdo.

1. Seleccione **Clonar repositorio** en la ventana del **Explorador**. A continuación, proporcione una URL de repositorio o elija un origen de repositorio en la petición.

1. Elija una carpeta en la que clonar el repositorio. Tenga en cuenta que la carpeta predeterminada del editor de código es `/home/sagemaker-user/`. La clonación de un repositorio puede tardar un poco.

1. Para abrir el repositorio clonado, elija **Abrir en una ventana nueva** o **Abrir**.

1.  Para volver a la página de inicio de la interfaz de usuario de la aplicación de editor de código, seleccione **Cancelar**.

1. En el repositorio, una petición le pregunta si confía en los autores de los archivos del nuevo repositorio. Dispone de dos opciones:

   1. Para confiar en la carpeta y activar todas las características, elija **Sí, confío en los autores**.

   1. Para explorar el contenido del repositorio en *modo restringido*, seleccione **No, no confío en los autores**.

      En el modo restringido, no se permite la ejecución de tareas, la depuración está deshabilitada, la configuración del espacio de trabajo no se aplica y las extensiones tienen una funcionalidad limitada.

      Para salir del modo restringido, confiar en los autores de todos los archivos de la carpeta actual o de la carpeta principal y activar todas las características, seleccione **Administrar** en el banner del **Modo restringido**.

# Conexiones y extensiones del editor de código
<a name="code-editor-use-connections-and-extensions"></a>

El editor de código admite las Servicios de AWS conexiones IDE y las extensiones disponibles en [Open VSX Registry](https://open-vsx.org/). 

## Conexiones a AWS
<a name="code-editor-use-connections"></a>

Los entornos del editor de código están integrados con el [Kit de herramientas de AWS para VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) para agregar conexiones a Servicios de AWS. Para empezar con las conexiones a Servicios de AWS, debe tener credenciales AWS Identity and Access Management (IAM) válidas. Para obtener más información, consulte [Autenticación y acceso al AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/establish-credentials.html).

En su entorno de editor de código, puede agregar conexiones a: 
+  [AWS Explorer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/aws-explorer.html): vea, modifique e implemente AWS recursos en Amazon S3 y más. CloudWatch

  El acceso a determinadas funciones de AWS Explorer requiere ciertos AWS permisos. Para obtener más información, consulte [Autenticación y acceso al AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/establish-credentials.html).
+ [Amazon CodeWhisperer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codewhisperer.html): cree aplicaciones más rápido con sugerencias de código basadas en IA. 

  Para utilizarlo Amazon CodeWhisperer con el editor de código, debe añadir los siguientes permisos a su función de ejecución de SageMaker IA.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "CodeWhispererPermissions",
        "Effect": "Allow",
        "Action": ["codewhisperer:GenerateRecommendations"],
        "Resource": "*"
      }
    ]
  }
  ```

------

  Para obtener información, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) y [Agregar y eliminar permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de IAM*.

## Extensiones
<a name="code-editor-use-extensions"></a>

El editor de código admite las extensiones IDE disponibles en el [Open VSX Registry](https://open-vsx.org/). 

Para empezar a utilizar las extensiones en el entorno del editor de código, seleccione el icono de **Extensiones** (![\[Icon showing two overlapping squares representing multiple windows or instances.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/code-editor/code-editor-extensions-icon.png)) en el panel de navegación izquierdo. Aquí, puede configurar las conexiones a AWS instalando el AWS Toolkit. Para obtener más información, consulte [Instalación de la AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html).

En la barra de búsqueda, puede buscar directamente extensiones adicionales a través del [Open VSX Registry](https://open-vsx.org/), como AWS Toolkit, Jupyter, Python y más.

# Cierre de los recursos del editor de código
<a name="code-editor-use-log-out"></a>

Cuando termine de usar un espacio del editor de código, puede usar Studio para detenerlo. De esta forma, dejará de incurrir en costos por el espacio. 

Como alternativa, puede eliminar los recursos del editor de código no utilizados utilizando la AWS CLI.

## Detención del espacio del editor de código mediante Studio
<a name="code-editor-use-log-out-stop-space"></a>

Para detener el espacio del editor de código en Studio, siga estos pasos:

**Detención del espacio del editor de código en Studio**

1. Vuelva a la página de inicio del editor de código mediante una de las siguientes acciones: 

   1. En la barra de navegación de la esquina superior izquierda, elija **Editor de código**.

   1. Como alternativa, en el panel de navegación izquierdo, elija **Editor de código** en el menú **Aplicaciones.**

1. Busque el nombre del espacio del editor de código que ha creado. Si el estado del espacio es **En ejecución**, seleccione **Detener** en la columna **Acción**. También puede detener el espacio directamente en la página de detalles del espacio seleccionando **Detener espacio**. Es posible que el espacio tarde un tiempo en detenerse.

![\[La página de detalles del espacio de una aplicación del editor de código en la interfaz de usuario.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/code-editor/code-editor-stop-space.png)


Los recursos adicionales, como los puntos de enlace de SageMaker IA, los clústeres de Amazon EMR (Amazon EMR) y los depósitos de Amazon Simple Storage Service (Amazon S3) creados desde Studio, no se eliminan automáticamente cuando la instancia de espacio se cierra. Para dejar de incurrir en cargos de los recursos, elimine los recursos adicionales. Para obtener más información sobre cómo eliminas recursos, consulte [Eliminación de recursos sin usar](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-admin-guide-clean-up.html).

## Elimine los recursos del editor de código mediante el AWS CLI
<a name="code-editor-use-log-out-shut-down-resources"></a>

Puede eliminar la aplicación y el espacio del editor de código con AWS Command Line Interface (AWS CLI).
+ [DeleteApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html)
+ [DeleteSpace](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteSpace.html)

# Guía del administrador del editor de código
<a name="code-editor-admin"></a>

Puede utilizar el editor de código con una instancia bajo demanda para acelerar el tiempo de inicio y disponer de un almacenamiento configurable. Puede lanzar una aplicación de editor de código a través de Amazon SageMaker Studio o a través del AWS CLI. También puede editar la configuración predeterminada del editor de código en la consola de dominio. Para obtener más información, consulte [Edición de la configuración del dominio](domain-edit.md). En los siguientes temas se describe cómo los administradores pueden configurar el editor de código, basado en Code-OSS, Visual Studio Code: Open Source cambiando las opciones de almacenamiento, personalizando los entornos y administrando el acceso de los usuarios, además de proporcionar información sobre los requisitos previos necesarios para utilizar el editor de código.

**Topics**
+ [Cómo completar los requisitos previos de](code-editor-admin-prerequisites.md)
+ [Concesión de acceso a los usuarios a espacios privados](code-editor-admin-user-access.md)
+ [Cambio del tamaño de almacenamiento predeterminado](code-editor-admin-storage-size.md)
+ [Configuraciones del ciclo de vida del editor de código](code-editor-use-lifecycle-configurations.md)
+ [Imágenes personalizadas](code-editor-custom-images.md)

# Cómo completar los requisitos previos de
<a name="code-editor-admin-prerequisites"></a>

Para utilizar el editor de código, basado en Code-OSS, Visual Studio Code: Open Source, debe cumplir los siguientes requisitos previos.

1. Primero debes incorporarte al dominio Amazon SageMaker AI y crear un perfil de usuario. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

1. Si interactúa con su aplicación de edición de código mediante el AWS CLI, también debe cumplir los siguientes requisitos previos.

   1.  AWS CLI Actualícela siguiendo los pasos que se indican en [Instalación de la AWS CLI versión actual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled). 

   1.  En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 

1. (Opcional) Para disponer de más almacenamiento y procesamiento para su aplicación, puede solicitar un aumento de sus AWS cuotas. Para obtener más información sobre cómo solicitar un aumento de cuota, consulta los [puntos de conexión y las cuotas de Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Concesión de acceso a los usuarios a espacios privados
<a name="code-editor-admin-user-access"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

En esta sección se proporciona una política que concede a los usuarios acceso a los espacios privados. También puede usar la política para restringir los espacios privados y las aplicaciones asociadas a ellos al propietario asociado al perfil de usuario. 

Para proporcionar permisos a los usuarios, haga lo siguiente:
+ Espacios privados
+ El perfil de usuario necesario para acceder a los espacios privados

Para proporcionar permisos, asocie la siguiente política a los roles de IAM de sus usuarios.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {

      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreatePresignedDomainUrl"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
    },
    {
      "Sid": "SMStudioAppPermissionsListAndDescribe",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListApps",
        "sagemaker:ListDomains",
        "sagemaker:ListUserProfiles",
        "sagemaker:ListSpaces",
        "sagemaker:DescribeApp",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SMStudioAppPermissionsTagOnCreate",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:*/*",
      "Condition": {
        "Null": {
          "sagemaker:TaggingAction": "false"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private",
            "Shared"
          ]
        }
      }
    },
    {
      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/domain-id/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private"
          ]
        }
      }
    }
  ]
}
```

------

# Cambio del tamaño de almacenamiento predeterminado
<a name="code-editor-admin-storage-size"></a>

Puede cambiar la configuración de almacenamiento predeterminada de sus usuarios. También puede cambiar la configuración de almacenamiento predeterminada en función de los requisitos de la organización y las necesidades de los usuarios.

Para cambiar el tamaño de almacenamiento de los usuarios, realice lo siguiente:

1. Actualice la configuración de almacenamiento de Amazon EBS en el dominio. 

1. Cree un perfil de usuario y especifique la configuración de almacenamiento que contiene.

Usa el siguiente comando AWS Command Line Interface (AWS CLI) para actualizar el dominio.

```
aws --region $REGION sagemaker update-domain \
--domain-id $DOMAIN_ID \
--default-user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilice el siguiente AWS CLI comando para crear el perfil de usuario y especificar la configuración de almacenamiento predeterminada.

```
aws --region $REGION sagemaker create-user-profile \
--domain-id $DOMAIN_ID \
--user-profile-name $USER_PROFILE_NAME \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilice los siguientes AWS CLI comandos para actualizar la configuración de almacenamiento predeterminada en el perfil de usuario.

```
aws --region $REGION sagemaker update-user-profile \
--domain-id $DOMAIN_ID \
--user-profile-name $USER_PROFILE_NAME \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":25,
            "MaximumEbsVolumeSizeInGb":200
        }
    }
}'
```

# Configuraciones del ciclo de vida del editor de código
<a name="code-editor-use-lifecycle-configurations"></a>

Puede utilizar las configuraciones del ciclo de vida del editor de código para automatizar la personalización del entorno de Studio. Esta personalización incluye la instalación de paquetes personalizados, la configuración de extensiones, la precarga de conjuntos de datos y la configuración de repositorios de código fuente.

En las siguientes instrucciones, se utiliza AWS Command Line Interface (AWS CLI) para crear, adjuntar, depurar y separar las configuraciones del ciclo de vida del tipo de `CodeEditor` aplicación:
+ [Creación y asociación de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-create.md)
+ [Depuración de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-debug.md)
+ [Desasociación de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-detach.md)

# Creación y asociación de configuraciones de ciclo de vida en Studio
<a name="code-editor-use-lifecycle-configurations-studio-create"></a>

La siguiente sección proporciona AWS CLI comandos para crear una configuración de ciclo de vida, adjuntar una configuración de ciclo de vida al crear un nuevo perfil de usuario y adjuntar una configuración de ciclo de vida al actualizar un perfil de usuario. Para ver los requisitos previos y los pasos generales para crear y asociar configuraciones del ciclo de vida en Studio, consulte [Creación de una configuración de ciclo de vida](jl-lcc-create.md). 

Al crear la configuración del ciclo de vida de Studio con el comando de `create-studio-lifecycle-config`, asegúrese de especificar que el `studio-lifecycle-config-app-type` es `CodeEditor`. En el siguiente ejemplo se muestra cómo crear una nueva configuración de ciclo de vida de Studio para la aplicación del editor de código.

```
aws sagemaker create-studio-lifecycle-config \
--studio-lifecycle-config-name my-code-editor-lcc \
--studio-lifecycle-config-content $LCC_CONTENT \
--studio-lifecycle-config-app-type CodeEditor
```

Tenga en cuenta el ARN de la configuración del ciclo de vida recién creada que se devuelve. Al asociar una configuración de ciclo de vida, proporcione este ARN en la lista `LifecycleConfigArns` de `CodeEditorAppSettings`. 

Puede asociar una configuración de ciclo de vida al crear un perfil de usuario o un dominio. En el siguiente ejemplo se muestra cómo crear un perfil de usuario con la configuración del ciclo de vida asociada. También puede crear un nuevo dominio con una configuración del ciclo de vida asociada mediante el comando [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/opensearch/create-domain.html).

```
# Create a new UserProfile
aws sagemaker create-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

Como alternativa, puede asociar una configuración de ciclo de vida al actualizar un perfil de usuario o un dominio. En el siguiente ejemplo se muestra cómo actualizar un perfil de usuario con la configuración del ciclo de vida asociada. También puede actualizar un nuevo dominio con una configuración de ciclo de vida asociada mediante el comando [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html).

```
# Update a UserProfile
aws sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

# Depuración de configuraciones de ciclo de vida en Studio
<a name="code-editor-use-lifecycle-configurations-studio-debug"></a>

Para depurar scripts de configuración del ciclo de vida del editor de código, debe usar Studio. Para obtener instrucciones sobre la depuración de configuraciones de ciclo de vida en Studio, consulte[Depuración de configuraciones del ciclo de vida](jl-lcc-debug.md). Para buscar los registros de una aplicación específica, busque en los flujos de registro utilizando el siguiente formato:

```
domain-id/space-name/CodeEditor/default/LifecycleConfigOnStart
```

# Desasociación de configuraciones de ciclo de vida en Studio
<a name="code-editor-use-lifecycle-configurations-studio-detach"></a>

Para desasociar configuraciones de ciclo de vida del editor de código, puede utilizar la consola o la AWS CLI. Para conocer los pasos para desasociar configuraciones de ciclo de vida de la consola de Studio, consulte [Desasociación de configuraciones de ciclo de vida](jl-lcc-delete.md).

Para separar una configuración de ciclo de vida mediante el AWS CLI, elimine la configuración de ciclo de vida deseada de la lista de configuraciones de ciclo de vida adjunta al recurso. A continuación, pase la lista como parte del comando correspondiente:
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)

Por ejemplo, el siguiente comando elimina todas las configuraciones de ciclo de vida de la aplicación de editor de código asociadas al dominio.

```
aws sagemaker update-domain --domain-id domain-id \
--default-user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# Creación de una configuración de ciclo de vida para clonar repositorios en una aplicación de editor de código
<a name="code-editor-use-lifecycle-configurations-repositories"></a>

En esta sección se muestra cómo clonar un repositorio y crear una aplicación de editor de código con la configuración de ciclo de vida asociada.

1. En su equipo local, cree un archivo con el nombre `my-script.sh` que contenga lo siguiente:

   ```
   #!/bin/bash
   set -eux
   ```

1. Clone el repositorio que elija en el script de configuración de ciclo de vida. 

   ```
   export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git"
   git -C /home/sagemaker-user clone $REPOSITORY_URL
   ```

1. Tras finalizar el script, cree y asocie la configuración de ciclo de vida. Para obtener más información, consulte [Creación y asociación de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Cree su aplicación de editor de código con la configuración de ciclo de vida asociada.

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:image-account-id:image/sagemaker-distribution-cpu,LifecycleConfigArn=arn:aws:sagemaker:region:user-account-id:studio-lifecycle-config/my-code-editor-lcc,InstanceType=ml.t3.large"
   ```

   Para obtener más información sobre la imagen del editor de código disponible ARNs, consulte[Instancias e imágenes de la aplicación del editor de código](code-editor-use-instances.md).

# Creación de una configuración de ciclo de vida para instalar extensiones del editor de código
<a name="code-editor-use-lifecycle-configurations-extensions"></a>

En esta sección se muestra cómo crear una configuración de ciclo de vida para instalar extensiones del [Open VSX Registry](https://open-vsx.org/) en su entorno de editor de código.

1. En su equipo local, cree un archivo con el nombre `my-script.sh` que contenga lo siguiente:

   ```
   #!/bin/bash
   set -eux
   ```

1. En el script, instale la extensión [Open VSX Registry](https://open-vsx.org/) que prefiera:

   ```
   sagemaker-code-editor --install-extension AmazonEMR.emr-tools --extensions-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions
   ```

   Puede recuperar el nombre de la extensión desde la URL de la extensión en el [Open VSX Registry](https://open-vsx.org/). El nombre de la extensión que se utilizará en el comando `sagemaker-code-editor` debe contener todo el texto que sigue a `https://open-vsx.org/extension/` la URL. Sustituya todas las instancias de una barra (`/`) por un punto (`.`). Por ejemplo, `AmazonEMR/emr-tools` debería ser `AmazonEMR.emr-tools`.  
![\[La página de la extensión Amazon EMR en Open VSX Registry.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/code-editor/code-editor-emr-extension.png)

1. Tras finalizar el script, cree y asocie la configuración de ciclo de vida. Para obtener más información, consulte [Creación y asociación de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Cree su aplicación de editor de código con la configuración de ciclo de vida asociada:

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:image-account-id:image/sagemaker-distribution-cpu,LifecycleConfigArn=arn:aws:sagemaker:region:user-account-id:studio-lifecycle-config/my-code-editor-lcc,InstanceType=ml.t3.large"
   ```

   Para obtener más información sobre la imagen del editor de código disponible ARNs, consulte[Instancias e imágenes de la aplicación del editor de código](code-editor-use-instances.md). Para obtener más información sobre las conexiones y las extensiones, consulte [Conexiones y extensiones del editor de código](code-editor-use-connections-and-extensions.md).

# Imágenes personalizadas
<a name="code-editor-custom-images"></a>

Si necesita una funcionalidad diferente a la que proporciona la SageMaker distribución, puede incorporar su propia imagen con sus extensiones y paquetes personalizados. También puede utilizarla para personalizar la interfaz de usuario del editor de código para adaptarla a sus propias necesidades de marca o de conformidad.

La siguiente página proporcionará información y plantillas específicas del editor de código para crear tus propias imágenes de IA personalizadas SageMaker . El objetivo es complementar la información y las instrucciones de Amazon SageMaker Studio sobre cómo crear tu propia imagen de SageMaker IA y llevar tu propia imagen a Studio. Para obtener más información sobre las imágenes personalizadas de Amazon SageMaker AI y cómo llevar tu propia imagen a Studio, consulta[Bring your own image (BYOI)](studio-updated-byoi.md). 

**Topics**
+ [Comprobación de estado y URL de las aplicaciones](#code-editor-custom-images-app-healthcheck)
+ [Ejemplos de Dockerfile](#code-editor-custom-images-dockerfile-templates)

## Comprobación de estado y URL de las aplicaciones
<a name="code-editor-custom-images-app-healthcheck"></a>
+ `Base URL`: la URL base de la aplicación BYOI debe ser `CodeEditor/default`. Solo puede tener una aplicación y siempre debe denominarse `default`.
+ Health Check Endpoint: debe alojar el servidor del editor de código en el puerto 0.0.0.0 8888 para que la SageMaker IA lo detecte.
+  Autenticación: debes pasarlo `--without-connection-token` al abrirlo `sagemaker-code-editor` para que SageMaker AI pueda autenticar a tus usuarios.

**nota**  
Si utilizas Amazon SageMaker Distribution como imagen base, estos requisitos ya están incluidos en el `entrypoint-code-editor` guion incluido.

## Ejemplos de Dockerfile
<a name="code-editor-custom-images-dockerfile-templates"></a>

Los siguientes ejemplos son `Dockerfile` que cumplen con la información y [Especificaciones de imágenes personalizadas](studio-updated-byoi-specs.md) anteriores.

**nota**  
Si va a traer su propia imagen a SageMaker Unified Studio, tendrá que seguir las [especificaciones de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) de la Guía del *usuario de Amazon SageMaker Unified Studio*.  
`Dockerfile`Puedes encontrar ejemplos de SageMaker Unified Studio en el [ejemplo de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) de la Guía del *usuario de Amazon SageMaker Unified Studio*.

------
#### [ Example micromamba Dockerfile ]

El siguiente es un ejemplo de Dockerfile para crear una imagen desde cero utilizando un entorno base: [https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html). 

```
FROM mambaorg/micromamba:latest
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

USER root

RUN micromamba install -y --name base -c conda-forge sagemaker-code-editor

USER $NB_UID

CMD eval "$(micromamba shell hook --shell=bash)"; \
    micromamba activate base; \
    sagemaker-code-editor --host 0.0.0.0 --port 8888 \
        --without-connection-token \
        --base-path "/CodeEditor/default"
```

------
#### [ Example SageMaker AI Distribution Dockerfile ]

El siguiente es un ejemplo de Dockerfile para crear una imagen basada en [Amazon SageMaker AI](https://github.com/aws/sagemaker-distribution/tree/main) Distribution:

```
FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100
ENV MAMBA_USER=$NB_USER

USER root

 # install scrapy in the base environment
RUN micromamba install -y --name base -c conda-forge scrapy

 # download VSCodeVim
RUN \
  wget https://github.com/VSCodeVim/Vim/releases/download/v1.27.2/vim-1.27.2.vsix \
  -P /tmp/exts/ --no-check-certificate

 # Install the extension
RUN \
  extensionloc=/opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions \
  && sagemaker-code-editor \
    --install-extension "/tmp/exts/vim-1.27.2.vsix" \
    --extensions-dir "${extensionloc}"

USER $MAMBA_USER
ENTRYPOINT ["entrypoint-code-editor"]
```

------

# Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod"></a>

SageMaker HyperPod le ayuda a aprovisionar clústeres resilientes para ejecutar cargas de trabajo de aprendizaje automático (ML) y desarrollar state-of-the-art modelos como modelos de lenguajes extensos (LLMs), modelos de difusión y modelos básicos (). FMs Acelera el desarrollo FMs al eliminar el trabajo pesado indiferenciado que implica la creación y el mantenimiento de clústeres de cómputo a gran escala alimentados por miles de aceleradores, como AWS Trainium y las unidades de procesamiento gráfico NVIDIA A100 y H100 (). GPUs Cuando los aceleradores fallan, las funciones de resiliencia de las instancias del SageMaker HyperPod clúster detectan y sustituyen automáticamente el hardware defectuoso sobre la marcha para que pueda centrarse en ejecutar las cargas de trabajo de aprendizaje automático.

Para empezar, compruebe [Requisitos previos para su uso SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md)[AWS Identity and Access Management para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md), configure y elija una de las siguientes opciones de orquestación compatibles con. SageMaker HyperPod

**Soporte para Slurm en SageMaker HyperPod**

SageMaker HyperPod proporciona soporte para ejecutar cargas de trabajo de aprendizaje automático en clústeres resilientes mediante la integración con Slurm, un administrador de cargas de trabajo de código abierto. La compatibilidad con Slurm SageMaker HyperPod permite una organización fluida de los clústeres mediante la configuración de los clústeres de Slurm, lo que permite configurar nodos principales, de inicio de sesión y de trabajo en los SageMaker HyperPod clústeres. La integración también facilita la programación de tareas basada en SLURM para ejecutar cargas de trabajo de aprendizaje automático en el clúster, así como el acceso directo a los nodos del clúster para programar los trabajos. Gracias a la compatibilidad con HyperPod la configuración del ciclo de vida, puede personalizar el entorno informático de los clústeres para adaptarlo a sus requisitos específicos. Además, al aprovechar las bibliotecas de formación distribuidas de Amazon SageMaker AI, puede optimizar el rendimiento de los clústeres en los recursos AWS informáticos y de red. Para obtener más información, consulte [Organización de clústeres con Slurm SageMaker HyperPod](sagemaker-hyperpod-slurm.md). 

**Soporte de Amazon EKS en SageMaker HyperPod**

SageMaker HyperPod también se integra con Amazon EKS para permitir el entrenamiento a gran escala de modelos básicos en clústeres de cómputo resilientes y de larga duración. Esto permite a los usuarios administradores de HyperPod clústeres aprovisionar los clústeres y conectarlos a un plano de control de EKS, lo que permite una administración dinámica de la capacidad, el acceso directo a las instancias del clúster y las capacidades de resiliencia. Para los científicos de datos, el soporte de Amazon EKS HyperPod permite ejecutar cargas de trabajo en contenedores para entrenar modelos básicos, realizar inferencias en el clúster de EKS y aprovechar la capacidad de reanudación automática de tareas para la formación de Kubeflow. PyTorch La arquitectura implica un mapeo uno a uno entre un clúster EKS (plano de control) y un HyperPod clúster (nodos de trabajo) dentro de una VPC, lo que proporciona una solución perfectamente integrada para ejecutar cargas de trabajo de aprendizaje automático a gran escala. Para obtener más información, consulte [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**UltraServers with HyperPod**

HyperPod with UltraServers ofrece la potencia de cómputo de la IA al integrar los superchips de NVIDIA en una infraestructura cohesiva y de alto rendimiento. Cada uno NVL72 UltraServer combina 18 instancias con 72 de NVIDIA Blackwell GPUs interconectadas NVLink, lo que permite realizar inferencias más rápidas y un rendimiento de entrenamiento más rápido en comparación con las instancias de la generación anterior. Esta arquitectura es especialmente valiosa para las organizaciones que trabajan con modelos básicos de un billón de parámetros, ya que la memoria unificada de la GPU permite que todos los modelos permanezcan en un solo NVLink dominio, lo que elimina los cuellos de botella en las redes entre nodos. HyperPod mejora esta ventaja del hardware con una programación inteligente basada en la topología que optimiza la ubicación de las cargas de trabajo, el reemplazo automático de instancias para minimizar las interrupciones y opciones de implementación flexibles que admiten configuraciones de recursos dedicados y compartidos. Para los equipos que fuerzan los límites del tamaño y el rendimiento de los modelos, esta integración proporciona la base computacional necesaria para entrenar e implementar los modelos de IA más avanzados con una eficiencia sin precedentes.

SageMaker HyperPod optimiza automáticamente la ubicación de las instancias en todo su. UltraServers De forma predeterminada, HyperPod prioriza todas las instancias de una UltraServer antes de usar una diferente. Por ejemplo, si quieres 14 instancias y tienes 2 UltraServers en tu plan, la SageMaker IA usa todas las instancias de la primera. UltraServer Si quieres 20 instancias, la SageMaker IA usa las 18 instancias de la primera UltraServer y luego usa 2 más de la segunda.

## Regiones de AWS con el apoyo de SageMaker HyperPod
<a name="sagemaker-hyperpod-available-regions"></a>

SageMaker HyperPod está disponible en lo siguiente Regiones de AWS. 
+ us-east-1
+ us-east-2
+ us-west-1
+ us-west-2
+ eu-central-1
+ eu-north-1
+ eu-west-1
+ eu-west-2
+ eu-south-2
+ ap-south-1
+ ap-southeast-1
+ ap-southeast-2
+ ap-southeast-3
+ ap-southeast-4
+ ap-northeast-1
+ sa-east-1

**Topics**
+ [Regiones de AWS con el apoyo de SageMaker HyperPod](#sagemaker-hyperpod-available-regions)
+ [SageMaker HyperPod Guía de inicio rápido de Amazon](sagemaker-hyperpod-quickstart.md)
+ [Requisitos previos para su uso SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md)
+ [AWS Identity and Access Management para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md)
+ [Cifrado gestionado por el cliente para AWS KMS key SageMaker HyperPod](smcluster-cmk.md)
+ [SageMaker HyperPod recetas](sagemaker-hyperpod-recipes.md)
+ [Organización de clústeres con Slurm SageMaker HyperPod](sagemaker-hyperpod-slurm.md)
+ [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md)
+ [Uso de la programación basada en la topología en Amazon SageMaker HyperPod](sagemaker-hyperpod-topology.md)
+ [Implementación de modelos en Amazon SageMaker HyperPod](sagemaker-hyperpod-model-deployment.md)
+ [HyperPod en Studio](sagemaker-hyperpod-studio.md)
+ [SageMaker HyperPod referencias](sagemaker-hyperpod-ref.md)
+ [Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md)
+ [Amazon SageMaker HyperPod AMI](sagemaker-hyperpod-release-ami.md)

# SageMaker HyperPod Guía de inicio rápido de Amazon
<a name="sagemaker-hyperpod-quickstart"></a>

Esta guía de inicio rápido le guiará a través de la creación de su primer HyperPod clúster con las orquestaciones de Slurm y Amazon EKS (EKS). Para empezar, elija la organización que mejor se adapte a sus necesidades de infraestructura. SageMaker HyperPod

**Topics**
+ [Cree un clúster orquestado por SLURM SageMaker HyperPod](#sagemaker-hyperpod-quickstart-slurm)
+ [Cree un clúster orquestado por EKS SageMaker HyperPod](#sagemaker-hyperpod-quickstart-eks)
+ [Envío de cargas de trabajo](#sagemaker-hyperpod-quickstart-workload)

## Cree un clúster orquestado por SLURM SageMaker HyperPod
<a name="sagemaker-hyperpod-quickstart-slurm"></a>

Siga estos pasos para crear su primer SageMaker HyperPod clúster con la orquestación de Slurm.

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

1. Seleccione **HyperPod Clusters** en el panel de navegación izquierdo y, a continuación, **Cluster Management**.

1. En la página **SageMaker HyperPod Clústeres**, elija **Crear HyperPod clúster**. 

1. En el menú desplegable **Crear HyperPod clúster**, selecciona **Orchestrated by Slurm**.

1. En la página de creación de clústeres, seleccione **Configuración rápida**. Con esta opción, puede empezar inmediatamente con la configuración predeterminada. SageMaker La IA creará nuevos recursos, como VPC, subredes, grupos de seguridad, un bucket de Amazon S3, una función de IAM y Lustre, FSx durante el proceso de creación del clúster.

1. En **Configuración general**, especifique un nombre para el nuevo clúster. Después de crear el clúster no puede cambiarle el nombre.

1. En **Grupos de instancias**, elija **Agregar grupo**. Cada grupo de instancias se puede configurar de una forma diferente y se puede crear un clúster heterogéneo que conste de varios grupos de instancias con diversos tipos de instancias. Para implementar un clúster, debe agregar al menos un grupo de instancias. Puede añadir un grupo de instancias cada vez. Si desea crear varios grupos de instancias, repita el proceso para cada uno de ellos.

   Siga estos pasos para agregar un grupo de instancias.

   1. En **Tipo del grupo de instancias**, elija un tipo de instancia para su grupo de instancias. Para esta guía de inicio rápido, seleccione **Controlador (principal)** para `my-controller-group`, **Inicio de sesión** para `my-login-group` y **Computación (de trabajo)** para `worker-group-1`. 

   1. En **Nombre**, especifique un nombre para el grupo de instancias. Para esta guía de inicio rápido, cree tres grupos de instancias llamados `my-controller-group`, `my-login-group` y `worker-group-1`.

   1.  En **Capacidad de instancia**, elija la capacidad bajo demanda o un plan de entrenamiento para reservar recursos de computación.

   1. En **Tipo de instancia**, elija la instancia del grupo de instancias. Para esta guía de inicio rápido, seleccione `ml.c5.xlarge` para `my-controller-group`, `ml.m5.4xlarge` para `my-login-group` y `ml.trn1.32xlarge` para `worker-group-1`. 

      Asegúrese de elegir el tipo de instancia con cuotas suficientes en su cuenta o solicite cuotas adicionales siguiendo las instrucciones de [SageMaker HyperPod cuotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

   1. En **Cantidad de instancias**, especifique un número entero que no supere la cuota de instancias de uso del clúster. Para este inicio rápido, introduzca **1** para los tres grupos.

   1. En **Zona de disponibilidad de destino**, elija la zona de disponibilidad en la que se aprovisionarán las instancias. La zona de disponibilidad debe corresponder a la ubicación de la capacidad de computación acelerada.

   1. En **Volumen de almacenamiento adicional por instancia (GB) - opcional**, especifique un número entero entre 1 y 16 384 para establecer el tamaño de un volumen adicional de Elastic Block Store (EBS) en gigabytes (GB). El volumen de EBS está asociado a cada instancia del grupo de instancias. La ruta de montaje predeterminada para el volumen de EBS adicional es `/opt/sagemaker`. Una vez que el clúster se haya creado correctamente, puede utilizar SSH en las instancias del clúster (nodos) y verificar si el volumen de EBS está montado correctamente ejecutando el comando `df -h`. La conexión de un volumen de EBS adicional proporciona un almacenamiento estable, fuera de la instancia y persistente de forma independiente, tal y como se describe en la sección [Amazon EBS volumes](https://docs.aws.amazon.com//ebs/latest/userguide/ebs-volumes.html) de la *Guía del usuario de Amazon Elastic Block Store*.

   1. Elija **Agregar grupo de instancias**.

1.  En **Configuración rápida predeterminada**, revise los ajustes predeterminados. En esta sección se enumeran todos los ajustes predeterminados para la creación del clúster, incluidos todos los AWS recursos nuevos que se crearán durante el proceso de creación del clúster.

1. Seleccione **Enviar**.

Para obtener más información, consulte [Cómo empezar a SageMaker HyperPod usar la consola de SageMaker IA](smcluster-getting-started-slurm-console.md).

## Cree un clúster orquestado por EKS SageMaker HyperPod
<a name="sagemaker-hyperpod-quickstart-eks"></a>

Siga estos pasos para crear su primer SageMaker HyperPod clúster con la orquestación de Amazon EKS.

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

1. Seleccione **HyperPod Clusters** en el panel de navegación izquierdo y, a continuación, **Cluster Management**.

1. En la página **SageMaker HyperPod Clústeres**, elija **Crear HyperPod clúster**. 

1. En el menú desplegable **Crear HyperPod clúster**, elija **Orchestrated by Amazon EKS**.

1. En la página de creación de clústeres, seleccione **Configuración rápida**. Con esta opción, puede empezar inmediatamente con la configuración predeterminada. SageMaker La IA creará nuevos recursos, como VPC, subredes, grupos de seguridad, un bucket de Amazon S3, una función de IAM y Lustre, FSx durante el proceso de creación del clúster.

1. En **Configuración general**, especifique un nombre para el nuevo clúster. Después de crear el clúster no puede cambiarle el nombre. 

1. En **Grupos de instancias**, elija **Agregar grupo**. Cada grupo de instancias se puede configurar de una forma diferente y se puede crear un clúster heterogéneo que conste de varios grupos de instancias con diversos tipos de instancias. Para implementar un clúster, debe agregar al menos un grupo de instancias. Puede añadir un grupo de instancias cada vez. Si desea crear varios grupos de instancias, repita el proceso para cada uno de ellos.

   Siga estos pasos para agregar un grupo de instancias.

   1. Para **Tipo del grupo de instancias**, seleccione **Estándar** o **Grupo de instancias restringido (RIG)**. En general, se selecciona **Estándar** pues proporciona un entorno computacional de uso general sin restricciones de seguridad adicionales. **Grupo de instancias restringido (RIG)** es un entorno especializado para la personalización de modelos fundacionales, como Amazon Nova. Para obtener más información sobre cómo configurar RIG para la personalización de modelos de Amazon Nova, consulte la personalización de Amazon Nova SageMaker HyperPod en la guía del [usuario de Amazon Nova 1.0 o en la guía](https://docs.aws.amazon.com//nova/latest/userguide/nova-hp.html) del [usuario de Amazon Nova 2.0](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp.html).

   1. En **Nombre**, especifique un nombre para el grupo de instancias.

   1.  En **Capacidad de instancia**, elija la capacidad bajo demanda o un plan de entrenamiento para reservar recursos de computación.

   1. En **Tipo de instancia**, elija la instancia del grupo de instancias. Asegúrese de elegir el tipo de instancia con cuotas suficientes en su cuenta o solicite cuotas adicionales accediendo a [SageMaker HyperPod cuotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

   1. En **Cantidad de instancias**, especifique un número entero que no supere la cuota de instancias de uso del clúster. Para este inicio rápido, introduzca **1** para los tres grupos.

   1. En **Zona de disponibilidad de destino**, elija la zona de disponibilidad en la que se aprovisionarán las instancias. La zona de disponibilidad debe corresponder a la ubicación de la capacidad de computación acelerada.

   1. En **Volumen de almacenamiento adicional por instancia (GB) - opcional**, especifique un número entero entre 1 y 16 384 para establecer el tamaño de un volumen adicional de Elastic Block Store (EBS) en gigabytes (GB). El volumen de EBS está asociado a cada instancia del grupo de instancias. La ruta de montaje predeterminada para el volumen de EBS adicional es `/opt/sagemaker`. Una vez que el clúster se haya creado correctamente, puede utilizar SSH en las instancias del clúster (nodos) y verificar si el volumen de EBS está montado correctamente ejecutando el comando `df -h`. La conexión de un volumen de EBS adicional proporciona un almacenamiento estable, fuera de la instancia y persistente de forma independiente, tal y como se describe en la sección [Amazon EBS volumes](https://docs.aws.amazon.com//ebs/latest/userguide/ebs-volumes.html) de la *Guía del usuario de Amazon Elastic Block Store*.

   1. En **Comprobaciones exhaustivas del estado de las instancias**, elija la opción deseada. Las comprobaciones exhaustivas de estado supervisan el estado de las instancias durante la creación y después de las actualizaciones de software, y recuperan automáticamente las instancias con error mediante reinicios o sustituciones cuando están habilitadas.

   1. Elija **Agregar grupo de instancias**.

1.  En **Configuración rápida predeterminada**, revise los ajustes predeterminados. En esta sección se enumeran todos los ajustes predeterminados para la creación del clúster, incluidos todos los AWS recursos nuevos que se crearán durante el proceso de creación del clúster.

1. Seleccione **Enviar**.

Para obtener más información, consulte [Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

## Envío de cargas de trabajo
<a name="sagemaker-hyperpod-quickstart-workload"></a>

Siga estos tutoriales del taller para enviar ejemplos de cargas de trabajo.
+ [Amazon SageMaker HyperPod para Slurm](https://catalog.workshops.aws/sagemaker-hyperpod/en-US)
+ [Amazon SageMaker HyperPod para Amazon EKS](https://catalog.workshops.aws/sagemaker-hyperpod-eks/en-US)

# Requisitos previos para su uso SageMaker HyperPod
<a name="sagemaker-hyperpod-prerequisites"></a>

En las siguientes secciones se explican los requisitos previos antes de empezar. SageMaker HyperPod

**Topics**
+ [SageMaker HyperPod cuotas](#sagemaker-hyperpod-prerequisites-quotas)
+ [Configuración SageMaker HyperPod con una Amazon VPC personalizada](#sagemaker-hyperpod-prerequisites-optional-vpc)
+ [Configuración de clústeres en varios SageMaker HyperPod AZs](#sagemaker-hyperpod-prerequisites-multiple-availability-zones)
+ [Configurar AWS Systems Manager y ejecutar como para el control de acceso de los usuarios del clúster](#sagemaker-hyperpod-prerequisites-ssm)
+ [(Opcional) Configuración SageMaker HyperPod con Amazon FSx for Lustre](#sagemaker-hyperpod-prerequisites-optional-fsx)

## SageMaker HyperPod cuotas
<a name="sagemaker-hyperpod-prerequisites-quotas"></a>

Puedes crear SageMaker HyperPod clústeres según las cuotas de *uso de clústeres* de tu AWS cuenta.

**importante**  
Para obtener más información sobre SageMaker HyperPod los precios, consulta [SageMaker HyperPod precios](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-pricing) [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

### Consulta SageMaker HyperPod las cuotas de Amazon utilizando el Consola de administración de AWS
<a name="sagemaker-hyperpod-prerequisites-quotas-view"></a>

Busca los valores predeterminados y aplicados de una *cuota*, también denominada *límite*, para el *uso del clúster*, que se utiliza para SageMaker HyperPod.

1. Abra la [consola de Service Quotas](https://console.aws.amazon.com/servicequotas/).

1. En el panel de navegación de la izquierda, elija **Servicios de AWS **.

1. En la lista de **AWS servicios**, busca y selecciona **Amazon SageMaker AI**.

1. En la lista de **cuotas de servicio**, puede ver el nombre de la cuota de servicio, el valor aplicado (si está disponible), la cuota AWS predeterminada y si el valor de la cuota es ajustable. 

1. En la barra de búsqueda, escriba **uso del clúster**. Se mostrarán las cuotas de uso del clúster, las cuotas aplicadas y las cuotas predeterminadas.

**Lista de cuotas de servicio comunes para crear un HyperPod clúster y sus requisitos previos**

Es posible que desee comprobar si ha solicitado aumentar el límite de las cuotas de servicio para las siguientes cuotas para crear un nuevo HyperPod clúster junto con los requisitos previos en la consola de IA. SageMaker Ve a la consola **de Service Quota** y busca los siguientes términos.


****  

| No | Nombre de la cuota | Término de búsqueda | Description (Descripción) | 
| --- | --- | --- | --- | 
| 1 | Número máximo de instancias permitido por SageMaker HyperPod clúster | En SageMaker AI, busque «Número máximo de instancias permitido por SageMaker HyperPod clúster» | El valor de tu cuota a nivel de cuenta debe ser superior al número de instancias que deseas añadir a tu clúster | 
| 2 | Tamaño máximo del volumen de EBS en GB para una instancia de clúster SageMaker HyperPod  |  En SageMaker AI, busque «Tamaño máximo del volumen de EBS en GB para una instancia de HyperPod clúster»   |  El valor de su cuota a nivel de cuenta debe ser superior al volumen de EBS que desea añadir a su clúster  | 
| 3 | Número total de instancias permitidas en los clústeres SageMaker HyperPod |  En SageMaker AI, busque «Número total de instancias permitidas en SageMaker HyperPod los clústeres»   | El valor de tu cuota a nivel de cuenta debe ser superior al total de instancias que deseas añadir a todos los clústeres de tu cuenta en conjunto | 
| 4 |  Cuotas de instancias   |  En SageMaker AI, busque «ml». «<instance\$1type>para uso en clústeres», por ejemplo: ml.p5.48xlarge para uso en clústeres.  | El valor de la cuota a nivel de cuenta para un tipo de instancia concreto (por ejemplo, ml.p5.48xlarge) debe ser superior al número de instancias que se van a añadir a todos los clústeres de la cuenta en conjunto. | 
| 5 |  VPCs por región  | En Amazon Virtual Private Cloud (Amazon VPC), busque «VPCspor región». | El valor de la cuota a nivel de cuenta debe ser suficiente para crear una nueva VPC en la cuenta al configurar el clúster. HyperPod Comprueba si ya has agotado este límite de cuota consultando la consola de VPC. Este aumento de cuota solo es necesario si va a crear una nueva VPC mediante la opción de configuración de clústeres rápida o personalizada de la SageMaker HyperPod consola. | 
| 6 |  Puertas de enlace de Internet por región  |  En Amazon Virtual Private Cloud (Amazon VPC), busque «Puertas de enlace de Internet por región»  | El valor de la cuota a nivel de cuenta debe ser suficiente para crear una puerta de enlace de Internet adicional en la cuenta al configurar el clúster. SageMaker HyperPod Este aumento de cuota solo es necesario si va a crear una nueva VPC mediante la opción de configuración de clústeres rápida o personalizada de la SageMaker HyperPod consola.  | 
| 7 | Interfaces de red por región | En Amazon Virtual Private Cloud (Amazon VPC), busque «Interfaces de red por región» |  El valor de la cuota a nivel de cuenta debe tener suficientes interfaces de red en la cuenta al configurar el clúster. HyperPod   | 
| 8 | Elástico EC2-VPC IPs | En Amazon Elastic Compute Cloud (Amazon EC2), busque «EC2-VPC Elastic» IPs | El valor de la cuota a nivel de cuenta debe ser suficiente para crear una nueva VPC en la cuenta al configurar el clúster. HyperPod Comprueba si ya has agotado este límite de cuota consultando la consola de VPC. Este aumento de cuota solo es necesario si va a crear una nueva VPC mediante la opción de configuración de clústeres rápida o personalizada de la SageMaker HyperPod consola. | 

### Solicita un aumento de SageMaker HyperPod cuota de Amazon mediante el Consola de administración de AWS
<a name="sagemaker-hyperpod-prerequisites-quotas-increase"></a>

Aumente sus cuotas por cuenta o recurso.

1. Para aumentar la cuota de instancias para el *uso del clúster*, seleccione la cuota que desea aumentar.

1. Si la cuota es ajustable, puede solicitar un aumento de la cuota por cuenta o recurso en función del valor que aparezca en la columna de **Capacidad de ajuste**.

1. En **Aumentar el valor de la cuota**, introduzca el nuevo valor. El nuevo valor debe ser mayor que el valor actual.

1. Seleccione **Solicitar**.

1. Para ver las solicitudes pendientes o resueltas recientemente en la consola, acceda a la pestaña **Historial de solicitudes** de la página de detalles del servicio o elija **Panel** en el panel de navegación. Para las solicitudes pendientes, seleccione el estado de la solicitud para abrir la recepción de solicitud. El estado inicial de una solicitud es **Pendiente**. Cuando el estado cambie a **Cuota solicitada**, verás el número de caso con AWS Support. Elija el número de caso para abrir el ticket para su solicitud.

Para obtener más información sobre cómo solicitar un aumento de cuota en general, consulte [Requesting a Quota Increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) en la *Guía de usuario de Service Quotas de AWS *.

## Configuración SageMaker HyperPod con una Amazon VPC personalizada
<a name="sagemaker-hyperpod-prerequisites-optional-vpc"></a>

Para configurar un SageMaker HyperPod clúster con una Amazon VPC personalizada, revise los siguientes requisitos previos.

**nota**  
La configuración de la VPC es obligatoria para la orquestación de Amazon EKS. Para la orquestación de Slurm, la configuración de la VPC es opcional.
+  Valide la capacidad de la [Elastic Network Interface](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) (ENI) Cuenta de AWS antes de crear un SageMaker HyperPod clúster con una VPC personalizada. Amazon EC2 controla el límite de ENI y varía según. Región de AWS SageMaker HyperPod no puede solicitar automáticamente aumentos de cuota. 

**Para verificar su cuota de ENI actual:**

  1. Abra la [consola de Service Quotas](https://console.aws.amazon.com/servicequotas/).

  1. En la sección **Administrar cuotas**, usa la lista desplegable ** AWS Servicios** para buscar **VPC**. 

  1. Elija consultar las cuotas de **Amazon Virtual Private Cloud (Amazon VPC)**. 

  1. Busque la cuota de servicio, las **interfaces de red por región** o el **código de cuota** `L-DF5E4CA3`.

  Si su límite de ENI actual no es suficiente para las necesidades de su SageMaker HyperPod clúster, solicite un aumento de cuota. Garantizar de antemano una capacidad de ENI adecuada ayuda a evitar errores en la implementación del clúster.
+ Cuando utilices una VPC personalizada para conectar un SageMaker HyperPod clúster con AWS recursos, proporciona el nombre, el ID, la subred y el grupo de seguridad de la VPC durante la IDs creación del clúster. Región de AWS IDs 
**nota**  
Cuando su Amazon VPC y sus subredes admiten IPv6 el `OverrideVPCConfig` atributo [https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateCluster.html#sagemaker-CreateCluster-request-VpcConfig](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateCluster.html#sagemaker-CreateCluster-request-VpcConfig)de a nivel de clúster o de grupo de instancias [https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html), las comunicaciones de red varían según la plataforma de organización del clúster:  
Los clústeres organizados por SLURM configuran automáticamente los nodos con direcciones IPv6 Y IPv4 duales, lo que permite una comunicación de red inmediata. IPv6 No se requiere ninguna configuración adicional aparte de la configuración. `VPCConfig` IPv6 
En los clústeres orquestados por EKS, los nodos reciben direcciones de doble pila, pero los pods solo se pueden usar cuando IPv6 el clúster de Amazon EKS está habilitado de forma explícita. IPv6 Debe crear un nuevo clúster de IPv6 Amazon EKS; los clústeres de IPv4 Amazon EKS existentes no se pueden convertir en IPv6. Para obtener información sobre la implementación de un clúster de IPv6 Amazon EKS, consulte [Implementación de Amazon EKS IPv6 clústeres](https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl).
Recursos adicionales para la IPv6 configuración:  
Para obtener información sobre cómo añadir IPv6 soporte a su VPC, consulte [IPv6 Support for VPC](https://docs.aws.amazon.com//vpc/latest/userguide/vpc-migrate-ipv6.html).
Para obtener información sobre la creación de una nueva VPC IPv6 compatible, [Amazon VPC consulte](https://docs.aws.amazon.com//vpc/latest/userguide/create-vpc.html) la Guía de creación.
Para configurar SageMaker HyperPod con una Amazon VPC personalizada, consulte Configuración de [Amazon VPC](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc) personalizada para. SageMaker HyperPod
+ Asegúrese de que todos los recursos estén desplegados en el mismo lugar que Región de AWS el SageMaker HyperPod clúster. Configure las reglas del grupo de seguridad para permitir la comunicación entre recursos dentro de la VPC. Por ejemplo, al crear una VPC en `us-west-2`, aprovisione subredes en una o más zonas de disponibilidad (como `us-west-2a` o `us-west-2b`) y cree un grupo de seguridad que permita el tráfico dentro del grupo.
**nota**  
SageMaker HyperPod admite el despliegue en zonas de disponibilidad múltiple. Para obtener más información, consulte [Configuración de clústeres en varios SageMaker HyperPod AZs](#sagemaker-hyperpod-prerequisites-multiple-availability-zones).
+ Establezca la conectividad Amazon Simple Storage Service (Amazon S3) para los grupos de SageMaker HyperPod instancias implementados por VPC mediante la creación de un punto de enlace de VPC. Sin acceso a Internet, los grupos de instancias no pueden almacenar ni obtener scripts de ciclo de vida, datos de entrenamiento ni artefactos de modelos. Le recomendamos que cree una política de IAM personalizada que restrinja el acceso al bucket de Amazon S3 a la VPC privada. Para obtener más información, consulte [Endpoints for Amazon S3](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html) en la *Guía del usuario de Amazon VPC de AWS PrivateLink *.
+ En el caso de HyperPod los clústeres que utilizan instancias habilitadas para Elastic Fabric Adapter (EFA), configure el grupo de seguridad para permitir que todo el tráfico entrante y saliente entre y hacia el propio grupo de seguridad. En concreto, evite utilizar `0.0.0.0/0` para reglas de salida, ya que esto podría provocar errores en las comprobaciones de estado de EFA. Para obtener más información sobre las instrucciones de preparación de los grupos de seguridad de EFA, consulte [Paso 1: preparación de un grupo de seguridad habilitado para EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security) en la *Guía del usuario de Amazon EC2*.
+ Tenga en cuenta detenidamente el tamaño del bloque de enrutamiento entre dominios sin clase (CIDR) de su subred antes de crear clústeres. HyperPod 
  + El tamaño del bloque de CIDR de la subred ya no se puede cambiar una vez creado. Esto es especialmente importante cuando se utilizan instancias aceleradas de gran tamaño, como las P5. Si el tamaño del bloque es insuficiente, debe volver a crear los clústeres al escalarlos verticalmente.
  + Al elegir el tamaño del bloque de CIDR de la subred adecuado, tenga en cuenta estos factores: los tipos de instancia, el número de instancias esperado y el número de direcciones IP que consume cada instancia.
  + En el caso de los clústeres orquestados por Slurm, cada instancia P5 puede crear 32 direcciones IP (una por cada tarjeta de red). En el caso de los clústeres orquestados por EKS, cada instancia P5 puede crear 81 direcciones IP (50 de la tarjeta principal y una de cada una de las 31 tarjetas restantes). Para obtener más información detallada, consulte [Especificaciones de la red](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html#ac_network) en la *Guía para desarrolladores de los tipos de instancia de Amazon EC2*.
  + [Para ver ejemplos de CloudFormation plantillas que especifican el tamaño del bloque CIDR de la subred, consulte la plantilla [HyperPod Slurm y la plantilla HyperPod ](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod.yaml)[Amazon EKS](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/cfn-templates/nested-stacks/private-subnet-stack.yaml) en el repositorio. awsome-distributed-training ](https://github.com/aws-samples/awsome-distributed-training/tree/main)

## Configuración de clústeres en varios SageMaker HyperPod AZs
<a name="sagemaker-hyperpod-prerequisites-multiple-availability-zones"></a>

Puede configurar SageMaker HyperPod los clústeres en varias zonas de disponibilidad (AZs) para mejorar la fiabilidad y la disponibilidad.

**nota**  
El tráfico del Elastic Fabric Adapter (EFA) no puede cruzar o. AZs VPCs Esto no se aplica al tráfico de IP normal desde el dispositivo de ENA de una interfaz EFA. Para obtener más información, consulte [Limitaciones de EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html).
+ **Comportamiento predeterminado**

  HyperPod implementa todas las instancias del clúster en una única zona de disponibilidad. La configuración de la VPC determina la AZ de implementación:
  + Para los clústeres orquestados por Slurm, la configuración de la VPC es opcional. Cuando no se proporciona ninguna configuración de VPC, el HyperPod valor predeterminado es una subred de la VPC de la plataforma. 
  + Para los clústeres orquestados por EKS, la configuración de la VPC es obligatoria.
  + Para los orquestadores Slurm y EKS, cuando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)se proporciona, HyperPod selecciona una subred de la lista de subredes proporcionada. `VpcConfig` Todos los grupos de instancias heredan la AZ de la subred. 
**nota**  
Después de crear un clúster, no podrás modificar la configuración de su `VpcConfig`.

  Para obtener más información sobre la configuración de los HyperPod clústeres, consulte VPCs la sección anterior,. [Configuración SageMaker HyperPod con una Amazon VPC personalizada](#sagemaker-hyperpod-prerequisites-optional-vpc)
+ **Configuración de múltiples zonas de disponibilidad**

  Puedes configurar tu HyperPod clúster en varios grupos AZs al crear un clúster o al añadir un nuevo grupo de instancias a un clúster existente. Para configurar las implementaciones multi-AZ, puede anular la configuración de la VPC predeterminada del clúster especificando diferentes subredes y grupos de seguridad, si es posible en diferentes zonas de disponibilidad, para los grupos de instancias individuales de su clúster. 

  SageMaker HyperPod Los usuarios de la API pueden usar la `OverrideVpcConfig` propiedad incluida en o [ClusterInstanceGroupSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html)cuando trabajen con [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)o [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) APIs.

  El campo `OverrideVpcConfig`:
  + No se puede modificar una vez creado el grupo de instancias.
  + Es opcional. Si no se especifica, se utiliza el nivel de clúster [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html) de forma predeterminada.
  + En el caso de los clústeres orquestados por Slurm, solo se puede especificar cuando se proporciona el nivel de clúster `VpcConfig`. Si no se especifica `VpcConfig` para el nivel de clúster, `OverrideVpcConfig` no se puede usar para ningún grupo de instancias.
  + Contiene dos campos obligatorios:
    + `Subnets`- acepta entre 1 y 16 subredes IDs
    + `SecurityGroupIds`- acepta entre 1 y 5 grupos de seguridad IDs

  Para obtener más información sobre la creación o actualización de un SageMaker HyperPod clúster mediante la interfaz de usuario de la SageMaker HyperPod consola o AWS CLI:
  + Orquestación de Slurm: consulte [Funcionamiento](sagemaker-hyperpod-operate-slurm.md) de clústeres orquestados por Slurm. HyperPod
  + Orquestación de EKS: [ HyperPodConsulte Funcionamiento de](sagemaker-hyperpod-eks-operate.md) clústeres orquestados por EKS.

**nota**  
Al ejecutar cargas de trabajo en varios AZs, tenga en cuenta que la comunicación de red entre AZs ellas introduce una latencia adicional. Tenga en cuenta este efecto al diseñar aplicaciones a las que les afecta la latencia.

## Configurar AWS Systems Manager y ejecutar como para el control de acceso de los usuarios del clúster
<a name="sagemaker-hyperpod-prerequisites-ssm"></a>

[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami)viene con [AWS Systems Manager](https://aws.amazon.com/systems-manager/)(SSM) listo para usar para ayudarte a administrar el acceso a los grupos de instancias SageMaker HyperPod del clúster. En esta sección, se describe cómo crear usuarios del sistema operativo (SO) en los SageMaker HyperPod clústeres y asociarlos a los usuarios y roles de IAM. Esto resulta útil para autenticar las sesiones de SSM con las credenciales de la cuenta de usuario del sistema operativo.

**nota**  
Al conceder a los usuarios el acceso a los nodos del HyperPod clúster, pueden instalar y utilizar software gestionado por los usuarios en los nodos. Asegúrese de cumplir con el principio de conceder privilegios mínimos a los usuarios.

### Habilitar Ejecutar como en su cuenta AWS
<a name="sagemaker-hyperpod-prerequisites-ssm-enable-runas"></a>

Como administrador de AWS cuentas o administrador de la nube, puede administrar el acceso a SageMaker HyperPod los clústeres a nivel de usuario o rol de IAM mediante la [función Ejecutar como de SSM](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). Con esta característica, puede iniciar cada sesión de SSM con el usuario del sistema operativo asociado al usuario o rol de IAM.

Para activar la función Ejecutar como en tu AWS cuenta, sigue los pasos que se indican [en Activar la compatibilidad con Ejecutar como para los nodos gestionados de Linux y macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). Si ya ha creado usuarios de sistema operativo en su clúster, asegúrese de asociarlos a roles o usuarios de IAM etiquetándolos como se indica en la **Opción 2** del paso 5 de la sección **Activación del soporte Ejecutar como para nodos administrados de Linux y macOS**.

## (Opcional) Configuración SageMaker HyperPod con Amazon FSx for Lustre
<a name="sagemaker-hyperpod-prerequisites-optional-fsx"></a>

Para empezar a usar SageMaker HyperPod y mapear las rutas de datos entre el clúster y su sistema de archivos de FSx For Lustre, seleccione una de las Regiones de AWS opciones compatibles con. SageMaker HyperPod Tras elegir la Región de AWS que prefiera, también debe determinar qué zona de disponibilidad (AZ) utilizar. 

Si utiliza nodos de SageMaker HyperPod cómputo AZs distintos de aquel en el AZs que está configurado el sistema de archivos de FSx For Lustre Región de AWS, es posible que se produzca una sobrecarga de comunicación y de red. Le recomendamos que utilice la misma zona de disponibilidad física que la de la cuenta de SageMaker HyperPod servicio para evitar cualquier tráfico entre zonas de disponibilidad entre los SageMaker HyperPod clústeres y su sistema de archivos de FSx For Lustre. Asegúrese de haberla configurado también con su VPC. Si desea utilizar Amazon FSx como sistema de archivos principal para el almacenamiento, debe configurar SageMaker HyperPod los clústeres con su VPC.

# AWS Identity and Access Management para SageMaker HyperPod
<a name="sagemaker-hyperpod-prerequisites-iam"></a>

AWS Identity and Access Management (IAM) es un AWS servicio que ayuda a un administrador a controlar de forma segura el acceso a los AWS recursos. Los administradores de IAM controlan quién está *autenticado* (ha iniciado sesión) y *autorizado* (tiene permisos) para utilizar recursos de Amazon EKS. La IAM es un AWS servicio que puede utilizar sin coste adicional.

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Supongamos que hay dos niveles principales de SageMaker HyperPod usuarios: los usuarios *administradores de clústeres y los usuarios* *científicos de datos*.
+ **Usuarios administradores de clústeres**: son responsables de crear y administrar SageMaker HyperPod los clústeres. Esto incluye configurar los HyperPod clústeres y administrar el acceso de los usuarios a ellos.
  + Cree y configure SageMaker HyperPod clústeres con Slurm o Amazon EKS.
  + Cree y configure funciones de IAM para los usuarios de científicos de datos y HyperPod los recursos del clúster.
  + Para SageMaker HyperPod la coordinación con Amazon EKS, cree y configure las [entradas de acceso de EKS, el control de acceso](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) [basado en roles (RBAC)](sagemaker-hyperpod-eks-setup-rbac.md) y Pod Identity para cumplir con los casos de uso de la ciencia de datos.
+ **Usuarios científicos de datos**: se centran en el entrenamiento de modelos de ML. Utilizan el orquestador de código abierto o la SageMaker HyperPod CLI para enviar y gestionar los trabajos de formación.
  + Asumen y utilizan el rol de IAM proporcionado por los usuarios administradores de clústeres.
  + Interactúe con el orquestador de código abierto CLIs compatible con SageMaker HyperPod (Slurm o Kubernetes) o con la SageMaker HyperPod CLI para comprobar la capacidad de los clústeres, conectarse al clúster y enviar las cargas de trabajo.

Configure las funciones de IAM para los administradores de clústeres adjuntando los permisos o políticas adecuados para operar los clústeres. SageMaker HyperPod Los administradores de clústeres también deben crear funciones de IAM para proporcionar a SageMaker HyperPod los recursos la responsabilidad de ejecutar y comunicarse con AWS los recursos necesarios, como Amazon S3 CloudWatch, Amazon y AWS Systems Manager (SSM). Por último, el administrador de la AWS cuenta o los administradores del clúster deben conceder a los científicos permisos para acceder a los SageMaker HyperPod clústeres y ejecutar cargas de trabajo de aprendizaje automático.

Según el orquestador que elija, los permisos necesarios para el administrador de clústeres y los científicos pueden variar. También puede controlar el alcance de los permisos para las distintas acciones de los roles mediante las claves de condición de cada servicio. Utilice las siguientes referencias de autorización de servicios para añadir un alcance detallado a los servicios relacionados con. SageMaker HyperPod
+ [Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html)
+ [Amazon Elastic Container Registry](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html) (para la organización de SageMaker HyperPod clústeres con Amazon EKS)
+ [Amazon Elastic Kubernetes](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html) Service (para la organización de SageMaker HyperPod clústeres con Amazon EKS)
+ [Amazon FSx](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfsx.html)
+ [AWS IAM Identity Center (sucesor de Single Sign-On) AWS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiamidentitycentersuccessortoawssinglesign-on.html)
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html)
+ [Amazon Simple Storage Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html)
+ [AWS Systems Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanager.html)

**Topics**
+ [Permisos de IAM para crear clústeres](#sagemaker-hyperpod-prerequisites-iam-cluster-creation)
+ [Usuarios de IAM para la administración de clústeres](#sagemaker-hyperpod-prerequisites-iam-cluster-admin)
+ [Usuarios de IAM para científicos](#sagemaker-hyperpod-prerequisites-iam-cluster-user)
+ [Función de IAM para SageMaker HyperPod](#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod)

## Permisos de IAM para crear clústeres
<a name="sagemaker-hyperpod-prerequisites-iam-cluster-creation"></a>

La creación de HyperPod clústeres requiere los permisos de IAM descritos en el siguiente ejemplo de política. Si Cuenta de AWS tiene [https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html)permisos, estos permisos se conceden de forma predeterminada.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateCluster",
                "sagemaker:DeleteCluster",
                "sagemaker:UpdateCluster"
            ],
            "Resource": "arn:aws:sagemaker:*:*:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:AddTags"
            ],
            "Resource": "arn:aws:sagemaker:*:*:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListTags",
                "sagemaker:ListClusters",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListComputeQuotas",
                "sagemaker:ListTrainingPlans",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack",
                "cloudformation:DeleteStack",
                "cloudformation:ContinueUpdateRollback",
                "cloudformation:SetStackPolicy",
                "cloudformation:ValidateTemplate",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackEvents",
                "cloudformation:Get*",
                "cloudformation:List*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/sagemaker-*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "sagemaker.amazonaws.com",
                        "eks.amazonaws.com",
                        "lambda.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "iam:GetRole"
            ],
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "sagemaker.amazonaws.com",
                        "eks.amazonaws.com",
                        "lambda.amazonaws.com",
                        "cloudformation.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "AmazonVPCFullAccess",
            "Effect": "Allow",
            "Action": [
                "ec2:AcceptVpcPeeringConnection",
                "ec2:AcceptVpcEndpointConnections",
                "ec2:AllocateAddress",
                "ec2:AssignIpv6Addresses",
                "ec2:AssignPrivateIpAddresses",
                "ec2:AssociateAddress",
                "ec2:AssociateDhcpOptions",
                "ec2:AssociateRouteTable",
                "ec2:AssociateSecurityGroupVpc",
                "ec2:AssociateSubnetCidrBlock",
                "ec2:AssociateVpcCidrBlock",
                "ec2:AttachClassicLinkVpc",
                "ec2:AttachInternetGateway",
                "ec2:AttachNetworkInterface",
                "ec2:AttachVpnGateway",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateCarrierGateway",
                "ec2:CreateCustomerGateway",
                "ec2:CreateDefaultSubnet",
                "ec2:CreateDefaultVpc",
                "ec2:CreateDhcpOptions",
                "ec2:CreateEgressOnlyInternetGateway",
                "ec2:CreateFlowLogs",
                "ec2:CreateInternetGateway",
                "ec2:CreateLocalGatewayRouteTableVpcAssociation",
                "ec2:CreateNatGateway",
                "ec2:CreateNetworkAcl",
                "ec2:CreateNetworkAclEntry",
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:CreateRoute",
                "ec2:CreateRouteTable",
                "ec2:CreateSecurityGroup",
                "ec2:CreateSubnet",
                "ec2:CreateTags",
                "ec2:CreateVpc",
                "ec2:CreateVpcEndpoint",
                "ec2:CreateVpcEndpointConnectionNotification",
                "ec2:CreateVpcEndpointServiceConfiguration",
                "ec2:CreateVpcPeeringConnection",
                "ec2:CreateVpnConnection",
                "ec2:CreateVpnConnectionRoute",
                "ec2:CreateVpnGateway",
                "ec2:DeleteCarrierGateway",
                "ec2:DeleteCustomerGateway",
                "ec2:DeleteDhcpOptions",
                "ec2:DeleteEgressOnlyInternetGateway",
                "ec2:DeleteFlowLogs",
                "ec2:DeleteInternetGateway",
                "ec2:DeleteLocalGatewayRouteTableVpcAssociation",
                "ec2:DeleteNatGateway",
                "ec2:DeleteNetworkAcl",
                "ec2:DeleteNetworkAclEntry",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DeleteRoute",
                "ec2:DeleteRouteTable",
                "ec2:DeleteSecurityGroup",
                "ec2:DeleteSubnet",
                "ec2:DeleteTags",
                "ec2:DeleteVpc",
                "ec2:DeleteVpcEndpoints",
                "ec2:DeleteVpcEndpointConnectionNotifications",
                "ec2:DeleteVpcEndpointServiceConfigurations",
                "ec2:DeleteVpcPeeringConnection",
                "ec2:DeleteVpnConnection",
                "ec2:DeleteVpnConnectionRoute",
                "ec2:DeleteVpnGateway",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAddresses",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeCarrierGateways",
                "ec2:DescribeClassicLinkInstances",
                "ec2:DescribeCustomerGateways",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeEgressOnlyInternetGateways",
                "ec2:DescribeFlowLogs",
                "ec2:DescribeInstances",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeIpv6Pools",
                "ec2:DescribeLocalGatewayRouteTables",
                "ec2:DescribeLocalGatewayRouteTableVpcAssociations",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeMovingAddresses",
                "ec2:DescribeNatGateways",
                "ec2:DescribeNetworkAcls",
                "ec2:DescribeNetworkInterfaceAttribute",
                "ec2:DescribeNetworkInterfacePermissions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribePrefixLists",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroupReferences",
                "ec2:DescribeSecurityGroupRules",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSecurityGroupVpcAssociations",
                "ec2:DescribeStaleSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeVpcClassicLink",
                "ec2:DescribeVpcClassicLinkDnsSupport",
                "ec2:DescribeVpcEndpointConnectionNotifications",
                "ec2:DescribeVpcEndpointConnections",
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeVpcEndpointServiceConfigurations",
                "ec2:DescribeVpcEndpointServicePermissions",
                "ec2:DescribeVpcEndpointServices",
                "ec2:DescribeVpcPeeringConnections",
                "ec2:DescribeVpcs",
                "ec2:DescribeVpnConnections",
                "ec2:DescribeVpnGateways",
                "ec2:DetachClassicLinkVpc",
                "ec2:DetachInternetGateway",
                "ec2:DetachNetworkInterface",
                "ec2:DetachVpnGateway",
                "ec2:DisableVgwRoutePropagation",
                "ec2:DisableVpcClassicLink",
                "ec2:DisableVpcClassicLinkDnsSupport",
                "ec2:DisassociateAddress",
                "ec2:DisassociateRouteTable",
                "ec2:DisassociateSecurityGroupVpc",
                "ec2:DisassociateSubnetCidrBlock",
                "ec2:DisassociateVpcCidrBlock",
                "ec2:EnableVgwRoutePropagation",
                "ec2:EnableVpcClassicLink",
                "ec2:EnableVpcClassicLinkDnsSupport",
                "ec2:GetSecurityGroupsForVpc",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:ModifySecurityGroupRules",
                "ec2:ModifySubnetAttribute",
                "ec2:ModifyVpcAttribute",
                "ec2:ModifyVpcEndpoint",
                "ec2:ModifyVpcEndpointConnectionNotification",
                "ec2:ModifyVpcEndpointServiceConfiguration",
                "ec2:ModifyVpcEndpointServicePermissions",
                "ec2:ModifyVpcPeeringConnectionOptions",
                "ec2:ModifyVpcTenancy",
                "ec2:MoveAddressToVpc",
                "ec2:RejectVpcEndpointConnections",
                "ec2:RejectVpcPeeringConnection",
                "ec2:ReleaseAddress",
                "ec2:ReplaceNetworkAclAssociation",
                "ec2:ReplaceNetworkAclEntry",
                "ec2:ReplaceRoute",
                "ec2:ReplaceRouteTableAssociation",
                "ec2:ResetNetworkInterfaceAttribute",
                "ec2:RestoreAddressToClassic",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:UnassignIpv6Addresses",
                "ec2:UnassignPrivateIpAddresses",
                "ec2:UpdateSecurityGroupRuleDescriptionsEgress",
                "ec2:UpdateSecurityGroupRuleDescriptionsIngress"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CloudWatchPermissions",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:*",
                "logs:*",
                "sns:CreateTopic",
                "sns:ListSubscriptions",
                "sns:ListSubscriptionsByTopic",
                "sns:ListTopics",
                "sns:Subscribe",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "oam:ListSinks",
                "rum:*",
                "synthetics:*",
                "xray:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:PutBucketPolicy",
                "s3:PutBucketTagging",
                "s3:PutBucketPublicAccessBlock",
                "s3:PutBucketLogging",
                "s3:DeleteBucketPolicy",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:PutEncryptionConfiguration",
                "s3:AbortMultipartUpload",
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::*",
                "arn:aws:s3:::*/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "eks:CreateCluster",
                "eks:DeleteCluster",
                "eks:CreateNodegroup",
                "eks:DeleteNodegroup",
                "eks:UpdateNodegroupConfig",
                "eks:UpdateNodegroupVersion",
                "eks:UpdateClusterConfig",
                "eks:UpdateClusterVersion",
                "eks:CreateFargateProfile",
                "eks:DeleteFargateProfile",
                "eks:CreateAddon",
                "eks:DeleteAddon",
                "eks:UpdateAddon",
                "eks:CreateAccessEntry",
                "eks:DeleteAccessEntry",
                "eks:UpdateAccessEntry",
                "eks:AssociateAccessPolicy",
                "eks:AssociateIdentityProviderConfig",
                "eks:DisassociateIdentityProviderConfig",
                "eks:TagResource",
                "eks:UntagResource",
                "eks:AccessKubernetesApi",
                "eks:Describe*",
                "eks:List*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter",
                "ssm:PutParameter",
                "ssm:DeleteParameter",
                "ssm:DescribeParameters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "sagemaker.*.amazonaws.com",
                        "ec2.*.amazonaws.com",
                        "s3.*.amazonaws.com",
                        "eks.*.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction",
                "lambda:UpdateFunctionCode",
                "lambda:UpdateFunctionConfiguration",
                "lambda:AddPermission",
                "lambda:RemovePermission",
                "lambda:PublishLayerVersion",
                "lambda:DeleteLayerVersion",
                "lambda:InvokeFunction",
                "lambda:Get*",
                "lambda:List*",
                "lambda:TagResource"
            ],
            "Resource": [
                "arn:aws:lambda:*:*:function:*",
                "arn:aws:lambda:*:*:layer:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:DeleteRole",
                "iam:DeleteRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::*:role/*sagemaker*",
                "arn:aws:iam::*:role/*eks*",
                "arn:aws:iam::*:role/*hyperpod*",
                "arn:aws:iam::*:policy/*sagemaker*",
                "arn:aws:iam::*:policy/*hyperpod*",
                "arn:aws:iam::*:role/*LifeCycleScriptStack*",
                "arn:aws:iam::*:role/*LifeCycleScript*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:TagRole",
                "iam:PutRolePolicy",
                "iam:Get*",
                "iam:List*",
                "iam:AttachRolePolicy",
                "iam:DetachRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::*:role/*",
                "arn:aws:iam::*:policy/*"
            ]
        },
        {
            "Sid": "FullAccessToFSx",
            "Effect": "Allow",
            "Action": [
                "fsx:AssociateFileGateway",
                "fsx:AssociateFileSystemAliases",
                "fsx:CancelDataRepositoryTask",
                "fsx:CopyBackup",
                "fsx:CopySnapshotAndUpdateVolume",
                "fsx:CreateAndAttachS3AccessPoint",
                "fsx:CreateBackup",
                "fsx:CreateDataRepositoryAssociation",
                "fsx:CreateDataRepositoryTask",
                "fsx:CreateFileCache",
                "fsx:CreateFileSystem",
                "fsx:CreateFileSystemFromBackup",
                "fsx:CreateSnapshot",
                "fsx:CreateStorageVirtualMachine",
                "fsx:CreateVolume",
                "fsx:CreateVolumeFromBackup",
                "fsx:DetachAndDeleteS3AccessPoint",
                "fsx:DeleteBackup",
                "fsx:DeleteDataRepositoryAssociation",
                "fsx:DeleteFileCache",
                "fsx:DeleteFileSystem",
                "fsx:DeleteSnapshot",
                "fsx:DeleteStorageVirtualMachine",
                "fsx:DeleteVolume",
                "fsx:DescribeAssociatedFileGateways",
                "fsx:DescribeBackups",
                "fsx:DescribeDataRepositoryAssociations",
                "fsx:DescribeDataRepositoryTasks",
                "fsx:DescribeFileCaches",
                "fsx:DescribeFileSystemAliases",
                "fsx:DescribeFileSystems",
                "fsx:DescribeS3AccessPointAttachments",
                "fsx:DescribeSharedVpcConfiguration",
                "fsx:DescribeSnapshots",
                "fsx:DescribeStorageVirtualMachines",
                "fsx:DescribeVolumes",
                "fsx:DisassociateFileGateway",
                "fsx:DisassociateFileSystemAliases",
                "fsx:ListTagsForResource",
                "fsx:ManageBackupPrincipalAssociations",
                "fsx:ReleaseFileSystemNfsV3Locks",
                "fsx:RestoreVolumeFromSnapshot",
                "fsx:TagResource",
                "fsx:UntagResource",
                "fsx:UpdateDataRepositoryAssociation",
                "fsx:UpdateFileCache",
                "fsx:UpdateFileSystem",
                "fsx:UpdateSharedVpcConfiguration",
                "fsx:UpdateSnapshot",
                "fsx:UpdateStorageVirtualMachine",
                "fsx:UpdateVolume"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Usuarios de IAM para la administración de clústeres
<a name="sagemaker-hyperpod-prerequisites-iam-cluster-admin"></a>

Los administradores de clústeres (administradores) operan y configuran SageMaker HyperPod los clústeres y realizan las tareas en [SageMaker HyperPod Operaciones de clúster de Slurm](sagemaker-hyperpod-operate-slurm.md) ellos. El siguiente ejemplo de política incluye el conjunto mínimo de permisos para que los administradores de clústeres ejecuten el SageMaker HyperPod núcleo APIs y administren SageMaker HyperPod los clústeres de su AWS cuenta.

**nota**  
Los usuarios de IAM con funciones de administrador de clústeres pueden usar claves de condición para proporcionar un control de acceso detallado al administrar los recursos del SageMaker HyperPod clúster específicamente para las `UpdateCluster` acciones `CreateCluster` y. Para encontrar las claves de condición compatibles con estas acciones, busca `CreateCluster` o `UpdateCluster` en las [Acciones definidas por la SageMaker IA](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-actions-as-permissions).

------
#### [ Slurm ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateCluster",
                "sagemaker:ListClusters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:DeleteCluster",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:UpdateCluster",
                "sagemaker:UpdateClusterSoftware",
                "sagemaker:BatchDeleteClusterNodes"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        }
    ]
}
```

------
#### [ Amazon EKS ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/execution-role-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateCluster",
                "sagemaker:DeleteCluster",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "sagemaker:UpdateCluster",
                "sagemaker:UpdateClusterSoftware",
                "sagemaker:BatchAddClusterNodes",
                "sagemaker:BatchDeleteClusterNodes",
                "sagemaker:ListComputeQuotas",
                "sagemaker:ListClusterSchedulerConfigs",
                "sagemaker:DeleteClusterSchedulerConfig",
                "sagemaker:DeleteComputeQuota",
                "eks:DescribeCluster",
                "eks:CreateAccessEntry",
                "eks:DescribeAccessEntry",
                "eks:DeleteAccessEntry",
                "eks:AssociateAccessPolicy",
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Para conceder permisos de acceso a la consola de SageMaker IA, utilice el ejemplo de política que se proporciona en [Permisos necesarios para utilizar la consola de SageMaker IA de Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/security_iam_id-based-policy-examples.html#console-permissions).

Para conceder permisos de acceso a la consola Amazon EC2 Systems Manager, utilice el ejemplo de política que se proporciona [en Uso de AWS Systems Manager la consola en la](https://docs.aws.amazon.com/systems-manager/latest/userguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-console) Guía * AWS Systems Manager del usuario*.

También podría considerar la posibilidad de adjuntar la [`AmazonSageMakerFullAccess`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess)política al rol; sin embargo, tenga en cuenta que la `AmazonSageMakerFullAccess` política otorga permisos a todas las llamadas, funciones y recursos de la SageMaker API.

Para obtener más información sobre los usuarios de IAM en general, consulte [Usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) en la *Guía del usuario de AWS Identity and Access Management *.

## Usuarios de IAM para científicos
<a name="sagemaker-hyperpod-prerequisites-iam-cluster-user"></a>

Los científicos inician sesión y ejecutan cargas de trabajo de aprendizaje automático en los nodos del SageMaker HyperPod clúster aprovisionados por los administradores del clúster. A los científicos de tu AWS cuenta, debes concederles el permiso `"ssm:StartSession"` para ejecutar el comando SSM. `start-session` A continuación, se muestra una política de ejemplo para usuarios de IAM.

------
#### [ Slurm ]

Añada la siguiente política para otorgar permisos de sesión de SSM para conectarse a un destino de SSM para todos los recursos. Esto le permite acceder a los HyperPod clústeres.

------
#### [ JSON ]

****  

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

------

------
#### [ Amazon EKS ]

Otorgue los siguientes permisos de rol de IAM para que los científicos de datos ejecuten `hyperpod connect-cluster` comandos `hyperpod list-clusters` y comandos entre los comandos de la HyperPod CLI. Para obtener más información sobre la HyperPod CLI, consulte[Ejecución de tareas en SageMaker HyperPod clústeres orquestados por Amazon EKS](sagemaker-hyperpod-eks-run-jobs.md). También incluye permisos de sesión de SSM para conectarse a un destino de SSM para todos los recursos. Esto le permite acceder a HyperPod los clústeres.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeHyerpodClusterPermissions",
            "Effect": "Allow",
            "Action": [
                "sagemaker:DescribeCluster"
            ],
            "Resource": "arn:aws:sagemaker:us-east-2:111122223333:cluster/hyperpod-cluster-name"
        },
        {
            "Sid": "UseEksClusterPermissions",
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:sagemaker:us-east-2:111122223333:cluster/eks-cluster-name"
        },
        {
            "Sid": "ListClustersPermission",
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListClusters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:TerminateSession"
            ],
            "Resource": "*"    
        }
    ]
}
```

------

*Para conceder a los usuarios o roles de IAM de los científicos de datos acceso a Kubernetes APIs en el clúster, consulte también [Otorgar a los usuarios y roles de IAM acceso a Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/grant-k8s-access.html) en la Guía del usuario de Amazon EKS. APIs*

------

## Función de IAM para SageMaker HyperPod
<a name="sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod"></a>

Para que SageMaker HyperPod los clústeres se ejecuten y se comuniquen con AWS los recursos necesarios, es necesario crear un rol de IAM para que el HyperPod clúster lo asuma. 

Comience por asociar el rol administrado [AWS política gestionada: AmazonSageMakerHyperPodServiceRolePolicy](security-iam-awsmanpol-AmazonSageMakerHyperPodServiceRolePolicy.md). Con esta política AWS administrada, los grupos de instancias de SageMaker HyperPod clúster asumen la función de comunicarse con Amazon CloudWatch, Amazon S3 y AWS Systems Manager Agent (SSM Agent). Esta política administrada es el requisito mínimo para que SageMaker HyperPod los recursos se ejecuten correctamente, por lo que debes proporcionar una función de IAM junto con esta política a todos los grupos de instancias. 

**sugerencia**  
En función de sus preferencias a la hora de diseñar el nivel de permisos para varios grupos de instancias, también puede configurar varios roles de IAM y asociarlos a distintos grupos de instancias. Cuando configuras el acceso de los usuarios del clúster a nodos específicos del SageMaker HyperPod clúster, los nodos asumen la función con los permisos selectivos que adjuntas manualmente.  
Al configurar el acceso de los científicos a nodos específicos del clúster a través de [AWS Systems Manager](https://aws.amazon.com/systems-manager/) (consulte también [Configurar AWS Systems Manager y ejecutar como para el control de acceso de los usuarios del clúster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm)), los nodos del clúster asumen el rol con los permisos selectivos que asocie manualmente.

Cuando haya terminado de crear los roles de IAM, anote sus nombres y ARNs. Usas las funciones al crear un SageMaker HyperPod clúster y concedes los permisos correctos necesarios para que cada grupo de instancias se comunique con AWS los recursos necesarios.

------
#### [ Slurm ]

Para HyperPod organizarlo con Slurm, debes adjuntar la siguiente política administrada a la SageMaker HyperPod función de IAM.
+ [AmazonSageMakerClusterInstanceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerClusterInstanceRolePolicy.html)

**(Opcional) Permisos adicionales para su uso SageMaker HyperPod con Amazon Virtual Private Cloud**

Si desea utilizar su propia Amazon Virtual Private Cloud (VPC) en lugar de la VPC de IA SageMaker predeterminada, debe añadir los siguientes permisos adicionales a la función de IAM para. SageMaker HyperPod

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:DetachNetworkInterface"
    ],
    "Resource": "*"
}
{
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": [
        "arn:aws:ec2:*:*:network-interface/*"
    ]
}
```

En la siguiente lista se desglosan los permisos necesarios para habilitar las funcionalidades del SageMaker HyperPod clúster al configurar el clúster con su propia Amazon VPC.
+ Se requieren los siguientes `ec2` permisos para habilitar la configuración de un SageMaker HyperPod clúster con la VPC.

  ```
  {
      "Effect": "Allow",
      "Action": [
          "ec2:CreateNetworkInterface",
          "ec2:CreateNetworkInterfacePermission",
          "ec2:DeleteNetworkInterface",
          "ec2:DeleteNetworkInterfacePermission",
          "ec2:DescribeNetworkInterfaces",
          "ec2:DescribeVpcs",
          "ec2:DescribeDhcpOptions",
          "ec2:DescribeSubnets",
          "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
  }
  ```
+ Se requiere el siguiente `ec2` permiso para habilitar la [SageMaker HyperPod función de reanudación automática.](sagemaker-hyperpod-resiliency-slurm-auto-resume.md)

  ```
  {
      "Effect": "Allow",
      "Action": [
          "ec2:DetachNetworkInterface"
      ],
      "Resource": "*"
  }
  ```
+ El siguiente `ec2` permiso permite SageMaker HyperPod crear etiquetas en las interfaces de red de su cuenta.

  ```
  {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": [
          "arn:aws:ec2:*:*:network-interface/*"
      ]
  }
  ```

------
#### [ Amazon EKS ]

Para HyperPod orquestar con Amazon EKS, debe adjuntar las siguientes políticas administradas a la función de SageMaker HyperPod IAM.
+ [AmazonSageMakerClusterInstanceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerClusterInstanceRolePolicy.html)

Además de las políticas administradas, asocie la siguiente política de permisos al rol.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AssignPrivateIpAddresses",
        "ec2:AttachNetworkInterface",
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceTypes",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeTags",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:DetachNetworkInterface",
        "ec2:ModifyNetworkInterfaceAttribute",
        "ec2:UnassignPrivateIpAddresses",
        "ecr:BatchCheckLayerAvailability",
        "ecr:BatchGetImage",
        "ecr:GetAuthorizationToken",
        "ecr:GetDownloadUrlForLayer",
        "eks-auth:AssumeRoleForPodIdentity"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*"
      ]
    }
  ]
}
```

------

**nota**  
Tenga en cuenta que el permiso `"eks-auth:AssumeRoleForPodIdentity"` es opcional. Es obligatorio si tiene previsto usar EKS Pod Identity.

**SageMaker HyperPod función vinculada al servicio**

Para el soporte de Amazon EKS SageMaker HyperPod, HyperPod crea una función vinculada al servicio [AWS política gestionada: AmazonSageMakerHyperPodServiceRolePolicy](security-iam-awsmanpol-AmazonSageMakerHyperPodServiceRolePolicy.md) para supervisar y respaldar la resiliencia de su clúster de EKS, por ejemplo, la sustitución de nodos y el reinicio de tareas.

**Políticas de IAM adicionales para el clúster de Amazon EKS con un grupo de instancias restringido**

Las cargas de trabajo que se ejecutan en grupos de instancias restringidos dependen del rol de ejecución para cargar datos desde Amazon S3. Debe añadir los permisos adicionales de Amazon S3 al rol de ejecución para que los trabajos de personalización que se ejecutan en grupos de instancias restringidos puedan obtener los datos de entrada de forma correcta.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket"      
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ]
    }
  ]
}
```

------

------

# Cifrado gestionado por el cliente para AWS KMS key SageMaker HyperPod
<a name="smcluster-cmk"></a>

De forma predeterminada, el volumen raíz de Amazon EBS adjunto a su SageMaker HyperPod clúster se cifra mediante un archivo AWS KMS key propiedad de. AWS Ahora tiene la opción de cifrar tanto el volumen raíz de Amazon EBS como el volumen secundario con sus propias claves de KMS administradas por el cliente. En el siguiente tema se describe cómo funcionan las claves administradas por el cliente (CMKs) con los volúmenes de los HyperPod clústeres.

**nota**  
Las siguientes exclusiones se aplican al usar claves administradas por el cliente para SageMaker HyperPod los clústeres:  
El cifrado de claves administradas por el cliente solo es compatible en los clústeres que utilizan el modo de aprovisionamiento de nodos continuo. Los grupos de instancias restringidos no admiten las claves administradas por el cliente.
HyperPod Actualmente, los clústeres no admiten la transmisión del contexto de AWS KMS cifrado en las solicitudes de cifrado de claves gestionadas por el cliente. Por lo tanto, debe asegurarse de que su política de claves de KMS no se limite a las condiciones del contexto de cifrado, pues esto impide que el clúster utilice la clave.
Por el momento, no se admite la transición de claves de KMS, de manera que no puede cambiar la clave de KMS especificada en su configuración. Para usar una clave diferente, debe crear un grupo de instancias nuevo con la clave deseada y eliminar el grupo de instancias anterior.
Actualmente, no se admite la especificación de claves administradas por el cliente para los HyperPod clústeres a través de la consola.

## Permisos
<a name="smcluster-cmk-permissions"></a>

Para poder utilizar la clave gestionada por el cliente con HyperPod ella, debe cumplir los siguientes requisitos previos:
+ Asegúrese de que la función de ejecución de AWS IAM que está utilizando para la SageMaker IA tenga los siguientes permisos para AWS KMS añadirse. El `[ kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)` permiso te permite HyperPod realizar las siguientes acciones con los permisos de tu clave de KMS:
  + Ampliar el número de instancias (UpdateCluster operaciones)
  + Añadir nodos de clúster (BatchAddClusterNodes operaciones)
  + Aplicación de parches al software (UpdateClusterSoftware operaciones)

  Para obtener más información sobre la actualización de los permisos del rol de IAM, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de IAM*.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kms:CreateGrant",
                  "kms:DescribeKey"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ Agregue los siguientes permisos a su política de claves de KMS. Para obtener más información, consulte [Cambio de una política de claves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) en la *Guía para desarrolladores de AWS KMS *.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Id": "hyperpod-key-policy",
      "Statement": [
          {
              "Sid": "Enable IAM User Permissions",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:root"
              },
              "Action": "kms:*",
              "Resource": "*"
          },
          {
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:role/<iam-role>"
              },
              "Action": "kms:CreateGrant",
              "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
              "Condition": {
                  "StringEquals": {
                      "kms:ViaService": "sagemaker.us-east-1.amazonaws.com"
                  },
                  "Bool": {
                      "kms:GrantIsForAWSResource": "true"
                  }
              }
          },
          {
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:role/<iam-role>"
              },
              "Action": "kms:DescribeKey",
              "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
              "Condition": {
                  "StringEquals": {
                      "kms:ViaService": "sagemaker.us-east-1.amazonaws.com"
                  }
              }
          }
      ]
  }
  ```

------

## Uso de la clave de KMS
<a name="smcluster-cmk-usage"></a>

Puede especificar las claves gestionadas por el cliente al crear o actualizar un clúster mediante las operaciones [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)y la [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)API. La estructura `InstanceStorageConfigs` admite hasta dos configuraciones de `EbsVolumeConfig`, en las que puede configurar el volumen raíz de Amazon EBS y, opcionalmente, un volumen secundario. Puede utilizar la misma clave de KMS o una clave de KMS distinta para cada volumen, en función de sus necesidades.

Puede elegir especificar una clave administrada por el cliente para ninguno, ambos o uno de los dos volúmenes. Sin embargo, no puede especificar dos volúmenes raíz ni dos volúmenes secundarios.

Al configurar el volumen raíz, se aplican los siguientes requisitos:
+ `RootVolume` se debe establecer en `True`. El valor predeterminado es `False`, que configura el volumen secundario en su lugar.
+ El campo `VolumeKmsKeyId` es obligatorio y debe especificar la clave administrada por el cliente. Esto se debe a que el volumen raíz siempre debe cifrarse con una AWS clave propia o gestionada por el cliente (si no especificas la tuya propia, se utilizará una AWS clave propia).
+ No puede especificar el `VolumeSizeInGB` campo para los volúmenes raíz, ya que HyperPod determina el tamaño del volumen raíz por usted.

Al configurar el volumen secundario, se aplican los siguientes requisitos:
+ `RootVolume` debe fijarse en `False` (el valor predeterminado de este campo es `False`).
+ El campo `VolumeKmsKeyId` es opcional. Puede utilizar la misma clave administrada por el cliente que ha especificado para el volumen raíz o una clave diferente.
+ El campo `VolumeSizeInGB` es obligatorio, ya que debe especificar el tamaño que desee para el volumen secundario.

**importante**  
Cuando utilice claves administradas por el cliente, le recomendamos que utilice diferentes claves de KMS para cada grupo de instancias de su clúster. Si usa la misma clave administrada por el cliente en varios grupos de instancias, es posible que se prolonguen los permisos de forma involuntaria, incluso si intenta revocar una concesión. Por ejemplo, si revocas una AWS KMS concesión para los volúmenes de un grupo de instancias, es posible que ese grupo de instancias siga permitiendo las operaciones de escalado y aplicación de parches debido a que las concesiones existentes en otros grupos de instancias utilizan la misma clave. Para evitar este problema, debe asegurarse de asignar claves de KMS únicas a cada grupo de instancias en su clúster. Si necesita restringir los permisos en los grupos de instancias, puede probar alguna de las opciones siguientes:  
Desactive la clave de KMS.
Aplique políticas de denegación a la política de claves de KMS.
Revoque todas las concesiones de los grupos de instancias para la clave (en lugar de revocar una concesión).
Elimine el grupo de instancias.
Elimine el clúster.

En los siguientes ejemplos, se muestra cómo especificar las claves administradas por el cliente para los volúmenes raíz y secundarios mediante la CreateCluster tecla y. UpdateCluster APIs En estos ejemplos solo se muestran los campos obligatorios para la integración de las claves administradas por el cliente. Para configurar una clave administrada por el cliente para solo uno de los volúmenes, especifique solo un `EbsVolumeConfig`.

Para obtener más información sobre la configuración de las solicitudes de creación y actualización de clústeres, consulte [Crear un SageMaker HyperPod clúster](sagemaker-hyperpod-eks-operate-cli-command-create-cluster.md) y [Actualización de la configuración del SageMaker HyperPod clúster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md).

------
#### [ CreateCluster ]

En el siguiente ejemplo, se muestra una AWS CLI solicitud de [creación de clúster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) con cifrado de claves gestionado por el cliente.

```
aws sagemaker create-cluster \
  --cluster-name <your-hyperpod-cluster> \
  --instance-groups '[{
    "ExecutionRole": "arn:aws:iam::111122223333:role/<your-SageMaker-Execution-Role>",
    "InstanceCount": 2,
    "InstanceGroupName": "<your-ig-name>",
    "InstanceStorageConfigs": [
            {
                "EbsVolumeConfig": {
                    "RootVolume": True,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/root-volume-key-id"
                }
            },
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/secondary-volume-key-id"
                }
            }
    ],
    "InstanceType": "<desired-instance-type>"
  }]' \
  --vpc-config '{
    "SecurityGroupIds": ["<sg-id>"],
    "Subnets": ["<subnet-id>"]
  }'
```

------
#### [ UpdateCluster ]

El siguiente ejemplo muestra una AWS CLI solicitud de [actualización del clúster con cifrado de clave](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) administrado por el cliente.

```
aws sagemaker update-cluster \
  --cluster-name <your-hyperpod-cluster> \
  --instance-groups '[{
    "InstanceGroupName": "<your-ig-name>",
    "InstanceStorageConfigs": [
            {
                "EbsVolumeConfig": {
                    "RootVolume": true,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/root-volume-key-id"
                }
            },
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/secondary-volume-key-id"
                }
            }
    ]
  }]'
```

------

# SageMaker HyperPod recetas
<a name="sagemaker-hyperpod-recipes"></a>

Las SageMaker HyperPod recetas de Amazon son paquetes de entrenamiento preconfigurados que se proporcionan AWS para ayudarte a empezar a entrenar y ajustar rápidamente los modelos básicos disponibles públicamente (FMs) de varias familias de modelos, como Llama, Mistral, Mixtral o. DeepSeek Las recetas automatizan el ciclo de end-to-end entrenamiento, lo que incluye la carga de conjuntos de datos, la aplicación de técnicas de entrenamiento distribuidas y la gestión de los puntos de control para una recuperación más rápida en caso de averías. 

SageMaker HyperPod Las recetas son especialmente beneficiosas para los usuarios que quizás no tengan una gran experiencia en aprendizaje automático, ya que eliminan gran parte de la complejidad que implica el entrenamiento de modelos grandes.

Puede crear recetas dentro SageMaker HyperPod o como tareas SageMaker de formación.

Las siguientes tablas se mantienen en el SageMaker HyperPod GitHub repositorio y proporcionan la mayor cantidad de up-to-date información sobre los modelos compatibles para el entrenamiento previo y el ajuste, sus respectivas recetas y scripts de lanzamiento, los tipos de instancias compatibles y mucho más.
+ Para ver la lista más actual de los modelos, fórmulas y scripts de lanzamiento compatibles con el entrenamiento previo, consulte la [pre-training table](https://github.com/aws/sagemaker-hyperpod-recipes?tab=readme-ov-file#pre-training).
+ Para ver la lista más actual de los modelos, fórmulas y scripts de lanzamiento compatibles con el refinamiento, consulte la [fine-tuning table](https://github.com/aws/sagemaker-hyperpod-recipes?tab=readme-ov-file#fine-tuning).

Para SageMaker HyperPod los usuarios, la automatización de los flujos de trabajo de end-to-end formación se debe a la integración del adaptador de formación con las recetas. SageMaker HyperPod El adaptador de formación se basa en el [ NeMo marco de NVIDIA](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html) y en el paquete de [formación distribuida Neuronx](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/neuronx-distributed/index.html). Si está familiarizado con el uso NeMo, el proceso de uso del adaptador de entrenamiento es el mismo. El adaptador de entrenamiento ejecuta la fórmula en su clúster.

![\[Diagrama que muestra el flujo de trabajo de las SageMaker HyperPod recetas. El icono de «Receta» en la parte superior lleva a un cuadro de «lanzador de HyperPod recetas». Este cuadro conecta con una sección más grande llamada “Cluster: Slurm, K8s, ...” que contiene tres iconos de la GPU con los archivos de fórmulas asociados. La parte inferior de la sección del clúster lleva la etiqueta «Entrena con un adaptador de HyperPod entrenamiento».\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/sagemaker-hyperpod-recipes-overview.png)


También puede entrenar su propio modelo mediante la definición de su propia fórmula personalizada.

Para comenzar con un tutorial, consulte [Tutoriales](sagemaker-hyperpod-recipes-tutorials.md).

**Topics**
+ [Tutoriales](sagemaker-hyperpod-recipes-tutorials.md)
+ [Configuración predeterminada](default-configurations.md)
+ [Configuraciones específicas del clúster](cluster-specific-configurations.md)
+ [Consideraciones](cluster-specific-configurations-special-considerations.md)
+ [Configuración avanzada](cluster-specific-configurations-advanced-settings.md)
+ [Apéndice](appendix.md)

# Tutoriales
<a name="sagemaker-hyperpod-recipes-tutorials"></a>

Los siguientes tutoriales de inicio rápido le ayudan a comenzar a utilizar las fórmulas de entrenamiento:
+ SageMaker HyperPod con Slurm Orchestration
  + Entrenamiento previo
    + [HyperPod Tutorial de preentrenamiento de Slurm Cluster (GPU)](hyperpod-gpu-slurm-pretrain-tutorial.md)
    + [Tutorial de entrenamiento previo del clúster Trainium de Slurm](hyperpod-trainium-slurm-cluster-pretrain-tutorial.md)
  + Ajuste
    + [HyperPod Tutorial de Lora (GPU) sobre el clúster Slurm](hyperpod-gpu-slurm-peft-lora-tutorial.md)
    + [HyperPod Tutorial de DPO de Slurm Cluster (GPU)](hyperpod-gpu-slurm-dpo-tutorial.md)
+ SageMaker HyperPod con K8s Orchestration
  + Entrenamiento previo
    + [Tutorial de entrenamiento previo con clústeres de Kubernetes (GPU)](sagemaker-hyperpod-gpu-kubernetes-cluster-pretrain-tutorial.md)
    + [Tutorial previo a los trabajos de SageMaker formación de Trainium](sagemaker-hyperpod-trainium-sagemaker-training-jobs-pretrain-tutorial.md)
+ SageMaker trabajos de formación
  + Entrenamiento previo
    + [SageMaker tutoriales previos a la formación para trabajos de formación (GPU)](sagemaker-hyperpod-gpu-sagemaker-training-jobs-pretrain-tutorial.md)
    + [Tutorial previo a los trabajos de SageMaker formación de Trainium](sagemaker-hyperpod-trainium-sagemaker-training-jobs-pretrain-tutorial.md)

# HyperPod Tutorial de preentrenamiento de Slurm Cluster (GPU)
<a name="hyperpod-gpu-slurm-pretrain-tutorial"></a>

El siguiente tutorial configura el entorno de Slurm y comienza un trabajo de entrenamiento en un modelo de 8000 millones de parámetros de Llama.

**Requisitos previos**  
Antes de configurar el entorno para ejecutar la fórmula, asegúrese de haber hecho lo siguiente:  
Configura un clúster Slurm de HyperPod GPU.  
Tu clúster de HyperPod Slurm debe tener activados Nvidia Enroot y Pyxis (están activados de forma predeterminada).
Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
Datos en uno de los siguientes formatos:  
JSON
JSONGZ (JSON comprimido)
ARROW
(Opcional) Debes obtener un HuggingFace token si utilizas las pesas del modelo HuggingFace para realizar un entrenamiento previo o realizar ajustes. Para obtener más información sobre cómo obtener el token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## HyperPod Configuración del entorno GPU Slurm
<a name="hyperpod-gpu-slurm-environment-setup"></a>

Para iniciar un trabajo de formación en un clúster de HyperPod GPU Slurm, haga lo siguiente:

1. SSH en el nodo principal del clúster de Slurm.

1. Después de iniciar sesión, configure el entorno virtual. Asegúrese de utilizar Python 3.9 o posterior.

   ```
   #set up a virtual environment
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. Clona las SageMaker HyperPod recetas y los repositorios de SageMaker HyperPod adaptadores en una ubicación de almacenamiento compartida.

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo.git
   git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
   cd sagemaker-hyperpod-recipes
   pip3 install -r requirements.txt
   ```

1. Cree un archivo squash con Enroot. Para buscar la versión más reciente del contenedor de SMP, consulte [Notas de publicación de la biblioteca de paralelismo de SageMaker modelos](model-parallel-release-notes.md). Para comprender mejor cómo usar el archivo Enroot, consulte la imagen de [AWS Nemo-Launcher optimizada para compilar](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/2.nemo-launcher#2-build-aws-optimized-nemo-launcher-image).

   ```
   REGION="<region>"
   IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121"
   aws ecr get-login-password --region ${REGION} | docker login --username AWS --password-stdin 658645717510.dkr.ecr.${REGION}.amazonaws.com
   enroot import -o $PWD/smdistributed-modelparallel.sqsh dockerd://${IMAGE}
   mv $PWD/smdistributed-modelparallel.sqsh "/fsx/<any-path-in-the-shared-filesystem>"
   ```

1. Para usar el archivo squash de Enroot para empezar a entrenar, utilice el siguiente ejemplo para modificar el archivo `recipes_collection/config.yaml`.

   ```
   container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
   ```

## Lanzamiento del trabajo de entrenamiento
<a name="hyperpod-gpu-slurm-launch-training-job"></a>

Tras instalar las dependencias, lance un trabajo de entrenamiento desde el directorio `sagemaker-hyperpod-recipes/launcher_scripts`. [Las dependencias se obtienen clonando el repositorio de recetas: SageMaker HyperPod ](https://github.com/aws/sagemaker-hyperpod-recipes)

En primer lugar, elija su fórmula de entrenamiento en Github; el nombre del modelo se especifica en la fórmula. En el siguiente ejemplo, utilizamos el script `launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh` para lanzar una fórmula de entrenamiento previo de Llama 8b con una longitud de secuencia de 8192: `llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain`.
+ `IMAGE`: es el contenedor de la sección de configuración del entorno.
+ (Opcional) Puedes proporcionar el HuggingFace token si necesitas pesos previamente entrenados HuggingFace configurando el siguiente par clave-valor:

  ```
  recipes.model.hf_access_token=<your_hf_token>
  ```

```
#!/bin/bash
IMAGE="${YOUR_IMAGE}"
SAGEMAKER_TRAINING_LAUNCHER_DIR="${SAGEMAKER_TRAINING_LAUNCHER_DIR:-${PWD}}"

TRAIN_DIR="${YOUR_TRAIN_DIR}" # Location of training dataset
VAL_DIR="${YOUR_VAL_DIR}" # Location of validation dataset

# experiment ouput directory
EXP_DIR="${YOUR_EXP_DIR}"

HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
  recipes=training/llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain \
  base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
  recipes.run.name="hf_llama3_8b" \
  recipes.exp_manager.exp_dir="$EXP_DIR" \
  recipes.model.data.train_dir="$TRAIN_DIR" \
  recipes.model.data.val_dir="$VAL_DIR" \
  container="${IMAGE}" \
  +cluster.container_mounts.0="/fsx:/fsx"
```

Después de configurar todos los parámetros necesarios en el script del lanzador, puede ejecutar el script con el siguiente comando.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
```

Para obtener más información acerca de la configuración del clúster de Slurm, consulte [¿Estás realizando un trabajo de formación en HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# Tutorial de entrenamiento previo del clúster Trainium de Slurm
<a name="hyperpod-trainium-slurm-cluster-pretrain-tutorial"></a>

En el siguiente tutorial se muestra cómo configurar el entorno de Trainium en un clúster de Slurm y lanzar un trabajo de entrenamiento en un modelo de 8000 millones de parámetros de Llama.

**Requisitos previos**  
Antes de configurar el entorno, asegúrese de disponer de:  
Configure un clúster de SageMaker HyperPod Trainium Slurm.
Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
Datos en uno de los siguientes formatos:  
JSON
JSONGZ (JSON comprimido)
ARROW
(Opcional) Debes obtener un HuggingFace token si utilizas las pesas del modelo para el entrenamiento previo o HuggingFace para realizar ajustes. Para obtener más información sobre cómo obtener el token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configuración del entorno de Trainium en el clúster de Slurm
<a name="hyperpod-trainium-slurm-cluster-pretrain-setup-trainium-environment"></a>

Para iniciar un trabajo de entrenamiento en un clúster de Slurm, haga lo siguiente:
+ SSH en el nodo principal del clúster de Slurm.
+ Después de iniciar sesión, configure el entorno de Neuron. Para obtener más información sobre la configuración de Neuron, consulte los [pasos de configuración de Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_SFT.html#setting-up-the-environment). Recomendamos que confíe en las AMI de aprendizaje profundo preinstaladas con los controladores de Neuron, como [Ubuntu 20 con DLAMI Pytorch](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu20-pytorch-dlami.html#setup-torch-neuronx-ubuntu20-dlami-pytorch).
+ Clona el repositorio de SageMaker HyperPod recetas en una ubicación de almacenamiento compartida del clúster. La ubicación de almacenamiento compartido puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.

  ```
  git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Siga el siguiente tutorial: Capacitación previa sobre [HuggingFace Llama3-8B](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_pretraining.html#)
+ Prepare la configuración de un modelo. Las configuraciones de modelos están disponibles en el repositorio de Neuron. Para ver la configuración del modelo utilizada en este tutorial, consulte [llama3 8b model config](https://github.com/aws-neuron/neuronx-distributed/blob/main/examples/training/llama/tp_zero1_llama_hf_pretrain/8B_config_llama3/config.json).

## Lanzamiento del trabajo de entrenamiento en Trainium
<a name="hyperpod-trainium-slurm-cluster-pretrain-launch-training-job-trainium"></a>

Para iniciar un trabajo de entrenamiento en Trainium, especifique una configuración de clúster y una fórmula de Neuron. Por ejemplo, para lanzar un trabajo de entrenamiento previo de llama3 8b en Trainium, defina el script de lanzamiento, `launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh`, de la siguiente manera:
+ `MODEL_CONFIG`: es el modelo de configuración de la sección de configuración del entorno.
+ (Opcional) Puedes proporcionar el HuggingFace token si necesitas pesas previamente entrenadas HuggingFace configurando el siguiente par clave-valor:

  ```
  recipes.model.hf_access_token=<your_hf_token>
  ```

```
#!/bin/bash

#Users should set up their cluster type in /recipes_collection/config.yaml

SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}

COMPILE=0
TRAIN_DIR="${TRAIN_DIR}" # Location of training dataset
MODEL_CONFIG="${MODEL_CONFIG}" # Location of config.json for the model

HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
    base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
    instance_type="trn1.32xlarge" \
    recipes.run.compile="$COMPILE" \
    recipes.run.name="hf-llama3-8b" \
    recipes.trainer.num_nodes=4 \
    recipes=training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain \
    recipes.data.train_dir="$TRAIN_DIR" \
    recipes.model.model_config="$MODEL_CONFIG"
```

Para iniciar el trabajo de entrenamiento, ejecute el siguiente comando:

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
```

Para obtener más información acerca de la configuración del clúster de Slurm, consulte [¿Estás realizando un trabajo de formación en HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# HyperPod Tutorial de DPO de Slurm Cluster (GPU)
<a name="hyperpod-gpu-slurm-dpo-tutorial"></a>

En el siguiente tutorial se configura el entorno de Slurm y comienza un trabajo de optimización de preferencias directas (DPO, por sus siglas en inglés) en un modelo de 8000 millones de parámetros de Llama.

**Requisitos previos**  
Antes de configurar el entorno, asegúrese de disponer de:  
Configure el clúster Slurm de GPU HyperPod   
Tu clúster de HyperPod Slurm debe tener activados Nvidia Enroot y Pyxis (están activados de forma predeterminada).
Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
Un conjunto de datos de preferencias binarias tokenizado en uno de los siguientes formatos:  
JSON
JSONGZ (JSON comprimido)
ARROW
(Opcional) Si necesitas las pesas previamente entrenadas HuggingFace o si estás entrenando un modelo Llama 3.2, debes obtener la HuggingFace ficha antes de empezar a entrenar. Para obtener más información sobre cómo obtener el token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configura el entorno HyperPod GPU Slurm
<a name="hyperpod-gpu-slurm-dpo-hyperpod-gpu-slurm-environment"></a>

Para iniciar un trabajo de entrenamiento en un clúster de Slurm, haga lo siguiente:
+ SSH en el nodo principal del clúster de Slurm.
+ Después de iniciar sesión, configure el entorno virtual. Asegúrese de utilizar Python 3.9 o posterior.

  ```
  #set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  ```
+ Clona las SageMaker HyperPod recetas y los repositorios de SageMaker HyperPod adaptadores en una ubicación de almacenamiento compartida. La ubicación de almacenamiento compartido puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.

  ```
  git clone https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo.git
  git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Cree un archivo squash con Enroot. Para buscar la versión más reciente del contenedor de SMP, consulte [Notas de publicación de la biblioteca de paralelismo de SageMaker modelos](model-parallel-release-notes.md). Para obtener más información sobre el uso del archivo Enroot, consulte la imagen de [AWS Nemo-Launcher optimizada para compilar](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/2.nemo-launcher#2-build-aws-optimized-nemo-launcher-image).

  ```
  REGION="<region>"
  IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121"
  aws ecr get-login-password --region ${REGION} | docker login --username AWS --password-stdin 658645717510.dkr.ecr.${REGION}.amazonaws.com
  enroot import -o $PWD/smdistributed-modelparallel.sqsh dockerd://${IMAGE}
  mv $PWD/smdistributed-modelparallel.sqsh "/fsx/<any-path-in-the-shared-filesystem>"
  ```
+ Para usar el archivo squash de Enroot para empezar a entrenar, utilice el siguiente ejemplo para modificar el archivo `recipes_collection/config.yaml`.

  ```
  container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
  ```

## Lanzamiento del trabajo de entrenamiento
<a name="hyperpod-gpu-slurm-dpo-launch-training-job"></a>

Para lanzar un trabajo de DPO para el modelo de 8000 millones de parámetros de Llama con una longitud de secuencia de 8192 en un único nodo de computación de Slurm, defina el script de lanzamiento `launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_dpo.sh` de la siguiente manera:
+ `IMAGE`: es el contenedor de la sección de configuración del entorno.
+ `HF_MODEL_NAME_OR_PATH`: defina el nombre o la ruta de las ponderaciones entrenadas previamente en el parámetro hf\$1model\$1name\$1or\$1path de la fórmula.
+ (Opcional) Puedes proporcionar el HuggingFace token si necesitas pesas previamente entrenadas configurando el siguiente par clave-valor: HuggingFace 

  ```
  recipes.model.hf_access_token=${HF_ACCESS_TOKEN}
  ```

**nota**  
El modelo de referencia utilizado para la DPO en esta configuración se deriva automáticamente del modelo base que se está entrenando (no se define explícitamente ningún modelo de referencia independiente). Los hiperparámetros específicos de la DPO se han configurado previamente con los siguientes valores predeterminados:  
`beta`: 0,1 (controla la intensidad de la regularización de la divergencia KL)
`label_smoothing`: 0,0 (no se suaviza ninguna etiqueta de preferencias)

```
recipes.dpo.beta=${BETA}
recipes.dpo.label_smoothing=${LABEL_SMOOTHING}
```

```
#!/bin/bash
IMAGE="${YOUR_IMAGE}"
SAGEMAKER_TRAINING_LAUNCHER_DIR="${SAGEMAKER_TRAINING_LAUNCHER_DIR:-${PWD}}"

TRAIN_DIR="${YOUR_TRAIN_DIR}" # Location of training dataset
VAL_DIR="${YOUR_VAL_DIR}" # Location of validation dataset
# experiment output directory
EXP_DIR="${YOUR_EXP_DIR}"
HF_ACCESS_TOKEN="${YOUR_HF_TOKEN}"
HF_MODEL_NAME_OR_PATH="${HF_MODEL_NAME_OR_PATH}"
BETA="${BETA}"
LABEL_SMOOTHING="${LABEL_SMOOTHING}"

# Add hf_model_name_or_path and turn off synthetic_data
HYDRA_FULL_ERROR=1 python3 ${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py \
recipes=fine-tuning/llama/hf_llama3_8b_seq8k_gpu_dpo \
base_results_dir=${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results \
recipes.run.name="hf_llama3_dpo" \
recipes.exp_manager.exp_dir="$EXP_DIR" \
recipes.model.data.train_dir="$TRAIN_DIR" \
recipes.model.data.val_dir="$VAL_DIR" \
recipes.model.hf_model_name_or_path="$HF_MODEL_NAME_OR_PATH" \
container="${IMAGE}" \
+cluster.container_mounts.0="/fsx:/fsx" \
recipes.model.hf_access_token="${HF_ACCESS_TOKEN}" \
recipes.dpo.enabled=true \
recipes.dpo.beta="${BETA}" \
recipes.dpo.label_smoothing="${LABEL_SMOOTHING}$" \
```

Tras configurar todos los parámetros necesarios en el script anterior, puede iniciar el trabajo de entrenamiento ejecutándolo.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_dpo.sh
```

Para obtener más información acerca de la configuración del clúster de Slurm, consulte [¿Estás realizando un trabajo de formación en HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# HyperPod Tutorial de Lora (GPU) sobre el clúster Slurm
<a name="hyperpod-gpu-slurm-peft-lora-tutorial"></a>

En el siguiente tutorial se muestra cómo configurar el entorno de Slurm y cómo se inicia un trabajo de refinamiento eficiente en parámetros (PEFT, por sus siglas en inglés) en un modelo de 8000 millones de parámetros de Llama.

**Requisitos previos**  
Antes de configurar el entorno, asegúrese de disponer de:  
Configure HyperPod el clúster Slurm de GPU  
Tu clúster de HyperPod Slurm debe tener activados Nvidia Enroot y Pyxis (están activados de forma predeterminada).
Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
Datos en uno de los siguientes formatos:  
JSON
JSONGZ (JSON comprimido)
ARROW
(Opcional) Si necesitas las pesas previamente entrenadas HuggingFace o si estás entrenando un modelo Llama 3.2, debes obtener la HuggingFace ficha antes de empezar a entrenar. Para obtener más información sobre cómo obtener el token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configura el entorno HyperPod GPU Slurm
<a name="hyperpod-gpu-slurm-peft-lora-setup-hyperpod-gpu-slurm-environment"></a>

Para iniciar un trabajo de entrenamiento en un clúster de Slurm, haga lo siguiente:
+ SSH en el nodo principal del clúster de Slurm.
+ Después de iniciar sesión, configure el entorno virtual. Asegúrese de utilizar Python 3.9 o posterior.

  ```
  #set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  ```
+ Clona las SageMaker HyperPod recetas y los repositorios de SageMaker HyperPod adaptadores en una ubicación de almacenamiento compartida. La ubicación de almacenamiento compartido puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.

  ```
  git clone https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo.git
  git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Cree un archivo squash con Enroot. Para buscar la versión más reciente del contenedor de SMP, consulte [Notas de publicación de la biblioteca de paralelismo de SageMaker modelos](model-parallel-release-notes.md). Para obtener más información sobre el uso del archivo Enroot, consulte la imagen de [AWS Nemo-Launcher optimizada para compilar](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/2.nemo-launcher#2-build-aws-optimized-nemo-launcher-image).

  ```
  REGION="<region>"
  IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121"
  aws ecr get-login-password --region ${REGION} | docker login --username AWS --password-stdin 658645717510.dkr.ecr.${REGION}.amazonaws.com
  enroot import -o $PWD/smdistributed-modelparallel.sqsh dockerd://${IMAGE}
  mv $PWD/smdistributed-modelparallel.sqsh "/fsx/<any-path-in-the-shared-filesystem>"
  ```
+ Para usar el archivo squash de Enroot para empezar a entrenar, utilice el siguiente ejemplo para modificar el archivo `recipes_collection/config.yaml`.

  ```
  container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
  ```

## Lanzamiento del trabajo de entrenamiento
<a name="hyperpod-gpu-slurm-peft-lora-launch-training-job"></a>

Para lanzar un trabajo de PEFT para el modelo de 8000 millones de parámetros de Llama con una longitud de secuencia de 8192 en un único nodo de computación de Slurm, defina el script de lanzamiento `launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_lora.sh` de la siguiente manera:
+ `IMAGE`: es el contenedor de la sección de configuración del entorno.
+ `HF_MODEL_NAME_OR_PATH`: defina el nombre o la ruta de las ponderaciones entrenadas previamente en el parámetro hf\$1model\$1name\$1or\$1path de la fórmula.
+ (Opcional) Puedes proporcionar el HuggingFace token si necesitas pesas previamente entrenadas configurando el siguiente par clave-valor: HuggingFace 

  ```
  recipes.model.hf_access_token=${HF_ACCESS_TOKEN}
  ```

```
#!/bin/bash
IMAGE="${YOUR_IMAGE}"
SAGEMAKER_TRAINING_LAUNCHER_DIR="${SAGEMAKER_TRAINING_LAUNCHER_DIR:-${PWD}}"

TRAIN_DIR="${YOUR_TRAIN_DIR}" # Location of training dataset
VAL_DIR="${YOUR_VAL_DIR}" # Location of validation dataset

# experiment output directory
EXP_DIR="${YOUR_EXP_DIR}"
HF_ACCESS_TOKEN="${YOUR_HF_TOKEN}"
HF_MODEL_NAME_OR_PATH="${YOUR_HF_MODEL_NAME_OR_PATH}"

# Add hf_model_name_or_path and turn off synthetic_data
HYDRA_FULL_ERROR=1 python3 ${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py \
    recipes=fine-tuning/llama/hf_llama3_8b_seq8k_gpu_lora \
    base_results_dir=${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results \
    recipes.run.name="hf_llama3_lora" \
    recipes.exp_manager.exp_dir="$EXP_DIR" \
    recipes.model.data.train_dir="$TRAIN_DIR" \
    recipes.model.data.val_dir="$VAL_DIR" \
    recipes.model.hf_model_name_or_path="$HF_MODEL_NAME_OR_PATH" \
    container="${IMAGE}" \
    +cluster.container_mounts.0="/fsx:/fsx" \
    recipes.model.hf_access_token="${HF_ACCESS_TOKEN}"
```

Tras configurar todos los parámetros necesarios en el script anterior, puede iniciar el trabajo de entrenamiento ejecutándolo.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_lora.sh
```

Para obtener más información acerca de la configuración del clúster de Slurm, consulte [¿Estás realizando un trabajo de formación en HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# Tutorial de entrenamiento previo con clústeres de Kubernetes (GPU)
<a name="sagemaker-hyperpod-gpu-kubernetes-cluster-pretrain-tutorial"></a>

Hay dos formas de iniciar un trabajo de entrenamiento de GPU en un clúster de Kubernetes:
+ [Herramienta de línea de comandos (recomendada) HyperPod ](https://github.com/aws/sagemaker-hyperpod-cli)
+ El NeMo lanzador de estilos

**Requisitos previos**  
Antes de configurar el entorno, asegúrese de disponer de:  
Un clúster HyperPod de Kubernetes con GPU está configurado correctamente.
Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
Datos en uno de los siguientes formatos:  
JSON
JSONGZ (JSON comprimido)
ARROW
(Opcional) Debes obtener un HuggingFace token si utilizas las pesas del modelo para el entrenamiento previo o HuggingFace para realizar ajustes. Para obtener más información sobre cómo obtener el token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configuración del entorno de GPU Kubernetes
<a name="sagemaker-hyperpod-gpu-kubernetes-environment-setup"></a>

Para configurar un entorno de GPU Kubernetes, haga lo siguiente:
+ Configure el entorno virtual. Asegúrese de utilizar Python 3.9 o posterior.

  ```
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  ```
+ Instale las dependencias siguiendo uno de estos métodos:
  + (Recomendado): método de herramienta de línea de [HyperPod comandos](https://github.com/aws/sagemaker-hyperpod-cli):

    ```
    # install HyperPod command line tools
    git clone https://github.com/aws/sagemaker-hyperpod-cli
    cd sagemaker-hyperpod-cli
    pip3 install .
    ```
  + SageMaker HyperPod método de recetas:

    ```
    # install SageMaker HyperPod Recipes.
    git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
    cd sagemaker-hyperpod-recipes
    pip3 install -r requirements.txt
    ```
+ [Configure kubectl y eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html).
+ [Instale Helm](https://helm.sh/docs/intro/install/).
+ Conéctese con su clúster de Kubernetes.

  ```
  aws eks update-kubeconfig --region "CLUSTER_REGION" --name "CLUSTER_NAME"
  hyperpod connect-cluster --cluster-name "CLUSTER_NAME" [--region "CLUSTER_REGION"] [--namespace <namespace>]
  ```

## Inicie el trabajo de formación con la SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-gpu-kubernetes-launch-training-job-cli"></a>

Recomendamos utilizar la herramienta de interfaz SageMaker HyperPod de línea de comandos (CLI) para enviar el trabajo de formación con las configuraciones. En el siguiente ejemplo, se envía un trabajo de entrenamiento para el modelo `hf_llama3_8b_seq16k_gpu_p5x16_pretrain`.
+ `your_training_container`: es un contenedor de aprendizaje profundo. Para buscar la versión más reciente del contenedor de SMP, consulte [Notas de publicación de la biblioteca de paralelismo de SageMaker modelos](model-parallel-release-notes.md).
+ (Opcional) Puedes proporcionar el HuggingFace token si necesitas pesas previamente entrenadas HuggingFace configurando el siguiente par clave-valor:

  ```
  "recipes.model.hf_access_token": "<your_hf_token>"
  ```

```
hyperpod start-job --recipe training/llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain \
--persistent-volume-claims fsx-claim:data \
--override-parameters \
'{
"recipes.run.name": "hf-llama3-8b",
"recipes.exp_manager.exp_dir": "/data/<your_exp_dir>",
"container": "658645717510.dkr.ecr.<region>.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121",
"recipes.model.data.train_dir": "<your_train_data_dir>",
"recipes.model.data.val_dir": "<your_val_data_dir>",
"cluster": "k8s",
"cluster_type": "k8s"
}'
```

Después de enviar un trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods
NAME                             READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Si el `STATUS` es `PENDING` o `ContainerCreating`, ejecute el siguiente comando para obtener más información.

```
kubectl describe pod name_of_pod
```

Cuando el `STATUS` del trabajo cambie a `Running`, podrá examinar el registro con el siguiente comando.

```
kubectl logs name_of_pod
```

El `STATUS` cambia a `Completed` si ejecuta `kubectl get pods`.

## Lanzamiento del trabajo de entrenamiento con el lanzador de fórmulas
<a name="sagemaker-hyperpod-gpu-kubernetes-launch-training-job-recipes"></a>

Como alternativa, puedes usar las SageMaker HyperPod recetas para enviar tu trabajo de entrenamiento. Usar fórmulas implica actualizar `k8s.yaml`, `config.yaml` y ejecutar el script de lanzamiento.
+ En `k8s.yaml`, actualice `persistent_volume_claims`. Coloca la FSx reclamación de Amazon en el `/data` directorio de cada módulo de computación.

  ```
  persistent_volume_claims:
    - claimName: fsx-claim
      mountPath: data
  ```
+ En `config.yaml`, actualice `repo_url_or_path` en `git`.

  ```
  git:
    repo_url_or_path: <training_adapter_repo>
    branch: null
    commit: null
    entry_script: null
    token: null
  ```
+ Actualice `launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh`.
  + `your_contrainer`: es un contenedor de aprendizaje profundo. Para buscar la versión más reciente del contenedor de SMP, consulte [Notas de publicación de la biblioteca de paralelismo de SageMaker modelos](model-parallel-release-notes.md).
  + (Opcional) Puede proporcionar el HuggingFace token si necesita pesos previamente entrenados HuggingFace configurando el siguiente par clave-valor:

    ```
    recipes.model.hf_access_token=<your_hf_token>
    ```

  ```
  #!/bin/bash
  #Users should setup their cluster type in /recipes_collection/config.yaml
  REGION="<region>"
  IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121"
  SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
  EXP_DIR="<your_exp_dir>" # Location to save experiment info including logging, checkpoints, ect
  TRAIN_DIR="<your_training_data_dir>" # Location of training dataset
  VAL_DIR="<your_val_data_dir>" # Location of talidation dataset
  
  HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
      recipes=training/llama/hf_llama3_8b_seq8k_gpu_p5x16_pretrain \
      base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
      recipes.run.name="hf-llama3" \
      recipes.exp_manager.exp_dir="$EXP_DIR" \
      cluster=k8s \
      cluster_type=k8s \
      container="${IMAGE}" \
      recipes.model.data.train_dir=$TRAIN_DIR \
      recipes.model.data.val_dir=$VAL_DIR
  ```
+ Lanzamiento del trabajo de entrenamiento

  ```
  bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
  ```

Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods
```

```
NAME READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Si el `STATUS` es `PENDING` o `ContainerCreating`, ejecute el siguiente comando para obtener más información.

```
kubectl describe pod <name-of-pod>
```

Cuando el `STATUS` del trabajo cambie a `Running`, podrá examinar el registro con el siguiente comando.

```
kubectl logs name_of_pod
```

El `STATUS` pasará a `Completed` cuando ejecute `kubectl get pods`.

Para obtener más información acerca de la configuración del clúster k8s, consulte [¿Estás realizando un trabajo de entrenamiento en k8s HyperPod](cluster-specific-configurations-run-training-job-hyperpod-k8s.md).

# Tutorial de entrenamiento previo del clúster Trainium de Kubernetes
<a name="sagemaker-hyperpod-trainium-kubernetes-cluster-pretrain-tutorial"></a>

Puede utilizar uno de los métodos siguientes para lanzar un trabajo de entrenamiento en un clúster Trainium de Kubernetes.
+ [Herramienta de línea de comandos (recomendada) HyperPod ](https://github.com/aws/sagemaker-hyperpod-cli)
+ El NeMo lanzador de estilos

**Requisitos previos**  
Antes de configurar el entorno, asegúrese de disponer de:  
Configura un clúster de HyperPod Trainium Kubernetes
Una ubicación de almacenamiento compartido que puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
Datos en uno de los siguientes formatos:  
JSON
JSONGZ (JSON comprimido)
ARROW
(Opcional) Debes obtener un HuggingFace token si vas a utilizar las pesas del modelo para el entrenamiento previo o HuggingFace para realizar ajustes. Para obtener más información sobre cómo obtener el token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configuración del entorno de Trainium Kubernetes
<a name="sagemaker-hyperpod-trainium-setup-trainium-kubernetes-environment"></a>

Para configurar un entorno de Trainium Kubernetes, haga lo siguiente:

1. **Complete los pasos del siguiente tutorial: Entrenamiento previo de [HuggingFace Llama3-8B](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_pretraining.html#download-the-dataset) empezando por Descargar el conjunto de datos.** 

1. Prepare la configuración de un modelo. Están disponibles en el repositorio de Neuron. Para este tutorial, puede utilizar la configuración del modelo llama3 8b.

1. Configure el entorno virtual. Asegúrese de utilizar Python 3.9 o posterior.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. Instale las dependencias.
   + (Recomendado) Utilice la siguiente herramienta de línea de comandos HyperPod 

     ```
     # install HyperPod command line tools
     git clone https://github.com/aws/sagemaker-hyperpod-cli
     cd sagemaker-hyperpod-cli
     pip3 install .
     ```
   + Si usa SageMaker HyperPod recetas, especifique lo siguiente

     ```
     # install SageMaker HyperPod Recipes.
     git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
     cd sagemaker-hyperpod-recipes
     pip3 install -r requirements.txt
     ```

1. [Configure kubectl y eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html).

1. [Instale Helm](https://helm.sh/docs/intro/install/).

1. Conéctese con su clúster de Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   hyperpod connect-cluster --cluster-name "${CLUSTER_NAME}" [--region "${CLUSTER_REGION}"] [--namespace <namespace>]
   ```

1. Contenedor: el [Neuron container](https://github.com/aws-neuron/deep-learning-containers?tab=readme-ov-file#pytorch-training-neuronx).

## Inicie el trabajo de formación con la SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-trainium-launch-training-job-cli"></a>

Recomendamos utilizar la herramienta de interfaz SageMaker HyperPod de línea de comandos (CLI) para enviar el trabajo de formación con las configuraciones. En el siguiente ejemplo, se envía un trabajo de entrenamiento para el modelo `hf_llama3_8b_seq8k_trn1x4_pretrain` de Trainium.
+ `your_neuron_container`: es el [Neuron container](https://github.com/aws-neuron/deep-learning-containers?tab=readme-ov-file#pytorch-training-neuronx).
+ `your_model_config`: es el modelo de configuración de la sección de configuración del entorno.
+ (Opcional) Puedes proporcionar el HuggingFace token si necesitas pesas previamente entrenadas HuggingFace configurando el siguiente par clave-valor:

  ```
  "recipes.model.hf_access_token": "<your_hf_token>"
  ```

```
hyperpod start-job --recipe training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain \
--persistent-volume-claims fsx-claim:data \
--override-parameters \
'{
 "cluster": "k8s",
 "cluster_type": "k8s",
 "container": "<your_neuron_contrainer>",
 "recipes.run.name": "hf-llama3",
 "recipes.run.compile": 0,
 "recipes.model.model_config": "<your_model_config>",
 "instance_type": "trn1.32xlarge",
 "recipes.data.train_dir": "<your_train_data_dir>"
}'
```

Después de enviar un trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods
NAME                              READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Si el `STATUS` es `PENDING` o `ContainerCreating`, ejecute el siguiente comando para obtener más información.

```
kubectl describe pod name_of_pod
```

Cuando el `STATUS` del trabajo cambie a `Running`, podrá examinar el registro con el siguiente comando.

```
kubectl logs name_of_pod
```

El `STATUS` pasará a `Completed` cuando ejecute `kubectl get pods`.

## Lanzamiento del trabajo de entrenamiento con el lanzador de fórmulas
<a name="sagemaker-hyperpod-trainium-launch-training-job-recipes"></a>

También puedes usar SageMaker HyperPod recetas para enviar tu trabajo de entrenamiento. Para enviar el trabajo de entrenamiento con una fórmula, actualice `k8s.yaml` y `config.yaml`. Ejecute el script de bash para que el modelo lo lance.
+ En`k8s.yaml`, actualiza persistent\$1volume\$1claims para montar la reclamación de FSx Amazon en el directorio /data de los nodos de cómputo

  ```
  persistent_volume_claims:
    - claimName: fsx-claim
      mountPath: data
  ```
+ scripts/llama/runActualice launcher\$1 \$1hf\$1llama3\$18b\$1seq8k\$1trn1x4\$1pretrain.sh
  + `your_neuron_contrainer`: es el contenedor de la sección de configuración del entorno.
  + `your_model_config`: es el modelo de configuración de la sección de configuración del entorno.

  (Opcional) Puede proporcionar el HuggingFace token si necesita pesos previamente entrenados HuggingFace configurando el siguiente par clave-valor:

  ```
  recipes.model.hf_access_token=<your_hf_token>
  ```

  ```
   #!/bin/bash
  #Users should set up their cluster type in /recipes_collection/config.yaml
  IMAGE="<your_neuron_contrainer>"
  MODEL_CONFIG="<your_model_config>"
  SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
  TRAIN_DIR="<your_training_data_dir>" # Location of training dataset
  VAL_DIR="<your_val_data_dir>" # Location of talidation dataset
  
  HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
    recipes=training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain \
    base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
    recipes.run.name="hf-llama3-8b" \
    instance_type=trn1.32xlarge \
    recipes.model.model_config="$MODEL_CONFIG" \
    cluster=k8s \
    cluster_type=k8s \
    container="${IMAGE}" \
    recipes.data.train_dir=$TRAIN_DIR \
    recipes.data.val_dir=$VAL_DIR
  ```
+ Lance el trabajo.

  ```
  bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
  ```

Después de enviar un trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods
NAME                             READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Si el `STATUS` es `PENDING` o `ContainerCreating`, ejecute el siguiente comando para obtener más información.

```
kubectl describe pod name_of_pod
```

Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

```
kubectl logs name_of_pod
```

El `STATUS` pasará a `Completed` cuando ejecute `kubectl get pods`.

Para obtener más información acerca de la configuración del clúster k8s, consulte [Tutorial de entrenamiento previo del clúster Trainium de Kubernetes](#sagemaker-hyperpod-trainium-kubernetes-cluster-pretrain-tutorial).

# SageMaker tutoriales previos a la formación para trabajos de formación (GPU)
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-pretrain-tutorial"></a>

Este tutorial le guía a través del proceso de configuración y ejecución de un trabajo previo a la formación mediante trabajos de SageMaker formación con instancias de GPU.
+ Configure su entorno
+ Lanza un trabajo de formación con recetas SageMaker HyperPod 

Antes de comenzar, asegúrese de que cumple los siguientes requisitos previos.

**Requisitos previos**  
Antes de configurar el entorno, asegúrese de disponer de:  
Sistema de FSx archivos Amazon o un depósito de Amazon S3 donde puede cargar los datos y generar los artefactos de entrenamiento.
Solicitó una cuota de servicio para 1 ml.p4d.24xlarge y 1 ml.p5.48xlarge en Amazon AI. SageMaker Para solicitar un aumento de la cuota de servicio, haga lo siguiente:  
En la consola AWS Service Quotas, vaya a AWS los servicios,
Elige **Amazon SageMaker AI**.
Elija una instancia de ml.p4d.24xlarge y una instancia de ml.p5.48xlarge.
Cree un rol AWS Identity and Access Management(de IAM) con las siguientes políticas administradas para conceder a la SageMaker IA los permisos necesarios para ejecutar los ejemplos.  
AmazonSageMakerFullAccess
Amazon EC2 FullAccess
Datos en uno de los siguientes formatos:  
JSON
JSONGZ (JSON comprimido)
ARROW
(Opcional) Debes obtener una HuggingFace ficha si utilizas las pesas del modelo para el entrenamiento previo o HuggingFace para ajustarlas con precisión. Para obtener más información sobre cómo obtener el token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configuración del entorno de trabajos de SageMaker entrenamiento con GPU
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-environment-setup"></a>

Antes de ejecutar un trabajo de SageMaker formación, configure sus AWS credenciales y su región preferida ejecutando el `aws configure` comando. Como alternativa al comando configure, puede proporcionar sus credenciales a través de variables de entorno como `AWS_ACCESS_KEY_ID``AWS_SECRET_ACCESS_KEY`, y `AWS_SESSION_TOKEN.` para obtener más información, consulte [SageMaker AI Python SDK](https://github.com/aws/sagemaker-python-sdk).

Recomendamos encarecidamente utilizar un SageMaker cuaderno Jupyter de SageMaker IA JupyterLab para iniciar un trabajo de SageMaker formación. Para obtener más información, consulte [SageMaker JupyterLab](studio-updated-jl.md).
+ (Opcional) Configure el entorno virtual y las dependencias. Si utilizas una libreta Jupyter en Amazon SageMaker Studio, puedes saltarte este paso. Asegúrese de utilizar Python 3.9 o posterior.

  ```
  # set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  # install dependencies after git clone.
  
  git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  # Set the aws region.
  
  aws configure set <your_region>
  ```
+ Instale SageMaker AI Python SDK

  ```
  pip3 install --upgrade sagemaker
  ```
+ `Container`: el SDK de Python para SageMaker IA configura automáticamente el contenedor de GPU. También puede proporcionar su propio contenedor.
**nota**  
Si está ejecutando un trabajo de entrenamiento multimodal en Llama 3.2, la versión de `transformers` debe ser `4.45.2 ` o superior.

  `transformers==4.45.2``requirements.txt`Añádelo `source_dir` solo cuando utilices el SDK de Python para SageMaker IA. Por ejemplo, agréguelo si lo está utilizando en un cuaderno de IA. SageMaker JupyterLab

  Si está utilizando HyperPod recetas para iniciar con el tipo de clúster`sm_jobs`, esto se realizará automáticamente.

## Lanzamiento del trabajo de entrenamiento con un cuaderno de Jupyter
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-launch-training-job-notebook"></a>

Puedes usar el siguiente código de Python para ejecutar un trabajo de SageMaker entrenamiento con tu receta. Utiliza el PyTorch estimador del [SDK de SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) para IA para enviar la receta. En el siguiente ejemplo, se lanza la receta llama3-8b en la plataforma AI Training. SageMaker 

```
import os
import sagemaker,boto3
from sagemaker.debugger import TensorBoardOutputConfig

from sagemaker.pytorch import PyTorch

sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()

bucket = sagemaker_session.default_bucket() 
output = os.path.join(f"s3://{bucket}", "output")
output_path = "<s3-URI>"

overrides = {
    "run": {
        "results_dir": "/opt/ml/model",
    },
    "exp_manager": {
        "exp_dir": "",
        "explicit_log_dir": "/opt/ml/output/tensorboard",
        "checkpoint_dir": "/opt/ml/checkpoints",
    },   
    "model": {
        "data": {
            "train_dir": "/opt/ml/input/data/train",
            "val_dir": "/opt/ml/input/data/val",
        },
    },
}

tensorboard_output_config = TensorBoardOutputConfig(
    s3_output_path=os.path.join(output, 'tensorboard'),
    container_local_output_path=overrides["exp_manager"]["explicit_log_dir"]
)

estimator = PyTorch(
    output_path=output_path,
    base_job_name=f"llama-recipe",
    role=role,
    instance_type="ml.p5.48xlarge",
    training_recipe="training/llama/hf_llama3_8b_seq8k_gpu_p5x16_pretrain",
    recipe_overrides=recipe_overrides,
    sagemaker_session=sagemaker_session,
    tensorboard_output_config=tensorboard_output_config,
)

estimator.fit(inputs={"train": "s3 or fsx input", "val": "s3 or fsx input"}, wait=True)
```

El código anterior crea un objeto PyTorch estimador con la receta de entrenamiento y, a continuación, ajusta el modelo mediante el método. `fit()` Utilice el parámetro training\$1recipe para especificar la receta que desee utilizar para el entrenamiento.

**nota**  
Si está ejecutando un trabajo de entrenamiento multimodal en Llama 3.2, la versión de transformers debe ser 4.45.2 o superior.

`transformers==4.45.2`Añádelo `requirements.txt` `source_dir` solo cuando utilices el SDK de Python para SageMaker IA directamente. Por ejemplo, debe añadir la versión al archivo de texto cuando utilice un cuaderno de Jupyter.

Al implementar el punto final para un trabajo de SageMaker formación, debe especificar el URI de la imagen que está utilizando. Si no proporciona la URI de la imagen, el estimador utilizará la imagen de entrenamiento para la implementación. Las imágenes de entrenamiento que se SageMaker HyperPod proporcionan no contienen las dependencias necesarias para la inferencia y el despliegue. En el siguiente ejemplo se muestra cómo se puede utilizar una imagen de inferencia para la implementación:

```
from sagemaker import image_uris
container=image_uris.retrieve(framework='pytorch',region='us-west-2',version='2.0',py_version='py310',image_scope='inference', instance_type='ml.p4d.24xlarge')
predictor = estimator.deploy(initial_instance_count=1,instance_type='ml.p4d.24xlarge',image_uri=container)
```

**nota**  
Para ejecutar el código anterior en una instancia de portátil de Sagemaker, es posible que se necesiten más de los 5 GB de almacenamiento predeterminados que proporciona la IA. SageMaker JupyterLab Si tiene problemas por falta de espacio, cree una nueva instancia de cuaderno en la que debe utilizar una instancia de cuaderno diferente y aumente el almacenamiento del cuaderno.

## Lanzamiento del trabajo de entrenamiento con el lanzador de fórmulas
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-launch-training-job-recipes"></a>

Actualice el archivo `./recipes_collection/cluster/sm_jobs.yaml` para que tenga el siguiente aspecto:

```
sm_jobs_config:
  output_path: <s3_output_path>
  tensorboard_config:
    output_path: <s3_output_path>
    container_logs_path: /opt/ml/output/tensorboard  # Path to logs on the container
  wait: True  # Whether to wait for training job to finish
  inputs:  # Inputs to call fit with. Set either s3 or file_system, not both.
    s3:  # Dictionary of channel names and s3 URIs. For GPUs, use channels for train and validation.
      train: <s3_train_data_path>
      val: null
  additional_estimator_kwargs:  # All other additional args to pass to estimator. Must be int, float or string.
    max_run: 180000
    enable_remote_debug: True
  recipe_overrides:
    exp_manager:
      explicit_log_dir: /opt/ml/output/tensorboard
    data:
      train_dir: /opt/ml/input/data/train
    model:
      model_config: /opt/ml/input/data/train/config.json
    compiler_cache_url: "<compiler_cache_url>"
```

Actualice `./recipes_collection/config.yaml` para que especifique `sm_jobs` en `cluster` y `cluster_type`.

```
defaults:
  - _self_
  - cluster: sm_jobs  # set to `slurm`, `k8s` or `sm_jobs`, depending on the desired cluster
  - recipes: training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain
cluster_type: sm_jobs  # bcm, bcp, k8s or sm_jobs. If bcm, k8s or sm_jobs, it must match - cluster above.
```

Lance el trabajo con el siguiente comando.

```
python3 main.py --config-path recipes_collection --config-name config
```

Para obtener más información sobre la configuración de los trabajos de SageMaker formación, consulte Ejecutar un trabajo de formación en los trabajos de SageMaker formación.

# Tutorial previo a los trabajos de SageMaker formación de Trainium
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-pretrain-tutorial"></a>

Este tutorial le guía a través del proceso de configuración y ejecución de un trabajo previo a la formación mediante trabajos de formación con instancias de SageMaker Trainium. AWS 
+ Configure su entorno
+ Lanzamiento de un trabajo de entrenamiento

Antes de comenzar, asegúrese de que cumple los siguientes requisitos previos.

**Requisitos previos**  
Antes de configurar el entorno, asegúrese de disponer de:  
Sistema de FSx archivos Amazon o depósito S3 donde puede cargar los datos y generar los artefactos de entrenamiento.
Solicita una cuota de servicio para la `ml.trn1.32xlarge` instancia en Amazon SageMaker AI. Para solicitar un aumento de la cuota de servicio, haga lo siguiente:  
Navegue hasta la consola AWS de Service Quotas.
Elija AWS los servicios.
Selecciona JupyterLab.
Especifique una instancia para `ml.trn1.32xlarge`.
Cree un rol AWS Identity and Access Management (de IAM) con las políticas `AmazonEC2FullAccess` administradas `AmazonSageMakerFullAccess` y las políticas. Estas políticas proporcionan a Amazon SageMaker AI permisos para ejecutar los ejemplos.
Datos en uno de los siguientes formatos:  
JSON
JSONGZ (JSON comprimido)
ARROW
(Opcional) Si necesitas las pesas previamente entrenadas HuggingFace o si estás entrenando un modelo Llama 3.2, debes obtener la HuggingFace ficha antes de empezar a entrenar. Para obtener más información sobre cómo obtener el token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configura tu entorno para los trabajos de entrenamiento de Trainium SageMaker
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-environment-setup"></a>

Antes de realizar un trabajo de SageMaker formación, utilice el `aws configure` comando para configurar sus AWS credenciales y su región preferida. Como alternativa, también puede proporcionar sus credenciales a través de variables de entorno como `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` y `AWS_SESSION_TOKEN`. Para obtener más información, consulte [SageMaker AI Python SDK](https://github.com/aws/sagemaker-python-sdk).

Recomendamos encarecidamente utilizar un cuaderno SageMaker AI Jupyter en SageMaker IA JupyterLab para iniciar un trabajo de SageMaker formación. Para obtener más información, consulte [SageMaker JupyterLab](studio-updated-jl.md).
+ (Opcional) Si utilizas el cuaderno Jupyter en Amazon SageMaker Studio, puedes omitir la ejecución del siguiente comando. Asegúrese de utilizar una versión >= python 3.9

  ```
  # set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  # install dependencies after git clone.
  
  git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Instale SageMaker AI Python SDK

  ```
  pip3 install --upgrade sagemaker
  ```
+ 
  + Si está ejecutando un trabajo de entrenamiento multimodal en Llama 3.2, la versión `transformers` debe ser `4.45.2` o superior.
    + `transformers==4.45.2`Añádelo a `requirements.txt` source\$1dir solo cuando utilices el SDK de SageMaker Python para IA.
    + Si utilizas HyperPod recetas para lanzarlas `sm_jobs` como tipo de clúster, no es necesario que especifiques la versión de los transformers.
  + `Container`: El SDK de SageMaker AI Python configura automáticamente el contenedor Neuron.

## Lanzamiento del trabajo de entrenamiento con un cuaderno de Jupyter
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-launch-training-job-notebook"></a>

Puedes usar el siguiente código de Python para ejecutar un trabajo de SageMaker entrenamiento con tu receta. Utiliza el PyTorch estimador del [SDK de SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) para IA para enviar la receta. El siguiente ejemplo lanza la receta llama3-8b como un trabajo de entrenamiento de IA SageMaker .
+ `compiler_cache_url`: es la caché que se utilizará para guardar los artefactos compilados, como un artefacto de Amazon S3.

```
import os
import sagemaker,boto3
from sagemaker.debugger import TensorBoardOutputConfig

from sagemaker.pytorch import PyTorch

sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()

recipe_overrides = {
    "run": {
        "results_dir": "/opt/ml/model",
    },
    "exp_manager": {
        "explicit_log_dir": "/opt/ml/output/tensorboard",
    },
    "data": {
        "train_dir": "/opt/ml/input/data/train",
    },
    "model": {
        "model_config": "/opt/ml/input/data/train/config.json",
    },
    "compiler_cache_url": "<compiler_cache_url>"
} 

tensorboard_output_config = TensorBoardOutputConfig(
    s3_output_path=os.path.join(output, 'tensorboard'),
    container_local_output_path=overrides["exp_manager"]["explicit_log_dir"]
)

estimator = PyTorch(
    output_path=output_path,
    base_job_name=f"llama-trn",
    role=role,
    instance_type="ml.trn1.32xlarge",
    sagemaker_session=sagemaker_session,
    training_recipe="training/llama/hf_llama3_70b_seq8k_trn1x16_pretrain",
    recipe_overrides=recipe_overrides,
)

estimator.fit(inputs={"train": "your-inputs"}, wait=True)
```

El código anterior crea un objeto PyTorch estimador con la receta de entrenamiento y, a continuación, ajusta el modelo mediante el método. `fit()` Utilice el parámetro `training_recipe` para especificar la receta que desee utilizar para el entrenamiento.

## Lanzamiento del trabajo de entrenamiento con el lanzador de fórmulas
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-launch-training-job-recipes"></a>
+ Actualice `./recipes_collection/cluster/sm_jobs.yaml`.
  + compiler\$1cache\$1url: es la URL utilizada para guardar los artefactos. Puede ser una URL de Amazon S3.

  ```
  sm_jobs_config:
    output_path: <s3_output_path>
    wait: True
    tensorboard_config:
      output_path: <s3_output_path>
      container_logs_path: /opt/ml/output/tensorboard  # Path to logs on the container
    wait: True  # Whether to wait for training job to finish
    inputs:  # Inputs to call fit with. Set either s3 or file_system, not both.
      s3:  # Dictionary of channel names and s3 URIs. For GPUs, use channels for train and validation.
        train: <s3_train_data_path>
        val: null
    additional_estimator_kwargs:  # All other additional args to pass to estimator. Must be int, float or string.
      max_run: 180000
      image_uri: <your_image_uri>
      enable_remote_debug: True
      py_version: py39
    recipe_overrides:
      model:
        exp_manager:
          exp_dir: <exp_dir>
        data:
          train_dir: /opt/ml/input/data/train
          val_dir: /opt/ml/input/data/val
  ```
+ Actualice `./recipes_collection/config.yaml`.

  ```
  defaults:
    - _self_
    - cluster: sm_jobs
    - recipes: training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain
  cluster_type: sm_jobs # bcm, bcp, k8s or sm_jobs. If bcm, k8s or sm_jobs, it must match - cluster above.
  
  instance_type: ml.trn1.32xlarge
  base_results_dir: ~/sm_job/hf_llama3_8B # Location to store the results, checkpoints and logs.
  ```
+ Lance el trabajo con `main.py`.

  ```
  python3 main.py --config-path recipes_collection --config-name config
  ```

Para obtener más información sobre la configuración de los trabajos SageMaker de formación, consulte. [SageMaker tutoriales previos a la formación para trabajos de formación (GPU)](sagemaker-hyperpod-gpu-sagemaker-training-jobs-pretrain-tutorial.md)

# Configuración predeterminada
<a name="default-configurations"></a>

En esta sección se describen los componentes y ajustes esenciales necesarios para iniciar y personalizar sus procesos de formación mediante SageMaker HyperPod un modelo de lenguaje amplio (LLM). En esta sección se describen los principales repositorios, los archivos de configuración y las estructuras de fórmulas que constituyen la base de sus trabajos de entrenamiento. Comprender estas configuraciones predeterminadas es fundamental para configurar y administrar los flujos de trabajo de entrenamiento de LLM, tanto si utiliza fórmulas predefinidas como si las personaliza para adaptarlas a sus necesidades específicas.

**Topics**
+ [GitHub repositorios](github-repositories.md)
+ [Configuración general](sagemaker-hyperpod-recipes-general-configuration.md)

# GitHub repositorios
<a name="github-repositories"></a>

Para iniciar un trabajo de formación, se utilizan archivos de dos GitHub repositorios distintos:
+ [SageMaker HyperPod recetas](https://github.com/aws/sagemaker-hyperpod-recipes)
+ [SageMaker HyperPod adaptador de entrenamiento para NeMo](https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo)

Estos repositorios contienen componentes esenciales para iniciar, administrar y personalizar los procesos de entrenamiento de los modelos de lenguaje de gran tamaño (LLM). Utiliza los scripts de los repositorios para configurar y ejecutar los trabajos de formación para su LLMs.

## HyperPod repositorio de recetas
<a name="sagemaker-hyperpod-recipe-repository"></a>

Usa el repositorio de [SageMaker HyperPod recetas](https://github.com/aws/sagemaker-hyperpod-recipes) para obtener una receta.

1. `main.py`: Este archivo sirve como punto de entrada principal para iniciar el proceso de envío de un trabajo de formación a un clúster o a un trabajo de SageMaker formación.

1. `launcher_scripts`: Este directorio contiene una colección de scripts de uso común diseñados para facilitar el proceso de formación para varios modelos de lenguajes de gran tamaño (LLMs).

1. `recipes_collection`: esta carpeta contiene una recopilación de fórmulas de LLM predefinidas proporcionadas por los desarrolladores. Los usuarios pueden aprovechar estas fórmulas, además de sus datos personalizados, para entrenar los modelos LLM adaptados a sus requisitos específicos.

Las SageMaker HyperPod recetas se utilizan para iniciar tareas de formación o de perfeccionamiento. Independientemente del clúster que utilice, el proceso de envío del trabajo es el mismo. Por ejemplo, puede usar el mismo script para enviar un trabajo a un clúster de Slurm o Kubernetes. El lanzador distribuye un trabajo de entrenamiento en función de tres archivos de configuración:

1. Configuración general (`config.yaml`): incluye ajustes comunes, como los parámetros predeterminados o las variables de entorno que se utilizan en el trabajo de entrenamiento.

1. Configuración de clústeres (clúster): para trabajos de entrenamiento que únicamente utilizan clústeres. Si va a enviar un trabajo de entrenamiento a un clúster de Kubernetes, es posible que tenga que especificar información como el volumen, la etiqueta o la política de reinicio. En el caso de los clústeres de Slurm, es posible que tenga que especificar el nombre del trabajo de Slurm. Todos los parámetros están relacionados con el clúster específico que está utilizando.

1. Receta (recetas): las fórmulas contienen la configuración de su trabajo de entrenamiento, como los tipos de modelo, el grado de partición o las rutas de los conjuntos de datos. Por ejemplo, puede especificar Llama como modelo de entrenamiento y entrenarlo con técnicas de paralelismo de datos o modelos, como el paralelismo de datos totalmente particionados (FSDP, por sus siglas en inglés), en ocho máquinas. También puede especificar diferentes frecuencias o rutas de puntos de comprobación para su trabajo de entrenamiento.

Una vez que haya especificado una receta, ejecute el script del lanzador para especificar un trabajo de end-to-end formación en un clúster en función de las configuraciones introducidas en el punto de entrada. `main.py` Cada fórmula que utilice tiene scripts de intérprete de comandos asociados ubicados en la carpeta launch\$1scripts. Estos ejemplos le guían a la hora de enviar e iniciar trabajos de entrenamiento. La siguiente figura ilustra cómo un lanzador de SageMaker HyperPod recetas envía un trabajo de formación a un clúster en función de lo anterior. Actualmente, el lanzador de SageMaker HyperPod recetas está construido sobre el Nvidia NeMo Framework Launcher. Para obtener más información, consulte la Guía del [NeMo lanzador](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html).

![\[Diagrama que ilustra el flujo de trabajo del lanzador de HyperPod recetas. A la izquierda, dentro de un cuadro de línea discontinua, hay tres iconos de archivo con las etiquetas “Recipe”, “config.yaml” y “slurm.yaml or k8s.yaml or sm_job.yaml (Cluster config)”. Una flecha apunta desde esta caja a una caja central denominada «lanzador de HyperPod recetas». Desde este cuadro central, otra flecha apunta hacia la derecha hacia “Training Job”, con “main.py” escrito encima de la flecha.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/sagemaker-hyperpod-recipe-launcher.png)


## HyperPod repositorio de adaptadores de recetas
<a name="hyperpod-recipe-adapter"></a>

El adaptador SageMaker HyperPod de formación es un marco de formación. Puede utilizarlo para administrar todo el ciclo de vida de sus trabajos de entrenamiento. Utilice el adaptador para distribuir el entrenamiento previo o el refinamiento de sus modelos entre varias máquinas. El adaptador utiliza diferentes técnicas de paralelismo para distribuir el entrenamiento. También se encarga de la implementación y la administración del almacenamiento de los puntos de comprobación. Para obtener más información, consulte [Configuración avanzada](cluster-specific-configurations-advanced-settings.md).

Utilice el [repositorio de adaptadores de SageMaker HyperPod recetas](https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo) para utilizar el adaptador de recetas.

1. `src`: este directorio contiene la implementación del entrenamiento de modelos de lenguaje de gran tamaño (LLM) y abarca diversas características, como el paralelismo de modelos, el entrenamiento con precisión mixta y la administración de puntos de comprobación.

1. `examples`: esta carpeta proporciona una colección de ejemplos que muestran cómo crear un punto de entrada para el entrenamiento de un modelo de LLM y sirve de guía práctica para los usuarios.

# Configuración general
<a name="sagemaker-hyperpod-recipes-general-configuration"></a>

El archivo config.yaml especifica la receta de entrenamiento y el clúster. También incluye configuraciones de tiempo de ejecución, como variables de entorno para el trabajo de entrenamiento.

```
defaults:
  - _self_
  - cluster: slurm 
  - recipes: training/llama/hf_llama3_8b_seq8192_gpu
instance_type: p5.48xlarge
git:
  repo_url_or_path: null
  branch: null
  commit: null
  entry_script: null
  token: null
env_vars:
  NCCL_DEBUG: WARN
```

Puede modificar los parámetros siguientes en `config.yaml`:

1. `defaults`: especifique la configuración predeterminada, como el clúster predeterminado o las fórmulas predeterminadas.

1. `instance_type`: modifique el tipo de instancia de Amazon EC2 para que coincida con el tipo de instancia que está utilizando.

1. `git`: especifique la ubicación del repositorio de adaptadores de SageMaker HyperPod recetas para el trabajo de formación.

1. `env_vars`: puede especificar las variables de entorno que se transferirán a su trabajo de entrenamiento en tiempo de ejecución. Por ejemplo, puede adaptar el nivel de registro de NCCL especificando la variable de entorno NCCL\$1DEBUG.

La fórmula es la configuración básica que define la arquitectura de su trabajo de entrenamiento. Este archivo incluye muchos datos importantes para su trabajo de entrenamiento, como los siguientes:
+ Si se debe utilizar el paralelismo de modelos
+ El nombre de su conjunto de datos
+ El entrenamiento de precisión mixta
+ Configuraciones relacionadas con los puntos de comprobación

Puede utilizar las fórmulas tal cual. También puede utilizar la siguiente información para modificarlas.

## run
<a name="run"></a>

La siguiente es la información básica de run para ejecutar el trabajo de entrenamiento.

```
run:
  name: llama-8b
  results_dir: ${base_results_dir}/${.name}
  time_limit: "6-00:00:00"
  model_type: hf
```

1. `name`: especifique el nombre del trabajo de entrenamiento en el archivo de configuración.

1. `results_dir`: puede especificar el directorio en el que se almacenan los resultados de su trabajo de entrenamiento.

1. `time_limit`: puede establecer un tiempo de entrenamiento máximo para su trabajo de entrenamiento para evitar que ocupe recursos de hardware durante demasiado tiempo.

1. `model_type`: puede especificar el tipo de modelo que va a utilizar. Por ejemplo, puede especificar `hf` si su modelo es de HuggingFace.

## exp\$1manager
<a name="exp-manager"></a>

exp\$1manager configura el experimento. exp\$1manager le permite especificar campos como el directorio de salida o la configuración de los puntos de comprobación. A continuación se muestra un ejemplo de cómo puede configurar el exp\$1manager.

```
exp_manager:
  exp_dir: null
  name: experiment
  create_tensorboard_logger: True
```

1. `exp_dir`: el directorio de experimentos incluye los archivos de salida y de error estándares para su trabajo de entrenamiento. De forma predeterminada, usa su directorio actual.

1. `name`: es el nombre del experimento utilizado para identificar el experimento en exp\$1dir.

1. `create_tensorboard_logger`: especifique `True` o `False` active o desactive el TensorBoard registrador.

## Creación de puntos de comprobación
<a name="checkpointing"></a>

Estos son los tres tipos de puntos de comprobación admitidos:
+ Puntos de comprobación automáticos
+ Puntos de comprobación manuales
+ Puntos de control completos

### Puntos de comprobación automáticos
<a name="auto-checkpointing"></a>

Si va a guardar o cargar puntos de control que el adaptador de SageMaker HyperPod recetas gestiona automáticamente, puede activarlos. `auto_checkpoint` Establezca `auto_checkpoint` en `enabled` para activar `True`. Puede utilizar los puntos de comprobación automáticos tanto para entrenar como para refinar. Puede utilizar los puntos de comprobación automáticos tanto para los sistemas de archivos compartidos como para Amazon S3.

```
exp_manager
  checkpoint_dir: ${recipes.exp_manager.exp_dir}/checkpoints/
  auto_checkpoint:
    enabled: True
```

El punto de comprobación automático guarda el local\$1state\$1dict de forma asíncrona con un intervalo de almacenamiento óptimo calculado automáticamente.

**nota**  
En este modo de puntos de comprobación, los puntos de comprobación guardados automáticamente no admiten la repartición entre las sesiones de entrenamiento. Para reanudar desde el último punto de comprobación guardado automáticamente, debe conservar los mismos grados de partición. No es necesario especificar información adicional para la reanudación automática.

### Puntos de comprobación manuales
<a name="manual-checkpointing"></a>

Puede modificar `checkpoint_callback_params` para guardar un punto de comprobación intermedio de forma asíncrona en shared\$1state\$1dict. Por ejemplo, puede especificar la siguiente configuración para activar los puntos de comprobación particionados cada 10 pasos y conservar los 3 últimos puntos de comprobación.

Los puntos de comprobación particionados le permiten cambiar los grados de partición entre las ejecuciones de entrenamiento y cargar el punto de comprobación configurando `resume_from_checkpoint`.

**nota**  
Si se trata de un refinamiento PEFT, los puntos de comprobación particionados no admiten Amazon S3.
Los puntos de comprobación automáticos y manuales son mutuamente excluyentes.
Solo se permiten los cambios en los grados de partición y de replicación de FSDP.

```
exp_manager:
  checkpoint_callback_params:
    # Set save_top_k = 0 to disable sharded checkpointing
    save_top_k: 3
    every_n_train_steps: 10
    monitor: "step"
    mode: "max"
    save_last: False
  resume_from_checkpoint: ${recipes.exp_manager.exp_dir}/checkpoints/
```

Para obtener más información sobre los puntos de comprobación, consulte [Puntos de comprobación mediante SMP](model-parallel-core-features-v2-checkpoints.md).

### Puntos de control completos
<a name="full-checkpointing"></a>

El punto de comprobación full\$1state\$1dict exportado se puede utilizar para las inferencias o para refinar. Puede cargar un punto de comprobación completo mediante hf\$1model\$1name\$1or\$1path. En este modo, solo se guardan las ponderaciones del modelo.

Para exportar el modelo full\$1state\$1dict, puede establecer los siguientes parámetros.

**nota**  
Actualmente, los puntos de comprobación completos no admiten los puntos de comprobación de Amazon S3. No puede configurar la ruta de S3 para `exp_manager.checkpoint_dir` si está habilitando los puntos de comprobación completos. Sin embargo, puede establecer `exp_manager.export_full_model.final_export_dir` en un directorio específico de su sistema de archivos local y, al mismo tiempo, configurar `exp_manager.checkpoint_dir` en una ruta de Amazon S3.

```
exp_manager:
  export_full_model:
    # Set every_n_train_steps = 0 to disable full checkpointing
    every_n_train_steps: 0
    save_last: True
    final_export_dir : null
```

## model
<a name="model"></a>

Defina varios aspectos de la arquitectura de su modelo y del proceso de entrenamiento. Esto incluye configurar el paralelismo, la precisión y la gestión de datos del modelo. A continuación se muestran los componentes clave que puede configurar en la sección model:

### paralelismo de modelos
<a name="model-parallelism"></a>

Después de especificar la fórmula, debe definir el modelo que está entrenando. También puede definir el paralelismo de modelos. Por ejemplo, puede definir tensor\$1model\$1parallel\$1degree. Puedes activar otras funciones, como el entrenamiento con FP8 precisión. Por ejemplo, puede entrenar un modelo con paralelismo tensor y paralelismo contextual:

```
model:
  model_type: llama_v3
  # Base configs
  train_batch_size: 4
  val_batch_size: 1
  seed: 12345
  grad_clip: 1.0

  # Model parallelism
  tensor_model_parallel_degree: 4
  expert_model_parallel_degree: 1
  context_parallel_degree: 2
```

Para comprender mejor los diferentes tipos de técnicas de paralelismo de modelos, puede consultar los siguientes enfoques:

1. [Paralelismo de tensores](model-parallel-core-features-v2-tensor-parallelism.md)

1. [Paralelismo experto](model-parallel-core-features-v2-expert-parallelism.md)

1. [Paralelismo de contexto](model-parallel-core-features-v2-context-parallelism.md)

1. [Paralelismo híbrido de datos particionados](model-parallel-core-features-v2-sharded-data-parallelism.md)

### FP8
<a name="fp8"></a>

Para activarla FP8 (precisión de punto flotante de 8 bits), puede especificar la configuración FP8 relacionada en el siguiente ejemplo:

```
model:
  # FP8 config
  fp8: True
  fp8_amax_history_len: 1024
  fp8_amax_compute_algo: max
```

Es importante tener en cuenta que, actualmente, el formato de FP8 datos solo se admite en el tipo de instancia P5. Si utilizas un tipo de instancia anterior, como la P4, desactiva la FP8 función para tu proceso de entrenamiento de modelos. Para obtener más información al respecto FP8, consulte[Entrenamiento de precisión mixta](model-parallel-core-features-v2-mixed-precision.md).

### data
<a name="data"></a>

Puede especificar sus conjuntos de datos personalizados para su trabajo de entrenamiento añadiendo las rutas de datos en la sección data. El módulo de datos de nuestro sistema es compatible con los siguientes formatos de datos:

1. JSON

1. JSONGZ (JSON comprimido)

1. ARROW

Sin embargo, usted debe preparar su propio conjunto de datos previamente tokenizado. Si es un usuario avanzado con requisitos específicos, también existe la opción de implementar e integrar un módulo de datos personalizado. Para obtener más información sobre los HuggingFace conjuntos de datos, consulte [Conjuntos](https://huggingface.co/docs/datasets/v3.1.0/en/index) de datos.

```
model:
  data:
    train_dir: /path/to/your/train/data
    val_dir: /path/to/your/val/data
    dataset_type: hf
    use_synthetic_data: False
```

Puede especificar cómo va a entrenar el modelo. De forma predeterminada, la fórmula utiliza el entrenamiento previo en lugar del refinamiento. El siguiente ejemplo configura la receta para ejecutar un trabajo de refinamiento con LoRA (adaptación de rango bajo).

```
model:
  # Fine tuning config
  do_finetune: True
  # The path to resume from, needs to be HF compatible
  hf_model_name_or_path: null
  hf_access_token: null
  # PEFT config
  peft:
    peft_type: lora
    rank: 32
    alpha: 16
    dropout: 0.1
```

[Para obtener información sobre las recetas, consulte SageMaker HyperPod recetas.](https://github.com/aws/sagemaker-hyperpod-recipes)

# Configuraciones específicas del clúster
<a name="cluster-specific-configurations"></a>

SageMaker HyperPod ofrece flexibilidad a la hora de ejecutar tareas de formación en distintos entornos de clústeres. Cada entorno tiene sus propios requisitos de configuración y proceso de configuración. En esta sección se describen los pasos y las configuraciones necesarios para ejecutar los trabajos de formación en SageMaker HyperPod Slurm, SageMaker HyperPod k8s y los trabajos de formación. SageMaker Comprender estas configuraciones es crucial para aprovechar de manera eficaz el poder del entrenamiento distribuido en el entorno que elija.

Puede utilizar una fórmula en los siguientes entornos de clúster:
+ SageMaker HyperPod Orquestación de Slurm
+ SageMaker HyperPod Orquestación del servicio Amazon Elastic Kubernetes Service
+ SageMaker trabajos de formación

Para iniciar un trabajo de entrenamiento en un clúster, configure e instale la configuración y el entorno del clúster correspondientes.

**Topics**
+ [¿Estás realizando un trabajo de formación en HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md)
+ [¿Estás realizando un trabajo de entrenamiento en k8s HyperPod](cluster-specific-configurations-run-training-job-hyperpod-k8s.md)
+ [SageMaker Ejecutar un trabajo de formación](cluster-specific-configurations-run-sagemaker-training-job.md)

# ¿Estás realizando un trabajo de formación en HyperPod Slurm
<a name="cluster-specific-configurations-run-training-job-hyperpod-slurm"></a>

SageMaker HyperPod Recipes permite enviar un trabajo de formación a un clúster de GPU/Trainium Slurm. Antes de enviar el trabajo de entrenamiento, actualice la configuración del clúster. Use uno de los siguientes métodos para actualizar la configuración del clúster:
+ Modificar `slurm.yaml`.
+ Anularlo mediante la línea de comandos.

Después de actualizar la configuración del clúster, instale el entorno.

## Configuración del clúster
<a name="cluster-specific-configurations-configure-cluster-slurm-yaml"></a>

Para enviar un trabajo de entrenamiento a un clúster de Slurm, especifique la configuración específica de Slurm. Modifique `slurm.yaml` para configurar el clúster de Slurm. A continuación, se muestra un ejemplo de configuración de un clúster de Slurm. Puede modificar este archivo según sus propias necesidades de entrenamiento:

```
job_name_prefix: 'sagemaker-'
slurm_create_submission_file_only: False 
stderr_to_stdout: True
srun_args:
  # - "--no-container-mount-home"
slurm_docker_cfg:
  docker_args:
    # - "--runtime=nvidia" 
  post_launch_commands: 
container_mounts: 
  - "/fsx:/fsx"
```

1. `job_name_prefix`: especifique un prefijo de nombre de trabajo para identificar fácilmente sus envíos al clúster de Slurm.

1. `slurm_create_submission_file_only`: defina esta configuración en True para una ejecución en seco que le ayude a depurar.

1. `stderr_to_stdout`: especifique si está redirigiendo el error estándar (stderr) a la salida estándar (stdout).

1. `srun_args`: personalice las configuraciones de srun adicionales, como la exclusión de nodos de computación específicos. Para obtener más información, consulte la documentación de srun.

1. `slurm_docker_cfg`: El lanzador de SageMaker HyperPod recetas lanza un contenedor Docker para ejecutar tu trabajo de formación. Puede especificar argumentos de Docker adicionales dentro de este parámetro.

1. `container_mounts`: especifique los volúmenes que va a montar en el contenedor del lanzador de fórmulas para que sus trabajos de entrenamiento accedan a los archivos de esos volúmenes.

# ¿Estás realizando un trabajo de entrenamiento en k8s HyperPod
<a name="cluster-specific-configurations-run-training-job-hyperpod-k8s"></a>

SageMaker HyperPod Recipes permite enviar un trabajo de formación a un clúster de GPU/Trainium Kubernetes. Antes de enviar el trabajo de entrenamiento, realice una de las acciones siguientes:
+ Modifique el archivo de configuración del clúster `k8s.yaml`.
+ Anule la configuración del clúster mediante la línea de comandos.

Tras realizar cualquiera de los pasos anteriores, instale el entorno correspondiente.

## Configuración del clúster con `k8s.yaml`
<a name="cluster-specific-configurations-configure-cluster-k8s-yaml"></a>

Para enviar un trabajo de entrenamiento a un clúster de Kubernetes, debe especificar las configuraciones específicas de Kubernetes. Las configuraciones incluyen el espacio de nombres del clúster o la ubicación del volumen persistente.

```
pullPolicy: Always
restartPolicy: Never
namespace: default
persistent_volume_claims:
  - null
```

1. `pullPolicy`: puede especificar la política de extracción al enviar un trabajo de entrenamiento. Si especifica “Always”, el clúster de Kubernetes siempre extraerá su imagen del repositorio. Para obtener más información, consulte [Política de extracción de imágenes](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy).

1. `restartPolicy`: especifique si desea reiniciar el trabajo de entrenamiento en caso de que no funcione.

1. `namespace`: puede especificar el espacio de nombres de Kubernetes al que va a enviar el trabajo de entrenamiento.

1. `persistent_volume_claims`: puede especificar un volumen compartido para su trabajo de entrenamiento para que todos los procesos de formación accedan a los archivos del volumen.

# SageMaker Ejecutar un trabajo de formación
<a name="cluster-specific-configurations-run-sagemaker-training-job"></a>

SageMaker HyperPod Recipes admite la presentación de un trabajo de SageMaker formación. Antes de enviar el trabajo de entrenamiento, debe actualizar la configuración del clúster, `sm_job.yaml`, e instalar el entorno correspondiente.

## Usa tu receta como un trabajo SageMaker de entrenamiento
<a name="cluster-specific-configurations-cluster-config-sm-job-yaml"></a>

Puedes usar tu receta como un trabajo de SageMaker formación si no estás alojando un clúster. Debe modificar el archivo de configuración del trabajo de SageMaker formación`sm_job.yaml`, para ejecutar la receta.

```
sm_jobs_config:
  output_path: null 
  tensorboard_config:
    output_path: null 
    container_logs_path: null
  wait: True 
  inputs: 
    s3: 
      train: null
      val: null
    file_system:  
      directory_path: null
  additional_estimator_kwargs: 
    max_run: 1800
```

1. `output_path`: puede especificar dónde va a guardar el modelo en una URL de Amazon S3.

1. `tensorboard_config`: Puede especificar una configuración TensorBoard relacionada, como la ruta de salida o la ruta de TensorBoard registros.

1. `wait`: puede especificar si está esperando a que se complete el trabajo cuando envíe su trabajo de entrenamiento.

1. `inputs`: puede especificar las rutas para sus datos de entrenamiento y validación. La fuente de datos puede provenir de un sistema de archivos compartido, como Amazon FSx o una URL de Amazon S3.

1. `additional_estimator_kwargs`: Argumentos estimadores adicionales para enviar un trabajo de formación a la plataforma de empleos de SageMaker formación. Para obtener más información, consulte [Algorithm Estimator](https://sagemaker.readthedocs.io/en/stable/api/training/algorithm.html).

# Consideraciones
<a name="cluster-specific-configurations-special-considerations"></a>

Cuando utilizas SageMaker HyperPod recetas de Amazon, hay algunos factores que pueden afectar al proceso de formación de modelos.
+ La versión `transformers` debe ser `4.45.2` o superior para Llama 3.2. Si utiliza un flujo de trabajo de Slurm o K8s, la versión se actualiza automáticamente.
+ Mixtral no admite la precisión de punto flotante de 8 bits () FP8
+ La instancia p4 de Amazon EC2 no es compatible FP8

# Configuración avanzada
<a name="cluster-specific-configurations-advanced-settings"></a>

El adaptador de SageMaker HyperPod recetas se basa en los marcos Nvidia Nemo y Pytorch-Lightning. Si ya ha utilizado estos marcos, integrar sus modelos o funciones personalizados en el adaptador de SageMaker HyperPod recetas es un proceso similar. Además de modificar el adaptador de fórmulas, puede cambiar su propio script de entrenamiento previo o de refinamiento. Para obtener orientación sobre cómo escribir su script de entrenamiento personalizado, consulte [examples](https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo/tree/main/examples).

## Usa el SageMaker HyperPod adaptador para crear tu propio modelo
<a name="cluster-specific-configurations-use-hyperpod-adapter-create-model"></a>

Dentro del adaptador de fórmulas, puede personalizar los siguientes archivos en las siguientes ubicaciones:

1. `collections/data`: contiene un módulo responsable de cargar los conjuntos de datos. Actualmente, solo admite conjuntos de datos de HuggingFace. Si tiene requisitos más avanzados, la estructura de código le permite añadir módulos de datos personalizados dentro de la misma carpeta.

1. `collections/model`: incluye las definiciones de varios modelos de lenguaje. Actualmente, es compatible con los modelos de lenguaje de gran tamaño más comunes, como Llama, Mixtral y Mistral. Además, puede introducir sus propias definiciones de modelos en esta carpeta.

1. `collections/parts`: esta carpeta contiene estrategias para entrenar modelos de forma distribuida. Un ejemplo es la estrategia de Paralelismo de datos totalmente particionados (FSDP), que permite particionar un modelo de lenguaje de gran tamaño en varios aceleradores. Además, las estrategias admiten diversas formas de paralelismo de modelos. También tiene la opción de introducir sus propias estrategias de entrenamiento personalizadas para el entrenamiento del modelo.

1. `utils`: contiene varias utilidades para facilitar la administración de un trabajo de entrenamiento. Sirve de repositorio donde puede guardar sus propias herramientas. Puede utilizar sus propias herramientas para tareas como la resolución de problemas o la evaluación comparativa. También puede añadir sus propias llamadas PyTorch Lightning personalizadas dentro de esta carpeta. Puede utilizar PyTorch Lightning Callbacks para integrar sin problemas funcionalidades u operaciones específicas en el ciclo de vida de la formación.

1. `conf`: contiene las definiciones del esquema de configuración que se utilizan para validar parámetros específicos en un trabajo de entrenamiento. Si introduce nuevos parámetros o configuraciones, puede añadir su esquema personalizado a esta carpeta. Puede utilizar el esquema personalizado para definir las reglas de validación. Puede validar los tipos de datos, los rangos o cualquier otra restricción de parámetros. También puede definir su propio esquema personalizado para validar los parámetros.

# Apéndice
<a name="appendix"></a>

Utilice la siguiente información para obtener datos sobre la supervisión y el análisis de los resultados del entrenamiento.

## Supervisión de los resultados del entrenamiento
<a name="monitor-training-results"></a>

Supervisar y analizar los resultados de la formación es esencial para que los desarrolladores evalúen la convergencia y solucionen los problemas. SageMaker HyperPod Las recetas ofrecen la integración de Tensorboard para analizar el comportamiento del entrenamiento. Para abordar los desafíos de perfilar grandes trabajos de formación distribuidos, estas recetas también incorporan estas recetas. VizTracer VizTraceres una herramienta de bajo coste para rastrear y visualizar la ejecución del código de Python. Para obtener más información al respecto, consulte VizTracer. [VizTracer](https://viztracer.readthedocs.io/en/latest/installation.html)

Las siguientes secciones lo guían a través del proceso de implementación de estas funciones en sus SageMaker HyperPod recetas.

### TensorBoard
<a name="tensorboard"></a>

Tensorboard es una herramienta poderosa para visualizar y analizar el proceso de entrenamiento. Para habilitar Tensorboard, modifique su receta configurando el siguiente parámetro:

```
exp_manager:
  exp_dir: null
  name: experiment
  create_tensorboard_logger: True
```

Después de habilitar el registrador de Tensorboard, los registros de entrenamiento se generan y almacenan en el directorio de experimentos. El experimento dirigido se define en exp\$1manager.exp\$1dir. Para acceder a estos registros y analizarlos localmente, utilice el siguiente procedimiento:

**Cómo acceder a y analizar los registros**

1. Descargue la carpeta de experimentos de Tensorboard de su entorno de entrenamiento en su equipo local.

1. Abra el símbolo del sistema o el terminal en su equipo local.

1. Navegue hasta el directorio que contiene la carpeta del experimento descargada.

1. Lance Tensorboard con el siguiente comando.

   ```
   tensorboard --port=<port> --bind_all --logdir experiment.
   ```

1. Abra el navegador web y navegue hasta http://localhost:8008.

Ahora puede ver el estado y las visualizaciones de sus trabajos de entrenamiento en la interfaz de Tensorboard. Ver el estado y las visualizaciones le ayuda a supervisar y analizar el proceso de entrenamiento. Supervisar y analizar el proceso de entrenamiento le ayuda a obtener información sobre el comportamiento y el rendimiento de sus modelos. Para obtener más información sobre cómo monitorizar y analizar el entrenamiento con Tensorboard, consulta la Guía del [usuario de NVIDIA NeMo Framework](https://docs.nvidia.com/nemo-framework/user-guide/latest/llms/index.html).

### VizTracer
<a name="viztracer"></a>

Para habilitarlo VizTracer, puedes modificar tu receta configurando el parámetro model.viztracer.enabled en true. Por ejemplo, puedes actualizar la receta de tu llama para VizTracer habilitarla añadiendo la siguiente configuración:

```
model:
  viztracer:
    enabled: true
```

Una vez finalizada la formación, tu VizTracer perfil estará en la carpeta del experimento exp\$1dir/result.json. Para analizar su perfil, puede descargarlo y abrirlo con la herramienta vizviewer:

```
vizviewer --port <port> result.json
```

Este comando lanza el vizviewer en el puerto 9001. <port>Puedes ver el tuyo VizTracer especificando http://localhost: en tu navegador. Tras abrirla VizTracer, empezará a analizar la formación. Para obtener más información sobre su uso VizTracer, consulte VizTracer la documentación.

## SageMaker JumpStart frente a SageMaker HyperPod
<a name="sagemaker-jumpstart-vs-hyperpod"></a>

Si bien SageMaker JumpStart proporciona capacidades de ajuste, las SageMaker HyperPod recetas ofrecen lo siguiente:
+ Control adicional y detallado sobre el ciclo de entrenamiento
+ Personalización de fórmulas para sus propios modelos y datos
+ Asistencia para el paralelismo de modelos

Utilice las SageMaker HyperPod recetas cuando necesite acceder a los hiperparámetros del modelo, al entrenamiento con varios nodos y a las opciones de personalización del ciclo de entrenamiento.

Para obtener más información sobre cómo ajustar sus modelos, consulte SageMaker JumpStart [Refinamiento de los modelos fundacionales disponibles públicamente con la clase `JumpStartEstimator`](jumpstart-foundation-models-use-python-sdk-estimator-class.md)

# Organización de clústeres con Slurm SageMaker HyperPod
<a name="sagemaker-hyperpod-slurm"></a>

La compatibilidad con Slurm le SageMaker HyperPod ayuda a aprovisionar clústeres resilientes para ejecutar cargas de trabajo de aprendizaje automático (ML) y desarrollar state-of-the-art modelos, como modelos de lenguajes extensos (LLMs), modelos de difusión y modelos básicos (). FMs Acelera el desarrollo FMs al eliminar el trabajo pesado indiferenciado que implica la creación y el mantenimiento de clústeres de cómputo a gran escala alimentados por miles de aceleradores, como AWS Trainium y las unidades de procesamiento gráfico NVIDIA A100 y H100 (). GPUs Cuando los aceleradores fallan, las funciones de resiliencia de los SageMaker HyperPod monitores (las instancias del clúster) detectan y sustituyen automáticamente el hardware defectuoso sobre la marcha para que pueda centrarse en ejecutar cargas de trabajo de aprendizaje automático. Además, con el soporte de configuración del ciclo de vida incorporado SageMaker HyperPod, puede personalizar su entorno informático para que se adapte mejor a sus necesidades y configurarlo con las bibliotecas de formación distribuidas de Amazon SageMaker AI para lograr un rendimiento óptimo AWS.

**Utilización de los clústeres**

Puede crear, configurar y mantener los SageMaker HyperPod clústeres de forma gráfica a través de la interfaz de usuario (UI) de la consola y mediante programación a través de la interfaz de línea de AWS comandos (CLI) o. AWS SDK para Python (Boto3) Con Amazon VPC, puede proteger la red de clústeres y, además, aprovechar la configuración del clúster con los recursos de la VPC, como Amazon FSx for Lustre, que ofrece el rendimiento más rápido. También puede asignar diferentes roles de IAM a los grupos de instancias del clúster y limitar las acciones que pueden llevar a cabo los usuarios y los recursos del clúster. Para obtener más información, consulte [SageMaker HyperPod Operaciones de clúster de Slurm](sagemaker-hyperpod-operate-slurm.md).

**Configuración del entorno de ML**

SageMaker HyperPod se ejecuta[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami), lo que configura un entorno de aprendizaje automático en los clústeres. HyperPod Puede configurar personalizaciones adicionales para la DLAMI proporcionando scripts de ciclo de vida que admitan su caso de uso. Para obtener más información sobre cómo configurar scripts de ciclo de vida, consulte [Empezando con SageMaker HyperPod](smcluster-getting-started-slurm.md) y [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

**Programación de trabajos**

Una vez creado correctamente un HyperPod clúster, los usuarios del clúster pueden iniciar sesión en los nodos del clúster (como el nodo principal o controlador, el nodo de inicio de sesión y el nodo de trabajo) y programar tareas para ejecutar cargas de trabajo de aprendizaje automático. Para obtener más información, consulte [Trabajos en clústeres SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

**Resiliencia frente a los fallos de hardware**

SageMaker HyperPod ejecuta comprobaciones de estado en los nodos del clúster y proporciona una funcionalidad de reanudación automática de la carga de trabajo. Con las funciones de resiliencia de los clústeres HyperPod, puede reanudar la carga de trabajo desde el último punto de control que haya guardado, después de reemplazar los nodos defectuosos por otros en buen estado en los clústeres de más de 16 nodos. Para obtener más información, consulte [SageMaker HyperPod resiliencia del clúster](sagemaker-hyperpod-resiliency-slurm.md).

**Registro y administración de clústeres**

Puedes encontrar métricas de uso de SageMaker HyperPod recursos y registros del ciclo de vida en Amazon CloudWatch, y gestionar SageMaker HyperPod los recursos etiquetándolos. Cada ejecución de la API `CreateCluster` crea un flujo de registro distinto, que se muestra en formato `<cluster-name>-<timestamp>`. En el flujo de registro, puede comprobar los nombres de los hosts, el nombre de los scripts de ciclo de vida fallidos y los resultados de los scripts fallidos, como `stdout` y `stderr`. Para obtener más información, consulte [SageMaker HyperPod administración de clústeres](sagemaker-hyperpod-cluster-management-slurm.md).

**Compatible con herramientas de SageMaker IA**

Con él SageMaker HyperPod, puede configurar clústeres con las bibliotecas de comunicaciones colectivas AWS optimizadas que ofrece la SageMaker IA, como la biblioteca de [paralelismo de datos distribuido (SMDDP) de SageMaker IA](data-parallel.md). La biblioteca SMDDP implementa la `AllGather` operación optimizada para la infraestructura AWS informática y de red para las instancias de aprendizaje automático de SageMaker IA de mayor rendimiento con tecnología NVIDIA A100. GPUs Para obtener más información, consulte [Ejecutar cargas de trabajo de formación distribuidas con Slurm activado HyperPod](sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload.md).

**Colocación de instancias con UltraServers**

SageMaker La IA asigna automáticamente los trabajos a las instancias de su UltraServer empresa basándose en una estrategia que consiste en utilizar todas las instancias de una UltraServer antes de utilizar otra. Por ejemplo, si solicitas 14 instancias y tienes 2 UltraServers en tu plan de formación, la SageMaker IA utilizará todas las instancias de la primera. UltraServer Si ha solicitado 20 instancias y tiene 2 UltraServers en su plan de formación, la SageMaker IA utilizará las 17 instancias en la primera UltraServer y, a continuación, utilizará las 3 de la segunda UltraServer.

**Topics**
+ [Empezando con SageMaker HyperPod](smcluster-getting-started-slurm.md)
+ [SageMaker HyperPod Operaciones de clúster de Slurm](sagemaker-hyperpod-operate-slurm.md)
+ [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)
+ [SageMaker HyperPod soporte para nodos de múltiples cabezales](sagemaker-hyperpod-multihead-slurm.md)
+ [Trabajos en clústeres SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md)
+ [SageMaker HyperPod monitoreo de recursos de clústeres](sagemaker-hyperpod-cluster-observability-slurm.md)
+ [SageMaker HyperPod resiliencia del clúster](sagemaker-hyperpod-resiliency-slurm.md)
+ [Aprovisionamiento continuo para mejorar las operaciones de los clústeres con Slurm](sagemaker-hyperpod-scaling-slurm.md)
+ [SageMaker HyperPod administración de clústeres](sagemaker-hyperpod-cluster-management-slurm.md)
+ [SageMaker HyperPod FAQs](sagemaker-hyperpod-faq-slurm.md)

# Empezando con SageMaker HyperPod
<a name="smcluster-getting-started-slurm"></a>

Comience a crear su primer SageMaker HyperPod clúster y conozca las funcionalidades de operación del clúster SageMaker HyperPod. Puede crear un SageMaker HyperPod clúster a través de la interfaz de usuario de la consola de SageMaker IA o mediante los AWS CLI comandos. Este tutorial muestra cómo crear un nuevo SageMaker HyperPod clúster con Slurm, un popular software de programación de cargas de trabajo. Tras completar este tutorial, sabrá cómo iniciar sesión en los nodos del clúster mediante los AWS Systems Manager comandos (). `aws ssm` Tras completar este tutorial, consulte también [SageMaker HyperPod Operaciones de clúster de Slurm](sagemaker-hyperpod-operate-slurm.md) para obtener más información sobre las operaciones SageMaker HyperPod básicas y [Trabajos en clústeres SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md) cómo programar tareas en el clúster aprovisionado.

**sugerencia**  
[Para encontrar ejemplos prácticos y soluciones, consulte también el SageMaker HyperPod taller.](https://catalog.workshops.aws/sagemaker-hyperpod)

**Topics**
+ [Cómo empezar a SageMaker HyperPod usar la consola de SageMaker IA](smcluster-getting-started-slurm-console.md)
+ [Crear clústeres mediante plantillas SageMaker HyperPod CloudFormation](smcluster-getting-started-slurm-console-create-cluster-cfn.md)
+ [Cómo empezar a SageMaker HyperPod usar el AWS CLI](smcluster-getting-started-slurm-cli.md)

# Cómo empezar a SageMaker HyperPod usar la consola de SageMaker IA
<a name="smcluster-getting-started-slurm-console"></a>

El siguiente tutorial muestra cómo crear un SageMaker HyperPod clúster nuevo y configurarlo con Slurm a través de la interfaz de usuario de la consola SageMaker AI. Tras el tutorial, crearás un HyperPod clúster con tres nodos de Slurm,, y`my-controller-group`. `my-login-group` `worker-group-1`

**Topics**
+ [Creación de un clúster](#smcluster-getting-started-slurm-console-create-cluster-page)
+ [Implementación de recursos](#smcluster-getting-started-slurm-console-create-cluster-deploy)
+ [Eliminación del clúster y limpieza de recursos](#smcluster-getting-started-slurm-console-delete-cluster-and-clean)

## Creación de un clúster
<a name="smcluster-getting-started-slurm-console-create-cluster-page"></a>

Para ir a la página de **SageMaker HyperPod clústeres** y elegir la orquestación de **Slurm**, sigue estos pasos.

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

1. Seleccione **HyperPod Clusters** en el panel de navegación izquierdo y, a continuación, **Cluster Management**.

1. En la página **SageMaker HyperPod Clústeres**, elija **Crear HyperPod clúster**. 

1. En el menú desplegable **Crear HyperPod clúster**, selecciona **Orchestrated by Slurm**.

1. En la página de creación de clústeres de Slurm, verá dos opciones. Elija la opción que mejor se adapte a sus necesidades.

   1. **Configuración rápida**: para comenzar de inmediato con la configuración predeterminada, seleccione **Configuración rápida**. Con esta opción, la SageMaker IA creará nuevos recursos, como VPC, subredes, grupos de seguridad, un bucket de Amazon S3, una función de IAM y FSx para Lustre, durante el proceso de creación del clúster.

   1. **Configuración personalizada**: para integrarse con los recursos de AWS existentes o tener requisitos específicos de red, seguridad o almacenamiento, seleccione **Configuración personalizada**. Con esta opción, puede optar por utilizar los recursos existentes o crear unos nuevos. Además, puede personalizar la configuración que mejor se adapte a sus necesidades.

## Configuración rápida
<a name="smcluster-getting-started-slurm-console-create-cluster-default"></a>

En la sección **Configuración rápida**, sigue estos pasos para crear tu HyperPod clúster con la orquestación de Slurm.

### Configuración general
<a name="smcluster-getting-started-slurm-console-create-cluster-default-general"></a>

Especifique un nombre para el nuevo clúster. Después de crear el clúster no puede cambiarle el nombre.

### Grupos de instancias
<a name="smcluster-getting-started-slurm-console-create-cluster-default-instance-groups"></a>

Para añadir un grupo de instancias, elija **Agregar grupo**. Cada grupo de instancias se puede configurar de una forma diferente y se puede crear un clúster heterogéneo que conste de varios grupos de instancias con diversos tipos de instancias. Para implementar un clúster, debe añadir al menos un grupo de instancias para los tipos de grupo Controlador y Computación.

**importante**  
Puede añadir un grupo de instancias cada vez. Si desea crear varios grupos de instancias, repita el proceso para cada uno de ellos.

Siga estos pasos para agregar un grupo de instancias.

1. En **Tipo del grupo de instancias**, elija un tipo de instancia para su grupo de instancias. Para este tutorial, seleccione **Controlador (principal)** para `my-controller-group`, **Inicio de sesión** para `my-login-group` y **Computación (de trabajo)** para `worker-group-1`.

1. En **Nombre**, especifique un nombre para el grupo de instancias. Para este tutorial, cree tres grupos de instancias llamados `my-controller-group`, `my-login-group` y `worker-group-1`.

1.  En **Capacidad de instancia**, elija la capacidad bajo demanda o un plan de entrenamiento para reservar recursos de computación.

1. En **Tipo de instancia**, elija la instancia del grupo de instancias. Para este tutorial, seleccione `ml.c5.xlarge` para `my-controller-group`, `ml.m5.4xlarge` para `my-login-group` y `ml.trn1.32xlarge` para `worker-group-1`. 
**importante**  
Asegúrese de elegir un tipo de instancia con bastantes cuotas y que tenga suficientes direcciones IP sin asignar para su cuenta. Para ver o solicitar cuotas adicionales, consulte [SageMaker HyperPod cuotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. En **Cantidad de instancias**, especifique un número entero que no supere la cuota de instancias de uso del clúster. Para este tutorial, introduzca **1** para los tres grupos.

1. En **Zona de disponibilidad de destino**, elija la zona de disponibilidad en la que se aprovisionarán las instancias. La zona de disponibilidad debe corresponder a la ubicación de la capacidad de computación acelerada.

1. En **Volumen de almacenamiento adicional por instancia (GB) - opcional**, especifique un número entero entre 1 y 16 384 para establecer el tamaño de un volumen adicional de Elastic Block Store (EBS) en gigabytes (GB). El volumen de EBS está asociado a cada instancia del grupo de instancias. La ruta de montaje predeterminada para el volumen de EBS adicional es `/opt/sagemaker`. Una vez que el clúster se haya creado correctamente, puede utilizar SSH en las instancias del clúster (nodos) y verificar si el volumen de EBS está montado correctamente ejecutando el comando `df -h`. La conexión de un volumen de EBS adicional proporciona un almacenamiento estable, fuera de la instancia y persistente de forma independiente, tal y como se describe en la sección [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) de la *Guía del usuario de Amazon Elastic Block Store*.

1. Elija **Agregar grupo de instancias**.

### Valores predeterminados de la configuración rápida
<a name="smcluster-getting-started-slurm-console-create-cluster-default-settings"></a>

En esta sección se enumeran todos los ajustes predeterminados para la creación del clúster, incluidos todos los AWS recursos nuevos que se crearán durante el proceso de creación del clúster. Revise la configuración predeterminada.

## Configuración personalizada
<a name="smcluster-getting-started-slurm-console-create-cluster-custom"></a>

En la sección **Configuración personalizada**, sigue estos pasos para crear tu HyperPod clúster con la orquestación de Slurm.

### Configuración general
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-general"></a>

Especifique un nombre para el nuevo clúster. Después de crear el clúster no puede cambiarle el nombre.

En **Recuperación de instancias**, elija **Automática - *recomendado*** o **Ninguna**.

### Red
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-network"></a>

Configure los ajustes de red para crear el clúster. Los ajustes no se puede modificar una vez creado el clúster.

1. En el caso de la **VPC**, elige tu propia VPC si ya tienes una que dé acceso de SageMaker IA a tu VPC. Para crear una VPC nueva, siga las instrucciones de la sección [Creación de una VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) de la *Guía del usuario de Amazon Virtual Private Cloud*. Puedes dejarlo como **Ninguno** para usar la VPC de SageMaker IA predeterminada.

1. Para el **bloque IPv4 CIDR de VPC**, introduzca la IP de inicio de la VPC.

1. En el caso de **las zonas de disponibilidad**, elija las zonas de disponibilidad (AZ) en las que se HyperPod crearán las subredes para el clúster. Elija una AZs que coincida con la ubicación de su capacidad informática acelerada.

1. En **Grupos de seguridad**, cree un grupo de seguridad o elija hasta cinco grupos de seguridad configurados con reglas que permitan la comunicación entre recursos dentro de la VPC.

### Grupos de instancias
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-instance-groups"></a>

Para añadir un grupo de instancias, elija **Agregar grupo**. Cada grupo de instancias se puede configurar de una forma diferente y se puede crear un clúster heterogéneo que conste de varios grupos de instancias con diversos tipos de instancias. Para implementar un clúster, debe agregar al menos un grupo de instancias.

**importante**  
Puede añadir un grupo de instancias cada vez. Si desea crear varios grupos de instancias, repita el proceso para cada uno de ellos.

Siga estos pasos para agregar un grupo de instancias.

1. En **Tipo del grupo de instancias**, elija un tipo de instancia para su grupo de instancias. Para este tutorial, seleccione **Controlador (principal)** para `my-controller-group`, **Inicio de sesión** para `my-login-group` y **Computación (de trabajo)** para `worker-group-1`.

1. En **Nombre**, especifique un nombre para el grupo de instancias. Para este tutorial, cree tres grupos de instancias llamados `my-controller-group`, `my-login-group` y `worker-group-1`.

1.  En **Capacidad de instancia**, elija la capacidad bajo demanda o un plan de entrenamiento para reservar recursos de computación.

1. En **Tipo de instancia**, elija la instancia del grupo de instancias. Para este tutorial, seleccione `ml.c5.xlarge` para `my-controller-group`, `ml.m5.4xlarge` para `my-login-group` y `ml.trn1.32xlarge` para `worker-group-1`. 
**importante**  
Asegúrese de elegir un tipo de instancia con bastantes cuotas y que tenga suficientes direcciones IP sin asignar para su cuenta. Para ver o solicitar cuotas adicionales, consulte [SageMaker HyperPod cuotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. En **Cantidad de instancias**, especifique un número entero que no supere la cuota de instancias de uso del clúster. Para este tutorial, introduzca **1** para los tres grupos.

1. En **Zona de disponibilidad de destino**, elija la zona de disponibilidad en la que se aprovisionarán las instancias. La zona de disponibilidad debe corresponder a la ubicación de la capacidad de computación acelerada.

1. En **Volumen de almacenamiento adicional por instancia (GB) - opcional**, especifique un número entero entre 1 y 16 384 para establecer el tamaño de un volumen adicional de Elastic Block Store (EBS) en gigabytes (GB). El volumen de EBS está asociado a cada instancia del grupo de instancias. La ruta de montaje predeterminada para el volumen de EBS adicional es `/opt/sagemaker`. Una vez que el clúster se haya creado correctamente, puede utilizar SSH en las instancias del clúster (nodos) y verificar si el volumen de EBS está montado correctamente ejecutando el comando `df -h`. La conexión de un volumen de EBS adicional proporciona un almacenamiento estable, fuera de la instancia y persistente de forma independiente, tal y como se describe en la sección [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) de la *Guía del usuario de Amazon Elastic Block Store*.

1. Elija **Agregar grupo de instancias**.

### Scripts de ciclo de vida
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-lifecycle"></a>

Puede optar por utilizar los scripts de ciclo de vida predeterminados o los scripts de ciclo de vida personalizados, que se almacenarán en su bucket de Amazon S3. Puede ver los scripts de ciclo de vida predeterminados en el [ GitHub repositorio de Awesome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts). Para obtener más información sobre los scripts de ciclo de vida, consulte [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

1. En **Scripts de ciclo de vida**, elija usar scripts de ciclo de vida predeterminados o personalizados.

1. En **bucket de S3 para scripts de ciclo de vida**, elija crear un nuevo bucket o utilizar un bucket existente para almacenar los scripts de ciclo de vida.

### Permisos
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-permissions"></a>

Elija o cree un rol de IAM que le permita HyperPod ejecutar y acceder a AWS los recursos necesarios en su nombre.

### Almacenamiento
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-storage"></a>

Configure el sistema FSx de archivos de Lustre para que se aprovisione en el clúster. HyperPod 

1. Para **el sistema de archivos**, elija un sistema de archivos existente FSx para Lustre, cree uno nuevo FSx para Lustre o no aprovisione uno FSx para Lustre.

1. En **Rendimiento por unidad de almacenamiento**, elija el rendimiento que estará disponible por TiB de almacenamiento aprovisionado.

1. En **Capacidad de almacenamiento**, introduzca un valor de capacidad en TB.

1. En el **tipo de compresión de datos**, seleccione habilitar **LZ4**la compresión de datos.

1. En **Versión Lustre**, consulte el valor recomendado para los nuevos sistemas de archivos.

### Etiquetas: opcional
<a name="smcluster-getting-started-slurm-console-create-cluster-tags"></a>

En el **caso de las etiquetas *(opcional)***, añada pares de claves y valores al nuevo clúster y administre el clúster como un AWS recurso. Para obtener más información, consulte [Tagging your AWS resources](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

## Implementación de recursos
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy"></a>

Después de completar las configuraciones del clúster desde **Configuración rápida** o **Configuración personalizada**, elija la siguiente opción para iniciar el aprovisionamiento de recursos y la creación del clúster.
+  **Enviar**: la SageMaker IA empezará a aprovisionar los recursos de configuración predeterminados y a crear el clúster. 
+ **Descargar los parámetros de la CloudFormation plantilla**: descargará el archivo JSON de los parámetros de configuración y ejecutará el AWS CLI comando para implementar la CloudFormation pila, aprovisionar los recursos de configuración y crear el clúster. Si es necesario, puede editar el archivo JSON de parámetros descargado. Si elige esta opción, puede ver más instrucciones en [Crear clústeres mediante plantillas SageMaker HyperPod CloudFormation](smcluster-getting-started-slurm-console-create-cluster-cfn.md).

## Eliminación del clúster y limpieza de recursos
<a name="smcluster-getting-started-slurm-console-delete-cluster-and-clean"></a>

Una vez que haya probado correctamente la creación de un SageMaker HyperPod clúster, seguirá ejecutándose en ese `InService` estado hasta que lo elimine. Te recomendamos que elimines los clústeres creados con instancias de SageMaker IA bajo demanda cuando no estén en uso para evitar incurrir en cargos de servicio continuos en función de los precios bajo demanda. En este tutorial, ha creado un clúster que consta de dos grupos de instancias. Uno de ellos utiliza una instancia C5, así que asegúrese de eliminar el clúster siguiendo las instrucciones que aparecen en [Elimina un SageMaker HyperPod clúster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster).

Sin embargo, si ha creado un clúster con una capacidad de computación reservada, el estado de los clústeres no afecta a la facturación de los servicios.

Para limpiar los scripts de ciclo de vida del bucket de S3 utilizado para este tutorial, vaya al bucket de S3 que utilizó durante la creación del clúster y elimine todos los archivos.

Si ha probado la ejecución de alguna carga de trabajo en el clúster, asegúrese de haber cargado datos o de haber guardado algún artefacto en distintos buckets de S3 o servicios de sistema de archivos, como Amazon FSx for Lustre y Amazon Elastic File System. Para evitar incurrir en gastos, elimine todos los artefactos y datos del almacenamiento o del sistema de archivos.

# Crear clústeres mediante plantillas SageMaker HyperPod CloudFormation
<a name="smcluster-getting-started-slurm-console-create-cluster-cfn"></a>

Puede crear SageMaker HyperPod clústeres utilizando las CloudFormation plantillas de HyperPod. Debe realizar la instalación AWS CLI para continuar.

**Topics**
+ [Configure los recursos en la consola e impleméntelos mediante CloudFormation](#smcluster-getting-started-slurm-console-create-cluster-deploy-console)
+ [Configure los recursos e impleméntelos mediante CloudFormation](#smcluster-getting-started-slurm-console-create-cluster-deploy-cfn)

## Configure los recursos en la consola e impleméntelos mediante CloudFormation
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy-console"></a>

Puede configurar los recursos con las plantillas Consola de administración de AWS e implementarlos con las CloudFormation plantillas. 

Siga estos pasos.

1. *En lugar de elegir **Enviar***, elija **Descargar los parámetros de la CloudFormation plantilla** al final del tutorial en[Cómo empezar a SageMaker HyperPod usar la consola de SageMaker IA](smcluster-getting-started-slurm-console.md). El tutorial contiene información de configuración importante que necesitará para crear el clúster correctamente.
**importante**  
Si selecciona **Enviar**, no podrá implementar un clúster con el mismo nombre hasta que lo elimine.

   Tras seleccionar **Descargar los parámetros de la CloudFormation plantilla**, aparecerá en **la parte derecha de la página la AWS CLI ventana Uso del archivo de configuración para crear el clúster mediante** el uso del archivo de configuración.

1. En la ventana **Uso del archivo de configuración para crear el clúster desde la AWS CLI**, elija **Descargar archivo de parámetros de configuración**. El archivo se descargará en su equipo. Puede editar el archivo JSON de configuración según sus necesidades o dejarlo como está si no se necesita introducir ningún cambio.

1. En un terminal, vaya a la ubicación del archivo de parámetros `file://params.json`.

1. Ejecute el AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) para implementar la CloudFormation pila que aprovisionará los recursos configurados y creará el HyperPod clúster.

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url https://aws-sagemaker-hyperpod-cluster-setup.amazonaws.com/templates-slurm/main-stack-slurm-based-template.yaml
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. [Para ver el estado del aprovisionamiento de recursos, navegue hasta la consola. CloudFormation ](https://console.aws.amazon.com/cloudformation)

   Una vez finalizada la creación del clúster, consulte el nuevo clúster en **Clústeres** en el panel principal de la SageMaker HyperPod consola. También puede consultar su estado en la columna **Estado**.

1. Cuando el estado del clúster cambie a `InService`, puede empezar a iniciar sesión en los nodos del clúster. Para acceder a los nodos del clúster y empezar a ejecutar cargas de trabajo de ML, consulte [Trabajos en clústeres SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

## Configure los recursos e impleméntelos mediante CloudFormation
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy-cfn"></a>

Puede configurar los recursos e implementarlos mediante las CloudFormation plantillas de SageMaker HyperPod.

Siga estos pasos.

1. Descargue una CloudFormation plantilla SageMaker HyperPod del [sagemaker-hyperpod-cluster-setup](https://github.com/aws/sagemaker-hyperpod-cluster-setup) GitHub repositorio.

1. Ejecute el AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) para implementar la CloudFormation pila que aprovisionará los recursos configurados y creará el HyperPod clúster.

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url URL_of_the_file_that_contains_the_template_body
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. Para ver el estado del aprovisionamiento de recursos, vaya a la consola de CloudFormation .

   Una vez finalizada la creación del clúster, consulta el nuevo clúster en **Clústeres** en el panel principal de la SageMaker HyperPod consola. También puede consultar su estado en la columna **Estado**.

1. Cuando el estado del clúster cambie a `InService`, puede empezar a iniciar sesión en los nodos del clúster. Para acceder a los nodos del clúster y empezar a ejecutar cargas de trabajo de ML, consulte [Trabajos en clústeres SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

# Cómo empezar a SageMaker HyperPod usar el AWS CLI
<a name="smcluster-getting-started-slurm-cli"></a>

Cree su primer SageMaker HyperPod clúster con los AWS CLI comandos for HyperPod.

## Crea tu primer SageMaker HyperPod clúster con Slurm
<a name="smcluster-getting-started-slurm-cli-create-cluster"></a>

[El siguiente tutorial muestra cómo crear un nuevo SageMaker HyperPod clúster y configurarlo con Slurm mediante los comandos para.AWS CLI SageMaker HyperPod](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-cli) Siguiendo el tutorial, crearás un HyperPod clúster con tres nodos de Slurm:`my-controller-group`, y. `my-login-group` `worker-group-1`

Con el enfoque de configuración basado en la API, se definen los tipos de nodos de Slurm y las asignaciones de particiones directamente en la solicitud de API mediante. CreateCluster `SlurmConfig` Esto elimina la necesidad de un `provisioning_parameters.json` archivo independiente y proporciona validación, detección de desviaciones y configuración integradas. per-instance-group FSx 

1. En primer lugar, prepare y cargue los scripts de ciclo de vida en un bucket de Amazon S3. Durante la creación del clúster, los HyperPod ejecuta en cada grupo de instancias. Cargue los scripts de ciclo de vida en Amazon S3 con el siguiente comando.

   ```
   aws s3 sync \
       ~/local-dir-to-lifecycle-scripts/* \
       s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
   ```
**nota**  
La ruta del bucket de S3 debe empezar con un prefijo`sagemaker-`, ya que la [función de IAM para SageMaker HyperPod with](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) `AmazonSageMakerClusterInstanceRolePolicy` solo permite el acceso a los buckets de Amazon S3 que comiencen con el prefijo específico.

   Si va a empezar desde cero, utilice ejemplos de scripts de ciclo de vida que se incluyen en el repositorio [Awsome](https://github.com/aws-samples/awsome-distributed-training/) Distributed Training. GitHub Los siguientes subpasos muestran cómo descargar y cargar los scripts de ciclo de vida de muestra en un bucket de Amazon S3.

   1. Descargue una copia de los ejemplos de scripts de ciclo de vida en un directorio de su equipo local.

      ```
      git clone https://github.com/aws-samples/awsome-distributed-training/
      ```

   1. Vaya al directorio [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config), donde encontrará un conjunto de scripts de ciclo de vida.

      ```
      cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
      ```

      Para obtener más información sobre los scripts de ciclo de vida, consulte [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

   1. Cargue los scripts en `s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src`. Puede hacerlo a través de la consola de Amazon S3 o ejecutando el siguiente comando de Amazon S3 de la AWS CLI .

      ```
      aws s3 sync \
          ~/local-dir-to-lifecycle-scripts/* \
          s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
      ```
**nota**  
Con una configuración basada en API, no necesita crear ni cargar un archivo. `provisioning_parameters.json` La configuración de Slurm se define directamente en la solicitud de CreateCluster API en el siguiente paso.

1. Prepare un archivo de [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)solicitud en formato JSON y guárdelo como. `create_cluster.json`

   Con la configuración basada en API, debes especificar el tipo de nodo de Slurm y la asignación de particiones para cada grupo de instancias mediante el campo. `SlurmConfig` También puedes configurar los ajustes de Slurm a nivel de clúster mediante. `Orchestrator.Slurm`

   Para `ExecutionRole`, proporcione el ARN del rol de IAM que creó con la `AmazonSageMakerClusterInstanceRolePolicy` administrada en [Requisitos previos para su uso SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md).

   ```
   {
       "ClusterName": "my-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole",
               "InstanceStorageConfigs": [
                   {
                       "EbsVolumeConfig": {
                           "VolumeSizeInGB": 500
                       }
                   }
               ]
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Login"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Compute",
                   "PartitionNames": ["partition-1"]
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
           }
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       }
   }
   ```

   **SlurmConfig Campos**:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **Campos Orchestrator.Slurm:**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **SlurmConfigStrategy opciones:**
   + `Managed`(recomendado): gestiona `slurm.conf` y detecta HyperPod completamente los cambios no autorizados (detección de desviaciones). Las actualizaciones fallan si se detecta una desviación.
   + `Overwrite`: HyperPod sobrescribe `slurm.conf` las actualizaciones e ignora cualquier cambio manual.
   + `Merge`: HyperPod conserva los cambios manuales y los fusiona con la configuración de la API.

   **Añadir FSx para Lustre (opcional):**

   Para montar un sistema de archivos de FSx for Lustre en tus nodos de cómputo, agrégalo `FsxLustreConfig` al grupo de instancias `InstanceStorageConfigs` for Lustre. Esto requiere una configuración de VPC personalizada.

   ```
   {
       "InstanceGroupName": "worker-group-1",
       "InstanceType": "ml.trn1.32xlarge",
       "InstanceCount": 1,
       "SlurmConfig": {
           "NodeType": "Compute",
           "PartitionNames": ["partition-1"]
       },
       "InstanceStorageConfigs": [
           {
               "FsxLustreConfig": {
                   "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                   "MountPath": "/fsx",
                   "MountName": "abcdefgh"
               }
           }
       ],
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
   }
   ```

   **Añadir FSx para OpenZFS (opcional):**

   También puede montar FSx para sistemas de archivos OpenZFS:

   ```
   "InstanceStorageConfigs": [
       {
           "FsxOpenZfsConfig": {
               "DnsName": "fs-0xyz789abc123456.fsx.us-west-2.amazonaws.com",
               "MountPath": "/shared"
           }
       }
   ]
   ```
**nota**  
Cada grupo de instancias puede tener como máximo una FSx para la configuración de Lustre y otra para la de OpenZFS. FSx Los distintos grupos de instancias pueden montar diferentes sistemas de archivos.

   **Añadir la configuración de VPC (necesaria para FSx):**

   Si la usa FSx, debe especificar una configuración de VPC personalizada:

   ```
   {
       "ClusterName": "my-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
           },
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       },
       "VpcConfig": {
           "SecurityGroupIds": ["sg-0abc123def456789a"],
           "Subnets": ["subnet-0abc123def456789a"]
       }
   }
   ```

1. Ejecute el siguiente comando para crear el clúster.

   ```
   aws sagemaker create-cluster --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Esto debería devolver el ARN del clúster creado.

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/my-hyperpod-cluster"
   }
   ```

   Si recibe un error de límites de recursos, asegúrese de cambiar el tipo de instancia por uno con cuotas suficientes en su cuenta o bien solicite cuotas adicionales accediendo a [SageMaker HyperPod cuotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

   **Errores de validación comunes:**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

1. Ejecute `describe-cluster` para comprobar el estado del clúster.

   ```
   aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster
   ```

   Ejemplo de respuesta:

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/my-hyperpod-cluster",
       "ClusterName": "my-hyperpod-cluster",
       "ClusterStatus": "Creating",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Login"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Compute",
                   "PartitionNames": ["partition-1"]
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           }
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       },
       "CreationTime": "2024-01-15T10:30:00Z"
   }
   ```

   Cuando el estado del clúster cambie a **InService**, continúe con el siguiente paso. La creación del clúster suele tardar entre 10 y 15 minutos.

1. Ejecute `list-cluster-nodes` para consultar los detalles de los nodos del clúster.

   ```
   aws sagemaker list-cluster-nodes --cluster-name my-hyperpod-cluster
   ```

   Ejemplo de respuesta:

   ```
   {
       "ClusterNodeSummaries": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceId": "i-0abc123def456789a",
               "InstanceType": "ml.c5.xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:35:00Z"
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceId": "i-0abc123def456789b",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:35:00Z"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceId": "i-0abc123def456789c",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:36:00Z"
           }
       ]
   }
   ```

   Esto `InstanceId` es lo que los usuarios del clúster necesitan para iniciar sesión (`aws ssm`) en ellos. Para obtener más información sobre cómo iniciar sesión en los nodos del clúster y ejecutar cargas de trabajo de ML, consulte [Trabajos en clústeres SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

1. Conéctese a su clúster mediante el Administrador de AWS Systems Manager sesiones.

   ```
   aws ssm start-session \
       --target sagemaker-cluster:my-hyperpod-cluster_my-login-group-i-0abc123def456789b \
       --region us-west-2
   ```

   Una vez conectado, compruebe que Slurm esté configurado correctamente:

   ```
   # Check Slurm nodes
   sinfo
   
   # Check Slurm partitions
   sinfo -p partition-1
   
   # Submit a test job
   srun -p partition-1 --nodes=1 hostname
   ```

## Eliminación del clúster y limpieza de recursos
<a name="smcluster-getting-started-slurm-cli-delete-cluster-and-clean"></a>

Una vez que haya probado correctamente la creación de un SageMaker HyperPod clúster, seguirá ejecutándose en ese `InService` estado hasta que lo elimine. Te recomendamos que elimines todos los clústeres creados con la capacidad de SageMaker IA bajo demanda cuando no estén en uso para evitar incurrir en cargos de servicio continuos en función de los precios bajo demanda. En este tutorial, has creado un clúster que consta de tres grupos de instancias. Asegúrate de eliminar el clúster ejecutando el siguiente comando.

```
aws sagemaker delete-cluster --cluster-name my-hyperpod-cluster
```

Para limpiar los scripts de ciclo de vida del bucket de S3 utilizado para este tutorial, vaya al bucket de Amazon S3 que utilizó durante la creación del clúster y elimine todos los archivos.

```
aws s3 rm s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src --recursive
```

Si ha probado la ejecución de algún modelo de carga de trabajo de entrenamiento en el clúster, compruebe también si ha cargado algún dato o si su trabajo ha guardado algún artefacto en distintos buckets de Amazon S3 o servicios de sistema de archivos, como Amazon FSx for Lustre y Amazon Elastic File System. Para evitar incurrir en gastos, elimine todos los artefactos y datos del almacenamiento o del sistema de archivos.

## Temas relacionados
<a name="smcluster-getting-started-slurm-cli-related-topics"></a>
+ [SageMaker HyperPod Configuración de Slurm](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-configuration)
+ [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)
+ [FSx configuración mediante InstanceStorageConfigs](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-fsx-config)
+ [SageMaker HyperPod Operaciones de clúster de Slurm](sagemaker-hyperpod-operate-slurm.md)

# SageMaker HyperPod Operaciones de clúster de Slurm
<a name="sagemaker-hyperpod-operate-slurm"></a>

Esta sección proporciona orientación sobre la administración SageMaker HyperPod a través de la interfaz de usuario de la consola de SageMaker IA o la AWS Command Line Interface (CLI). Aprenderás a realizar diversas tareas relacionadas SageMaker HyperPod con si prefieres una interfaz visual o trabajar con comandos.

**Topics**
+ [Administrar los clústeres SageMaker HyperPod de Slurm mediante la consola SageMaker](sagemaker-hyperpod-operate-slurm-console-ui.md)
+ [Administrar los clústeres SageMaker HyperPod de Slurm mediante AWS CLI](sagemaker-hyperpod-operate-slurm-cli-command.md)

# Administrar los clústeres SageMaker HyperPod de Slurm mediante la consola SageMaker
<a name="sagemaker-hyperpod-operate-slurm-console-ui"></a>

Los temas siguientes proporcionan instrucciones sobre cómo administrar a SageMaker HyperPod través de la interfaz de usuario de la consola.

**Topics**
+ [Crea un SageMaker HyperPod clúster](#sagemaker-hyperpod-operate-slurm-console-ui-create-cluster)
+ [Examine sus SageMaker HyperPod clústeres](#sagemaker-hyperpod-operate-slurm-console-ui-browse-clusters)
+ [Vea los detalles de cada SageMaker HyperPod clúster](#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters)
+ [Edita un SageMaker HyperPod clúster](#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters)
+ [Elimina un SageMaker HyperPod clúster](#sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster)

## Crea un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-create-cluster"></a>

Consulte las instrucciones [Cómo empezar a SageMaker HyperPod usar la consola de SageMaker IA](smcluster-getting-started-slurm-console.md) para crear un SageMaker HyperPod clúster nuevo a través de la interfaz de usuario de la SageMaker HyperPod consola.

## Examine sus SageMaker HyperPod clústeres
<a name="sagemaker-hyperpod-operate-slurm-console-ui-browse-clusters"></a>

En la sección **Clústeres** del panel principal de la SageMaker HyperPod consola, en la página principal de la SageMaker HyperPod consola, todos los clústeres creados deberían aparecer en la sección **Clústeres**, que proporciona una vista resumida de los clústeres ARNs, su estado y la hora de creación.

## Vea los detalles de cada SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters"></a>

En el apartado **Clústeres** de la página principal de la consola, los **Nombres** de los clústeres se activan como enlaces. Seleccione el enlace del nombre del clúster para ver los detalles de cada clúster.

## Edita un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters"></a>

1. En **Clústeres**, en el panel principal de la SageMaker HyperPod consola, selecciona el clúster que deseas actualizar.

1. Seleccione el clúster y elija **Editar**.

1. En la página **Editar <el clúster>**, puede editar las configuraciones de los grupos de instancias existentes, añadir más grupos de instancias, eliminar grupos de instancias y cambiar las etiquetas del clúster. Una vez realizados los cambios, seleccione **Enviar**. 

   1. En la sección **Configurar grupos de instancias**, puede añadir más grupos de instancias. Para ello, seleccione **Crear grupo de instancias**.

   1. En la sección **Configurar grupos de instancias**, puede elegir **Editar** para cambiar su configuración o **Eliminar** para eliminar el grupo de instancias de forma permanente.
**importante**  
Cuando elimine un grupo de instancias, tenga en cuenta los siguientes puntos:  
El SageMaker HyperPod clúster debe mantener siempre al menos un grupo de instancias.
Asegúrese de hacer una copia de seguridad de todos los datos importantes antes de eliminarlos.
El proceso de eliminación no se puede deshacer.
**nota**  
Al eliminar un grupo de instancias, se eliminarán todos los recursos de computación asociados a ese grupo.

   1. En la sección **Etiquetas**, puede actualizar las etiquetas del clúster.

## Elimina un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster"></a>

1. En **Clústeres**, en el panel principal de la SageMaker HyperPod consola, selecciona el clúster que deseas eliminar.

1. Seleccione el clúster y elija **Eliminar**.

1. En la ventana emergente para eliminar el clúster, revise detenidamente la información del clúster para confirmar que ha elegido el clúster correcto que desea eliminar.

1. Tras revisar la información del clúster, seleccione **Sí, eliminar el clúster**.

1. En el campo de texto para confirmar esta eliminación, escriba **delete**.

1. Seleccione **Eliminar** en la esquina inferior derecha de la ventana emergente para terminar de enviar la solicitud de eliminación del clúster.

# Administrar los clústeres SageMaker HyperPod de Slurm mediante AWS CLI
<a name="sagemaker-hyperpod-operate-slurm-cli-command"></a>

Los siguientes temas proporcionan orientación sobre cómo escribir archivos de solicitudes de SageMaker HyperPod API en formato JSON y ejecutarlos mediante los AWS CLI comandos.

**Topics**
+ [Creación de un nuevo clúster](#sagemaker-hyperpod-operate-slurm-cli-command-create-cluster)
+ [Describir un clúster](#sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster)
+ [Enumeración de los detalles de los nodos del clúster](#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes)
+ [Descripción de los detalles de un nodo de clúster](#sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster-node)
+ [Enumerar clústeres](#sagemaker-hyperpod-operate-slurm-cli-command-list-clusters)
+ [Actualización de la configuración de un clúster](#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster)
+ [Actualice el software de la SageMaker HyperPod plataforma de un clúster](#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software)
+ [Reducción vertical de un clúster](#sagemaker-hyperpod-operate-slurm-cli-command-scale-down)
+ [Eliminar un clúster](#sagemaker-hyperpod-operate-slurm-cli-command-delete-cluster)

## Creación de un nuevo clúster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-create-cluster"></a>

1. Prepare un script de configuración de ciclo de vida y cárguelo en un bucket de S3, como, por ejemplo, `s3://sagemaker-amzn-s3-demo-bucket/lifecycle-script-directory/src/`. En el paso 2 siguiente, se supone que hay un script de punto de entrada denominado `on_create.sh` en el bucket de S3 especificado.
**importante**  
Asegúrese de configurar la ruta de S3 para empezar con `s3://sagemaker-`. El [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) tiene asociada la [https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html) administrada, que permite el acceso a los buckets de S3 con el prefijo específico `sagemaker-`.

1. Prepara un archivo de solicitud de [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)API en formato JSON. Debe configurar los grupos de instancias para que coincidan con el clúster de Slurm que diseñe en el archivo `provisioning_parameters.json` que se utilizará durante la creación del clúster como parte de la ejecución de un conjunto de scripts de ciclo de vida. Para obtener más información, consulte [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md). La siguiente plantilla tiene dos grupos de instancias para cumplir con los requisitos mínimos de un clúster de Slurm: un nodo de controlador (principal) y un nodo de computación (de trabajo). En `ExecutionRole`, proporcione el ARN del rol de IAM que ha creado con la `AmazonSageMakerClusterInstanceRolePolicy` administrada de la sección [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

   ```
   // create_cluster.json
   {
       "ClusterName": "your-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "controller-group",
               "InstanceType": "ml.m5.xlarge",
               "InstanceCount": 1,
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
               // Optional: Configure an additional storage per instance group.
               "InstanceStorageConfigs": [
                   {
                      // Attach an additional EBS volume to each instance within the instance group.
                      // The default mount path for the additional EBS volume is /opt/sagemaker.
                      "EbsVolumeConfig":{
                         // Specify an integer between 1 and 16384 in gigabytes (GB).
                         "VolumeSizeInGB": integer,
                      }
                   }
               ]
           }, 
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.p4d.xlarge",
               "InstanceCount": 1,
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster"
           }
       ],
       // Optional
       "Tags": [ 
           { 
              "Key": "string",
              "Value": "string"
           }
       ],
       // Optional
       "VpcConfig": { 
           "SecurityGroupIds": [ "string" ],
           "Subnets": [ "string" ]
       }
   }
   ```

   En función de cómo diseñe la estructura del clúster a través de los scripts de ciclo de vida, puede configurar hasta 20 grupos de instancias en el parámetro `InstanceGroups`.

   Para el parámetro de `Tags` solicitud, puedes añadir etiquetas personalizadas para gestionar el SageMaker HyperPod clúster como un AWS recurso. Puede agregar etiquetas a su clúster de la misma manera que las agrega en otros AWS servicios que admiten el etiquetado. Para obtener más información sobre el etiquetado de AWS los recursos en general, consulte la Guía del usuario de [AWS los recursos de etiquetado](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

   Para el parámetro de solicitud `VpcConfig`, especifique la información de la VPC que desee utilizar. Para obtener más información, consulte [Configuración SageMaker HyperPod con una Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

1. Ejecute el comando [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) de la siguiente manera.

   ```
   aws sagemaker create-cluster \
       --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Esto debería devolver el ARN del nuevo clúster.

## Describir un clúster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster"></a>

Ejecute [describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster.html) para comprobar el estado del clúster. Puede especificar el nombre o el ARN del clúster.

```
aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster
```

Cuando el estado del clúster cambie a **InService**, continúe con el siguiente paso. Con esta API, también puedes recuperar los mensajes de error relacionados con la ejecución de otras operaciones de la HyperPod API.

## Enumeración de los detalles de los nodos del clúster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes"></a>

Ejecute [list-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html)para comprobar la información clave de los nodos del clúster.

```
aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster
```

Esto devuelve una respuesta, y el `InstanceId` es lo que necesita usar para iniciar sesión (mediante `aws ssm`) en ellos.

## Descripción de los detalles de un nodo de clúster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster-node"></a>

Ejecute [describe-cluster-node](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster-node.html)para recuperar los detalles de un nodo del clúster. Puede obtener el ID del nodo del clúster a partir de la list-cluster-nodes salida. Puede especificar el nombre o el ARN del clúster.

```
aws sagemaker describe-cluster-node \
    --cluster-name your-hyperpod-cluster \
    --node-id i-111222333444555aa
```

## Enumerar clústeres
<a name="sagemaker-hyperpod-operate-slurm-cli-command-list-clusters"></a>

Ejecute [list-clusters](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-clusters.html) para ver una lista de todos los clústeres de la cuenta.

```
aws sagemaker list-clusters
```

También puede añadir indicadores adicionales para filtrar la lista de clústeres. Para obtener más información sobre lo que este comando ejecuta en un nivel bajo y otros indicadores de filtrado, consulta la referencia de la [ListClusters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusters.html)API.

## Actualización de la configuración de un clúster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-update-cluster"></a>

Ejecute [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para actualizar la configuración de un clúster.

**nota**  
Puedes usar la `UpdateCluster` API para reducir o eliminar grupos de instancias completos del SageMaker HyperPod clúster. Para obtener instrucciones adicionales sobre cómo reducir verticalmente o eliminar grupos de instancias, consulte [Reducción vertical de un clúster](#sagemaker-hyperpod-operate-slurm-cli-command-scale-down).

1. Cree un archivo de solicitud `UpdateCluster` en formato JSON. Asegúrese de especificar el nombre del clúster y el nombre del grupo de instancias correctos para actualizarlos. Puede cambiar el tipo de instancia, el número de instancias, el script de punto de entrada de la configuración del ciclo de vida y la ruta al script.

   1. En `ClusterName`, especifique el nombre del clúster que desea actualizar.

   1. En `InstanceGroupName`

      1. Para actualizar un grupo de instancias existente, especifique el nombre del grupo de instancias que desea actualizar.

      1. Para añadir un nuevo grupo de instancias, especifique un nombre nuevo que no exista en el clúster.

   1. En `InstanceType`

      1. Para actualizar un grupo de instancias existente, debe hacer coincidir el tipo de instancia que ha especificado inicialmente con el grupo.

      1. Para añadir un nuevo grupo de instancias, especifique el tipo de instancia con el que desea configurar el grupo.

   1. En `InstanceCount`

      1. Para actualizar un grupo de instancias existente, especifique un número entero que corresponda al número de instancias deseado. Puede indicar un valor mayor o menor (hasta 0) para escalar el grupo de instancias hacia arriba o hacia abajo.

      1. Para añadir un nuevo grupo de instancias, especifique un número entero mayor o igual a 1. 

   1. En `LifeCycleConfig`, puede cambiar como desee los valores tanto de `SourceS3Uri` como de `OnCreate` para actualizar el grupo de instancias.

   1. En `ExecutionRole`

      1. Para actualizar un grupo de instancias existente, siga usando el mismo rol de IAM que ha asociado durante la creación del clúster.

      1. Para añadir un nuevo grupo de instancias, especifique el rol de IAM que desee asociar.

   1. En `ThreadsPerCore`

      1. Para actualizar un grupo de instancias existente, siga usando el mismo valor que ha especificado durante la creación del clúster.

      1. Para añadir un nuevo grupo de instancias, puede elegir cualquier valor de las opciones permitidas por tipo de instancia. Para obtener más información, busque el tipo de instancia y consulte la columna **Subprocesos válidos por núcleo** de la tabla de referencia de [Núcleos de CPU y subprocesos por núcleo de CPU por tipo de instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) en la *Guía del usuario de Amazon EC2*.

   El siguiente fragmento de código es una plantilla de archivo de solicitud JSON que puede utilizar. Para obtener más información sobre la sintaxis y los parámetros de las solicitudes de esta API, consulta la referencia de la [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)API.

   ```
   // update_cluster.json
   {
       // Required
       "ClusterName": "name-of-cluster-to-update",
       // Required
       "InstanceGroups": [
           {
               "InstanceGroupName": "name-of-instance-group-to-update",
               "InstanceType": "ml.m5.xlarge",
               "InstanceCount": 1,
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
               // Optional: Configure an additional storage per instance group.
               "InstanceStorageConfigs": [
                   {
                      // Attach an additional EBS volume to each instance within the instance group.
                      // The default mount path for the additional EBS volume is /opt/sagemaker.
                      "EbsVolumeConfig":{
                         // Specify an integer between 1 and 16384 in gigabytes (GB).
                         "VolumeSizeInGB": integer,
                      }
                   }
               ]
           },
           // add more blocks of instance groups as needed
           { ... }
       ]
   }
   ```

1. Ejecute el siguiente comando `update-cluster` para enviar la solicitud. 

   ```
   aws sagemaker update-cluster \
       --cli-input-json file://complete/path/to/update_cluster.json
   ```

## Actualice el software de la SageMaker HyperPod plataforma de un clúster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software"></a>

Ejecute [update-cluster-software](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster-software.html)para actualizar los clústeres existentes con el software y los parches de seguridad proporcionados por el SageMaker HyperPod servicio. En `--cluster-name`, especifique el nombre o el ARN del clúster que desea actualizar.

**importante**  
Tenga en cuenta que debe hacer una copia de seguridad de su trabajo antes de ejecutar esta API. El proceso de aplicación de parches reemplaza el volumen raíz por la AMI actualizada, lo que significa que se perderán los datos anteriores almacenados en el volumen raíz de la instancia. Asegúrese de hacer una copia de seguridad de los datos del volumen raíz de la instancia en Amazon S3 o Amazon FSx for Lustre. Para obtener más información, consulte [Utilice el script de respaldo proporcionado por SageMaker HyperPod](#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

```
aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster
```

Este comando llama a la [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API. Tras la llamada a la API, SageMaker HyperPod comprueba si hay una DLAMI más reciente disponible para las instancias del clúster. Si se requiere una actualización de DLAMI SageMaker HyperPod , actualizará las instancias del clúster para utilizar las [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) más recientes y ejecutará los scripts de su ciclo de vida en el bucket de Amazon S3 que especificó durante la creación o actualización del clúster. Si el clúster ya utiliza la última versión de DLAMI SageMaker HyperPod , no realizará ningún cambio en el clúster ni volverá a ejecutar los scripts del ciclo de vida. El equipo SageMaker HyperPod de servicio lanza periódicamente nuevos [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) dispositivos para mejorar la seguridad y la experiencia de los usuarios. Le recomendamos que se mantenga siempre actualizado a la última SageMaker HyperPod DLAMI. Para futuras actualizaciones de SageMaker HyperPod DLAMI para parches de seguridad, siga con. [Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md)

**sugerencia**  
Si se produce un error en el parche de seguridad, puede recuperar los mensajes de error ejecutando la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html), tal y como se indica en las instrucciones de [Describir un clúster](#sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster).

**nota**  
Solo puede ejecutar esta API mediante programación. La funcionalidad de aplicación de parches no está implementada en la interfaz de usuario de la consola. SageMaker HyperPod 

### Utilice el script de respaldo proporcionado por SageMaker HyperPod
<a name="sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup"></a>

SageMaker HyperPod proporciona un script para realizar copias de seguridad de sus datos y restaurarlos [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/patching-backup.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/patching-backup.sh)en el * GitHub repositorio de Awsome Distributed Training*. El script proporciona las dos funciones siguientes.

**Copia de seguridad de los datos en un bucket de S3 antes de aplicar los parches**

```
sudo bash patching-backup.sh --create <s3-buckup-bucket-path>
```

Tras ejecutar el comando, el script comprueba `squeue` para ver si hay trabajos en cola, detiene Slurm si no hay ningún trabajo en la cola, hace copia de seguridad de `mariadb` y copia los elementos locales en el disco definido en `LOCAL_ITEMS`. Puede añadir más archivos y directorios a `LOCAL_ITEMS`.

```
# Define files and directories to back up.
LOCAL_ITEMS=(
    "/var/spool/slurmd"
    "/var/spool/slurmctld"
    "/etc/systemd/system/slurmctld.service"
    "/home/ubuntu/backup_slurm_acct_db.sql"
    # ... Add more items as needed
)
```

Además, puede añadir código personalizado al script proporcionado para hacer copia de seguridad de cualquier aplicación según su caso de uso.

**Restauración de los datos de un bucket de S3 después de aplicar un parche**

```
sudo bash patching-backup.sh --restore <s3-buckup-bucket-path>
```

## Reducción vertical de un clúster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-scale-down"></a>

Puedes reducir el número de instancias o eliminar grupos de instancias de tu SageMaker HyperPod clúster para optimizar la asignación de recursos o reducir los costos.

Puede reducir verticalmente utilizando la operación de la API `UpdateCluster` para terminar las instancias de su grupo de instancias de forma aleatoria hasta un número específico, o bien finalizar instancias específicas mediante la operación de la API `BatchDeleteClusterNodes`. También puede eliminar por completo grupos de instancias completos mediante la API `UpdateCluster`. Para obtener más información acerca de cómo reducir verticalmente usando estos métodos, consulte [Reducir la escala de un SageMaker HyperPod clúster](smcluster-scale-down.md).

**nota**  
No puede eliminar instancias configuradas como nodos de controlador de Slurm. Si se intenta eliminar un nodo del controlador de Slurm, se genera un error de validación con el código de error `NODE_ID_IN_USE`.

## Eliminar un clúster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-delete-cluster"></a>

Ejecute [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-cluster.html) para eliminar un clúster. Puede especificar el nombre o el ARN del clúster.

```
aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster
```

# Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm"></a>

SageMaker HyperPod siempre ofrece up-and-running clústeres de procesamiento, que son altamente personalizables, ya que puede escribir scripts de ciclo de vida para indicar SageMaker HyperPod cómo configurar los recursos del clúster. Los siguientes temas son prácticas recomendadas para preparar scripts de ciclo de vida para configurar SageMaker HyperPod clústeres con herramientas de gestión de cargas de trabajo de código abierto.

En los siguientes temas, se analizan en profundidad las mejores prácticas para preparar scripts de ciclo de vida para configurar las configuraciones de Slurm. SageMaker HyperPod

## Descripción general
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-highlevel-overview"></a>

El siguiente procedimiento es el flujo principal de aprovisionamiento de un HyperPod clúster y su configuración con Slurm. Los pasos se ordenan siguiendo un enfoque ***ascendente***.

1. Planifique cómo quiere crear los nodos de Slurm en un clúster. HyperPod Por ejemplo, si quieres configurar dos nodos de Slurm, tendrás que configurar dos grupos de instancias en un clúster. HyperPod 

1. Prepara la configuración de Slurm. Elija uno de los siguientes enfoques:
   + **Opción A: Configuración basada en API (recomendada)**: defina los tipos de nodos y las particiones de Slurm directamente en la carga útil de la `CreateCluster` API utilizando `SlurmConfig` cada grupo de instancias. Con este enfoque:
     + No se necesita ningún `provisioning_parameters.json` archivo
     + La topología de Slurm se define en la carga útil de la API junto con las definiciones de los grupos de instancias
     + FSx Los sistemas de archivos se configuran mediante per-instance-group `InstanceStorageConfigs`
     + La estrategia de configuración se controla mediante `Orchestrator.Slurm.SlurmConfigStrategy`

     Ejemplo `SlurmConfig` en un grupo de instancias:

     ```
     {
         "InstanceGroupName": "gpu-compute",
         "InstanceType": "ml.p4d.24xlarge",
         "InstanceCount": 8,
         "SlurmConfig": {
             "NodeType": "Compute",
             "PartitionNames": ["gpu-training"]
         }
     }
     ```
   + **Opción B: Configuración antigua**: prepara un `provisioning_parameters.json` archivo, que es un[Formulario de configuración para provisioning\$1parameters.json](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-provisioning-forms-slurm). `provisioning_parameters.json`debe contener la información de configuración del nodo de Slurm que se va a aprovisionar en el clúster. HyperPod Esto debería reflejar el diseño de los nodos de Slurm del paso 1.

1. Prepare un conjunto de scripts de ciclo de vida para configurar Slurm, HyperPod instalar paquetes de software y configurar un entorno en el clúster para su caso de uso. Debe estructurar los scripts de ciclo de vida para que se ejecuten de forma colectiva y en orden en un script de Python central (`lifecycle_script.py`) y escribir un script de intérprete de comandos de punto de entrada (`on_create.sh`) para ejecutar el script de Python. El script de shell de punto de entrada es lo que debe proporcionar a una solicitud de creación de HyperPod clústeres más adelante en el paso 5. 

   Además, tenga en cuenta que debe escribir los scripts para esperar `resource_config.json` que se generen HyperPod durante la creación del clúster. `resource_config.json`contiene información sobre los recursos del HyperPod clúster, como las direcciones IP, los tipos de instancias y ARNs, y es lo que debe usar para configurar Slurm.

1. Reúna todos los archivos de los pasos anteriores en una carpeta. La estructura de carpetas depende del enfoque de configuración que haya seleccionado en el paso 2.

   Si seleccionó la opción A (configuración basada en API):

   La carpeta solo necesita scripts de ciclo de vida para las tareas de configuración personalizadas. La configuración y el FSx montaje de Slurm se gestionan automáticamente en HyperPod función de la carga útil de la API.

   ```
   └── lifecycle_files // your local folder
   
       ├── on_create.sh
       ├── lifecycle_script.py
       └── ... // more setup scripts to be fed into lifecycle_script.py
   ```
**nota**  
El `provisioning_parameters.json` archivo no es necesario cuando se utiliza una configuración basada en API.

   Si seleccionó la opción B (configuración antigua):

   La carpeta debe incluir `provisioning_parameters.json` el conjunto completo de scripts del ciclo de vida.

   ```
   └── lifecycle_files // your local folder
   
       ├── provisioning_parameters.json
       ├── on_create.sh
       ├── lifecycle_script.py
       └── ... // more setup scrips to be fed into lifecycle_script.py
   ```

1. Cargue todos los archivos en un bucket de S3. Copie y conserve la ruta del bucket de S3. Tenga en cuenta que debe crear una ruta de bucket de S3 que empiece por `sagemaker-`, ya que tiene que elegir un [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) asociado a [`AmazonSageMakerClusterInstanceRolePolicy`](security-iam-awsmanpol-AmazonSageMakerClusterInstanceRolePolicy.md), que solo permite las rutas de bucket de S3 que comienzan con el prefijo `sagemaker-`. El siguiente comando es un ejemplo de comando para cargar todos los archivos en un bucket de S3.

   ```
   aws s3 cp --recursive ./lifecycle_files s3://sagemaker-hyperpod-lifecycle/src
   ```

1. Prepare una solicitud HyperPod de creación de clústeres. 
   + Opción 1: Si utilizas el AWS CLI, escribe una solicitud de creación de clústeres en formato JSON (`create_cluster.json`) siguiendo las instrucciones que se indican en[Creación de un nuevo clúster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-create-cluster).
   + Opción 2: Si utilizas la interfaz de usuario de la consola de SageMaker IA, rellena el formulario de solicitud de **creación de un clúster** en la interfaz de usuario de la HyperPod consola siguiendo las instrucciones que se indican en[Crea un SageMaker HyperPod clúster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-create-cluster).

   En esta fase, asegúrese de crear grupos de instancias en la misma estructura que planeó en los pasos 1 y 2. Además, asegúrese de especificar el bucket de S3 del paso 5 en los formularios de solicitud.

1. Envía la solicitud de creación del clúster. HyperPod aprovisiona un clúster en función de la solicitud y, a continuación, crea un `resource_config.json` archivo en las instancias del HyperPod clúster y configura Slurm en el clúster ejecutando los scripts del ciclo de vida.

En los siguientes temas se explica y profundiza en los detalles sobre cómo organizar los archivos de configuración y los scripts del ciclo de vida para que funcionen correctamente durante la creación del HyperPod clúster.

**Topics**
+ [Descripción general](#sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-highlevel-overview)
+ [Los scripts de ciclo de vida básicos proporcionados por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md)
+ [Qué configuraciones específicas se administran en los archivos de configuración HyperPod de Slurm](sagemaker-hyperpod-lifecycle-best-practices-slurm-what-hyperpod-overrides-in-slurm-conf.md)
+ [Registra rotaciones de Slurm](sagemaker-hyperpod-slurm-log-rotation.md)
+ [Montaje de Amazon FSx for Lustre y Amazon FSx for OpenZFS en un clúster HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-setup-with-fsx.md)
+ [Validar los archivos de configuración JSON antes de crear un clúster de Slurm en HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-json-files.md)
+ [Validar el tiempo de ejecución antes de ejecutar las cargas de trabajo de producción en un clúster de Slurm HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-runtime.md)
+ [Desarrollar scripts de ciclo de vida de forma interactiva en un nodo de clúster HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-develop-lifecycle-scripts.md)

# Los scripts de ciclo de vida básicos proporcionados por HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config"></a>

En esta sección se explican todos los componentes del proceso básico de configuración de Slurm on con un HyperPod enfoque ***descendente***. Comienza con la preparación de una solicitud de creación de HyperPod clústeres para ejecutar la `CreateCluster` API y profundiza en la estructura jerárquica hasta llegar a los scripts del ciclo de vida. Usa los ejemplos de scripts de ciclo de vida que se proporcionan en el repositorio de [Awsome Distributed Training GitHub ](https://github.com/aws-samples/awsome-distributed-training/). Clone el repositorio ejecutando el siguiente comando.

```
git clone https://github.com/aws-samples/awsome-distributed-training/
```

Los scripts básicos del ciclo de vida para configurar un clúster de Slurm SageMaker HyperPod están disponibles en. [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config)

```
cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
```

En el siguiente diagrama de flujo, se muestra una descripción detallada de cómo debe diseñar los scripts de ciclo de vida básicos. Las descripciones que aparecen debajo del diagrama y la guía de procedimientos explican cómo funcionan durante la llamada a la HyperPod `CreateCluster` API.

![\[Un diagrama de flujo detallado de la creación de HyperPod clústeres y la estructura de los scripts del ciclo de vida.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod-lifecycle-structure.png)


***Figura:** Un diagrama de flujo detallado de la creación de HyperPod clústeres y la estructura de los scripts de ciclo de vida. (1) Las flechas discontinuas se dirigen hacia donde se llaman los cuadros y muestran el flujo de preparación de los archivos de configuración y los scripts de ciclo de vida. Comienza con la preparación de `provisioning_parameters.json` y los scripts de ciclo de vida. Luego estos se codifican en `lifecycle_script.py` para permitir una ejecución colectiva en orden. Y la ejecución del `lifecycle_script.py` script la realiza el script del `on_create.sh` shell, que se ejecuta en el terminal de la HyperPod instancia. (2) Las flechas continuas muestran el flujo principal de creación del HyperPod clúster y cómo se «invoca» o se «envía» a las casillas. `on_create.sh`es obligatorio para la solicitud de creación de un clúster, ya sea en el formulario de solicitud de **creación de un clúster** de la interfaz de usuario de la consola `create_cluster.json` o en el formulario de solicitud de creación de un clúster. Tras enviar la solicitud, HyperPod ejecuta la `CreateCluster` API en función de la información de configuración proporcionada en la solicitud y en los scripts del ciclo de vida. (3) La flecha punteada indica que la HyperPod plataforma crea instancias `resource_config.json` en el clúster durante el aprovisionamiento de los recursos del clúster. `resource_config.json`contiene información sobre los recursos del HyperPod clúster, como el ARN del clúster, los tipos de instancias y las direcciones IP. Es importante tener en cuenta que debe preparar los scripts de ciclo de vida para que esperen el archivo `resource_config.json` durante la creación del clúster. Para obtener más información, consulte la guía de procedimientos que se incluye a continuación.*

La siguiente guía de procedimientos explica lo que ocurre durante la creación HyperPod del clúster y cómo se diseñan los scripts del ciclo de vida básico.

1. `create_cluster.json`— Para enviar una solicitud de creación de HyperPod clústeres, debe preparar un archivo de `CreateCluster` solicitud en formato JSON. En este ejemplo de prácticas recomendadas, asumimos que el archivo de solicitud se denomina `create_cluster.json`. Escribe `create_cluster.json` para aprovisionar un HyperPod clúster con grupos de instancias. La mejor práctica es agregar la misma cantidad de grupos de instancias que la cantidad de nodos de Slurm que planeas configurar en el HyperPod clúster. Asegúrese de asignar nombres distintivos a los grupos de instancias que asignará a los nodos de Slurm que piensa configurar.

   Además, debe especificar una ruta de bucket de S3 para almacenar todo el conjunto de archivos de configuración y scripts de ciclo de vida en el nombre de campo `InstanceGroups.LifeCycleConfig.SourceS3Uri` del formulario de solicitud `CreateCluster`, y especificar el nombre de archivo de un script de intérprete de comandos de punto de entrada (supongamos que se denomina `on_create.sh`) en `InstanceGroups.LifeCycleConfig.OnCreate`.
**nota**  
Si utilizas el formulario de envío **para crear un clúster** en la interfaz de usuario de la HyperPod consola, la consola se encarga de rellenar y enviar la `CreateCluster` solicitud en tu nombre y ejecuta la `CreateCluster` API en el backend. En este caso, no es necesario que cree `create_cluster.json`; en cambio, debe asegurarse de especificar la información de configuración del clúster correcta en el formulario de envío **Crear un clúster**.

1. `on_create.sh`— Para cada grupo de instancias, debes proporcionar un script shell de punto de entrada para ejecutar comandos`on_create.sh`, ejecutar scripts para instalar paquetes de software y configurar el entorno del HyperPod clúster con Slurm. Las dos cosas que debes preparar son una `provisioning_parameters.json` necesaria HyperPod para configurar Slurm y un conjunto de scripts de ciclo de vida para instalar paquetes de software. Este script debe escribirse para buscar y ejecutar los siguientes archivos, tal y como se muestra en el script de ejemplo que aparece en [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/on_create.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/on_create.sh).
**nota**  
Asegúrese de cargar todo el conjunto de scripts de ciclo de vida en la ubicación de S3 que especifique en `create_cluster.json`. También debe colocar el archivo `provisioning_parameters.json` en la misma ubicación.

   1. `provisioning_parameters.json`: este es un [Formulario de configuración para provisioning\$1parameters.json](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-provisioning-forms-slurm). El script `on_create.sh` busca este archivo JSON y define la variable de entorno para identificar la ruta al mismo. A través de este archivo JSON, puede configurar los nodos de Slurm y las opciones de almacenamiento, como Amazon FSx for Lustre for Slurm, con los que comunicarse. En`provisioning_parameters.json`, asegúrate de asignar los grupos de instancias del HyperPod clúster a los nodos de Slurm con los nombres que especificaste en `create_cluster.json` función de cómo planeas configurarlos.

      En el siguiente diagrama, se muestra un ejemplo de cómo se `provisioning_parameters.json` deben escribir los dos archivos `create_cluster.json` de configuración de JSON para asignar grupos de HyperPod instancias a los nodos de Slurm. En este ejemplo, asumimos que se configuran tres nodos de Slurm: el nodo controlador (de administración), el nodo de inicio de sesión (que es opcional) y el nodo de computación (de trabajo).
**sugerencia**  
Para ayudarte a validar estos dos archivos JSON, el equipo de HyperPod servicio proporciona un script de validación,. [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/validate-config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/validate-config.py) Para obtener más información, consulte [Validar los archivos de configuración JSON antes de crear un clúster de Slurm en HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-json-files.md).  
![\[Comparación directa entre archivos .json.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod-lifecycle-slurm-config.png)

      ***Figura:** Comparación directa entre la creación `create_cluster.json` de HyperPod clústeres y la configuración `provisiong_params.json` de Slurm. El número de grupos de instancias en `create_cluster.json` debe coincidir con el número de nodos que desea configurar como nodos de Slurm. En el caso del ejemplo de la figura, se configurarán tres nodos de Slurm en un HyperPod clúster de tres grupos de instancias. Debes asignar los grupos de instancias del HyperPod clúster a los nodos de Slurm especificando los nombres de los grupos de instancias en consecuencia.*

   1. `resource_config.json`— Durante la creación del clúster, el `lifecycle_script.py` script se escribe esperando un `resource_config.json` archivo del mismo. HyperPod Este archivo contiene información sobre el clúster, como los tipos de instancias y las direcciones IP.

      Al ejecutar la `CreateCluster` API, HyperPod crea un archivo de configuración de recursos en `/opt/ml/config/resource_config.json` función del `create_cluster.json` archivo. La ruta del archivo se guarda en la variable de entorno denominada `SAGEMAKER_RESOURCE_CONFIG_PATH`. 
**importante**  
La HyperPod plataforma genera automáticamente el `resource_config.json` archivo y NO es necesario que lo cree. El siguiente código sirve para mostrar un ejemplo del archivo `resource_config.json` que se crearía a partir de la creación de un clúster en función del archivo `create_cluster.json` del paso anterior. Además, le ayudará a entender qué ocurre en el backend y qué aspecto tendría un archivo `resource_config.json` generado automáticamente.

      ```
      {
      
          "ClusterConfig": {
              "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/abcde01234yz",
              "ClusterName": "your-hyperpod-cluster"
          },
          "InstanceGroups": [
              {
                  "Name": "controller-machine",
                  "InstanceType": "ml.c5.xlarge",
                  "Instances": [
                      {
                          "InstanceName": "controller-machine-1",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      }
                  ]
              },
              {
                  "Name": "login-group",
                  "InstanceType": "ml.m5.xlarge",
                  "Instances": [
                      {
                          "InstanceName": "login-group-1",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      }
                  ]
              },
              {
                  "Name": "compute-nodes",
                  "InstanceType": "ml.trn1.32xlarge",
                  "Instances": [
                      {
                          "InstanceName": "compute-nodes-1",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      },
                      {
                          "InstanceName": "compute-nodes-2",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      },
                      {
                          "InstanceName": "compute-nodes-3",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      },
                      {
                          "InstanceName": "compute-nodes-4",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      }
                  ]
              }
          ]
      }
      ```

   1. `lifecycle_script.py`— Este es el script principal de Python que ejecuta colectivamente los scripts del ciclo de vida que configuran Slurm en el HyperPod clúster mientras se aprovisiona. Este script lee en `provisioning_parameters.json` y `resource_config.json` desde las rutas especificadas o identificadas en `on_create.sh`, pasa la información relevante a cada script de ciclo de vida y, a continuación, ejecuta los scripts de ciclo de vida en orden.

      Los scripts de ciclo de vida son un conjunto de scripts que puede personalizar con total flexibilidad para instalar paquetes de software y establecer las configuraciones necesarias o personalizadas durante la creación del clúster, como la configuración de Slurm, la creación de usuarios o la instalación de Conda o Docker. El [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py)script de ejemplo está preparado para ejecutar otros scripts de ciclo de vida básicos en el repositorio, como el lanzamiento de Slurm deamons () [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/start_slurm.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/start_slurm.sh), el montaje de Amazon FSx for Lustre () y la configuración de la contabilidad de MariaDB ([https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/mount_fsx.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/mount_fsx.sh)) y la contabilidad de RDS (). [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/setup_mariadb_accounting.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/setup_mariadb_accounting.sh) También puede añadir más scripts, empaquetarlos en el mismo directorio y añadir líneas de código para que puedan ejecutarse. `lifecycle_script.py` HyperPod Para obtener más información sobre los scripts básicos del ciclo de vida, consulte también los [scripts del ciclo de vida 3.1](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod#31-lifecycle-scripts) en el * GitHub repositorio de Awsome Distributed Training*.
**nota**  
HyperPod se ejecuta [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) en cada instancia de un clúster y la AMI tiene paquetes de software preinstalados que cumplen las compatibilidades entre ellos y HyperPod las funcionalidades. Tenga en cuenta que si reinstala alguno de los paquetes preinstalados, usted es responsable de instalar los paquetes compatibles y tenga en cuenta que es posible que algunas HyperPod funcionalidades no funcionen del modo esperado.

      Además de las configuraciones predeterminadas, en la carpeta [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils) hay más scripts para instalar el siguiente software. El archivo `lifecycle_script.py` ya está preparado para incluir líneas de código para ejecutar los scripts de instalación, así que consulte los siguientes elementos para buscar esas líneas y quitar las marcas de comentario para activarlas.

      1. Las siguientes líneas de código sirven para instalar [Docker](https://www.docker.com/), [Enroot](https://github.com/NVIDIA/enroot) y [Pyxis](https://github.com/NVIDIA/pyxis). Estos paquetes son necesarios para ejecutar contenedores de Docker en un clúster de Slurm. 

         Para habilitar este paso de instalación, defina el parámetro `enable_docker_enroot_pyxis` para `True` en el archivo [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py).

         ```
         # Install Docker/Enroot/Pyxis
         if Config.enable_docker_enroot_pyxis:
             ExecuteBashScript("./utils/install_docker.sh").run()
             ExecuteBashScript("./utils/install_enroot_pyxis.sh").run(node_type)
         ```

      1. Puede integrar su HyperPod clúster con [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) [y Amazon Managed](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) Grafana para exportar métricas HyperPod sobre el clúster y los nodos del clúster a los paneles de Amazon Managed Grafana. Para exportar métricas y usar el [panel de Slurm](https://grafana.com/grafana/dashboards/4323-slurm-dashboard/), el [panel de NVIDIA DCGM Exporter](https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/) y el [panel de métricas de EFA](https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/) en Amazon Managed Grafana, debe instalar el [exportador de Slurm para Prometheus](https://github.com/vpenso/prometheus-slurm-exporter), el [exportador de NVIDIA DCGM](https://github.com/NVIDIA/dcgm-exporter) y el [exportador de nodos de EFA](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md). Para obtener más información sobre la instalación de los paquetes de exportador y el uso de los paneles de Grafana en un espacio de trabajo de Amazon Managed Grafana, consulte [SageMaker HyperPod monitoreo de recursos de clústeres](sagemaker-hyperpod-cluster-observability-slurm.md). 

         Para habilitar este paso de instalación, defina el parámetro `enable_observability` para `True` en el archivo [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py).

         ```
         # Install metric exporting software and Prometheus for observability
         
         if Config.enable_observability:
             if node_type == SlurmNodeType.COMPUTE_NODE:
                 ExecuteBashScript("./utils/install_docker.sh").run()
                 ExecuteBashScript("./utils/install_dcgm_exporter.sh").run()
                 ExecuteBashScript("./utils/install_efa_node_exporter.sh").run()
             
             if node_type == SlurmNodeType.HEAD_NODE:
                 wait_for_scontrol()
                 ExecuteBashScript("./utils/install_docker.sh").run()
                 ExecuteBashScript("./utils/install_slurm_exporter.sh").run()
                 ExecuteBashScript("./utils/install_prometheus.sh").run()
         ```

1. Asegúrese de cargar todos los archivos de configuración y los scripts de configuración del **Paso 2** en el bucket de S3 que haya indicado en la solicitud `CreateCluster` del **paso 1**. Por ejemplo, supongamos que su solicitud `create_cluster.json` tiene lo siguiente.

   ```
   "LifeCycleConfig": { 
   
       "SourceS3URI": "s3://sagemaker-hyperpod-lifecycle/src",
       "OnCreate": "on_create.sh"
   }
   ```

   En este caso, `"s3://sagemaker-hyperpod-lifecycle/src"` debería contener `on_create.sh`, `lifecycle_script.py`, `provisioning_parameters.json` y todos los demás scripts de configuración. Suponga que ha preparado los archivos en una carpeta local de la siguiente manera.

   ```
   └── lifecycle_files // your local folder
       ├── provisioning_parameters.json
       ├── on_create.sh
       ├── lifecycle_script.py
       └── ... // more setup scrips to be fed into lifecycle_script.py
   ```

   Para cargar los archivos, utilice el comando de S3 de la siguiente manera.

   ```
   aws s3 cp --recursive ./lifecycle_scripts s3://sagemaker-hyperpod-lifecycle/src
   ```

# Qué configuraciones específicas se administran en los archivos de configuración HyperPod de Slurm
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-what-hyperpod-overrides-in-slurm-conf"></a>

Al crear un clúster de Slurm en HyperPod, el HyperPod agente configura los [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html)archivos [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html)y `/opt/slurm/etc/` para gestionar el clúster de Slurm en función de la solicitud de creación del clúster y de los scripts HyperPod del ciclo de vida. La siguiente lista muestra qué parámetros específicos gestiona y sobrescribe el HyperPod agente. 

**importante**  
Le recomendamos encarecidamente que **no** cambie estos parámetros gestionados por HyperPod.
+ En [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html), HyperPod configura los siguientes parámetros básicos: `ClusterName``SlurmctldHost`,`PartitionName`, y`NodeName`.

  Además, para habilitar la [Recuperación automática de nodos y reanudación automática](sagemaker-hyperpod-resiliency-slurm-auto-resume.md) funcionalidad, HyperPod requiere que los `SchedulerParameters` parámetros `TaskPlugin` y estén configurados de la siguiente manera. El HyperPod agente configura estos dos parámetros con los valores necesarios de forma predeterminada.

  ```
  TaskPlugin=task/none
  SchedulerParameters=permit_job_expansion
  ```
+ En [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html), HyperPod gestiona `NodeName` los nodos de la GPU.

# Registra rotaciones de Slurm
<a name="sagemaker-hyperpod-slurm-log-rotation"></a>

SageMaker HyperPod proporciona una rotación automática de registros para los registros de los daemon de Slurm para ayudar a administrar el uso del espacio en disco y mantener el rendimiento del sistema. La rotación de registros es crucial para evitar que los registros consuman demasiado espacio en el disco y garantizar un funcionamiento óptimo del sistema, ya que archiva y elimina automáticamente los archivos de registro antiguos y, al mismo tiempo, conserva la información de registro reciente. Las rotaciones de registros de Slurm están habilitadas de forma predeterminada al crear un clúster.

## Cómo funciona la rotación de registros
<a name="sagemaker-hyperpod-slurm-log-rotation-how-it-works"></a>

Cuando está habilitada, la configuración de rotación de registros:
+ Supervisa todos los archivos de registro de Slurm con la extensión `.log` ubicada en la `/var/log/slurm/` carpeta de los nodos de controlador, inicio de sesión y cómputo.
+ Rota los registros cuando alcanzan un tamaño de 50 MB.
+ Mantiene hasta dos archivos de registro rotados antes de eliminarlos.
+ Envía SIGUSR2 una señal a los demonios de Slurm (`slurmctld``slurmd`, y) tras la rotación. `slurmdbd`

## Lista de archivos de registro rotados
<a name="sagemaker-hyperpod-slurm-log-rotation-log-files-list"></a>

Los registros de Slurm se encuentran en el directorio. `/var/log/slurm/` La rotación de registros está habilitada para todos los archivos que coincidan. `/var/log/slurm/*.log` Cuando se produce la rotación, los archivos girados tienen sufijos numéricos (por ejemplo,). `slurmd.log.1` La siguiente lista no es exhaustiva, pero muestra algunos de los archivos de registro críticos que giran automáticamente:
+ `/var/log/slurm/slurmctld.log`
+ `/var/log/slurm/slurmd.log`
+ `/var/log/slurm/slurmdb.log`
+ `/var/log/slurm/slurmrestd.log`

## Habilite o deshabilite la rotación de registros
<a name="sagemaker-hyperpod-slurm-log-rotation-enable-disable"></a>

Puede controlar la función de rotación de registros mediante el `enable_slurm_log_rotation` parámetro del `config.py` script de los scripts del ciclo de vida de su clúster, como se muestra en el siguiente ejemplo:

```
class Config:
    # Set false if you want to disable log rotation of Slurm daemon logs
    enable_slurm_log_rotation = True  # Default value
```

Para deshabilitar la rotación de registros, defina el parámetro en`False`, como se muestra en el siguiente ejemplo:

```
enable_slurm_log_rotation = False
```

**nota**  
Los scripts del ciclo de vida se ejecutan en todos los nodos de Slurm (nodos de controlador, inicio de sesión y procesamiento) durante la creación del clúster. También se ejecutan en nodos nuevos cuando se agregan al clúster. La actualización de las configuraciones de rotación de registros debe realizarse manualmente después de la creación del clúster. La configuración de rotación del registro se almacena en`/etc/logrotate.d/sagemaker-hyperpod-slurm`. Se recomienda mantener habilitada la rotación de registros para evitar que los archivos de registro consuman demasiado espacio en disco. Para deshabilitar la rotación de registros, elimine el `sagemaker-hyperpod-slurm` archivo o comente su contenido añadiéndolo `#` al principio de cada línea del `sagemaker-hyperpod-slurm` archivo.

## Configuración de rotación de registros predeterminada
<a name="sagemaker-hyperpod-slurm-log-rotation-default-settings"></a>

Los siguientes ajustes se configuran automáticamente para cada archivo de registro que se rota:


| Opción | Valor | Description (Descripción) | 
| --- | --- | --- | 
| rotate | 2 | Número de archivos de registro rotados que se deben conservar | 
| size | 50 MB | Tamaño máximo antes de la rotación | 
| copytruncate | enabled | Copia y trunca el archivo de registro original | 
| compress | disabled | Los registros rotados no se comprimen | 
| missingok | enabled | No hay error si falta el archivo de registro | 
| notifempty | enabled | No gira los archivos vacíos | 
| noolddir | enabled | Los archivos rotados permanecen en el mismo directorio | 

# Montaje de Amazon FSx for Lustre y Amazon FSx for OpenZFS en un clúster HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-setup-with-fsx"></a>

Para montar un sistema de archivos compartidos de Amazon FSx for Lustre en su HyperPod clúster, configure lo siguiente.

1. Utilice su Amazon VPC. 

   1. Para que las instancias de HyperPod clúster se comuniquen dentro de su VPC, asegúrese de asociarlas [Configuración SageMaker HyperPod con una Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc) a la función de IAM para. SageMaker HyperPod 

   1. En `create_cluster.json`, incluya la siguiente información de la VPC.

      ```
      "VpcConfig": { 
          "SecurityGroupIds": [ "string" ],
          "Subnets": [ "string" ]
      }
      ```

      Para obtener más consejos sobre cómo configurar Amazon VPC, consulte [Requisitos previos para su uso SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md).

1. Para terminar de configurar Slurm con Amazon FSx for Lustre, puede utilizar uno de los siguientes enfoques. Puedes encontrar la FSx información de Amazon en la consola Amazon FSx for Lustre de tu cuenta o ejecutando el siguiente AWS CLI comando,`aws fsx describe-file-systems`.

   **Opción A: configuración basada en API (recomendada)**

   Especifica la FSx configuración de Amazon directamente en la carga útil de la CreateCluster API desde cada grupo de instancias. `InstanceStorageConfigs` Este enfoque es compatible tanto FSx con Lustre como con OpenZFS, y FSx permite la configuración. per-instance-group FSx 

   ```
   "InstanceStorageConfigs": [
       {
           "FsxLustreConfig": {
               "DnsName": "fs-12345678a90b01cde.fsx.us-west-2.amazonaws.com",
               "MountPath": "/fsx",
               "MountName": "1abcdefg"
           }
       }
   ]
   ```

    FSx Para OpenZFS, utilice en su lugar: `FsxOpenZfsConfig`

   ```
   "InstanceStorageConfigs": [
       {
           "FsxOpenZfsConfig": {
               "DnsName": "fs-12345678a90b01cde.fsx.us-west-2.amazonaws.com",
               "MountPath": "/fsx-openzfs"
           }
       }
   ]
   ```

   Para obtener más información, consulte [Cómo empezar a SageMaker HyperPod usar la AWS CLI](sagemaker-hyperpod-quickstart.md).

   **Opción B: configuración antigua**

   Especifique el nombre FSx DNS de Amazon y el nombre de FSx montaje de Amazon `provisioning_parameters.json` como se muestra en la figura de la [Los scripts de ciclo de vida básicos proporcionados por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) sección.

   ```
   "fsx_dns_name": "fs-12345678a90b01cde.fsx.us-west-2.amazonaws.com",
   "fsx_mountname": "1abcdefg"
   ```

# Validar los archivos de configuración JSON antes de crear un clúster de Slurm en HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-json-files"></a>

Para validar los archivos de configuración JSON antes de enviar una solicitud de creación de clúster, utilice el script de validación de la configuración [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/validate-config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/validate-config.py). Este script analiza y compara el archivo JSON de configuración del HyperPod clúster y el archivo JSON de configuración de Slurm, e identifica si hay algún error de configuración de los recursos entre los dos archivos y también entre los recursos de Amazon EC2, Amazon VPC y Amazon. FSx Por ejemplo, para validar los archivos `create_cluster.json` y `provisioning_parameters.json` de la sección [Los scripts de ciclo de vida básicos proporcionados por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md), ejecute el script de validación de la siguiente manera.

```
python3 validate-config.py --cluster-config create_cluster.json --provisioning-parameters provisioning_parameters.json
```

A continuación, se muestra un ejemplo del resultado de una validación correcta.

```
✔️  Validated instance group name worker-group-1 is correct ...

✔️  Validated subnet subnet-012345abcdef67890 ...
✔️  Validated security group sg-012345abcdef67890 ingress rules ...
✔️  Validated security group sg-012345abcdef67890 egress rules ...
✔️  Validated FSx Lustre DNS name fs-012345abcdef67890.fsx.us-east-1.amazonaws.com
✔️  Validated FSx Lustre mount name abcdefgh
✅ Cluster Validation succeeded
```

# Validar el tiempo de ejecución antes de ejecutar las cargas de trabajo de producción en un clúster de Slurm HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-runtime"></a>

Para comprobar el tiempo de ejecución antes de ejecutar cualquier carga de trabajo de producción en un clúster de Slurm HyperPod, utilice el script de validación del tiempo de ejecución. [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/hyperpod-precheck.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/hyperpod-precheck.py) Este script comprueba si el clúster de Slurm tiene todos los paquetes instalados para ejecutar Docker, si el clúster tiene un sistema de archivos correctamente montado FSx para Lustre y un directorio de usuarios que comparte el sistema de archivos, y si el deamon de Slurm se ejecuta en todos los nodos de cómputo.

Para ejecutar el script en varios nodos a la vez, utilice `srun` de la forma que se indica en el siguiente comando de ejemplo para ejecutar el script en un clúster de Slurm de 8 nodos.

```
# The following command runs on 8 nodes
srun -N 8 python3 hyperpod-precheck.py
```

**nota**  
Para obtener más información sobre el script de validación, por ejemplo, qué funciones de validación en tiempo de ejecución proporciona el script y pautas para resolver los problemas que no superan las validaciones, consulte [Validación en tiempo de ejecución antes de ejecutar cargas](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod#35-runtime-validation-before-running-workloads) de trabajo en el * GitHub repositorio de Awsome Distributed Training*.

# Desarrollar scripts de ciclo de vida de forma interactiva en un nodo de clúster HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-develop-lifecycle-scripts"></a>

En esta sección se explica cómo puede desarrollar scripts de ciclo de vida de forma interactiva sin tener que crear y eliminar un HyperPod clúster de forma repetida.

1. Cree un HyperPod clúster con los scripts de ciclo de vida básicos.

1. Inicie sesión en un nodo del clúster.

1. Desarrolle un script (`configure_xyz.sh`) editándolo y ejecutándolo repetidamente en el nodo.

   1. HyperPod ejecuta los scripts del ciclo de vida como usuario root, por lo que le recomendamos que los ejecute `configure_xyz.sh` como usuario root durante el desarrollo para asegurarse de que el script se prueba en las mismas condiciones mientras se ejecuta HyperPod.

1. Integre el script en `lifecycle_script.py` añadiendo una línea de código similar a la siguiente.

   ```
   ExecuteBashScript("./utils/configure_xyz.sh").run()
   ```

1. Cargue los scripts de ciclo de vida actualizados en el bucket de S3 que utilizó inicialmente para cargar los scripts de ciclo de vida básicos.

1. Pruebe la versión integrada de `lifecycle_script.py` creando un HyperPod clúster nuevo. También puede utilizar el reemplazo manual de instancias para probar los scripts de ciclo de vida actualizados mediante la creación de nuevas instancias. Para obtener instrucciones detalladas, consulta [Reemplazar manualmente un nodo](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance.html#sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-replace). Tenga en cuenta que solo los nodos de trabajo son reemplazables.

# SageMaker HyperPod soporte para nodos de múltiples cabezales
<a name="sagemaker-hyperpod-multihead-slurm"></a>

Puede crear varios nodos controladores (principales) en un único clúster de SageMaker HyperPod Slurm, uno de ellos como nodo controlador principal y los demás como nodos controladores de respaldo. El nodo de controlador principal se encarga de controlar los nodos (de trabajo) de computación y de gestionar las operaciones de Slurm. Los nodos de controlador de respaldo supervisan constantemente el nodo de controlador principal. Si el nodo de controlador principal falla o deja de responder, uno de los nodos de controlador de respaldo pasará automáticamente a ser el nuevo nodo de controlador principal.

La configuración de varios nodos controladores en los clústeres de SageMaker HyperPod Slurm ofrece varias ventajas clave. Elimina el riesgo de que se produzca un fallo en uno de los nodos de controlador al proporcionar nodos principales de controlador, admite la conmutación automática por error a los nodos de controlador de respaldo con una recuperación más rápida y le permite administrar sus propias bases de datos de contabilidad y la configuración de Slurm de forma independiente.

## Conceptos clave
<a name="sagemaker-hyperpod-multihead-slurm-concepts"></a>

A continuación, se proporcionan detalles sobre los conceptos relacionados con la compatibilidad con SageMaker HyperPod varios nodos controladores (principales) para los clústeres de Slurm.

**Nodo de controlador**

Un nodo de controlador es una instancia de Amazon EC2 dentro de un clúster que ejecuta los servicios esenciales de Slurm para administrar y coordinar las operaciones del clúster. En concreto, aloja el [Slurm controller daemon (slurmctld)](https://slurm.schedmd.com/slurmctld.html) y el [Slurm database daemon (slurmdbd)](https://slurm.schedmd.com/slurmdbd.html). A un nodo de controlador también se le denomina nodo principal.

**Nodo de controlador principal**

Un nodo de controlador principal es el nodo de controlador activo y que controla en ese momento en un clúster de Slurm. Slurm lo identifica como el nodo de controlador principal responsable de administrar el clúster. El nodo de controlador principal recibe y ejecuta los comandos de los usuarios para controlar y asignar recursos en los nodos de computación para ejecutar los trabajos.

**Nodo de controlador de respaldo**

Un nodo de controlador de respaldo es un nodo de controlador inactivo y en espera en un clúster de Slurm. Slurm lo identifica como un nodo de controlador de respaldo que en esos momentos no administra el clúster. El nodo de controlador de respaldo ejecuta el [Slurm controller daemon (slurmctld)](https://slurm.schedmd.com/slurmctld.html) en modo de espera. Todos los comandos de controlador que se ejecutan en los nodos de controlador de respaldo se propagarán al nodo de controlador principal para su ejecución. Su objetivo principal es supervisar continuamente el nodo de controlador principal y asumir sus responsabilidades en caso de que el nodo de controlador principal falle o deje de responder.

**Nodo de computación**

Un nodo de computación es una instancia de Amazon EC2 dentro de un clúster que aloja el [Slurm worker daemon (slurmd)](https://slurm.schedmd.com/slurmd.html). La función principal del nodo de computación es ejecutar los trabajos asignados por el [Slurm controller daemon (slurmctld)](https://slurm.schedmd.com/slurmctld.html) que se ejecuta en el nodo de controlador principal. Cuando se programa un trabajo, el nodo de computación recibe instrucciones del [Slurm controller daemon (slurmctld)](https://slurm.schedmd.com/slurmctld.html) para llevar a cabo las tareas y los cálculos necesarios para ese trabajo dentro del propio nodo. Al nodo de computación también se le denomina nodo de trabajo.

## Funcionamiento
<a name="sagemaker-hyperpod-multihead-slurm-how"></a>

El siguiente diagrama ilustra cómo funcionan juntos AWS los diferentes servicios para admitir la arquitectura de múltiples nodos controladores (principales) para los clústeres de SageMaker HyperPod Slurm.

![\[SageMaker HyperPod diagrama de arquitectura de nodos de múltiples cabezales\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-multihead-architecture.png)


Los AWS servicios que funcionan juntos para admitir la arquitectura de nodos de SageMaker HyperPod varios controladores (principales) incluyen los siguientes.


**AWS servicios que funcionan en conjunto para dar soporte a la arquitectura de SageMaker HyperPod múltiples nodos controladores**  

| Servicio | Description (Descripción) | 
| --- | --- | 
| IAM (AWS Identity and Access Management) | Define dos roles de IAM para controlar los permisos de acceso: un rol para el grupo de instancias del nodo de computación y otro para el grupo de instancias del nodo de controlador. | 
| Amazon RDS para MariaDB | Almacena los datos contables de Slurm, que contienen los registros de trabajos y los datos de medición. | 
| AWS Secrets Manager | Almacena y administra las credenciales a las que puede acceder Amazon FSx for Lustre. | 
| Amazon FSx para Lustre  | Almacena las configuraciones y el estado de tiempo de ejecución de Slurm. | 
| Amazon VPC | Proporciona un entorno de red aislado en el que se despliegan el HyperPod clúster y sus recursos. | 
| Amazon SNS  | Envía notificaciones a los administradores cuando hay cambios de estado (el controlador de Slurm está ON o OFF) relacionados con el nodo de controlador principal. | 

El HyperPod clúster en sí está formado por nodos controladores (principales y de respaldo) y nodos de cómputo. Los nodos controladores ejecutan los componentes del controlador (SlurmCtld) y de la base de datos (Slurm) de SlurmDBd, que administran y supervisan la carga de trabajo en todos los nodos de procesamiento.

Los nodos del controlador acceden a las configuraciones de Slurm y al estado de ejecución almacenados en el sistema de archivos Amazon FSx for Lustre. Los datos contables de Slurm se almacenan en la base de datos Amazon RDS for MariaDB. AWS Secrets Manager proporciona un acceso seguro a las credenciales de la base de datos para los nodos del controlador.

Si se produce un cambio de estado (el controlador de Slurm está `ON` o `OFF`) en los nodos de controlador de Slurm, Amazon SNS envía notificaciones al administrador para que tome medidas adicionales.

Esta arquitectura de varios nodos de controlador elimina el único punto de error de un único nodo de controlador (principal), permite una recuperación rápida y automática de la conmutación por error y le otorga control sobre la base de datos de contabilidad y las configuraciones de Slurm.

# Configuración de varios nodos controladores para un clúster de SageMaker HyperPod Slurm
<a name="sagemaker-hyperpod-multihead-slurm-setup"></a>

En este tema se explica cómo configurar varios nodos controladores (principales) en un clúster de SageMaker HyperPod Slurm mediante scripts de ciclo de vida. Antes de empezar, revise los requisitos previos que figuran en [Requisitos previos para su uso SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) y familiarícese con los scripts de ciclo de vida de [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md). Las instrucciones de este tema utilizan AWS CLI comandos del entorno Amazon Linux. Tenga en cuenta que las variables de entorno utilizadas en estos comandos están disponibles en la sesión actual, a menos que se conserven de forma explícita.

**Topics**
+ [Aprovisionamiento de recursos mediante pilas CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md)
+ [Creación y asociación de una política de IAM](sagemaker-hyperpod-multihead-slurm-iam.md)
+ [Preparación y carga de los scripts de ciclo de vida](sagemaker-hyperpod-multihead-slurm-scripts.md)
+ [Crear un SageMaker HyperPod clúster](sagemaker-hyperpod-multihead-slurm-create.md)
+ [Notas importantes a tener en cuenta](sagemaker-hyperpod-multihead-slurm-notes.md)
+ [Revisión de la referencia de variables de entorno](sagemaker-hyperpod-multihead-slurm-variables-reference.md)

# Aprovisionamiento de recursos mediante pilas CloudFormation
<a name="sagemaker-hyperpod-multihead-slurm-cfn"></a>

Para configurar varios nodos controladores en un clúster de HyperPod Slurm, aprovisione AWS los recursos a través de dos CloudFormation pilas: y. [Aprovisionamiento de recursos básicos](#sagemaker-hyperpod-multihead-slurm-cfn-basic) [Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador](#sagemaker-hyperpod-multihead-slurm-cfn-multihead)

## Aprovisionamiento de recursos básicos
<a name="sagemaker-hyperpod-multihead-slurm-cfn-basic"></a>

Siga estos pasos para aprovisionar recursos básicos para su clúster de Amazon SageMaker HyperPod Slurm.

1. Descargue el archivo de plantilla [sagemaker-hyperpod.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod.yaml) en su equipo. Este archivo YAML es una CloudFormation plantilla que define los siguientes recursos para crearlos para su clúster de Slurm.
   + Un rol de IAM de ejecución para el grupo de instancias del nodo de computación
   + Un bucket de Amazon S3 para almacenar los scripts de ciclo de vida
   + Subredes públicas y privadas (las subredes privadas tienen acceso a Internet a través de puertas de enlace NAT)
   +  Gateway/NAT Puertas de enlace de Internet
   + Dos grupos de seguridad de Amazon EC2
   + Un FSx volumen de Amazon para almacenar los archivos de configuración

1. Ejecute el siguiente comando CLI para crear una CloudFormation pila denominada`sagemaker-hyperpod`. Defina la zona de disponibilidad (AZ) IDs del clúster en `PrimarySubnetAZ` y`BackupSubnetAZ`. Por ejemplo, *use1-az4* es un ID de zona de disponibilidad para una zona de disponibilidad de la `us-east-1` región. Para obtener más información, consulte [Zona de disponibilidad IDs](https://docs.aws.amazon.com//ram/latest/userguide/working-with-az-ids.html) y[Configuración de clústeres en varios SageMaker HyperPod AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones).

   ```
   aws cloudformation deploy \
   --template-file /path_to_template/sagemaker-hyperpod.yaml \
   --stack-name sagemaker-hyperpod \
   --parameter-overrides PrimarySubnetAZ=use1-az4 BackupSubnetAZ=use1-az1 \
   --capabilities CAPABILITY_IAM
   ```

   Para obtener más información, consulte [implementar](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) desde la AWS Command Line Interface referencia. La creación de la pila puede tardar unos minutos en completarse. Cuando haya acabado, verá lo siguiente en la interfaz de la línea de comandos.

   ```
   Waiting for changeset to be created..
   Waiting for stack create/update to complete
   Successfully created/updated stack - sagemaker-hyperpod
   ```

1. (Opcional) Verifique la pila en la [consola de CloudFormation](https://console.aws.amazon.com/cloudformation/home).
   + En el panel de navegación izquierdo, seleccione **Pila**.
   + En la página **Pila**, busque y seleccione **sagemaker-hyperpod**.
   + Seleccione las pestañas como, por ejemplo, **Recursos** y **Resultados** para revisar los recursos y los resultados.

1. Cree variables de entorno a partir de los resultados de la pila (`sagemaker-hyperpod`). Utilizará los valores de estas variables para [Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador](#sagemaker-hyperpod-multihead-slurm-cfn-multihead).

   ```
   source .env
   PRIMARY_SUBNET=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`PrimaryPrivateSubnet`].OutputValue' --output text)
   BACKUP_SUBNET=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`BackupPrivateSubnet`].OutputValue' --output text)
   EMAIL=$(bash -c 'read -p "INPUT YOUR SNSSubEmailAddress HERE: " && echo $REPLY')
   DB_USER_NAME=$(bash -c 'read -p "INPUT YOUR DB_USER_NAME HERE: " && echo $REPLY')
   SECURITY_GROUP=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`SecurityGroup`].OutputValue' --output text)
   ROOT_BUCKET_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmazonS3BucketName`].OutputValue' --output text)
   SLURM_FSX_DNS_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`FSxLustreFilesystemDNSname`].OutputValue' --output text)
   SLURM_FSX_MOUNT_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`FSxLustreFilesystemMountname`].OutputValue' --output text)
   COMPUTE_NODE_ROLE=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmazonSagemakerClusterExecutionRoleArn`].OutputValue' --output text)
   ```

   Cuando aparezca un mensaje en el que se le pida su dirección de correo electrónico y su nombre de usuario de la base de datos, introduzca valores como los siguientes.

   ```
   INPUT YOUR SNSSubEmailAddress HERE: Email_address_to_receive_SNS_notifications
   INPUT YOUR DB_USER_NAME HERE: Database_user_name_you_define
   ```

   Para comprobar los valores de las variables, utilice el comando `print $variable`.

   ```
   print $REGION
   us-east-1
   ```

## Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador
<a name="sagemaker-hyperpod-multihead-slurm-cfn-multihead"></a>

Siga estos pasos para aprovisionar recursos adicionales para su clúster de Amazon SageMaker HyperPod Slurm con varios nodos controladores.

1. Descargue el archivo de [sagemaker-hyperpod-slurm-multiplantilla -headnode.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod-slurm-multi-headnode.yaml) en su máquina. Este segundo archivo YAML es una CloudFormation plantilla que define los recursos adicionales que se deben crear para el soporte de varios nodos controladores en su clúster de Slurm.
   + Un rol de IAM de ejecución para el grupo de instancias del nodo de controlador
   + Una instancia de Amazon RDS para MariaDB
   + Un tema y una suscripción de Amazon SNS
   + AWS Secrets Manager credenciales de Amazon RDS para MariaDB

1. Ejecute el siguiente comando CLI para crear una CloudFormation pila denominada`sagemaker-hyperpod-mh`. Esta segunda pila utiliza la CloudFormation plantilla para crear AWS recursos adicionales que admitan la arquitectura de varios nodos controladores.

   ```
   aws cloudformation deploy \
   --template-file /path_to_template/slurm-multi-headnode.yaml \
   --stack-name sagemaker-hyperpod-mh \
   --parameter-overrides \
   SlurmDBSecurityGroupId=$SECURITY_GROUP \
   SlurmDBSubnetGroupId1=$PRIMARY_SUBNET \
   SlurmDBSubnetGroupId2=$BACKUP_SUBNET \
   SNSSubEmailAddress=$EMAIL \
   SlurmDBUsername=$DB_USER_NAME \
   --capabilities CAPABILITY_NAMED_IAM
   ```

   Para obtener más información, consulte [implementar](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) desde la AWS Command Line Interface referencia. La creación de la pila puede tardar unos minutos en completarse. Cuando haya acabado, verá lo siguiente en la interfaz de la línea de comandos.

   ```
   Waiting for changeset to be created..
   Waiting for stack create/update to complete
   Successfully created/updated stack - sagemaker-hyperpod-mh
   ```

1. (Opcional) Verifique la pila en la [consola de AWS Cloud Formation](https://console.aws.amazon.com/cloudformation/home).
   + En el panel de navegación izquierdo, seleccione **Pila**.
   + En la página **Stack**, busque y elija **sagemaker-hyperpod-mh**.
   + Seleccione las pestañas como, por ejemplo, **Recursos** y **Resultados** para revisar los recursos y los resultados.

1. Cree variables de entorno a partir de los resultados de la pila (`sagemaker-hyperpod-mh`). Utilizará los valores de estas variables para actualizar el archivo de configuración (`provisioning_parameters.json`) en [Preparación y carga de los scripts de ciclo de vida](sagemaker-hyperpod-multihead-slurm-scripts.md).

   ```
   source .env
   SLURM_DB_ENDPOINT_ADDRESS=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmDBEndpointAddress`].OutputValue' --output text)
   SLURM_DB_SECRET_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmDBSecretArn`].OutputValue' --output text)
   SLURM_EXECUTION_ROLE_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmExecutionRoleArn`].OutputValue' --output text)
   SLURM_SNS_FAILOVER_TOPIC_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmFailOverSNSTopicArn`].OutputValue' --output text)
   ```

# Creación y asociación de una política de IAM
<a name="sagemaker-hyperpod-multihead-slurm-iam"></a>

En esta sección se explica cómo crear una política de IAM y asociarla al rol de ejecución que ha creado en [Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead).

1. Descargue el [ejemplo de política de IAM](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/1.AmazonSageMakerClustersExecutionRolePolicy.json) en su máquina desde el GitHub repositorio.

1. Cree una política de IAM con el ejemplo descargado utilizando el comando de la CLI [create-policy](https://docs.aws.amazon.com//cli/latest/reference/iam/create-policy.html).

   ```
   aws --region us-east-1 iam create-policy \
       --policy-name AmazonSagemakerExecutionPolicy \
       --policy-document file://1.AmazonSageMakerClustersExecutionRolePolicy.json
   ```

   Ejemplo de resultado del comando.

   ```
   {
       "Policy": {
           "PolicyName": "AmazonSagemakerExecutionPolicy",
           "PolicyId": "ANPAXISIWY5UYZM7WJR4W",
           "Arn": "arn:aws:iam::111122223333:policy/AmazonSagemakerExecutionPolicy",
           "Path": "/",
           "DefaultVersionId": "v1",
           "AttachmentCount": 0,
           "PermissionsBoundaryUsageCount": 0,
           "IsAttachable": true,
           "CreateDate": "2025-01-22T20:01:21+00:00",
           "UpdateDate": "2025-01-22T20:01:21+00:00"
       }
   }
   ```

1. Adjunte la política `AmazonSagemakerExecutionPolicy` al rol de ejecución de Slurm en el que creó[Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead), mediante el comando [attach-role-policy](https://docs.aws.amazon.com//cli/latest/reference/iam/attach-role-policy.html)CLI.

   ```
   aws --region us-east-1 iam attach-role-policy \
       --role-name AmazonSagemakerExecutionRole \
       --policy-arn arn:aws:iam::111122223333:policy/AmazonSagemakerExecutionPolicy
   ```

   Este comando no proporciona ninguna salida.

   (Opcional) Si usa variables de entorno, aquí mostramos algunos comandos de ejemplo.
   + Cómo obtener el nombre del rol y el nombre de la política 

     ```
     POLICY=$(aws --region $REGION iam list-policies --query 'Policies[?PolicyName==AmazonSagemakerExecutionPolicy].Arn' --output text)
     ROLENAME=$(aws --region $REGION iam list-roles --query "Roles[?Arn=='${SLURM_EXECUTION_ROLE_ARN}'].RoleName" —output text)
     ```
   + Asociación de la política 

     ```
     aws  --region us-east-1 iam attach-role-policy \
          --role-name $ROLENAME --policy-arn $POLICY
     ```

Para obtener más información, consulte [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

# Preparación y carga de los scripts de ciclo de vida
<a name="sagemaker-hyperpod-multihead-slurm-scripts"></a>

Tras crear todos los recursos necesarios, tendrá que configurar los [scripts del ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) de vida del clúster. SageMaker HyperPod Estos [scripts de ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) de vida proporcionan una [configuración básica](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) que puede usar para crear un clúster de HyperPod Slurm básico.

## Preparación de los scripts de ciclo de vida
<a name="sagemaker-hyperpod-multihead-slurm-prepare-scripts"></a>

Siga estos pasos para obtener los scripts de ciclo de vida.

1. Descargue los [scripts del ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) de vida del GitHub repositorio a su máquina.

1. Cargue los [scripts del ciclo de vida](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) en el bucket de Amazon S3 en [Aprovisionamiento de recursos básicos](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-basic) con el comando de la CLI [cp](https://docs.aws.amazon.com//cli/latest/reference/s3/cp.html).

   ```
   aws s3 cp --recursive LifeCycleScripts/base-config s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config
   ```

## Creación del archivo de configuración
<a name="sagemaker-hyperpod-multihead-slurm-update-config-file"></a>

Siga estos pasos para crear el archivo de configuración y cargarlo en el mismo bucket de Amazon S3 en el que almacena los scripts de ciclo de vida.

1. Cree un archivo de configuración denominado `provisioning_parameters.json` con el siguiente contenido. Tenga en cuenta que `slurm_sns_arn` es opcional. Si no se proporciona, no HyperPod configurará las notificaciones de Amazon SNS.

   ```
   cat <<EOF > /tmp/provisioning_parameters.json
   {
     "version": "1.0.0",
     "workload_manager": "slurm",
     "controller_group": "$CONTOLLER_IG_NAME",
     "login_group": "my-login-group",
     "worker_groups": [
       {
         "instance_group_name": "$COMPUTE_IG_NAME",
         "partition_name": "dev"
       }
     ],
     "fsx_dns_name": "$SLURM_FSX_DNS_NAME",
     "fsx_mountname": "$SLURM_FSX_MOUNT_NAME",
     "slurm_configurations": {
       "slurm_database_secret_arn": "$SLURM_DB_SECRET_ARN",
       "slurm_database_endpoint": "$SLURM_DB_ENDPOINT_ADDRESS",
       "slurm_shared_directory": "/fsx",
       "slurm_database_user": "$DB_USER_NAME",
       "slurm_sns_arn": "$SLURM_SNS_FAILOVER_TOPIC_ARN"
     }
   }
   EOF
   ```

1. Cargue el archivo `provisioning_parameters.json` en el mismo bucket de Amazon S3 en el que se almacenan los scripts de ciclo de vida.

   ```
   aws s3 cp /tmp/provisioning_parameters.json s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config/provisioning_parameters.json
   ```
**nota**  
Si utiliza una configuración basada en API, el `provisioning_parameters.json` archivo no es obligatorio. Con la configuración basada en API, usted define los tipos de nodos, las particiones y el FSx montaje de Slurm directamente en la carga útil de la API. CreateCluster Para obtener más información, consulte [Cómo empezar](smcluster-getting-started-slurm-cli.md) a usar el. SageMaker HyperPod AWS CLI

## Verificación de los archivos en el bucket de Amazon S3
<a name="sagemaker-hyperpod-multihead-slurm-verify-s3"></a>

Tras cargar todos los scripts de ciclo de vida y el archivo `provisioning_parameters.json`, el bucket de Amazon S3 debería tener el siguiente aspecto.

![\[Imagen que muestra todos los scripts de ciclo de vida cargados en el bucket de Amazon S3 en la consola de Amazon Simple Storage Service.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-scripts-s3.png)


Para obtener más información, consulte [Comenzar con los scripts de ciclo de vida básicos proporcionados por HyperPod](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.html).

# Crear un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-multihead-slurm-create"></a>

Tras configurar todos los recursos necesarios y cargar los scripts en el bucket de Amazon S3, ya puede crear un clúster.

1. Para crear un clúster, ejecute el [https://docs.aws.amazon.com//cli/latest/reference/sagemaker/create-cluster.html](https://docs.aws.amazon.com//cli/latest/reference/sagemaker/create-cluster.html) AWS CLI comando. El proceso puede tardar 15 minutos en completarse.

   ```
   aws --region $REGION sagemaker create-cluster \
       --cluster-name $HP_CLUSTER_NAME \
       --vpc-config '{
           "SecurityGroupIds":["'$SECURITY_GROUP'"],
           "Subnets":["'$PRIMARY_SUBNET'", "'$BACKUP_SUBNET'"]
       }' \
       --instance-groups '[{                  
       "InstanceGroupName": "'$CONTOLLER_IG_NAME'",
       "InstanceType": "ml.t3.medium",
       "InstanceCount": 2,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://'$BUCKET_NAME'",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "'$SLURM_EXECUTION_ROLE_ARN'",
       "ThreadsPerCore": 1
   },
   {
       "InstanceGroupName": "'$COMPUTE_IG_NAME'",          
       "InstanceType": "ml.c5.xlarge",
       "InstanceCount": 2,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://'$BUCKET_NAME'",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "'$COMPUTE_NODE_ROLE'",
       "ThreadsPerCore": 1
   }]'
   ```

   Una vez ejecutado correctamente, el comando devuelve el ARN del clúster de la forma siguiente.

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-east-1:111122223333:cluster/cluster_id"
   }
   ```

1. (Opcional) Para comprobar el estado del clúster, puede utilizar la consola SageMaker AI ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)). En el menú de navegación de la izquierda, selecciona **HyperPod Clústeres** y, a continuación, **Gestión de clústeres**. Elija el nombre del clúster para abrir la página de detalles del clúster. Si el clúster se ha creado correctamente, verá que el estado del clúster es **InService**.  
![\[Imagen que muestra un clúster de HyperPod Slurm con varios nodos de controlador en la consola Amazon SageMaker AI.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-cluster.png)

# Notas importantes a tener en cuenta
<a name="sagemaker-hyperpod-multihead-slurm-notes"></a>

En esta sección se proporcionan varias notas importantes que pueden resultarle útiles. 

1. Para migrar a un clúster de Slurm con varios controladores, complete estos pasos.

   1. Siga las instrucciones de [Aprovisionamiento de recursos mediante pilas CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md) para aprovisionar todos los recursos necesarios.

   1. Siga las instrucciones de [Preparación y carga de los scripts de ciclo de vida](sagemaker-hyperpod-multihead-slurm-scripts.md) para cargar los scripts de ciclo de vida actualizados. Al actualizar el archivo `provisioning_parameters.json`, mueva el grupo de controladores existente a la sección `worker_groups` y añada un nuevo nombre de grupo de controladores en la sección `controller_group`.

   1. Ejecute la llamada a la API [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para crear un nuevo grupo de controladores y conserve los grupos de instancias de computación y el grupo de controladores originales.

1. Para reducir verticalmente el número de nodos de controlador, utilice el comando de la CLI [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html). Para cada grupo de instancias de controlador, la cantidad mínima de nodos de controlador que puede reducir verticalmente es 1. Esto significa que no puede reducir verticalmente el número de nodos de controlador a 0.
**importante**  
En el caso de los clústeres creados antes del 24 de enero de 2025, primero debe actualizar el software del clúster mediante la [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API antes de ejecutar el comando [CLI update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html).

   El siguiente es un ejemplo de comando de la CLI para reducir verticalmente el número de nodos de controlador.

   ```
   aws sagemaker update-cluster \
       --cluster-name my_cluster \
       --instance-groups '[{                  
       "InstanceGroupName": "controller_ig_name",
       "InstanceType": "ml.t3.medium",
       "InstanceCount": 3,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://amzn-s3-demo-bucket1",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "slurm_execution_role_arn",
       "ThreadsPerCore": 1
   },
   {
       "InstanceGroupName": "compute-ig_name",       
       "InstanceType": "ml.c5.xlarge",
       "InstanceCount": 2,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://amzn-s3-demo-bucket1",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "compute_node_role_arn",
       "ThreadsPerCore": 1
   }]'
   ```

1. Para eliminar por lotes los nodos de la controladora, utilice el comando [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)CLI. Para cada grupo de instancias de controlador, debe conservar al menos un nodo de controlador. Si quiere eliminar por lotes todos los nodos de controlador, la operación de la API no funcionará.
**importante**  
En el caso de los clústeres creados antes del 24 de enero de 2025, primero debe actualizar el software del clúster mediante la [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API antes de ejecutar el comando [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)CLI.

   El siguiente es un ejemplo de comando de la CLI para eliminar por lotes los nodos de controlador.

   ```
   aws sagemaker batch-delete-cluster-nodes --cluster-name my_cluster --node-ids instance_ids_to_delete
   ```

1. Para solucionar los problemas de creación de clústeres, consulta el mensaje de error que aparece en la página de detalles del clúster de tu consola de SageMaker IA. También puedes usar CloudWatch los registros para solucionar problemas de creación de clústeres. En la CloudWatch consola, selecciona **Grupos de registros**. A continuación, busque `clusters` para ver la lista de grupos de registros relacionados con la creación del clúster.  
![\[Imagen que muestra los grupos de registros del SageMaker HyperPod clúster de Amazon en la CloudWatch consola.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-logs.png)

# Revisión de la referencia de variables de entorno
<a name="sagemaker-hyperpod-multihead-slurm-variables-reference"></a>

Las siguientes variables de entorno se definen y utilizan en el tutorial de [Configuración de varios nodos controladores para un clúster de SageMaker HyperPod Slurm](sagemaker-hyperpod-multihead-slurm-setup.md). Estas variables de entorno solo están disponibles en la sesión actual, a menos que se conserven de forma explícita. Se definen con la sintaxis de `$variable_name`. Las variables con key/value pares representan recursos AWS creados por el usuario, mientras que las variables sin claves están definidas por el usuario.


**Referencia de las variables de entorno**  

| Variable | Description (Descripción) | 
| --- | --- | 
| \$1BACKUP\$1SUBNET |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1COMPUTE\$1IG\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1COMPUTE\$1NODE\$1ROLE |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1CONTOLLER\$1IG\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1DB\$1USER\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1EMAIL |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1PRIMARY\$1SUBNET |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1POLICY |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1REGION |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1ROOT\$1BUCKET\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SECURITY\$1GROUP |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1DB\$1ENDPOINT\$1ADDRESS |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1DB\$1SECRET\$1ARN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1EXECUTION\$1ROLE\$1ARN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1FSX\$1DNS\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1FSX\$1MOUNT\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1SNS\$1FAILOVER\$1TOPIC\$1ARN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 

# Trabajos en clústeres SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm"></a>

En los siguientes temas, se proporcionan procedimientos y ejemplos para acceder a los nodos de procesamiento y ejecutar cargas de trabajo de aprendizaje automático en clústeres SageMaker HyperPod aprovisionados. En función de cómo haya configurado el entorno en el HyperPod clúster, hay muchas formas de ejecutar cargas de trabajo de aprendizaje automático en los clústeres. HyperPod En el repositorio [Awsome Distributed](https://github.com/aws-samples/awsome-distributed-training/) Training también se proporcionan ejemplos de cómo ejecutar cargas de trabajo de aprendizaje automático en HyperPod clústeres. GitHub En los siguientes temas, se explica cómo iniciar sesión en los HyperPod clústeres aprovisionados y se puede empezar a ejecutar cargas de trabajo de aprendizaje automático de muestra.

**sugerencia**  
[Para encontrar soluciones y ejemplos prácticos, consulte también el SageMaker HyperPod taller.](https://catalog.workshops.aws/sagemaker-hyperpod)

**Topics**
+ [Acceder a los nodos SageMaker HyperPod de su clúster](sagemaker-hyperpod-run-jobs-slurm-access-nodes.md)
+ [Programar una tarea de Slurm en un clúster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm-schedule-slurm-job.md)
+ [Ejecutar contenedores de Docker en un nodo de cómputo de Slurm en HyperPod](sagemaker-hyperpod-run-jobs-slurm-docker.md)
+ [Ejecutar cargas de trabajo de formación distribuidas con Slurm activado HyperPod](sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload.md)

# Acceder a los nodos SageMaker HyperPod de su clúster
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes"></a>

Puede acceder al **InService**clúster a través de AWS Systems Manager (SSM) ejecutando el AWS CLI comando `aws ssm start-session` con el nombre de host del SageMaker HyperPod clúster en el formato de`sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]`. Puedes recuperar el ID del clúster, el ID de instancia y el nombre del grupo de instancias desde la [SageMaker HyperPod consola](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters) o ejecutando `describe-cluster` y `list-cluster-nodes` desde los [AWS CLI comandos de SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes). Por ejemplo, si el ID del clúster es`aa11bbbbb222`, el nombre del nodo del clúster es `controller-group` y el ID del nodo del clúster es `i-111222333444555aa`, el comando `start-session` de SSM debería ser el siguiente.

**nota**  
Al conceder a los usuarios acceso a los nodos del HyperPod clúster, pueden instalar y utilizar software administrado por los usuarios en los nodos. Asegúrese de cumplir con el principio de conceder privilegios mínimos a los usuarios.  
Si no lo ha configurado AWS Systems Manager, siga las instrucciones que se proporcionan en[Configurar AWS Systems Manager y ejecutar como para el control de acceso de los usuarios del clúster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm).

```
$ aws ssm start-session \
    --target sagemaker-cluster:aa11bbbbb222_controller-group-i-111222333444555aa \
    --region us-west-2
Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
```

Tenga en cuenta que esto lo conecta inicialmente como usuario raíz. Antes de ejecutar trabajos, cambie al usuario `ubuntu` ejecutando el siguiente comando.

```
root@ip-111-22-333-444:/usr/bin# sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
```

Para obtener una configuración avanzada para el uso práctico de HyperPod los clústeres, consulte los siguientes temas.

**Topics**
+ [Consejos adicionales para acceder a los nodos SageMaker HyperPod del clúster](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips)
+ [Configure un entorno multiusuario a través del espacio FSx compartido de Amazon](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-fxs-shared-space)
+ [Configure un entorno multiusuario integrando los HyperPod clústeres con Active Directory](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-active-directory)

## Consejos adicionales para acceder a los nodos SageMaker HyperPod del clúster
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips"></a>

**Utilice el `easy-ssh.sh` script proporcionado por HyperPod para simplificar el proceso de conexión**

Para convertir el proceso anterior en un comando de una sola línea, el HyperPod equipo proporciona el [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh)script que recupera la información del clúster, la agrega en el comando SSM y se conecta al nodo de cómputo. No es necesario buscar manualmente la información de HyperPod clúster necesaria, ya que este script se ejecuta `describe-cluster` y `list-cluster-nodes` ordena y analiza la información necesaria para completar el comando SSM. En los siguientes comandos de ejemplo, se muestra cómo ejecutar el script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh). Si se ejecuta correctamente, se conectará al clúster como usuario raíz. También imprime un fragmento de código para configurar SSH añadiendo el HyperPod clúster como un host remoto a través de un proxy SSM. Al configurar SSH, puede conectar su entorno de desarrollo local, como Visual Studio Code, con el clúster. HyperPod 

```
$ chmod +x easy-ssh.sh
$ ./easy-ssh.sh -c <node-group> <cluster-name>
Cluster id: <cluster_id>
Instance id: <instance_id>
Node Group: <node-group>
Add the following to your ~/.ssh/config to easily connect:

$ cat <<EOF >> ~/.ssh/config
Host <cluster-name>
  User ubuntu
  ProxyCommand sh -c "aws ssm start-session  --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id> --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
EOF

Add your ssh keypair and then you can do:

$ ssh <cluster-name>

aws ssm start-session --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id>

Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
```

Tenga en cuenta que esto lo conecta inicialmente como usuario raíz. Antes de ejecutar trabajos, cambie al usuario `ubuntu` ejecutando el siguiente comando.

```
root@ip-111-22-333-444:/usr/bin# sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
```

**Configúrelo para facilitar el acceso con SSH mediante el uso del nodo de HyperPod cómputo como host remoto**

Para simplificar aún más el acceso al nodo de cómputo mediante SSH desde una máquina local, el `easy-ssh.sh` script genera un fragmento de código que muestra la configuración del HyperPod clúster como un host remoto, como se muestra en la sección anterior. El fragmento de código se genera automáticamente para que pueda añadirlo directamente al archivo `~/.ssh/config` de su dispositivo local. El siguiente procedimiento muestra cómo configurarlo para facilitar el acceso mediante SSH a través del proxy SSM, de forma que usted o los usuarios del clúster puedan conectarse directamente `ssh <cluster-name>` al nodo del clúster. HyperPod 

1. En su dispositivo local, añada al archivo el nodo de HyperPod cómputo con un nombre de usuario como host remoto. `~/.ssh/config` El siguiente comando muestra cómo añadir el fragmento de código generado automáticamente desde el script `easy-ssh.sh` al archivo `~/.ssh/config`. Asegúrese de copiarlo de la salida generada automáticamente del script `easy-ssh.sh` que contiene la información de clúster correcta.

   ```
   $ cat <<EOF >> ~/.ssh/config
   Host <cluster-name>
     User ubuntu
     ProxyCommand sh -c "aws ssm start-session  --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id> --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
   EOF
   ```

1. En el nodo del HyperPod clúster, añade la clave pública del dispositivo local al `~/.ssh/authorized_keys` archivo del nodo del HyperPod clúster.

   1. Imprima el archivo de clave pública en su máquina local.

      ```
      $ cat ~/.ssh/id_rsa.pub
      ```

      Esto debería devolver la clave. Copie la salida de este comando. 

      (Opcional) Si no dispone de una clave pública, cree una mediante el siguiente comando.

      ```
      $ ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N ""
      ```

   1. Conéctese al nodo del clúster y cambie al usuario para añadir la clave. El siguiente comando es un ejemplo de acceso como usuario `ubuntu`. Sustituya `ubuntu` por el nombre de usuario para el que desee configurar el acceso fácil con SSH.

      ```
      $ ./easy-ssh.sh -c <node-group> <cluster-name>
      $ sudo su - ubuntu
      ubuntu@ip-111-22-333-444:/usr/bin#
      ```

   1. Abra el archivo `~/.ssh/authorized_keys` y añada la clave pública al final del archivo.

      ```
      ubuntu@ip-111-22-333-444:/usr/bin# vim ~/.ssh/authorized_keys
      ```

Una vez finalizada la configuración, puede conectarse al nodo del HyperPod clúster como usuario ejecutando un comando SSH simplificado de la siguiente manera.

```
$ ssh <cluster-name>
ubuntu@ip-111-22-333-444:/usr/bin#
```

Además, puede usar el host para el desarrollo remoto desde un IDE en su dispositivo local, como [Visual Studio Code Remote - SSH](https://code.visualstudio.com/docs/remote/ssh).

## Configure un entorno multiusuario a través del espacio FSx compartido de Amazon
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-fxs-shared-space"></a>

Puede utilizar el espacio FSx compartido de Amazon para gestionar un entorno multiusuario en un clúster de Slurm. SageMaker HyperPod Si configuró su clúster de Slurm con Amazon FSx durante la creación del HyperPod clúster, esta es una buena opción para configurar el espacio de trabajo para los usuarios del clúster. Cree un nuevo usuario y configure el directorio principal del usuario en el sistema de archivos FSx compartidos de Amazon.

**sugerencia**  
Para permitir que los usuarios accedan al clúster con su nombre de usuario y sus directorios dedicados, debe asociarlos además a roles o usuarios de IAM etiquetándolos de la forma que se indica en la **Opción 2** del paso 5 del procedimiento **Activación del soporte Ejecutar como para nodos administrados de Linux y macOS** que se incluye en [Activación del soporte Ejecutar como para nodos administrados de Linux y macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html) de la Guía del usuario de AWS Systems Manager . Véase también [Configurar AWS Systems Manager y ejecutar como para el control de acceso de los usuarios del clúster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm).

**Para configurar un entorno multiusuario mientras se crea un clúster de Slurm, en SageMaker HyperPod**

El equipo SageMaker HyperPod de servicio proporciona un script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh)como parte de los ejemplos de scripts básicos del ciclo de vida. 

1. Prepare un archivo de texto con el nombre `shared_users.txt` que debe crear con el siguiente formato. La primera columna es para los nombres de usuario, la segunda columna es para el usuario IDs único y la tercera columna es para los directorios de usuarios en el espacio FSx compartido de Amazon.

   ```
   username1,uid1,/fsx/username1
   username2,uid2,/fsx/username2
   ...
   ```

1. Asegúrese de cargar los [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh)archivos `shared_users.txt` y en el bucket de S3 para los scripts HyperPod del ciclo de vida. Mientras se está creando o actualizando el clúster, o durante la actualización del software del clúster, el [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh) lee en el `shared_users.txt` y configura los directorios de usuario correctamente.

**Para crear nuevos usuarios y añadirlos a un clúster de Slurm existente que se ejecute en SageMaker HyperPod **

1. En el nodo principal, ejecute el siguiente comando para guardar un script que ayude a crear un usuario. Asegúrese de ejecutarlo con permisos sudo.

   ```
   $ cat > create-user.sh << EOL
   #!/bin/bash
   
   set -x
   
   # Prompt user to get the new user name.
   read -p "Enter the new user name, i.e. 'sean': 
   " USER
   
   # create home directory as /fsx/<user>
   # Create the new user on the head node
   sudo useradd \$USER -m -d /fsx/\$USER --shell /bin/bash;
   user_id=\$(id -u \$USER)
   
   # add user to docker group
   sudo usermod -aG docker \${USER}
   
   # setup SSH Keypair
   sudo -u \$USER ssh-keygen -t rsa -q -f "/fsx/\$USER/.ssh/id_rsa" -N ""
   sudo -u \$USER cat /fsx/\$USER/.ssh/id_rsa.pub | sudo -u \$USER tee /fsx/\$USER/.ssh/authorized_keys
   
   # add user to compute nodes
   read -p "Number of compute nodes in your cluster, i.e. 8: 
   " NUM_NODES
   srun -N \$NUM_NODES sudo useradd -u \$user_id \$USER -d /fsx/\$USER --shell /bin/bash;
   
   # add them as a sudoer
   read -p "Do you want this user to be a sudoer? (y/N):
   " SUDO
   if [ "\$SUDO" = "y" ]; then
           sudo usermod -aG sudo \$USER
           sudo srun -N \$NUM_NODES sudo usermod -aG sudo \$USER
           echo -e "If you haven't already you'll need to run:\n\nsudo visudo /etc/sudoers\n\nChange the line:\n\n%sudo   ALL=(ALL:ALL) ALL\n\nTo\n\n%sudo   ALL=(ALL:ALL) NOPASSWD: ALL\n\nOn each node."
   fi
   EOL
   ```

1. Ejecute el script con el siguiente comando. Se le pedirá que añada el nombre de un usuario y el número de nodos de computación a los que desea permitir que acceda el usuario.

   ```
   $ bash create-user.sh
   ```

1. Pruebe el usuario ejecutando los siguientes comandos. 

   ```
   $ sudo su - <user> && ssh $(srun hostname)
   ```

1. Añada la información del usuario al archivo `shared_users.txt` para que el usuario se cree en todos los nodos de computación o clústeres nuevos.

## Configure un entorno multiusuario integrando los HyperPod clústeres con Active Directory
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-active-directory"></a>

En casos prácticos, los HyperPod clústeres suelen ser utilizados por varios usuarios: investigadores de aprendizaje automático (ML), ingenieros de software, científicos de datos y administradores de clústeres. Cada uno de ellos edita sus propios archivos y ejecuta sus propios trabajos sin que ello afecte al trabajo de los demás. Para configurar un entorno multiusuario, utilice el mecanismo de usuarios y grupos de Linux para crear de forma estática varios usuarios en cada instancia mediante scripts de ciclo de vida. Sin embargo, el inconveniente de este enfoque es que es necesario duplicar la configuración de usuario y grupo en varias instancias del clúster para mantener una configuración uniforme en todas las instancias al realizar actualizaciones, como añadir, editar y eliminar usuarios.

Para solucionar este problema, puede utilizar el [Protocolo ligero de acceso a directorios (LDAP)](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) y el [LDAP over TLS/SSL (LDAPS)](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) para integrarse con un servicio de directorio como Directory [AWS Service para](https://aws.amazon.com/directoryservice/) Microsoft Active Directory. Para obtener más información sobre cómo configurar Active Directory y un entorno multiusuario en un HyperPod clúster, consulte la entrada del blog [Integrar HyperPod clústeres con Active Directory para iniciar sesión con](https://aws.amazon.com/blogs/machine-learning/integrate-hyperpod-clusters-with-active-directory-for-seamless-multi-user-login/) varios usuarios sin problemas.

# Programar una tarea de Slurm en un clúster SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-schedule-slurm-job"></a>

Puede iniciar trabajos de entrenamiento utilizando los comandos `sbatch` o `srun` estándar de Slurm. Por ejemplo, para lanzar un trabajo de formación de 8 nodos, puede ejecutar la formación de `srun -N 8 --exclusive train.sh` SageMaker HyperPod soporte en una variedad de entornos, incluidos`conda`, `venv``docker`, y`enroot`. Puede configurar un entorno de aprendizaje automático ejecutando scripts de ciclo de vida en sus SageMaker HyperPod clústeres. También tiene la opción de adjuntar un sistema de archivos compartidos, como Amazon FSx, que también se puede utilizar como entorno virtual.

El siguiente ejemplo muestra cómo ejecutar un trabajo para entrenar a Llama-2 con la técnica de paralelismo de datos totalmente fragmentado (FSDP) en un clúster SageMaker HyperPod con un sistema de archivos compartidos de Amazon. FSx [También puedes encontrar más ejemplos en el repositorio Awsome Distributed Training. GitHub ](https://github.com/aws-samples/awsome-distributed-training/)

**sugerencia**  
Todos los SageMaker HyperPod ejemplos están disponibles en la `3.test_cases` carpeta del repositorio de [Awsome Distributed Training GitHub ](https://github.com/aws-samples/awsome-distributed-training/).

1. Clona el [ GitHub repositorio de Awsome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/) y copia los ejemplos de trabajos de formación en tu sistema de FSx archivos de Amazon. 

   ```
   $ TRAINING_DIR=/fsx/users/my-user/fsdp
   $ git clone https://github.com/aws-samples/awsome-distributed-training/
   ```

1. Ejecute el script [https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/10.FSDP/0.create_conda_env.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/10.FSDP/0.create_conda_env.sh). Esto crea un `conda` entorno en el sistema de FSx archivos de Amazon. Asegúrese de que todos los nodos del clúster puedan acceder al sistema de archivos.

1. Cree el entorno virtual de Conda iniciando un trabajo de Slurm de un solo nodo de la siguiente manera.

   ```
   $ srun -N 1 /path_to/create_conda_env.sh
   ```

1. Una vez creado el entorno, puede iniciar un trabajo de entrenamiento apuntando a la ruta del entorno en el volumen compartido. Puede iniciar trabajos de entrenamiento de un solo nodo y de varios nodos con la misma configuración. Para iniciar un trabajo, cree un script de inicio de trabajos (también llamado script de punto de entrada) de la siguiente manera.

   ```
   #!/usr/bin/env bash
   set -ex
   
   ENV_PATH=/fsx/users/my_user/pytorch_env
   TORCHRUN=$ENV_PATH/bin/torchrun
   TRAINING_SCRIPT=/fsx/users/my_user/pt_train.py
   
   WORLD_SIZE_JOB=$SLURM_NTASKS
   RANK_NODE=$SLURM_NODEID
   PROC_PER_NODE=8
   MASTER_ADDR=(`scontrol show hostnames \$SLURM_JOB_NODELIST | head -n 1`)
   MASTER_PORT=$(expr 10000 + $(echo -n $SLURM_JOBID | tail -c 4))
   
   DIST_ARGS="--nproc_per_node=$PROC_PER_NODE \
              --nnodes=$WORLD_SIZE_JOB \
              --node_rank=$RANK_NODE \
              --master_addr=$MASTER_ADDR \
              --master_port=$MASTER_PORT \
             "
             
   $TORCHRUN $DIST_ARGS $TRAINING_SCRIPT
   ```
**sugerencia**  
Si desea que su trabajo de formación sea más resistente a los fallos de hardware mediante la capacidad de reanudación automática de SageMaker HyperPod, debe configurar correctamente la variable de entorno `MASTER_ADDR` en el script de punto de entrada. Para obtener más información, consulte [Recuperación automática de nodos y reanudación automática](sagemaker-hyperpod-resiliency-slurm-auto-resume.md).

   En este tutorial, se presupone que este script se guarda como `/fsx/users/my_user/train.sh`.

1. Con este script en el volumen compartido en `/fsx/users/my_user/train.sh`, ejecute el siguiente comando `srun` para programar el trabajo de Slurm.

   ```
   $ cd /fsx/users/my_user/
   $ srun -N 8 train.sh
   ```

# Ejecutar contenedores de Docker en un nodo de cómputo de Slurm en HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-docker"></a>

[https://github.com/NVIDIA/enroot](https://github.com/NVIDIA/enroot) El paquete de Enroot ayuda a convertir las imágenes de Docker en un tiempo de ejecución que Slurm pueda entender, mientras que el de Pyxis permite programar el tiempo de ejecución como un trabajo de Slurm mediante un comando `srun`, `srun --container-image=docker/image:tag`. 

**sugerencia**  
Los paquetes de Docker, Enroot y Pyxis se deben instalar durante la creación del clúster como parte de la ejecución de los scripts de ciclo de vida, tal y como se indica en [Los scripts de ciclo de vida básicos proporcionados por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md). Utilice los [scripts básicos del ciclo de vida](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) proporcionados por el equipo de HyperPod servicio al crear un clúster. HyperPod Estos scripts básicos están configurados para instalar los paquetes de forma predeterminada. En el script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py), está la clase `Config` con el parámetro de tipo booleano para instalar los paquetes establecidos en `True` (`enable_docker_enroot_pyxis=True`). Esto se llama y se analiza en el script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py), que llama a los scripts `install_docker.sh` y `install_enroot_pyxis.sh` desde la carpeta [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils). Los scripts de instalación es donde se producen las instalaciones reales de los paquetes. Además, los scripts de instalación identifican si pueden detectar las rutas de NVMe almacenamiento desde las instancias en las que se ejecutan y configuran las rutas raíz para Docker y Enroot. `/opt/dlami/nvme` El volumen raíz predeterminado de cualquier instancia nueva se monta `/tmp` solo con un volumen EBS de 100 GB, que se agota si la carga de trabajo que planea ejecutar implica la formación de contenedores Docker LLMs y, por lo tanto, de gran tamaño. Si utilizas familias de instancias como P y G con NVMe almacenamiento local, asegúrate de utilizar el NVMe almacenamiento adjunto y de que los scripts de instalación se encargan de los procesos de configuración. `/opt/dlami/nvme`

**Comprobación de si las rutas raíz están configuradas correctamente**

En un nodo de cómputo de tu clúster de Slurm SageMaker HyperPod, ejecuta los siguientes comandos para asegurarte de que el script de ciclo de vida ha funcionado correctamente y que el volumen raíz de cada nodo está configurado en ese nivel. `/opt/dlami/nvme/*` En los siguientes comandos, se muestran ejemplos de cómo comprobar la ruta de tiempo de ejecución de Enroot y la ruta raíz de datos para 8 nodos de computación de un clúster de Slurm.

```
$ srun -N 8 cat /etc/enroot/enroot.conf | grep "ENROOT_RUNTIME_PATH"
ENROOT_RUNTIME_PATH        /opt/dlami/nvme/tmp/enroot/user-$(id -u)
... // The same or similar lines repeat 7 times
```

```
$ srun -N 8 cat /etc/docker/daemon.json
{
    "data-root": "/opt/dlami/nvme/docker/data-root"
}
... // The same or similar lines repeat 7 times
```

Una vez que confirme que las rutas de tiempo de ejecución están configuradas correctamente en `/opt/dlami/nvme/*`, podrá crear y ejecutar contenedores de Docker con Enroot y Pyxis.

**Comprobación de Docker con Slurm**

1. En el nodo de computación, pruebe los siguientes comandos para comprobar si Docker y Enroot están instalados correctamente.

   ```
   $ docker --help
   $ enroot --help
   ```

1. Compruebe si Pyxis y Enroot se han instalado correctamente ejecutando una de las imágenes de [NVIDIA CUDA Ubuntu](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda).

   ```
   $ srun --container-image=nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY nvidia-smi
   pyxis: importing docker image: nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   pyxis: imported docker image: nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   DAY MMM DD HH:MM:SS YYYY
   +-----------------------------------------------------------------------------+
   | NVIDIA-SMI 470.141.03   Driver Version: 470.141.03   CUDA Version: XX.YY    |
   |-------------------------------+----------------------+----------------------+
   | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
   | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
   |                               |                      |               MIG M. |
   |===============================+======================+======================|
   |   0  Tesla T4            Off  | 00000000:00:1E.0 Off |                    0 |
   | N/A   40C    P0    27W /  70W |      0MiB / 15109MiB |      0%      Default |
   |                               |                      |                  N/A |
   +-------------------------------+----------------------+----------------------+
   
   +-----------------------------------------------------------------------------+
   | Processes:                                                                  |
   |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
   |        ID   ID                                                   Usage      |
   |=============================================================================|
   |  No running processes found                                                 |
   +-----------------------------------------------------------------------------+
   ```

   También puede probarlo creando un script y ejecutando un comando `sbatch` de la siguiente manera.

   ```
   $ cat <<EOF >> container-test.sh
   #!/bin/bash
   #SBATCH --container-image=nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   nvidia-smi
   EOF
   
   $ sbatch container-test.sh
   pyxis: importing docker image: nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   pyxis: imported docker image: nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   DAY MMM DD HH:MM:SS YYYY
   +-----------------------------------------------------------------------------+
   | NVIDIA-SMI 470.141.03   Driver Version: 470.141.03   CUDA Version: XX.YY    |
   |-------------------------------+----------------------+----------------------+
   | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
   | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
   |                               |                      |               MIG M. |
   |===============================+======================+======================|
   |   0  Tesla T4            Off  | 00000000:00:1E.0 Off |                    0 |
   | N/A   40C    P0    27W /  70W |      0MiB / 15109MiB |      0%      Default |
   |                               |                      |                  N/A |
   +-------------------------------+----------------------+----------------------+
   
   +-----------------------------------------------------------------------------+
   | Processes:                                                                  |
   |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
   |        ID   ID                                                   Usage      |
   |=============================================================================|
   |  No running processes found                                                 |
   +-----------------------------------------------------------------------------+
   ```

**Ejecución de un trabajo de prueba de Slurm con Docker**

Cuando hayas terminado de configurar Slurm con Docker, puedes usar cualquier imagen de Docker prediseñada y ejecutarla con Slurm on. SageMaker HyperPod El siguiente es un ejemplo de caso de uso que explica cómo realizar un trabajo de formación con Docker y Slurm on. SageMaker HyperPod Muestra un ejemplo de trabajo de entrenamiento en paralelo del modelo Llama 2 con la biblioteca de paralelismo de modelos SageMaker AI (SMP).

1. Si quieres utilizar una de las imágenes de ECR prediseñadas distribuidas por SageMaker AI o DLC, asegúrate de conceder a tu HyperPod clúster los permisos necesarios para extraer imágenes de ECR a través de ella. [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) Si utiliza una imagen de Docker propia o de código abierto, puede omitir este paso. Añada los siguientes permisos al [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod). En este tutorial, utilizamos la [imagen de Docker de SMP](distributed-model-parallel-support-v2.md#distributed-model-parallel-supported-frameworks-v2) empaquetada previamente con la biblioteca de SMP.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ecr:BatchCheckLayerAvailability",
                   "ecr:BatchGetImage",
                   "ecr-public:*",
                   "ecr:GetDownloadUrlForLayer",
                   "ecr:GetAuthorizationToken",
                   "sts:*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. En el nodo de computación, clone el repositorio y vaya a la carpeta que contiene los scripts de ejemplo de entrenamiento con SMP.

   ```
   $ git clone https://github.com/aws-samples/awsome-distributed-training/
   $ cd awsome-distributed-training/3.test_cases/17.SM-modelparallelv2
   ```

1. En este tutorial, ejecute el script de ejemplo [https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/17.SM-modelparallelv2/docker_build.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/17.SM-modelparallelv2/docker_build.sh) que extrae la imagen de Docker de SMP, crea el contenedor de Docker y lo ejecuta como un tiempo de ejecución de Enroot. Puede modificarlo como desee.

   ```
   $ cat docker_build.sh
   #!/usr/bin/env bash
   
   region=us-west-2
   dlc_account_id=658645717510
   aws ecr get-login-password --region $region | docker login --username AWS --password-stdin $dlc_account_id.dkr.ecr.$region.amazonaws.com
   
   docker build -t smpv2 .
   enroot import -o smpv2.sqsh  dockerd://smpv2:latest
   ```

   ```
   $ bash docker_build.sh
   ```

1. Cree un script por lotes para iniciar un trabajo de entrenamiento utilizando `sbatch`. En este tutorial, el script de ejemplo proporcionado [https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/17.SM-modelparallelv2/launch_training_enroot.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/17.SM-modelparallelv2/launch_training_enroot.sh) inicia un trabajo de entrenamiento de paralelismo de modelos del modelo Llama 2 de 70 000 millones de parámetros con un conjunto de datos sintético en 8 nodos de computación. En [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2/scripts](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2/scripts) se proporciona un conjunto de scripts de entrenamiento y `launch_training_enroot.sh` utiliza `train_external.py` como script de punto de entrada.
**importante**  
Para usar un contenedor Docker SageMaker HyperPod, debes montar el `/var/log` directorio de la máquina host, que es el nodo de HyperPod cómputo en este caso, en el directorio del `/var/log` contenedor. Puede configurarlo añadiendo la siguiente variable para Enroot.  

   ```
   "${HYPERPOD_PATH:="/var/log/aws/clusters":"/var/log/aws/clusters"}"
   ```

   ```
   $ cat launch_training_enroot.sh
   #!/bin/bash
   
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: MIT-0
   
   #SBATCH --nodes=8 # number of nodes to use, 2 p4d(e) = 16 A100 GPUs
   #SBATCH --job-name=smpv2_llama # name of your job
   #SBATCH --exclusive # job has exclusive use of the resource, no sharing
   #SBATCH --wait-all-nodes=1
   
   set -ex;
   
   ###########################
   ###### User Variables #####
   ###########################
   
   #########################
   model_type=llama_v2
   model_size=70b
   
   # Toggle this to use synthetic data
   use_synthetic_data=1
   
   
   # To run training on your own data  set Training/Test Data path  -> Change this to the tokenized dataset path in Fsx. Acceptable formats are huggingface (arrow) and Jsonlines.
   # Also change the use_synthetic_data to 0
   
   export TRAINING_DIR=/fsx/path_to_data
   export TEST_DIR=/fsx/path_to_data
   export CHECKPOINT_DIR=$(pwd)/checkpoints
   
   # Variables for Enroot
   : "${IMAGE:=$(pwd)/smpv2.sqsh}"
   : "${HYPERPOD_PATH:="/var/log/aws/clusters":"/var/log/aws/clusters"}" # This is needed for validating its hyperpod cluster
   : "${TRAIN_DATA_PATH:=$TRAINING_DIR:$TRAINING_DIR}"
   : "${TEST_DATA_PATH:=$TEST_DIR:$TEST_DIR}"
   : "${CHECKPOINT_PATH:=$CHECKPOINT_DIR:$CHECKPOINT_DIR}"   
   
   
   ###########################
   ## Environment Variables ##
   ###########################
   
   #export NCCL_SOCKET_IFNAME=en
   export NCCL_ASYNC_ERROR_HANDLING=1
   
   export NCCL_PROTO="simple"
   export NCCL_SOCKET_IFNAME="^lo,docker"
   export RDMAV_FORK_SAFE=1
   export FI_EFA_USE_DEVICE_RDMA=1
   export NCCL_DEBUG_SUBSYS=off
   export NCCL_DEBUG="INFO"
   export SM_NUM_GPUS=8
   export GPU_NUM_DEVICES=8
   export FI_EFA_SET_CUDA_SYNC_MEMOPS=0
   
   # async runtime error ...
   export CUDA_DEVICE_MAX_CONNECTIONS=1
   
   
   #########################
   ## Command and Options ##
   #########################
   
   if [ "$model_size" == "7b" ]; then
       HIDDEN_WIDTH=4096
       NUM_LAYERS=32
       NUM_HEADS=32
       LLAMA_INTERMEDIATE_SIZE=11008
       DEFAULT_SHARD_DEGREE=8
   # More Llama model size options
   elif [ "$model_size" == "70b" ]; then
       HIDDEN_WIDTH=8192
       NUM_LAYERS=80
       NUM_HEADS=64
       LLAMA_INTERMEDIATE_SIZE=28672
       # Reduce for better perf on p4de
       DEFAULT_SHARD_DEGREE=64
   fi
   
   
   if [ -z "$shard_degree" ]; then
       SHARD_DEGREE=$DEFAULT_SHARD_DEGREE
   else
       SHARD_DEGREE=$shard_degree
   fi
   
   if [ -z "$LLAMA_INTERMEDIATE_SIZE" ]; then
       LLAMA_ARGS=""
   else
       LLAMA_ARGS="--llama_intermediate_size $LLAMA_INTERMEDIATE_SIZE "
   fi
   
   
   if [ $use_synthetic_data == 1 ]; then
       echo "using synthetic data"
       declare -a ARGS=(
       --container-image $IMAGE
       --container-mounts $HYPERPOD_PATH,$CHECKPOINT_PATH
       )
   else
       echo "using real data...."
       declare -a ARGS=(
       --container-image $IMAGE
       --container-mounts $HYPERPOD_PATH,$TRAIN_DATA_PATH,$TEST_DATA_PATH,$CHECKPOINT_PATH
       )
   fi
   
   
   declare -a TORCHRUN_ARGS=(
       # change this to match the number of gpus per node:
       --nproc_per_node=8 \
       --nnodes=$SLURM_JOB_NUM_NODES \
       --rdzv_id=$SLURM_JOB_ID \
       --rdzv_backend=c10d \
       --rdzv_endpoint=$(hostname) \
   )
   
   srun -l "${ARGS[@]}" torchrun "${TORCHRUN_ARGS[@]}" /path_to/train_external.py \
               --train_batch_size 4 \
               --max_steps 100 \
               --hidden_width $HIDDEN_WIDTH \
               --num_layers $NUM_LAYERS \
               --num_heads $NUM_HEADS \
               ${LLAMA_ARGS} \
               --shard_degree $SHARD_DEGREE \
               --model_type $model_type \
               --profile_nsys 1 \
               --use_smp_implementation 1 \
               --max_context_width 4096 \
               --tensor_parallel_degree 1 \
               --use_synthetic_data $use_synthetic_data \
               --training_dir $TRAINING_DIR \
               --test_dir $TEST_DIR \
               --dataset_type hf \
               --checkpoint_dir $CHECKPOINT_DIR \
               --checkpoint_freq 100 \
   
   $ sbatch launch_training_enroot.sh
   ```

*Para encontrar los ejemplos de código descargables, consulte [Ejecutar un trabajo de formación en paralelo con modelos utilizando la biblioteca de paralelismo de modelos de SageMaker IA, Docker y Enroot con Slurm](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2#option-2----run-training-using-docker-and-enroot) en el repositorio Awsome Distributed Training. GitHub * Para obtener más información sobre el entrenamiento distribuido con un clúster de Slurm activado, continúa con el siguiente tema en. SageMaker HyperPod [Ejecutar cargas de trabajo de formación distribuidas con Slurm activado HyperPod](sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload.md)

# Ejecutar cargas de trabajo de formación distribuidas con Slurm activado HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload"></a>

SageMaker HyperPod está especializado en cargas de trabajo relacionadas con el entrenamiento de modelos lingüísticos de gran tamaño (LLMs) y modelos básicos (). FMs Estas cargas de trabajo suelen requerir el uso de varias técnicas de paralelismo y operaciones optimizadas para la infraestructura y los recursos de ML. Con SageMaker HyperPod ellos, puede utilizar los siguientes marcos de entrenamiento distribuidos de SageMaker IA:
+ La [biblioteca de paralelismo de datos distribuidos (SMDDP) de SageMaker IA](data-parallel.md) que ofrece operaciones de comunicación colectiva optimizadas para. AWS
+ La biblioteca de [paralelismo de modelos (SMP) de SageMaker IA que implementa varias técnicas de paralelismo](model-parallel-v2.md) de modelos.

**Topics**
+ [Uso de SMDDP en un SageMaker HyperPod](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp)
+ [Uso de SMP en un clúster SageMaker HyperPod](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp)

## Uso de SMDDP en un SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp"></a>

La [biblioteca de SMDDP](data-parallel.md) es una biblioteca de comunicación colectiva que mejora el rendimiento de computación del entrenamiento de paralelismo de datos distribuidos. La biblioteca de SMDDP funciona con los siguientes marcos de entrenamiento distribuido de código abierto:
+ [PyTorchdatos distribuidos en paralelo (DDP)](https://pytorch.org/docs/stable/notes/ddp.html)
+ [PyTorch paralelismo de datos totalmente fragmentado (FSDP)](https://pytorch.org/docs/stable/fsdp.html)
+ [DeepSpeed](https://github.com/microsoft/DeepSpeed)
+ [Megatron- DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed)

La biblioteca SMDDP aborda la sobrecarga de comunicación de las principales operaciones de comunicación colectiva al ofrecer lo siguiente para. SageMaker HyperPod
+ La biblioteca ofrece ofertas `AllGather` optimizadas para. AWS`AllGather`es una operación clave utilizada en el entrenamiento paralelo de datos fragmentados, que es una técnica de paralelismo de datos eficiente en memoria que ofrecen las bibliotecas populares. Estas incluyen la biblioteca de paralelismo de modelos de SageMaker IA (SMP), el optimizador de redundancia DeepSpeed cero (ZeRO) y el paralelismo de datos totalmente fragmentado (FSDP). PyTorch 
+ La biblioteca ofrece una node-to-node comunicación optimizada al utilizar al máximo la infraestructura de red y la topología de instancias de IA ML. AWS SageMaker 

**Ejecución de ejemplos de trabajos de entrenamiento de paralelismo de datos**

Explore las siguientes muestras de entrenamiento distribuido que implementan técnicas de paralelismo de datos mediante la biblioteca de SMDDP.
+ [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/12.SM-dataparallel-FSDP](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/12.SM-dataparallel-FSDP)
+ [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/13.SM-dataparallel-deepspeed](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/13.SM-dataparallel-deepspeed)

**Para configurar un entorno para usar la biblioteca SMDDP en SageMaker HyperPod**

A continuación se indican los requisitos del entorno de formación para utilizar la biblioteca SMDDP en él. SageMaker HyperPod
+ PyTorch v2.0.1 y versiones posteriores
+ CUDA v11.8 y posteriores
+ Versión de tiempo de ejecución `libstdc++` superior a 3
+ Python v3.10.x y posteriores
+ `ml.p4d.24xlarge` y `ml.p4de.24xlarge`, que son tipos de instancia compatibles con la biblioteca de SMDDP
+ `imdsv2` habilitado en el host de entrenamiento

Según cómo desee ejecutar el trabajo de entrenamiento distribuido, hay dos opciones para instalar la biblioteca de SMDDP:
+ Una instalación directa mediante el archivo binario de SMDDP.
+ Uso de los SageMaker AI Deep Learning Containers (DLCs) preinstalados con la biblioteca SMDDP.

[Las imágenes de Docker preinstaladas en la biblioteca SMDDP o en los archivos binarios de SMDDP aparecen en la sección Marcos compatibles de la documentación de la biblioteca SMDDP. URLs ](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks)

**Para instalar la biblioteca SMDDP en la DLAMI SageMaker HyperPod**
+ `pip install --no-cache-dir https://smdataparallel.s3.amazonaws.com/binary/pytorch/<pytorch-version>/cuXYZ/YYYY-MM-DD/smdistributed_dataparallel-X.Y.Z-cp310-cp310-linux_x86_64.whl`
**nota**  
Si trabaja en un entorno Conda, asegúrese de realizar la instalación utilizando en lugar de. PyTorch `conda install` `pip`  

  ```
  conda install pytorch==X.Y.Z  torchvision==X.Y.Z torchaudio==X.Y.Z pytorch-cuda=X.Y.Z -c pytorch -c nvidia
  ```

**Uso de la biblioteca de SMDDP en un contenedor de Docker**
+ La biblioteca SMDDP viene preinstalada en los SageMaker AI Deep Learning Containers (). DLCs Para encontrar la lista de marcos DLCs de SageMaker IA compatibles PyTorch con la biblioteca SMDDP, consulte los [marcos compatibles](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks) en la documentación de la biblioteca SMDDP. También puede traer su propio contenedor de Docker con las dependencias necesarias instaladas para usar la biblioteca de SMDDP. Para obtener más información sobre cómo configurar un contenedor de Docker personalizado para usar la biblioteca de SMDDP, consulte también [Cree su propio contenedor Docker con la biblioteca paralela de datos distribuidos de SageMaker IA](data-parallel-bring-your-own-container.md).
**importante**  
Para usar la biblioteca de SMDDP en un contenedor de Docker, monte el directorio `/var/log` de la máquina host en `/var/log` en el contenedor. Esto se puede hacer añadiendo la siguiente opción al ejecutar el contenedor.  

  ```
  docker run <OTHER_OPTIONS> -v /var/log:/var/log ...
  ```

Para obtener más información sobre cómo ejecutar trabajos de entrenamiento de paralelismo de datos con SMDDP en general, consulte [Entrenamiento distribuido con la biblioteca de paralelismo de datos distribuidos de SageMaker IA](data-parallel-modify-sdp.md).

## Uso de SMP en un clúster SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp"></a>

La [biblioteca de paralelismo de modelos (SMP) de SageMaker IA ofrece varias técnicas de paralelismo](model-parallel-v2.md) de [state-of-the-artmodelos](model-parallel-core-features-v2.md), entre las que se incluyen:
+ paralelismo de datos totalmente particionados
+ paralelismo experto
+ entrenamiento de precisión mixto con tipos de datos/y FP16 BF16 FP8 
+ paralelismo de tensores

La biblioteca SMP también es compatible con marcos de código abierto como PyTorch FSDP, NVIDIA Megatron y NVIDIA Transformer Engine.

**Ejecución de un ejemplo de carga de trabajo de entrenamiento de paralelismo de modelos**

Los equipos de servicios de SageMaker IA ofrecen ejemplos de trabajos de formación que implementan el paralelismo de modelos con la biblioteca SMP en. [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2)

# SageMaker HyperPod monitoreo de recursos de clústeres
<a name="sagemaker-hyperpod-cluster-observability-slurm"></a>

Para lograr una observabilidad completa de los recursos y componentes de software de su SageMaker HyperPod clúster, integre el clúster con [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) y [Amazon](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) Managed Grafana. La integración con Amazon Managed Service para Prometheus permite exportar métricas relacionadas con los recursos de HyperPod su clúster, lo que proporciona información sobre su rendimiento, uso y estado. La integración con Amazon Managed Grafana permite la visualización de estas métricas a través de varios paneles de Grafana que ofrecen una interfaz intuitiva para supervisar y analizar el comportamiento del clúster. Al aprovechar estos servicios, obtiene una visión centralizada y unificada de su HyperPod clúster, lo que facilita la supervisión proactiva, la solución de problemas y la optimización de sus cargas de trabajo de formación distribuidas.

**sugerencia**  
[Para encontrar ejemplos y soluciones prácticos, consulte también el SageMaker HyperPod taller.](https://catalog.workshops.aws/sagemaker-hyperpod)

![\[Información general sobre la configuración SageMaker HyperPod con Amazon Managed Service para Prometheus y Amazon Managed Grafana.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod-observability-architecture.png)


Figura: Este diagrama de arquitectura muestra una descripción general de la configuración SageMaker HyperPod con Amazon Managed Service for Prometheus y Amazon Managed Grafana.

Continúe con los siguientes temas para configurar la observabilidad del clúster. SageMaker HyperPod 

**Topics**
+ [Requisitos previos para la observabilidad de los SageMaker HyperPod conglomerados](sagemaker-hyperpod-cluster-observability-slurm-prerequisites.md)
+ [Instalación de paquetes de exportación de métricas en su clúster HyperPod](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md)
+ [Validación de la configuración de Prometheus en el nodo principal de un clúster HyperPod](sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup.md)
+ [Configuración de un espacio de trabajo de Amazon Managed Grafana](sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws.md)
+ [Referencia de métricas exportadas](sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference.md)
+ [Métricas de Amazon SageMaker HyperPod Slurm](smcluster-slurm-metrics.md)

# Requisitos previos para la observabilidad de los SageMaker HyperPod conglomerados
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites"></a>

Antes de continuar con los pasos para [Instalación de paquetes de exportación de métricas en su clúster HyperPod](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md), asegúrese de que se cumplen los siguientes requisitos previos.

## Activar IAM Identity Center
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-iam-id-center"></a>

Para habilitar la observabilidad de su SageMaker HyperPod clúster, primero debe habilitar el IAM Identity Center. Este es un requisito previo para implementar una CloudFormation pila que configure el espacio de trabajo de Grafana gestionado por Amazon y el Servicio gestionado de Amazon para Prometheus. Estos dos servicios también necesitan que esté habilitado IAM Identity Center para la autenticación y la autorización, lo que garantiza el acceso seguro de los usuarios y la administración de la infraestructura de supervisión.

Para obtener instrucciones detalladas sobre cómo habilitar IAM Identity Center, consulte la sección [Habilitación de AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) en la *Guía del usuario de AWS IAM Identity Center*. 

Tras habilitar correctamente IAM Identity Center, configure una cuenta de usuario que sirva como usuario administrativo en los siguientes procedimientos de configuración.

## Cree e implemente una pila para garantizar la CloudFormation observabilidad SageMaker HyperPod
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-cloudformation-stack"></a>

Cree e implemente una CloudFormation pila de SageMaker HyperPod observabilidad para monitorear las métricas de los HyperPod clústeres en tiempo real con Amazon Managed Service for Prometheus y Amazon Managed Grafana. Para implementar la pila, tenga en cuenta que también debe habilitar previamente [IAM Identity Center](https://console.aws.amazon.com/singlesignon).

Utilice el CloudFormation script de muestra [https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/4.prometheus-grafana/cluster-observability.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/4.prometheus-grafana/cluster-observability.yaml)que le ayuda a configurar las subredes de Amazon VPC, los sistemas de archivos Amazon FSx for Lustre, los buckets de Amazon S3 y las funciones de IAM necesarias para crear una pila de observabilidad de clústeres. HyperPod 

# Instalación de paquetes de exportación de métricas en su clúster HyperPod
<a name="sagemaker-hyperpod-cluster-observability-slurm-install-exporters"></a>

En la [configuración básica, los scripts del ciclo](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) de vida que proporciona el SageMaker HyperPod equipo también incluyen la instalación de varios paquetes de exportación de métricas. Para activar el paso de instalación, lo único que tiene que hacer es configurar el parámetro `enable_observability=True` en el archivo [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py). Los scripts de ciclo de vida están diseñados para arrancar el clúster con los siguientes paquetes de exportador de métricas de código abierto.


|  |  |  | 
| --- |--- |--- |
| Nombre | Nodo de destino de la implementación del script | Descripción del exportador | 
| [Exportador de Slurm para Prometheus](https://github.com/vpenso/prometheus-slurm-exporter) | Nodo principal (controlador) |  Exporta las métricas de contabilidad de Slurm.  | 
|  [Exportador de nodos de Elastic Fabric Adapter (EFA)](https://github.com/aws-samples/awsome-distributed-training/tree/main/4.validation_and_observability/3.efa-node-exporter)  |  Nodo de computación  |  Exporta métricas de los nodos del clúster y EFA. El paquete es una bifurcación del [exportador de nodos de Prometheus](https://github.com/prometheus/node_exporter).  | 
|  [Exportador de NVIDIA Data Center GPU Management (DCGM)](https://github.com/NVIDIA/dcgm-exporter)  | Nodo de computación |  Exporta las métricas DCGM de NVIDIA sobre el estado y el rendimiento de NVIDIA. GPUs  | 

Con `enable_observability=True` en el archivo [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py), se activa el siguiente paso de instalación en el script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py). 

```
# Install metric exporting software and Prometheus for observability
if Config.enable_observability:
    if node_type == SlurmNodeType.COMPUTE_NODE:
        ExecuteBashScript("./utils/install_docker.sh").run()
        ExecuteBashScript("./utils/install_dcgm_exporter.sh").run()
        ExecuteBashScript("./utils/install_efa_node_exporter.sh").run()

    if node_type == SlurmNodeType.HEAD_NODE:
        wait_for_scontrol()
        ExecuteBashScript("./utils/install_docker.sh").run()
        ExecuteBashScript("./utils/install_slurm_exporter.sh").run()
        ExecuteBashScript("./utils/install_prometheus.sh").run()
```

En los nodos de computación, el script instala el exportador de NVIDIA Data Center GPU Management (DCGM) y el exportador de nodos de Elastic Fabric Adapter (EFA). El exportador DCGM es un exportador de Prometheus que recopila métricas de NVIDIA y permite monitorear el uso GPUs, el rendimiento y el estado de la GPU. Por otro lado, el exportador de nodos de EFA recopila métricas relacionadas con la interfaz de red de EFA, que es esencial para la comunicación de baja latencia y gran ancho de banda en los clústeres de HPC.

En el nodo principal, el script instala el exportador de Slurm para Prometheus y el [software de código abierto de Prometheus](https://prometheus.io/docs/introduction/overview/). El exportador de Slurm proporciona a Prometheus métricas relacionadas con los trabajos, las particiones y los estados de los nodos de Slurm.

Tenga en cuenta que los scripts de ciclo de vida están diseñados para instalar todos los paquetes de exportador como contenedores de Docker, por lo que el paquete de Docker debe instalarse tanto en los nodos principales como en los de procesamiento. *Los scripts de estos componentes se encuentran cómodamente en la [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils)carpeta del repositorio Awsome Distributed Training. GitHub *

Una vez que haya configurado correctamente el HyperPod clúster instalado con los paquetes de exportación, continúe con el tema siguiente para terminar de configurar Amazon Managed Service para Prometheus y Amazon Managed Grafana.

# Validación de la configuración de Prometheus en el nodo principal de un clúster HyperPod
<a name="sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup"></a>

Una vez que haya configurado correctamente el HyperPod clúster instalado con los paquetes de exportación, compruebe si Prometheus está correctamente configurado en el nodo principal del clúster. HyperPod 

1. Conecte con el nodo principal del clúster. Para obtener instrucciones sobre cómo acceder a un nodo, consulte [Acceder a los nodos SageMaker HyperPod de su clúster](sagemaker-hyperpod-run-jobs-slurm-access-nodes.md).

1. Ejecute el siguiente comando para comprobar que el archivo de configuración y servicio de Prometheus creado por el script de ciclo de vida `install_prometheus.sh` se esté ejecutando en el nodo de controlador. El resultado debería mostrar el estado Activo como **active (running)**.

   ```
   $ sudo systemctl status prometheus
   • prometheus service - Prometheus Exporter
   Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; preset:disabled)
   Active: active (running) since DAY YYYY-MM-DD HH:MM:SS UTC; Ss ago
   Main PID: 12345 (prometheus)
   Tasks: 7 (limit: 9281)
   Memory: 35M
   CPU: 234ms
   CGroup: /system.slice/prometheus.service
           -12345 /usr/bin/prometheus--config.file=/etc/prometheus/prometheus.yml
   ```

1. Valide el archivo de configuración de Prometheus de la siguiente manera. El resultado debe ser similar al siguiente, con tres exportadores configurados con las direcciones IP de los nodos de computación correctas.

   ```
   $ cat /etc/prometheus/prometheus.yml
   global:
     scrape_interval: 15s
     evaluation_interval: 15s
     scrape_timeout: 15s
   
   scrape_configs:
     - job_name: 'slurm_exporter'
       static_configs:
         - targets:
             - 'localhost:8080'
     - job_name: 'dcgm_exporter'
       static_configs:
         - targets:
             - '<ComputeNodeIP>:9400'
             - '<ComputeNodeIP>:9400'
     - job_name: 'efa_node_exporter'
       static_configs:
         - targets:
             - '<ComputeNodeIP>:9100'
             - '<ComputeNodeIP>:9100'
   
   remote_write:
     - url: <AMPReoteWriteURL>
       queue_config:
         max_samples_per_send: 1000
         max_shards: 200
         capacity: 2500
       sigv4:
         region: <Region>
   ```

1. Para comprobar si Prometheus está exportando correctamente las métricas de Slurm, DCGM y EFA, ejecute el siguiente comando `curl` para Prometheus en el puerto `:9090` del nodo principal.

   ```
   $ curl -s http://localhost:9090/metrics | grep -E 'slurm|dcgm|efa'
   ```

   Con las métricas exportadas al espacio de trabajo de Amazon Managed Service para Prometheus a través de la configuración de escritura remota de Prometheus desde el nodo de controlador, puede continuar con el siguiente tema para configurar los paneles de Amazon Managed Grafana para mostrar las métricas.

# Configuración de un espacio de trabajo de Amazon Managed Grafana
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws"></a>

Cree un nuevo espacio de trabajo de Amazon Managed Grafana o actualice un espacio de trabajo de Amazon Managed Grafana existente con Amazon Managed Service para Prometheus como origen de datos.

**Topics**
+ [Creación de un espacio de trabajo de Grafana y configuración de Amazon Managed Service para Prometheus como origen de datos](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create)
+ [Apertura del espacio de trabajo de Grafana y finalización de la configuración del origen de datos](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source)
+ [Importación de paneles de código abierto de Grafana](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards)

## Creación de un espacio de trabajo de Grafana y configuración de Amazon Managed Service para Prometheus como origen de datos
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create"></a>

Para visualizar las métricas de Amazon Managed Service para Prometheus, cree un espacio de trabajo de Amazon Managed Grafana y configúrelo para utilizar Amazon Managed Service para Prometheus como origen de datos.

1. Para crear un espacio de trabajo de Grafana, siga las instrucciones en [Creating a workspace](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html#creating-workspace) en la *Guía del usuario de Amazon Managed Service para Prometheus*.

   1. En el paso 13, seleccione Amazon Managed Service para Prometheus como origen de datos.

   1. En el paso 17, puede añadir el usuario administrador y otros usuarios a IAM Identity Center.

Para obtener más información, consulte también los siguientes recursos.
+ [Set up Amazon Managed Grafana for use with Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-amg.html) en la *Guía del usuario de Amazon Managed Service para Prometheus*.
+ [Usa la configuración de la fuente de AWS datos para añadir Amazon Managed Service for Prometheus como fuente de datos](https://docs.aws.amazon.com/grafana/latest/userguide/AMP-adding-AWS-config.html) en la Guía del usuario de *Amazon Managed Grafana*

## Apertura del espacio de trabajo de Grafana y finalización de la configuración del origen de datos
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source"></a>

Una vez que haya creado o actualizado correctamente un espacio de trabajo de Amazon Managed Grafana, seleccione la URL del espacio de trabajo para abrirlo. Al hacer esto, se le pedirá que introduzca un nombre de usuario y la contraseña del usuario que haya configurado en IAM Identity Center. Debe iniciar sesión con el usuario administrador para terminar de configurar el espacio de trabajo.

1. En la **Página principal** del espacio de trabajo, seleccione **Aplicaciones**, **Orígenes de datos de AWS ** y **Orígenes de datos**.

1. En la página **Orígenes de datos**, elija la pestaña **Orígenes de datos**.

1. En **Servicio**, elija Amazon Managed Service para Prometheus.

1. En la sección **Explorar y aprovisionar fuentes de datos**, elige la AWS región en la que aprovisionaste un espacio de trabajo de Amazon Managed Service for Prometheus.

1. En la lista de orígenes de datos de la región seleccionada, elija el de Amazon Managed Service para Prometheus. Asegúrese de comprobar el ID del recurso y el alias del recurso del espacio de trabajo de Amazon Managed Service for Prometheus que ha configurado HyperPod para la pila de observabilidad.

## Importación de paneles de código abierto de Grafana
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards"></a>

Una vez que haya configurado correctamente el espacio de trabajo de Amazon Managed Grafana con Amazon Managed Service para Prometheus como origen de datos, empezará a recopilar métricas para Prometheus y, a continuación, empezará a ver los distintos paneles con gráficos, información y mucho más. El software de código abierto de Grafana proporciona varios paneles y puede importarlos en Amazon Managed Grafana.

**Importación de paneles de Grafana de código abierto en Amazon Managed Grafana**

1. En la **Página de inicio** del espacio de trabajo de Amazon Managed Grafana, seleccione **Paneles**.

1. Seleccione el botón del menú desplegable con el texto **Nuevo** de la interfaz de usuario y elija **Importar**.

1. Pegue la URL en el [Panel de Slurm](https://grafana.com/grafana/dashboards/4323-slurm-dashboard/).

   ```
   https://grafana.com/grafana/dashboards/4323-slurm-dashboard/
   ```

1. Seleccione **Cargar**.

1. Repita los pasos anteriores para importar los siguientes paneles.

   1. [Panel del exportador de nodos completo](https://grafana.com/grafana/dashboards/1860-node-exporter-full/)

      ```
      https://grafana.com/grafana/dashboards/1860-node-exporter-full/
      ```

   1. [Panel del exportador de NVIDIA DCGM](https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/)

      ```
      https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/
      ```

   1. [Panel de métricas de EFA](https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/)

      ```
      https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/
      ```

   1. [FSx para Lustre Metrics Dashboard](https://grafana.com/grafana/dashboards/20906-fsx-lustre/)

      ```
      https://grafana.com/grafana/dashboards/20906-fsx-lustre/
      ```

# Referencia de métricas exportadas
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference"></a>

En las siguientes secciones se presentan listas completas de métricas exportadas desde SageMaker HyperPod Amazon Managed Service for Prometheus tras la correcta configuración de la pila para garantizar CloudFormation la observabilidad. SageMaker HyperPod Puede empezar a supervisar estas métricas visualizadas en los paneles de Amazon Managed Grafana.

## Panel del exportador de Slurm
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-slurm-exporter"></a>

Proporciona información visualizada de los clústeres de Slurm en. SageMaker HyperPod

**Tipos de métricas**
+ **Información general acerca del clúster:** muestra el número total de nodos, trabajos y sus estados.
+ **Métricas de trabajo:** muestran los recuentos y estados de los trabajos a lo largo del tiempo.
+ **Métricas de nodo:** muestra los estados, la asignación y los recursos disponibles de los nodos.
+ **Métricas de partición:** supervisan métricas específicas de una partición, como el uso de la CPU, la memoria y la GPU.
+ **Eficiencia del trabajo:** calcula la eficiencia del trabajo en función de los recursos utilizados.

**Lista de métricas**


| Nombre de métrica | Description (Descripción) | 
| --- | --- | 
| slurm\$1job\$1count | Número total de trabajos en el clúster de Slurm | 
| slurm\$1job\$1state\$1count | Recuento de trabajos en cada estado (p. ej., en ejecución, pendientes o completados) | 
| slurm\$1node\$1count  | Número total de nodos en el clúster de Slurm | 
| slurm\$1node\$1state\$1count  | Recuento de nodos en cada estado (p. ej., inactivos, asignados, mixtos) | 
| slurm\$1partition\$1node\$1count  | Recuento de nodos en cada partición | 
| slurm\$1partition\$1job\$1count  | Recuento de trabajos en cada partición | 
| slurm\$1partition\$1alloc\$1cpus  | Número total de unidades asignadas en cada partición CPUs  | 
| slurm\$1partition\$1free\$1cpus  | Número total de unidades disponibles CPUs en cada partición | 
| slurm\$1partition\$1alloc\$1memory  | Memoria total asignada en cada partición | 
| slurm\$1partition\$1free\$1memory  | Memoria total disponible en cada partición | 
| slurm\$1partition\$1alloc\$1gpus  | Total asignado GPUs en cada partición | 
| slurm\$1partition\$1free\$1gpus  | Total disponible GPUs en cada partición | 

## Panel del exportador de nodos
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-node-exporter"></a>

Proporciona información visualizada de las métricas del sistema recopiladas por el exportador de nodos de [Prometheus desde los nodos](https://github.com/prometheus/node_exporter) del clúster. HyperPod 

**Tipos de métricas**
+ **Información general del sistema:** muestra las cargas medias de la CPU y el uso de memoria.
+ **Métricas de memoria:** muestran el uso de la memoria, incluida la memoria total, la memoria libre y el espacio de intercambio.
+ **Uso del disco:** supervisa la utilización y la disponibilidad del espacio en disco.
+ **Tráfico de red:** muestra los bytes de red recibidos y transmitidos a lo largo del tiempo.
+ **Métricas del sistema de archivos:** analizan el uso y la disponibilidad del sistema de archivos.
+ ** I/O Métricas de disco:** visualización de la actividad de lectura y escritura del disco.

**Lista de métricas**

Para obtener una lista completa de las métricas exportadas, consulta el [exportador de nodos y los repositorios GitHub ](https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default) [procfs](https://github.com/prometheus/procfs?tab=readme-ov-file). En la siguiente tabla, se muestra un subconjunto de métricas que proporciona información sobre la utilización de los recursos del sistema, como la carga de la CPU, el uso de la memoria, el espacio en disco y la actividad de la red.


| Nombre de métrica | Description (Descripción) | 
| --- | --- | 
|  node\$1load1  | Carga media en 1 minuto | 
|  node\$1load5  | Carga media en 5 minutos | 
|  node\$1load15  | Carga media en 15 minutos | 
|  node\$1memory\$1MemTotal  | Memoria total del sistema | 
|  node\$1memory\$1MemFree  | Memoria libre del sistema | 
|  node\$1memory\$1MemAvailable  | Memoria disponible para asignación a procesos | 
|  node\$1memory\$1Buffers  | Memoria utilizada por el kernel para el almacenamiento en el búfer | 
|  node\$1memory\$1Cached  | Memoria utilizada por el kernel para almacenar en caché los datos del sistema de archivos | 
|  node\$1memory\$1SwapTotal  | Espacio de intercambio total disponible | 
|  node\$1memory\$1SwapFree  | Espacio de intercambio libre | 
|  node\$1memory\$1SwapCached  | La memoria que ya se ha intercambiado antes se restaura, pero sigue en intercambio | 
|  node\$1filesystem\$1avail\$1bytes  | Espacio en disco disponible en bytes | 
|  node\$1filesystem\$1size\$1bytes  | Espacio total en disco en bytes | 
|  node\$1filesystem\$1free\$1bytes  | Espacio libre en disco en bytes | 
|  node\$1network\$1receive\$1bytes  | Bytes de red recibidos | 
|  node\$1network\$1transmit\$1bytes  | Bytes de red transmitidos | 
|  node\$1disk\$1read\$1bytes  | Bytes de disco leídos | 
|  node\$1disk\$1written\$1bytes  | Bytes de disco escritos | 

## Panel del exportador de NVIDIA DCGM
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-nvidia-dcgm-exporter"></a>

Proporciona información visualizada de las métricas de la GPU de NVIDIA que recopila el [exportador de NVIDIA DCGM](https://github.com/NVIDIA/dcgm-exporter).

**Tipos de métricas**
+ **Información general de la GPU:** muestra el uso de la GPU, las temperaturas, el consumo de energía y el uso de memoria. 
+ **Métricas de temperatura:** muestra las temperaturas de la GPU a lo largo del tiempo. 
+ **Uso de energía:** supervisa el consumo de energía de la GPU y las tendencias de uso de energía. 
+ **Utilización de memoria:** analiza el uso de la memoria de la GPU, incluida la memoria utilizada, la memoria libre y la memoria total. 
+ **Velocidad del ventilador:** muestra las velocidades y variaciones de los ventiladores de la GPU. 
+ **Errores de ECC:** realiza un seguimiento de los errores de ECC y los errores pendientes de la memoria de la GPU.

**Lista de métricas**

En la siguiente tabla, se muestra una lista de las métricas que proporcionan información sobre el estado y el rendimiento de la GPU de NVIDIA, incluidas las frecuencias de reloj, las temperaturas, el uso de la energía, la utilización de la memoria, las velocidades de los ventiladores y las métricas de error.


| Nombre de métrica | Description (Descripción) | 
| --- | --- | 
|  DCGM\$1FI\$1DEV\$1SM\$1CLOCK  | Frecuencia de reloj SM (pulgadas) MHz | 
|  DCGM\$1FI\$1DEV\$1MEM\$1CLOCK  | Frecuencia de reloj de memoria (pulgadas MHz) | 
|  DCGM\$1FI\$1DEV\$1MEMORY\$1TEMP  | Temperatura de la memoria (en °C) | 
|  DCGM\$1FI\$1DEV\$1GPU\$1TEMP  | Temperatura de la GPU (en °C) | 
|  DCGM\$1FI\$1DEV\$1POWER\$1USAGE  | Consumo de energía (en W) | 
|  DCGM\$1FI\$1DEV\$1TOTAL\$1ENERGY\$1CONSUMPTION  | Consumo total de energía desde el arranque (en mJ) | 
|  DCGM\$1FI\$1DEV\$1PCIE\$1REPLAY\$1COUNTER  | Número total de PCIe reintentos | 
|  DCGM\$1FI\$1DEV\$1MEM\$1COPY\$1UTIL  | Utilización de la memoria (en %) | 
|  DCGM\$1FI\$1DEV\$1ENC\$1UTIL  | Utilización del codificador (en %) | 
|  DCGM\$1FI\$1DEV\$1DEC\$1UTIL  | Utilización del decodificador (en %) | 
|  DCGM\$1FI\$1DEV\$1XID\$1ERRORS  | Valor del último error de XID detectado | 
|  DCGM\$1FI\$1DEV\$1FB\$1FREE  | Memoria de búfer de fotogramas libre (en MiB) | 
|  DCGM\$1FI\$1DEV\$1FB\$1USED  | Memoria de búfer de fotogramas libre (en MiB) | 
|  DCGM\$1FI\$1DEV\$1NVLINK\$1BANDWIDTH\$1TOTAL  | Número total de contadores de NVLink ancho de banda para todos los carriles | 
|  DCGM\$1FI\$1DEV\$1VGPU\$1LICENSE\$1STATUS  | Estado de las licencias de vGPU | 
|  DCGM\$1FI\$1DEV\$1UNCORRECTABLE\$1REMAPPED\$1ROWS  | Número de filas reasignadas por errores incorregibles | 
|  DCGM\$1FI\$1DEV\$1CORRECTABLE\$1REMAPPED\$1ROWS  | Número de filas reasignadas por errores corregibles | 
|  DCGM\$1FI\$1DEV\$1ROW\$1REMAP\$1FAILURE  | Si la reasignación de filas ha fallado | 

## Panel de métricas de EFA
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-efa-exporter"></a>

Proporciona información visualizada de las métricas de [Amazon Elastic Fabric Adapter (EFA)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) equipadas en instancias P recopiladas por el [exportador de nodos de EFA](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md).

**Tipos de métricas**
+ **Métricas de errores de EFA:** muestran errores como errores de asignación, errores de comando y errores de mapas de memoria.
+ **Tráfico de red de EFA:** supervisa los bytes, paquetes y solicitudes de trabajo recibidos y transmitidos.
+ **Rendimiento de EFA RDMA:** analiza las operaciones de lectura y escritura de RDMA, incluidos los bytes transferidos y las tasas de error.
+ **Vida útil de los puertos de EFA:** muestra la vida útil de los puertos de EFA a lo largo del tiempo.
+ **Paquetes keep-alive de EFA**: realizan un seguimiento del número de paquetes keep-alive recibidos.

**Lista de métricas**

En la siguiente tabla, se muestra una lista de las métricas que proporcionan información sobre diversos aspectos del funcionamiento de EFA, incluidos errores, comandos completados, tráfico de red y utilización de los recursos.


| Nombre de métrica | Description (Descripción) | 
| --- | --- | 
|  node\$1amazonefa\$1info  | Datos no numéricos de/sys/class/infiniband/, el valor es siempre 1. | 
|  node\$1amazonefa\$1lifespan  | Vida útil del puerto | 
|  node\$1amazonefa\$1rdma\$1read\$1bytes  | Número de bytes leídos con RDMA | 
|  node\$1amazonefa\$1rdma\$1read\$1resp\$1bytes  | Número de bytes de respuesta de lectura con RDMA | 
|  node\$1amazonefa\$1rdma\$1read\$1wr\$1err  | Número de errores de lectura/escritura con RDMA | 
|  node\$1amazonefa\$1rdma\$1read\$1wrs  | Número de rs de lectura con RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1bytes  | Número de bytes escritos con RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1recv\$1bytes  | Número de bytes leídos y recibidos con RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1wr\$1err  | Número de bytes escritos con error con RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1wrs  | Número de bytes escritos de wrs con RDMA | 
|  node\$1amazonefa\$1recv\$1bytes  | Número de bytes recibidos | 
|  node\$1amazonefa\$1recv\$1wrs  | Número de bytes recibidos de wrs | 
|  node\$1amazonefa\$1rx\$1bytes  | Número de bytes recibidos | 
|  node\$1amazonefa\$1rx\$1drops  | Número de paquetes descartados | 
|  node\$1amazonefa\$1rx\$1pkts  | Número de paquetes recibidos | 
|  node\$1amazonefa\$1send\$1bytes  | Número de bytes enviados | 
|  node\$1amazonefa\$1send\$1wrs  | Número de wrs enviados | 
|  node\$1amazonefa\$1tx\$1bytes  | Número de bytes transmitidos | 
|  node\$1amazonefa\$1tx\$1pkts  | Número de paquetes transmitidos | 

## FSx para el panel de métricas de Lustre
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-fsx-exporter"></a>

[Proporciona información visualizada de [las métricas del sistema de archivos Amazon FSx for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html) recopiladas por Amazon. CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html)

**nota**  
El panel de control de Grafana FSx for Lustre utiliza Amazon CloudWatch como fuente de datos, lo que difiere de los demás paneles que ha configurado para utilizar Amazon Managed Service for Prometheus. Para garantizar una supervisión y visualización precisas de las métricas relacionadas con su sistema de archivos de FSx for Lustre, configure el panel de control de FSx for Lustre para que utilice Amazon CloudWatch como fuente de datos, especificando la misma ubicación en la que Región de AWS se implementa su sistema de archivos de FSx for Lustre.

**Tipos de métricas**
+ **DataReadBytes:** el número de bytes para las operaciones de lectura del sistema de archivos.
+ **DataWriteBytes:** el número de bytes de las operaciones de escritura del sistema de archivos.
+ **DataReadOperations:** el número de operaciones de lectura.
+ **DataWriteOperations:** El número de operaciones de escritura.
+ **MetadataOperations:** El número de operaciones de metadatos.
+ **FreeDataStorageCapacity:** La cantidad de capacidad de almacenamiento disponible.

# Métricas de Amazon SageMaker HyperPod Slurm
<a name="smcluster-slurm-metrics"></a>

Amazon SageMaker HyperPod proporciona un conjunto de CloudWatch métricas de Amazon que puedes usar para monitorear el estado y el rendimiento de tus HyperPod clústeres. Estas métricas se recopilan del administrador de cargas de trabajo Slurm que se ejecuta en sus HyperPod clústeres y están disponibles en el `/aws/sagemaker/Clusters` CloudWatch espacio de nombres.

## Métricas de nivel de clúster
<a name="smcluster-slurm-metrics-cluster"></a>

Están disponibles las siguientes métricas a nivel de clúster para. HyperPod Estas métricas utilizan la `ClusterId` dimensión para identificar el clúster específico. HyperPod 


| CloudWatch nombre de la métrica | Notas | Nombre de la métrica de Información de contenedores de Amazon EKS | 
| --- | --- | --- | 
| cluster\$1node\$1count | Número total de nodos en el clúster | cluster\$1node\$1count | 
| cluster\$1idle\$1node\$1count | Número de nodos inactivos en el clúster | N/A | 
| cluster\$1failed\$1node\$1count | Número de nodos fallidos en el clúster | cluster\$1failed\$1node\$1count | 
| cluster\$1cpu\$1count | Número total de núcleos de CPU del clúster | node\$1cpu\$1limit | 
| cluster\$1idle\$1cpu\$1count | Número de nodos de CPU inactivos en el clúster | N/A | 
| cluster\$1gpu\$1count | Total GPUs del clúster | node\$1gpu\$1limit | 
| cluster\$1idle\$1gpu\$1count | Número de inactivos GPUs en el clúster | N/A | 
| cluster\$1running\$1task\$1count | Número de trabajos de Slurm en ejecución en el clúster | N/A | 
| cluster\$1pending\$1task\$1count | Número de trabajos de Slurm pendientes en el clúster | N/A | 
| cluster\$1preempted\$1task\$1count | Número de trabajos de Slurm antepuestos en el clúster | N/A | 
| cluster\$1avg\$1task\$1wait\$1time | Tiempo de espera medio de los trabajos de Slurm en el clúster | N/A | 
| cluster\$1max\$1task\$1wait\$1time | Tiempo de espera máximo de los trabajos de Slurm en el clúster | N/A | 

## Métricas de nivel de instancia
<a name="smcluster-slurm-metrics-instance"></a>

Están disponibles las siguientes métricas a nivel de instancia para. HyperPod Estas métricas también utilizan la `ClusterId` dimensión para identificar el clúster específico. HyperPod 


| CloudWatch nombre de la métrica | Notas | Nombre de la métrica de Información de contenedores de Amazon EKS | 
| --- | --- | --- | 
| node\$1gpu\$1utilization | Utilización media de la GPU en todas las instancias | node\$1gpu\$1utilization | 
| node\$1gpu\$1memory\$1utilization | Utilización media de la memoria de la GPU en todas las instancias | node\$1gpu\$1memory\$1utilization | 
| node\$1cpu\$1utilization | Utilización media de la CPU en todas las instancias | node\$1cpu\$1utilization | 
| node\$1memory\$1utilization | Utilización media de la memoria en todas las instancias | node\$1memory\$1utilization | 

# SageMaker HyperPod resiliencia del clúster
<a name="sagemaker-hyperpod-resiliency-slurm"></a>

SageMaker HyperPod mediante la orquestación de Slurm, proporciona las siguientes funciones de resiliencia de clústeres.

**Topics**
+ [Agente de monitorización de la salud](sagemaker-hyperpod-resiliency-slurm-cluster-health-check.md)
+ [Recuperación automática de nodos y reanudación automática](sagemaker-hyperpod-resiliency-slurm-auto-resume.md)
+ [Reemplace o reinicie manualmente un nodo mediante Slurm](sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance.md)

# Agente de monitorización de la salud
<a name="sagemaker-hyperpod-resiliency-slurm-cluster-health-check"></a>

En esta sección se describe el conjunto de comprobaciones de estado que se SageMaker HyperPod utilizan para supervisar periódicamente el estado de las instancias del clúster para detectar problemas con dispositivos como los aceleradores (núcleos de GPU y Trainium) y las redes (EFA). SageMaker HyperPod el agente de monitorización del estado (HMA) supervisa de forma continua el estado de cada instancia basada en GPU o en Trainium. Cuando detecta algún error en una instancia o en la GPU, el agente marca la instancia como en mal estado.

SageMaker HyperPod HMA realiza las mismas comprobaciones de estado para los orquestadores EKS y Slurm. Para obtener más información sobre HMA, consulte. [Sistema de Monitoreo de Salud](sagemaker-hyperpod-eks-resiliency-health-monitoring-agent.md)

# Recuperación automática de nodos y reanudación automática
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume"></a>

**nota**  
A partir del 11 de septiembre de 2025, la orquestación de Slurm ahora es compatible HyperPod con los agentes de monitorización del estado. Ejecute la versión más reciente de la AMI [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)y actualícela a ella para utilizar esta funcionalidad.

En esta sección se habla de las dos funciones SageMaker HyperPod de resiliencia complementarias de Amazon: la recuperación automática de nodos, que reemplaza la infraestructura defectuosa sin intervención manual, y la funcionalidad de reanudación automática, que reinicia los trabajos de formación desde el último punto de control tras un fallo de hardware.

## Cómo funciona la recuperación automática de nodos
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume-how"></a>

Durante la creación o actualización del clúster, los usuarios administradores del clúster pueden seleccionar la opción de recuperación de nodos (instancia) entre `Automatic` (recomendado) y `None` en el clúster. Si se establece en esta `Automatic` opción, SageMaker HyperPod se reinicia o reemplaza automáticamente los nodos defectuosos. 

**importante**  
Se recomienda configurar la opción `Automatic`. De forma predeterminada, los clústeres se configuran con la recuperación automática de nodos.

La recuperación automática de nodos se ejecuta cuando un agente de supervisión del estado, las comprobaciones de estado básicas y las comprobaciones de estado exhaustivas detectan problemas. Si se establece en `None`, el agente de supervisión del estado etiquetará las instancias cuando se detecte un error, pero no iniciará automáticamente ninguna acción de reparación ni recuperación en los nodos afectados. No recomendamos esta opción.

## Realizar un trabajo de formación con la función de SageMaker HyperPod reanudación automática de Amazon
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume-job"></a>

En esta sección se describe cómo ejecutar un trabajo de formación con la función de SageMaker HyperPod reanudación automática, que proporciona una infraestructura de resiliencia sin intervención para recuperar automáticamente un trabajo de formación del último punto de control guardado en caso de que se produzca un fallo de hardware.

Con la función de reanudación automática, si un trabajo falla debido a un fallo de hardware o a algún problema transitorio entre el entrenamiento, la SageMaker HyperPod reanudación automática inicia el flujo de trabajo de reemplazo de nodos y reinicia el trabajo después de reemplazar los nodos defectuosos. Las siguientes comprobaciones de hardware se ejecutan cada vez que se produce un error en un trabajo al utilizar la reanudación automática:


| Categoría | Nombre de la utilidad | Compatibilidad de los tipos de instancias | Description (Descripción) | 
| --- | --- | --- | --- | 
| Acelerador | NVIDIA SMI | GPU | [La utilidad nvidia-smi](https://developer.nvidia.com/nvidia-system-management-interface) es una CLI muy conocida para administrar y monitorear. GPUs El comprobador de estado integrado analiza el resultado de nvidia-smi para determinar el estado de la instancia. | 
| Acelerador | Neuron sysfs | Trainium | En las instancias impulsadas por Trainium, el estado de los dispositivos de Neuron se determina mediante la lectura de los contadores de [Neuron sysfs](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-sysfs-user-guide.html) propagada directamente por el controlador de Neuron. | 
| Network | EFA | GPU y Trainium | Para facilitar el diagnóstico de los dispositivos Elastic Fabric Adaptor (EFA), el comprobador de estado de EFA realiza una serie de pruebas de conectividad con todas las tarjetas EFA disponibles en la instancia. | 

**nota**  
Cuando hay [Generic Resources (GRES)](https://slurm.schedmd.com/gres.html) asociados a un nodo de Slurm, Slurm no suele permitir cambios en la asignación de nodos, como la sustitución de nodos, y, por tanto, no permite reanudar un trabajo fallido. A menos que se prohíba explícitamente, la función de HyperPod reanudación automática vuelve a poner en cola automáticamente cualquier trabajo defectuoso asociado a los nodos habilitados para GRES. Este proceso implica detener el trabajo, volver a ponerlo en la cola de trabajos y, a continuación, reiniciarlo desde el principio.

**Uso de la SageMaker HyperPod función de reanudación automática con Slurm**

Cuando utilices la SageMaker HyperPod reanudación automática con Slurm, debes ejecutar el trabajo dentro de una asignación exclusiva adquirida mediante el uso de o. `salloc` `sbatch` En cualquier caso, debe modificar el script de punto de entrada para asegurarse de que todos los pasos de configuración se ejecutan en un solo comando `srun` al reanudar el trabajo. Mediante el script de punto de entrada, es importante configurar el entorno del nodo sustituido para que sea coherente con el entorno en el que se ejecutaba el paso del trabajo antes de detenerse. El siguiente procedimiento muestra cómo preparar un script de punto de entrada para mantener la coherencia del entorno y ejecutarlo como un solo comando. `srun`

**sugerencia**  
Si utiliza `sbatch`, puede simplificar el script por lotes creando un script independiente para configurar el entorno y usar un solo comando `srun`.

1. Cree un script con el siguiente ejemplo de código y guárdelo como `train_auto_resume.sh`. Este script implementa configuraciones de entorno de entrenamiento suponiendo que anteriormente no se haya realizado ninguna configuración manual en el nodo reemplazado. Esto garantiza que el entorno sea independiente de los nodos, de forma que cuando se reemplaza un nodo, se aprovisiona el mismo entorno en el nodo antes de reanudar el trabajo.
**nota**  
En el siguiente ejemplo de código, se muestra cómo descubrir la lista de nodos de Slurm asociada a la tarea. No utilice la variable de `$SLURM_JOB_NODELIST` entorno proporcionada por Slurm, ya que su valor podría estar desactualizado una vez que se SageMaker HyperPod reanude automáticamente el trabajo. En el siguiente ejemplo de código, se muestra cómo definir una nueva variable `NODE_LIST` para reemplazar `SLURM_JOB_NODELIST`y, a continuación, configurar las variables `MASTER_NODE` y `MASTER_ADDR` a partir de la variable `NODE_LIST`.

   ```
   #!/bin/bash
   
   # Filename: train_auto_resume.sh
   # Sample containerized script to launch a training job with a single srun which can be auto-resumed.
   
   # Place your training environment setup here. 
   # Example: Install conda, docker, activate virtual env, etc.
   
   # Get the list of nodes for a given job
   NODE_LIST=$(scontrol show jobid=$SLURM_JOBID | \ # Show details of the SLURM job
               awk -F= '/NodeList=/{print $2}' | \  # Extract NodeList field
               grep -v Exc)                         # Exclude nodes marked as excluded
   
   # Determine the master node from the node list
   MASTER_NODE=$(scontrol show hostname $NODE_LIST | \ # Convert node list to hostnames
                 head -n 1)                            # Select the first hostname as master node
   
   # Get the master node address
   MASTER_ADDR=$(scontrol show node=$MASTER_NODE | \ # Show node information
                 awk -F= '/NodeAddr=/{print $2}' | \ # Extract NodeAddr
                 awk '{print $1}')                   # Print the first part of NodeAddr
   
   
   # Torchrun command to launch the training job
   torchrun_cmd="torchrun --nnodes=$SLURM_NNODES \
                          --nproc_per_node=1 \
                          --node_rank=$SLURM_NODE \
                          --master-addr=$MASTER_ADDR \
                          --master_port=1234 \
                          <your_training_script.py>"
   
   # Execute the torchrun command in the 'pytorch' Conda environment, 
   # streaming output live
   /opt/conda/bin/conda run --live-stream -n pytorch $torchrun_cmd
   ```
**sugerencia**  
Puede usar el script anterior para añadir más comandos e instalar cualquier dependencia adicional para su trabajo. Sin embargo, le recomendamos que mantenga los scripts de instalación de dependencias en el [conjunto de scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) que se utilizan durante la creación del clúster. Si utiliza un entorno virtual alojado en un directorio compartido, también puede utilizar este script para activar el entorno virtual.

1. Inicie el trabajo con la SageMaker HyperPod reanudación automática habilitada añadiendo la marca `--auto-resume=1` para indicar que el `srun` comando debe volver a intentarse automáticamente en caso de fallo de hardware. 
**nota**  
Si ha configurado una asignación de recursos mediante `sbatch` o `salloc`, puede ejecutar varios comandos `srun` dentro de la asignación. En caso de error, la funcionalidad de SageMaker HyperPod reanudación automática solo funciona en el [paso de trabajo](https://slurm.schedmd.com/job_launch.html#step_allocation) actual del `srun` comando con el indicador`--auto-resume=1`. En otras palabras, la activación de la reanudación automática en un comando `srun` no se aplica a otros comandos `srun` inicializados en una sesión de asignación de recursos.

   A continuación, se muestran ejemplos del comando `srun` con la función `auto-resume` habilitada.

   **Uso de sbatch**

   Dado que la mayor parte de la lógica para configurar el entorno ya está en `train_auto_resume.sh`, el script por lotes debe ser simple y similar al siguiente ejemplo de código. Supongamos que el siguiente script por lotes está guardado como `batch.sh`.

   ```
   #!/bin/bash
   #SBATCH --nodes 2
   #SBATCH --exclusive
   srun --auto-resume=1 train_auto_resume.sh
   ```

   Ejecute el script por lotes anteriores mediante el siguiente comando.

   ```
   sbatch batch.sh
   ```

   **Uso de salloc**

   Comience por adquirir una asignación exclusiva y ejecute el comando `srun` con la marca `--auto-resume` y el script de punto de entrada.

   ```
   salloc -N 2 --exclusive
   srun --auto-resume=1 train_auto_resume.sh
   ```

## Cómo funcionan juntas la recuperación automática de nodos y la reanudación automática
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume-node-recovery"></a>

Cuando los sistemas de recuperación automática de nodos y de reanudación automática están activos, siguen un enfoque coordinado para gestionar los fallos. Si el HMA detecta un fallo de hardware, el nodo se marca como agotado, independientemente del estado del trabajo. Con la recuperación automática de nodos habilitada, los nodos se sustituyen automáticamente una vez que se cierran todos los trabajos que se están ejecutando en los nodos. En este escenario, para los trabajos con la reanudación automática habilitada, si hay un estado de salida distinto de cero en el paso, la reanudación automática se activa (los trabajos se reanudan una vez que se reemplazan los nodos). Los trabajos que no tengan habilitada la reanudación automática simplemente se cerrarán y los administradores o usuarios deberán volver a enviarlos manualmente.

**nota**  
Si utiliza la reanudación automática, los nodos siempre se sustituyen (no se reinician) cuando se detectan fallos de hardware.

# Reemplace o reinicie manualmente un nodo mediante Slurm
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance"></a>

En esta sección se explica cuándo se debe reiniciar o reemplazar manualmente un nodo, con instrucciones sobre cómo hacer ambas cosas.

## Cuándo reiniciar o reemplazar un nodo manualmente
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-when"></a>

La HyperPod función de reanudación automática monitorea si el estado de los nodos de Slurm cambia a o. `fail` `down` Puede comprobar el estado de los nodos de Slurm ejecutando `sinfo`.

Si un nodo permanece atascado o no responde y el proceso de reanudación automática no lo recupera, puede iniciar la recuperación manualmente. La elección entre reiniciar o reemplazar un nodo depende de la naturaleza del problema. Considera la posibilidad de reiniciarlo cuando tengas problemas temporales o relacionados con el software, como bloqueos del sistema, pérdidas de memoria, problemas con los controladores de la GPU, actualizaciones del núcleo o procesos bloqueados. Sin embargo, si te encuentras con problemas persistentes o relacionados con el hardware, como fallos GPUs, fallos en la memoria o la red, fallos repetidos en las comprobaciones de estado o nodos que siguen sin responder tras varios intentos de reinicio, la solución más adecuada es sustituir los nodos.

## Formas de reiniciar o reemplazar los nodos manualmente
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-ways"></a>

SageMaker HyperPod ofrece dos métodos para la recuperación manual de nodos. El enfoque preferido es utilizar el SageMaker HyperPod sistema Reboot and Replace APIs, que proporciona un proceso de recuperación más rápido y transparente que funciona en todos los orquestadores. Como alternativa, puedes usar los comandos tradicionales de Slurm`scontrol update`, aunque este método tradicional requiere acceso directo al nodo controlador del Slurm. Ambos métodos activan los mismos procesos de recuperación. SageMaker HyperPod 

## Reinicie manualmente un nodo mediante la API de reinicio
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-reboot-api"></a>

 Puede utilizarla **BatchRebootClusterNodes**para reiniciar manualmente un nodo defectuoso SageMaker HyperPod del clúster.

 A continuación, se muestra un ejemplo de cómo ejecutar la operación de reinicio en dos instancias de un clúster mediante AWS Command Line Interface:

```
 aws sagemaker batch-reboot-cluster-nodes \
                --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
                --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

## Reemplace manualmente un nodo mediante la API de reemplazo
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-replace-api"></a>

 Puede utilizarla **BatchReplaceClusterNodes**para reemplazar manualmente un nodo defectuoso SageMaker HyperPod del clúster.

 A continuación, se muestra un ejemplo de cómo ejecutar la operación de reemplazo en dos instancias de un clúster mediante AWS Command Line Interface:

```
 aws sagemaker batch-replace-cluster-nodes \
                --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
                --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

## Reinicie manualmente un nodo mediante Slurm
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-reboot"></a>

También puede utilizar los comandos scontrol Slurm para activar la recuperación del nodo. Estos comandos interactúan directamente con el plano de control de Slurm e invocan los mismos mecanismos de recuperación subyacentes. SageMaker HyperPod 

En el siguiente comando, <ip-ipv4>sustitúyalo por el nombre del nodo de Slurm (nombre de host) de la instancia defectuosa que deseas reiniciar.

```
scontrol update node=<ip-ipv4> state=fail reason="Action:Reboot"
```

Esto marca el nodo como FALLIDO por el motivo especificado. SageMaker HyperPod lo detecta y reinicia la instancia. Evite cambiar el estado del nodo o reiniciar el controlador Slurm durante la operación.

## Sustituya manualmente un nodo con Slurm
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-replace"></a>

Puede usar el comando scontrol update de la siguiente manera para reemplazar un nodo.

En el siguiente comando, `<ip-ipv4>` sustitúyalo por el nombre del nodo de Slurm (nombre de host) de la instancia defectuosa que deseas reemplazar.

```
scontrol update node=<ip-ipv4> state=fail reason="Action:Replace"
```

Tras ejecutar este comando, el nodo pasará a ese `fail` estado, esperará a que finalicen las tareas que se están ejecutando actualmente, se sustituirá por una instancia en buen estado y se recuperará con el mismo nombre de host. Este proceso lleva tiempo en función de las instancias disponibles en la zona de disponibilidad y del tiempo que se tarda en ejecutar los scripts de ciclo de vida. Durante los procesos de actualización y reemplazo, evite volver a cambiar el estado del nodo manualmente o reiniciar el controlador de Slurm; de lo contrario, podría producirse un error de reemplazo. Si el nodo no se recupera ni pasa al estado `idle` después de un periodo de tiempo prolongado, póngase en contacto con el [Soporte de AWS](https://console.aws.amazon.com/support/).

## Forzar el cambio manual de un nodo
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-force"></a>

Si el nodo defectuoso se mantiene atascado en el estado `fail`, el último recurso que puede intentar es forzar manualmente el cambio de estado del nodo a `down`. Esto requiere privilegios de administrador (permisos sudo).

**aviso**  
Proceda con cuidado antes de ejecutar el siguiente comando, ya que provocará la eliminación de todos los trabajos y podría perder todo el trabajo no guardado.

```
scontrol update node=<ip-ipv4> state=down reason="Action:Replace"
```

# Aprovisionamiento continuo para mejorar las operaciones de los clústeres con Slurm
<a name="sagemaker-hyperpod-scaling-slurm"></a>

 SageMaker HyperPod Los clústeres de Amazon creados con la orquestación de Slurm ahora admiten el aprovisionamiento continuo, una capacidad que permite una mayor flexibilidad y eficiencia al ejecutar cargas de trabajo a gran escala. AI/ML El aprovisionamiento continuo le permite empezar a entrenar rápidamente, escalar sin problemas, realizar tareas de mantenimiento sin interrumpir las operaciones y obtener una visión detallada de las operaciones del clúster.

**nota**  
El aprovisionamiento continuo está disponible como configuración opcional para los nuevos HyperPod clústeres creados con la orquestación de Slurm. Los clústeres existentes que utilizan el modelo de escalado anterior no se pueden migrar al aprovisionamiento continuo en este momento.

## Funcionamiento
<a name="sagemaker-hyperpod-scaling-slurm-how"></a>

El sistema de aprovisionamiento continuo presenta una arquitectura del estado deseado que reemplaza el modelo de escalado tradicional. all-or-nothing En el modelo anterior, si un grupo de instancias no se podía aprovisionar por completo, se producía un error en toda la operación de creación o actualización del clúster y se revertía. Con el aprovisionamiento continuo, el sistema acepta una capacidad parcial y continúa aprovisionando las instancias restantes de forma asíncrona.

El sistema de aprovisionamiento continuo:
+ **Acepta la solicitud**: registra el recuento de instancias de destino de cada grupo de instancias.
+ **Inicia el aprovisionamiento**: comienza a lanzar instancias para todos los grupos de instancias en paralelo.
+ **Aprovisiona primero los nodos prioritarios**: el clúster pasa a una `InService` vez que se aprovisione correctamente al menos un nodo controlador (y un nodo de inicio de sesión, si se especifica un grupo de instancias de inicio de sesión).
+ Realiza un **seguimiento del progreso**: supervisa cada intento de lanzamiento de una instancia y registra su estado.
+ **Gestiona los errores**: reintenta automáticamente los lanzamientos fallidos de los nodos de trabajo de forma asíncrona.

El aprovisionamiento continuo está deshabilitado de forma predeterminada. Para usar esta función, configúrela en `NodeProvisioningMode` su solicitud`Continuous`. `CreateCluster`

Con el aprovisionamiento continuo activado, puede iniciar varias operaciones de escalado simultáneamente sin esperar a que se completen las operaciones anteriores. Esto le permite escalar diferentes grupos de instancias en el mismo clúster de forma simultánea y enviar varias solicitudes de escalado al mismo grupo de instancias.

## Aprovisionamiento basado en prioridades
<a name="sagemaker-hyperpod-scaling-slurm-priority"></a>

Los clústeres de Slurm requieren que un nodo controlador esté operativo antes de que los nodos trabajadores puedan registrar y aceptar trabajos. El aprovisionamiento continuo lo gestiona automáticamente mediante un aprovisionamiento basado en prioridades:

1. El grupo de instancias del controlador se aprovisiona primero.

1. Una vez que un nodo controlador está en buen estado, los nodos de inicio de sesión y los nodos de trabajo comienzan a aprovisionarse en paralelo.

1. El clúster `InService` pasa a tener un nodo controlador activo y otro nodo de inicio de sesión activo (si se especifica un grupo de instancias de inicio de sesión). Si no se especifica ningún grupo de instancias de inicio de sesión, el clúster pasa a `InService` él tan pronto como se aprovisione el nodo controlador.

1. Los nodos de trabajo que no se pueden aprovisionar inmediatamente debido a restricciones de capacidad entran en un bucle de reintentos asíncrono y se añaden al clúster de Slurm automáticamente a medida que están disponibles.

## Gestión de los fallos del controlador
<a name="sagemaker-hyperpod-scaling-slurm-controller-failure"></a>

Durante la creación del clúster, si el nodo controlador no se aprovisiona, el comportamiento depende de si el error se puede volver a intentar o no.

Errores que se **pueden volver a intentar (por ejemplo, instancias en mal estado o errores** transitorios):
+ HyperPod reemplaza continuamente la instancia y vuelve a intentar el aprovisionamiento hasta que se activa el controlador.
+ Los nodos de trabajo y de inicio de sesión que ya se han aprovisionado permanecen disponibles, pero el clúster no pasa a ellos `InService` hasta que el controlador esté en buen estado.

**Errores que no se pueden volver a intentar** (por ejemplo, no hay capacidad disponible para el tipo de instancia del controlador o se ha producido un error en el script del ciclo de vida):
+ El clúster está marcado como. `Failed`
+ Se le notifica el motivo del error y debe tomar medidas correctivas, como elegir un tipo de instancia diferente, corregir los scripts del ciclo de vida o volver a intentarlo en una zona de disponibilidad diferente.

## Requisitos previos
<a name="sagemaker-hyperpod-scaling-slurm-prerequisites"></a>

El aprovisionamiento continuo requiere que los parámetros de aprovisionamiento de Slurm (tipos de nodos, nombres de particiones) se proporcionen a través de la carga útil de la API en el campo de cada grupo de instancias. `SlurmConfig` Los clústeres que se basan en el `provisioning_parameters.json` archivo heredado de Amazon S3 no son compatibles con el aprovisionamiento continuo.

**nota**  
Las siguientes características no son compatibles actualmente con el aprovisionamiento continuo en los clústeres de Slurm: migración de clústeres existentes, configuración de nodos de múltiples cabezales mediante una topología de Slurm basada en API y. `SlurmConfigStrategy` El aprovisionamiento continuo funciona exclusivamente en modo de fusión para la administración. `slurm.conf`

## Medición de uso
<a name="sagemaker-hyperpod-scaling-slurm-metering"></a>

HyperPod Los clústeres con aprovisionamiento continuo utilizan la medición a nivel de instancia para proporcionar una facturación precisa que refleje el uso real de los recursos. Este enfoque de medición se diferencia de la facturación tradicional de clústeres, ya que hace un seguimiento de cada instancia de forma independiente.

**Facturación por instancia**

Con el aprovisionamiento continuo, la facturación comienza y termina en cada instancia en lugar de esperar a que cambie el estado del clúster. A continuación se enumeran los beneficios de este enfoque:
+ **Precisión de la facturación**: la facturación comienza cuando se inicia la ejecución del script de ciclo de vida. Si el script del ciclo de vida falla, se volverá a intentar aprovisionar la instancia y se le cobrará por la duración del tiempo de ejecución del script del ciclo de vida.
+ **Medición independiente**: el ciclo de vida de facturación de cada instancia se gestiona por separado, lo que evita que se produzcan errores de facturación en cascada.
+ **Actualizaciones de facturación en tiempo real**: la facturación comienza cuando una instancia comienza a ejecutar su script de configuración del ciclo de vida y se detiene cuando la instancia entra en un estado de finalización.

**Ciclo de vida de facturación**

Cada instancia de tu HyperPod clúster sigue este ciclo de vida de facturación:
+ La **facturación comienza**: cuando la instancia se lanza correctamente y comienza a ejecutar su script de configuración del ciclo de vida.
+ **La facturación continúa**: durante toda la vida operativa de la instancia.
+ La **facturación se detiene**: cuando la instancia entra en un estado de finalización, independientemente del motivo de la finalización.

**nota**  
La facturación no se inicia en el caso de las instancias que no se consiguen lanzar. Si el lanzamiento de una instancia falla debido a una falta de capacidad o por otros problemas, no se le cobrará por ese intento fallido. La facturación se calcula por instancia y los costos se agregan y anotan en el Nombre de recurso de Amazon (ARN) de su clúster.

## Creación de un clúster con el aprovisionamiento continuo activado
<a name="sagemaker-hyperpod-scaling-slurm-create"></a>

**nota**  
Prepare un script de configuración del ciclo de vida y cárguelo en un bucket de Amazon S3 al que pueda acceder su rol de ejecución. Para obtener más información, consulte [SageMaker HyperPod Operaciones de clúster de Slurm](sagemaker-hyperpod-operate-slurm.md).

Prepare un archivo de solicitud de `CreateCluster` API en formato JSON. Configura `NodeProvisioningMode` `Continuous` y proporciona información de topología de Slurm en el campo de cada grupo de instancias. `SlurmConfig`

```
// create_cluster.json
{
    "ClusterName": "my-training-cluster",
    "NodeProvisioningMode": "Continuous",
    "Orchestrator": {
        "Slurm": {}
    },
    "InstanceGroups": [
        {
            "InstanceGroupName": "controller-group",
            "InstanceType": "ml.m5.xlarge",
            "InstanceCount": 1,
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://amzn-s3-demo-bucket/lifecycle-scripts/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
            "SlurmConfig": {
                "NodeType": "Controller"
            }
        },
        {
            "InstanceGroupName": "login-group",
            "InstanceType": "ml.m5.xlarge",
            "InstanceCount": 1,
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://amzn-s3-demo-bucket/lifecycle-scripts/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
            "SlurmConfig": {
                "NodeType": "Login"
            }
        },
        {
            "InstanceGroupName": "worker-gpu-a",
            "InstanceType": "ml.p5.48xlarge",
            "InstanceCount": 16,
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://amzn-s3-demo-bucket/lifecycle-scripts/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
            "SlurmConfig": {
                "NodeType": "Compute",
                "PartitionNames": ["gpu-training"]
            }
        }
    ],
    "VpcConfig": {
        "SecurityGroupIds": ["sg-12345678"],
        "Subnets": ["subnet-12345678"]
    }
}
```

Ejecuta el `create-cluster` comando para enviar la solicitud.

```
aws sagemaker create-cluster \
    --cli-input-json file://complete/path/to/create_cluster.json
```

Esto devuelve el ARN del nuevo clúster.

```
{
    "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/abcde12345"
}
```

## Administración de la configuración de Slurm
<a name="sagemaker-hyperpod-scaling-slurm-config"></a>

El aprovisionamiento continuo funciona exclusivamente en modo de fusión para `slurm.conf` la administración de particiones. En el modo de fusión, HyperPod aplica los cambios de configuración de sus particiones de forma aditiva sobre cualquier elemento que haya modificado. `slurm.conf` HyperPod solo actualiza las secciones relacionadas con la partición `slurm.conf` (como las entradas del nombre de la partición y del nombre del nodo); los demás parámetros de configuración de Slurm no se modifican. Esto significa:
+ Se conservan sus modificaciones manuales. `slurm.conf`
+ No se detectan desviaciones automáticamente ni se resuelven los conflictos entre las modificaciones y HyperPod el estado esperado.

El `SlurmConfigStrategy` parámetro (`Managed`,`Merge`,`Overwrite`) no es compatible con el aprovisionamiento continuo. Si se transfiere cualquier `SlurmConfigStrategy` valor, se produce un error de API.

# SageMaker HyperPod administración de clústeres
<a name="sagemaker-hyperpod-cluster-management-slurm"></a>

Los siguientes temas tratan sobre el registro y la administración de SageMaker HyperPod clústeres.

## Registro de SageMaker HyperPod eventos
<a name="sagemaker-hyperpod-cluster-management-slurm-logging-hyperpod-events"></a>

Todos los eventos y registros de SageMaker HyperPod se guardan en Amazon CloudWatch con el nombre del grupo de registros`/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]`. Cada llamada a la API `CreateCluster` crea un nuevo grupo de registro. En la siguiente lista se incluyen todos los flujos de registro disponibles recopilados en cada grupo de registro.


|  |  | 
| --- |--- |
| Nombre del grupo de registro | Nombre del flujo de registro | 
| /aws/sagemaker/Clusters/[ClusterName]/[ClusterID] | LifecycleConfig/[instance-group-name]/[instance-id] | 

## Registro SageMaker HyperPod a nivel de instancia
<a name="sagemaker-hyperpod-cluster-management-slurm-logging-at-instance-level"></a>

Puede acceder a los LifecycleScript registros publicados CloudWatch durante la configuración de la instancia del clúster. Cada instancia del clúster creado genera un flujo de registro independiente, que se distingue por el formato `LifecycleConfig/[instance-group-name]/[instance-id]`. 

Todos los registros en los que se escriben `/var/log/provision/provisioning.log` se cargan en la CloudWatch transmisión anterior. Ejemplo LifecycleScripts de cómo [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config)redirigir sus `stdout` y `stderr` a esta ubicación. Si está utilizando sus scripts personalizados, escriba sus registros en la `/var/log/provision/provisioning.log` ubicación en la que estén disponibles CloudWatch.

**Marcadores de registro de secuencias de comandos de**

CloudWatch Los registros de los scripts del ciclo de vida incluyen marcadores específicos que le ayudan a realizar un seguimiento del progreso de la ejecución e identificar los problemas:


|  |  | 
| --- |--- |
| Marker | Descripción | 
| START | Indicates the beginning of lifecycle script logs for the instance | 
| [SageMaker] Lifecycle scripts were provided, with S3 uri: [s3://bucket-name/] and entrypoint script: [script-name.sh] | Indicates the S3 location and entrypoint script that will be used | 
| [SageMaker] Downloading lifecycle scripts | Indicates scripts are being downloaded from the specified S3 location | 
| [SageMaker] Lifecycle scripts have been downloaded | Indicates scripts have been successfully downloaded from S3 | 
| [SageMaker] The lifecycle scripts succeeded | Indicates successful completion of all lifecycle scripts | 
| [SageMaker] The lifecycle scripts failed | Indicates failed execution of lifecycle scripts | 

Estos marcadores le ayudan a identificar rápidamente en qué parte del proceso de ejecución del script del ciclo de vida se ha producido un problema. Al solucionar errores, revise las entradas del registro para identificar dónde se detuvo o falló el proceso.

**Mensajes de error del script de Lifecycle**

Si el script del ciclo de vida existe pero se produce un error durante la ejecución, recibirá un mensaje de error que incluye el nombre del grupo de CloudWatch registros y el nombre del flujo de registros. En el caso de que se produzcan errores en los scripts del ciclo de vida en varias instancias, el mensaje de error indicará que solo ha fallado una instancia, pero el grupo de registros debe contener las secuencias de todas las instancias.

Para ver el mensaje de error, ejecuta la [DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)API o consulta la página de detalles del clúster en la SageMaker consola. En la consola, se incluye un botón para **ver los registros del script del ciclo** de vida que permite acceder directamente al flujo de CloudWatch registros. El mensaje de error tiene el siguiente formato:

```
Instance [instance-id] failed to provision with the following error: "Lifecycle scripts did not run successfully. To view lifecycle script logs,
visit log group ‘/aws/sagemaker/Clusters/[cluster-name]/[cluster-id]' and log stream ‘LifecycleConfig/[instance-group-name]/[instance-id]’.
If you cannot find corresponding lifecycle script logs in CloudWatch, please make sure you follow one of the options here:
https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-faq-slurm.html#hyperpod-faqs-q1.” Note that multiple instances may be impacted.
```

## Etiquetado de recursos
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging"></a>

AWS El sistema de etiquetado ayuda a administrar, identificar, organizar, buscar y filtrar los recursos. SageMaker HyperPod admite el etiquetado, por lo que puede administrar los clústeres como un AWS recurso. Durante la creación o edición de un clúster existente, puede añadir o editar etiquetas para el clúster. Para obtener más información sobre el etiquetado en general, consulte [Tagging your AWS resources](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

### Uso de la interfaz de usuario de la SageMaker HyperPod consola
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging-in-console"></a>

Al [creare un clúster nuevo](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-create-cluster) y [editar un clúster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters), puede añadir, eliminar o editar etiquetas.

### Uso del SageMaker HyperPod APIs
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging-in-api-request"></a>

Cuando escribas un archivo de solicitud de [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)API [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)o un archivo de solicitud de API en formato JSON, edita la `Tags` sección.

### Uso de los comandos AWS CLI de etiquetado para IA SageMaker
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging-using-cli"></a>

**Etiquetado de un clúster**

Utilice [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/add-tags.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/add-tags.html) de la siguiente manera.

```
aws sagemaker add-tags --resource-arn cluster_ARN --tags Key=string,Value=string
```

**Eliminación de etiquetado de un clúster**

Utilice [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-tags.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-tags.html) de la siguiente manera.

```
aws sagemaker delete-tags --resource-arn cluster_ARN --tag-keys "tag_key"
```

**Enumeración de etiquetadas de un recurso**

Utilice [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-tags.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-tags.html) de la siguiente manera.

```
aws sagemaker list-tags --resource-arn cluster_ARN
```

# SageMaker HyperPod FAQs
<a name="sagemaker-hyperpod-faq-slurm"></a>

Utilice las siguientes preguntas frecuentes para solucionar problemas de uso. SageMaker HyperPod

**Topics**
+ [¿Por qué no puedo encontrar los grupos de registros de mi SageMaker HyperPod clúster en Amazon CloudWatch?](#hyperpod-faqs-q1)
+ [¿Qué configuraciones específicas se HyperPod gestionan en los archivos de configuración de Slurm, como `slurm.conf` y? `gres.conf`](#hyperpod-faqs-q2)
+ [¿Cómo ejecuto Docker en los nodos de Slurm? HyperPod](#hyperpod-faqs-q3)
+ [¿Por qué mi trabajo de formación en paralelo fracasa cuando utilizo la biblioteca de comunicaciones colectivas de NVIDIA (NCCL) con Slurm en la plataforma? SageMaker HyperPod](#hyperpod-faqs-q4)
+ [¿Cómo utilizo el NVMe almacén local de instancias P para lanzar contenedores de Docker o Enroot con Slurm?](#hyperpod-faqs-q5)
+ [¿Cómo se configuran los grupos de seguridad de EFA?](#hyperpod-faqs-q6)
+ [¿Cómo superviso los nodos de mi clúster? HyperPod ¿De dónde se exporta alguna CloudWatch métrica HyperPod?](#hyperpod-faqs-q7)
+ [¿Puedo añadir almacenamiento adicional a los nodos del HyperPod clúster? Las instancias del clúster tienen un almacén de instancias local limitado.](#hyperpod-faqs-q8)
+ [¿Por qué mis nodos de computación aparecen como “INACTIVOS” o “AGOTADOS” tras un reinicio?](#hyperpod-faqs-q9)
+ [¿Por qué mis nodos se agotan continuamente debido a problemas de falta de memoria (OOM)?](#hyperpod-faqs-q10)
+ [¿Cómo puedo asegurarme de que los recursos se limpien adecuadamente después de que finalicen los trabajos?](#hyperpod-faqs-q11)

## ¿Por qué no puedo encontrar los grupos de registros de mi SageMaker HyperPod clúster en Amazon CloudWatch?
<a name="hyperpod-faqs-q1"></a>

De forma predeterminada, los registros de los agentes y los registros de inicio de las instancias se envían a la cuenta de la HyperPod plataforma CloudWatch. En el caso de los scripts del ciclo de vida del usuario, los registros de configuración del ciclo de vida se envían a tu cuenta CloudWatch.

Si utiliza los [ejemplos de scripts de ciclo](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) de vida proporcionados por el equipo de HyperPod servicio, encontrará los registros de configuración del ciclo de vida en los `/var/log/provision/provisioning.log` que se han escrito y no tendrá este problema.

Sin embargo, si utilizas rutas personalizadas para recopilar los registros del aprovisionamiento del ciclo de vida y no encuentras los grupos de registros que aparecen en la de tu cuenta CloudWatch, es posible que no coincidan las rutas de los archivos de registro especificadas en tus scripts de ciclo de vida y lo que busca el CloudWatch agente que se ejecuta en las instancias del HyperPod clúster. En este caso, significa que debe configurar correctamente los scripts de ciclo de vida para enviar los registros al CloudWatch agente y, además, configurar la configuración del CloudWatch agente en consecuencia. Para resolver el problema, elija una de las siguientes opciones.
+ **Opción 1:** actualice los scripts de ciclo de vida para que los registros se escriban en `/var/log/provision/provisioning.log`.
+ **Opción 2:** actualice el CloudWatch agente para buscar sus rutas personalizadas para registrar el aprovisionamiento del ciclo de vida.

  1. Cada instancia de HyperPod clúster contiene un archivo de configuración del CloudWatch agente en formato JSON en`/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json`. En el archivo de configuración, busque el nombre de campo `logs.logs_collected.files.collect_list.file_path`. Si la configuración predeterminada es de HyperPod, el par clave-valor debería ser `"file_path": "/var/log/provision/provisioning.log"` como se indica en. [Registro SageMaker HyperPod a nivel de instancia](sagemaker-hyperpod-cluster-management-slurm.md#sagemaker-hyperpod-cluster-management-slurm-logging-at-instance-level) El siguiente fragmento de código muestra el aspecto del archivo JSON con la configuración predeterminada. HyperPod 

     ```
     "logs": {
         "logs_collected": {
             "files": {
                 "collect_list": [
                     {
                         "file_path": "/var/log/provision/provisioning.log",
                         "log_group_name": "/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]",
                         "log_stream_name": "LifecycleConfig/[InstanceGroupName]/{instance_id}",
                         "retention_in_days": -1
                     }
                 ]
             }
         },
         "force_flush_interval": 3
     }
     ```

  1. Sustituya el valor del nombre del campo `"file_path"` por la ruta personalizada que utilice en los scripts de ciclo de vida. Por ejemplo, si ha configurado los scripts de ciclo de vida para que escriban en `/var/log/custom-provision/custom-provisioning.log`, actualice el valor para que coincida de la siguiente manera.

     ```
     "file_path": "/var/log/custom-provision/custom-provisioning.log"
     ```

  1. Reinicie el CloudWatch agente con el archivo de configuración para terminar de aplicar la ruta personalizada. Por ejemplo, el siguiente CloudWatch comando muestra cómo reiniciar el CloudWatch agente con el archivo de configuración del CloudWatch agente desde el paso 1. Para obtener más información, consulte también [Solución de problemas del CloudWatch agente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html).

     ```
     sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
         -a fetch-config -m ec2 -s -c \
         file:/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json
     ```

## ¿Qué configuraciones específicas se HyperPod gestionan en los archivos de configuración de Slurm, como `slurm.conf` y? `gres.conf`
<a name="hyperpod-faqs-q2"></a>

Al crear un clúster de Slurm en HyperPod, el HyperPod agente configura los [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html)archivos [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html)y `/opt/slurm/etc/` para gestionar el clúster de Slurm en función de la solicitud de creación del clúster y de los scripts del ciclo de vida HyperPod . En la siguiente lista se muestran los parámetros específicos que el HyperPod agente gestiona y sobrescribe. 

**importante**  
Le recomendamos encarecidamente que NO cambie estos parámetros gestionados por HyperPod.
+ En [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html), HyperPod configura los siguientes parámetros básicos: `ClusterName``SlurmctldHost`,`PartitionName`, y`NodeName`.

  Además, para habilitar la [Recuperación automática de nodos y reanudación automática](sagemaker-hyperpod-resiliency-slurm-auto-resume.md) funcionalidad, HyperPod requiere que los `SchedulerParameters` parámetros `TaskPlugin` y estén configurados de la siguiente manera. El HyperPod agente configura estos dos parámetros con los valores necesarios de forma predeterminada.

  ```
  TaskPlugin=task/none
  SchedulerParameters=permit_job_expansion
  ```
+ En [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html), HyperPod gestiona `NodeName` los nodos de la GPU.

## ¿Cómo ejecuto Docker en los nodos de Slurm? HyperPod
<a name="hyperpod-faqs-q3"></a>

Para ayudarte a ejecutar Docker en los nodos de Slurm en los que se estén ejecutando HyperPod, el equipo de HyperPod servicio proporciona scripts de configuración que puedes incluir como parte de la configuración del ciclo de vida para la creación de clústeres. Para obtener más información, consulte [Los scripts de ciclo de vida básicos proporcionados por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) y [Ejecutar contenedores de Docker en un nodo de cómputo de Slurm en HyperPod](sagemaker-hyperpod-run-jobs-slurm-docker.md).

## ¿Por qué mi trabajo de formación en paralelo fracasa cuando utilizo la biblioteca de comunicaciones colectivas de NVIDIA (NCCL) con Slurm en la plataforma? SageMaker HyperPod
<a name="hyperpod-faqs-q4"></a>

De forma predeterminada, el sistema operativo Linux establece el indicador `#RemoveIPC=yes`. Los trabajos de Slurm y mpirun que utilizan NCCL generan recursos de comunicación entre procesos (IPC) en sesiones de usuarios no raíz. Es posible que estas sesiones de usuario se cierren durante el proceso de trabajo.

 Al ejecutar trabajos con Slurm o mpirun, si `systemd` detecta que el usuario no ha iniciado sesión, limpia los recursos de IPC. Los trabajos de Slurm y mpirun se pueden ejecutar sin que el usuario haya iniciado sesión, pero para ello es necesario deshabilitar la limpieza en systemd y configurarla en Slurm. Para obtener más información, consulte la documentación de [Systemd en la NCCL](https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html#systemd). 

Para desactivar la limpieza en systemd, siga los siguientes pasos.

1. Defina el indicador `#RemoveIPC=no` en el archivo `/etc/systemd/logind.conf` si está realizando trabajos de entrenamiento que utilizan Slurm y NCCL.

1.  De forma predeterminada, Slurm no limpia los recursos compartidos. Le recomendamos que configure un script epilog de Slurm para limpiar los recursos compartidos. Esta limpieza resulta útil si tiene muchos recursos compartidos y desea limpiarlos después de los trabajos de entrenamiento. A continuación se muestra un ejemplo de script.

   ```
   #!/bin/bash
   : <<'SUMMARY'
   Script: epilog.sh
   
   Use this script with caution, as it can potentially delete unnecessary resources and cause issues if you don't use it correctly.
   
   Note: You must save this script in a shared in a shared location that is accessible to all nodes in the cluster, such as /fsx volume.
   Workers must be able to access the script to run the script after jobs.
   
   SUMMARY
   
   # Define the log directory and create it if it doesn't exist
   LOG_DIR="/<PLACEHOLDER>/epilogue" #NOTE: Update PLACEHOLDER to be a shared value path, such as /fsx/epilogue.
   mkdir -p "$LOG_DIR"
   
   # Name the log file using the Slurm job name and job ID
   log_file="$LOG_DIR/epilogue-${SLURM_JOB_NAME}_${SLURM_JOB_ID}.log"
   
   logging() {
       echo "[$(date)] $1" | tee -a "$log_file"
   }
   
   # Slurm epilogue script to clean up IPC resources
   logging "Starting IPC cleanup for Job $SLURM_JOB_ID"
   
   # Clean up shared memory segments by username
   for seg in $(ipcs -m | awk -v owner="$SLURM_JOB_USER" '$3 == owner {print $2}'); do
       if ipcrm -m "$seg"; then
           logging "Removed shared memory segment $seg"
       else
           logging "Failed to remove shared memory segment $seg"
       fi
   done
   
   # Clean up semaphores by username
   for sem in $(ipcs -s | awk -v user="$SLURM_JOB_USER" '$3 == user {print $2}'); do
       if ipcrm -s "$sem"; then
           logging "Removed semaphore $sem"
       else
           logging "Failed to remove semaphore $sem"
       fi
   done
   
   # Clean up NCCL IPC
   NCCL_IPC_PATH="/dev/shm/nccl-*"
   for file in $NCCL_IPC_PATH; do
       if [ -e "$file" ]; then
           if rm "$file"; then
               logging "Removed NCCL IPC file $file"
           else
               logging "Failed to remove NCCL IPC file $file"
           fi
       fi
   done
   logging "IPC cleanup completed for Job $SLURM_JOB_ID"
   exit 0
   ```

   Para obtener más información sobre el parámetro Epilog, consulte la [documentación de Slurm](https://slurm.schedmd.com/slurm.conf.html#OPT_Epilog).

1. En el archivo `slurm.conf` del nodo de controlador, añada una línea que apunte hacia el script de epilog que ha creado.

   ```
   Epilog="/path/to/epilog.sh"  #For example: /fsx/epilogue/epilog.sh
   ```

1. Ejecute los siguientes comandos para cambiar los permisos del script y hacerlo ejecutable.

   ```
   chown slurm:slurm /path/to/epilog.sh
   chmod +x  /path/to/epilog.sh
   ```

1. Para aplicar todos los cambios, ejecute `scontrol reconfigure`.

## ¿Cómo utilizo el NVMe almacén local de instancias P para lanzar contenedores de Docker o Enroot con Slurm?
<a name="hyperpod-faqs-q5"></a>

Como el volumen raíz predeterminado del nodo principal suele estar limitado a un volumen de EBS de 100 GB, debe configurar Docker y Enroot para que usen el almacén de instancias local. NVMe Para obtener información sobre cómo configurar la NVMe tienda y usarla para lanzar contenedores de Docker, consulte. [Ejecutar contenedores de Docker en un nodo de cómputo de Slurm en HyperPod](sagemaker-hyperpod-run-jobs-slurm-docker.md)

## ¿Cómo se configuran los grupos de seguridad de EFA?
<a name="hyperpod-faqs-q6"></a>

Si desea crear un HyperPod clúster con instancias habilitadas para EFA, asegúrese de configurar un grupo de seguridad que permita que todo el tráfico entrante y saliente entre y hacia el propio grupo de seguridad. Para obtener más información, consulte [Paso 1: preparar un grupo de seguridad habilitado para EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security) en la *Guía del usuario de Amazon EC2*.

## ¿Cómo superviso los nodos de mi clúster? HyperPod ¿De dónde se exporta alguna CloudWatch métrica HyperPod?
<a name="hyperpod-faqs-q7"></a>

Para poder observar la utilización de los recursos de su HyperPod clúster, le recomendamos que lo integre con Amazon Managed Grafana y Amazon Managed Service for Prometheus. HyperPod Con varios paquetes de exportación y paneles de Grafana de código abierto, puede exportar y visualizar las métricas relacionadas con los recursos del clúster. HyperPod Para obtener más información sobre la configuración SageMaker HyperPod con Amazon Managed Grafana y Amazon Managed Service for Prometheus, consulte. [SageMaker HyperPod monitoreo de recursos de clústeres](sagemaker-hyperpod-cluster-observability-slurm.md) Ten en cuenta que SageMaker HyperPod actualmente no admite la exportación de métricas del sistema a Amazon CloudWatch.

## ¿Puedo añadir almacenamiento adicional a los nodos del HyperPod clúster? Las instancias del clúster tienen un almacén de instancias local limitado.
<a name="hyperpod-faqs-q8"></a>

Si el almacenamiento de instancias predeterminado no es suficiente para su carga de trabajo, puede configurar un almacenamiento adicional para cada instancia. A partir del [lanzamiento del 20 de junio de 2024,](sagemaker-hyperpod-release-notes.md#sagemaker-hyperpod-release-notes-20240620) puedes añadir un volumen adicional de Amazon Elastic Block Store (EBS) a cada instancia de tu clúster. SageMaker HyperPod Tenga en cuenta que esta capacidad no se puede aplicar a los grupos de instancias de SageMaker HyperPod clústeres existentes creados antes del 20 de junio de 2024. Puedes utilizar esta capacidad parcheando SageMaker HyperPod los clústeres existentes creados antes del 20 de junio de 2024 y añadiéndoles nuevos grupos de instancias. Esta capacidad es totalmente efectiva para cualquier SageMaker HyperPod clúster creado después del 20 de junio de 2024.

## ¿Por qué mis nodos de computación aparecen como “INACTIVOS” o “AGOTADOS” tras un reinicio?
<a name="hyperpod-faqs-q9"></a>

Esto suele ocurrir cuando los nodos se reinician utilizando `sudo reboot` en lugar de la interfaz de control de Slurm. Para reiniciar los nodos correctamente, utilice el comando de Slurm `scontrol reboot nextstate=resume <list_of_nodes>`. Esto garantiza que Slurm mantenga un control adecuado del estado del nodo y reanude su funcionamiento normal tras el reinicio.

En el caso de las instancias de GPU (como NVIDIA P5), esto también puede ocurrir si el nodo no puede completar su proceso de arranque dentro del límite de tiempo predeterminado de Slurm (60 segundos). Para resolver este problema, aumente el parámetro `TimeToResume` en `slurm.conf` a 300 segundos. Esto proporciona a las instancias de GPU tiempo suficiente para arrancar e inicializar los controladores.

## ¿Por qué mis nodos se agotan continuamente debido a problemas de falta de memoria (OOM)?
<a name="hyperpod-faqs-q10"></a>

Los problemas de OOM se producen cuando los trabajos superan la capacidad de memoria del nodo. Para evitar este problema, implemente `cgroups` para forzar el cumplimiento de los límites de memoria por trabajo. Esto evita que un solo trabajo afecte a todo el nodo y mejore el aislamiento y la estabilidad.

Ejemplo de configuración en `slurm.conf`: 

```
TaskPlugin=task/cgroup
```

Ejemplo de configuración en `cgroup.conf`:

```
CgroupAutomount=yes
ConstrainCores=yes
CgroupPlugin=autodetect
ConstrainDevices=yes
ConstrainRAMSpace=yes
ConstrainSwapSpace=yes
SignalChildrenProcesses=yes
MaxRAMPercent=99
MaxSwapPercent=80
MinRAMSpace=100
```

Para obtener más información, consulte [Control Group in Slurm](https://slurm.schedmd.com/cgroups.html), [Cgroup and PAM-based login control for Slurm compute nodes](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils/pam_adopt_cgroup_wheel.sh#L197) y [Configure Cgroups for Slurm](https://catalog.workshops.aws/sagemaker-hyperpod/en-US/07-tips-and-tricks/16-enable-cgroups).

## ¿Cómo puedo asegurarme de que los recursos se limpien adecuadamente después de que finalicen los trabajos?
<a name="hyperpod-faqs-q11"></a>

Implemente scripts de epílogo para limpiar automáticamente los recursos una vez finalizados los trabajos. Es posible que los recursos no se limpien correctamente si los trabajos se bloquean inesperadamente, contienen errores que impiden limpiar de forma normal o si los búferes de memoria compartida (incluidos los que se comparten entre los procesos y los controladores de la GPU) siguen asignados.

Los scripts de epílogo pueden realizar tareas como borrar la memoria de la GPU, eliminar archivos temporales y desmontar sistemas de archivos. Estos scripts tienen limitaciones cuando los recursos no se asignan exclusivamente a un solo trabajo. Para obtener instrucciones detalladas y ejemplos de scripts, consulte el segundo punto de la pregunta [¿Por qué mi trabajo de formación en paralelo fracasa cuando utilizo la biblioteca de comunicaciones colectivas de NVIDIA (NCCL) con Slurm en la plataforma? SageMaker HyperPod](#hyperpod-faqs-q4). Para obtener más información, consulte [Enable Slurm epilog script](https://catalog.workshops.aws/sagemaker-hyperpod/en-US/07-tips-and-tricks/18-slurm-epilogue).

# Organización de SageMaker HyperPod clústeres con Amazon EKS
<a name="sagemaker-hyperpod-eks"></a>

SageMaker HyperPod es un servicio SageMaker gestionado por IA que permite el entrenamiento a gran escala de modelos básicos en clústeres de cómputo resilientes y de larga duración, integrándose con Amazon EKS para organizar los recursos de cómputo. HyperPod Puede ejecutar tareas de formación ininterrumpidas que abarquen semanas o meses a gran escala utilizando clústeres de Amazon EKS con características de HyperPod resiliencia que comprueban diversos fallos de hardware y recuperan automáticamente los nodos defectuosos. 

Entre las principales características para los usuarios administradores de clústeres se incluyen las siguientes.
+ Aprovisionamiento de HyperPod clústeres resilientes y conexión a un plano de control de EKS
+ Administración dinámica de la capacidad, como, por ejemplo, la incorporación de más nodos, la actualización del software y la eliminación de clústeres
+ Acceso a las instancias del clúster directamente a través de `kubectl` o SSM/SSH
+ Ofrece [capacidades de resiliencia](sagemaker-hyperpod-eks-resiliency.md), que incluyen controles de salud básicos, controles de salud profundos, un agente de monitoreo de salud y soporte para PyTorch la reanudación automática del trabajo
+ [Integración con herramientas de observabilidad como [Amazon CloudWatch Container Insights, Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html)[Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) y Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)

Para los usuarios de científicos de datos, el soporte de EKS permite lo siguiente HyperPod .
+ Ejecutar cargas de trabajo en contenedores para entrenar los modelos básicos en el clúster HyperPod 
+ Ejecutar inferencias en el clúster de EKS y aprovechar la integración entre EKS HyperPod 
+ Aprovechar la capacidad de reanudación automática del trabajo para la formación de [Kubeflow PyTorch ](https://www.kubeflow.org/docs/components/training/user-guides/pytorch/) () PyTorchJob

**nota**  
Amazon EKS permite la organización de tareas e infraestructura gestionada por los usuarios SageMaker HyperPod a través del plano de control de Amazon EKS. Asegúrese de que el acceso de los usuarios al clúster a través del punto final del servidor API de Kubernetes siga el principio del mínimo privilegio y de que la salida de la red del clúster sea segura. HyperPod   
Para obtener más información sobre cómo proteger el acceso al servidor de API de Amazon EKS, consulte [Controlar el acceso de la red al punto de conexión del servidor de API del clúster](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html).  
Para obtener más información sobre cómo proteger el acceso a la red, consulte. HyperPod [Configuración SageMaker HyperPod con una Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc)

La arquitectura de alto nivel del soporte de Amazon EKS HyperPod implica un mapeo 1 a 1 entre un clúster de EKS (plano de control) y un HyperPod clúster (nodos de trabajo) dentro de una VPC, como se muestra en el siguiente diagrama.

![\[EKS and HyperPod VPC architecture with control plane, clúster nodes, and Servicios de AWS.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod-eks-diagram.png)


# Administración de SageMaker HyperPod clústeres orquestados por Amazon EKS
<a name="sagemaker-hyperpod-eks-operate"></a>

Esta sección proporciona orientación sobre la administración SageMaker HyperPod a través de la interfaz de usuario de la consola de SageMaker IA o la AWS Command Line Interface (CLI). En ella se explica cómo realizar diversas tareas relacionadas SageMaker HyperPod con si prefieres una interfaz visual o trabajar con comandos.

**Topics**
+ [Cómo empezar a utilizar el soporte de Amazon EKS en SageMaker HyperPod](sagemaker-hyperpod-eks-prerequisites.md)
+ [Instalación de paquetes en el clúster de Amazon EKS mediante Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md)
+ [Configuración del control de acceso basado en roles de Kubernetes](sagemaker-hyperpod-eks-setup-rbac.md)
+ [Imágenes de Amazon Machine personalizadas (AMIs) para SageMaker HyperPod clústeres](hyperpod-custom-ami-support.md)
+ [Administrar los clústeres de SageMaker HyperPod EKS mediante la SageMaker consola](sagemaker-hyperpod-eks-operate-console-ui.md)
+ [Crear SageMaker HyperPod clústeres mediante CloudFormation plantillas](smcluster-getting-started-eks-console-create-cluster-cfn.md)
+ [Administrar los clústeres de SageMaker HyperPod EKS mediante el AWS CLI](sagemaker-hyperpod-eks-operate-cli-command.md)
+ [HyperPod puntos de control gestionados por niveles](managed-tier-checkpointing.md)
+ [SageMaker HyperPod gobierno de tareas](sagemaker-hyperpod-eks-operate-console-ui-governance.md)
+ [Informes de uso para la atribución de costes en SageMaker HyperPod](sagemaker-hyperpod-usage-reporting.md)
+ [Configuración del almacenamiento para SageMaker HyperPod clústeres organizados por Amazon EKS](sagemaker-hyperpod-eks-setup-storage.md)
+ [Uso del controlador CSI de Amazon EBS en SageMaker HyperPod clústeres de EKS](sagemaker-hyperpod-eks-ebs.md)
+ [Configuración de etiquetas y manchas personalizadas de Kubernetes en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-custom-labels-and-taints.md)

# Cómo empezar a utilizar el soporte de Amazon EKS en SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-prerequisites"></a>

Además del formulario general [Requisitos previos para su uso SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) SageMaker HyperPod, consulte los siguientes requisitos y consideraciones para organizar SageMaker HyperPod clústeres con Amazon EKS.

**importante**  
Puede configurar los recursos para crear SageMaker HyperPod clústeres mediante las teclas Consola de administración de AWS y CloudFormation. Para obtener más información, consulte [Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md) y [Crear SageMaker HyperPod clústeres mediante CloudFormation plantillas](smcluster-getting-started-eks-console-create-cluster-cfn.md).

**Requisitos**

**nota**  
Antes de crear un HyperPod clúster, necesita un clúster de Amazon EKS en ejecución configurado con VPC e instalado mediante Helm.
+ Si utiliza la consola SageMaker AI, puede crear un clúster de Amazon EKS en la página de la consola de HyperPod clústeres. Para obtener más información, consulte [Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).
+ Si utiliza AWS CLI, debe crear un clúster de Amazon EKS antes de crear un HyperPod clúster con el que asociarse. Para obtener más información, consulte [Creación de un clúster de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) en la Guía del usuario de Amazon EKS.

A la hora de aprovisionar el clúster de Amazon EKS, tenga en cuenta lo siguiente:

1. **Compatibilidad con la versión de Kubernetes**
   + SageMaker HyperPod es compatible con las versiones 1.28, 1.29, 1.30, 1.31, 1.32, 1.33 y 1.34 de Kubernetes.

1. **Modo de autenticación de clústeres de Amazon EKS**
   + El modo de autenticación de un clúster de Amazon EKS compatible con SageMaker HyperPod son `API` y`API_AND_CONFIG_MAP`.

1. **Redes**
   + SageMaker HyperPod requiere la versión 1.18.3 o posterior del complemento Amazon VPC Container Network Interface (CNI).
**nota**  
AWS El [complemento CNI de VPC para Kubernetes](https://github.com/aws/amazon-vpc-cni-k8s) es el único CNI compatible con. SageMaker HyperPod
   + El [tipo de subred de la](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-types) VPC debe ser privado HyperPod para los clústeres.

1. **Roles de IAM**
   + Asegúrese de que las funciones de IAM necesarias HyperPod estén configuradas tal y como se indica en la sección. [AWS Identity and Access Management para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md)

1. **Complementos de clústeres de Amazon EKS**
   + Puede seguir utilizando los distintos complementos que ofrece Amazon EKS, como [Kube-proxy, CoreDNS,](https://docs.aws.amazon.com/eks/latest/userguide/add-ons-kube-proxy.html) el complemento [Amazon VPC Container Network Interface (CNI)[,](https://docs.aws.amazon.com/eks/latest/userguide/add-ons-coredns.html) la identidad del pod de Amazon EKS, el GuardDuty agente, el controlador Amazon Container Storage Interface (CSI](https://docs.aws.amazon.com/eks/latest/userguide/add-ons-vpc-cni.html)), el controlador CSI Mountpoint for FSx Amazon S3, la Distro for y el agente Observability. AWS OpenTelemetry CloudWatch

**Consideraciones para configurar SageMaker HyperPod clústeres con Amazon EKS**
+ Debe utilizar roles de IAM distintos en función del tipo de nodo. Para HyperPod los nodos, utilice un rol basado en[Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod). Para los nodos de Amazon EKS, consulte [Rol de IAM de nodo de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html).
+ Puede aprovisionar y montar volúmenes de Amazon EBS adicionales en SageMaker HyperPod los nodos mediante dos enfoques: utilizar [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-InstanceStorageConfigs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-InstanceStorageConfigs)el aprovisionamiento de volúmenes a nivel de clúster (disponible al crear o actualizar grupos de instancias) o utilizar el controlador Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) para la gestión dinámica de volúmenes a nivel de pod. Con [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-InstanceStorageConfigs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-InstanceStorageConfigs), configure la [ruta local](https://kubernetes.io/docs/concepts/storage/volumes/#local) en `/opt/sagemaker` para montar correctamente los volúmenes en sus pods de Amazon EKS. Para obtener información sobre cómo implementar el controlador [CSI de Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) en HyperPod los nodos, consulte. [Uso del controlador CSI de Amazon EBS en SageMaker HyperPod clústeres de EKS](sagemaker-hyperpod-eks-ebs.md)
+ Si usa etiquetas de tipo de instancia para definir las restricciones de programación, asegúrese de usar los tipos de instancias de SageMaker AI ML con el prefijo. `ml.` Por ejemplo, para las instancias P5, utilice `ml.p5.48xlarge` en lugar de `p5.48xlarge`.

**Consideraciones para configurar la red para SageMaker HyperPod clústeres con Amazon EKS**
+ Cada instancia de HyperPod clúster admite una interfaz de red elástica (ENI). Para conocer la cantidad máxima de pods por tipo de instancia, consulte la siguiente tabla.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ De forma predeterminada, solo los pods con `hostNetwork = true` tienen acceso al servicio de metadatos de instancias (IMDS) de Amazon EC2. Usa la identidad del pod de Amazon EKS o las [funciones de IAM para las cuentas de servicio (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) para administrar el acceso a AWS las credenciales de los pods.
+  HyperPod Los clústeres orquestados por EKS admiten modos de direccionamiento IP dual, lo que permite la configuración con o IPv4 para los clústeres de IPv6 IPv6 Amazon EKS en entornos de subred y IPv6 VPC habilitados. Para obtener más información, consulte [Configuración SageMaker HyperPod con una Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

**Consideraciones sobre el uso de las funciones de resiliencia del clúster HyperPod **
+ No se admite el reemplazo automático de nodos en las instancias de CPU.
+ El agente de supervisión del HyperPod estado debe estar instalado para que funcione la recuperación automática del nodo. El agente se puede instalar mediante Helm. Para obtener más información, consulte [Instalación de paquetes en el clúster de Amazon EKS mediante Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).
+ El agente de control HyperPod exhaustivo y supervisión del estado es compatible con las instancias GPU y Trn.
+ SageMaker La IA afecta de la siguiente manera a los nodos cuando se someten a controles de estado exhaustivos:

  ```
  effect: NoSchedule
  key: sagemaker.amazonaws.com/node-health-status
  value: Unschedulable
  ```
**nota**  
No puede añadir taints personalizadas a los nodos de los grupos de instancias con la opción `DeepHealthChecks` activada.

 Una vez que el clúster de Amazon EKS esté en ejecución, configúrelo con el administrador de paquetes Helm tal y como se indica [Instalación de paquetes en el clúster de Amazon EKS mediante Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md) antes de crear el HyperPod clúster.

# Instalación de paquetes en el clúster de Amazon EKS mediante Helm
<a name="sagemaker-hyperpod-eks-install-packages-using-helm-chart"></a>

Antes de crear un SageMaker HyperPod clúster y adjuntarlo a un clúster de Amazon EKS, debe instalar los paquetes con [Helm](https://helm.sh/), un administrador de paquetes para Kubernetes. Helm es una herramienta de código abierto para configurar un proceso de instalación para los clústeres de Kubernetes. Permite la automatización y la optimización de las instalaciones de dependencias y simplifica varias configuraciones necesarias para preparar el clúster de Amazon EKS como el orquestador (plano de control) de un clúster. SageMaker HyperPod 

El equipo SageMaker HyperPod de servicio proporciona un paquete de gráficos de Helm, que incluye las dependencias clave, como device/EFA complementos, [Kubeflow](https://www.kubeflow.org/docs/components/training/) Training Operator y las configuraciones de permisos asociadas.

**importante**  
Este paso de instalación de Helm es obligatorio. Si configura su clúster de Amazon EKS con [Consola de administración de AWS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md) o [CloudFormation](smcluster-getting-started-eks-console-create-cluster-cfn.md), puede omitir este paso porque la instalación se gestiona automáticamente durante el proceso de configuración. Si configura el clúster directamente con el APIs, utilice el gráfico de Helm proporcionado para configurar el clúster de Amazon EKS. Si no configura su clúster de Amazon EKS con el diagrama de Helm proporcionado, es posible que el SageMaker HyperPod clúster no funcione correctamente o que el proceso de creación falle por completo. No se puede modificar el nombre del espacio de nombres de `aws-hyperpod`.

1. [Instale Helm](https://helm.sh/docs/intro/install/) en el equipo local.

1. Descargue los gráficos de Helm proporcionados SageMaker HyperPod `helm_chart/HyperPodHelmChart` en el [repositorio de SageMaker HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart).

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-cli.git
   cd sagemaker-hyperpod-cli/helm_chart
   ```

1. Actualice las dependencias del gráfico de Helm, obtenga una vista previa de los cambios que se realizarán en el clúster de Kubernetes e instale el gráfico de Helm.

   ```
   helm dependencies update HyperPodHelmChart
   ```

   ```
   helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system --dry-run
   ```

   ```
   helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system
   ```

En resumen, la instalación de Helm configura varios componentes para su clúster de Amazon EKS, como la programación y las colas de tareas (Kueue), la administración del almacenamiento, la MLflow integración y Kubeflow. Además, los gráficos instalan los siguientes componentes para integrarlos con las funciones de resiliencia del SageMaker HyperPod clúster, que son componentes necesarios.
+ **Agente de monitoreo de salud**: instala el agente de monitoreo de salud proporcionado por. SageMaker HyperPod Esto es necesario si desea que su HyperPod clúster sea monitoreado. Los agentes de supervisión del estado se proporcionan como imágenes de Docker de la siguiente manera. En los `values.yaml` proporcionados de los gráficos de Helm, la imagen está preestablecida. El agente admite instancias e Trainium-accelerator-based instancias basadas en GPU (`trn1`,`trn1n`,`inf2`). Se instala en el espacio de nombres `aws-hyperpod`. Para encontrar tu URI compatible, consulta [las regiones compatibles y su ECR URIs en el sagemaker-hyperpod-cli](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/readme.md#6-notes) repositorio de. GitHub
+ **Verificación de estado profunda**: configura a`ClusterRole`, a ServiceAccount (`deep-health-check-service-account`) en el espacio de `aws-hyperpod` nombres y `ClusterRoleBinding` a para habilitar la función de verificación de estado SageMaker HyperPod profunda. Para obtener más información sobre el archivo RBAC de Kubernetes para una comprobación profunda del estado, consulte el archivo de configuración en [https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/deep-health-check/templates/deep-health-check-rbac.yaml](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/deep-health-check/templates/deep-health-check-rbac.yaml)el repositorio de CLI. SageMaker HyperPod GitHub 
+ **`job-auto-restart`**- Esto configura a`ClusterRole`, a ServiceAccount (`job-auto-restart`) en el espacio de `aws-hyperpod` nombres y a`ClusterRoleBinding`, para habilitar la función de reinicio automático para los trabajos de PyTorch formación en. SageMaker HyperPod Para obtener más información sobre el archivo RBAC de Kubernetes`job-auto-restart`, consulte el archivo de configuración en [https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/job-auto-restart/templates/job-auto-restart-rbac.yaml](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/job-auto-restart/templates/job-auto-restart-rbac.yaml)el repositorio CLI. SageMaker HyperPod GitHub 
+ **Operador de MPI de Kubeflow**: el [MPI Operator](https://github.com/kubeflow/mpi-operator) es un operador de Kubernetes que simplifica la ejecución de cargas de trabajo distribuidas de machine learning (ML) y computación de alto rendimiento (HPC) mediante la interfaz de transferencia de mensajes (MPI) en los clústeres de Kubernetes. Instala MPI Operator v0.5. Se instala en el espacio de nombres `mpi-operator`.
+ **`nvidia-device-plugin`**— Se trata de un complemento para dispositivos de Kubernetes que le permite exponer automáticamente NVIDIA GPUs para que los contenedores de su clúster de Amazon EKS lo consuman. Permite a Kubernetes asignar y proporcionar acceso a lo solicitado para ese contenedor. GPUs Esto es necesario cuando se utiliza un tipo de instancia con GPU.
+ **`neuron-device-plugin`**: se trata de un complemento para dispositivos de Kubernetes que le permite exponer automáticamente chips de AWS Inferentia para que los consuman los contenedores del clúster de Amazon EKS. Permite a Kubernetes acceder a los chips AWS Inferentia de los nodos del clúster y utilizarlos. Esto es necesario cuando se utiliza un tipo de instancia de Neuron.
+ **`aws-efa-k8s-device-plugin`**— Se trata de un complemento para dispositivos de Kubernetes que permite el uso de AWS Elastic Fabric Adapter (EFA) en los clústeres de Amazon EKS. El EFA es un dispositivo de red que proporciona una comunicación de baja latencia y alto rendimiento entre las instancias de un clúster. Esto es necesario cuando se utiliza un tipo de instancia compatible con EFA.

Para obtener más información sobre el procedimiento de instalación mediante los gráficos de Helm proporcionados, consulte el [archivo README en el repositorio SageMaker HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart).

# Configuración del control de acceso basado en roles de Kubernetes
<a name="sagemaker-hyperpod-eks-setup-rbac"></a>

Los usuarios administradores de clústeres también deben configurar el [control de acceso basado en roles (RBAC) de Kubernetes](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) para que los usuarios de científicos de datos usen la [SageMaker HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli) para ejecutar cargas de trabajo en clústeres organizados con Amazon EKS. HyperPod 

## Opción 1: configuración de RBAC mediante el gráfico de Helm
<a name="sagemaker-hyperpod-eks-setup-rbac-helm"></a>

El equipo de SageMaker HyperPod servicio proporciona un subgráfico de Helm para configurar el RBAC. Para obtener más información, consulte [Instalación de paquetes en el clúster de Amazon EKS mediante Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).

## Opción 2: configuración manual de RBAC
<a name="sagemaker-hyperpod-eks-setup-rbac-manual"></a>

Cree `ClusterRole` y `ClusterRoleBinding` con el mínimo de privilegios y cree `Role` y `RoleBinding` con permisos de mutación.

**Creación de `ClusterRole` y `ClusterRoleBinding` para el rol de IAM de científico de datos**

Cree un archivo de configuración de clúster `cluster_level_config.yaml` de la siguiente manera.

```
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: hyperpod-scientist-user-cluster-role
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["list"]
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: hyperpod-scientist-user-cluster-role-binding
subjects:
- kind: Group
  name: hyperpod-scientist-user-cluster-level
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: hyperpod-scientist-user-cluster-role # this must match the name of the Role or ClusterRole you wish to bind to
  apiGroup: rbac.authorization.k8s.io
```

Aplique la configuración al clúster de EKS.

```
kubectl apply -f cluster_level_config.yaml
```

**Para crear un rol y un espacio de nombres RoleBinding **

Este es el operador de entrenamiento del espacio de nombres que ejecuta los trabajos de entrenamiento, y Resiliencia lo supervisará de forma predeterminada. La reanudación automática de trabajos solo se admite en el espacio de nombres `kubeflow` o en el espacio de nombres con el prefijo `aws-hyperpod`. 

Cree un archivo de configuración de rol `namespace_level_role.yaml` de la siguiente manera. En este ejemplo se crea un rol en el espacio de nombres `kubeflow`.

```
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: kubeflow
  name: hyperpod-scientist-user-namespace-level-role
###
#  1) add/list/describe/delete pods
#  2) get/list/watch/create/patch/update/delete/describe kubeflow pytroch job
#  3) get pod log
###
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["create", "get"]
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get", "list"]
- apiGroups: [""]
  resources: ["pods/log"]
  verbs: ["get", "list"]
- apiGroups: [""]
  resources: ["pods/exec"]
  verbs: ["get", "create"]
- apiGroups: ["kubeflow.org"]
  resources: ["pytorchjobs", "pytorchjobs/status"]
  verbs: ["get", "list", "create", "delete", "update", "describe"]
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["create", "update", "get", "list", "delete"]
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["create", "get", "list", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: kubeflow
  name: hyperpod-scientist-user-namespace-level-role-binding
subjects:
- kind: Group
  name: hyperpod-scientist-user-namespace-level
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: hyperpod-scientist-user-namespace-level-role # this must match the name of the Role or ClusterRole you wish to bind to
  apiGroup: rbac.authorization.k8s.io
```

Aplique la configuración al clúster de EKS.

```
kubectl apply -f namespace_level_role.yaml
```

## Creación de una entrada de acceso para los grupos de Kubernetes
<a name="sagemaker-hyperpod-eks-setup-rbac-access-entry"></a>

Tras configurar RBAC mediante una de las dos opciones anteriores, utilice el siguiente comando de ejemplo para reemplazar la información necesaria.

```
aws eks create-access-entry \
    --cluster-name <eks-cluster-name> \
    --principal-arn arn:aws:iam::<AWS_ACCOUNT_ID_SCIENTIST_USER>:role/ScientistUserRole \
    --kubernetes-groups '["hyperpod-scientist-user-namespace-level","hyperpod-scientist-user-cluster-level"]'
```

En el parámetro `principal-arn`, debe utilizar el [Usuarios de IAM para científicos](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-user).

# Imágenes de Amazon Machine personalizadas (AMIs) para SageMaker HyperPod clústeres
<a name="hyperpod-custom-ami-support"></a>

Con las imágenes básicas de Amazon Machine Images (AMIs) proporcionadas y publicadas por Amazon SageMaker HyperPod, puedes crear productos personalizados AMIs. Con una AMI personalizada, puede crear entornos especializados para cargas de trabajo de IA con pilas de software preconfiguradas, personalizaciones de controladores, dependencias patentadas y agentes de seguridad. Esta capacidad elimina la necesidad de realizar complejas tareas de arranque posteriores al lanzamiento con scripts de configuración del ciclo de vida.

Con la personalización AMIs, puede estandarizar los entornos en diferentes etapas, acelerar los tiempos de inicio y tener el control total sobre su entorno de ejecución, al tiempo que aprovecha las capacidades SageMaker HyperPod de infraestructura y las ventajas de escalado. Esto le ayuda a mantener el control de su infraestructura de IA y, al mismo tiempo, beneficiarse del tiempo de SageMaker HyperPod ejecución básico optimizado.

Puede aprovechar las imágenes base SageMaker HyperPod optimizadas para el rendimiento añadiendo agentes de seguridad, herramientas de cumplimiento y bibliotecas especializadas, al tiempo que conserva todos los beneficios de la formación distribuidos. Esta capacidad elimina la necesidad de elegir entre la optimización de la infraestructura y las políticas de seguridad de la organización.

La experiencia con AMI personalizadas se integra perfectamente con los flujos de trabajo de seguridad empresarial establecidos. Los equipos de seguridad crean imágenes reforzadas utilizando SageMaker HyperPod el público AMIs como base, y los equipos de plataformas de IA pueden especificarlas de forma personalizada AMIs al crear o actualizar los clústeres mediante el. SageMaker HyperPod APIs APIs Validan la compatibilidad de las imágenes, gestionan los permisos necesarios y mantienen la compatibilidad con versiones anteriores para que los flujos de trabajo existentes sigan funcionando. Las organizaciones con protocolos de seguridad estrictos pueden eliminar la alternativa propensa a errores de instalar agentes de seguridad en tiempo de ejecución con scripts de ciclo de vida. Al adaptarse a las prácticas de seguridad empresarial en lugar de obligar a las organizaciones a adaptar sus protocolos a las limitaciones, SageMaker HyperPod la personalización AMIs elimina un obstáculo común a la adopción por parte de las organizaciones preocupadas por la seguridad que ejecutan cargas de trabajo críticas de IA.

Para ver las notas de la versión sobre las actualizaciones para el público, consulte. AMIs [Versiones de AMI públicas](sagemaker-hyperpod-release-public-ami.md) Para obtener información sobre cómo empezar a crear una AMI personalizada y usarla en sus HyperPod clústeres, consulte los temas siguientes.

**Topics**
+ [Creación de una AMI de personalizada](hyperpod-custom-ami-how-to.md)
+ [Administración de clústeres con personalización AMIs](hyperpod-custom-ami-cluster-management.md)

# Creación de una AMI de personalizada
<a name="hyperpod-custom-ami-how-to"></a>

En la siguiente página se explica cómo crear una imagen de máquina de Amazon (AMI) personalizada con Amazon SageMaker HyperPod Base AMIs. Empiece por seleccionar una AMI de base y, a continuación, cree su propia AMI personalizada con cualquiera de los métodos habituales para crear nuevas imágenes, como la AWS CLI.

## Seleccione una AMI SageMaker HyperPod base
<a name="hyperpod-custom-ami-select-base"></a>

Puede seleccionar una AMI SageMaker HyperPod base mediante uno de los métodos siguientes.

### AWS selección de consola
<a name="hyperpod-custom-ami-console-selection"></a>

Puede seleccionar la opción pública SageMaker HyperPod AMIs a través de la AWS consola o mediante la llamada a la `DescribeImages` API. SageMaker HyperPod AMIs son públicos y visibles en todos Cuenta de AWS. Puede encontrarlos en el catálogo de AMI de Amazon EC2 aplicando un filtro para buscar información de AMIs propiedad pública de Amazon.

Para buscarlos SageMaker HyperPod AMIs en la consola:

1. Inicie sesión en la consola de Amazon EC2.

1. En el panel de navegación izquierdo, elija **AMIs**.

1. En el menú desplegable **Tipo de imagen**, seleccione **Imágenes públicas**.

1. En los filtros de la barra de búsqueda, establezca el filtro **Alias del propietario** en **amazon**.

1. Busque el AMIs prefijo **HyperPodEKS** y seleccione la AMI (preferiblemente la más reciente) que funcione para su caso de uso. Por ejemplo, puede elegir una AMI entre Kubernetes 1.31 y Kubernetes 1.30.

### Obtenga la última ID de AMI pública a través del AWS CLI
<a name="hyperpod-custom-ami-cli-fetch"></a>

Si desea utilizar siempre la última versión de la AMI pública, es más eficaz utilizar el parámetro SageMaker HyperPod SSM público que contiene el valor de la última ID de AMI publicada por SageMaker HyperPod.

En el siguiente ejemplo se muestra cómo recuperar el ID de la AMI más reciente mediante la AWS CLI:

```
aws ssm get-parameter \
  --name "/aws/service/sagemaker-hyperpod/ami/x86_64/eks-1.31-amazon-linux-2/latest/ami-id" \
  --region us-east-1 \
  --query "Parameter.Value" \
  --output text
```

**nota**  
Sustituya el nombre del parámetro por la versión de Kubernetes correspondiente, según sea necesario. Por ejemplo, si quiere utilizar Kubernetes 1.30, utilice el siguiente parámetro: `/aws/service/hyperpod/ami/x86_64/eks-1.30-amazon-linux-2/latest/ami-id`.

## Creación de la AMI personalizada
<a name="hyperpod-custom-ami-build"></a>

Una vez que haya seleccionado una AMI SageMaker HyperPod pública, úsela como AMI base para crear su propia AMI personalizada con uno de los métodos siguientes. Tenga en cuenta que esta no es una lista exhaustiva de creación AMIs. Puede utilizar cualquier método de construcción de su elección AMIs. SageMaker HyperPod no tiene ninguna recomendación específica.
+ **AWS Consola de administración**: puede lanzar una instancia de Amazon EC2 mediante la SageMaker HyperPod AMI, realizar las personalizaciones que desee y, a continuación, crear una AMI a partir de esa instancia.
+ **AWS CLI**: también puede usar el comando `aws ec2 create-image` para crear una AMI a partir de una instancia de Amazon EC2 existente después de personalizarla.
+ **HashiCorp Packer**: Packer es una herramienta de código abierto HashiCorp que permite crear imágenes de máquinas idénticas para varias plataformas a partir de una única configuración de origen. Permite crear imágenes AMIs para otros proveedores de servicios en la nube y plataformas de virtualización AWS, así como imágenes para ellos.
+ **Generador de imágenes**: Generador de imágenes de EC2 es un servicio de AWS totalmente administrado que facilita la automatización de la creación, el mantenimiento, la validación, el uso compartido y la implementación de imágenes de Linux o Windows Server. Para obtener más información, consulte la [Guía de usuario del generador de imágenes de EC2](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html).

### Cree una AMI personalizada con AWS KMS cifrado gestionado por el cliente
<a name="hyperpod-custom-ami-build-kms"></a>

En las siguientes secciones se describe cómo crear una AMI personalizada con una AWS KMS clave administrada por el cliente para cifrar los volúmenes HyperPod del clúster. Para obtener más información sobre las claves administradas por el cliente HyperPod y la concesión de los permisos necesarios para la política de claves de IAM y KMS, consulte. [Cifrado gestionado por el cliente para AWS KMS key SageMaker HyperPod](smcluster-cmk.md) Si piensa utilizar una AMI personalizada cifrada con una clave gestionada por el cliente, asegúrese de cifrar también el volumen raíz de Amazon EBS del HyperPod clúster con la misma clave.

#### AWS CLI ejemplo: crear una AMI nueva con EC2 Image Builder y HyperPod una imagen base
<a name="hyperpod-custom-ami-cli-example"></a>

En el siguiente ejemplo se muestra cómo crear una AMI con el Generador de imágenes con el cifrado de AWS KMS :

```
aws imagebuilder create-image-recipe \
    name "hyperpod-custom-recipe" \
    version "1.0.0" \
    parent-image "<hyperpod-base-image-id>" \
    block-device-mappings DeviceName="/dev/xvda",Ebs={VolumeSize=100,VolumeType=gp3,Encrypted=true,KmsKeyId=arn:aws:kms:us-east-1:111122223333:key/key-id,DeleteOnTermination=true}
```

#### Consola de Amazon EC2: creación de una AMI nueva desde Amazon EC2
<a name="hyperpod-custom-ami-console-example"></a>

Para crear una AMI desde instancia de Amazon EC2 mediante la consola de Amazon EC2, haga lo siguiente:

1. Haga clic con el botón derecho en la instancia de Amazon EC2 personalizada y seleccione **Crear imagen**.

1. En la sección **Cifrado**, seleccione **Cifrar instantáneas**.

1. Seleccione su clave de KMS en el menú desplegable. Por ejemplo: `arn:aws:kms:us-east-2:111122223333:key/<your-kms-key-id>` o el alias de clave: `alias/<your-hyperpod-key>`.

#### AWS CLI ejemplo: crear una AMI nueva a partir de una instancia de Amazon EC2
<a name="hyperpod-custom-ami-cli-create-image"></a>

Use el comando `aws ec2 create-image` con el cifrado de AWS KMS :

```
aws ec2 create-image \
    instance-id "<instance-id>" \
    name "MyCustomHyperPodAMI" \
    description "Custom HyperPod AMI" \
    block-device-mappings '[
        {
            "DeviceName": "/dev/xvda",
            "Ebs": {
                "Encrypted": true,
                "KmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id",
                "VolumeType": "gp2" 
            }
        }
    ]'
```

# Administración de clústeres con personalización AMIs
<a name="hyperpod-custom-ami-cluster-management"></a>

Una vez creada la AMI personalizada, puede usarla para crear o actualizar un SageMaker HyperPod clúster de Amazon. También puede escalar verticalmente o añadir grupos de instancias que usen la nueva AMI.

## Permisos necesarios para las operaciones de clúster
<a name="hyperpod-custom-ami-permissions"></a>

Agregue los siguientes permisos al usuario administrador del clúster que opera y configura SageMaker HyperPod los clústeres. El siguiente ejemplo de política incluye el conjunto mínimo de permisos para que los administradores de clústeres ejecuten el SageMaker HyperPod núcleo APIs y administren SageMaker HyperPod los clústeres con una AMI personalizada.

Tenga en cuenta que los permisos para compartir instantáneas de AMI y AMI EBS se incluyen mediante los permisos de las API `ModifyImageAttribute` y `ModifySnapshotAttribute` como parte de la siguiente política. Para limitar los permisos de uso compartido, puede seguir los siguientes pasos:
+ Agregue etiquetas para controlar los permisos de uso compartido de la AMI para la AMI y la instantánea de la AMI. Por ejemplo, puede etiquetar la AMI con `AllowSharing` como `true`.
+ Agregue la clave de contexto a la política para permitir que solo se compartan AMI para AMIs etiquetas con determinadas etiquetas.

La siguiente política es una política restringida para garantizar que solo `true` se permitan las AMIs etiquetas con «`AllowSharing`como».

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/your-execution-role-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateCluster",
                "sagemaker:DeleteCluster",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "sagemaker:UpdateCluster",
                "sagemaker:UpdateClusterSoftware",
                "sagemaker:BatchDeleteClusterNodes",
                "eks:DescribeCluster",
                "eks:CreateAccessEntry",
                "eks:DescribeAccessEntry",
                "eks:DeleteAccessEntry",
                "eks:AssociateAccessPolicy",
                "iam:CreateServiceLinkedRole",
                "ec2:DescribeImages",
                "ec2:DescribeSnapshots"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ModifyImageAttribute",
                "ec2:ModifySnapshotAttribute"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/AllowSharing": "true"
                }
            }
        }
    ]
}
```

------

**importante**  
Si tiene previsto usar una AMI personalizada cifrada, asegúrese de que la clave de KMS cumpla con los permisos descritos en [Cifrado gestionado por el cliente para AWS KMS key SageMaker HyperPod](smcluster-cmk.md). Además, asegúrese de que la clave de KMS de la AMI personalizada también se utilice para cifrar el volumen raíz de Amazon EBS del clúster.

## Creación de un clúster
<a name="hyperpod-custom-ami-api-create"></a>

Puede especificar su AMI personalizada en el campo `ImageId` de la operación `CreateCluster`.

Los siguientes ejemplos muestran cómo crear un clúster con una AMI personalizada, con y sin una clave administrada por el AWS KMS cliente para cifrar los volúmenes del clúster.

------
#### [ Standard example ]

En el siguiente ejemplo se muestra cómo crear un clúster con una AMI personalizada.

```
aws sagemaker create-cluster \
   --cluster-name <exampleClusterName> \
   --orchestrator 'Eks={ClusterArn='<eks_cluster_arn>'}' \
   --node-provisioning-mode Continuous \
   --instance-groups '{
   "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ImageId": "<your_custom_ami>",
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "InstanceStorageConfigs": [
   
        {
            "EbsVolumeConfig": {
                "VolumeSizeInGB": 200
            }
        }
   ]
}' --vpc-config '{
   "SecurityGroupIds": ["<security_group>"],
   "Subnets": ["<subnet>"]
}'
```

------
#### [ Customer managed key example ]

El siguiente ejemplo muestra cómo crear un clúster con una AMI personalizada y, al mismo tiempo, especificar su propia clave administrada por el AWS KMS cliente para cifrar los volúmenes de Amazon EBS del clúster. Es posible especificar diferentes claves administradas por el cliente para el volumen raíz y el volumen de almacenamiento de la instancia. Si no utilizas claves administradas por el cliente en el `InstanceStorageConfigs` campo, se utiliza AWS una clave KMS propia para cifrar los volúmenes. Si utilizas claves diferentes para el volumen raíz y los volúmenes de almacenamiento de la instancia secundaria, establece las políticas de claves de KMS necesarias en ambas claves.

```
aws sagemaker create-cluster \
   --cluster-name <exampleClusterName> \
   --orchestrator 'Eks={ClusterArn='<eks_cluster_arn>'}' \
   --node-provisioning-mode Continuous \
   --instance-groups '{
   "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ImageId": "<your_custom_ami>",
   "ExecutionRole": "<arn:aws:iam:us-east-1:444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "InstanceStorageConfigs": [
             # Root volume configuration
            {
                "EbsVolumeConfig": {
                    "RootVolume": True,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id"
                }
            },
            # Instance storage volume configuration
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id"
                }
            }
   ]
}' --vpc-config '{
   "SecurityGroupIds": ["<security_group>"],
   "Subnets": ["<subnet>"]
}'
```

------

## Actualización del software de clúster
<a name="hyperpod-custom-ami-api-update"></a>

Si quiere actualizar un grupo de instancias existente en su clúster con la AMI personalizada, puede usar la operación `UpdateClusterSoftware` y especificar su AMI personalizada en el campo `ImageId`. Tenga en cuenta que, a menos que especifiques el nombre de un grupo de instancias específico en su solicitud, la nueva imagen se aplicará a todos los grupos de instancias del clúster.

En el siguiente ejemplo se muestra cómo actualizar el software de plataforma de un clúster con una AMI personalizada:

```
aws sagemaker update-cluster-software \
   --cluster-name <exampleClusterName> \
   --instance-groups <instanceGroupToUpdate> \
   --image-id <customAmiId>
```

## Escalado vertical de un grupo de instancias
<a name="hyperpod-custom-ami-scale-up"></a>

En los siguientes ejemplos, se muestra cómo escalar un grupo de instancias para un clúster mediante una AMI personalizada, con o sin una clave administrada por el AWS KMS cliente para el cifrado.

------
#### [ Standard example ]

En el siguiente ejemplo se muestra cómo escalar verticalmente un grupo de instancias con una AMI personalizada.

```
aws sagemaker update-cluster \
    --cluster-name <exampleClusterName> --instance-groups '[{                  
    "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "ImageId": "<your_custom_ami>"
}]'
```

------
#### [ Customer managed key example ]

El siguiente ejemplo muestra cómo actualizar y escalar el clúster con una AMI personalizada y, al mismo tiempo, especificar su propia clave administrada por el AWS KMS cliente para cifrar los volúmenes de Amazon EBS del clúster. Es posible especificar diferentes claves administradas por el cliente para el volumen raíz y el volumen de almacenamiento de la instancia. Si no utilizas claves administradas por el cliente en el `InstanceStorageConfigs` campo, se utiliza AWS una clave KMS propia para cifrar los volúmenes. Si utilizas claves diferentes para el volumen raíz y los volúmenes de almacenamiento de la instancia secundaria, establece las políticas de claves de KMS necesarias en ambas claves.

```
aws sagemaker update-cluster \
    --cluster-name <exampleClusterName> --instance-groups '[{                  
    "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "ImageId": "<your_custom_ami>",
   "InstanceStorageConfigs": [
             # Root volume configuration
            {
                "EbsVolumeConfig": {
                    "RootVolume": True,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id"
                }
            },
            # Instance storage volume configuration
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id"
                }
            }
   ]
}]'
```

------

## Adición de un grupo de instancias
<a name="hyperpod-custom-ami-add-instance-group"></a>

En el siguiente ejemplo se muestra cómo añadir un grupo de instancias a un clúster con una AMI personalizada:

```
aws sagemaker update-cluster \
   --cluster-name "<exampleClusterName>" \
   --instance-groups '{
   "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "ImageId": "<your_custom_ami>"
}' '{
   "InstanceGroupName": "<exampleGroupName2>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 1,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "ImageId": "<your_custom_ami>"
}'
```

# Administrar los clústeres de SageMaker HyperPod EKS mediante la SageMaker consola
<a name="sagemaker-hyperpod-eks-operate-console-ui"></a>

Los siguientes temas proporcionan orientación sobre cómo administrar SageMaker HyperPod en la consola de SageMaker IA.

**Topics**
+ [Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md)
+ [Navegación, visualización y edición de SageMaker HyperPod clústeres](sagemaker-hyperpod-eks-operate-console-ui-browse-view-edit.md)
+ [Eliminar un SageMaker HyperPod clúster](sagemaker-hyperpod-eks-operate-console-ui-delete-cluster.md)

# Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS
<a name="sagemaker-hyperpod-eks-operate-console-ui-create-cluster"></a>

El siguiente tutorial muestra cómo crear un SageMaker HyperPod clúster nuevo y configurarlo con Amazon EKS Orchestration a través de la interfaz de usuario de la consola SageMaker AI.

**Topics**
+ [Creación de un clúster](#smcluster-getting-started-eks-console-create-cluster-page)
+ [Implementación de recursos](#smcluster-getting-started-eks-console-create-cluster-deploy)

## Creación de un clúster
<a name="smcluster-getting-started-eks-console-create-cluster-page"></a>

Para ir a la página de **SageMaker HyperPod clústeres** y elegir Amazon EKS Orchestration, siga estos pasos.

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

1. Seleccione **HyperPod Clusters** en el panel de navegación izquierdo y, a continuación, **Cluster Management**.

1. En la página **SageMaker HyperPod Clústeres**, elija **Crear HyperPod clúster**. 

1. En el menú desplegable **Crear HyperPod clúster**, elija **Orchestrated by Amazon EKS**.

1. En la página de creación de clústeres de EKS, verá dos opciones. Elija la opción que mejor se adapte a sus necesidades.

   1. **Configuración rápida**: para comenzar de inmediato con la configuración predeterminada, seleccione **Configuración rápida**. Con esta opción, la SageMaker IA creará nuevos recursos, como VPC, subredes, grupos de seguridad, un bucket de Amazon S3, una función de IAM y FSx para Lustre, durante el proceso de creación del clúster.

   1. **Configuración personalizada**: para integrarse con los recursos de AWS existentes o tener requisitos específicos de red, seguridad o almacenamiento, seleccione **Configuración personalizada**. Con esta opción, puede optar por utilizar los recursos existentes o crear unos nuevos. Además, puede personalizar la configuración que mejor se adapte a sus necesidades.

## Configuración rápida
<a name="smcluster-getting-started-eks-console-create-cluster-default"></a>

En la sección **Configuración rápida**, siga estos pasos para crear su HyperPod clúster con la orquestación de Amazon EKS.

### Configuración general
<a name="smcluster-getting-started-eks-console-create-cluster-default-general"></a>

Especifique un nombre para el nuevo clúster. Después de crear el clúster no puede cambiarle el nombre.

### Grupos de instancias
<a name="smcluster-getting-started-eks-console-create-cluster-default-instance-groups"></a>

Para añadir un grupo de instancias, elija **Agregar grupo**. Cada grupo de instancias se puede configurar de una forma diferente y se puede crear un clúster heterogéneo que conste de varios grupos de instancias con diversos tipos de instancias. Para implementar un clúster, debe agregar al menos un grupo de instancias. Siga estos pasos para agregar un grupo de instancias.

1. Para **Tipo del grupo de instancias**, seleccione **Estándar** o **Grupo de instancias restringido (RIG)**. En general, se selecciona **Estándar** pues proporciona un entorno computacional de uso general sin restricciones de seguridad adicionales. **Grupo de instancias restringido (RIG)** es un entorno especializado para la personalización de modelos fundacionales, como Amazon Nova. Para obtener más información sobre cómo configurar RIG para la personalización de modelos de Amazon Nova, consulte la personalización de Amazon Nova SageMaker HyperPod en la guía del [usuario de Amazon Nova 1.0 o en la guía](https://docs.aws.amazon.com//nova/latest/userguide/nova-hp.html) del [usuario de Amazon Nova 2.0](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp.html).

1. En **Nombre**, especifique un nombre para el grupo de instancias.

1.  En **Capacidad de instancia**, elija la capacidad bajo demanda o un plan de entrenamiento para reservar recursos de computación.

1. En **Tipo de instancia**, elija la instancia del grupo de instancias.
**importante**  
Asegúrese de elegir un tipo de instancia con bastantes cuotas y que tenga suficientes direcciones IP sin asignar para su cuenta. Para ver o solicitar cuotas adicionales, consulte [SageMaker HyperPod cuotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. En **Cantidad de instancias**, especifique un número entero que no supere la cuota de instancias de uso del clúster. Para este tutorial, introduzca **1** para los tres grupos.

1. En **Zona de disponibilidad de destino**, elija la zona de disponibilidad en la que se aprovisionarán las instancias. La zona de disponibilidad debe corresponder a la ubicación de la capacidad de computación acelerada.

1. En **Volumen de almacenamiento adicional por instancia (GB) - opcional**, especifique un número entero entre 1 y 16 384 para establecer el tamaño de un volumen adicional de Elastic Block Store (EBS) en gigabytes (GB). El volumen de EBS está asociado a cada instancia del grupo de instancias. La ruta de montaje predeterminada para el volumen de EBS adicional es `/opt/sagemaker`. Una vez que el clúster se haya creado correctamente, puede utilizar SSH en las instancias del clúster (nodos) y verificar si el volumen de EBS está montado correctamente ejecutando el comando `df -h`. La conexión de un volumen de EBS adicional proporciona un almacenamiento estable, fuera de la instancia y persistente de forma independiente, tal y como se describe en la sección [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) de la *Guía del usuario de Amazon Elastic Block Store*.

1. En **Comprobaciones exhaustivas del estado de las instancias**, elija la opción deseada. Las comprobaciones exhaustivas de estado supervisan el estado de las instancias durante la creación y después de las actualizaciones de software, y recuperan automáticamente las instancias con error mediante reinicios o sustituciones cuando están habilitadas.

1. Si tu tipo de instancia admite la partición de GPU con GPU de instancias múltiples (MIG), puedes habilitar la configuración de particiones de GPU para el grupo de instancias. La partición de la GPU te permite GPUs dividirla en particiones más pequeñas y aisladas para mejorar el uso de los recursos. Para obtener más información, consulte [Uso de particiones de GPU en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

   1. Activa la opción **Usar partición de GPU para habilitar la partición** de GPU para este grupo de instancias.

   1. Selecciona un **perfil de partición de GPU** entre las opciones disponibles para tu tipo de instancia. Cada perfil define la configuración del segmento de GPU y la asignación de memoria.

1. Elija **Agregar grupo de instancias**.

### Valores predeterminados de la configuración rápida
<a name="smcluster-getting-started-eks-console-create-cluster-default-settings"></a>

En esta sección se enumeran todos los ajustes predeterminados para la creación del clúster, incluidos todos los AWS recursos nuevos que se crearán durante el proceso de creación del clúster. Revise la configuración predeterminada.

## Configuración personalizada
<a name="smcluster-getting-started-eks-console-create-cluster-custom"></a>

En la sección **Configuración personalizada**, siga estos pasos para crear su primer HyperPod clúster con la orquestación de Amazon EKS.

### Configuración general
<a name="smcluster-getting-started-eks-console-create-cluster-custom-general"></a>

Especifique un nombre para el nuevo clúster. Después de crear el clúster no puede cambiarle el nombre.

En **Recuperación de instancias**, elija **Automática - *recomendado*** o **Ninguna**. 

### Red
<a name="smcluster-getting-started-eks-console-create-cluster-custom-network"></a>

Configure los ajustes de red dentro del clúster y in-and-out del clúster. Para la orquestación del SageMaker HyperPod clúster con Amazon EKS, la VPC se establece automáticamente en la que se configuró con el clúster de EKS que seleccionó.

1. En el caso de la **VPC**, elige tu propia VPC si ya tienes una que dé acceso de SageMaker IA a tu VPC. Para crear una VPC nueva, siga las instrucciones de la sección [Creación de una VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) de la *Guía del usuario de Amazon Virtual Private Cloud*. Puedes dejarlo como **Ninguno** para usar la VPC de SageMaker IA predeterminada.

1. Para el **bloque IPv4 CIDR de VPC**, introduzca la IP de inicio de la VPC.

1. Para **las zonas de disponibilidad**, elija las zonas de disponibilidad (AZ) en las que se HyperPod crearán las subredes para el clúster. Elija una AZs que coincida con la ubicación de su capacidad informática acelerada.

1. En **Grupos de seguridad**, elija grupos de seguridad que estén asociados al clúster de Amazon EKS o cuyo tráfico entrante esté permitido por el grupo de seguridad asociado al clúster de Amazon EKS. Para crear nuevos grupos de seguridad, vaya a la consola de Amazon VPC.

### Orquestación
<a name="smcluster-getting-started-eks-console-create-cluster-custom-orchestration"></a>

Siga estos pasos para crear o seleccionar un clúster de Amazon EKS para usarlo como orquestador. 

1. En **Clúster de EKS**, elija crear un nuevo clúster de Amazon EKS o utilizar uno existente. 

   Si debe crear un nuevo clúster de EKS, puede crearlo en la sección Clúster de EKS sin abrir la consola de Amazon EKS.
**nota**  
La subred de VPC que elija debe ser HyperPod privada.   
Tras enviar una solicitud de creación de un nuevo clúster de EKS, espere a que el clúster de EKS pase a estar `Active`.

1. En **Versión de Kubernetes**, elija una versión en el menú desplegable. Para obtener más información sobre las versiones de Kubernetes, consulte [Descripción del ciclo de vida de las versiones de Kubernetes en EKS](https://docs.aws.amazon.com//eks/latest/userguide/kubernetes-versions.html) en la *Guía del usuario de Amazon EKS*.

1. En **Operadores**, elija **Usa gráficos y complementos predeterminados de Helm** o **No instales operadores**. La opción predeterminada es **Usar gráficos y complementos predeterminados de Helm**, que se utilizará para instalar los operadores en el clúster de EKS. Para obtener más información sobre los gráficos y complementos predeterminados de Helm, consulte el [https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart/HyperPodHelmChart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart/HyperPodHelmChart) GitHubrepositorio. Para obtener más información, consulte [Instalación de paquetes en el clúster de Amazon EKS mediante Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).

1. En **Operadores habilitados**, consulte la lista de operadores habilitados. Para editar los operadores, desmarque la casilla situada en la parte superior y elija los operadores que desee activar en el clúster de EKS. 
**nota**  
Para utilizarlos HyperPod con EKS, debe instalar los gráficos y complementos de Helm que habiliten a los operadores en el clúster de EKS. Estos componentes configuran EKS como el plano de control HyperPod y proporcionan la configuración necesaria para la gestión y organización de la carga de trabajo.

### Grupos de instancias
<a name="smcluster-getting-started-eks-console-create-cluster-custom-instance-groups"></a>

Para añadir un grupo de instancias, elija **Agregar grupo**. Cada grupo de instancias se puede configurar de una forma diferente y se puede crear un clúster heterogéneo que conste de varios grupos de instancias con diversos tipos de instancias. Para implementar un clúster, debe agregar al menos un grupo de instancias. Siga estos pasos para agregar un grupo de instancias.

1. Para **Tipo del grupo de instancias**, seleccione **Estándar** o **Grupo de instancias restringido (RIG)**. En general, se selecciona **Estándar** pues proporciona un entorno computacional de uso general sin restricciones de seguridad adicionales. **Grupo de instancias restringido (RIG)** es un entorno especializado para la personalización de modelos fundacionales, como Amazon Nova. Para obtener más información sobre cómo configurar RIG para la personalización de modelos de Amazon Nova, consulte la personalización de Amazon Nova SageMaker HyperPod en la guía del [usuario de Amazon Nova 1.0 o en la guía](https://docs.aws.amazon.com//nova/latest/userguide/nova-hp.html) del [usuario de Amazon Nova 2.0](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp.html).

1. En **Nombre**, especifique un nombre para el grupo de instancias.

1.  En **Capacidad de instancia**, elija la capacidad bajo demanda o un plan de entrenamiento para reservar recursos de computación.

1. En **Tipo de instancia**, elija la instancia del grupo de instancias.
**importante**  
Asegúrese de elegir un tipo de instancia con bastantes cuotas y que tenga suficientes direcciones IP sin asignar para su cuenta. Para ver o solicitar cuotas adicionales, consulte [SageMaker HyperPod cuotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. En **Cantidad de instancias**, especifique un número entero que no supere la cuota de instancias de uso del clúster. Para este tutorial, introduzca **1** para los tres grupos.

1. En **Zona de disponibilidad de destino**, elija la zona de disponibilidad en la que se aprovisionarán las instancias. La zona de disponibilidad debe corresponder a la ubicación de la capacidad de computación acelerada.

1. En **Volumen de almacenamiento adicional por instancia (GB) - opcional**, especifique un número entero entre 1 y 16 384 para establecer el tamaño de un volumen adicional de Elastic Block Store (EBS) en gigabytes (GB). El volumen de EBS está asociado a cada instancia del grupo de instancias. La ruta de montaje predeterminada para el volumen de EBS adicional es `/opt/sagemaker`. Una vez que el clúster se haya creado correctamente, puede utilizar SSH en las instancias del clúster (nodos) y verificar si el volumen de EBS está montado correctamente ejecutando el comando `df -h`. La conexión de un volumen de EBS adicional proporciona un almacenamiento estable, fuera de la instancia y persistente de forma independiente, tal y como se describe en la sección [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) de la *Guía del usuario de Amazon Elastic Block Store*.

1. En **Comprobaciones exhaustivas del estado de las instancias**, elija la opción deseada. Las comprobaciones exhaustivas de estado supervisan el estado de las instancias durante la creación y después de las actualizaciones de software, y recuperan automáticamente las instancias con error mediante reinicios o sustituciones cuando están habilitadas. Para obtener más información, consulte [Comprobaciones de estado exhaustivas](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md)

1. En el caso de **Usar partición de GPU (opcional**), si tu tipo de instancia admite la partición de GPU con GPU de varias instancias (MIG), puedes habilitar esta opción para configurar el perfil de partición de GPU para el grupo de instancias. La partición de la GPU te permite GPUs dividirla en particiones más pequeñas y aisladas para mejorar el uso de los recursos. Para obtener más información, consulte [Uso de particiones de GPU en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

   1. Activa la opción **Usar partición de GPU para habilitar la partición** de GPU para este grupo de instancias.

   1. Selecciona un **perfil de partición de GPU** entre las opciones disponibles para tu tipo de instancia. Cada perfil define la configuración del segmento de GPU y la asignación de memoria.

1. Elija **Agregar grupo de instancias**.

### Scripts de ciclo de vida
<a name="smcluster-getting-started-eks-console-create-cluster-custom-lifecycle"></a>

Puede optar por utilizar los scripts de ciclo de vida predeterminados o los scripts de ciclo de vida personalizados, que se almacenarán en su bucket de Amazon S3. Puede ver los scripts de ciclo de vida predeterminados en el [ GitHub repositorio de Awesome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts). Para obtener más información sobre los scripts de ciclo de vida, consulte [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

1. En **Scripts de ciclo de vida**, elija usar scripts de ciclo de vida predeterminados o personalizados.

1. En **bucket de S3 para scripts de ciclo de vida**, elija crear un nuevo bucket o utilizar un bucket existente para almacenar los scripts de ciclo de vida.

### Permisos
<a name="smcluster-getting-started-eks-console-create-cluster-custom-permissions"></a>

Elija o cree un rol de IAM que le permita HyperPod ejecutar y acceder a AWS los recursos necesarios en su nombre. Para obtener más información, consulte [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

### Almacenamiento
<a name="smcluster-getting-started-eks-console-create-cluster-custom-storage"></a>

Configure el sistema FSx de archivos de Lustre para que se aprovisione en el clúster. HyperPod 

1. Para **el sistema de archivos**, elija un sistema de archivos existente FSx para Lustre, cree uno nuevo FSx para Lustre o no aprovisione uno FSx para Lustre.

1. En **Rendimiento por unidad de almacenamiento**, elija el rendimiento que estará disponible por TiB de almacenamiento aprovisionado.

1. En **Capacidad de almacenamiento**, introduzca un valor de capacidad en TB.

1. En el **tipo de compresión de datos**, seleccione habilitar **LZ4**la compresión de datos.

1. En **Versión Lustre**, consulte el valor recomendado para los nuevos sistemas de archivos.

### Etiquetas: opcional
<a name="smcluster-getting-started-eks-console-create-cluster-tags"></a>

En el **caso de las etiquetas *(opcional)***, añada pares de claves y valores al nuevo clúster y administre el clúster como un AWS recurso. Para obtener más información, consulte [Tagging your AWS resources](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

## Implementación de recursos
<a name="smcluster-getting-started-eks-console-create-cluster-deploy"></a>

Después de completar las configuraciones del clúster desde **Configuración rápida** o **Configuración personalizada**, elija la siguiente opción para iniciar el aprovisionamiento de recursos y la creación del clúster.
+  **Enviar**: SageMaker AI empezará a aprovisionar los recursos de configuración predeterminados y a crear el clúster. 
+ **Descargar los parámetros de la CloudFormation plantilla**: descargará el archivo JSON de los parámetros de configuración y ejecutará el AWS CLI comando para implementar la CloudFormation pila, aprovisionar los recursos de configuración y crear el clúster. Si es necesario, puede editar el archivo JSON de parámetros descargado. Si elige esta opción, puede ver más instrucciones en [Crear SageMaker HyperPod clústeres mediante CloudFormation plantillas](smcluster-getting-started-eks-console-create-cluster-cfn.md).

# Navegación, visualización y edición de SageMaker HyperPod clústeres
<a name="sagemaker-hyperpod-eks-operate-console-ui-browse-view-edit"></a>

Siga las instrucciones siguientes para explorar, ver y editar SageMaker HyperPod los clústeres organizados por Amazon EKS en la consola de SageMaker IA.

**Topics**
+ [Para explorar sus clústeres SageMaker HyperPod](#sagemaker-hyperpod-eks-operate-console-ui-browse-clusters)
+ [Para ver los detalles de cada SageMaker HyperPod clúster](#sagemaker-hyperpod-eks-operate-console-ui-view-details-of-clusters)
+ [Para editar un SageMaker HyperPod clúster](#sagemaker-hyperpod-eks-operate-console-ui-edit-clusters)

## Para explorar sus clústeres SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-browse-clusters"></a>

En la sección **Clústeres** de la SageMaker HyperPod página de la consola de SageMaker IA, todos los clústeres creados deberían aparecer en la sección **Clústeres**, que proporciona una vista resumida de los clústeres ARNs, su estado y la hora de creación.

## Para ver los detalles de cada SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-eks-operate-console-ui-view-details-of-clusters"></a>

En la sección **Clústeres** de la SageMaker HyperPod página de la consola de SageMaker IA, los nombres de los clústeres se activan como enlaces. Seleccione el enlace del nombre del clúster para ver los detalles de cada clúster.

## Para editar un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-eks-operate-console-ui-edit-clusters"></a>

1. En **Clústeres**, en el panel principal de la SageMaker HyperPod consola, selecciona el clúster que deseas actualizar.

1. Seleccione el clúster y elija **Editar**.

1. En la página **Editar <el clúster>**, puede editar las configuraciones de los grupos de instancias existentes, añadir más grupos de instancias, eliminar grupos de instancias y cambiar las etiquetas del clúster. Una vez realizados los cambios, seleccione **Enviar**. 

   1. En la sección **Configurar grupos de instancias**, puede añadir más grupos de instancias. Para ello, seleccione **Crear grupo de instancias**.

   1. En la sección **Configurar grupos de instancias**, puede elegir **Editar** para cambiar su configuración o **Eliminar** para eliminar el grupo de instancias de forma permanente.
**importante**  
Cuando elimine un grupo de instancias, tenga en cuenta los siguientes puntos:  
El SageMaker HyperPod clúster debe mantener siempre al menos un grupo de instancias.
Asegúrese de hacer una copia de seguridad de todos los datos importantes antes de eliminarlos.
El proceso de eliminación no se puede deshacer.
**nota**  
Al eliminar un grupo de instancias, se eliminarán todos los recursos de computación asociados a ese grupo.

   1. En la sección **Etiquetas**, puede actualizar las etiquetas del clúster.

# Eliminar un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-eks-operate-console-ui-delete-cluster"></a>

Siga las instrucciones siguientes para eliminar SageMaker HyperPod los clústeres organizados por Amazon EKS en la consola de SageMaker IA.

1. En **Clústeres**, en el panel principal de la SageMaker HyperPod consola, elija el clúster que desee eliminar.

1. Seleccione el clúster y elija **Eliminar**.

1. En la ventana emergente para eliminar el clúster, revise detenidamente la información del clúster para confirmar que ha elegido el clúster correcto que desea eliminar.

1. Tras revisar la información del clúster, seleccione **Sí, eliminar el clúster**.

1. En el campo de texto para confirmar esta eliminación, escriba **delete**.

1. Seleccione **Eliminar** en la esquina inferior derecha de la ventana emergente para terminar de enviar la solicitud de eliminación del clúster.

**nota**  
Si se produce un error al eliminar un clúster debido a las políticas de control de SageMaker HyperPod tareas adjuntas, tendrá que hacerlo[Eliminación de políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md).

# Crear SageMaker HyperPod clústeres mediante CloudFormation plantillas
<a name="smcluster-getting-started-eks-console-create-cluster-cfn"></a>

Puede crear SageMaker HyperPod clústeres utilizando las CloudFormation plantillas de HyperPod. Debe realizar la instalación AWS CLI para continuar.

**Topics**
+ [Configure los recursos en la consola e impleméntelos mediante CloudFormation](#smcluster-getting-started-eks-console-create-cluster-deploy-console)
+ [Configure e implemente los recursos mediante CloudFormation](#smcluster-getting-started-eks-console-create-cluster-deploy-cfn)

## Configure los recursos en la consola e impleméntelos mediante CloudFormation
<a name="smcluster-getting-started-eks-console-create-cluster-deploy-console"></a>

Puede configurar los recursos con las plantillas Consola de administración de AWS e implementarlos con las CloudFormation plantillas.

Siga estos pasos.

1. *En lugar de elegir **Enviar***, elija **Descargar los parámetros de la CloudFormation plantilla** al final del tutorial en[Cómo empezar a SageMaker HyperPod usar la consola de SageMaker IA](smcluster-getting-started-slurm-console.md). El tutorial contiene información de configuración importante que necesitará para crear el clúster correctamente.
**importante**  
Si selecciona **Enviar**, no podrá implementar un clúster con el mismo nombre hasta que lo elimine.

   Tras seleccionar **Descargar los parámetros de la CloudFormation plantilla**, aparecerá en **la parte derecha de la página la AWS CLI ventana Uso del archivo de configuración para crear el clúster mediante** el uso del archivo de configuración.

1. En la ventana **Uso del archivo de configuración para crear el clúster desde la AWS CLI**, elija **Descargar archivo de parámetros de configuración**. El archivo se descargará en su equipo. Puede editar el archivo JSON de configuración según sus necesidades o dejarlo como está si no se necesita introducir ningún cambio.

1. En un terminal, vaya a la ubicación del archivo de parámetros `file://params.json`.

1. Ejecute el AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) para implementar la CloudFormation pila que aprovisionará los recursos configurados y creará el HyperPod clúster.

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url https://aws-sagemaker-hyperpod-cluster-setup.amazonaws.com/templates-slurm/main-stack-slurm-based-template.yaml
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. [Para ver el estado del aprovisionamiento de recursos, navegue hasta la consola. CloudFormation ](https://console.aws.amazon.com/cloudformation)

   Una vez finalizada la creación del clúster, consulte el nuevo clúster en **Clústeres** en el panel principal de la SageMaker HyperPod consola. También puede consultar su estado en la columna **Estado**.

1. Cuando el estado del clúster cambie a `InService`, puede empezar a iniciar sesión en los nodos del clúster. Para acceder a los nodos del clúster y empezar a ejecutar cargas de trabajo de ML, consulte [Trabajos en clústeres SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

## Configure e implemente los recursos mediante CloudFormation
<a name="smcluster-getting-started-eks-console-create-cluster-deploy-cfn"></a>

Puede configurar e implementar los recursos mediante las CloudFormation plantillas de SageMaker HyperPod.

Siga estos pasos.

1. Descargue una CloudFormation plantilla SageMaker HyperPod del [sagemaker-hyperpod-cluster-setup](https://github.com/aws/sagemaker-hyperpod-cluster-setup) GitHub repositorio.

1. Ejecute el AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) para implementar la CloudFormation pila que aprovisionará los recursos configurados y creará el HyperPod clúster.

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url URL_of_the_file_that_contains_the_template_body
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. Para ver el estado del aprovisionamiento de recursos, vaya a la consola de CloudFormation .

   Una vez finalizada la creación del clúster, consulta el nuevo clúster en **Clústeres** en el panel principal de la SageMaker HyperPod consola. También puede consultar su estado en la columna **Estado**.

1. Cuando el estado del clúster cambie a `InService`, puede empezar a iniciar sesión en los nodos del clúster.

# Administrar los clústeres de SageMaker HyperPod EKS mediante el AWS CLI
<a name="sagemaker-hyperpod-eks-operate-cli-command"></a>

Los siguientes temas proporcionan orientación sobre cómo escribir archivos de solicitudes de SageMaker HyperPod API en formato JSON y ejecutarlos mediante los AWS CLI comandos.

**Topics**
+ [Crear un SageMaker HyperPod clúster](sagemaker-hyperpod-eks-operate-cli-command-create-cluster.md)
+ [Recuperando los detalles del clúster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-cli-command-cluster-details.md)
+ [Actualización de la configuración del SageMaker HyperPod clúster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md)
+ [Actualización del software de SageMaker HyperPod la plataforma](sagemaker-hyperpod-eks-operate-cli-command-update-cluster-software.md)
+ [Acceder a los nodos SageMaker HyperPod del clúster](sagemaker-hyperpod-eks-operate-access-through-terminal.md)
+ [Reducir la escala de un SageMaker HyperPod clúster](smcluster-scale-down.md)
+ [Eliminar un SageMaker HyperPod clúster](sagemaker-hyperpod-eks-operate-cli-command-delete-cluster.md)

# Crear un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-eks-operate-cli-command-create-cluster"></a>

Aprenda a crear SageMaker HyperPod clústeres orquestados por Amazon EKS mediante. AWS CLI

1. Antes de crear un SageMaker HyperPod clúster:

   1. Asegúrese de disponer de un clúster de Amazon EKS existente y en funcionamiento. Para obtener instrucciones sobre cómo configurar un clúster de Amazon EKS, consulte [Creación de un clúster de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) en la *Guía del usuario de Amazon EKS*.

   1. Instale el gráfico de Helm, tal y como se indica en [Instalación de paquetes en el clúster de Amazon EKS mediante Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md). Si crea un [ SageMaker HyperPod clúster de Amazon Nova](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp-cluster.html), necesitará un diagrama de Helm independiente.

1. Prepare un script de configuración del ciclo de vida y cárguelo en un bucket de Amazon S3, como, por ejemplo, `s3://amzn-s3-demo-bucket/Lifecycle-scripts/base-config/`.

   Para empezar rápidamente, descargue el script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts/base-config/on_create.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts/base-config/on_create.sh)de muestra del GitHub repositorio AWS ome Distributed Training y cárguelo en el bucket de S3. También puede incluir instrucciones de configuración adicionales, una serie de scripts de configuración o comandos para que se ejecuten durante la etapa de aprovisionamiento del HyperPod clúster.
**importante**  
Si crea un [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) que se asocia únicamente a las [https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html) administradas, el clúster tendrá acceso a los buckets de Amazon S3 con el prefijo específico `sagemaker-`.

   Si crea un grupo de instancias restringido, no tendrá que descargar ni ejecutar el script de ciclo de vida. En su lugar, deberá ejecutar `install_rig_dependencies.sh`. 

   Los requisitos previos para ejecutar el script `install_rig_dependencies.sh` son:
   + AWS Tanto Node (CNI) como CoreDNS deben estar habilitados. Se trata de complementos de EKS estándar que no son gestionados por el SageMaker HyperPod Helm estándar, pero que se pueden activar fácilmente en la consola de EKS en la sección Complementos.
   +  Se debe instalar el gráfico de SageMaker HyperPod Helm estándar antes de ejecutar este script.

   El script `install_rig_dependencies.sh` realiza las siguientes acciones. 
   + `aws-node` (CNI): se ha creado un nuevo `rig-aws-node` Daemonset; se ha parcheado el `aws-node` existente para evitar los nodos RIG.
   + `coredns`: Convertido a Daemonset RIGs para admitir el uso de varios equipos y evitar la sobrecarga.
   + training-operators: se ha actualizado con las tolerancias de taint de trabajo de RIG y con nodeAffinity para favorecer las instancias que no son RIG.
   + Elastic Fabric Adapter (EFA): se ha actualizado para tolerar las propiedades taint de trabajo de RIG y utilizar las imágenes de contenedores correctas para cada región.

1. Prepare un archivo de solicitud [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)de API en formato JSON. En `ExecutionRole`, proporcione el ARN del rol de IAM que ha creado con la `AmazonSageMakerClusterInstanceRolePolicy` administrada de la sección [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).
**nota**  
Asegúrese de que el SageMaker HyperPod clúster esté implementado en la misma Nube Privada Virtual (VPC) que el clúster de Amazon EKS. Las subredes y los grupos de seguridad especificados en la configuración del SageMaker HyperPod clúster deben permitir la conectividad de red y la comunicación con el punto final del servidor API del clúster de Amazon EKS.

   ```
   // create_cluster.json
   {
       "ClusterName": "string",
       "InstanceGroups": [{
           "InstanceGroupName": "string",
           "InstanceType": "string",
           "InstanceCount": number,
           "LifeCycleConfig": {
               "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
               "OnCreate": "on_create.sh"
           },
           "ExecutionRole": "string",
           "ThreadsPerCore": number,
           "OnStartDeepHealthChecks": [
               "InstanceStress", "InstanceConnectivity"
           ]
       }],
       "RestrictedInstanceGroups": [ 
         { 
            "EnvironmentConfig": { 
               "FSxLustreConfig": { 
                  "PerUnitStorageThroughput": number,
                  "SizeInGiB": number
               }
            },
            "ExecutionRole": "string",
            "InstanceCount": number,
            "InstanceGroupName": "string",
            "InstanceStorageConfigs": [ 
               { ... }
            ],
            "InstanceType": "string",
            "OnStartDeepHealthChecks": [ "string" ],
            "OverrideVpcConfig": { 
               "SecurityGroupIds": [ "string" ],
               "Subnets": [ "string" ]
            },
            "ScheduledUpdateConfig": { 
               "DeploymentConfig": { 
                  "AutoRollbackConfiguration": [ 
                     { 
                        "AlarmName": "string"
                     }
                  ],
                  "RollingUpdatePolicy": { 
                     "MaximumBatchSize": { 
                        "Type": "string",
                        "Value": number
                     },
                     "RollbackMaximumBatchSize": { 
                        "Type": "string",
                        "Value": number
                     }
                  },
                  "WaitIntervalInSeconds": number
               },
               "ScheduleExpression": "string"
            },
            "ThreadsPerCore": number,
            "TrainingPlanArn": "string"
         }
      ],
       "VpcConfig": {
           "SecurityGroupIds": ["string"],
           "Subnets": ["string"]
       },
       "Tags": [{
           "Key": "string",
           "Value": "string"
       }],
       "Orchestrator": {
           "Eks": {
               "ClusterArn": "string",
               "KubernetesConfig": {
                   "Labels": {
                       "nvidia.com/mig.config": "all-3g.40gb"
                   }
               }
           }
       },
       "NodeRecovery": "Automatic"
   }
   ```
**Grupos de instancias flexibles**  
En lugar de especificar uno solo`InstanceType`, puedes usar el `InstanceRequirements` parámetro para especificar varios tipos de instancias para un grupo de instancias. Tenga en cuenta lo siguiente:  
`InstanceType`y `InstanceRequirements` se excluyen mutuamente. Debe especificar uno u otro, pero no ambos.
`InstanceRequirements.InstanceTypes`es una lista ordenada que determina la prioridad de aprovisionamiento. SageMaker HyperPodintenta aprovisionar el primer tipo de instancia de la lista y recurre a los tipos siguientes si la capacidad no está disponible. Puede especificar hasta 20 tipos de instancias y la lista no debe contener duplicados.
Los grupos de instancias flexibles requieren un modo de aprovisionamiento continuo de nodos.
En el siguiente ejemplo, se muestra un grupo de instancias que usa`InstanceRequirements`:  

   ```
   {
       "InstanceGroupName": "flexible-ig",
       "InstanceRequirements": {
           "InstanceTypes": ["ml.p5.48xlarge", "ml.p4d.24xlarge", "ml.g6.48xlarge"]
       },
       "InstanceCount": 10,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster"
   }
   ```

   Ten en cuenta lo siguiente al configurar la creación de un nuevo SageMaker HyperPod clúster que se asocie a un clúster de EKS.
   + Puede configurar hasta 20 grupos de instancias con el parámetro `InstanceGroups`.
   + En `Orchestator.Eks.ClusterArn`, especifique el ARN del clúster de EKS que desea usar como orquestador.
   + En `OnStartDeepHealthChecks`, añada `InstanceStress` y `InstanceConnectivity` para habilitar [Comprobaciones de estado exhaustivas](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md).
   + Para`NodeRecovery`, especifique si desea `Automatic` habilitar la recuperación automática de nodos. SageMaker HyperPod reemplaza o reinicia las instancias (nodos) cuando el agente de supervisión del estado detecta problemas.
   + Para el `Tags` parámetro, puede agregar etiquetas personalizadas para administrar el SageMaker HyperPod clúster como un AWS recurso. Puede añadir etiquetas al clúster del mismo modo que las añadiría a otros servicios de AWS que admitan el etiquetado. Para obtener más información sobre el etiquetado de recursos de AWS en general, consulte [Tagging AWS Resources User Guide](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).
   + En el parámetro `VpcConfig`, especifique la información de la VPC utilizada en el clúster de EKS. Las subredes deben ser privadas.
   + Si lo desea`Orchestrator.Eks.KubernetesConfig.Labels`, puede especificar las etiquetas de Kubernetes para aplicarlas a los nodos. Para habilitar la partición de la GPU con una GPU de instancias múltiples (MIG), añada la `nvidia.com/mig.config` etiqueta con el perfil MIG deseado. Por ejemplo, `"nvidia.com/mig.config": "all-3g.40gb"` configura todo GPUs con el perfil de partición de 3g.40 gb. Para obtener más información sobre la partición de la GPU y los perfiles disponibles, consulte. [Uso de particiones de GPU en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)

1. Ejecute el comando [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) de la siguiente manera.
**importante**  
Al ejecutar el comando `create-cluster` con el parámetro `--cli-input-json`, debe incluir el prefijo `file://` delante de la ruta completa al archivo JSON. Este prefijo es necesario para garantizar que AWS CLI reconozca la entrada como una ruta de archivo. Si se omite el prefijo `file://`, se genera un error de análisis de parámetros.

   ```
   aws sagemaker create-cluster \
       --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Esto debería devolver el ARN del nuevo clúster.
**importante**  
Puede usar la operación [update-cluster](https://docs.aws.amazon.com//cli/latest/reference/ecs/update-cluster.html) para eliminar un grupo de instancias restringido (RIG). Cuando un RIG se reduce a 0, el sistema de archivos FSx de Lustre no se eliminará. Para eliminar por completo el FSx sistema de archivos de Lustre, debe eliminar el RIG por completo.   
Al eliminar un RIG, no se elimina ningún artefacto almacenado en el bucket de Amazon S3 administrado por el servicio. Sin embargo, debe asegurarse de que todos los artefactos del sistema de archivos de FSx for Lustre estén completamente sincronizados con Amazon S3 antes de eliminarlos. Recomendamos esperar al menos 30 minutos después de finalizar el trabajo para garantizar la sincronización completa de todos los artefactos del sistema de archivos de Lustre con el bucket de Amazon S3 administrado FSx por el servicio.
**importante**  
Si utilizas una reserva de capacidad bajo demanda (ODCR) integrada, debes asignar tu grupo de instancias al mismo ID de zona de disponibilidad (AZ ID) que la ODCR, configurándolo `OverrideVpcConfig` con una subred en el ID AZ correspondiente.  
FUNDAMENTAL: Verifica la `OverrideVpcConfig` configuración antes de la implementación para evitar incurrir en cargos duplicados tanto por la ODCR como por la capacidad bajo demanda.

# Recuperando los detalles del clúster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-cli-command-cluster-details"></a>

Aprenda a recuperar los detalles SageMaker HyperPod del clúster mediante el AWS CLI.

## Describir un clúster
<a name="sagemaker-hyperpod-eks-operate-cli-command-describe-cluster"></a>

Ejecute [describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster.html) para comprobar el estado del clúster. Puede especificar el nombre o el ARN del clúster.

```
aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster
```

Cuando el estado del clúster cambie a **InService**, continúe con el siguiente paso. Con esta API, también puedes recuperar los mensajes de error relacionados con la ejecución de otras operaciones de la HyperPod API.

## Enumeración de los detalles de los nodos del clúster
<a name="sagemaker-hyperpod-eks-operate-cli-command-list-cluster-nodes"></a>

Ejecute [list-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html)para comprobar la información clave de los nodos del clúster.

```
aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster
```

Esto devuelve una respuesta, y el `InstanceId` es lo que necesita usar para iniciar sesión (mediante `aws ssm`) en ellos.

## Descripción de los detalles de un nodo de clúster
<a name="sagemaker-hyperpod-eks-operate-cli-command-describe-cluster-node"></a>

Ejecute [describe-cluster-node](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster-node.html)para recuperar los detalles de un nodo del clúster. Puede obtener el ID del nodo del clúster a partir de la list-cluster-nodes salida. Puede especificar el nombre o el ARN del clúster.

```
aws sagemaker describe-cluster-node \
    --cluster-name your-hyperpod-cluster \
    --node-id i-111222333444555aa
```

## Enumerar clústeres
<a name="sagemaker-hyperpod-eks-operate-cli-command-list-clusters"></a>

Ejecute [list-clusters](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-clusters.html) para ver una lista de todos los clústeres de la cuenta.

```
aws sagemaker list-clusters
```

También puede añadir indicadores adicionales para filtrar la lista de clústeres. Para obtener más información sobre lo que este comando ejecuta en un nivel bajo y otros indicadores de filtrado, consulta la referencia de la [ListClusters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusters.html)API.

# Actualización de la configuración del SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-eks-operate-cli-command-update-cluster"></a>

Ejecute [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para actualizar la configuración de un clúster.

**nota**  
Consideraciones importantes:  
No puede cambiar la información del clúster de EKS a la que está asociado su HyperPod clúster una vez creado el clúster. 
Si se están realizando comprobaciones de estado exhaustivas en el clúster, esta API no funcionará según lo previsto. Es posible que aparezca un mensaje de error que indique que se están realizando comprobaciones de estado exhaustivas. Para actualizar el clúster, debe esperar a que finalicen las comprobaciones de estado exhaustivas.

1. Cree un archivo de solicitud de la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) en formato JSON. Asegúrese de especificar el nombre del clúster y el nombre del grupo de instancias correctos para actualizarlos. Puede cambiar el tipo de instancia, el número de instancias, el script de punto de entrada de la configuración del ciclo de vida y la ruta al script para cada grupo de instancias.
**nota**  
Puedes usarlo `UpdateCluster` para reducir o eliminar grupos de instancias completos del SageMaker HyperPod clúster. Para obtener instrucciones adicionales sobre cómo reducir verticalmente o eliminar grupos de instancias, consulte [Reducir la escala de un SageMaker HyperPod clúster](smcluster-scale-down.md).

   1. En `ClusterName`, especifique el nombre del clúster que desea actualizar.

   1. En `InstanceGroupName`

      1. Para actualizar un grupo de instancias existente, especifique el nombre del grupo de instancias que desea actualizar.

      1. Para añadir un nuevo grupo de instancias, especifique un nombre nuevo que no exista en el clúster.

   1. En `InstanceType`

      1. Para actualizar un grupo de instancias existente, debe hacer coincidir el tipo de instancia que ha especificado inicialmente con el grupo.

      1. Para añadir un nuevo grupo de instancias, especifique el tipo de instancia con el que desea configurar el grupo.

      En el caso de los grupos de instancias que utilizan `InstanceRequirements` en lugar de`InstanceType`, puedes añadir o eliminar tipos de instancias de la `InstanceTypes` lista. Sin embargo, no puedes eliminar un tipo de instancia que tenga nodos activos ejecutándose en él. Tampoco puedes cambiar entre un grupo de instancias existente `InstanceType` y `InstanceRequirements` cuando lo actualizas. `InstanceType`y `InstanceRequirements` se excluyen mutuamente.

   1. En `InstanceCount`

      1. Para actualizar un grupo de instancias existente, especifique un número entero que corresponda al número de instancias deseado. Puede indicar un valor mayor o menor (hasta 0) para escalar el grupo de instancias hacia arriba o hacia abajo.

      1. Para añadir un nuevo grupo de instancias, especifique un número entero mayor o igual a 1. 

   1. En `LifeCycleConfig`, puede cambiar los valores tanto de `SourceS3Uri` como de `OnCreate` como desee para actualizar el grupo de instancias.

   1. En `ExecutionRole`

      1. Para actualizar un grupo de instancias existente, siga usando el mismo rol de IAM que ha asociado durante la creación del clúster.

      1. Para añadir un nuevo grupo de instancias, especifique el rol de IAM que desee asociar.

   1. En `ThreadsPerCore`

      1. Para actualizar un grupo de instancias existente, siga usando el mismo valor que ha especificado durante la creación del clúster.

      1. Para añadir un nuevo grupo de instancias, puede elegir cualquier valor de las opciones permitidas por tipo de instancia. Para obtener más información, busque el tipo de instancia y consulte la columna **Subprocesos válidos por núcleo** de la tabla de referencia de [Núcleos de CPU y subprocesos por núcleo de CPU por tipo de instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) en la *Guía del usuario de Amazon EC2*.

   1. En `OnStartDeepHealthChecks`, añada `InstanceStress` y `InstanceConnectivity` para habilitar [Comprobaciones de estado exhaustivas](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md).

   1. Para`NodeRecovery`, especifique si `Automatic` desea habilitar la recuperación automática de nodos. SageMaker HyperPod reemplaza o reinicia las instancias (nodos) cuando el agente de supervisión del estado detecta problemas.

   El siguiente fragmento de código es una plantilla de archivo de solicitud JSON que puede utilizar. Para obtener más información sobre la sintaxis y los parámetros de las solicitudes de esta API, consulta la referencia de la [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)API.

   ```
   // update_cluster.json
   {
       // Required
       "ClusterName": "name-of-cluster-to-update",
       // Required
       "InstanceGroups": [{
           "InstanceGroupName": "string",
           "InstanceType": "string",
           "InstanceCount": number,
           "LifeCycleConfig": {
               "SourceS3Uri": "string",
               "OnCreate": "string"
           },
           "ExecutionRole": "string",
           "ThreadsPerCore": number,
           "OnStartDeepHealthChecks": [
               "InstanceStress", "InstanceConnectivity"
           ]
       }],
       "NodeRecovery": "Automatic"
   }
   ```

1. Ejecute el siguiente comando `update-cluster` para enviar la solicitud. 

   ```
   aws sagemaker update-cluster \
       --cli-input-json file://complete/path/to/update_cluster.json
   ```

# Actualización del software de SageMaker HyperPod la plataforma
<a name="sagemaker-hyperpod-eks-operate-cli-command-update-cluster-software"></a>

Al crear el SageMaker HyperPod clúster, SageMaker HyperPod selecciona una imagen de máquina de Amazon (AMI) correspondiente a la versión de Kubernetes del clúster de Amazon EKS.

Ejecute [update-cluster-software](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster-software.html)para actualizar los clústeres existentes con los parches de software y seguridad proporcionados por el servicio. SageMaker HyperPod En `--cluster-name`, especifique el nombre o el ARN del clúster que desea actualizar.

**importante**  
Cuando se llama a esta API, SageMaker HyperPod no agota ni redistribuye los trabajos (pods) que se ejecutan en los nodos. Asegúrese de comprobar si hay algún trabajo en ejecución en los nodos antes de llamar a esta API.
El proceso de aplicación de parches reemplaza el volumen raíz por la AMI actualizada, lo que significa que se perderán los datos anteriores almacenados en el volumen raíz de la instancia. Asegúrese de hacer una copia de seguridad de los datos del volumen raíz de la instancia en Amazon S3 o Amazon FSx for Lustre.
Todos los nodos del clúster experimentan tiempos de inactividad (los nodos aparecen como `<NotReady>` en el resultado de `kubectl get node`) mientras se realiza la aplicación de parches. Le recomendamos que finalice todas las cargas de trabajo antes de aplicar los parches y que las reanude una vez finalizado el proceso.   
Si se produce un error en el parche de seguridad, puede recuperar los mensajes de error ejecutando la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html), tal y como se indica en las instrucciones de [Describir un clúster](sagemaker-hyperpod-eks-operate-cli-command-cluster-details.md#sagemaker-hyperpod-eks-operate-cli-command-describe-cluster).

```
aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster
```

**Actualizaciones continuas con grupos de instancias flexibles**  
En el caso de los grupos de instancias que se utilizan `InstanceRequirements` con varios tipos de instancias, las actualizaciones sucesivas distribuyen cada tipo de instancia proporcionalmente entre los lotes. Por ejemplo, si un grupo de instancias tiene 100 instancias (10 P5 y 90 G6) y configuras un tamaño de lote del 10%, cada lote contiene 1 instancia P5 y 9 instancias G6.

 Al llamar a la `UpdateClusterSoftware` API, SageMaker HyperPod actualiza la versión de Kubernetes de los nodos seleccionando la más reciente en [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) función de la versión de Kubernetes del clúster de Amazon EKS. A continuación, ejecuta los scripts del ciclo de vida en el bucket de Amazon S3 que ha especificado durante la creación o actualización del clúster. 

Para verificar la versión de kubelet de un nodo, ejecute el comando `kubectl describe node`.

La versión de Kubernetes de los nodos del SageMaker HyperPod clúster no se actualiza automáticamente al actualizar la versión del clúster de Amazon EKS. Tras actualizar la versión de Kubernetes para su clúster de Amazon EKS, debe usar la `UpdateClusterSoftware` API para actualizar los nodos del SageMaker HyperPod clúster a la misma versión de Kubernetes.

 Se recomienda actualizar el SageMaker HyperPod clúster después de actualizar los nodos de Amazon EKS y evitar que haya más de una diferencia de versión entre la versión del clúster de Amazon EKS y la versión de los nodos del SageMaker HyperPod clúster.

El equipo SageMaker HyperPod de servicio lanza nuevas [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) versiones periódicamente para mejorar la seguridad y la experiencia de los usuarios. Le recomendamos que se mantenga siempre actualizado a la última SageMaker HyperPod DLAMI. Para futuras actualizaciones de SageMaker HyperPod DLAMI para parches de seguridad, consulte con. [Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md)

**nota**  
Solo puede ejecutar esta API mediante programación. La funcionalidad de aplicación de parches no está implementada en la interfaz de usuario de la consola. SageMaker HyperPod 

# Acceder a los nodos SageMaker HyperPod del clúster
<a name="sagemaker-hyperpod-eks-operate-access-through-terminal"></a>

Puede acceder directamente a los nodos de un SageMaker HyperPod clúster en servicio mediante los AWS CLI comandos for AWS Systems Manager (SSM). Ejecute `aws ssm start-session` con el nombre de host del nodo en el formato de `sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]`. Puedes recuperar el ID del clúster, el ID de instancia y el nombre del grupo de instancias desde la [SageMaker HyperPod consola](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters) o ejecutando `describe-cluster` y `list-cluster-nodes` desde los [AWS CLI comandos for SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes). Por ejemplo, si el ID del clúster es`aa11bbbbb222`, el nombre del nodo del clúster es `controller-group` y el ID del nodo del clúster es `i-111222333444555aa`, el comando `start-session` de SSM debería ser el siguiente.

**nota**  
Si no lo has configurado AWS Systems Manager, sigue las instrucciones que se proporcionan en[Configurar AWS Systems Manager y ejecutar como para el control de acceso de los usuarios del clúster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm).

```
$ aws ssm start-session \
    --target sagemaker-cluster:aa11bbbbb222_controller-group-i-111222333444555aa \
    --region us-west-2
Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
```

# Reducir la escala de un SageMaker HyperPod clúster
<a name="smcluster-scale-down"></a>

Puedes reducir el número de instancias que se ejecutan en tu SageMaker HyperPod clúster de Amazon. Puede reducir verticalmente un clúster por varios motivos, como rebajar el uso de los recursos o para optimizar los costos.

En la página siguiente se describen dos enfoques principales para reducir verticalmente:
+ **Reducir verticalmente en el grupo de instancias:** este enfoque usa la API `UpdateCluster`, con la que puede:
  + Reducir verticalmente el número de instancias para grupos de instancias específicos de forma independiente. SageMaker La IA gestiona la terminación de los nodos de forma que alcance los nuevos recuentos de instancias objetivo que hayas establecido para cada grupo. Consulte [Reducción vertical de un grupo de instancias](#smcluster-scale-down-updatecluster).
  + Elimine los grupos de instancias de su clúster por completo. Consulte [Eliminación de grupos de instancias](#smcluster-remove-instancegroup).
+ **Reducir verticalmente en la instancia:** este enfoque utiliza la API `BatchDeleteClusterNodes`, con la que puede especificar los nodos individuales que quiere terminar. Consulte [Reducción vertical en la instancia](#smcluster-scale-down-batchdelete).

**nota**  
Al reducir verticalmente en la instancia con `BatchDeleteCusterNodes`, solo puede terminar un máximo de 99 instancias a la vez. `UpdateCluster` admite la terminación de cualquier número de instancias.

## Consideraciones importantes
<a name="smcluster-scale-down-considerations"></a>
+ Al reducir verticalmente un clúster, debe asegurarse de que los recursos restantes sean suficientes para gestionar su carga de trabajo y de que cualquier migración o reequilibrio de datos necesarios se gestione adecuadamente para evitar interrupciones. 
+ Asegúrese de hacer una copia de seguridad de sus datos en Amazon S3 o en un sistema de archivos de FSx for Lustre antes de invocar la API en un grupo de nodos de trabajo. Esto puede ayudar a evitar cualquier posible pérdida de datos del volumen raíz de la instancia. Para obtener más información sobre las copias de seguridad, consulte [Utilice el script de respaldo proporcionado por SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).
+ Para invocar esta API en un clúster existente, primero debe aplicar un parche al clúster mediante la ejecución de la API. [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html) Para obtener más información sobre la aplicación de parches a clústeres, consulte [Actualice el software de la SageMaker HyperPod plataforma de un clúster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).
+ La medición y la facturación de las instancias bajo demanda se detendrán automáticamente tras la reducción vertical. Para dejar de medir las instancias reservadas reducidas, ponte en contacto con tu equipo de AWS cuentas para solicitar asistencia.
+ Puede utilizar la capacidad liberada de las instancias reservadas reducidas para ampliar otro clúster. SageMaker HyperPod 

## Reducción vertical en el grupo de instancias
<a name="smcluster-scale-down-or-delete"></a>

La [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operación te permite realizar cambios en la configuración del SageMaker HyperPod clúster, como reducir la cantidad de instancias de un grupo de instancias o eliminar grupos de instancias completos. Esto puede resultar útil si quiere adaptar los recursos asignados a su clúster en función de los cambios en su carga de trabajo, optimizar los costos o cambiar el tipo de instancia de un grupo de instancias.

### Reducción vertical de un grupo de instancias
<a name="smcluster-scale-down-updatecluster"></a>

Use este enfoque cuando tenga un grupo de instancias inactivo y sea seguro terminar cualquiera de las instancias para llevar a cabo la reducción vertical. Cuando envías una `UpdateCluster` solicitud de reducción, eliges las instancias de HyperPod forma aleatoria para terminarlas y las reduces hasta alcanzar la cantidad de nodos especificada para el grupo de instancias.

**Reduce el comportamiento con grupos de instancias flexibles**  
En el caso de los grupos de instancias que se utilizan `InstanceRequirements` con varios tipos de instancias, HyperPod termina primero los tipos de instancias de menor prioridad durante la reducción de escala. La prioridad viene determinada por el orden de los tipos de instancias de la `InstanceTypes` lista, donde el primer tipo tiene la prioridad más alta. Esto protege las instancias de mayor prioridad, que suelen tener un rendimiento superior, durante las operaciones de reducción de escala.

**nota**  
Al reducir el número de instancias de un grupo de instancias a 0, se terminan todas las instancias de ese grupo. Sin embargo, el propio grupo de instancias seguirá existiendo como parte del clúster. SageMaker HyperPod Puede volver a escalar el grupo de instancias más adelante con la misma configuración de grupo de instancias.   
También puede optar por eliminar un grupo de instancias de forma permanente. Para obtener más información, consulte [Eliminación de grupos de instancias](#smcluster-remove-instancegroup).

**Cómo reducir verticalmente con `UpdateCluster`**

1. Siga los pasos que se indican en [Actualización de la configuración del SageMaker HyperPod clúster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md). Cuando llegues al paso **1.d**, donde especificas el **InstanceCount**campo, ingresa un número que sea menor que el número actual de instancias para reducir el clúster.

1. Ejecuta el AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para enviar la solicitud.

A continuación se muestra un ejemplo de un objeto JSON `UpdateCluster`: Piense en una situación en la que su grupo de instancias tiene 2 instancias en ejecución. Si estableces el **InstanceCount**campo en 1, como se muestra en el ejemplo, selecciona HyperPod aleatoriamente una de las instancias y la finaliza.

```
{
  "ClusterName": "name-of-cluster-to-update",
  "InstanceGroups": [
    {
      "InstanceGroupName": "training-instances",
      "InstanceType": "instance-type",
      "InstanceCount": 1,
      "LifeCycleConfig": {
        "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py",
        "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh"
      },
      "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole",
      "ThreadsPerCore": number-of-threads,
      "OnStartDeepHealthChecks": [
        "InstanceStress",
        "InstanceConnectivity"
      ]
    }
  ],
  "NodeRecovery": "Automatic"
}
```

### Eliminación de grupos de instancias
<a name="smcluster-remove-instancegroup"></a>

Puedes usar la [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operación para eliminar grupos de instancias completos del SageMaker HyperPod clúster cuando ya no los necesites. Esto va más allá de una simple reducción vertical, pues le permite eliminar por completo grupos de instancias específicos de la configuración del clúster. 

**nota**  
Al eliminar un grupo de instancias:  
Se terminan todas las instancias del grupo objetivo.
Se elimina toda la configuración del grupo del clúster.
Se detienen todas las cargas de trabajo que se ejecuten en ese grupo de instancias.

**Cómo eliminar grupos de instancias con `UpdateCluster`**

1. Al seguir los pasos descritos en [Actualización de la configuración del SageMaker HyperPod clúster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md):

   1. Configure el parámetro `InstanceGroupsToDelete` opcional en su JSON `UpdateCluster` y pase la lista de nombres de grupos de instancias separados por comas que desea eliminar.

   1.  Cuando especifique la lista `InstanceGroups`, asegúrese de que las especificaciones de los grupos de instancias que va a eliminar ya no se incluyan en la lista `InstanceGroups`.

1. Ejecuta el AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para enviar la solicitud.

**importante**  
El SageMaker HyperPod clúster debe mantener siempre al menos un grupo de instancias.
Asegúrese de hacer una copia de seguridad de todos los datos importantes antes de eliminarlos.
El proceso de eliminación no se puede deshacer.

A continuación se muestra un ejemplo de un objeto JSON `UpdateCluster`: Piense en una situación en la que un clúster tiene 3 grupos de instancias: un grupo *training*, uno *prototype-training* y uno *inference-serving*. Desea eliminar el grupo *prototype-training*.

```
{
  "ClusterName": "name-of-cluster-to-update",
  "InstanceGroups": [
    {
      "InstanceGroupName": "training",
      "InstanceType": "instance-type",
      "InstanceCount": ,
      "LifeCycleConfig": {
        "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py",
        "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh"
      },
      "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole",
      "ThreadsPerCore": number-of-threads,
      "OnStartDeepHealthChecks": [
        "InstanceStress",
        "InstanceConnectivity"
      ]
    },
    {
      "InstanceGroupName": "inference-serving",
      "InstanceType": "instance-type",
      "InstanceCount": 2,
      [...]
    },
  ],
  "InstanceGroupsToDelete": [ "prototype-training" ],
  "NodeRecovery": "Automatic"
}
```

## Reducción vertical en la instancia
<a name="smcluster-scale-down-batchdelete"></a>

La `BatchDeleteClusterNodes` operación te permite reducir la escala de un SageMaker HyperPod clúster especificando los nodos individuales que quieres terminar. `BatchDeleteClusterNodes`proporciona un control más detallado para la eliminación de nodos específicos y la optimización del clúster. Por ejemplo, puede utilizar `BatchDeleteClusterNodes` para eliminar los nodos de destino con fines de mantenimiento, para actualizaciones continuas o para reequilibrar los recursos geográficamente.

**Solicitud y respuesta de la API**

Al enviar una `BatchDeleteClusterNodes` solicitud, SageMaker HyperPod elimina los nodos por instancia IDs. La API acepta una solicitud con el nombre del clúster y una lista de los nodos IDs que se van a eliminar. 

La respuesta incluye dos secciones: 
+  `Failed`: una lista de tipos de error `[ BatchDeleteClusterNodesError ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchDeleteClusterNodesError.html)`: uno por ID de instancia.
+  `Successful`: La lista de instancias IDs ha finalizado correctamente. 

**Validación y gestión de errores**

La API realiza varias validaciones, como:
+ Verificar el formato de ID del nodo (prefijo `i-` y estructura de ID de instancia de Amazon EC2). 
+ Comprobar la longitud de la lista de nodos, con un límite de 99 nodos o menos IDs en una sola `BatchDeleteClusterNodes` solicitud.
+ Asegúrese de que haya un SageMaker HyperPod clúster válido con el nombre del clúster introducido y de que no se esté realizando ninguna operación a nivel de clúster (actualización, actualización del sistema, aplicación de parches o eliminación).
+ Gestionar los casos en los que no se encuentran instancias, que tienen un estado no válido o que están en uso.

**Códigos de respuesta de la API**
+  La API devuelve un código de estado `200` para las solicitudes correctas (por ejemplo, todos los nodos de entrada se han validado correctamente) o parcialmente correctas (por ejemplo, si algunos nodos de entrada no se han validado). 
+  Si todas estas validaciones fallan (por ejemplo, si no se validad ningún nodo de entrada), la API devolverá una respuesta a una solicitud `400` errónea con los mensajes y códigos de error correspondientes. 

**Ejemplo**

El siguiente es un ejemplo de **reducción vertical de un clúster en la instancia** usando la AWS CLI:

```
aws sagemaker batch-delete-cluster-nodes --cluster-name "cluster-name" --node-ids '["i-111112222233333", "i-111112222233333"]'
```

# Eliminar un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-eks-operate-cli-command-delete-cluster"></a>

Ejecute [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-cluster.html) para eliminar un clúster. Puede especificar el nombre o el ARN del clúster.

```
aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster
```

Esta API solo limpia los SageMaker HyperPod recursos y no elimina ningún recurso del clúster de EKS asociado. Esto incluye el clúster de Amazon EKS, las identidades de los pods de EKS, FSx los volúmenes de Amazon y los complementos de EKS. Esto también incluye la configuración inicial que ha añadido al clúster de EKS. Si desea limpiar todos los recursos, asegúrese de limpiar también los recursos de EKS de forma independiente. 

Asegúrese de eliminar primero los SageMaker HyperPod recursos y, a continuación, los recursos de EKS. Si se realiza la eliminación en el orden inverso, es posible que los recursos se queden bloqueados.

**importante**  
Cuando se llama a esta API, SageMaker HyperPod no agota ni redistribuye los trabajos (pods) que se ejecutan en los nodos. Asegúrese de comprobar si hay algún trabajo en ejecución en los nodos antes de llamar a esta API.

# HyperPod puntos de control gestionados por niveles
<a name="managed-tier-checkpointing"></a>

En esta sección se explica cómo funcionan los puntos de control gestionados por niveles y las ventajas que ofrecen para la formación de modelos a gran escala.

Los puntos de control SageMaker HyperPod escalonados gestionados por Amazon te ayudan a entrenar modelos de IA generativa a gran escala de forma más eficiente. Utiliza varios niveles de almacenamiento, incluida la memoria de la CPU del clúster. Este enfoque reduce el tiempo de recuperación y minimiza las pérdidas durante el proceso de entrenamiento. También utiliza recursos de memoria infrautilizados de su infraestructura de entrenamiento.

Los puntos de control por niveles gestionados permiten guardar en la memoria los puntos de control con mayor frecuencia. Se guardan periódicamente en un almacenamiento duradero. Esto mantiene tanto el rendimiento como la fiabilidad durante el proceso de entrenamiento.

Esta guía explica cómo configurar, configurar y utilizar los puntos de control gestionados por niveles con PyTorch marcos en los clústeres de Amazon EKS HyperPod .

## Cómo funcionan los puntos de control gestionados por niveles
<a name="managed-tier-checkpointing-works"></a>

Los puntos de control gestionados por niveles utilizan un enfoque de almacenamiento de varios niveles. La memoria de la CPU es el nivel principal donde se almacenan los puntos de comprobación del modelo. Los niveles secundarios incluyen opciones de almacenamiento persistente, como Amazon S3.

Al guardar un punto de comprobación, el sistema lo almacena en el espacio de memoria asignado a los nodos de su clúster. Después replica automáticamente los datos en los nodos de computación adyacentes para mejorar la fiabilidad. Esta estrategia de replicación protege contra los fallos de uno o varios nodos y, al mismo tiempo, proporciona un acceso rápido a las operaciones de recuperación.

El sistema también guarda periódicamente los puntos de comprobación en el almacenamiento persistente de acuerdo con su configuración. Esto garantiza la durabilidad a largo plazo de su proceso de entrenamiento.

Los componentes clave son:
+ **Sistema de administración de la memoria**: es un daemon de administración de memoria que proporciona memoria desagregada como servicio para el almacenamiento en puntos de comprobación.
+ **HyperPod Biblioteca de Python**: interactúa con el almacenamiento desagregado APIs y proporciona utilidades para guardar, cargar y administrar puntos de control en todos los niveles
+ **Replicación de puntos de comprobación**: replica automáticamente los puntos de comprobación en varios nodos para garantizar la tolerancia a errores.

El sistema se integra perfectamente con los ciclos de PyTorch entrenamiento mediante sencillas llamadas a la API. Requiere realizar una serie de cambios mínimos en el código existente.

## Ventajas
<a name="managed-tier-checkpointing-benefits"></a>

Los puntos de control gestionados por niveles ofrecen varias ventajas para la formación de modelos a gran escala:
+ **Mejora del uso**: administra la grabación, la replicación, la persistencia y la recuperación de los puntos de comprobación
+ **Operaciones de puntos de comprobación más rápidas**: el almacenamiento basado en memoria proporciona tiempos de carga y almacenamiento más rápidos en comparación con los puntos de comprobación basados en disco, lo que permite una recuperación más rápida
+ **Tolerancia a errores**: la replicación automática de puntos de comprobación entre nodos protege contra los fallos de los nodos de hardware
+ **Cambios mínimos en el código**: la integración sencilla de la API solo requiere modificaciones menores en los scripts de entrenamiento existentes
+ **Mejora del rendimiento del entrenamiento**: la reducción de la sobrecarga de los puntos de comprobación significa que se dedica más tiempo al entrenamiento real

**Topics**
+ [Cómo funcionan los puntos de control gestionados por niveles](#managed-tier-checkpointing-works)
+ [Ventajas](#managed-tier-checkpointing-benefits)
+ [Configure puntos de control gestionados por niveles](managed-tier-checkpointing-setup.md)
+ [Eliminar los puntos de control gestionados por niveles](managed-tier-checkpointing-remove.md)
+ [Consideraciones de seguridad para gestionar los puntos de control por niveles](managed-tier-security-considerations.md)

# Configure puntos de control gestionados por niveles
<a name="managed-tier-checkpointing-setup"></a>

Esta sección contiene el proceso de configuración de los puntos de control por niveles gestionados para Amazon. SageMaker HyperPod Aprenderá a habilitar la capacidad en su clúster e implementar los puntos de comprobación en su código de entrenamiento.

**Topics**
+ [Requisitos previos](#managed-tier-checkpointing-setup-prerequisites)
+ [Paso 1: Habilite los puntos de control gestionados por niveles para su clúster](#managed-tier-checkpointing-setup-step-enable-for-cluster)
+ [Paso 2: instalación de la biblioteca de Python en la imagen de entrenamiento](#managed-tier-checkpointing-setup-step-install-library)
+ [Paso 3: Guarda los puntos de control en tu ciclo de entrenamiento](#managed-tier-checkpointing-setup-step-save-checkpoint-in-loop)
+ [Paso 4: Cargue los puntos de control para la recuperación](#managed-tier-checkpointing-setup-step-load-checkpoint)
+ [Valide sus operaciones gestionadas de puntos de control escalonados](#managed-tier-checkpointing-setup-validation)

## Requisitos previos
<a name="managed-tier-checkpointing-setup-prerequisites"></a>

Antes de configurar los puntos de control por niveles gestionados, asegúrate de:
+ Un HyperPod clúster de Amazon EKS con suficiente memoria de CPU disponible para la asignación de puntos de control
+ PyTorch cargas de trabajo de entrenamiento y trabajos de DCP (ambos son compatibles)
+ Permisos de IAM adecuados para la administración de clústeres, que incluyen:
  + Amazon CloudWatch y Amazon S3 escriben permisos para que el módulo de entrenamiento lea y escriba puntos de control y envíe métricas
  + Estos permisos se pueden configurar mediante la [configuración de EKS OIDC](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)

## Paso 1: Habilite los puntos de control gestionados por niveles para su clúster
<a name="managed-tier-checkpointing-setup-step-enable-for-cluster"></a>

**importante**  
Debe optar por utilizar los puntos de control por niveles gestionados.

Active los puntos de control gestionados por niveles HyperPod APIs al crear o actualizar el clúster. El servicio instala automáticamente el sistema de administración de memoria cuando especifica el parámetro `TieredStorageConfig`.

Para clústeres nuevos, puede utilizar. [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) AWS CLI

```
aws sagemaker create-cluster \
    --cluster-name cluster-name \
    --orchestrator "Eks={ClusterArn=eks-cluster-arn}" \
    --instance-groups '{
        "InstanceGroupName": "instance-group-name",
        "InstanceType": "instance-type",
        "InstanceCount": instance-count,
        "LifeCycleConfig": {
            "SourceS3Uri": "s3-path-to-lifecycle-scripts",
            "OnCreate": "lifecycle-script-name"
        },
        "ExecutionRole": "instance-group-iam-role",
        "ThreadsPerCore": threads-per-core,
        "InstanceStorageConfigs": [
            { "EbsVolumeConfig": {"VolumeSizeInGB": volume-size} }
        ]
    }' \
    --vpc-config '{
        "SecurityGroupIds": ["security-group-ids"],
        "Subnets": ["subnets"]
    }' \
    --tiered-storage-config '{
        "Mode": "Enable"
    }'
```

El parámetro `InstanceMemoryAllocationPercentage` especifica el `percentage` (ent) de la memoria del clúster que se va a asignar a los puntos de comprobación. El rango va de 20 a 100.

## Paso 2: instalación de la biblioteca de Python en la imagen de entrenamiento
<a name="managed-tier-checkpointing-setup-step-install-library"></a>

Instala la [biblioteca SageMaker de puntos de control de Amazon](https://pypi.org/project/amzn-sagemaker-checkpointing/) y sus dependencias en tu imagen de entrenamiento añadiéndola a tu Dockerfile:

```
# Add this line to your training image Dockerfile
RUN pip install amzn-sagemaker-checkpointing s3torchconnector tenacity torch boto3 s3torchconnector
```

## Paso 3: Guarda los puntos de control en tu ciclo de entrenamiento
<a name="managed-tier-checkpointing-setup-step-save-checkpoint-in-loop"></a>

En tu ciclo de entrenamiento, puedes guardar los puntos de control de forma asíncrona mediante DCP. PyTorch El siguiente es un ejemplo de cómo hacerlo.

```
import torch
import torch.distributed as dist
from torch.distributed.checkpoint import async_save, load
from amzn_sagemaker_checkpointing.checkpointing.filesystem.filesystem import (
    SageMakerTieredStorageWriter,
    SageMakerTieredStorageReader
)

# Initialize distributed training
dist.init_process_group(backend="nccl")

# Configure checkpointing
checkpoint_config = SageMakerCheckpointConfig(
    # Unique ID for your training job 
    # Allowed characters in ID include: alphanumeric, hyphens, and underscores
    namespace=os.environ.get('TRAINING_JOB_NAME', f'job-{int(time.time())}'),

    # Number of distributed processes/available GPUs
    world_size=dist.get_world_size(),

    # S3 storage location, required for SageMakerTieredStorageReader for read fallbacks
    # Required for SageMakerTieredStorageWriter when save_to_s3 is True
    s3_tier_base_path="s3://my-bucket/checkpoints"
)

# Your model and optimizer
model = MyModel()
optimizer = torch.optim.AdamW(model.parameters())

# Training loop
future = None
in_memory_ckpt_freq = 10
s3_ckpt_freq = 50

for training_step in range(1000):
    # ... training code ...
    
    # Save checkpoint
    if (training_step % in_memory_ckpt_freq == 0 or 
        training_step % s3_ckpt_freq == 0):
        # Create state dictionary
        state_dict = {
            "model": model.state_dict(),
            "optimizer": optimizer.state_dict(),
            "step": training_step,
            "epoch": epoch
        }
        
        # Create storage writer for current step
        checkpoint_config.save_to_s3 = training_step % s3_ckpt_freq == 0
        storage_writer = SageMakerTieredStorageWriter(
            checkpoint_config=checkpoint_config,
            step=training_step
        )

        # wait for previous checkpoint to get completed
        if future is not None:
            exc = future.exception()
            if exc:
                print(f"Failure in saving previous checkpoint:{str(exc)}")
                # Handle failures as required
            else:
                result = future.result()
                # Process results from save, if required
        
        # Async save checkpoint using PyTorch DCP
        future = async_save(state_dict=state_dict, storage_writer=storage_writer)
        
        # Continue training while checkpoint saves in background
```

## Paso 4: Cargue los puntos de control para la recuperación
<a name="managed-tier-checkpointing-setup-step-load-checkpoint"></a>

El siguiente es un ejemplo de cómo cargar un punto de control.

```
# Create state dictionary template
state_dict = {
    "model": model.state_dict(),
    "optimizer": optimizer.state_dict(),
    "step": 0,
    "epoch": 0
}

# Load latest checkpoint
storage_reader = SageMakerTieredStorageReader(checkpoint_config=checkpoint_config)
load(state_dict, storage_reader=storage_reader)

# Load specific checkpoint step
storage_reader = SageMakerTieredStorageReader(
    checkpoint_config=checkpoint_config, 
    step=500 # Or don't pass step if you have to load the latest available step.
)
try:
    load(state_dict, storage_reader=storage_reader)
except BaseException as e:
    print(f"Checkpoint load failed: {str(e)}")
    # Add additional exception handling
```

## Valide sus operaciones gestionadas de puntos de control escalonados
<a name="managed-tier-checkpointing-setup-validation"></a>

Puede validar sus operaciones de puntos de control por niveles gestionadas con registros.

**Registro personalizado (opcional)**

Puede integrar los registros de puntos de comprobación con otros registros pasando un registrador personalizado a la biblioteca. Por ejemplo, puede añadir un registrador personalizado a su código de entrenamiento para que todos los registros de la biblioteca también se recopilen en el registrador de entrenamiento.

**Registro de servicios mejorado (opcional)**

Para mejorar la depuración y la visibilidad del servicio, puede montar la ruta del registro de puntos de comprobación `/var/log/sagemaker_checkpointing` desde su pod hasta una ruta `/var/logs/sagemaker_checkpointing` del host. Esto garantiza que solo se recopilen por separado los registros específicos de la biblioteca. Esto proporciona al equipo de servicio mejor visibilidad para la depuración y la asistencia.

# Eliminar los puntos de control gestionados por niveles
<a name="managed-tier-checkpointing-remove"></a>

En esta sección se explica cómo deshabilitar los puntos de control gestionados por niveles cuando ya no los necesites.

Para deshabilitar los puntos de control por niveles gestionados, utilice [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) AWS CLI para actualizar la configuración del clúster:

```
aws sagemaker update-cluster \
    --cluster-name cluster-name \
    --tiered-storage-config '{ "Mode": "Disable" }'
```

Esto elimina el daemon de administración de memoria del clúster. El daemon se implementa como un Kubernetes estándar y sigue la gestión del ciclo de vida estándar de DaemonSet Kubernetes.

# Consideraciones de seguridad para gestionar los puntos de control por niveles
<a name="managed-tier-security-considerations"></a>

En esta sección, se tratan las consideraciones de seguridad importantes que se deben tener en cuenta al utilizar los puntos de control gestionados por niveles. Incluye el uso de pickle de Python, el cifrado de Amazon S3 y la seguridad de los puntos de conexión de la red.

**Uso de pickle de Python**

Los puntos de control por niveles gestionados utilizan el módulo pickle de Python para deserializar los datos de los puntos de control almacenados en Amazon S3. Esta implementación tiene importantes implicaciones de seguridad:
+ **Límite de confianza ampliado**: cuando se utilizan puntos de control por niveles gestionados con Amazon S3, el bucket de Amazon S3 pasa a formar parte del límite de confianza del clúster.
+ **Riesgo de ejecución de código**: el módulo pickle de Python puede ejecutar código arbitrario durante la deserialización. Si un usuario no autorizado obtiene acceso de escritura al bucket de Amazon S3 de su punto de control, podría crear datos de pickle maliciosos que se ejecutarán cuando se carguen mediante puntos de control gestionados por niveles.

**Prácticas recomendadas para el almacenamiento de Amazon S3**

Al utilizar puntos de control por niveles gestionados con el almacenamiento de Amazon S3:
+ **Limite el acceso al bucket de Amazon S3**: asegúrese de que solo los usuarios autorizados y los roles asociados a su clúster de entrenamiento tengan acceso al bucket de Amazon S3 utilizado para los puntos de comprobación.
+ **Implemente políticas de bucket**: configure las políticas de bucket adecuadas para evitar el acceso o las modificaciones no autorizadas.
+ **Valide los patrones de acceso**: Implemente el registro para validar los patrones de acceso a los buckets de Amazon S3 de sus puntos de control.
+ **Valide los nombres de los buckets**: tenga cuidado al seleccionar el nombre de los buckets para evitar posibles apropiaciones de los buckets.

**Puntos de conexión de red**

Los puntos de control gestionados por niveles permiten establecer puntos de conexión de red en cada uno de sus nodos de cómputo en los siguientes puertos: 9200/TCP, 9209/UDP, 9210/UDP, 9219/UDP, 9220/UDP, 9229/UDP, 9230/UDP, 9239/UDP, 9240/UDP. Estos puertos son necesarios para que el servicio de puntos de comprobación funcione y mantenga la sincronización de los datos.

De SageMaker forma predeterminada, la configuración de red restringe el acceso a estos puntos finales por motivos de seguridad. Se recomienda mantener estas restricciones predeterminadas.

Al configurar los ajustes de red para los nodos y la VPC, siga las prácticas AWS recomendadas para los VPCs grupos de seguridad y. ACLs Para obtener más información, consulte los siguientes temas:
+ [ SageMaker HyperPod Requisitos previos de Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpcCluster)
+ [Prácticas recomendadas de seguridad de la VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-best-practices.html)

# SageMaker HyperPod gobierno de tareas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance"></a>

SageMaker HyperPod la gobernanza de tareas es un sistema de administración sólido diseñado para agilizar la asignación de recursos y garantizar la utilización eficiente de los recursos informáticos en todos los equipos y proyectos de sus clústeres de Amazon EKS. Esto brinda a los administradores la capacidad de establecer:
+ Niveles de prioridad para diversas tareas
+ Asignación de computación para cada equipo
+ El modo en que cada equipo presta y utiliza computación inactiva
+ Si un equipo interrumpe o reasigna sus propias tareas

HyperPod La gobernanza de tareas también proporciona la observabilidad del clúster de Amazon EKS, que ofrece visibilidad en tiempo real de la capacidad del clúster. Esto incluye la disponibilidad y el uso de la computación, la asignación y utilización de los equipos y la información sobre el tiempo de ejecución y espera de las tareas, lo que le permite tomar decisiones fundamentadas y administrar los recursos de forma proactiva. 

En las siguientes secciones se explica cómo configurar, comprender los conceptos clave y utilizar la gobernanza de HyperPod tareas para sus clústeres de Amazon EKS.

**Topics**
+ [Configuración para la gobernanza de SageMaker HyperPod tareas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md)
+ [Panel de control](sagemaker-hyperpod-eks-operate-console-ui-governance-metrics.md)
+ [Tareas](sagemaker-hyperpod-eks-operate-console-ui-governance-tasks.md)
+ [Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)
+ [Ejemplos de comandos de gobierno AWS CLI de HyperPod tareas](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md)
+ [Solución de problemas](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md)
+ [Documento de atribución para la gobernanza de SageMaker HyperPod tareas de Amazon](sagemaker-hyperpod-eks-operate-console-ui-governance-attributions.md)

# Configuración para la gobernanza de SageMaker HyperPod tareas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup"></a>

En la siguiente sección, se proporciona información sobre cómo configurar Amazon CloudWatch Observability EKS y los complementos de gobierno de SageMaker HyperPod tareas.

Asegúrese de tener la política de permisos mínimos para los administradores de HyperPod clústeres con Amazon EKS, in[Usuarios de IAM para la administración de clústeres](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Esto incluye permisos para ejecutar los clústeres SageMaker HyperPod principales APIs y administrarlos dentro de sus SageMaker HyperPod Cuenta de AWS clústeres y realizar las tareas en ellos[Administración de SageMaker HyperPod clústeres orquestados por Amazon EKS](sagemaker-hyperpod-eks-operate.md). 

**Topics**
+ [Configuración del panel](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md)
+ [Configuración de la gobernanza de tareas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance.md)

# Configuración del panel
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard"></a>

Utilice la siguiente información para configurar el complemento SageMaker HyperPod Amazon CloudWatch Observability EKS. Este complemento le proporciona un panel visual detallado de las métricas del hardware del clúster de EKS, la asignación de equipos y las tareas.

Si tiene problemas con la configuración, consulte [Solución de problemas](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md) para ver las soluciones de problemas conocidos.

**Topics**
+ [HyperPod Requisitos previos del complemento Amazon CloudWatch Observability EKS](#hp-eks-dashboard-prerequisites)
+ [HyperPod Configuración del complemento Amazon CloudWatch Observability EKS](#hp-eks-dashboard-setup)

## HyperPod Requisitos previos del complemento Amazon CloudWatch Observability EKS
<a name="hp-eks-dashboard-prerequisites"></a>

En la siguiente sección se incluyen los requisitos previos necesarios antes de instalar el complemento de observabilidad de Amazon EKS.
+ Asegúrese de tener la política de permisos mínimos para los administradores de HyperPod clústeres, en. [Usuarios de IAM para la administración de clústeres](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin)
+ Asocie la política de IAM `CloudWatchAgentServerPolicy` a sus nodos de trabajo. Para ello, introduzca el siguiente comando. Sustituya `my-worker-node-role` por el rol de IAM que utilizan sus nodos de trabajo de Kubernetes.

  ```
  aws iam attach-role-policy \
  --role-name my-worker-node-role \
  --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  ```

## HyperPod Configuración del complemento Amazon CloudWatch Observability EKS
<a name="hp-eks-dashboard-setup"></a>

Utilice las siguientes opciones para configurar el complemento Amazon SageMaker HyperPod Amazon CloudWatch Observability EKS.

------
#### [ Setup using the SageMaker AI console ]

Se requieren los siguientes permisos para configurar y visualizar el panel de control de HyperPod tareas. En esta sección se amplían los permisos que se enumeran en [Usuarios de IAM para la administración de clústeres](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). 

Para administrar la gobernanza de tareas, utilice la política de ejemplo:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListClusters",
                "sagemaker:DescribeCluster",
                "sagemaker:ListComputeQuotas",
                "sagemaker:CreateComputeQuota",
                "sagemaker:UpdateComputeQuota",
                "sagemaker:DescribeComputeQuota",
                "sagemaker:DeleteComputeQuota",
                "sagemaker:ListClusterSchedulerConfigs",
                "sagemaker:DescribeClusterSchedulerConfig",
                "sagemaker:CreateClusterSchedulerConfig",
                "sagemaker:UpdateClusterSchedulerConfig",
                "sagemaker:DeleteClusterSchedulerConfig",
                "eks:ListAddons",
                "eks:CreateAddon",
                "eks:DescribeAddon",
                "eks:DescribeCluster",
                "eks:DescribeAccessEntry",
                "eks:ListAssociatedAccessPolicies",
                "eks:AssociateAccessPolicy",
                "eks:DisassociateAccessPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Para conceder permisos para gestionar Amazon CloudWatch Observability Amazon EKS y ver el panel del HyperPod clúster a través de la consola de SageMaker IA, utilice el ejemplo de política que se muestra a continuación:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:ListAddons",
                "eks:CreateAddon",
                "eks:UpdateAddon",
                "eks:DescribeAddon",
                "eks:DescribeAddonVersions",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "sagemaker:ListComputeQuotas",
                "sagemaker:DescribeComputeQuota",
                "sagemaker:ListClusterSchedulerConfigs",
                "sagemaker:DescribeClusterSchedulerConfig",
                "eks:DescribeCluster",
                "cloudwatch:GetMetricData",
                "eks:AccessKubernetesApi"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Vaya a la pestaña **Panel** de control de la SageMaker HyperPod consola para instalar Amazon CloudWatch Observability EKS. Para asegurarse de que las métricas relacionadas con la gobernanza de tareas estén incluidas en el **Panel**, active la casilla de verificación de las métricas de Kueue. Al activar las métricas de Kueue, se activan los costes de CloudWatch **Metrics**, una vez alcanzado el límite del nivel gratuito. Para obtener más información, consulta **Métricas** en [Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/).

------
#### [ Setup using the EKS AWS CLI ]

Usa el siguiente AWS CLI comando EKS para instalar el complemento:

```
aws eks create-addon --cluster-name cluster-name 
--addon-name amazon-cloudwatch-observability 
--configuration-values "configuration json"
```

A continuación se muestra un ejemplo del JSON de los valores de configuración:

```
{
    "agent": {
        "config": {
            "logs": {
                "metrics_collected": {
                    "kubernetes": {
                        "kueue_container_insights": true,
                        "enhanced_container_insights": true
                    },
                    "application_signals": { }
                }
            },
            "traces": {
                "traces_collected": {
                    "application_signals": { }
                }
            }
        },
    },
}
```

------
#### [ Setup using the EKS Console UI ]

1. Vaya a la [consola de EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. Elija su clúster.

1. Elegir **Complementos**.

1. Busque el complemento **Amazon CloudWatch Observability** e instálelo. Instale la versión >= 2.4.0 del complemento. 

1. Incluya los siguientes valores de configuración de JSON:

   ```
   {
       "agent": {
           "config": {
               "logs": {
                   "metrics_collected": {
                       "kubernetes": {
                           "kueue_container_insights": true,
                           "enhanced_container_insights": true
                       },
                       "application_signals": { }
                   },
               },
               "traces": {
                   "traces_collected": {
                       "application_signals": { }
                   }
               }
           },
       },
   }
   ```

------

Una vez que el complemento EKS Observability se haya instalado correctamente, podrá ver las métricas de su clúster de EKS en la pestaña del **panel** de control de la HyperPod consola.

# Configuración de la gobernanza de tareas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance"></a>

En esta sección se incluye información sobre cómo configurar el complemento Amazon SageMaker HyperPod Task Governance EKS. Esto incluye la concesión de permisos que le permiten establecer las prioridades de las tareas, la asignación de computación a los equipos, la forma en que se comparte la computación inactiva y la preferencia de tareas para los equipos.

Si tiene problemas con la configuración, consulte [Solución de problemas](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md) para ver las soluciones de problemas conocidos.

**Topics**
+ [Configuración de Kueue](#hp-eks-task-governance-kueue-settings)
+ [HyperPod Requisitos previos de gobierno de tareas](#hp-eks-task-governance-prerequisites)
+ [HyperPod configuración de gobierno de tareas](#hp-eks-task-governance-setup)

## Configuración de Kueue
<a name="hp-eks-task-governance-kueue-settings"></a>

HyperPod El complemento EKS para la gobernanza de tareas instala [Kueue](https://github.com/kubernetes-sigs/kueue/tree/main/apis/kueue) para tus HyperPod clústeres de EKS. Kueue es un sistema nativo de Kubernetes que administra las cuotas y la forma en que las consumen los trabajos. 


| Versión complementaria de gobierno de HyperPod tareas de EKS | Versión de Kueue que se instala como parte del complemento | 
| --- | --- | 
|  v1.1.3  |  v0.12.0  | 

**nota**  
La versión v.012.0 y las versiones posteriores de Kueue no se incluyen kueue-rbac-proxy como parte de la instalación. Es posible que se hayan instalado versiones anteriores. kueue-rbac-proxy Por ejemplo, si utilizas Kueue v0.8.1, es posible que tengas la v0.18.1. kueue-rbac-proxy

HyperPod La gobernanza de tareas utiliza Kueue para gestionar las colas de tareas, la programación y las cuotas, de forma nativa de Kubernetes, y se instala con el complemento EKS de gobernanza de tareas. HyperPod Cuando se instala, HyperPod crea y modifica los recursos de Kubernetes gestionados por la SageMaker IA, como,,, y. `KueueManagerConfig` `ClusterQueues` `LocalQueues` `WorkloadPriorityClasses` `ResourceFlavors` `ValidatingAdmissionPolicies` Si bien los administradores de Kubernetes tienen la flexibilidad de modificar el estado de estos recursos, es posible que el servicio actualice y sobrescriba cualquier cambio realizado en un recurso administrado por la SageMaker IA.

La siguiente información describe los ajustes de configuración que utiliza el complemento de gobierno de HyperPod tareas para configurar Kueue.

```
  apiVersion: config.kueue.x-k8s.io/v1beta1
    kind: Configuration
    health:
      healthProbeBindAddress: :8081
    metrics:
      bindAddress: :8443
      enableClusterQueueResources: true
    webhook:
      port: 9443
    manageJobsWithoutQueueName: false
    leaderElection:
      leaderElect: true
      resourceName: c1f6bfd2.kueue.x-k8s.io
    controller:
      groupKindConcurrency:
        Job.batch: 5
        Pod: 5
        Workload.kueue.x-k8s.io: 5
        LocalQueue.kueue.x-k8s.io: 1
        ClusterQueue.kueue.x-k8s.io: 1
        ResourceFlavor.kueue.x-k8s.io: 1
    clientConnection:
      qps: 50
      burst: 100
    integrations:
      frameworks:
      - "batch/job"
      - "kubeflow.org/mpijob"
      - "ray.io/rayjob"
      - "ray.io/raycluster"
      - "jobset.x-k8s.io/jobset"
      - "kubeflow.org/mxjob"
      - "kubeflow.org/paddlejob"
      - "kubeflow.org/pytorchjob"
      - "kubeflow.org/tfjob"
      - "kubeflow.org/xgboostjob"
      - "pod"
      - "deployment"
      - "statefulset"
      - "leaderworkerset.x-k8s.io/leaderworkerset"
      podOptions:
        namespaceSelector:
          matchExpressions:
            - key: kubernetes.io/metadata.name
              operator: NotIn
              values: [ kube-system, kueue-system ]
    fairSharing:
      enable: true
      preemptionStrategies: [LessThanOrEqualToFinalShare, LessThanInitialShare]
    resources:
      excludeResourcePrefixes: []
```

Para obtener más información sobre cada configuración, consulte [Configuración](https://kueue.sigs.k8s.io/docs/reference/kueue-config.v1beta1/#Configuration) en la documentación de Kueue.

## HyperPod Requisitos previos de gobierno de tareas
<a name="hp-eks-task-governance-prerequisites"></a>
+ Asegúrese de tener la política de permisos mínimos para los administradores de HyperPod clústeres, en[Usuarios de IAM para la administración de clústeres](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Esto incluye los permisos para ejecutar el SageMaker HyperPod núcleo APIs, administrar SageMaker HyperPod los clústeres dentro del Cuenta de AWS suyo y realizar las tareas en él[Administración de SageMaker HyperPod clústeres orquestados por Amazon EKS](sagemaker-hyperpod-eks-operate.md). 
+ Necesitará una versión de Kubernetes >= 1.30. Para obtener instrucciones, consulte [Actualización del clúster existente a la nueva versión de Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html).
+ Si ya tiene Kueue instalado en sus clústeres, desinstale Kueue antes de instalar el complemento EKS.
+ Debe existir ya un HyperPod nodo en el clúster de EKS antes de instalar el complemento de gobierno de HyperPod tareas. 

## HyperPod configuración de gobierno de tareas
<a name="hp-eks-task-governance-setup"></a>

A continuación, se proporciona información sobre cómo configurar la gobernanza de HyperPod tareas.

------
#### [ Setup using the SageMaker AI console ]

A continuación, se proporciona información sobre cómo configurar la gobernanza de HyperPod tareas mediante la SageMaker HyperPod consola.

Si ya ha concedido permisos para gestionar Amazon CloudWatch Observability EKS y ver el panel de control del HyperPod clúster a través de la consola de SageMaker IA del[HyperPod Configuración del complemento Amazon CloudWatch Observability EKS](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md#hp-eks-dashboard-setup). Si no lo ha configurado, utilice el ejemplo de política que se muestra a continuación para conceder permisos que le permitan gestionar el complemento de gobierno de HyperPod tareas y ver el panel del HyperPod clúster a través de la consola de SageMaker IA.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:ListAddons",
                "eks:CreateAddon",
                "eks:UpdateAddon",
                "eks:DescribeAddon",
                "eks:DescribeAddonVersions",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "eks:DescribeCluster",
                "eks:AccessKubernetesApi"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Dirígete a la pestaña **Panel** de control de la SageMaker HyperPod consola para instalar el complemento Amazon SageMaker HyperPod Task Governance. 

------
#### [ Setup using the Amazon EKS AWS CLI ]

Utilice el AWS CLI comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/create-addon.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/create-addon.html)EKS de ejemplo para configurar la API Amazon EKS de gobierno de HyperPod tareas y la interfaz de usuario de la consola mediante AWS CLI:

```
aws eks create-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance
```

------

Si la instalación se ha realizado correctamente, puede ver la pestaña **Políticas** de la consola de HyperPod SageMaker IA. También puede utilizar el siguiente AWS CLI comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/describe-addon.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/describe-addon.html)EKS de ejemplo para comprobar el estado. 

```
aws eks describe-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance
```

# Panel de control
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-metrics"></a>

La gobernanza de SageMaker HyperPod tareas de Amazon proporciona una vista integral en un panel de control de las métricas de uso del clúster de Amazon EKS, incluidas las métricas de hardware, equipo y tareas. A continuación, se proporciona información sobre el panel de control del clúster de HyperPod EKS.

El panel proporciona una vista integral de las métricas de uso del clúster, incluidas las métricas de hardware, equipo y tareas. Deberá instalar el complemento EKS para ver el panel. Para obtener más información, consulte [Configuración del panel](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md).

En la [consola de Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/), en **HyperPod Clústeres**, puede navegar hasta la HyperPod consola y ver la lista de HyperPod clústeres de su región. Elija su clúster y vaya a la pestaña **Panel**. El panel contiene las siguientes métricas. Puede descargar los datos de una sección seleccionando la opción **Exportar** correspondiente.

**Uso**

Proporciona el estado del clúster de EKS point-in-time y métricas basadas en tendencias para los recursos informáticos críticos. De forma predeterminada, se muestra **Todos los grupos de instancias**. Utilice el menú desplegable para filtrar los grupos de instancias. Las métricas incluidas en esta sección son:
+ Número de instancias de recuperación totales, en ejecución y pendientes. El número de instancias de recuperación pendientes hace referencia al número de instancias que hay que tener en cuenta para la recuperación.
+ GPUs, memoria GPU, memoria v CPUs y vCPUs .
+ Uso de la GPU, uso de la memoria de la GPU, uso de la vCPU y uso de la memoria de la vCPU.
+ Un gráfico interactivo del uso de la GPU y la vCPU. 

**Equipos**

Proporciona información sobre la administración de recursos específica del equipo. Esto incluye:
+ Asignación de instancias y GPU
+ Tasas de utilización de la GPU
+ Estadísticas de GPU prestadas
+ Estado de la tarea (en ejecución o pendiente)
+ Un gráfico de barras que muestra el uso de la GPU en comparación con la asignación de computación entre los equipos.
+ El equipo ha aportado información relacionada con la GPU y la vCPU. De forma predeterminada, la información que se muestra incluye **Todos los equipos**. Puede filtrar por equipo e instancias seleccionando los menús desplegables. En el gráfico interactivo puede filtrar por tiempo.

**Tareas**

**nota**  
Para ver las tareas del clúster de HyperPod EKS en el panel de control:  
Configure el control de acceso basado en roles (RBAC) de Kubernetes para los usuarios de científicos de datos en el espacio de HyperPod nombres designado para autorizar la ejecución de tareas en clústeres orquestados por Amazon EKS. Los espacios de nombres siguen el formato `hyperpod-ns-team-name`. Para establecer los permisos RBAC, consulte las [instrucciones de creación de roles de equipo](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
Asegúrese de que el trabajo se envíe con el espacio de nombres y las etiquetas de clase prioritaria adecuados. Para obtener un ejemplo completo, consulte [Envíe un trabajo a una cola y un espacio de nombres SageMaker gestionados por la IA](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).

Proporciona información sobre las métricas relacionadas con las tareas. Incluye el número de tareas en ejecución, pendientes y antepuestas, así como las estadísticas de ejecución y tiempo de espera. De forma predeterminada, la información que se muestra incluye **Todos los equipos**. Puede filtrar por equipo seleccionando el menú desplegable. En el gráfico interactivo puede filtrar por tiempo.

# Tareas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks"></a>

A continuación, se proporciona información sobre las tareas del clúster de Amazon SageMaker HyperPod EKS. Las tareas son operaciones o trabajos que se envían al clúster. Pueden ser operaciones de machine learning, como el entrenamiento, la ejecución de experimentos o la inferencia. La lista de detalles de las tareas visibles incluye el estado, el tiempo de ejecución y la cantidad de computación que se utiliza por tarea. 

En la [consola de Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/), en **HyperPod Clústeres**, puede navegar hasta la HyperPod consola y ver la lista de HyperPod clústeres de su región. Elija su clúster y vaya a la pestaña **Tareas**.

Para que cualquier persona que no sea administradora pueda ver la pestaña **Tareas**, el administrador debe [añadir una entrada de acceso al clúster de EKS para el rol de IAM](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html). 

**nota**  
Para ver las tareas del clúster de HyperPod EKS en el panel de control:  
Configure el control de acceso basado en roles (RBAC) de Kubernetes para los usuarios de científicos de datos en el espacio de HyperPod nombres designado para autorizar la ejecución de tareas en clústeres orquestados por Amazon EKS. Los espacios de nombres siguen el formato `hyperpod-ns-team-name`. Para establecer los permisos RBAC, consulte las [instrucciones de creación de roles de equipo](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
Asegúrese de que el trabajo se envíe con el espacio de nombres y las etiquetas de clase prioritaria adecuados. Para obtener un ejemplo completo, consulte [Envíe un trabajo a una cola y un espacio de nombres SageMaker gestionados por la IA](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).

En el caso de los clústeres de EKS, se muestran las tareas de kubeflow (, MPI,). PyTorch TensorFlow De forma predeterminada, se muestran PyTorch las tareas. Puedes filtrar por PyTorch TensorFlow tareas (MPI) seleccionando el menú desplegable o utilizando el campo de búsqueda. De cada tarea se muestra el nombre, el estado, el espacio de nombres, la clase de prioridad y la hora de creación. 

# Uso de la programación basada en la topología en la gobernanza de tareas de Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-scheduling"></a>

La programación basada en la topología en la gobernanza de SageMaker HyperPod tareas de Amazon optimiza la eficiencia del entrenamiento de las cargas de trabajo de aprendizaje automático distribuidas al colocar los pods en función de la topología de red física de las instancias de Amazon EC2. Al tener en cuenta la estructura jerárquica de la AWS infraestructura, incluidas las zonas de disponibilidad, los bloques de red y los racks físicos, la programación basada en la topología garantiza que los módulos que requieren una comunicación frecuente se programen muy cerca para minimizar la latencia de la red. Esta ubicación inteligente es especialmente beneficiosa para los trabajos de formación en aprendizaje automático a gran escala que requieren una pod-to-pod comunicación intensiva, lo que se traduce en una reducción de los tiempos de formación y en una utilización más eficiente de los recursos en todo el clúster.

**nota**  
Para utilizar una programación basada en la topología, asegúrate de que tu versión de la gobernanza de HyperPod tareas sea la v1.2.2-eksbuild.1 o superior.

La programación con reconocimiento de topología admite los siguientes tipos de instancia:
+ ml.p3dn.24xlarge
+ ml.p4d.24xlarge
+ ml.p4de.24xlarge
+ ml.p5.48xlarge
+ ml.p5e.48xlarge
+ ml.p5en.48xlarge
+ ml.p6e-gb200.36xlarge
+ ml.trn1.2xlarge
+ ml.trn1.32xlarge
+ ml.trn1n.32xlarge
+ ml.trn2.48xlarge
+ ml.trn2u.48xlarge

La programación compatible con la topología se integra con sus HyperPod flujos de trabajo existentes y, al mismo tiempo, proporciona preferencias de topología flexibles a través de los archivos YAML de kubectl y la CLI. HyperPod HyperPod La gobernanza de tareas configura automáticamente los nodos del clúster con etiquetas topológicas y funciona con las políticas de gestión de HyperPod tareas y los mecanismos de préstamo de recursos, lo que garantiza que la programación basada en la topología no interrumpa los procesos operativos actuales. Gracias a la compatibilidad integrada con las especificaciones topológicas preferidas y obligatorias, puede refinar la ubicación de las cargas de trabajo para adaptarla a sus requisitos de rendimiento específicos y, al mismo tiempo, mantener la flexibilidad necesaria para recurrir a la programación estándar cuando no se puedan cumplir las limitaciones topológicas.

Al utilizar etiquetas que tienen en cuenta la topología HyperPod, puede mejorar sus cargas de trabajo de aprendizaje automático mediante una colocación inteligente de los módulos que tenga en cuenta la infraestructura física de la red. HyperPod La gestión de tareas optimiza automáticamente la programación de los módulos en función de la topología jerárquica del centro de datos, lo que se traduce directamente en una reducción de la latencia de la red y en un mejor rendimiento de entrenamiento para las tareas de aprendizaje automático distribuidas. Este conocimiento de la topología es especialmente valioso para las cargas de trabajo de machine learning de gran tamaño, ya que minimiza la sobrecarga de comunicación al colocar estratégicamente los pods relacionados más cerca unos de otros en la jerarquía de la red. El resultado es una latencia optimizada de la red de comunicación entre los módulos, una utilización más eficiente de los recursos y un mejor rendimiento general para AI/ML las aplicaciones con un uso intensivo de recursos informáticos, todo ello sin necesidad de gestionar manualmente complejas configuraciones de topología de red.

Las siguientes son etiquetas para las capas de red topológicas disponibles en las que el gobierno de HyperPod tareas puede programar los pods:
+ topology.k8s.aws/ -1 network-node-layer
+ network-node-layertopology.k8s.aws/ -2
+ network-node-layertopology.k8s.aws/ -3
+ topology.k8s.aws/ultraserver-id

Para usar la programación con reconocimiento de topología, debe incluir las siguientes etiquetas en su archivo YAML:
+ kueue.x-k8s.io/podset-required-topology : indica que este trabajo debe tener los pods necesarios y que todos los pods de los nodos deben programarse dentro de la misma capa de topología.
+ kueue.x-k8s.io/podset-preferred-topology : indica que este trabajo debe tener los pods, pero que se prefiere programar los pods dentro de la misma capa de topología, aunque no es obligatorio. HyperPod el gobierno de tareas intentará programar los módulos dentro de una capa antes de probar con la siguiente capa de topología.

Si los recursos no comparten la misma etiqueta de topología, el trabajo se suspenderá. El trabajo estará en la lista de espera. Cuando Kueue vea que hay suficientes recursos, admitirá el trabajo y lo ejecutará.

En el siguiente ejemplo, se muestra cómo utilizar las etiquetas en los archivos YAML:

```
apiVersion: batch/v1
kind: Job
metadata:
  name: test-tas-job
  namespace: hyperpod-ns-team-name
  labels:
    kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
    kueue.x-k8s.io/priority-class: PRIORITY_CLASS-priority
spec:
  parallelism: 10
  completions: 10
  suspend: true
  template:
    metadata:
      labels:
        kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
      annotations:
        kueue.x-k8s.io/podset-required-topology: "topology.k8s.aws/network-node-layer-3"
        or
        kueue.x-k8s.io/podset-preferred-topology: "topology.k8s.aws/network-node-layer-3"
    spec:
      nodeSelector:
        topology.k8s.aws/network-node-layer-3: TOPOLOGY_LABEL_VALUE
      containers:
        - name: dummy-job
          image: gcr.io/k8s-staging-perf-tests/sleep:v0.1.0
          args: ["3600s"]
          resources:
            requests:
              cpu: "100"
      restartPolicy: Never
```

En la siguiente tabla se explican los nuevos parámetros que puede usar en el archivo YAML de kubectl.


| Parámetro | Description (Descripción) | 
| --- | --- | 
| kueue.x-k8s.io/queue-name | Es el nombre de la cola que se utilizará para ejecutar el trabajo. El formato del nombre de esta cola debe ser hyperpod-ns-team-name-localqueue. | 
| kueue.x-k8s.io/priority-class | Permite especificar una prioridad para la programación de los pods. Esta especificación es opcional. | 
| annotations | Contiene la anotación de topología que asocia al trabajo. Las topologías disponibles son kueue.x-k8s.io/ y podset-required-topology kueue.x-k8s.io/. podset-preferred-topology Puede utilizar annotation o nodeSelector, pero no ambos a la vez. | 
| nodeSelector | Especifica la capa de red que representa la capa de ubicación de las instancias de Amazon EC2. Puede utilizar este campo o una anotación, pero no ambos a la vez. En el archivo YAML, también puede usar el parámetro nodeSelector para elegir la capa exacta para sus pods. Para obtener el valor de la etiqueta, usa la operación API. [ DescribeInstanceTopology](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTopology.html) | 

También puede usar la HyperPod CLI para ejecutar su trabajo y usar la programación compatible con la topología. Para obtener más información acerca de la HyperPod CLI, consulte[SageMaker HyperPod Comandos CLI](sagemaker-hyperpod-eks-hyperpod-cli-reference.md).

```
hyp create hyp-pytorch-job \                                            
  --version 1.1 \
  --job-name sample-pytorch-job \
  --image 123456789012.dkr.ecr.us-west-2.amazonaws.com/ptjob:latest \
  --pull-policy "Always" \
  --tasks-per-node 1 \
  --max-retry 1 \
  --priority high-priority \
  --namespace hyperpod-ns-team-name \
  --queue-name hyperpod-ns-team-name-localqueue \
  --preferred-topology-label topology.k8s.aws/network-node-layer-1
```

El siguiente es un ejemplo de archivo de configuración que puede utilizar para ejecutar un archivo PytorchJob con etiquetas topológicas. El archivo es muy similar si desea ejecutar trabajos MPI y Tensorflow. Si desea ejecutar esos trabajos en su lugar, recuerde cambiar el archivo de configuración en consecuencia, por ejemplo, utilizando la imagen correcta en lugar de PyTorchJob. Si está ejecutando un PyTorchJob, puede asignar topologías diferentes a los nodos maestro y trabajador. PyTorchJob siempre tiene un nodo maestro, por lo que le recomendamos que utilice la topología para admitir los módulos de trabajo en su lugar.

```
apiVersion: kubeflow.org/v1
kind: PyTorchJob
metadata:
  annotations: {}
  labels:
    kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
  name: tas-test-pytorch-job
  namespace: hyperpod-ns-team-name
spec:
  pytorchReplicaSpecs:
    Master:
      replicas: 1
      restartPolicy: OnFailure
      template:
        metadata:
          labels:
            kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        spec:
          containers:
          - command:
            - python3
            - /opt/pytorch-mnist/mnist.py
            - --epochs=1
            image: docker.io/kubeflowkatib/pytorch-mnist:v1beta1-45c5727
            imagePullPolicy: Always
            name: pytorch
    Worker:
      replicas: 10
      restartPolicy: OnFailure
      template:
        metadata:
          # annotations:
            # kueue.x-k8s.io/podset-required-topology: "topology.k8s.aws/network-node-layer-3"
          labels:
            kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        spec:
          containers:
          - command:
            - python3
            - /opt/pytorch-mnist/mnist.py
            - --epochs=1
            image: docker.io/kubeflowkatib/pytorch-mnist:v1beta1-45c5727
            imagePullPolicy: Always
            name: pytorch
            resources:
              limits:
                cpu: 1
              requests:
                memory: 200Mi
                cpu: 1
          #nodeSelector:
          #  topology.k8s.aws/network-node-layer-3: xxxxxxxxxxx
```

Para ver las topologías de tu clúster, usa la operación [ DescribeInstanceTopology](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTopology.html)API. De forma predeterminada, las topologías están ocultas en Amazon Studio Consola de administración de AWS y Amazon SageMaker Studio. Siga estos pasos para verlas en la interfaz que está utilizando.

**SageMaker Estudio**

1. En SageMaker Studio, navega hasta tu clúster.

1. En la vista Tareas, seleccione el menú de opciones de la columna Nombre y, a continuación, elija **Administrar columnas**.

1. Seleccione **Topología solicitada** y **Restricción de topología** para añadir las columnas y ver la información de topología en la lista de pods de Kubernetes.

**Consola de administración de AWS**

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

1. En **HyperPod clústeres**, selecciona **Gestión de clústeres**.

1. Elija la pestaña **Tareas** y, a continuación, el icono con forma de engranaje.

1. En los atributos de la instancia, seleccione **Topología solicitada** y **Restricción de topología**.

1. Seleccione **Confirmar** para ver la información de topología en la tabla.

# Uso de la programación de pandillas en la gobernanza de SageMaker HyperPod tareas de Amazon
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-gang-scheduling"></a>

En la formación en aprendizaje automático distribuido, un trabajo suele requerir la ejecución simultánea de varios módulos en los nodos con pod-to-pod comunicación. HyperPod La gobernanza de tareas utiliza la `waitForPodsReady` función de Kueue para implementar la programación de pandillas. Cuando está habilitada, Kueue supervisa la carga de trabajo hasta que todos sus módulos estén listos, es decir, programarlos, ejecutarlos y superar la prueba de disponibilidad opcional. Si no todos los módulos de la carga de trabajo están listos dentro del tiempo de espera configurado, la carga de trabajo se desaloja y se vuelve a poner en cola.

La programación en grupo ofrece las siguientes ventajas:
+ **Evita el desperdicio de recursos**: Kueue desaloja y vuelve a poner en cola la carga de trabajo si todos los módulos no están preparados, lo que garantiza que los recursos no se retengan indefinidamente debido a las cargas de trabajo que se ejecutan parcialmente.
+ **Evita los puntos muertos: evita que los trabajos retengan recursos parciales y se bloqueen** entre sí indefinidamente.
+ **Recuperación automática**: si los módulos no están listos dentro del tiempo de espera, la carga de trabajo se desaloja y se vuelve a poner en cola con un retraso exponencial configurable, en lugar de suspenderse indefinidamente.

## Activa la programación de pandillas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-gang-scheduling-activate"></a>

Para activar la programación de bandas, debe tener un clúster de HyperPod Amazon EKS con el complemento Amazon EKS de gobernanza de tareas instalado. El estado del complemento debe ser `Active` o`Degraded`.

**nota**  
La programación de bandas también se puede configurar directamente `kubectl` editando la configuración de Kueue en el clúster.

**Activa la programación de pandillas (consola de SageMaker IA)**

1. Abre la [consola Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/) y navega hasta tu HyperPod clúster.

1. Seleccione la pestaña **Gestión de políticas**.

1. En la sección **Gobernanza de tareas**, abre **Acciones** y, a continuación, selecciona **Configurar la programación de bandas**.

1. Activa la programación de bandas y configura los ajustes.

1. Seleccione **Save**. El controlador Kueue se reinicia para aplicar el cambio.

## Ajustes de configuración de la programación de bandas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-gang-scheduling-settings"></a>

En la siguiente tabla se describen los ajustes de configuración de la programación de bandas.


| Opción | Description (Descripción) | Predeterminado | 
| --- | --- | --- | 
| timeout | Cuánto tiempo espera Kueue a que todos los pods estén listos antes de desalojar la carga de trabajo y volver a ponerla en cola. | 5 m | 
| recoveryTimeout | Cuánto tiempo espera Kueue a que un pod se recupere tras un fallo en el nodo antes de volver a poner en cola la carga de trabajo. Configúrelo en para inhabilitarlo. 0s El valor predeterminado es el de timeout si no está establecido. | 5 m | 
| blockAdmission | Cuando está habilitada, las cargas de trabajo se admiten secuencialmente. No se admite ninguna carga de trabajo nueva hasta que todos los módulos del módulo actual estén listos. Evita los bloqueos en los clústeres con recursos limitados. | Desactivado | 
| requeuingStrategy timestamp | Ya sea que se utilice el pedido de nueva cola Creation (hora de envío original, preserva la posición de la cola) o Eviction (hora del último desalojo, lo que reduce la prioridad de los trabajos que fallan repetidamente). | Expulsión | 
| requeuingStrategy backoffLimitCount | Número máximo de intentos de volver a hacer cola antes de que Kueue desactive permanentemente la carga de trabajo. Déjelo en blanco para reintentos ilimitados. | Sin límite | 
| requeuingStrategy backoffBaseSeconds | El tiempo base en segundos para el retraso exponencial al volver a poner en cola una carga de trabajo después de cada tiempo de espera consecutivo. El exponente es 2. | 60 s | 
| requeuingStrategy backoffMaxSeconds | Limite el retardo de retroceso exponencial. Una vez alcanzado, Kueue continúa haciendo cola en este intervalo fijo. | 3600 | 

**nota**  
Al modificar la configuración de la programación de las bandas, se reinicia el mando Kueue, lo que puede retrasar temporalmente la admisión al trabajo. Esto se aplica tanto si está habilitando, deshabilitando o actualizando algún valor. Los trabajos en ejecución no se interrumpen.

**nota**  
La programación de las pandillas abarca a todo el grupo. Se aplica a todas las cargas de trabajo gestionadas por Kueue en el clúster, no solo a equipos o colas específicos.

# Políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies"></a>

 SageMaker HyperPod La gobernanza de tareas de Amazon simplifica la forma en que se asignan los recursos del clúster de Amazon EKS y la forma en que se priorizan las tareas. A continuación, se proporciona información sobre las políticas de clústeres de HyperPod EKS. Para obtener más información acerca de cómo configurar la gobernanza de tareas, consulte [Configuración de la gobernanza de tareas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance.md).

Las políticas se dividen en **Priorización de recursos de computación** y **Asignación de recursos de computación**. Los siguientes conceptos de política se organizarán en el contexto de estas políticas.

La **Priorización de recursos de computación**, o la política de clústeres, determina cómo se toma prestada la computación inactiva y cómo priorizan las tareas los equipos.
+ La **Asignación de recursos de computación** define cómo se asignan los recursos de computación inactivos entre los equipos. Es decir, cómo se pueden tomar prestados los recursos de computación inactivos de los equipos. Al elegir una **Asignación de recursos de computación inactivos**, puede escoger entre:
  + **Se ejecutará por orden de llegada**: cuando se aplica, los equipos no tienen prioridad entre sí y cada tarea entrante tiene la misma probabilidad de obtener recursos que superen la cuota. Las tareas se priorizan en función del orden de envío. Esto significa que un usuario puede utilizar el 100 % de los recursos de computación inactivos si lo solicita primero.
  + **Reparto equitativo**: cuando se aplica, los equipos toman prestada la computación inactiva en función de la **Distribución equitativa del peso**. Estas ponderaciones se definen en **Asignación de recursos de computación**. Para obtener más información sobre cómo se puede usar, consulte [Ejemplos de uso compartido de recursos de computación inactivos](#hp-eks-task-governance-policies-examples).
+ **Priorización de tareas** define cómo se ponen en cola las tareas a medida que el cálculo está disponible. Al elegir **Priorización de tareas**, puede escoger entre:
  + **Se ejecutará por orden de llegada**: cuando se aplican, las tareas se ponen en cola en el orden en que se solicitan.
  + **Clasificación de tareas**: cuando se aplica, las tareas se ponen en cola en el orden definido según su prioridad. Si elige esta opción, debe agregar las clases de prioridad junto con las ponderaciones con las que se deberían priorizar. Las tareas de la misma clase de prioridad se ejecutarán por orden de llegada. Cuando la opción Asignación de recursos de computación está activada, las tareas del equipo de mayor prioridad se anteponen a las tareas de menor prioridad.

    Cuando los científicos de datos envían trabajos al clúster, utilizan el nombre de la clase de prioridad del archivo YAML. La clase de prioridad tiene el formato `priority-class-name-priority`. Para ver un ejemplo, consulta [Envíe un trabajo a una cola y un espacio de nombres SageMaker gestionados por la IA](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).
  + **Clases de prioridad**: estas clases establecen una prioridad relativa para las tareas cuando toman prestada la capacidad. Cuando una tarea se ejecuta con una cuota prestada, puede anteponerse a otra tarea de mayor prioridad si no hay más capacidad disponible para la tarea entrante. Si **Preferencia** está activado en **Asignación de recursos de computación**, una tarea de mayor prioridad también puede tener prioridad sobre las tareas de su propio equipo.
+ El **uso compartido de recursos no asignados** permite a los equipos tomar prestados recursos informáticos que no están asignados a ningún equipo a través de la cuota de cálculo. Cuando se habilita, la capacidad del clúster no asignada queda disponible para que los equipos la tomen prestada automáticamente. Para obtener más información, consulte [Cómo funciona el uso compartido de recursos no asignados](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works).

**Asignación de recursos de computación**, o cuota de computación, define la asignación de recursos de computación de un equipo y el peso (o nivel de prioridad) que se le asigna a un equipo para repartir equitativamente los recursos de computación inactivos. 
+ **Nombre del equipo**: es el nombre del equipo. Se creará un **espacio de nombres** correspondiente, del tipo `hyperpod-ns-team-name`. 
+ **Miembros**: miembros del espacio de nombres del equipo. Deberá configurar un control de acceso basado en roles (RBAC) de Kubernetes para los usuarios de científicos de datos que desee que formen parte de este equipo, a fin de ejecutar tareas en clústeres organizados con Amazon EKS. HyperPod Para configurar un RBAC de Kubernetes, siga las instrucciones de cómo [crear un rol de equipo](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
+ **Distribución equitativa del peso**: es el nivel de prioridad asignado al equipo cuando **Reparto equitativo** se aplica a **Asignación de recursos de computación inactivos**. La prioridad más alta tiene una ponderación de 100 y la prioridad más baja de 0. Una mayor ponderación permite al equipo acceder antes a los recursos no utilizados dentro de la capacidad compartida. Una ponderación cero es la prioridad más baja, lo que implica que este equipo siempre estará en desventaja en comparación con otros equipos. 

  Una distribución equitativa del peso proporciona a este equipo ventaja comparativa a la hora de competir por los recursos disponibles contra los demás. La admisión da prioridad a la programación de las tareas de los equipos con mayor ponderación y menor préstamo. Por ejemplo, si el equipo A tiene una ponderación de 10 y el equipo B tiene una ponderación de 5, el equipo A tendría prioridad al acceder a los recursos no utilizados, ya que tendría trabajos programados antes que el equipo B.
+ **Preferencia de tareas**: sustituye a los recursos de computación de una tarea en función de la prioridad. De forma predeterminada, el equipo que presta los recursos de computación inactivos se antepone a las tareas de otros equipos. 
+ **Prestar y pedir prestado**: cómo presta el equipo los recursos de computación inactivos y si el equipo puede pedir prestado a otros equipos.
  + Límite **de préstamos basado en porcentajes: el límite** de procesamiento inactivo que un equipo puede tomar prestado, expresado como un porcentaje de su cuota garantizada. Un equipo puede tomar prestado hasta un 10 000% del cómputo asignado. El valor que proporcione aquí se interpreta como porcentaje. Por ejemplo, un valor de 500 se interpreta como 500 %. Este porcentaje se aplica de manera uniforme a todos los tipos de recursos (CPU, GPU, memoria) y tipos de instancias de la cuota del equipo.
  + **Límite de préstamo absoluto**: el límite de procesamiento inactivo que un equipo puede tomar prestado, definido como valores de recursos absolutos por tipo de instancia. Esto proporciona un control pormenorizado sobre el comportamiento de los préstamos para tipos de instancias específicos. Debes especificar los límites absolutos mediante el mismo esquema que la **cuota de cómputo**, incluido el recuento de instancias, los aceleradores, la vCPU, la memoria o las particiones aceleradoras. Puedes especificar límites absolutos para uno o más tipos de instancias de la cuota de tu equipo.

Para obtener más información sobre cómo se utilizan estos conceptos, como las clases de prioridad y los espacios de nombres, consulte [Ejemplos de comandos de gobierno AWS CLI de HyperPod tareas](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md).

## Ejemplos de uso compartido de recursos de computación inactivos
<a name="hp-eks-task-governance-policies-examples"></a>

La cuota total reservada no debe superar la capacidad disponible del clúster para ese recurso, a fin de garantizar una gestión adecuada de la cuota. Por ejemplo, si un clúster está compuesto por 20 instancias de `ml.c5.2xlarge`, la cuota acumulada asignada a los equipos debe permanecer por debajo de 20. 

Si las políticas **Asignación de recursos de computación** para los equipos permiten **Prestar y pedir prestado** o **Prestar**, la capacidad inactiva se comparte entre esos equipos. Por ejemplo, los equipos A y B tienen habilitada la opción **Prestar y pedir prestado**. El equipo A tiene una cuota de 6, pero solo usa 2 para sus trabajos, mientras que el equipo B tiene una cuota de 5 y usa 4 para sus trabajos. Si se envía un trabajo al equipo B que requiere 4 recursos, tendrá que tomar prestados 3 del equipo A. 

Si la política **Asignación de recursos de computación** se fija en **No prestar**, el equipo no podrá pedir prestada ninguna capacidad adicional aparte de sus propias asignaciones.

## Cómo funciona el uso compartido de recursos no asignados
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works"></a>

El uso compartido de recursos no asignados administra automáticamente el conjunto de recursos que no están asignados a ninguna cuota de procesamiento del clúster. Esto significa que supervisa de HyperPod forma continua el estado del clúster y se actualiza automáticamente a la configuración correcta a lo largo del tiempo.

**Configuración inicial**
+ Cuando lo `IdleResourceSharing` configuras `Enabled` en tu ClusterSchedulerConfig (de forma predeterminada es`Disabled`), el gobierno de HyperPod tareas comienza a monitorear tu clúster y calcula los recursos inactivos disponibles restando las cuotas de equipo de la capacidad total de los nodos.
+ Los recursos compartidos no asignados se ClusterQueues crean para representar el fondo de recursos que se pueden pedir prestado.
+ La primera vez que habilita el uso compartido de recursos no asignados, la configuración de la infraestructura tarda varios minutos. Puede supervisar el progreso a través de la política `Status` y dentro de ella`DetailedStatus`. ClusterSchedulerConfig

**Reconciliación continua**
+ HyperPod El gobierno de tareas supervisa continuamente los cambios, como la incorporación o eliminación de nodos y las actualizaciones de las cuotas de colas de clústeres.
+  Cuando se producen cambios, el uso compartido de recursos no asignados recalcula la cuota y las actualiza. ClusterQueues La reconciliación suele completarse en cuestión de segundos. 

**Supervisión**

 Para comprobar que el uso compartido de recursos no asignados está completamente configurado, compruebe si el uso compartido de recursos no asignado es el uso compartido de recursos no asignados: ClusterQueues 

```
kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing
```

Cuando aparezca ClusterQueues con nombres como que el uso compartido `hyperpod-ns-idle-resource-sharing-cq-1` de recursos no asignados está activo. Ten en cuenta que es ClusterQueues posible que se compartan varios recursos no asignados en función del número de tipos de recursos del clúster. 

## Aptitud de los nodos para compartir recursos no asignados
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility"></a>

El uso compartido de recursos no localizados solo incluye los nodos que cumplen los siguientes requisitos:

1. **Estado de nodo listo**
   + Los nodos deben estar en `Ready` estado para contribuir al fondo de recursos no asignado.
   + Los nodos `NotReady` u otros estados no preparados se excluyen de los cálculos de capacidad.
   + Cuando un nodo se convierte en nodo`Ready`, se incluye automáticamente en el siguiente ciclo de reconciliación.

1. **Estado programable del nodo**
   + Los nodos con `spec.unschedulable: true` están excluidos del intercambio de recursos no asignados.
   + Cuando un nodo vuelve a ser programable, se incluye automáticamente en el siguiente ciclo de reconciliación.

1. **Configuración MIG (solo nodos de GPU)**
   + En el caso de los nodos de GPU con particiones MIG (GPU de instancias múltiples), la `nvidia.com/mig.config.state` etiqueta debe indicar `success` que el nodo puede contribuir con perfiles MIG al uso compartido de recursos no asignados.
   + Estos nodos se volverán a intentar automáticamente una vez que la configuración de MIG se complete correctamente.

1. **Tipos de instancias compatibles**
   + La instancia debe ser un tipo de SageMaker HyperPod instancia compatible.
   + Consulta la lista de tipos de instancias compatibles en el SageMaker HyperPod clúster.

**Topics**
+ [Ejemplos de uso compartido de recursos de computación inactivos](#hp-eks-task-governance-policies-examples)
+ [Cómo funciona el uso compartido de recursos no asignados](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works)
+ [Aptitud de los nodos para compartir recursos no asignados](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility)
+ [Creación de políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create.md)
+ [Edición de políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md)
+ [Eliminación de políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md)
+ [Asignación de cuotas de cómputo en la gobernanza de SageMaker HyperPod tareas de Amazon](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation.md)

# Creación de políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create"></a>

Puede crear sus configuraciones de **Política de clústeres** y **Asignación de recursos de computación** en la pestaña **Políticas**. A continuación, se proporcionan instrucciones sobre cómo crear las configuraciones siguientes.
+ Cree su **Política de clústeres** para actualizar la forma en que se priorizan las tareas y se asignan los recursos de computación inactivos.
+ Cree una **Asignación de recursos de computación** para crear una nueva política de asignación de recursos de computación para un equipo.
**nota**  
Al crear una **asignación de cómputo**, necesitará configurar un control de acceso basado en roles (RBAC) de Kubernetes para que los usuarios de científicos de datos en el espacio de nombres correspondiente ejecuten tareas en clústeres orquestados con Amazon EKS. HyperPod Los espacios de nombres tienen el formato `hyperpod-ns-team-name`. Para configurar un RBAC de Kubernetes, siga las instrucciones de cómo [crear un rol de equipo](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).

Para obtener información sobre los conceptos de la política de clústeres de EKS sobre la gobernanza de tareas, consulte. HyperPod [Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)

**Cree políticas de gobierno de HyperPod tareas**

En este procedimiento se presupone que ya ha creado un clúster de Amazon EKS configurado con HyperPod. Si aún no lo ha hecho, consulte [Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

1. Navega hasta la [consola Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación izquierdo, en **HyperPodClústeres**, selecciona **Administración de clústeres**.

1. Elija su clúster de Amazon EKS que aparece en **SageMaker HyperPodclústeres**.

1. Elija la pestaña **Policies**.

1. Para crear su **Política de clústeres**, debe hacer lo siguiente:

   1. Elija la opción **Editar** correspondiente para actualizar la forma en que se priorizan las tareas y se asignan los recursos de computación inactivos.

   1. Después de hacer los cambios, elija **Enviar**.

1. Para crear una **Asignación de recursos de computación**:

1. 

   1. Elija la opción **Crear** correspondiente. Esto le llevará a la página de creación de asignaciones de recursos de computación.

   1. Después de hacer los cambios, elija **Enviar**.

# Edición de políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit"></a>

Puede editar sus configuraciones de **Política de clústeres** y **Asignación de recursos de computación** en la pestaña **Políticas**. A continuación, se proporcionan instrucciones sobre cómo editar las configuraciones siguientes.
+ Edite su **Política de clústeres** para actualizar la forma en que se priorizan las tareas y se asignan los recursos de computación inactivos.
+ Edite una **Asignación de recursos de computación** para crear una nueva política de asignación de recursos de computación para un equipo.
**nota**  
Al crear una **asignación de cómputo**, necesitará configurar un control de acceso basado en roles (RBAC) de Kubernetes para que los usuarios de científicos de datos en el espacio de nombres correspondiente ejecuten tareas en clústeres orquestados con Amazon EKS. HyperPod Los espacios de nombres tienen el formato `hyperpod-ns-team-name`. Para configurar un RBAC de Kubernetes, siga las instrucciones de cómo [crear un rol de equipo](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).

Para obtener más información sobre los conceptos de la política de clústeres de EKS sobre la gobernanza de tareas, consulte. HyperPod [Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)

**Edite las políticas de gobierno de HyperPod tareas**

En este procedimiento se presupone que ya ha creado un clúster de Amazon EKS configurado con HyperPod. Si aún no lo ha hecho, consulte [Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

1. Navega hasta la [consola Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación izquierdo, en **HyperPodClústeres**, selecciona **Administración de clústeres**.

1. Elija su clúster de Amazon EKS que aparece en **SageMaker HyperPodclústeres**.

1. Elija la pestaña **Policies**.

1. Para editar su **Política de clústeres**:

   1. Elija la opción **Editar** correspondiente para actualizar la forma en que se priorizan las tareas y se asignan los recursos de computación inactivos.

   1. Después de hacer los cambios, elija **Enviar**.

1. Para editar la **Asignación de recursos de computación**:

1. 

   1. Elija la configuración que desee editar en **Asignación de recursos de computación**. Esto te lleva a la página de detalles de la configuración.

   1. Si desea editar estas configuraciones, elija **Editar**.

   1. Después de hacer los cambios, elija **Enviar**.

# Eliminación de políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete"></a>

Puede eliminar sus configuraciones de **política de clúster** y **asignación de cómputo** mediante la consola de SageMaker IA o AWS CLI. En la página siguiente, se proporcionan instrucciones sobre cómo eliminar las políticas y configuraciones de gobierno de las SageMaker HyperPod tareas.

Para obtener más información sobre los conceptos de la política de clústeres de EKS de gobierno de HyperPod tareas, consulte[Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

**nota**  
Si tiene problemas para enumerar o eliminar las políticas de gobernanza de tareas, es posible que deba actualizar el conjunto mínimo de permisos del administrador del clúster. Consulte la pestaña **Amazon EKS** en la sección [Usuarios de IAM para la administración de clústeres](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Para obtener información adicional, consulta [Eliminación de clústeres](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md#hp-eks-troubleshoot-delete-policies).

## Eliminar las políticas de gobierno de HyperPod tareas (consola)
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-console"></a>

A continuación, se utiliza la consola de SageMaker IA para eliminar las políticas de gobierno de las HyperPod tareas.

**nota**  
No puedes eliminar tu **política de clúster** (`ClusterSchedulerConfig`) mediante la consola de SageMaker IA. Para obtener información sobre cómo hacerlo con AWS CLI, consulte[Elimine las políticas de gobierno de HyperPod tareas (AWS CLI)](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli).

**Cómo eliminar políticas de gobernanza de tareas (consola)**

1. Navega hasta la [consola Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación izquierdo, en **HyperPodClústeres**, selecciona **Administración de clústeres**.

1. Elija su clúster de Amazon EKS que aparece en **SageMaker HyperPodclústeres**.

1. Elija la pestaña **Policies**.

1. Para eliminar su **Asignación de recursos de computación** (`ComputeQuota`):

   1. En la sección **Asignación de recursos de computación**, seleccione la configuración que desea eliminar.

   1. En el menú desplegable **Acciones**, elija **Eliminar**.

   1. Siga las instrucciones de la interfaz de usuario para completar la tarea.

## Elimine las políticas de gobierno de HyperPod tareas (AWS CLI)
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli"></a>

A continuación, se utilizan AWS CLI para eliminar las políticas de gobierno de HyperPod tareas.

**nota**  
Si tiene problemas para utilizar los siguientes comandos, puede que necesite actualizar su AWS CLI. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

**Cómo eliminar políticas de gobernanza de tareas (AWS CLI)**

Primero configura tus variables para los siguientes AWS CLI comandos.

```
REGION=aws-region
```

1. Obtenga las políticas *cluster-arn* asociadas a las que desee eliminar. Puede usar el siguiente AWS CLI comando para enumerar los clústeres de su Región de AWS.

   ```
   aws sagemaker list-clusters \
       --region ${REGION}
   ```

1. Para eliminar sus asignaciones de recursos de computación (`ComputeQuota`):

   1. Enumere todas las cuotas de procesamiento asociadas al HyperPod clúster.

      ```
      aws sagemaker list-compute-quotas \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. Para eliminar cada `compute-quota-id` que desee eliminar, ejecute el siguiente comando para eliminar la cuota de computación.

      ```
      aws sagemaker delete-compute-quota \
          --compute-quota-id compute-quota-id \
          --region ${REGION}
      ```

1. Para eliminar las políticas de clústeres (`ClusterSchedulerConfig`):

   1. Enumera todas las políticas de clúster asociadas al HyperPod clúster.

      ```
      aws sagemaker list-cluster-scheduler-configs \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. Para eliminar cada `cluster-scheduler-config-id` que desee eliminar, ejecute el siguiente comando para eliminar la cuota de computación.

      ```
      aws sagemaker delete-cluster-scheduler-config 
          --cluster-scheduler-config-id scheduler-config-id \
          --region ${REGION}
      ```

# Asignación de cuotas de cómputo en la gobernanza de SageMaker HyperPod tareas de Amazon
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation"></a>

Los administradores de clústeres pueden decidir cómo utiliza la organización los recursos de computación adquiridos. De este modo, se reducen los residuos y los recursos inactivos. Puede asignar una cuota de computación de forma que los equipos puedan tomar prestados los recursos no utilizados entre ellos. La asignación de cuotas de cómputo en la gobernanza de HyperPod tareas permite a los administradores asignar los recursos a nivel de instancia y a un nivel de recursos más detallado. Esta capacidad resulta en una administración de recursos flexible y eficiente para los equipos, ya que permite un control detallado de los recursos de computación individuales en lugar de requerir la asignación de instancias completas. La asignación más detallada elimina las ineficiencias de la asignación tradicional en la instancia. Con este enfoque, puede optimizar la utilización de los recursos y reducir la computación inactiva.

La asignación de cuotas de computación admite tres tipos de asignación de recursos: aceleradores, vCPU y memoria. Los aceleradores son componentes de las instancias de computación aceleradas que realizan funciones, como cálculos numéricos de coma flotante, procesamiento de gráficos o coincidencia de patrones de datos. Los aceleradores incluyen GPUs los aceleradores Trainium y los núcleos neuronales. Para compartir GPU entre varios equipos, distintos equipos pueden recibir asignaciones de GPU específicas del mismo tipo de instancia, lo que maximiza el uso del hardware del acelerador. Para cargas de trabajo con uso intensivo de memoria que requieren RAM adicional para el preprocesamiento de datos o escenarios de almacenamiento en caché de modelos, puede asignar una cuota de memoria superior a la proporción predeterminada. GPU-to-memory Para las tareas de preprocesamiento que requieren un uso intensivo de la CPU y que requieren una cantidad considerable de recursos de la CPU junto con el entrenamiento de la GPU, puede asignar recursos de CPU independientes.

Una vez que proporciones un valor, el gobierno de HyperPod tareas calcula la proporción mediante la fórmula: **recurso asignado dividido por la cantidad total de recursos disponibles** en la instancia. HyperPod A continuación, el gobierno de tareas utiliza esta proporción para aplicar las asignaciones predeterminadas a otros recursos, pero puedes anular estos valores predeterminados y personalizarlos en función de tu caso de uso. Los siguientes son ejemplos de escenarios de cómo la gobernanza de HyperPod tareas asigna los recursos en función de sus valores:
+ **Solo se especificó el acelerador**: el gobierno de HyperPod tareas aplica la relación predeterminada a la vCPU y la memoria en función de los valores del acelerador.
+ **Solo se especificó la vCPU: el** gobierno de HyperPod tareas calcula la proporción y la aplica a la memoria. Los aceleradores se establecen en 0.
+ **Solo se especifica la memoria**: el gobierno de HyperPod tareas calcula la proporción y la aplica a la vCPU, ya que se requiere computación para ejecutar cargas de trabajo especificadas en memoria. Los aceleradores se establecen en 0.

Para controlar mediante programación la asignación de cuotas, puedes usar el [ ComputeQuotaResourceConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ComputeQuotaResourceConfig.html)objeto y especificar tus asignaciones en números enteros.

```
{
    "ComputeQuotaConfig": {
        "ComputeQuotaResources": [{
            "InstanceType": "ml.g5.24xlarge",
            "Accelerators": "16",
            "vCpu": "200.0",
            "MemoryInGiB": "2.0"
        }]
    }
}
```

Para ver todas las asignaciones asignadas, incluidas las predeterminadas, utilice la operación. [ DescribeComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeComputeQuota.html) Para actualizar las asignaciones, utilice la operación. [ UpdateComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateComputeQuota.html)

También puede usar la HyperPod CLI para asignar cuotas de cómputo. Para obtener más información acerca de la HyperPod CLI, consulte[Ejecución de tareas en SageMaker HyperPod clústeres orquestados por Amazon EKS](sagemaker-hyperpod-eks-run-jobs.md). En el siguiente ejemplo, se muestra cómo establecer las cuotas de cómputo mediante la HyperPod CLI.

```
hyp create hyp-pytorch-job --version 1.1 --job-name sample-job \
--image 123456789012.dkr.ecr.us-west-2.amazonaws.com/ptjob:latest \
--pull-policy "Always" \
--tasks-per-node 1 \
--max-retry 1 \
--priority high-priority \
--namespace hyperpod-ns-team-name \
--queue-name hyperpod-ns-team-name-localqueue \
--instance-type sample-instance-type \
--accelerators 1 \
--vcpu 3 \
--memory 1 \
--accelerators-limit 1 \
--vcpu-limit 4 \
--memory-limit 2
```

Para asignar las cuotas mediante la AWS consola, sigue estos pasos.

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

1. En HyperPod clústeres, selecciona **Gestión de clústeres**.

1. En **Asignaciones de recursos de computación**, elija **Crear**.

1. Si aún no tiene instancias, elija **Agregar asignación** para agregar una instancia.

1. En **Asignaciones**, elija asignar por instancias o por recursos individuales. Si asignas por recursos individuales, la SageMaker IA asigna automáticamente las asignaciones a otros recursos según la proporción que elijas. Para anular esta asignación basada en proporciones, utilice el conmutador correspondiente para anular la computación.

1. Repita los pasos 4 y 5 para configurar instancias adicionales.

Después de asignar la cuota de cómputo, puede enviar los trabajos a través de la HyperPod CLI o`kubectl`. HyperPodprograma las cargas de trabajo de manera eficiente en función de la cuota disponible. 

# Asignación de la cuota de particiones de la GPU
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions"></a>

Puede ampliar la asignación de cuotas de cómputo para admitir la partición de la GPU, lo que permite compartir recursos de forma pormenorizada a nivel de partición de la GPU. Cuando la partición de la GPU está habilitada o es compatible con GPUs el clúster, cada GPU física se puede dividir en varias GPU aisladas GPUs con asignaciones definidas de procesamiento, memoria y multiprocesador de streaming. Para obtener más información sobre la partición de la GPU, consulte. [Uso de particiones de GPU en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md) Puede asignar particiones de GPU específicas a los equipos, lo que permite que varios equipos compartan una sola GPU y, al mismo tiempo, mantenga el aislamiento a nivel de hardware y un rendimiento predecible.

Por ejemplo, una instancia ml.p5.48xlarge con 8 H100 se puede particionar en particiones de GPU, y GPUs puedes asignar particiones individuales a diferentes equipos en función de sus requisitos de tareas. Al especificar las asignaciones de particiones de GPU, el gobierno de HyperPod tareas calcula las cuotas proporcionales de vCPU y memoria en función de la partición de GPU, de forma similar a la asignación a nivel de GPU. Este enfoque maximiza el uso de la GPU al eliminar la capacidad inactiva y permitir compartir recursos de forma rentable entre varias tareas simultáneas en la misma GPU física.

## Creación de cuotas de cómputo
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-creating"></a>

```
aws sagemaker create-compute-quota \
  --name "fractional-gpu-quota" \
  --compute-quota-config '{
    "ComputeQuotaResources": [
      {
        "InstanceType": "ml.p4d.24xlarge",
        "AcceleratorPartition": {
            "Count": 4,
            "Type": "mig-1g.5gb"
        }
      }
    ],
    "ResourceSharingConfig": { 
      "Strategy": "LendAndBorrow", 
      "BorrowLimit": 100 
    }
  }'
```

## Verificación de los recursos de cuotas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-verifying"></a>

```
# Check ClusterQueue
kubectl get clusterqueues
kubectl describe clusterqueue QUEUE_NAME

# Check ResourceFlavors
kubectl get resourceflavor
kubectl describe resourceflavor FLAVOR_NAME
```

# Ejemplos de comandos de gobierno AWS CLI de HyperPod tareas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-cli"></a>

Puede usarlo HyperPod con EKS a través de Kubectl o mediante una CLI personalizada HyperPod. Puede utilizar estos comandos a través de Studio o. AWS CLI A continuación, se proporcionan ejemplos de gobierno de SageMaker HyperPod tareas sobre cómo ver los detalles del clúster mediante los HyperPod AWS CLI comandos. Para obtener más información, incluida la forma de instalación, consulte el [repositorio HyperPod CLI de Github](https://github.com/aws/sagemaker-hyperpod-cli).

**Topics**
+ [Obtención de información sobre la cuota de dispositivos aceleradores de clústeres](#hp-eks-cli-get-clusters)
+ [Envíe un trabajo a una cola y un espacio de nombres SageMaker gestionados por la IA](#hp-eks-cli-start-job)
+ [Enumeración de trabajos](#hp-eks-cli-list-jobs)
+ [Obtención de información detallada sobre un trabajo](#hp-eks-cli-get-job)
+ [Suspensión y anulación de la suspensión de trabajos](#hp-eks-cli-patch-job)
+ [Trabajos de depuración](#hp-eks-cli-other)

## Obtención de información sobre la cuota de dispositivos aceleradores de clústeres
<a name="hp-eks-cli-get-clusters"></a>

El siguiente comando de ejemplo obtiene la información sobre la cuota de dispositivos aceleradores de clústeres.

```
hyperpod get-clusters -n hyperpod-ns-test-team
```

El espacio de nombres de este ejemplo, `hyperpod-ns-test-team`, se crea en Kubernetes en función del nombre del equipo proporcionado al crear la asignación de recursos de computación `test-team`. Para obtener más información, consulte [Edición de políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md).

Ejemplo de respuesta:

```
[
    {
        "Cluster": "hyperpod-eks-test-cluster-id",
        "InstanceType": "ml.g5.xlarge",
        "TotalNodes": 2,
        "AcceleratorDevicesAvailable": 1,
        "NodeHealthStatus=Schedulable": 2,
        "DeepHealthCheckStatus=Passed": "N/A",
        "Namespaces": {
            "hyperpod-ns-test-team": {
                "TotalAcceleratorDevices": 1,
                "AvailableAcceleratorDevices": 1
            }
        }
    }
]
```

## Envíe un trabajo a una cola y un espacio de nombres SageMaker gestionados por la IA
<a name="hp-eks-cli-start-job"></a>

El siguiente comando de ejemplo envía un trabajo a tu clúster. HyperPod Si solo tienes acceso a un equipo, en ese caso te HyperPod AWS CLI asignarán automáticamente la cola. De lo contrario, si se descubren varias colas, le mostraremos todas las opciones posibles para que las seleccione.

```
hyperpod start-job --job-name hyperpod-cli-test --job-kind kubeflow/PyTorchJob --image docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd --entry-script /opt/pytorch-mnist/mnist.py --pull-policy IfNotPresent --instance-type ml.g5.xlarge --node-count 1 --tasks-per-node 1 --results-dir ./result --priority training-priority
```

Las clases de prioridad se definen en la **Política de clústeres**, que indica cómo se priorizan las tareas y cómo se asignan los recursos computacionales inactivos. Cuando un científico de datos envía un trabajo, utiliza uno de los nombres de las clases de prioridad con el formato `priority-class-name-priority`. En este ejemplo, `training-priority` hace referencia a la clase de prioridad denominada “training”. Para obtener más información sobre los conceptos de las políticas, consulte [Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

Si no se especifica ninguna clase de prioridad, el trabajo se trata como un trabajo de prioridad baja con un valor de clasificación de tareas de 0. 

Si se especifica una clase de prioridad, pero no se corresponde con ninguna de las clases de prioridad definidas en la **Política de clústeres**, el envío no se realizará correctamente y aparecerá un mensaje de error con el conjunto definido de clases de prioridad.

También puede enviar el trabajo con un archivo de configuración YAML con el siguiente comando: 

```
hyperpod start-job --config-file ./yaml-configuration-file-name.yaml
```

El siguiente es un ejemplo de un archivo de configuración YAML que equivale a enviar un trabajo, tal y como se ha descrito anteriormente.

```
defaults:
  - override hydra/job_logging: stdout
hydra:
  run:
    dir: .
  output_subdir: null
training_cfg:
  entry_script: /opt/pytorch-mnist/mnist.py
  script_args: []
  run:
    name: hyperpod-cli-test
    nodes: 1
    ntasks_per_node: 1
cluster:
  cluster_type: k8s
  instance_type: ml.g5.xlarge
  custom_labels:
    kueue.x-k8s.io/priority-class: training-priority
  cluster_config:
    label_selector:
      required:
        sagemaker.amazonaws.com/node-health-status:
          - Schedulable
      preferred:
        sagemaker.amazonaws.com/deep-health-check-status:
          - Passed
      weights:
        - 100
    pullPolicy: IfNotPresent
base_results_dir: ./result
container: docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd
env_vars:
  NCCL_DEBUG: INFO
```

Como alternativa, puede enviar un trabajo utilizando `kubectl` para asegurarse de que la tarea aparezca en la pestaña **Panel**. A continuación se muestra un comando kubectl de ejemplo.

```
kubectl apply -f ./yaml-configuration-file-name.yaml
```

Al enviar el trabajo, incluya el nombre de la cola y las etiquetas de clase de prioridad. Por ejemplo, con el nombre de la cola `hyperpod-ns-team-name-localqueue` y la clase de prioridad `priority-class-name-priority`, debe incluir las siguientes etiquetas:
+ `kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue` 
+ `kueue.x-k8s.io/priority-class: priority-class-name-priority`

En el siguiente fragmento de configuración de YAML, se muestra cómo añadir etiquetas al archivo de configuración original para garantizar que la tarea aparezca en la pestaña **Panel**:

```
metadata:
    name: job-name
    namespace: hyperpod-ns-team-name
    labels:
        kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        kueue.x-k8s.io/priority-class: priority-class-name-priority
```

## Enumeración de trabajos
<a name="hp-eks-cli-list-jobs"></a>

El siguiente comando enumera los trabajos y sus detalles.

```
hyperpod list-jobs
```

Ejemplo de respuesta:

```
{
    "jobs": [
        {
            "Name": "hyperpod-cli-test",
            "Namespace": "hyperpod-ns-test-team",
            "CreationTime": "2024-11-18T21:21:15Z",
            "Priority": "training",
            "State": "Succeeded"
        }
    ]
}
```

## Obtención de información detallada sobre un trabajo
<a name="hp-eks-cli-get-job"></a>

El siguiente comando proporciona los detalles de un trabajo. Si no se especifica ningún espacio de nombres, HyperPod AWS CLI buscará un espacio de nombres gestionado por la SageMaker IA al que tengas acceso.

```
hyperpod get-job --job-name hyperpod-cli-test
```

Ejemplo de respuesta:

```
{
    "Name": "hyperpod-cli-test",
    "Namespace": "hyperpod-ns-test-team",
    "Label": {
        "app": "hyperpod-cli-test",
        "app.kubernetes.io/managed-by": "Helm",
        "kueue.x-k8s.io/priority-class": "training"
    },
    "CreationTimestamp": "2024-11-18T21:21:15Z",
    "Status": {
        "completionTime": "2024-11-18T21:25:24Z",
        "conditions": [
            {
                "lastTransitionTime": "2024-11-18T21:21:15Z",
                "lastUpdateTime": "2024-11-18T21:21:15Z",
                "message": "PyTorchJob hyperpod-cli-test is created.",
                "reason": "PyTorchJobCreated",
                "status": "True",
                "type": "Created"
            },
            {
                "lastTransitionTime": "2024-11-18T21:21:17Z",
                "lastUpdateTime": "2024-11-18T21:21:17Z",
                "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test is running.",
                "reason": "PyTorchJobRunning",
                "status": "False",
                "type": "Running"
            },
            {
                "lastTransitionTime": "2024-11-18T21:25:24Z",
                "lastUpdateTime": "2024-11-18T21:25:24Z",
                "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test successfully completed.",
                "reason": "PyTorchJobSucceeded",
                "status": "True",
                "type": "Succeeded"
            }
        ],
            "replicaStatuses": {
                "Worker": {
                    "selector": "training.kubeflow.org/job-name=hyperpod-cli-test,training.kubeflow.org/operator-name=pytorchjob-controller,training.kubeflow.org/replica-type=worker",
                    "succeeded": 1
                }
            },
        "startTime": "2024-11-18T21:21:15Z"
    },
    "ConsoleURL": "https://us-west-2.console.aws.amazon.com/sagemaker/home?region=us-west-2#/cluster-management/hyperpod-eks-test-cluster-id“
}
```

## Suspensión y anulación de la suspensión de trabajos
<a name="hp-eks-cli-patch-job"></a>

Si quieres eliminar algún trabajo enviado del planificador, HyperPod AWS CLI proporciona un `suspend` comando para eliminar temporalmente el trabajo de la organización. El trabajo suspendido ya no se programará a menos que el comando anule la suspensión del trabajo manualmente con el comando de la `unsuspend`.

Para suspender temporalmente un trabajo:

```
hyperpod patch-job suspend --job-name hyperpod-cli-test
```

Para volver a añadir un trabajo a la cola:

```
hyperpod patch-job unsuspend --job-name hyperpod-cli-test
```

## Trabajos de depuración
<a name="hp-eks-cli-other"></a>

 HyperPod AWS CLI También proporciona otros comandos para depurar los problemas de envío de trabajos. Por ejemplo, `list-pods` y `get-logs` en el repositorio de HyperPod AWS CLI Github.

# Solución de problemas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot"></a>

La siguiente página contiene soluciones conocidas para solucionar problemas de sus clústeres de HyperPod EKS.

**Topics**
+ [Pestaña Panel](#hp-eks-troubleshoot-dashboard)
+ [Pestaña Tareas](#hp-eks-troubleshoot-tasks)
+ [Políticas](#hp-eks-troubleshoot-policies)
+ [Eliminación de clústeres](#hp-eks-troubleshoot-delete-policies)
+ [Uso compartido de recursos no asignados](#hp-eks-troubleshoot-unallocated-resource-sharing)

## Pestaña Panel
<a name="hp-eks-troubleshoot-dashboard"></a>

**El complemento de EKS no se instala**

Para que la instalación del complemento de EKS se realice correctamente, necesita una versión de Kubernets >= 1.30. Para actualizar, consulte [Actualización del clúster existente a la nueva versión de Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html).

Para que la instalación del complemento de EKS se realice correctamente, todos los nodos deben tener el estado **Listo** y todos los pods deben tener el estado **En ejecución**. 

Para comprobar el estado de los nodos, utilice el [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html) AWS CLI comando o navegue hasta el clúster de EKS en la [consola de EKS](https://console.aws.amazon.com/eks/home#/clusters) y consulte el estado de los nodos. Resuelva el problema de cada nodo o póngase en contacto con su administrador. Si el estado del nodo es **Desconocido**, elimínelo. Cuando todos los estados de los nodos estén **listos**, vuelva a intentar instalar el complemento EKS HyperPod desde la consola [Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

Para comprobar el estado de los pods, utilice el comando `kubectl get pods -n cloudwatch-agent` [de la CLI de Kubernetes](https://kubernetes.io/docs/reference/kubectl/) o navegue hasta el clúster de EKS en la [consola de EKS](https://console.aws.amazon.com/eks/home#/clusters) y consulte el estado de los pods con el espacio de nombres `cloudwatch-agent`. Resuelve el problema de los pods o contacte con su administrador para resolverlo. Cuando todos los estados de los pods estén en **ejecución**, vuelve a intentar instalar el complemento EKS HyperPod desde la consola [Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

Para obtener más información sobre la solución de problemas, consulte [Solución de problemas del complemento Amazon CloudWatch Observability EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html#Container-Insights-setup-EKS-addon-troubleshoot).

## Pestaña Tareas
<a name="hp-eks-troubleshoot-tasks"></a>

Si aparece un mensaje de error que indica que la **definición de recurso personalizada (CRD) no está configurada en el clúster**, asígnele las políticas `EKSAdminViewPolicy` y `ClusterAccessRole` a su rol de ejecución de dominio. 
+ Para obtener información sobre cómo obtener el rol de ejecución, consulte [Obtención del rol de ejecución](sagemaker-roles.md#sagemaker-roles-get-execution-role).
+ Para obtener más información acerca de cómo asociar políticas a un grupo o usuario de IAM, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

## Políticas
<a name="hp-eks-troubleshoot-policies"></a>

A continuación se enumeran las soluciones a los errores relacionados con las políticas que utilizan la consola HyperPod APIs o.
+ Si la política tiene los estados `CreateFailed` o `CreateRollbackFailed`, deberá eliminar la política fallida y crear una nueva.
+ Si la política tiene el estado `UpdateFailed`, vuelva a intentar la actualización con el mismo ARN de política.
+ Si la política tiene el estado `UpdateRollbackFailed`, deberá eliminar la política fallida y crear una nueva.
+ Si la política tiene los estados `DeleteFailed` y `DeleteRollbackFailed`, vuelva a intentar la eliminación con el mismo ARN de política.
  + Si se ha producido un error al intentar eliminar la política de clústeres o de **priorización de procesamiento** mediante la HyperPod consola, intente eliminarla `cluster-scheduler-config` mediante la API. Para comprobar el estado del recurso, vaya a la página de detalles de una asignación de recursos de computación.

Para ver más detalles sobre el error, usa la API de descripción.

## Eliminación de clústeres
<a name="hp-eks-troubleshoot-delete-policies"></a>

A continuación se enumeran las soluciones conocidas a los errores relacionados con la eliminación de clústeres.
+ Si se produce un error al eliminar un clúster debido a las políticas de control de SageMaker HyperPod tareas adjuntas, tendrás que hacerlo[Eliminación de políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md).
+ Si se produce un error al eliminar el clúster debido a la falta de los siguientes permisos, tendrá que actualizar el conjunto mínimo de permisos del administrador del clúster. Consulte la pestaña **Amazon EKS** en la sección [Usuarios de IAM para la administración de clústeres](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin).
  + `sagemaker:ListComputeQuotas`
  + `sagemaker:ListClusterSchedulerConfig`
  + `sagemaker:DeleteComputeQuota`
  + `sagemaker:DeleteClusterSchedulerConfig`

## Uso compartido de recursos no asignados
<a name="hp-eks-troubleshoot-unallocated-resource-sharing"></a>

Si la capacidad de su fondo de recursos no asignado es inferior a la esperada:

1. **Compruebe el estado del nodo listo**

   ```
   kubectl get nodes
   ```

   Compruebe que todos los nodos muestren `Ready` su estado en la columna STATUS.

1. **Compruebe el estado programable del nodo**

   ```
   kubectl get nodes -o custom-columns=NAME:.metadata.name,UNSCHEDULABLE:.spec.unschedulable
   ```

   Compruebe si los nodos se muestran `<none>` o `false` no`true`.

1. **Listar el uso compartido ClusterQueues de recursos no asignados:**

   ```
   kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing
   ```

   Muestra todos los recursos compartidos no asignados. ClusterQueues Si no ClusterQueues aparecen, compruebe la `FailureReason` siguiente ClusterSchedulerConfig política para ver si hay algún mensaje de error para continuar con la depuración.

1. **Compruebe la cuota de uso compartido de recursos no asignada:**

   ```
   kubectl describe clusterqueue hyperpod-ns-idle-resource-sharing-<index>
   ```

   Consulte la `spec.resourceGroups[].flavors[].resources` sección para ver la cuota asignada a cada tipo de recurso.

    ClusterQueues Es posible que se compartan varios recursos no asignados en función del número de tipos de recursos del clúster. 

1. **Compruebe el estado de la configuración de MIG (nodos de GPU):**

   ```
   kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.nvidia\.com/mig\.config\.state}{"\n"}{end}'
   ```

   Compruebe que los nodos habilitados para MIG muestren su estado. `success`

# Documento de atribución para la gobernanza de SageMaker HyperPod tareas de Amazon
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-attributions"></a>

A continuación, puedes obtener información sobre las atribuciones y las licencias de terceros para el material utilizado en la gobernanza de SageMaker HyperPod tareas de Amazon.

**Topics**
+ [[base-files](https://packages.debian.org/bookworm/base-files)](#hp-eks-task-governance-attributions-base-files)
+ [[netbase](https://packages.debian.org/source/stable/netbase)](#hp-eks-task-governance-attributions-netbase)
+ [[golang-lru](https://github.com/hashicorp/golang-lru)](#hp-eks-task-governance-attributions-golang-lru)

## [base-files](https://packages.debian.org/bookworm/base-files)
<a name="hp-eks-task-governance-attributions-base-files"></a>

```
This is the Debian prepackaged version of the Debian Base System
Miscellaneous files. These files were written by Ian Murdock
<imurdock@debian.org> and Bruce Perens <bruce@pixar.com>.

This package was first put together by Bruce Perens <Bruce@Pixar.com>,
from his own sources.

The GNU Public Licenses in /usr/share/common-licenses were taken from
ftp.gnu.org and are copyrighted by the Free Software Foundation, Inc.

The Artistic License in /usr/share/common-licenses is the one coming
from Perl and its SPDX name is "Artistic License 1.0 (Perl)".


Copyright © 1995-2011 Software in the Public Interest.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
```

## [netbase](https://packages.debian.org/source/stable/netbase)
<a name="hp-eks-task-governance-attributions-netbase"></a>

```
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Comment:
 This package was created by Peter Tobias tobias@et-inf.fho-emden.de on
 Wed, 24 Aug 1994 21:33:28 +0200 and maintained by Anthony Towns
 <ajt@debian.org> until 2001.
 It is currently maintained by Marco d'Itri <md@linux.it>.

Files: *
Copyright:
 Copyright © 1994-1998 Peter Tobias
 Copyright © 1998-2001 Anthony Towns
 Copyright © 2002-2022 Marco d'Itri
License: GPL-2
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License, version 2, as
 published by the Free Software Foundation.
 .
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 .
 You should have received a copy of the GNU General Public License along
 with this program; if not, write to the Free Software Foundation,
 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 .
 On Debian systems, the complete text of the GNU General Public License
 version 2 can be found in '/usr/share/common-licenses/GPL-2'.
```

## [golang-lru](https://github.com/hashicorp/golang-lru)
<a name="hp-eks-task-governance-attributions-golang-lru"></a>

```
Copyright © 2014 HashiCorp, Inc.

Mozilla Public License, version 2.0

1. Definitions

1.1. "Contributor"

     means each individual or legal entity that creates, contributes to the
     creation of, or owns Covered Software.

1.2. "Contributor Version"

     means the combination of the Contributions of others (if any) used by a
     Contributor and that particular Contributor's Contribution.

1.3. "Contribution"

     means Covered Software of a particular Contributor.

1.4. "Covered Software"

     means Source Code Form to which the initial Contributor has attached the
     notice in Exhibit A, the Executable Form of such Source Code Form, and
     Modifications of such Source Code Form, in each case including portions
     thereof.

1.5. "Incompatible With Secondary Licenses"
     means

     a. that the initial Contributor has attached the notice described in
        Exhibit B to the Covered Software; or

     b. that the Covered Software was made available under the terms of
        version 1.1 or earlier of the License, but not also under the terms of
        a Secondary License.

1.6. "Executable Form"

     means any form of the work other than Source Code Form.

1.7. "Larger Work"

     means a work that combines Covered Software with other material, in a
     separate file or files, that is not Covered Software.

1.8. "License"

     means this document.

1.9. "Licensable"

     means having the right to grant, to the maximum extent possible, whether
     at the time of the initial grant or subsequently, any and all of the
     rights conveyed by this License.

1.10. "Modifications"

     means any of the following:

     a. any file in Source Code Form that results from an addition to,
        deletion from, or modification of the contents of Covered Software; or

     b. any new file in Source Code Form that contains any Covered Software.

1.11. "Patent Claims" of a Contributor

      means any patent claim(s), including without limitation, method,
      process, and apparatus claims, in any patent Licensable by such
      Contributor that would be infringed, but for the grant of the License,
      by the making, using, selling, offering for sale, having made, import,
      or transfer of either its Contributions or its Contributor Version.

1.12. "Secondary License"

      means either the GNU General Public License, Version 2.0, the GNU Lesser
      General Public License, Version 2.1, the GNU Affero General Public
      License, Version 3.0, or any later versions of those licenses.

1.13. "Source Code Form"

      means the form of the work preferred for making modifications.

1.14. "You" (or "Your")

      means an individual or a legal entity exercising rights under this
      License. For legal entities, "You" includes any entity that controls, is
      controlled by, or is under common control with You. For purposes of this
      definition, "control" means (a) the power, direct or indirect, to cause
      the direction or management of such entity, whether by contract or
      otherwise, or (b) ownership of more than fifty percent (50%) of the
      outstanding shares or beneficial ownership of such entity.


2. License Grants and Conditions

2.1. Grants

     Each Contributor hereby grants You a world-wide, royalty-free,
     non-exclusive license:

     a. under intellectual property rights (other than patent or trademark)
        Licensable by such Contributor to use, reproduce, make available,
        modify, display, perform, distribute, and otherwise exploit its
        Contributions, either on an unmodified basis, with Modifications, or
        as part of a Larger Work; and

     b. under Patent Claims of such Contributor to make, use, sell, offer for
        sale, have made, import, and otherwise transfer either its
        Contributions or its Contributor Version.

2.2. Effective Date

     The licenses granted in Section 2.1 with respect to any Contribution
     become effective for each Contribution on the date the Contributor first
     distributes such Contribution.

2.3. Limitations on Grant Scope

     The licenses granted in this Section 2 are the only rights granted under
     this License. No additional rights or licenses will be implied from the
     distribution or licensing of Covered Software under this License.
     Notwithstanding Section 2.1(b) above, no patent license is granted by a
     Contributor:

     a. for any code that a Contributor has removed from Covered Software; or

     b. for infringements caused by: (i) Your and any other third party's
        modifications of Covered Software, or (ii) the combination of its
        Contributions with other software (except as part of its Contributor
        Version); or

     c. under Patent Claims infringed by Covered Software in the absence of
        its Contributions.

     This License does not grant any rights in the trademarks, service marks,
     or logos of any Contributor (except as may be necessary to comply with
     the notice requirements in Section 3.4).

2.4. Subsequent Licenses

     No Contributor makes additional grants as a result of Your choice to
     distribute the Covered Software under a subsequent version of this
     License (see Section 10.2) or under the terms of a Secondary License (if
     permitted under the terms of Section 3.3).

2.5. Representation

     Each Contributor represents that the Contributor believes its
     Contributions are its original creation(s) or it has sufficient rights to
     grant the rights to its Contributions conveyed by this License.

2.6. Fair Use

     This License is not intended to limit any rights You have under
     applicable copyright doctrines of fair use, fair dealing, or other
     equivalents.

2.7. Conditions

     Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
     Section 2.1.


3. Responsibilities

3.1. Distribution of Source Form

     All distribution of Covered Software in Source Code Form, including any
     Modifications that You create or to which You contribute, must be under
     the terms of this License. You must inform recipients that the Source
     Code Form of the Covered Software is governed by the terms of this
     License, and how they can obtain a copy of this License. You may not
     attempt to alter or restrict the recipients' rights in the Source Code
     Form.

3.2. Distribution of Executable Form

     If You distribute Covered Software in Executable Form then:

     a. such Covered Software must also be made available in Source Code Form,
        as described in Section 3.1, and You must inform recipients of the
        Executable Form how they can obtain a copy of such Source Code Form by
        reasonable means in a timely manner, at a charge no more than the cost
        of distribution to the recipient; and

     b. You may distribute such Executable Form under the terms of this
        License, or sublicense it under different terms, provided that the
        license for the Executable Form does not attempt to limit or alter the
        recipients' rights in the Source Code Form under this License.

3.3. Distribution of a Larger Work

     You may create and distribute a Larger Work under terms of Your choice,
     provided that You also comply with the requirements of this License for
     the Covered Software. If the Larger Work is a combination of Covered
     Software with a work governed by one or more Secondary Licenses, and the
     Covered Software is not Incompatible With Secondary Licenses, this
     License permits You to additionally distribute such Covered Software
     under the terms of such Secondary License(s), so that the recipient of
     the Larger Work may, at their option, further distribute the Covered
     Software under the terms of either this License or such Secondary
     License(s).

3.4. Notices

     You may not remove or alter the substance of any license notices
     (including copyright notices, patent notices, disclaimers of warranty, or
     limitations of liability) contained within the Source Code Form of the
     Covered Software, except that You may alter any license notices to the
     extent required to remedy known factual inaccuracies.

3.5. Application of Additional Terms

     You may choose to offer, and to charge a fee for, warranty, support,
     indemnity or liability obligations to one or more recipients of Covered
     Software. However, You may do so only on Your own behalf, and not on
     behalf of any Contributor. You must make it absolutely clear that any
     such warranty, support, indemnity, or liability obligation is offered by
     You alone, and You hereby agree to indemnify every Contributor for any
     liability incurred by such Contributor as a result of warranty, support,
     indemnity or liability terms You offer. You may include additional
     disclaimers of warranty and limitations of liability specific to any
     jurisdiction.

4. Inability to Comply Due to Statute or Regulation

   If it is impossible for You to comply with any of the terms of this License
   with respect to some or all of the Covered Software due to statute,
   judicial order, or regulation then You must: (a) comply with the terms of
   this License to the maximum extent possible; and (b) describe the
   limitations and the code they affect. Such description must be placed in a
   text file included with all distributions of the Covered Software under
   this License. Except to the extent prohibited by statute or regulation,
   such description must be sufficiently detailed for a recipient of ordinary
   skill to be able to understand it.

5. Termination

5.1. The rights granted under this License will terminate automatically if You
     fail to comply with any of its terms. However, if You become compliant,
     then the rights granted under this License from a particular Contributor
     are reinstated (a) provisionally, unless and until such Contributor
     explicitly and finally terminates Your grants, and (b) on an ongoing
     basis, if such Contributor fails to notify You of the non-compliance by
     some reasonable means prior to 60 days after You have come back into
     compliance. Moreover, Your grants from a particular Contributor are
     reinstated on an ongoing basis if such Contributor notifies You of the
     non-compliance by some reasonable means, this is the first time You have
     received notice of non-compliance with this License from such
     Contributor, and You become compliant prior to 30 days after Your receipt
     of the notice.

5.2. If You initiate litigation against any entity by asserting a patent
     infringement claim (excluding declaratory judgment actions,
     counter-claims, and cross-claims) alleging that a Contributor Version
     directly or indirectly infringes any patent, then the rights granted to
     You by any and all Contributors for the Covered Software under Section
     2.1 of this License shall terminate.

5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
     license agreements (excluding distributors and resellers) which have been
     validly granted by You or Your distributors under this License prior to
     termination shall survive termination.

6. Disclaimer of Warranty

   Covered Software is provided under this License on an "as is" basis,
   without warranty of any kind, either expressed, implied, or statutory,
   including, without limitation, warranties that the Covered Software is free
   of defects, merchantable, fit for a particular purpose or non-infringing.
   The entire risk as to the quality and performance of the Covered Software
   is with You. Should any Covered Software prove defective in any respect,
   You (not any Contributor) assume the cost of any necessary servicing,
   repair, or correction. This disclaimer of warranty constitutes an essential
   part of this License. No use of  any Covered Software is authorized under
   this License except under this disclaimer.

7. Limitation of Liability

   Under no circumstances and under no legal theory, whether tort (including
   negligence), contract, or otherwise, shall any Contributor, or anyone who
   distributes Covered Software as permitted above, be liable to You for any
   direct, indirect, special, incidental, or consequential damages of any
   character including, without limitation, damages for lost profits, loss of
   goodwill, work stoppage, computer failure or malfunction, or any and all
   other commercial damages or losses, even if such party shall have been
   informed of the possibility of such damages. This limitation of liability
   shall not apply to liability for death or personal injury resulting from
   such party's negligence to the extent applicable law prohibits such
   limitation. Some jurisdictions do not allow the exclusion or limitation of
   incidental or consequential damages, so this exclusion and limitation may
   not apply to You.

8. Litigation

   Any litigation relating to this License may be brought only in the courts
   of a jurisdiction where the defendant maintains its principal place of
   business and such litigation shall be governed by laws of that
   jurisdiction, without reference to its conflict-of-law provisions. Nothing
   in this Section shall prevent a party's ability to bring cross-claims or
   counter-claims.

9. Miscellaneous

   This License represents the complete agreement concerning the subject
   matter hereof. If any provision of this License is held to be
   unenforceable, such provision shall be reformed only to the extent
   necessary to make it enforceable. Any law or regulation which provides that
   the language of a contract shall be construed against the drafter shall not
   be used to construe this License against a Contributor.


10. Versions of the License

10.1. New Versions

      Mozilla Foundation is the license steward. Except as provided in Section
      10.3, no one other than the license steward has the right to modify or
      publish new versions of this License. Each version will be given a
      distinguishing version number.

10.2. Effect of New Versions

      You may distribute the Covered Software under the terms of the version
      of the License under which You originally received the Covered Software,
      or under the terms of any subsequent version published by the license
      steward.

10.3. Modified Versions

      If you create software not governed by this License, and you want to
      create a new license for such software, you may create and use a
      modified version of this License if you rename the license and remove
      any references to the name of the license steward (except to note that
      such modified license differs from this License).

10.4. Distributing Source Code Form that is Incompatible With Secondary
      Licenses If You choose to distribute Source Code Form that is
      Incompatible With Secondary Licenses under the terms of this version of
      the License, the notice described in Exhibit B of this License must be
      attached.

Exhibit A - Source Code Form License Notice

      This Source Code Form is subject to the
      terms of the Mozilla Public License, v.
      2.0. If a copy of the MPL was not
      distributed with this file, You can
      obtain one at
      http://mozilla.org/MPL/2.0/.

If it is not possible or desirable to put the notice in a particular file,
then You may include the notice in a location (such as a LICENSE file in a
relevant directory) where a recipient would be likely to look for such a
notice.

You may add additional accurate notices of copyright ownership.

Exhibit B - "Incompatible With Secondary Licenses" Notice

      This Source Code Form is "Incompatible
      With Secondary Licenses", as defined by
      the Mozilla Public License, v. 2.0.
```

# Informes de uso para la atribución de costes en SageMaker HyperPod
<a name="sagemaker-hyperpod-usage-reporting"></a>

Los informes de uso en los clústeres organizados por SageMaker HyperPod EKS proporcionan una visibilidad detallada del consumo de recursos informáticos. Esta capacidad permite a las organizaciones implementar una atribución de costos transparente al asignar los costos de los clústeres a los equipos, proyectos o departamentos en función del uso real. Al hacer un seguimiento de métricas como las GPU/CPU horas y el uso de Neuron Core (recopiladas *tanto en conjuntos a nivel de equipo como desglosados por tareas específicas), los informes de uso complementan la funcionalidad de gestión de tareas de la empresa y garantizan* [una](sagemaker-hyperpod-eks-operate-console-ui-governance.md) distribución justa HyperPod de los costes en los clústeres compartidos de varios usuarios mediante:
+ La eliminación de las conjeturas a la hora de asignar los costos
+ La vinculación directa entre los gastos y el consumo de los recursos de computación medible
+ El cumplimiento de la responsabilidad basada en el uso en entornos de infraestructura compartida

## Requisitos previos
<a name="sagemaker-hyperpod-usage-reporting-prerequisites"></a>

Para esta capacidad:
+ Necesita:
  + Un **SageMaker HyperPod entorno** activo con un clúster orquestado por EKS en ejecución.
  + (Se recomienda encarecidamente) La **gobernanza de tareas debe estar configurada** con cuotas de computación y reglas de prioridad. Para obtener instrucciones de configuración, consulte [Configuración de la gobernanza de tareas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md).
+ Debe conocer estos conceptos básicos:
  + **Cuota de computación asignada:** recursos reservados para un equipo en función de las cuotas predefinidas en sus políticas de gobernanza de tareas. Se trata de una *capacidad garantizada* para sus cargas de trabajo.
  + **Computación prestada:** recursos inactivos del grupo de clústeres compartido que los equipos pueden utilizar temporalmente *más allá de la cuota asignada*. La computación prestada se asigna de forma dinámica en función de las reglas de prioridad de las políticas de gobernanza de tareas y de la disponibilidad de los recursos no utilizados.
  + **Uso de los recursos de computación:** medición de los recursos (horas de GPU, CPU y Neuron Core) consumidos por un equipo, que se registra de la siguiente manera:
    + **Utilización asignada**: uso dentro de la cuota del equipo.
    + **Utilización prestada**: uso más allá de la cuota, que se extrae del grupo compartido.
  + **Atribución de costos**: proceso de asignar los costos del clúster a los equipos en función de su *uso de recursos de computación real*, incluidos los recursos consumidos dentro de su cuota predefinida y los recursos utilizados temporalmente del grupo de clústeres compartido más allá de su cuota.

## Tipos de informe
<a name="sagemaker-hyperpod-usage-reporting-report-types"></a>

HyperPodLos informes de uso proporcionan una granularidad operativa variable:
+ **Los informes resumidos** proporcionan una visibilidad del uso informático en toda la organización, ya que suman el total GPU/CPU/Neuron de horas de trabajo por equipo (espacio de nombres) y distinguen entre el *uso normal* (recursos de la cuota asignada a un equipo) y el *procesamiento prestado* (exceso de capacidad procedente de grupos compartidos).
+ Los **informes detallados** ofrecen desgloses de tareas por equipo y registran las horas de computación exactas dedicadas a ejecutar tareas específicas, incluidas las tareas antepuestas, los patrones de uso por hora y las asignaciones específicas de espacios de nombres.

**importante**  
HyperPod los informes de uso rastrean la utilización de la computación en *todos los espacios de nombres de Kubernetes* de un clúster, incluidos los administrados por Task Governance, los espacios de nombres predeterminados y los espacios de nombres creados **fuera de Task Governance** (por ejemplo, mediante llamadas directas a la API de Kubernetes o herramientas externas). Esta supervisión de la infraestructura garantiza la responsabilidad integral basada en el uso, lo que evita brechas en la atribución de costos de los clústeres compartidos, independientemente de cómo se administren los espacios de nombres.

## Formatos e intervalos de tiempo de los informes
<a name="sagemaker-hyperpod-usage-reporting-formats"></a>

Al utilizar el script de Python incluido en [Generación de informes](sagemaker-hyperpod-usage-reporting-generate.md), los administradores pueden generar informes de uso bajo demanda en formatos CSV o PDF y seleccionar intervalos de tiempo que van desde instantáneas diarias hasta ventanas de datos históricos de 180 días (6 meses).

**nota**  
Al definir la infraestructura de los informes, puede configurar una ventana de datos históricos que se extienda más allá del máximo predeterminado de 180 días. [Para obtener más información sobre cómo configurar el período de retención de datos, consulte Instalar la infraestructura de informes de uso mediante. CloudFormation](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#install-usage-report-infrastructure-using-cloudformation) 

## Casos de uso ilustrativos
<a name="sagemaker-hyperpod-usage-reporting-use-cases"></a>

Esta capacidad aborda escenarios críticos en AI/ML entornos de múltiples inquilinos, tales como:

1. **Asignación de costes para los clústeres compartidos**: un administrador gestiona un HyperPod clúster compartido por 20 equipos que entrenan modelos de IA generativa. Emplea un *informe de uso de resumen* para analizar el uso diario de la GPU durante 180 días y descubre que el equipo A ha consumido 200 horas de GPU de un tipo de instancia específico: 170 de la cuota asignada y 30 de los recursos de computación prestados. El administrador factura al equipo A en función del uso informado.

1. **Auditoría y resolución de conflictos**: un equipo de finanzas cuestiona la precisión de la atribución de costos y cita inconsistencias. El administrador puede exportar un *informe detallado por tarea* para auditar las discrepancias. Al hacer referencias cruzadas entre marcas horarias, tipos de instancias y trabajos antepuestos dentro del espacio de nombres del equipo, el informe concilia de forma clara los datos de uso controvertidos.

# Detalles del informe y desglose de los datos
<a name="sagemaker-hyperpod-usage-reporting-content"></a>

SageMaker HyperPodLos informes de uso ofrecen dos perspectivas distintas para analizar el consumo de recursos informáticos: **informes resumidos** para la asignación de costes e **informes detallados** para una auditoría pormenorizada. Los informes resumidos agrupan el uso de todo el clúster por equipo o espacio de nombres y destacan las tendencias entre los recursos de computación asignados y prestados de los recursos de GPU, CPU y Neuron Core. Los informes detallados profundizan en las tareas individuales y exponen métricas como los plazos de ejecución, el estado de las tareas y el uso por clase de prioridad. En esta sección, se desglosa la estructura de estos informes, se estudian las métricas clave y se muestra cómo los administradores y los equipos de finanzas pueden cotejar las tendencias resumidas con los datos de las tareas para validar la precisión de la atribución de costos, resolver las discrepancias y optimizar la infraestructura compartida.

## Encabezados de informes comunes
<a name="sagemaker-hyperpod-usage-reporting-content-headers"></a>

Tanto los informes de resumen como los detallados incluyen los siguientes metadatos para contextualizar los datos de uso:
+ **ClusterName:** El nombre del clúster de Hyperpod orquestado por EKS en el que se consumieron los recursos.
+ **Tipo:** es la categoría de informe (`Summary Utilization Report` o `Detailed Utilization Report`).
+ **Fecha de creación:** es la fecha de creación del informe (por ejemplo, `2025-04-18`).
+ **Intervalo de fechas (UTC):** es el período cubierto (por ejemplo, `2025-04-16 to 2025-04-18`).
+ **Períodos de datos que faltan:** brechas en la recopilación de datos debido al tiempo de inactividad del clúster o a problemas de supervisión (por ejemplo, `2025-04-16 00:00:00 to 2025-04-19 00:00:00`).

## Informes de resumen
<a name="sagemaker-hyperpod-usage-reporting-content-summary"></a>

Los informes de resumen proporcionan una visión general diaria del consumo de los recursos de computación entre los equipos y los espacios de nombres y los tipos de instancias. Además, estos informes permiten distinguir entre el uso asignado (cuota reservada) y el uso prestado (grupo prestado). Estos informes son ideales para la generación de facturas, las instrucciones de atribución de costos o la previsión de la capacidad.

*Ejemplo: un informe de resumen podría mostrar que el equipo A ha utilizado 200 horas de GPU: 170 de su cuota asignada y 30 prestadas.*

Este es un desglose estructurado de las columnas clave de un informe de resumen:
+ **Fecha:** es la fecha del uso notificado (por ejemplo, `2025-04-18`).
+ **Espacio de nombres:** es el espacio de nombres de Kubernetes asociado al equipo (por ejemplo, `hyperpod-ns-ml-team`).
+ **Equipo:** The Owning team/department (por ejemplo,). `ml-team`
+ **Tipo de instancia:** es la instancia de recursos de computación utilizada (por ejemplo, ml.g5.4xlarge).
+ **Total/Allocated/BorrowedUtilización (horas):** el desglose del uso de la GPU, la CPU o el Neuron Core por categoría.

  Donde:
  + **Utilización total = utilización asignada \$1 utilización prestada**
  + La **utilización asignada** son las horas reales de GPU, CPU o Neuron Core que ha utilizado un equipo con un límite del 100 % de la cuota asignada.
  + La **utilización prestada** son las horas reales de GPU, CPU o Neuron Core que ha utilizado un equipo *más allá de la cuota asignada* y se obtienen del grupo de clústeres compartidos en función de las reglas de prioridad de la gobernanza de tareas y la disponibilidad de los recursos.

Ejemplo: 72 horas de GPU en total (48 asignadas, 24 prestadas).

**nota**  
Solo se muestra la utilización total de los espacios de nombres no administrador por la Gobernanza de tareas.

## Informes detallados
<a name="sagemaker-hyperpod-usage-reporting-content-detailed"></a>

Los informes detallados proporcionan una visión detallada del uso de los recursos de computación donde se desglosa el consumo de los recursos por tarea y se muestran las métricas destalladas como los plazos de ejecución de las tareas, el estado (por ejemplo, si se ha realizado correctamente o ha fallado) y el uso por clases de prioridad. Estos informes son ideales para validar las discrepancias en la facturación o garantizar el cumplimiento de las políticas de gobernanza.

Este es un desglose estructurado de las columnas clave de un informe detallado:
+ **Fecha:** es la fecha del uso notificado (por ejemplo, `2025-04-18`).
+ **Inicio/fin del período:** ventana de ejecución exacta (UTC) de la tarea (por ejemplo, `19:54:34`).
+ **Espacio de nombres:** es el espacio de nombres de Kubernetes asociado al equipo (por ejemplo, `hyperpod-ns-ml-team`).
+ **Equipo:** The Owning team/department (p. ej.,`ml-team`).
+ **Tarea:** es el identificador del trabajo o pod (por ejemplo, `pytorchjob-ml-pytorch-job-2p5zt-db686`).
+ **Instancia:** es la instancia de computación utilizada (por ejemplo, `ml.g5.4xlarge`).
+ **Estado:** es el resultado de la tarea (correcta, fallida, antepuesta).
+ **Utilización total:** es el consumo total (horas y recuento de instancias) de los recursos de GPU, CPU o Neuron Core.
+ **Clase de prioridad:** es el nivel de prioridad asignado (por ejemplo, prioridad de entrenamiento).

# Generación de informes
<a name="sagemaker-hyperpod-usage-reporting-generate"></a>

Esta guía proporciona step-by-step instrucciones para configurar y administrar los informes de uso de SageMaker HyperPod los clústeres. Siga estos procedimientos para implementar la infraestructura, generar informes personalizados y eliminar recursos cuando ya no los necesite.

## Configuración de los informes de uso
<a name="sagemaker-hyperpod-usage-reporting-install"></a>

**nota**  
Antes de configurar la infraestructura SageMaker HyperPod de informes de uso en su SageMaker HyperPod clúster, asegúrese de cumplir todos los requisitos previos que se detallan en este [https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#prerequisites](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#prerequisites)documento.

Los informes de uso HyperPod requieren:
+ Implementar SageMaker HyperPod AWS los recursos de los informes de uso mediante una CloudFormation pila
+ Instalación del informe de SageMaker HyperPod uso del operador de Kubernetes mediante un diagrama de Helm

Puede encontrar instrucciones de instalación completas en el repositorio de informes de [SageMaker HyperPod uso](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md). GitHub En concreto, siga los pasos de la sección [Set up](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#set-up-usage-reporting).

## Generación de informes de uso bajo demanda
<a name="sagemaker-hyperpod-usage-reporting-use"></a>

Una vez instalados la infraestructura de informes de uso y el operador de Kubernetes, los datos de trabajo del SageMaker HyperPod clúster se recopilan y almacenan automáticamente en el depósito de S3 que configuraste durante la configuración. El operador captura continuamente las métricas de uso detalladas en segundo plano y crea archivos de datos sin procesar en el directorio `raw` del bucket de S3 designado.

Para generar un informe de uso bajo demanda, puede utilizar el `run.py` script que se proporciona en el [ GitHub repositorio de informes de SageMaker HyperPod uso](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md) para extraer y exportar las métricas de uso. En concreto, puede buscar el script e instrucciones completas para generar un informe en la sección [Generate Reports](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#generate-reports).

El script le permite:
+ especificar intervalos de fechas personalizados para generar informes,
+ elegir entre los tipos de informe detallado y de resumen,
+ exportar informes en formato CSV o PDF,
+ dirigir los informes a una ubicación de S3 específica.

## Limpieza de los recursos de informes de uso
<a name="sagemaker-hyperpod-usage-reporting-cleanup"></a>

Cuando ya no necesites tu infraestructura de informes de SageMaker HyperPod uso, sigue los pasos de [Limpiar recursos](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#clean-up-resources) para limpiar el operador y los AWS recursos de Kubernetes (en ese orden). La eliminación adecuada de los recursos ayuda a evitar costos innecesarios.

# Configuración del almacenamiento para SageMaker HyperPod clústeres organizados por Amazon EKS
<a name="sagemaker-hyperpod-eks-setup-storage"></a>

El administrador de clústeres debe configurar el almacenamiento para que los usuarios científicos de datos administren los datos de entrada y salida y almacenen los puntos de control durante el entrenamiento en clústeres. SageMaker HyperPod 

**Control de grandes conjuntos de datos (datos de entrada y de salida)**
+ **Administración y acceso a los datos**: los científicos de datos suelen trabajar con grandes conjuntos de datos que son necesarios para el entrenamiento de modelos de machine learning. La especificación de los parámetros de almacenamiento en el envío del trabajo les permite definir dónde se encuentran estos conjuntos de datos (por ejemplo, buckets de Amazon S3 o volúmenes persistentes en Kubernetes) y cómo se accede a ellos durante la ejecución del trabajo.
+ **Optimización del rendimiento**: la eficiencia del acceso a los datos de entrada puede afectar considerablemente al rendimiento del trabajo de entrenamiento. Al optimizar los parámetros de almacenamiento, los científicos de datos pueden garantizar que los datos se lean y escriban de manera eficiente, lo que reduce los cuellos de I/O botella.

**Almacenamiento de puntos de comprobación**
+ **Creación de puntos de comprobación en el entrenamiento**: durante los trabajos de entrenamiento prolongados, es una práctica habitual guardar los puntos de comprobación, que son estados intermedios del modelo. Esto permite a los científicos de datos reanudar el entrenamiento desde un punto específico en caso de error, en lugar de empezar desde cero.
+ **Experimentación y recuperación de datos**: al especificar la ubicación de almacenamiento de los puntos de comprobación, los científicos de datos pueden garantizar que estos puntos de comprobación se almacenen de forma segura, posiblemente en un sistema de almacenamiento distribuido que ofrezca redundancia y alta disponibilidad. Esto es crucial para la recuperación de interrupciones y para experimentar con diferentes estrategias de entrenamiento.

**sugerencia**  
Para obtener una experiencia práctica y orientación sobre cómo configurar el almacenamiento para SageMaker HyperPod clústeres orquestados con Amazon EKS, consulte las siguientes secciones del taller [Amazon EKS Support in SageMaker HyperPod ](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e).  
[Configura Amazon FSx para Lustre en SageMaker HyperPod](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/01-cluster/06-fsx-for-lustre)
[Configure un punto de montaje para Amazon S3](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/01-cluster/09-s3-mountpoint) mediante [Mountpoint](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mountpoint.html) para Amazon S3

# Uso del controlador CSI de Amazon EBS en SageMaker HyperPod clústeres de EKS
<a name="sagemaker-hyperpod-eks-ebs"></a>

SageMaker HyperPod es compatible con el controlador Container Storage Interface (CSI) de Amazon Elastic Block Store (Amazon EBS), que gestiona el ciclo de vida de los volúmenes de Amazon EBS como almacenamiento para los volúmenes de Kubernetes que cree. Con el controlador CSI de Amazon EBS, puede crear, adjuntar y gestionar sus volúmenes de Amazon EBS para sus cargas de trabajo de aprendizaje automático que se ejecutan en clústeres SageMaker HyperPod con la orquestación de Amazon EKS.

**Topics**
+ [Capacidades de almacenamiento clave](#sagemaker-hyperpod-eks-ebs-features)
+ [Casos de uso](#sagemaker-hyperpod-eks-ebs-use)
+ [Configuración del controlador CSI de Amazon EBS en SageMaker HyperPod los clústeres de EKS](#sagemaker-hyperpod-eks-ebs-setup)
+ [Uso del APIs](#sagemaker-hyperpod-eks-ebs-setup-apis)

## Capacidades de almacenamiento clave
<a name="sagemaker-hyperpod-eks-ebs-features"></a>

El controlador CSI de Amazon EBS es SageMaker HyperPod compatible con las siguientes capacidades de almacenamiento.
+ Aprovisionamiento estático: asocia los volúmenes de Amazon EBS creados previamente con los [volúmenes persistentes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) de Kubernetes para usarlos en sus pods.
+ Aprovisionamiento dinámico: crea automáticamente volúmenes de Amazon EBS y volúmenes persistentes asociados desde [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims). Se pueden transferir los parámetros mediante [https://kubernetes.io/docs/concepts/storage/storage-classes/](https://kubernetes.io/docs/concepts/storage/storage-classes/) para obtener un control detallado de la creación de volúmenes.
+ Redimensionamiento del volumen: amplía los volúmenes existentes mediante la actualización de la especificación de tamaño de [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) sin interrumpir las cargas de trabajo en ejecución. Esto puede resultar esencial para administrar el crecimiento de los repositorios de modelos o para adaptarse a nodos más grandes sin interrumpir el servicio.
+ Instantáneas de volúmenes: crea point-in-time instantáneas de volúmenes para realizar copias de seguridad, recuperación y control de versiones de datos.
+ Volúmenes de bloques: proporciona acceso sin procesar a dispositivos de bloques para aplicaciones de alto rendimiento que requieren acceso directo al almacenamiento.
+ Modificación del volumen: cambia las propiedades del volumen, como el tipo, las operaciones de entrada o salida por segundo (IOPS) o el rendimiento usando [clases de atributos de volumen](https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/).

Para obtener más información sobre el controlador CSI de Amazon EBS, consulte [Uso del almacenamiento de volúmenes de Kubernetes con Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) en la *Guía del usuario de Amazon EKS*.

Para obtener más información sobre el almacenamiento en los pods de su clúster, consulte [Almacenamiento](https://kubernetes.io/docs/concepts/storage/) en la *Documentación de Kubernetes*.

## Casos de uso
<a name="sagemaker-hyperpod-eks-ebs-use"></a>

La integración del controlador CSI de Amazon EBS permite varios casos de uso clave para cargas de trabajo de formación e inferencia en clústeres de EKS. SageMaker HyperPod 

**Cargas de trabajo de entrenamiento**
+ Almacenamiento de conjuntos de datos: aprovisione volúmenes para los conjuntos de datos de entrenamiento que persisten tras el reinicio del pod
+ Almacenamiento de puntos de comprobación: guarde los puntos de comprobación del modelo y los resultados de los entrenamientos intermedios
+ Artefactos compartidos: acceda a conjuntos de datos y artefactos de modelo comunes en varios trabajos de entrenamiento

**Cargas de trabajo de inferencia**
+ Almacenamiento de modelos: aprovisione dinámicamente volúmenes del tamaño adecuado en función de los requisitos del modelo
+ Almacenamiento en caché de contenedores: cree un almacenamiento efímero para mejorar el rendimiento de las inferencias
+ Registro de eventos: almacene los resultados y registros de inferencias con un almacenamiento persistente

## Configuración del controlador CSI de Amazon EBS en SageMaker HyperPod los clústeres de EKS
<a name="sagemaker-hyperpod-eks-ebs-setup"></a>

El controlador de la interfaz de almacenamiento de contenedores (CSI) de Amazon Elastic Block Store (Amazon EBS) le permite aprovisionar y gestionar dinámicamente los volúmenes de Amazon EBS para sus cargas de trabajo en contenedores que se ejecutan en clústeres con la orquestación EKS. SageMaker HyperPod En esta sección, se explica cómo instalar y configurar el controlador CSI de Amazon EBS para habilitar el almacenamiento persistente para sus cargas de trabajo de machine learning.

### Requisitos previos
<a name="sagemaker-hyperpod-eks-ebs-setup-prerequisite"></a>

Antes de comenzar, haga lo siguiente:
+ [Instale y configure el AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ [Cree un SageMaker HyperPod clúster con la orquestación de Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html)
+ Instalar el controlador CSI de Amazon EBS con la versión [v1.47.0](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG.md#v1470)

### Permisos adicionales
<a name="sagemaker-hyperpod-eks-ebs-setup-permissions"></a>

Para configurar el complemento del controlador CSI de Amazon EBS, siga las instrucciones de [Uso del almacenamiento de volúmenes de Kubernetes con Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) en la *Guía del usuario de Amazon EKS*. También debe añadir los siguientes permisos adicionales al rol de IAM utilizado para ejecutar el complemento del controlador. Tenga en cuenta que esta es la función de IAM especificada en la configuración de su cuenta de servicio para el complemento del controlador, no la función de ejecución del HyperPod clúster.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Action":
            [
                "sagemaker:AttachClusterNodeVolume",
                "sagemaker:DetachClusterNodeVolume"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name"
        }
    ]
}
```

------

## Uso del APIs
<a name="sagemaker-hyperpod-eks-ebs-setup-apis"></a>

Como alternativa, puede usar las operaciones [AttachClusterNodeVolume](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AttachClusterNodeVolume.html)y [DetachClusterNodeVolume](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DetachClusterNodeVolume.html)API para adjuntar y separar sus volúmenes de Amazon EBS a SageMaker HyperPod las instancias de clúster de EKS.

**Entre los requisitos clave para su uso se APIs incluyen los siguientes.**
+ Tanto el volumen de Amazon EBS como el clúster de SageMaker HyperPod EKS deben ser propiedad del mismo Cuenta de AWS propietario.
+ La entidad principal que realiza la llamada necesita unos permisos mínimos específicos para realizar correctamente la operación de asociación o desasociación. Para obtener más información sobre los permisos mínimos, consulte las siguientes secciones.
+ Después de adjuntar un volumen a su HyperPod nodo, siga las instrucciones de [Acceder a los nodos del SageMaker HyperPod clúster](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-access-through-terminal.html) para acceder al nodo del clúster y [Hacer que un volumen esté disponible para su uso](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-using-volumes.html) a fin de montarlo.

### Permisos requeridos para las acciones de los `sagemaker:AttachClusterNodeVolume`
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-attach"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Action":
            [
                "sagemaker:AttachClusterNodeVolume"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "ec2:AttachVolume",
                "ec2:DescribeVolumes"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*"
        }
    ]
}
```

------

### Permisos requeridos para las acciones de los `sagemaker:DetachClusterNodeVolume`
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-detach"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Action":
            [
                "sagemaker:DetachClusterNodeVolume"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "ec2:DetachVolume",
                "ec2:DescribeVolumes"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*"
        }
    ]
}
```

------

### Permisos necesarios para las claves AWS KMS
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-kms"></a>

Agregue los siguientes AWS KMS permisos solo si utiliza claves de KMS administradas por el cliente para cifrar los volúmenes de Amazon EBS conectados a los nodos HyperPod del clúster. Estos permisos no son necesarios si utiliza claves de KMS administradas por AWS(la opción de cifrado predeterminada).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-default-1",
    "Statement":
    [
        {
            "Effect": "Allow",
            "Principal":
            {
                "AWS": "arn:aws:iam::111122223333:role/caller-role"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Principal":
            {
                "AWS": "arn:aws:iam::111122223333:role/caller-role"
            },
            "Action": "kms:CreateGrant",
            "Resource": "*",
            "Condition":
            {
                "StringEquals":
                {
                    "kms:CallerAccount": "111122223333",
                    "kms:ViaService": "ec2.us-east-1.amazonaws.com"
                },
                "ForAnyValue:StringEquals":
                {
                    "kms:EncryptionContextKeys": "aws:ebs:id"
                },
                "Bool":
                {
                    "kms:GrantIsForAWSResource": true
                },
                "ForAllValues:StringEquals":
                {
                    "kms:GrantOperations":
                    [
                        "Decrypt"
                    ]
                }
            }
        }
    ]
}
```

------

**nota**  
Estos AWS KMS permisos no son necesarios para `sagemaker:DetachClusterNodeVolume` separar un volumen de Cluster Auto Volume Attachment (CAVA) cifrado con claves KMS administradas por el cliente.

# Configuración de etiquetas y manchas personalizadas de Kubernetes en Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints"></a>

 SageMaker HyperPod Los clústeres de Amazon con el orquestador Amazon Elastic Kubernetes Service (Amazon EKS) admiten etiquetas y manchas de Kubernetes personalizadas para los nodos de los grupos de instancias. Las etiquetas y los errores son mecanismos de programación y organización fundamentales en Kubernetes que te permiten tener un control pormenorizado sobre la ubicación de los pods y el uso de los recursos.

Las etiquetas son pares clave-valor que se pueden adjuntar a los objetos de Kubernetes, lo que te permite organizar y seleccionar los recursos en función de sus atributos. Las manchas, junto con las tolerancias, son propiedades específicas de los nodos que influyen en la programación de los módulos al repeler los grupos que no tienen tolerancias coincidentes. En conjunto, estos mecanismos permiten aislar las cargas de trabajo, asignarlas de acuerdo con las especificaciones del hardware y garantizar una utilización óptima de los recursos.

## Casos de uso comunes
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-use-cases"></a>

Las siguientes son situaciones habituales en las que resulta beneficioso utilizar etiquetas y etiquetas personalizadas:
+ **Evitar el uso de módulos del sistema en instancias costosas**: Aplica restricciones a las instancias de GPU para evitar que los pods del sistema y otras cargas de trabajo no críticas consuman costosos recursos de cómputo
+ **Integración con las herramientas existentes**: aplique etiquetas que coincidan con los patrones de infraestructura establecidos de su organización y con las configuraciones de afinidad de nodos

## Configuración de etiquetas y manchas
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-configure"></a>

Puedes configurar etiquetas e imprecisiones de Kubernetes personalizadas a nivel de grupo de instancias mediante el `KubernetesConfig` parámetro de la configuración del clúster. Las etiquetas y las restricciones se aplican a todos los nodos del grupo de instancias y persisten durante todo el ciclo de vida del clúster.

El `KubernetesConfig` parámetro es declarativo, lo que significa que especificas todo el estado deseado de las etiquetas y las manchas para un grupo de instancias. SageMaker HyperPod a continuación, concilia el estado real de los nodos para que coincida con el estado deseado.
+ **Añadir etiquetas o manchas**: incluye las nuevas etiquetas o manchas `KubernetesConfig` junto con las existentes que desees conservar
+ **Actualización de etiquetas o manchas**: modifique los valores de `KubernetesConfig` las etiquetas o manchas que desee cambiar e incluya todas las demás que desee conservar
+ **Eliminar etiquetas o manchas**: omita las etiquetas o manchas que desee eliminar y conserve solo las `KubernetesConfig` que desee conservar

### Crear un grupo con etiquetas y manchas
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-create"></a>

Al crear un SageMaker HyperPod clúster nuevo, incluye el `KubernetesConfig` parámetro en la configuración del grupo de instancias. En el siguiente ejemplo, se muestra cómo crear un clúster con etiquetas y detalles personalizados:

```
{
    "ClusterName": "my-cluster",
    "InstanceGroups": [{
        "InstanceGroupName": "worker-group-1",
        "InstanceType": "ml.p4d.24xlarge",
        "InstanceCount": 4,
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://my-bucket/lifecycle-config.sh",
            "OnCreate": "on-create.sh"
        },
        "ExecutionRole": "arn:aws:iam::123456789012:role/HyperPodExecutionRole",
        "ThreadsPerCore": 1,
        "KubernetesConfig": { 
            "Labels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "Taints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            },
            {
                "key": "dedicated",
                "value": "ml-workloads",
                "effect": "NoExecute"
            }]
        }
    }],
    "VpcConfig": {
        "SecurityGroupIds": ["sg-0123456789abcdef0"],
        "Subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"]
    },
    "Orchestrator": {
        "Eks": {
            "ClusterArn": "arn:aws:eks:us-west-2:123456789012:cluster/my-eks-cluster"
        }
    }
}
```

En este ejemplo:
+ **Etiquetas**: se aplican tres etiquetas personalizadas: `env=prod``team=ml-training`, y `gpu-type=a100`
+ **Contaminaciones**: hay dos manchas configuradas para evitar la programación no deseada de los módulos

### Actualización de etiquetas e impurezas en un clúster existente
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-update"></a>

Puedes modificar las etiquetas y las impurezas de un clúster existente mediante la `UpdateCluster` API. En el siguiente ejemplo, se muestra cómo actualizar el `KubernetesConfig` de un grupo de instancias:

```
{
    "ClusterName": "my-cluster",
    "InstanceGroups": [{
        "InstanceGroupName": "worker-group-1",
        "KubernetesConfig": { 
            "Labels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100",
                "cost-center": "ml-ops"
            },
            "Taints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }]
        }
    }]
}
```

Cuando actualizas las etiquetas y las manchas, SageMaker HyperPod aplica los cambios a todos los nodos del grupo de instancias. El servicio gestiona la transición del estado actual al deseado, que puedes supervisar mediante la `DescribeCluster` API.

## Supervisar la aplicación, etiquetar y contaminar
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-monitor"></a>

SageMaker HyperPod APIs permite supervisar el estado de las etiquetas y las manchas a medida que se aplican a los nodos del clúster.

### Comprobar el estado a nivel de clúster
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-describe-cluster"></a>

Usa la `DescribeCluster` API para ver los estados actuales y deseados de las etiquetas y las impurezas a nivel de grupo de instancias. En el siguiente ejemplo, se muestra la estructura de respuesta:

```
{
    "ClusterName": "my-cluster",
    "ClusterStatus": "InService",
    "InstanceGroups": [{
        "InstanceGroupName": "worker-group-1",
        "InstanceType": "ml.p4d.24xlarge",
        "CurrentInstanceCount": 4,
        "TargetInstanceCount": 4,
        "KubernetesConfig": {
            "CurrentLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "DesiredLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "CurrentTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }],
            "DesiredTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }]
        }
    }]
}
```

Cuando `CurrentLabels` coinciden `DesiredLabels` y `CurrentTaints` coinciden`DesiredTaints`, se aplica la configuración especificada a todos los nodos del grupo de instancias. Si son diferentes, el clúster aún está en proceso de aplicar los cambios.

### Comprobando el estado de los nodos individuales
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-describe-node"></a>

Para obtener detalles a nivel de nodo, usa la `DescribeClusterNode` API para comprobar la configuración de etiquetas y contaminar los nodos individuales. El siguiente ejemplo muestra la estructura de respuesta:

```
{
    "NodeDetails": { 
        "InstanceId": "i-0123456789abcdef0",
        "InstanceGroupName": "worker-group-1",
        "InstanceType": "ml.p4d.24xlarge",
        "InstanceStatus": {
            "Status": "Running",
            "Message": "Node is healthy"
        },
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://my-bucket/lifecycle-config.sh",
            "OnCreate": "on-create.sh"
        },
        "LaunchTime": 1699564800.0,
        "KubernetesConfig": {
            "CurrentLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "DesiredLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "CurrentTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }],
            "DesiredTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }]
        }
    }
}
```

La supervisión a nivel de nodo resulta útil para solucionar problemas cuando las etiquetas o los errores no se aplican correctamente a nodos específicos o cuando es necesario verificar la configuración de una instancia concreta.

## Prefijos reservados
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-reserved-prefixes"></a>

Algunos prefijos están reservados para el uso del sistema y no se deben usar para etiquetas personalizadas o impuras. Los siguientes prefijos están reservados:
+ `kubernetes.io/`- Reservado para los componentes principales de Kubernetes
+ `k8s.io/`- Reservado para los componentes principales de Kubernetes
+ `sagemaker.amazonaws.com/`- Reservado para SageMaker HyperPod
+ `eks.amazonaws.com/`- Reservado para Amazon EKS
+ `k8s.aws/`- Reservado para Amazon EKS
+ `karpenter.sh/`- Reservado para el escalado automático de Karpenter

Los componentes del sistema administran las etiquetas y las manchas con estos prefijos y no deben sobrescribirse con valores personalizados.

# Formación sin control en Amazon SageMaker HyperPod
<a name="sagemaker-eks-checkpointless"></a>

La formación sin control en Amazon SageMaker HyperPod permite una recuperación más rápida de los fallos en la infraestructura de formación. La siguiente documentación le ayuda a empezar a impartir formación sin problemas y a ajustar los modelos compatibles. NeMo

La formación en Checkpointless tiene los siguientes requisitos previos:
+ [Cómo empezar a utilizar el soporte de Amazon EKS en SageMaker HyperPod](sagemaker-hyperpod-eks-prerequisites.md)
+ [Instalación del operador de entrenamiento](sagemaker-eks-operator-install.md). Debe instalar la versión 1.2.0 o superior.

 Checkpointless Training on SageMaker HyperPod se basa en la guía del usuario de [NVIDIA NeMo ](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/core/exp_manager.html#experiment-manager) Framework. Puedes realizar un entrenamiento sin controles con recetas creadas previamente. SageMaker HyperPod Si estás familiarizado con ellas NeMo, el proceso de uso de las recetas de entrenamiento sin puntos de control es similar. Con pequeños cambios, puedes empezar a entrenar un modelo utilizando funciones de entrenamiento sin puntos de control que te permiten recuperarte rápidamente de los errores de entrenamiento.

Las siguientes HyperPod recetas vienen preconfiguradas con optimizaciones de entrenamiento sin puntos de control. Puedes especificar tus rutas de datos como parte de la receta y usar el script de inicio asociado para ejecutar el entrenamiento (consulta la guía de inicio rápido que aparece a continuación):


| Modelo | Método | Tamaño | Nodos | Instancia | Acelerador | Fórmula | Script | Tutorial | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| TENGO UN JEFE | Ejemplo completo de ajuste | 120b | 16 | p5.48xlarge | GPU H100 | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_full_fine_tuning.yaml) | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh) | [link](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html) | 
| TENGO UN JEFE | Ejemplo de Lora | 120 b | 2 | p5.48xlarge | GPU H100 | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_lora.yaml) | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh) | [link](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft.html) | 
| Llama 3 | Ejemplo de Pretrain | 70b | 16 | p5.48xlarge | GPU H100 | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/training/llama/checkpointless_llama3_70b_pretrain.yaml) | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh) | [link](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-pretraining-llama3.html) | 
| Llama 3 | Lora: ejemplo | 70 b | 2 | p5.48xlarge | GPU H100 | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/llama/checkpointless_llama3_70b_lora.yaml) | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh) | [link](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft-llama.html) | 

La siguiente guía de inicio rápido proporciona tutoriales para utilizar recetas de formación sin puntos de control:

**Ejemplos de introducción**
+ [Tutoriales - Optimización completa SageMaker HyperPod de Amazon Checkpointless (GPT OSS 120b)](sagemaker-eks-checkpointless-recipes-finetune.md)
+ [Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora GPT OSS 120b](sagemaker-eks-checkpointless-recipes-peft.md)
+ [Tutoriales - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b](sagemaker-eks-checkpointless-recipes-pretraining-llama3.md)
+ [Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora Llama 3 70b](sagemaker-eks-checkpointless-recipes-peft-llama.md)

Si quieres preentrenar o ajustar modelos personalizados, consulta. [Tutoriales: Amazon SageMaker HyperPod Checkpointless: preentrenamiento o ajuste de modelos personalizados](sagemaker-eks-checkpointless-recipes-custom.md)

Para obtener más información sobre la incorporación de componentes específicos de capacitación sin puntos de control,. [HyperPod funciones de entrenamiento sin puntos de control](sagemaker-eks-checkpointless-features.md)

# Tutoriales de SageMaker HyperPod formación de Amazon Checkpointless
<a name="sagemaker-eks-checkpointless-recipes"></a>

[ HyperPod Las recetas de entrenamiento sin puntos de control](https://github.com/aws/sagemaker-hyperpod-checkpointless-training) son configuraciones de trabajo predefinidas con las funciones de entrenamiento sin control habilitadas. El uso de estas recetas hace que sea más fácil empezar con el entrenamiento sin puntos de control. HyperPod

**Topics**
+ [Tutoriales - Optimización completa SageMaker HyperPod de Amazon Checkpointless (GPT OSS 120b)](sagemaker-eks-checkpointless-recipes-finetune.md)
+ [Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora GPT OSS 120b](sagemaker-eks-checkpointless-recipes-peft.md)
+ [Tutoriales - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b](sagemaker-eks-checkpointless-recipes-pretraining-llama3.md)
+ [Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora Llama 3 70b](sagemaker-eks-checkpointless-recipes-peft-llama.md)
+ [Tutoriales: Amazon SageMaker HyperPod Checkpointless: preentrenamiento o ajuste de modelos personalizados](sagemaker-eks-checkpointless-recipes-custom.md)

# Tutoriales - Optimización completa SageMaker HyperPod de Amazon Checkpointless (GPT OSS 120b)
<a name="sagemaker-eks-checkpointless-recipes-finetune"></a>

Se requiere la siguiente secuencia de pasos para ejecutar recetas de entrenamiento sin puntos de control. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-finetune-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
+ Datos en uno de los siguientes formatos:
  + JSON
  + JSONGZ (JSON comprimido)
  + ARROW
+ [Elija una receta de entrenamiento sin puntos de control compatible para Llama 70B o GPT-OSS 120B de la fuente.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) [y conviértelo en un formato compatible con Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-finetune-recipes-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de que su versión de Python sea superior o igual a la 3.10 e inferior a la 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl y eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Instala Helm](https://helm.sh/docs/intro/install/)

1. Conéctese con su clúster de Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale las dependencias siguiendo uno de estos métodos:

   1. Método 1: método de SageMaker HyperPod recetas:

      ```
      # install SageMaker HyperPod Recipes.
      git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
      cd sagemaker-hyperpod-recipes
      pip3 install -r requirements.txt
      ```

   1. Método 2: kubectl con el método job yaml predefinido

      ```
      # install SageMaker HyperPod checkpointless training.
      git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
      cd sagemaker-hyperpod-checkpointless-training
      ```

Ahora puedes lanzar la receta de entrenamiento sin puntos de control usando el lanzador style o usando kubectl. NeMo

## Lanza trabajos de formación con el lanzador de recetas
<a name="sagemaker-eks-checkpointless-recipes-finetune-launcher"></a>

Puedes usar las SageMaker HyperPod recetas de Amazon para enviar tu trabajo de formación. El uso de las recetas implica actualizar k8s.yaml, config.yaml y ejecutar el script de lanzamiento.

1. Actualice `launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh`.

   your\$1container: un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación de checkpointless, consulte las notas de la versión de formación de [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).

   ```
   #!/bin/bash
   
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_full_fine_tuning \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Lanzamiento del trabajo de entrenamiento

   ```
   bash launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh
   ```

Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Si el estado es PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más información

```
kubectl describe pod <name of pod>
```

Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

```
kubectl logs <name of pod>
```

El `STATUS` pasará a `COMPLETED` cuando ejecute `kubectl get pods`.

## Lanza el trabajo de entrenamiento con kubectl con yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-finetune-kubectl"></a>

Otra opción es iniciar la formación a través de kubectl con un trabajo predefinido, yaml.

1. examples/gpt\$1oss/launch/fullactualiza el \$1finetune\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml
   + imagen: un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulta las notas de la versión de formación sobre [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).
   + [resume.restore\$1config.path=: la ruta para descargar las pesas de modelos previamente entrenadas en formato Nemo en el paso de requisitos previos.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs) <path\$1to\$1pretrained\$1weights>
   + dataset.dataset\$1path=<path\$1to\$1dataset>: la ruta al conjunto de datos almacenado en el almacenamiento compartido

1. Envía el trabajo mediante kubectl con full\$1finetune\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml

   ```
   kubectl apply -f examples/gpt_oss/launch/full_finetune_gpt_oss_120b_checkpointless_p5.yaml
   ```

Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Si el ESTADO es PENDIENTE o, ejecuta el siguiente comando para obtener más detalles ContainerCreating

```
kubectl describe pod <name of pod>
```

Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

```
kubectl logs <name of pod>
```

El ESTADO pasará a Completado cuando ejecutes kubectl get pods

# Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora GPT OSS 120b
<a name="sagemaker-eks-checkpointless-recipes-peft"></a>

Se requiere la siguiente secuencia de pasos para ejecutar recetas de entrenamiento sin puntos de control. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-peft-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
+ Datos en uno de los siguientes formatos:
  + JSON
  + JSONGZ (JSON comprimido)
  + ARROW
+ [Elija una receta de entrenamiento sin puntos de control compatible para Llama 70B o GPT-OSS 120B de la fuente.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) [y conviértelo en un formato compatible con Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-peft-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de usar Python superior o igual a 3.10 y < 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl y eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Instala Helm](https://helm.sh/docs/intro/install/)

1. Conéctese con su clúster de Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale las dependencias siguiendo uno de estos métodos:
   + SageMaker HyperPod método de recetas:

     ```
     # install SageMaker HyperPod Recipes.
     git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
     cd sagemaker-hyperpod-recipes
     pip3 install -r requirements.txt
     ```
   + kubectl con el método job yaml predefinido

     ```
     # install SageMaker HyperPod checkpointless training.
     git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
     cd sagemaker-hyperpod-checkpointless-training
     ```

Ahora puedes lanzar la receta de entrenamiento sin puntos de control usando el lanzador style o usando kubectl. NeMo

## Lanzamiento del trabajo de entrenamiento con el lanzador de fórmulas
<a name="sagemaker-eks-checkpointless-recipes-peft-recipes-launcher"></a>

Como alternativa, puedes usar las SageMaker HyperPod recetas para enviar tu trabajo de formación. El uso de las recetas implica actualizar k8s.yaml, config.yaml y ejecutar el script de lanzamiento.

1. Actualice `launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh`.

   your\$1contrainer: un contenedor de aprendizaje profundo. [Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulte las notas de la versión de formación sobre checkpointless.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html)

   ```
   #!/bin/bash
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_lora \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Lanzamiento del trabajo de entrenamiento

   ```
   bash launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh
   ```

Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Si el estado es PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más información

```
kubectl describe pod <name of pod>
```

Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

```
kubectl logs <name of pod>
```

El ESTADO pasará a Completado cuando ejecutes kubectl get pods

## Inicia el trabajo de entrenamiento con kubectl con yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-peft-kubectl"></a>

Otra opción es iniciar la formación a través de kubectl con un trabajo predefinido, yaml.

1. examples/gpt\$1oss/launch/peftactualiza el \$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml
   + imagen: Un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulta las notas de la versión de formación sobre [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).
   + [resume.restore\$1config.path=: la ruta para descargar modelos de pesas preentrenados en formato Nemo en el paso de requisitos previos.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft.html#sagemaker-eks-checkpointless-recipes-peft-prereqs) <path\$1to\$1pretrained\$1weights>
   + <path\$1to\$1dataset>dataset.dataset\$1path=: la ruta al conjunto de datos almacenado en el almacenamiento compartido

1. Envía el trabajo mediante kubectl con peft\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml

   ```
   kubectl apply -f examples/gpt_oss/launch/peft_gpt_oss_120b_checkpointless_p5.yaml
   ```

Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods

NAME                                             READY   STATUS             RESTARTS        AGE
gpt-120b-lora-checkpointless-worker-0             0/1    running               0            36s
```

Si el ESTADO es PENDIENTE o, ejecuta el siguiente comando para obtener más detalles ContainerCreating

```
kubectl describe pod <name of pod>
```

Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

```
kubectl logs <name of pod>
```

El ESTADO pasará a Completado cuando ejecutes kubectl get pods

# Tutoriales - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3"></a>

Se requiere la siguiente secuencia de pasos para ejecutar recetas de entrenamiento sin puntos de control. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
+ Datos en uno de los siguientes formatos:
  + JSON
  + JSONGZ (JSON comprimido)
  + ARROW
+ [Elija una receta de entrenamiento sin puntos de control compatible para Llama 70B o GPT-OSS 120B de la fuente.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) [y conviértelo en un formato compatible con Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de usar Python superior o igual a 3.10 e inferior a 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl y eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Instala Helm](https://helm.sh/docs/intro/install/)

1. Conéctese con su clúster de Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale las dependencias siguiendo uno de estos métodos:

   1. Método 1: método de SageMaker HyperPod recetas:

      ```
      # install SageMaker HyperPod Recipes.
      git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
      cd sagemaker-hyperpod-recipes
      pip3 install -r requirements.txt
      ```

   1. Método 2: kubectl con el método job yaml predefinido

      ```
      # install SageMaker HyperPod checkpointless training.
      git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
      cd sagemaker-hyperpod-checkpointless-training
      ```

Ahora puedes lanzar la receta de entrenamiento sin puntos de control usando el lanzador style o usando kubectl. NeMo

## Método 1: inicia el trabajo de entrenamiento con el lanzador de recetas
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-recipes-launcher"></a>

Como alternativa, puedes usar las SageMaker HyperPod recetas para enviar tu trabajo de formación. El uso de las recetas implica actualizar k8s.yaml, config.yaml y ejecutar el script de lanzamiento.

1. Actualice `launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh`.

   Un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulte las notas de la versión de formación sobre [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).

   ```
   #!/bin/bash
   
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=training/llama/checkpointless_llama3_70b_pretrain \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.data.global_batch_size=16 \
       recipes.data.micro_batch_size=4 \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Lanzamiento del trabajo de entrenamiento

   ```
   bash launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh
   ```

1. Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

   ```
   kubectl get pods
   
   NAME                             READY   STATUS             RESTARTS        AGE
   llama-3-70b-worker-0             0/1    running               0            36s
   ```

1. Si el estado es PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más información

   ```
   kubectl describe pod <name of pod>
   ```

1. Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

   ```
   kubectl logs <name of pod>
   ```

   El ESTADO pasará a Completado cuando ejecutes kubectl get pods

## Método 2: inicia el trabajo de entrenamiento con kubectl con yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-kubectl"></a>

Otra opción es iniciar la formación a través de kubectl con un trabajo predefinido, yaml.

1. Actualizar el `examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml`
   + `image`: es un contenedor de aprendizaje profundo. [Para encontrar la versión más reciente del contenedor de formación de checkpointless, consulta las notas de la versión de formación de checkpointless.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html)
   + `resume.restore_config.path=<path_to_pretrained_weights>`[: La ruta para descargar modelos de pesas preentrenados en formato Nemo en el paso de requisitos previos.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs)
   + `dataset.dataset_path=<path_to_dataset>`: La ruta al conjunto de datos almacenado en el almacenamiento compartido

1. Envíe el trabajo mediante kubectl con `pretrain_llama3_70b_checkpointless_p5.yaml`

   ```
   kubectl apply -f examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml
   ```

1. Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

   ```
   kubectl get pods
   
   NAME                                             READY   STATUS             RESTARTS        AGE
   llama3-pretrain-checkpointless-worker-0             0/1    running               0            36s
   ```

1. Si el STATUS está en PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más detalles

   ```
   kubectl describe pod <name of pod>
   ```

1. Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

   ```
   kubectl logs <name of pod>
   ```

   El ESTADO pasará a Completado cuando ejecutes kubectl get pods

# Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora Llama 3 70b
<a name="sagemaker-eks-checkpointless-recipes-peft-llama"></a>

Se requiere la siguiente secuencia de pasos para ejecutar recetas de entrenamiento sin puntos de control. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
+ Datos en uno de los siguientes formatos:
  + JSON
  + JSONGZ (JSON comprimido)
  + ARROW
+ [Elija una receta de entrenamiento sin puntos de control compatible para Llama 70B o GPT-OSS 120B de la fuente.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) [y conviértelo en un formato compatible con Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de usar Python superior o igual a 3.10 e inferior a 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl y eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Instala Helm](https://helm.sh/docs/intro/install/)

1. Conéctese con su clúster de Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale las dependencias siguiendo uno de estos métodos:

   1. Método 1: método de SageMaker HyperPod recetas:

      ```
      # install SageMaker HyperPod Recipes.
      git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
      cd sagemaker-hyperpod-recipes
      pip3 install -r requirements.txt
      ```

   1. Método 2: kubectl con el método job yaml predefinido

      ```
      # install SageMaker HyperPod checkpointless training.
      git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
      cd sagemaker-hyperpod-checkpointless-training
      ```

Ahora puedes lanzar la receta de entrenamiento sin puntos de control usando el lanzador style o usando kubectl. NeMo

## Método 1: inicia el trabajo de entrenamiento con el lanzador de recetas
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-recipes-launcher"></a>

Como alternativa, puedes usar las SageMaker HyperPod recetas para enviar tu trabajo de formación. El uso de las recetas implica actualizar k8s.yaml, config.yaml y ejecutar el script de lanzamiento.

1. Actualice `launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh`.

   Un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulte las notas de la versión de formación sobre [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).

   ```
   #!/bin/bash
   
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=fine-tuning/llama/checkpointless_llama3_70b_lora \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Lanzamiento del trabajo de entrenamiento

   ```
   bash launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh
   ```

1. Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

   ```
   kubectl get pods
   
   NAME                             READY   STATUS             RESTARTS        AGE
   llama-3-70b-worker-0             0/1    running               0            36s
   ```

1. Si el estado es PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más información

   ```
   kubectl describe pod <name of pod>
   ```

1. Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

   ```
   kubectl logs <name of pod>
   ```

   El ESTADO pasará a Completado cuando ejecutes kubectl get pods

## Método 2: inicia el trabajo de entrenamiento con kubectl con yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-kubectl"></a>

Otra opción es iniciar la formación a través de kubectl con un trabajo predefinido, yaml.

1. Actualizar el `examples/llama3/launch/peft_llama3_70b_checkpointless_p5.yaml`
   + `image`: es un contenedor de aprendizaje profundo. [Para encontrar la versión más reciente del contenedor de formación de checkpointless, consulta las notas de la versión de formación de checkpointless.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html)
   + `resume.restore_config.path=<path_to_pretrained_weights>`[: La ruta para descargar modelos de pesas preentrenados en formato Nemo en el paso de requisitos previos.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs)
   + `dataset.dataset_path=<path_to_dataset>`: La ruta al conjunto de datos almacenado en el almacenamiento compartido

1. Envíe el trabajo mediante kubectl con `peft_llama3_70b_checkpointless_p5.yaml`

   ```
   kubectl apply -f examples/llama3/launch/peft_llama3_70b_checkpointless_p5.yaml
   ```

1. Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

   ```
   kubectl get pods
   
   NAME                                             READY   STATUS             RESTARTS        AGE
   llama3-70b-lora-checkpointless-worker-0             0/1    running               0            36s
   ```

1. Si el STATUS está en PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más detalles

   ```
   kubectl describe pod <name of pod>
   ```

1. Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

   ```
   kubectl logs <name of pod>
   ```

   El ESTADO pasará a Completado cuando ejecutes kubectl get pods

# Tutoriales: Amazon SageMaker HyperPod Checkpointless: preentrenamiento o ajuste de modelos personalizados
<a name="sagemaker-eks-checkpointless-recipes-custom"></a>

La siguiente secuencia de pasos es necesaria para realizar un entrenamiento sin puntos de control con su modelo personalizado activado. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-custom-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
+ Datos en uno de los siguientes formatos:
  + JSON
  + JSONGZ (JSON comprimido)
  + ARROW
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) y encubre el formato compatible con [Nemo](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face).
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-custom-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de usar Python superior o igual a 3.10 e inferior a 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl y eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. Conéctese con su clúster de Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Cómo instalar las dependencias

   ```
   # install SageMaker HyperPod checkpointless training.
   git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
   cd sagemaker-hyperpod-checkpointless-training
   ```

## Instrucciones de modificación del entrenamiento sin control
<a name="sagemaker-eks-checkpointless-recipes-custom-modification-instructions"></a>

Para adoptar gradualmente el entrenamiento sin puntos de control para modelos personalizados, sigue la guía de integración (aquí utilizamos el preentrenamiento de Llama 3 70b como ejemplo), que incluye:
+ Creación rápida de comunicadores
+ Cargador de datos mapeado en memoria (MMAP)
+ Recuperación en proceso y sin puntos de control

### Componente 1: Creación rápida de comunicadores
<a name="sagemaker-eks-checkpointless-recipes-custom-component1"></a>

Esto es para optimizar el tiempo necesario para establecer conexiones entre los trabajadores. No es necesario realizar cambios en el código y solo es necesario configurar las variables de entorno

```
  # Enable Rootless features
  export HPCT_USE_ROOTLESS=1 && \
  sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \

  hyperpodrun --nproc_per_node=8 \
              ...
              --inprocess-restart \
              ...
```

El cambio completo se encuentra en la configuración del trabajo de [lanzamiento previo al entrenamiento de llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml).

### Componente 2: Cargador de datos mapeado en memoria (MMAP)
<a name="sagemaker-eks-checkpointless-recipes-custom-component2"></a>

El MMAP se almacena en caché para almacenar muestras de datos precargadas y permitir el inicio inmediato del entrenamiento sin necesidad de esperar a que se preprocesen los datos. Requiere cambios mínimos en el código para adaptarlo al cargador de datos existente.

```
data_module = MMAPDataModule(
  data_module=base_data_module,
  mmap_config=CacheResumeMMAPConfig(cache_dir=…)
)
```

### Componentes 3 y 4: Recuperación en proceso y sin puntos de control
<a name="sagemaker-eks-checkpointless-recipes-custom-components3-4"></a>

Esto permite la recuperación de fallos sin tener que reiniciar los procesos de formación ni cargar desde los puntos de control. Se necesitan cambios adicionales en el código (actualización de la configuración de estrategia y entrenamiento, actualización del código principal existente)

```
@HPWrapper(
  health_check=CudaHealthCheck(),
  hp_api_factory=HPAgentK8sAPIFactory(),
  abort_timeout=60.0,
...)
def run_main(
  cfg,
  caller: Optional[HPCallWrapper] = None):
...


CheckpointlessMegatronStrategy(
  **self.cfg.strategy,
  ddp=self.ddp,
)
```

El cambio completo se encuentra en el [script de entrada previo al entrenamiento de llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/llama3_70b_pretrain_checkpointless.py) y el cambio de configuración de entrenamiento correspondiente se encuentra en la configuración de entrenamiento de [llama3 70b](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/config/llama3_70b_peft_checkpointless.yaml).

### Inicie el entrenamiento
<a name="sagemaker-eks-checkpointless-recipes-custom-launch"></a>

Ahora puedes iniciar el entrenamiento sin puntos de control con kubectl.

```
kubectl apply -f your_job_config.yaml
```

# HyperPod funciones de entrenamiento sin puntos de control
<a name="sagemaker-eks-checkpointless-features"></a>

Consulte las páginas siguientes para obtener información sobre las funciones de formación de la formación sin puntos de control.

**Topics**
+ [Repositorios de formación SageMaker HyperPod sin control de Amazon](#sagemaker-eks-checkpointless-repositories)
+ [Mejoras en la inicialización de la comunicación colectiva](sagemaker-eks-checkpointless-features-communication.md)
+ [Cargador de datos mapeado en memoria](sagemaker-eks-checkpointless-features-mmap.md)
+ [Recuperación durante el proceso y formación sin puntos de control](sagemaker-eks-checkpointless-in-process-recovery.md)

## Repositorios de formación SageMaker HyperPod sin control de Amazon
<a name="sagemaker-eks-checkpointless-repositories"></a>

 HyperPod La [formación sin control](https://github.com/aws/sagemaker-hyperpod-checkpointless-training#) acelera la recuperación de los fallos de los clústeres en entornos de formación distribuidos a gran escala mediante optimizaciones a nivel de marco. Estas optimizaciones se proporcionan a través de una imagen de contenedor base que incluye mejoras mejoradas en la inicialización de la NCCL, optimizaciones de carga de datos y componentes de recuperación en proceso y sin puntos de control. El paquete de formación sin HyperPod puntos de control se basa en esta base.

El entrenamiento sin control se puede realizar mediante tres pistas de optimización que se ejecutan de forma simultánea:
+ **Mejoras en la inicialización de la comunicación (NCCL y Gloo)**: Elimine los cuellos de botella en la comunicación mediante la descentralización de la información de clasificación entre pares y anillos (recuadro rojo a continuación).
+ **Optimizaciones de carga de datos**: reduzca el tiempo necesario para entregar el primer lote de datos durante las operaciones de reinicio (recuadros naranjas a continuación).
+ **Reducción de la sobrecarga de reinicio del programa**: minimice los costos de reinicio y permita el reabastecimiento sin puntos de control mediante la recuperación de procesos en los nodos en buen estado (recuadros azules y verdes a continuación).

![\[alt text not found\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-optimization-tracks.png)


# Mejoras en la inicialización de la comunicación colectiva
<a name="sagemaker-eks-checkpointless-features-communication"></a>

NCCL y Gloo son bibliotecas de comunicación fundamentales que permiten las operaciones colectivas (como la reducción total y la transmisión) en todos los procesos de formación distribuidos. Sin embargo, la inicialización tradicional de NCCL y Gloo puede crear cuellos de botella durante la recuperación de errores.

El proceso de recuperación estándar requiere que todos los procesos se conecten a un proceso centralizado TCPStore y se coordinen a través de un proceso raíz, lo que supone una costosa sobrecarga que se vuelve especialmente problemática durante los reinicios. Este diseño centralizado genera tres problemas críticos: la sobrecarga de coordinación debido a TCPStore las conexiones obligatorias, los retrasos en la recuperación, ya que cada reinicio debe repetir toda la secuencia de inicialización, y un único punto de fallo en el propio proceso raíz. Esto impone unos pasos de coordinación costosos y centralizados cada vez que se inicia o se reinicia el entrenamiento.

HyperPod La formación sin control elimina estos obstáculos en la coordinación, lo que permite una recuperación más rápida en caso de averías, al hacer que la inicialización sea «desarraigada» y «». TCPStoreless

## Configuraciones sin raíz
<a name="sagemaker-eks-checkpointless-features-communication-rootless-config"></a>

Para habilitar Rootless, basta con exponer las siguientes variables de entorno.

```
export HPCT_USE_ROOTLESS=1 && \
sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \
```

HPCT\$1USE\$1ROOTLESS: 0 ó 1. Se usa para activar y desactivar rootless

sysctl -w net.ipv4.ip\$1local\$1port\$1range="20000 65535": establece el rango de puertos del sistema

Consulte el [ejemplo para habilitar Rootless](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml#L111-L113).

## Rootless
<a name="sagemaker-eks-checkpointless-features-communication-rootless"></a>

HyperPod El entrenamiento sin puntos de control ofrece métodos de inicialización novedosos, como Rootless y TCPStoreless, para los grupos de procesos de NCCL y Gloo.

La implementación de estas optimizaciones implica modificar NCCL, Gloo y: PyTorch
+ Ampliar la biblioteca de terceros APIs para permitir las optimizaciones de NCCL y Gloo con Rootless y Storeless y, al mismo tiempo, mantener la compatibilidad con versiones anteriores
+ Actualización de los backends de los grupos de procesos para utilizar rutas optimizadas de forma condicional y gestionar los problemas de recuperación durante el proceso
+ Evita TCPStore la costosa creación en la capa PyTorch distribuida y, al mismo tiempo, mantiene patrones de direcciones simétricos mediante contadores de grupos globales

El siguiente gráfico muestra la arquitectura de las bibliotecas de formación distribuidas y los cambios realizados en la formación sin puntos de control.

![\[El siguiente gráfico muestra la arquitectura de las bibliotecas de formación distribuidas y los cambios realizados en la formación sin puntos de control.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-training-libraries.png)


### NCCL y Gloo
<a name="sagemaker-eks-checkpointless-features-communication-nccl-gloo"></a>

Se trata de paquetes independientes que desempeñan la funcionalidad principal de las comunicaciones colectivas. Proporcionan la clave APIs, como el ncclCommInit rango, para inicializar las redes de comunicación, administrar los recursos subyacentes y realizar comunicaciones colectivas. Tras realizar cambios personalizados en NCCL y Gloo, Rootless y Storeless optimizan la inicialización de la red de comunicación (por ejemplo, evitan conectarse a ella). TCPStore Puede cambiar entre utilizar las rutas de código originales o las rutas de código optimizadas de forma flexible.

### PyTorch backend del grupo de procesos
<a name="sagemaker-eks-checkpointless-features-communication-pytorch"></a>

Los backends del grupo de procesos, específicamente ProcessGroup NCCL ProcessGroupGloo, los implementan ProcessGroup APIs invocando sus bibliotecas subyacentes correspondientes APIs . Dado que ampliamos las bibliotecas de terceros APIs, debemos invocarlas correctamente y realizar cambios en la ruta del código en función de las configuraciones de los clientes.

Además de optimizar las rutas de código, también cambiamos el backend del grupo de procesos para facilitar la recuperación durante el proceso.

# Cargador de datos mapeado en memoria
<a name="sagemaker-eks-checkpointless-features-mmap"></a>

Otra sobrecarga de reinicio se debe a la carga de datos: el clúster de entrenamiento permanece inactivo mientras el cargador de datos se inicializa, descarga datos de sistemas de archivos remotos y los procesa en lotes.

Para solucionar este problema, presentamos el cargador de datos con mapas de memoria DataLoader (MMAP), que almacena en caché los lotes precargados en la memoria persistente, lo que garantiza que permanezcan disponibles incluso después de un reinicio provocado por un error. Este enfoque elimina el tiempo de configuración del cargador de datos y permite reanudar inmediatamente el entrenamiento utilizando lotes en caché, mientras que el cargador de datos se reinicializa simultáneamente y recupera los datos subsiguientes en segundo plano. La caché de datos se encuentra en cada rango que requiere datos de entrenamiento y mantiene dos tipos de lotes: los lotes consumidos recientemente que se han utilizado para el entrenamiento y los lotes precargados listos para su uso inmediato.

![\[Esta imagen muestra el cargador de datos MMAP, las cachés y los lotes consumidos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-mmap-dataloader.png)


El cargador de datos MMAP ofrece las dos funciones siguientes:
+ **Obtención previa de datos: recupera y almacena** en caché de forma proactiva los datos generados por el cargador de datos
+ Almacenamiento en **caché persistente**: almacena los lotes consumidos y precargados en un sistema de archivos temporal que sobrevive a los reinicios del proceso

Al utilizar la memoria caché, el trabajo de formación se beneficiará de:
+ **Menor consumo de memoria**: aprovecha la memoria mapeada I/O para mantener una única copia compartida de los datos en la memoria de la CPU del host, lo que elimina las copias redundantes en los procesos de la GPU (por ejemplo, reduce de 8 copias a 1 en una instancia p5 con 8) GPUs
+ **Recuperación más rápida**: reduce el tiempo medio de reinicio (MTTR) al permitir que la formación se reanude inmediatamente a partir de los lotes almacenados en caché, lo que elimina la espera de que se reinicialice el cargador de datos y se genere el primer lote

## Configuraciones MMAP
<a name="sagemaker-eks-checkpointless-features-communication-mmap-config"></a>

Para usar MMAP, simplemente pase el módulo de datos original a `MMAPDataModule`

```
data_module=MMAPDataModule(
    data_module=MY_DATA_MODULE(...),
    mmap_config=CacheResumeMMAPConfig(
        cache_dir=self.cfg.mmap.cache_dir,
        checkpoint_frequency=self.cfg.mmap.checkpoint_frequency),
)
```

`CacheResumeMMAPConfig`: Los parámetros del cargador de datos MMAP controlan la ubicación del directorio de la memoria caché, los límites de tamaño y la delegación de captura de datos. De forma predeterminada, solo el TP de rango 0 por nodo recupera los datos de la fuente, mientras que los demás clasificados en el mismo grupo de replicación de datos leen desde la caché compartida, lo que elimina las transferencias redundantes.

`MMAPDataModule`: Envuelve el módulo de datos original y devuelve el cargador de datos mmap para su procesamiento y validación.

Consulte [el ejemplo](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/gpt_oss/gpt_oss_120b_full_finetune_checkpointless.py#L101-L109) para habilitar MMAP.

## Referencia de la API
<a name="sagemaker-eks-checkpointless-mmap-reference"></a>

### CacheResumeMMAPConfig
<a name="sagemaker-eks-checkpointless-mmap-reference-cacheresume"></a>

```
class hyperpod_checkpointless_training.dataloader.config.CacheResumeMMAPConfig(
  cache_dir='/dev/shm/pdl_cache',
  prefetch_length=10,
  val_prefetch_length=10,
  lookback_length=2,
  checkpoint_frequency=None,
  model_parallel_group=None,
  enable_batch_encryption=False)
```

Clase de configuración para la funcionalidad del cargador de datos mapeado en memoria caché (MMAP) en un entrenamiento sin puntos de control. HyperPod 

Esta configuración permite una carga de datos eficiente con capacidades de almacenamiento en caché y recuperación previa, lo que permite reanudar el entrenamiento rápidamente después de los fallos al mantener los lotes de datos en caché en archivos mapeados en memoria.

**Parámetros**
+ **cache\$1dir** (str, opcional): ruta de directorio para almacenar lotes de datos en caché. Predeterminado: «/\$1cache» dev/shm/pdl
+ **prefetch\$1length** (int, opcional): número de lotes que se deben recuperar previamente durante el entrenamiento. Valor predeterminado: 10
+ **val\$1prefetch\$1length** (int, opcional): número de lotes que se van a recuperar previamente durante la validación. Valor predeterminado: 10
+ **lookback\$1length** (int, opcional): número de lotes utilizados anteriormente que se deben guardar en la caché para su posible reutilización. Valor predeterminado: 2
+ **checkpoint\$1frequency (int, opcional): frecuencia de** los pasos de los puntos de control del modelo. Se utiliza para optimizar el rendimiento de la memoria caché. Valor predeterminado: none
+ **model\$1parallel\$1group (objeto, opcional): grupo** de procesos para el paralelismo de modelos. Si es Ninguno, se creará automáticamente. Valor predeterminado: none
+ **enable\$1batch\$1encryption** (bool, opcional): indica si se debe habilitar el cifrado de los datos por lotes almacenados en caché. Valor predeterminado: False

**Métodos**

```
create(dataloader_init_callable,
    parallel_state_util,
   step,
    is_data_loading_rank,
   create_model_parallel_group_callable,
    name='Train',
   is_val=False,
   cached_len=0)
```

Crea y devuelve una instancia de cargador de datos MMAP configurada.

**Parámetros**
+ **dataloader\$1init\$1callable (Callable**): función para inicializar el cargador de datos subyacente
+ **parallel\$1state\$1util** (object): utilidad para administrar el estado paralelo en todos los procesos
+ **step** (int): el paso de datos desde el que continuar durante el entrenamiento
+ **is\$1data\$1loading\$1rank** (Callable): función que devuelve True si el rango actual debe cargar datos
+ **create\$1model\$1parallel\$1group\$1callable (Callable**): función para crear un modelo de grupo de procesos paralelos
+ name (str, opcional)**: identificador de nombre** para el cargador de datos. Predeterminado: «Tren»
+ **is\$1val** (bool, opcional): indica si se trata de un cargador de datos de validación. Valor predeterminado: False
+ **cached\$1len** (int, opcional): longitud de los datos en caché si se reanudan desde la caché existente. Predeterminado: 0

Devuelve `CacheResumePrefetchedDataLoader` o`CacheResumeReadDataLoader`: instancia de cargador de datos MMAP configurada

Se genera `ValueError` si el parámetro de paso es. `None`

**Ejemplo**

```
from hyperpod_checkpointless_training.dataloader.config import CacheResumeMMAPConfig

# Create configuration
config = CacheResumeMMAPConfig(
    cache_dir="/tmp/training_cache",
    prefetch_length=20,
    checkpoint_frequency=100,
    enable_batch_encryption=False
)

# Create dataloader
dataloader = config.create(
    dataloader_init_callable=my_dataloader_init,
    parallel_state_util=parallel_util,
    step=current_step,
    is_data_loading_rank=lambda: rank == 0,
    create_model_parallel_group_callable=create_mp_group,
    name="TrainingData"
)
```

**Notas**
+ El directorio de caché debe tener suficiente espacio y un I/O rendimiento rápido (por ejemplo, /dev/shm para el almacenamiento en memoria).
+ La configuración `checkpoint_frequency` mejora el rendimiento de la caché al alinear la administración de la caché con los puntos de control del modelo
+ Para los dataloaders de validación (`is_val=True`), el paso se restablece en 0 y se fuerza el arranque en frío
+ Se utilizan diferentes implementaciones de cargadores de datos en función de si el rango actual es responsable de la carga de datos

### MMAPDataMódulo
<a name="sagemaker-eks-checkpointless-mmap-reference-mmapdatamodule"></a>

```
class hyperpod_checkpointless_training.dataloader.mmap_data_module.MMAPDataModule(  
    data_module,  
    mmap_config,  
    parallel_state_util=MegatronParallelStateUtil(),  
    is_data_loading_rank=None)
```

Un DataModule contenedor PyTorch Lightning que aplica las capacidades de carga de datos mapeados en memoria (MMAP) a las existentes para un entrenamiento sin puntos de control. DataModules 

Esta clase combina un PyTorch Lightning existente DataModule y lo mejora con la funcionalidad MMAP, lo que permite un almacenamiento eficiente de los datos en caché y una recuperación rápida en caso de errores de entrenamiento. Mantiene la compatibilidad con la DataModule interfaz original y, al mismo tiempo, añade capacidades de entrenamiento sin puntos de control.

Parameters

data\$1module (pl. LightningDataModule)  
El subyacente DataModule a envolver (por ejemplo, el LLMData módulo)

mmap\$1config () MMAPConfig  
El objeto de configuración de MMAP que define el comportamiento y los parámetros del almacenamiento en caché

`parallel_state_util`(MegatronParallelStateUtil, opcional)  
Utilidad para gestionar el estado paralelo en los procesos distribuidos. Predeterminado: MegatronParallelStateUtil ()

`is_data_loading_rank`(Se puede llamar, opcional)  
Función que devuelve True si el rango actual debe cargar datos. Si es None, el valor predeterminado es parallel\$1state\$1util.is\$1tp\$10. Valor predeterminado: none

**Atributos**

`global_step` (int)  
Paso de formación global actual, que se utiliza para reanudar el entrenamiento desde los puntos de control

`cached_train_dl_len` (int)  
Longitud almacenada en caché del cargador de datos de entrenamiento

`cached_val_dl_len` (int)  
Longitud en caché del cargador de datos de validación

**Métodos**

```
setup(stage=None)
```

Configure el módulo de datos subyacente para la etapa de entrenamiento especificada.

`stage`(str, opcional)  
Etapa del entrenamiento («ajustar», «validar», «probar» o «predecir»). Valor predeterminado: none

```
train_dataloader()
```

Cree el entrenamiento DataLoader con el empaquetado MMAP.

*Devoluciones:* DataLoader — Entrenamiento empaquetado en MMAP DataLoader con capacidades de almacenamiento en caché y precarga

```
val_dataloader()
```

Cree la validación con el empaquetado MMAP. DataLoader 

*Devuelve: DataLoader — Validación* empaquetada en MMAP con capacidades de almacenamiento en caché DataLoader 

```
test_dataloader()
```

Cree la prueba DataLoader si el módulo de datos subyacente la admite.

*Devuelve:* DataLoader o Ninguno: prueba DataLoader desde el módulo de datos subyacente, o Ninguno si no se admite

```
predict_dataloader()
```

Cree la predicción DataLoader si el módulo de datos subyacente la admite.

*Devuelve:* DataLoader o ninguno: predice DataLoader a partir del módulo de datos subyacente, o ninguno si no se admite

```
load_checkpoint(checkpoint)
```

Carga la información de los puntos de control para reanudar el entrenamiento a partir de un paso específico.

punto de control (dict)  
Diccionario de puntos de control que contiene la clave 'global\$1step'

```
get_underlying_data_module()
```

Obtenga el módulo de datos empaquetado subyacente.

*Devoluciones:* pl. LightningDataModule — El módulo de datos original que estaba empaquetado

```
state_dict()
```

Obtenga el diccionario de estados del MMAP DataModule para los puntos de control.

*Devuelve:* dict — Diccionario que contiene las longitudes de los cargadores de datos en caché

```
load_state_dict(state_dict)
```

Cargue el diccionario de estados para restaurar el estado del MMAP. DataModule 

`state_dict`(dictado)  
Diccionario estatal para cargar

**Propiedades**

```
data_sampler
```

Exponga el muestreador de datos del módulo de datos subyacente al NeMo marco.

*Devuelve:* objeto o ninguno: el muestreador de datos del módulo de datos subyacente

**Ejemplo**

```
from hyperpod_checkpointless_training.dataloader.mmap_data_module import MMAPDataModule  
from hyperpod_checkpointless_training.dataloader.config import CacheResumeMMAPConfig  
from my_project import MyLLMDataModule  

# Create MMAP configuration  
mmap_config = CacheResumeMMAPConfig(  
    cache_dir="/tmp/training_cache",  
    prefetch_length=20,  
    checkpoint_frequency=100  
)  

# Create original data module  
original_data_module = MyLLMDataModule(  
    data_path="/path/to/data",  
    batch_size=32  
)  

# Wrap with MMAP capabilities  
mmap_data_module = MMAPDataModule(  
    data_module=original_data_module,  
    mmap_config=mmap_config  
)  

# Use in PyTorch Lightning Trainer  
trainer = pl.Trainer()  
trainer.fit(model, data=mmap_data_module)  

# Resume from checkpoint  
checkpoint = {"global_step": 1000}  
mmap_data_module.load_checkpoint(checkpoint)
```

**Notas**
+ El contenedor delega la mayor parte del acceso a los atributos al módulo de datos subyacente mediante \$1\$1getattr\$1\$1
+ Solo los rangos de carga de datos realmente inicializan y usan el módulo de datos subyacente; otros rangos usan cargadores de datos falsos
+ Las longitudes de los cargadores de datos en caché se mantienen para optimizar el rendimiento durante la reanudación del entrenamiento

# Recuperación durante el proceso y formación sin puntos de control
<a name="sagemaker-eks-checkpointless-in-process-recovery"></a>

HyperPod La formación sin puntos de control utiliza la redundancia de modelos para permitir una formación tolerante a fallos. El principio fundamental es que los estados del modelo y del optimizador se replican completamente en varios grupos de nodos, y las actualizaciones de peso y los cambios de estado del optimizador se replican de forma sincrónica dentro de cada grupo. Cuando se produce un error, las réplicas en buen estado completan sus pasos de optimización y transmiten los estados actualizados a las réplicas en recuperación. model/optimizer 

Este modelo de enfoque basado en la redundancia permite varios mecanismos de gestión de errores:
+ **Recuperación durante el proceso:** los procesos permanecen activos a pesar de las fallas y mantienen todos los estados del modelo y del optimizador en la memoria de la GPU con los valores más recientes
+ **Gestión eficiente de las interrupciones: cancelaciones** controladas y limpieza de recursos para las operaciones afectadas
+ **Reejecución de bloques de código: se vuelven** a ejecutar solo los segmentos de código afectados dentro de un bloque de código reejecutable (RCB)
+ **Recuperación sin problemas y sin pérdida del progreso del entrenamiento: dado que los procesos persisten y los estados permanecen en la memoria, no se pierde ningún progreso del entrenamiento; cuando ocurre un error, el entrenamiento se reanuda desde el paso anterior, en lugar de reanudarse desde el último punto de control** guardado

**Configuraciones sin puntos de control**

Este es el fragmento principal del entrenamiento sin puntos de control.

```
from hyperpod_checkpointless_training.inprocess.train_utils import wait_rank
    wait_rank()
      
def main():
    @HPWrapper(
        health_check=CudaHealthCheck(),
        hp_api_factory=HPAgentK8sAPIFactory(),
        abort_timeout=60.0,
        checkpoint_manager=PEFTCheckpointManager(enable_offload=True),
        abort=CheckpointlessAbortManager.get_default_checkpointless_abort(),
        finalize=CheckpointlessFinalizeCleanup(),
    )
    def run_main(cfg, caller: Optional[HPCallWrapper] = None):
        ...
        trainer = Trainer(
            strategy=CheckpointlessMegatronStrategy(...,
                num_distributed_optimizer_instances=2),
            callbacks=[..., CheckpointlessCallback(...)],
            )
        trainer.fresume = resume
        trainer._checkpoint_connector = CheckpointlessCompatibleConnector(trainer)
        trainer.wrapper = caller
```
+ `wait_rank`: Todos los rangos esperarán la información de clasificación de la infraestructura. HyperpodTrainingOperator 
+ `HPWrapper`: contenedor de funciones de Python que permite reiniciar un bloque de código reejecutable (RCB). La implementación usa un administrador de contexto en lugar de un decorador de Python porque los decoradores no pueden determinar el número de elementos RCBs a monitorear en tiempo de ejecución.
+ `CudaHealthCheck`: Garantiza que el contexto CUDA del proceso actual se encuentre en buen estado mediante la sincronización con la GPU. Utiliza el dispositivo especificado por la variable de entorno LOCAL\$1RANK o, de forma predeterminada, es el dispositivo CUDA del hilo principal si LOCAL\$1RANK no está configurado.
+ `HPAgentK8sAPIFactory`: Esta API permite realizar un entrenamiento sin puntos de control para consultar el estado del entrenamiento de otros pods del clúster de entrenamiento de Kubernetes. También proporciona una barrera a nivel de infraestructura que garantiza que todos los rangos completen correctamente las operaciones de abortación y reinicio antes de continuar.
+ `CheckpointManager`: Gestiona los puntos de control y la recuperación en memoria para lograr una tolerancia a los fallos sin puntos de control. peer-to-peer Tiene las siguientes responsabilidades principales:
  + **Administración de puntos de control en memoria**: guarda y administra los puntos de control del NeMo modelo en la memoria para una recuperación rápida sin necesidad de disco en situaciones de recuperación sin puntos I/O de control.
  + **Validación de la viabilidad de la recuperación**: determina si es posible realizar una recuperación sin puntos de control mediante la validación de la coherencia global de los pasos, el estado de las clasificaciones y la integridad del estado del modelo.
  + Peer-to-Peer Organización de **la recuperación: coordina la transferencia de puntos de control entre los rangos en buen estado** y los que no funcionan mediante una comunicación distribuida para una recuperación rápida.
  + **Gestión del estado de RNG**: conserva y restaura los estados de los generadores de números aleatorios en Python, NumPy PyTorch, y Megatron para una recuperación determinista.
  + **[Opcional] Descarga del punto de control: descarga** el punto de control de la memoria a la CPU si la GPU no tiene suficiente capacidad de memoria.
+ `PEFTCheckpointManager`: Se amplía `CheckpointManager` manteniendo los pesos del modelo base para ajustar el PEFT.
+ `CheckpointlessAbortManager`: gestiona las operaciones de anulación en un subproceso en segundo plano cuando se produce un error. De forma predeterminada, anula TransformerEngine, Checkpoints y TorchDistributed. DataLoader Los usuarios pueden registrar controladores de cancelación personalizados según sea necesario. Una vez finalizada la interrupción, todas las comunicaciones deben cesar y todos los procesos e hilos deben terminar para evitar la pérdida de recursos.
+ `CheckpointlessFinalizeCleanup`: gestiona las operaciones de limpieza final en el subproceso principal para los componentes que no pueden abortarse o limpiarse de forma segura en el subproceso de fondo.
+ `CheckpointlessMegatronStrategy`: Esto se hereda de Nemo`MegatronStrategy`. Tenga en cuenta que el entrenamiento sin puntos de control debe ser de al menos 2 personas `num_distributed_optimizer_instances` para que la replicación sea optimizada. La estrategia también se ocupa del registro de los atributos esenciales y de la inicialización de los grupos de procesos, por ejemplo, sin root.
+ `CheckpointlessCallback`: Lightning Callback, que integra la NeMo formación con el sistema de tolerancia a fallos de Checkpointless Training. Tiene las siguientes responsabilidades principales:
  + **Gestión del ciclo de vida de las etapas** de formación: realiza un seguimiento del progreso de la formación y coordina con ParameterUpdateLock ella una recuperación enable/disable sin puntos de control en función del estado de la formación (primer paso o pasos posteriores).
  + **Coordinación del estado de los puntos de control**: gestiona el almacenamiento y la restauración de los puntos de control del modelo base PEFT en memoria.
+ `CheckpointlessCompatibleConnector`: Un PTL `CheckpointConnector` que intenta cargar previamente el archivo del punto de control en la memoria, con la ruta de origen determinada en esta prioridad:
  + pruebe la recuperación sin puntos de control
  + si checkpointless devuelve None, recurra a parent.resume\$1start ()

Consulta [el ejemplo para añadir funciones de entrenamiento sin puntos de control a los códigos](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/gpt_oss/gpt_oss_120b_full_finetune.py).

**Conceptos**

Esta sección presenta los conceptos de entrenamiento sin puntos de control. La formación de Checkpointless en Amazon SageMaker HyperPod apoya la recuperación durante el proceso. Esta interfaz API sigue un formato similar al. NVRx APIs

**Concepto: bloque de código reejecutable (RCB)**

Cuando se produce un error, los procesos en buen estado permanecen activos, pero se debe volver a ejecutar una parte del código para recuperar los estados de entrenamiento y las pilas de Python. Un bloque de código reejecutable (RCB) es un segmento de código específico que se vuelve a ejecutar durante la recuperación de un error. En el siguiente ejemplo, el RCB abarca todo el guion de entrenamiento (es decir, todo lo que aparece debajo de main ()), lo que significa que cada recuperación ante un fallo reinicia el guion de entrenamiento y, al mismo tiempo, conserva el modelo en memoria y los estados del optimizador.

**Concepto: control de fallos**

Un módulo controlador de fallas recibe notificaciones cuando se producen fallas durante un entrenamiento sin puntos de control. Este controlador de fallas incluye los siguientes componentes:
+ **Módulo de detección de fallas:** recibe notificaciones de fallas en la infraestructura
+ **Definición de RCB APIs:** permite a los usuarios definir el bloque de códigos reejecutable (RCB) en su código
+ **Módulo de reinicio:** finaliza el RCB, limpia los recursos y reinicia el RCB

![\[Esta imagen ilustra cómo un módulo controlador de fallas recibe notificaciones cuando se produce una falla durante un entrenamiento sin puntos de control.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-fault-controller-module.png)


**Concepto: modelo de redundancia**

El entrenamiento de modelos grandes generalmente requiere un tamaño paralelo de datos lo suficientemente grande como para entrenar modelos de manera eficiente. En el paralelismo de datos tradicional, como el PyTorch DDP y el Horovod, el modelo se replica completamente. Las técnicas de paralelismo de datos fragmentados más avanzadas, como el optimizador ZeRO y el FSDP DeepSpeed , también admiten el modo de fragmentación híbrida, que permite fragmentar los estados del grupo de fragmentación y replicarlos completamente entre los grupos de replicación. model/optimizer NeMo también tiene esta función de fragmentación híbrida mediante un argumento num\$1distributed\$1optimizer\$1instances, que permite la redundancia.

Sin embargo, añadir redundancia indica que el modelo no estará completamente fragmentado en todo el clúster, lo que se traducirá en un mayor uso de la memoria del dispositivo. La cantidad de memoria redundante variará en función de las técnicas específicas de fragmentación del modelo implementadas por el usuario. Los pesos, los gradientes y la memoria de activación del modelo de baja precisión no se verán afectados, ya que se fragmentan mediante el paralelismo del modelo. Los estados del optimizador y del modelo weights/gradients maestro de alta precisión se verán afectados. La adición de una réplica de modelo redundante aumenta el uso de memoria del dispositivo aproximadamente el equivalente al tamaño de un punto de control de DCP.

La fragmentación híbrida divide los colectivos de todos los grupos de DP en colectivos relativamente más pequeños. Anteriormente, había una dispersión reducida y una dispersión total en todo el grupo de DP. Tras la fragmentación híbrida, la dispersión reducida solo se ejecutará dentro de cada réplica del modelo y habrá una reducción total en todos los grupos de réplicas del modelo. La función «all-gather» también se ejecuta dentro de cada réplica del modelo. Como resultado, todo el volumen de comunicación permanece prácticamente sin cambios, pero los colectivos funcionan con grupos más pequeños, por lo que esperamos una mejor latencia.

**Concepto: tipos de errores y reinicios**

La siguiente tabla registra los diferentes tipos de errores y los mecanismos de recuperación asociados. El entrenamiento sin control intenta primero la recuperación de los errores mediante una recuperación en proceso, seguida de un reinicio a nivel del proceso. Solo se recurre a un reinicio a nivel de trabajo en caso de una falla catastrófica (por ejemplo, si varios nodos fallan al mismo tiempo).


| Tipo de fallo | Causa | Tipo de recuperación | Mecanismo de recuperación | 
| --- | --- | --- | --- | 
| Fallo en proceso | Errores a nivel de código, excepciones | Recuperación en proceso (IPR) | Vuelva a ejecutar RCB dentro del proceso existente; los procesos en buen estado permanecen activos | 
| Fallo al reiniciar el proceso | Contexto CUDA dañado, proceso finalizado | Reinicio a nivel de proceso (PLR) | SageMaker HyperPod el operador de entrenamiento reinicia los procesos; omite el reinicio del módulo K8 | 
| Fallo al reemplazar el nodo | Fallo node/GPU de hardware permanente | Reinicio a nivel de trabajo (JLR) | Reemplace el nodo fallido; reinicie todo el trabajo de entrenamiento | 

**Concepto: protección de bloqueo atómico para optimizar el paso**

La ejecución del modelo se divide en tres fases: propagación hacia adelante, propagación hacia atrás y paso de optimización. El comportamiento de recuperación varía en función del momento de la falla:
+ **Propagación hacia delante o hacia atrás:** retroceda hasta el principio del paso de entrenamiento actual y transmita los estados del modelo a los nodos de reemplazo
+ **Paso de optimización:** permita que las réplicas en buen estado completen el paso con protección mediante bloqueo y, a continuación, transmita los estados actualizados del modelo a los nodos de reemplazo

Esta estrategia garantiza que las actualizaciones completadas del optimizador nunca se descarten, lo que ayuda a reducir el tiempo de recuperación ante fallos.

![\[Esta imagen ilustra cómo se gestiona el fallo en función de si se produce antes o después del fallo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-optimizer.png)


## Diagrama de flujo de entrenamiento sin puntos de control
<a name="sagemaker-eks-checkpointless-training-flow"></a>

![\[Este diagrama ilustra el flujo de entrenamiento sin puntos de control.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-training-flow.png)


Los siguientes pasos describen el proceso de detección de fallas y recuperación sin puntos de control:

1. Comienza el ciclo de entrenamiento

1. Se produce una falla

1. Evalúe la viabilidad de un currículum sin puntos de control

1. Compruebe si es posible hacer un currículum sin puntos de control
   + Si es posible, intente reanudar sin puntos de control
     + Si la reanudación falla, recurra al punto de control para cargar desde el almacenamiento
     + Si la reanudación se realiza correctamente, el entrenamiento continúa desde el estado recuperado
   + Si no es posible, recurra al punto de control para cargar desde el almacén

1. Limpie los recursos: cancele todos los grupos de procesos y los backends y libere recursos para prepararlos para el reinicio.

1. Reanudar el ciclo de entrenamiento: comienza un nuevo ciclo de entrenamiento y el proceso vuelve al paso 1.

## Referencia de la API
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference"></a>

### wait\$1rank
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-wait_rank"></a>

```
hyperpod_checkpointless_training.inprocess.train_utils.wait_rank()
```

Espera y recupera la información de clasificación y, a continuación HyperPod, actualiza el entorno de proceso actual con variables de entrenamiento distribuidas.

Esta función obtiene la asignación de rangos y las variables de entorno correctas para el entrenamiento distribuido. Garantiza que cada proceso tenga la configuración adecuada para su función en el trabajo de formación distribuido.

**Parámetros**

Ninguno

**Devuelve**

**Ninguna**

**Comportamiento**
+ **Verificación del proceso**: omite la ejecución si se llama desde un subproceso (solo se ejecuta en él) MainProcess
+ **Recuperación del entorno**: obtiene la información actual `RANK` y `WORLD_SIZE` procedente de las variables de entorno
+ **HyperPod Comunicación**: llamadas `hyperpod_wait_rank_info()` para recuperar información de clasificación de HyperPod
+ **Actualización del entorno**: actualiza el entorno de proceso actual con las variables de entorno específicas del trabajador recibidas de HyperPod

**Variables de entorno**

La función lee las siguientes variables de entorno:
+ **RANK** (*int*): rango del proceso actual (predeterminado: -1 si no está establecido)
+ **WORLD\$1SIZE** *(int*): número total de procesos del trabajo distribuido (predeterminado: 0 si no está establecido)

**Aumenta**
+ **AssertionError**— Si la respuesta de no HyperPod tiene el formato esperado o si faltan los campos obligatorios

**Ejemplo**

```
from hyperpod_checkpointless_training.inprocess.train_utils import wait_rank  

# Call before initializing distributed training  
wait_rank()  

# Now environment variables are properly set for this rank  
import torch.distributed as dist  
dist.init_process_group(backend='nccl')
```

**Notas**
+ Solo se ejecuta en el proceso principal; las llamadas al subproceso se omiten automáticamente
+ La función se bloquea hasta que HyperPod proporcione la información de clasificación

### HPWrapper
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-HPWrapper"></a>

```
class hyperpod_checkpointless_training.inprocess.wrap.HPWrapper(  
    *,  
    abort=Compose(HPAbortTorchDistributed()),  
    finalize=None,  
    health_check=None,  
    hp_api_factory=None,  
    abort_timeout=None,  
    enabled=True,  
    trace_file_path=None,  
    async_raise_before_abort=True,  
    early_abort_communicator=False,  
    checkpoint_manager=None,  
    check_memory_status=True)
```

*Contenedor de funciones de Python que permite reiniciar un bloque de código reejecutable (RCB) en HyperPod un entrenamiento sin puntos de control.*

*Este contenedor proporciona capacidades de tolerancia a errores y recuperación automática al monitorear la ejecución del entrenamiento y coordinar los reinicios en todos los procesos distribuidos cuando se producen fallas. Utiliza un enfoque de administrador de contexto en lugar de un decorador para mantener los recursos globales durante todo el ciclo de vida de la formación.*

**Parámetros**
+ **abortar** (*abortar, *opcional*): aborta* la ejecución de forma asíncrona cuando se detectan errores. Valor predeterminado: `Compose(HPAbortTorchDistributed())`
+ **finalize (Finalizar***, *opcional*): controlador de finalización* de rango local que se ejecuta durante el reinicio. Valor predeterminado: `None`
+ **health\$1check (*HealthCheck*, *opcional*): comprobación** del estado del rango local ejecutada durante el reinicio. Valor predeterminado: `None`
+ **hp\$1api\$1factory** (*invocable*, *opcional*): función de fábrica para crear una API con la que interactuar. HyperPod HyperPod Valor predeterminado: `None`
+ **abort\$1timeout** (*flotante*, *opcional*): tiempo de espera para abortar una llamada en un hilo de control de errores. Valor predeterminado: `None`
+ **habilitado** (*bool*, *opcional*): habilita la funcionalidad de contenedor. Cuando`False`, el envoltorio se convierte en un elemento de paso. Valor predeterminado: `True`
+ **trace\$1file\$1path** (*str*, *opcional*): ruta al archivo de rastreo para la creación de perfiles. VizTracer Valor predeterminado: `None`
+ **async\$1raise\$1before\$1abort (bool, opcional): habilita la activación antes de la interrupción** **en el subproceso de control de errores.** Valor predeterminado: `True`
+ **early\$1abort\$1communicator (bool, opcional): anula el comunicador (NCCL/Gloo) antes de anular** **el cargador de datos.** Valor predeterminado: `False`
+ **checkpoint\$1manager** (cualquiera*,* *opcional*): administrador para gestionar los puntos de control durante la recuperación. Valor predeterminado: `None`
+ **check\$1memory\$1status** *(*bool*, opcional): habilita la verificación y el registro del estado de la memoria.* Valor predeterminado: `True`

**Métodos**

```
def __call__(self, fn)
```

*Incluye una función para habilitar las capacidades de reinicio.*

**Parámetros:**
+ **fn** (*Callable*): la función que se incluye con capacidades de reinicio

**Devoluciones:**
+ **Llamable**: función empaquetada con capacidad de reinicio o función original si está deshabilitada

**Ejemplo**

```
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager import CheckpointManager  
from hyperpod_checkpointless_training.nemo_plugins.patches import patch_megatron_optimizer  
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_connector import CheckpointlessCompatibleConnector  
from hyperpod_checkpointless_training.inprocess.train_utils import HPAgentK8sAPIFactory  
from hyperpod_checkpointless_training.inprocess.abort import CheckpointlessFinalizeCleanup, CheckpointlessAbortManager   
      
@HPWrapper(  
    health_check=CudaHealthCheck(),  
    hp_api_factory=HPAgentK8sAPIFactory(),  
    abort_timeout=60.0,  
    checkpoint_manager=CheckpointManager(enable_offload=False),  
    abort=CheckpointlessAbortManager.get_default_checkpointless_abort(),  
    finalize=CheckpointlessFinalizeCleanup(),  
)def training_function():  
    # Your training code here  
    pass
```

**Notas**
+ Es necesario que el envoltorio esté `torch.distributed` disponible
+ Cuando`enabled=False`, el contenedor se convierte en un elemento de transferencia y devuelve la función original sin cambios
+ El contenedor mantiene los recursos globales, como la supervisión de los hilos a lo largo del ciclo de vida de la formación
+ Soporta la VizTracer creación de perfiles cuando se proporciona `trace_file_path`
+ Se integra con una HyperPod formación distribuida para una gestión coordinada de las averías

### HPCallEnvoltorio
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-HPCallWrapper"></a>

```
class hyperpod_checkpointless_training.inprocess.wrap.HPCallWrapper(wrapper)
```

Supervisa y administra el estado de un bloque de código de reinicio (RCB) durante la ejecución.

Esta clase se ocupa del ciclo de vida de la ejecución del RCB, incluida la detección de errores, la coordinación con otros niveles para los reinicios y las operaciones de limpieza. Gestiona la sincronización distribuida y garantiza una recuperación uniforme en todos los procesos de formación.

**Parámetros**
+ **wrapper** (*HPWrapper*): el contenedor principal que contiene la configuración global de recuperación en proceso

**Atributos**
+ **step\$1upon\$1restart** (*int*): contador que registra los pasos transcurridos desde el último reinicio y se utiliza para determinar la estrategia de reinicio

**Métodos**

```
def initialize_barrier()
```

Espere a que se sincronice HyperPod la barrera después de encontrar una excepción del RCB.

```
def start_hp_fault_handling_thread()
```

Inicie el hilo de gestión de fallos para supervisar y coordinar los fallos.

```
def handle_fn_exception(call_ex)
```

Procese las excepciones de la función de ejecución o del RCB.

**Parámetros:**
+ **call\$1ex** (*Excepción): excepción* de la función de supervisión

```
def restart(term_ex)
```

Ejecute el controlador de reinicios, incluida la finalización, la recolección de elementos no utilizados y las comprobaciones de estado.

**Parámetros:**
+ **term\$1ex** (*RankShouldRestart*): excepción de terminación que desencadena el reinicio

```
def launch(fn, *a, **kw)
```

*Ejecute el RCB con el manejo adecuado de las excepciones.*

**Parámetros:**
+ **fn** (*Callable*): función que se va a ejecutar
+ **a — Argumentos de** la función
+ **kw** — Argumentos de palabras clave de funciones

```
def run(fn, a, kw)
```

Bucle de ejecución principal que gestiona los reinicios y la sincronización de barreras.

**Parámetros:**
+ **fn** (*Callable*): función que se va a ejecutar
+ **a — Argumentos de** la función
+ **kw** — Argumentos de palabras clave de funciones

```
def shutdown()
```

Cierre los subprocesos de gestión y supervisión de errores.

**Notas**
+ Gestiona automáticamente `RankShouldRestart` las excepciones para una recuperación coordinada
+ Gestiona el seguimiento de la memoria y anula la recolección de basura durante los reinicios
+ Soporta estrategias de recuperación durante el proceso y PLR (reinicio a nivel de proceso) basadas en la temporización de los fallos

### CudaHealthCheck
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-cudahealthcheck"></a>

```
class hyperpod_checkpointless_training.inprocess.health_check.CudaHealthCheck(timeout=datetime.timedelta(seconds=30))
```

Garantiza que el contexto CUDA del proceso actual se encuentre en buen estado durante la recuperación del entrenamiento sin puntos de control.

Esta comprobación de estado se sincroniza con la GPU para comprobar que el contexto CUDA no está dañado tras un error de entrenamiento. Realiza operaciones de sincronización de la GPU para detectar cualquier problema que pueda impedir que el entrenamiento se reanude correctamente. La comprobación de estado se ejecuta una vez que se destruyen los grupos distribuidos y se ha completado la finalización.

**Parámetros**
+ **timeout** (*datetime.timedelta*, *opcional*): tiempo de espera para las operaciones de sincronización de la GPU. Valor predeterminado: `datetime.timedelta(seconds=30)`

**Métodos**

```
__call__(state, train_ex=None)
```

Ejecute la comprobación de estado de CUDA para comprobar la integridad del contexto de la GPU.

**Parámetros:**
+ **state** (*HPState*): HyperPod estado actual que contiene información distribuida y de clasificación
+ **train\$1ex** (*excepción*, *opcional*): la excepción de entrenamiento original que provocó el reinicio. Valor predeterminado: `None`

**Devuelve:**
+ **tupla**: una tupla que se contiene `(state, train_ex)` sin cambios si se aprueba el chequeo de estado

**Aumenta:**
+ **TimeoutError**— Si se agota el tiempo de espera de la sincronización de la GPU, lo que indica un contexto CUDA potencialmente dañado

**Preservación del estado**: devuelve el estado original y la excepción sin cambios si se aprueban todas las comprobaciones

**Ejemplo**

```
import datetime  
from hyperpod_checkpointless_training.inprocess.health_check import CudaHealthCheck  
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
  
# Create CUDA health check with custom timeout  
cuda_health_check = CudaHealthCheck(  
    timeout=datetime.timedelta(seconds=60)  
)  
  
# Use with HPWrapper for fault-tolerant training  
@HPWrapper(  
    health_check=cuda_health_check,  
    enabled=True  
)  
def training_function():  
    # Your training code here  
    pass
```

**Notas**
+ Utiliza subprocesos para implementar la protección de tiempo de espera para la sincronización de la GPU
+ Diseñado para detectar contextos CUDA corruptos que podrían impedir la reanudación correcta del entrenamiento
+ Debe usarse como parte del proceso de tolerancia a errores en escenarios de entrenamiento distribuidos

### HPAgentK8 APIFactory
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-HPAgentK8sAPIFactory"></a>

```
class hyperpod_checkpointless_training.inprocess.train_utils.HPAgentK8sAPIFactory()
```

Clase de fábrica para crear instancias de HPAgent K8sAPI que se comunican con la HyperPod infraestructura para la coordinación distribuida de la formación.

Esta fábrica proporciona una forma estandarizada de crear y configurar objetos HPAgent K8SAPI que gestionan la comunicación entre los procesos de entrenamiento y el plano de control. HyperPod Encapsula la creación del cliente de socket y la instancia de API subyacentes, lo que garantiza una configuración uniforme en las diferentes partes del sistema de entrenamiento.

**Métodos**

```
__call__()
```

Crea y devuelve una instancia de HPAgent K8sAPI configurada para la comunicación. HyperPod 

**Devoluciones:**
+ **HPAgentK8sAPI: instancia de API** configurada para comunicarse con la infraestructura HyperPod 

**Ejemplo**

```
from hyperpod_checkpointless_training.inprocess.train_utils import HPAgentK8sAPIFactory  
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
from hyperpod_checkpointless_training.inprocess.health_check import CudaHealthCheck  
  
# Create the factory  
hp_api_factory = HPAgentK8sAPIFactory()  
  
# Use with HPWrapper for fault-tolerant training  
hp_wrapper = HPWrapper(  
    hp_api_factory=hp_api_factory,  
    health_check=CudaHealthCheck(),  
    abort_timeout=60.0,  
    enabled=True  
)  
  
@hp_wrapper  
def training_function():  
    # Your distributed training code here  
    pass
```

**Notas**
+ Diseñada para funcionar sin problemas con la infraestructura basada en HyperPod Kubernetes. Es esencial para la gestión y la recuperación coordinadas de los fallos en escenarios de formación distribuidos

### CheckpointManager
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointManager"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager.CheckpointManager(  
    enable_checksum=False,  
    enable_offload=False)
```

Gestiona los puntos de control y la peer-to-peer recuperación en memoria para lograr una tolerancia a los fallos sin puntos de control en la formación distribuida.

Esta clase proporciona la funcionalidad básica para el entrenamiento HyperPod sin puntos de control, ya que permite gestionar los puntos de control de los NeMo modelos en la memoria, validar la viabilidad de la recuperación y organizar la transferencia de puntos de control entre los rangos en buen estado peer-to-peer y los que han fallado. Elimina la necesidad de disponer de disco I/O durante la recuperación, lo que reduce considerablemente el tiempo medio de recuperación (MTTR).

**Parámetros**
+ **enable\$1checksum** (*bool*, *opcional*): habilita la validación de la suma de verificación del estado del modelo para comprobar la integridad durante la recuperación. Valor predeterminado: `False`
+ **enable\$1offload** (*bool*, *opcional*): habilita la descarga de puntos de control de la GPU a la memoria de la CPU para reducir el uso de memoria de la GPU. Valor predeterminado: `False`

**Atributos**
+ **global\$1step (int o None): paso** *de entrenamiento actual asociado al punto* *de control guardado*
+ **rng\$1states (*list* o *None*): estados** del generador de números aleatorios almacenados para una recuperación determinista
+ **checksum\$1manager (*MemoryChecksumManager*): administrador** para la validación de la suma de verificación del estado del modelo
+ **parameter\$1update\$1lock (): bloqueo para coordinar las actualizaciones** de los parámetros durante la recuperación *ParameterUpdateLock*

**Métodos**

```
save_checkpoint(trainer)
```

Guarda el punto de control NeMo del modelo en la memoria para una posible recuperación sin puntos de control.

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer*): instancia de Lightning Trainer PyTorch 

**Notas:**
+ Se llama al final del lote o durante la gestión de excepciones CheckpointlessCallback 
+ Crea puntos de recuperación sin I/O sobrecarga de disco
+ Almacena los estados completos del modelo, el optimizador y el planificador

```
delete_checkpoint()
```

Elimine el punto de control en la memoria y realice las operaciones de limpieza.

**Notas:**
+ Borra los datos de los puntos de control, los estados de RNG y los tensores en caché
+ Realiza la recolección de basura y la limpieza de la caché CUDA
+ Se llama después de una recuperación exitosa o cuando el punto de control ya no es necesario

```
try_checkpointless_load(trainer)
```

Intenta recuperarte sin puntos de control cargando el estado de los rangos de tus compañeros.

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer*): instancia de Lightning Trainer PyTorch 

**Devoluciones:**
+ **dict** o **None**: se restaura el punto de control si es correcto, ninguno si es necesario recurrir al disco

**Notas:**
+ Punto de entrada principal para una recuperación sin puntos de control
+ Valida la viabilidad de la recuperación antes de intentar la transferencia P2P
+ Limpia siempre los puntos de control de la memoria tras un intento de recuperación

```
checkpointless_recovery_feasible(trainer, include_checksum_verification=True)
```

Determine si es posible realizar una recuperación sin puntos de control en el escenario de fallo actual.

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer*): instancia de Lightning Trainer PyTorch 
+ **include\$1checksum\$1verification (bool, opcional): si se debe incluir la validación de la suma de verificación** **.** Valor predeterminado: `True`

**Devoluciones:**
+ **bool**: Verdadero si es posible una recuperación sin puntos de control, falso en caso contrario

**Criterios de validación:**
+ Coherencia escalonada global en todos los rangos saludables
+ Hay suficientes réplicas en buen estado disponibles para la recuperación
+ Integridad de la suma de verificación del estado del modelo (si está habilitada)

```
store_rng_states()
```

Guarde todos los estados del generador de números aleatorios para una recuperación determinista.

**Notas:**
+ Captura los estados RNG de Python NumPy, PyTorch CPU/GPU y Megatron
+ Esencial para mantener el determinismo del entrenamiento después de la recuperación

```
load_rng_states()
```

Restaure todos los estados del RNG para continuar con la recuperación determinista.

**Notas:**
+ Restaura todos los estados de RNG previamente almacenados
+ Garantiza que el entrenamiento continúe con secuencias aleatorias idénticas

```
maybe_offload_checkpoint()
```

Si la descarga está habilitada, descargue el punto de control de la GPU a la memoria de la CPU.

**Notas:**
+ Reduce el uso de memoria de la GPU en modelos grandes
+ Solo se ejecuta si `enable_offload=True`
+ Mantiene la accesibilidad de los puntos de control para la recuperación

**Ejemplo**

```
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager import CheckpointManager  
# Use with HPWrapper for complete fault tolerance  
@HPWrapper(  
    checkpoint_manager=CheckpointManager(),  
    enabled=True  
)  
def training_function():  
    # Training code with automatic checkpointless recovery  
    pass
```

**Validación**: verifica la integridad del punto de control mediante sumas de control (si están habilitadas)

**Notas**
+ Utiliza primitivas de comunicación distribuidas para una transferencia P2P eficiente
+ Gestiona automáticamente las conversiones de tipo D del tensor y la ubicación de los dispositivos
+ **MemoryChecksumManager**— Maneja la validación de la integridad del estado del modelo

### PEFTCheckpoint• Gerente
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-PEFTCheckpointManager"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager.PEFTCheckpointManager(  
    *args,  
    **kwargs)
```

Gestiona los puntos de control para el PEFT (ajuste preciso con eficiencia de parámetros) con un manejo independiente de la base y el adaptador para una recuperación optimizada sin puntos de control.

Este gestor de puntos de control especializado se amplía CheckpointManager para optimizar los flujos de trabajo del PEFT al separar los pesos del modelo base de los parámetros del adaptador.

**Parámetros**

Hereda todos los parámetros de: **CheckpointManager**
+ **enable\$1checksum** (*bool*, *opcional*): habilita la validación de la suma de verificación del estado del modelo. Valor predeterminado: `False`
+ **enable\$1offload (*bool*, opcional): habilita la descarga de puntos de** *control a la memoria de la CPU.* Valor predeterminado: `False`

**Atributos adicionales**
+ **params\$1to\$1save** (*set): conjunto* de nombres de parámetros que deben guardarse como parámetros del adaptador
+ **base\$1model\$1weights (*dict* or *None*): pesos** del modelo base almacenados en caché, guardados una vez y reutilizados
+ **base\$1model\$1keys\$1to\$1extract (list o None): claves para extraer** **los tensores del modelo base durante la transferencia P2P**

**Métodos**

```
maybe_save_base_model(trainer)
```

Guarda los pesos del modelo base una vez y filtra los parámetros del adaptador.

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer): instancia de Lightning* Trainer PyTorch 

**Notas:**
+ Solo guarda los pesos del modelo base en la primera llamada; las llamadas posteriores no son operativas
+ Filtra los parámetros del adaptador para almacenar solo los pesos del modelo base congelados
+ Los pesos del modelo base se conservan durante varias sesiones de entrenamiento

```
save_checkpoint(trainer)
```

Guarde el punto de control del modelo del adaptador NeMo PEFT en la memoria para una posible recuperación sin puntos de control.

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer*): instancia de Lightning Trainer PyTorch 

**Notas:**
+ Llama automáticamente si el modelo base aún no se ha guardado `maybe_save_base_model()`
+ Filtra el punto de control para incluir solo los parámetros del adaptador y el estado de entrenamiento
+ Reduce significativamente el tamaño de los puntos de control en comparación con los puntos de control del modelo completo

```
try_base_model_checkpointless_load(trainer)
```

El modelo base Tempt PEFT pondera la recuperación sin puntos de control cargando el estado de las filas homólogas.

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer*): instancia de Lightning Trainer PyTorch 

**Devoluciones:**
+ **dict** or **None**: se restauró el punto de control del modelo base si fue correcto, ninguno si se necesitó una alternativa

**Notas:**
+ Se utiliza durante la inicialización del modelo para recuperar los pesos del modelo base
+ No limpia los pesos base del modelo después de la recuperación (los conserva para su reutilización)
+ Optimizado para escenarios model-weights-only de recuperación

```
try_checkpointless_load(trainer)
```

Un intento de adaptación PEFT pondera la recuperación sin puntos de control cargando el estado de las filas homólogas.

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer*): instancia de Lightning Trainer PyTorch 

**Devoluciones:**
+ **dict** o **None**: se restauró el punto de control del adaptador si fue correcto, ninguno si se necesitó una alternativa

**Notas:**
+ Recupera únicamente los parámetros del adaptador, los estados del optimizador y los planificadores
+ Carga automáticamente los estados del optimizador y el programador después de una recuperación exitosa
+ Limpia los puntos de control del adaptador tras un intento de recuperación

```
is_adapter_key(key)
```

Compruebe si la clave de dictado de estado pertenece a los parámetros del adaptador.

**Parámetros:**
+ **key** (*str* o *tuple*): clave de dictado de estado para comprobar

**Devoluciones:**
+ **bool**: Verdadero si la clave es un parámetro del adaptador, falso si el parámetro del modelo base

**Lógica de detección:**
+ Comprueba si la clave está en el `params_to_save` set
+ Identifica las claves que contienen «.adapter». subcadena
+ Identifica las claves que terminan en «.adapter»
+ En el caso de las claves de tupla, comprueba si el parámetro requiere gradientes

```
maybe_offload_checkpoint()
```

Descarga los pesos del modelo base de la GPU a la memoria de la CPU.

**Notas:**
+ Amplía el método principal para gestionar la descarga del peso del modelo base
+ Los pesos de los adaptadores suelen ser pequeños y no es necesario descargarlos
+ Establece un indicador interno para rastrear el estado de descarga

**Notas**
+ Diseñado específicamente para escenarios de ajuste preciso con eficiencia de parámetros (LoRa, adaptadores, etc.)
+ Gestiona automáticamente la separación de los parámetros del modelo base y del adaptador

**Ejemplo**

```
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager import PEFTCheckpointManager  
# Use with HPWrapper for complete fault tolerance  
@HPWrapper(  
    checkpoint_manager=PEFTCheckpointManager(),  
    enabled=True  
)  
def training_function():  
    # Training code with automatic checkpointless recovery  
    pass
```

### CheckpointlessAbortManager
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessAbortManager"></a>

```
class hyperpod_checkpointless_training.inprocess.abort.CheckpointlessAbortManager()
```

Clase de fábrica para crear y gestionar las composiciones de los componentes abortados para lograr una tolerancia a los fallos sin puntos de control.

Esta clase de utilidad proporciona métodos estáticos para crear, personalizar y gestionar las composiciones de los componentes abortados que se utilizan durante la gestión de fallos en una formación sin puntos de control. HyperPod Simplifica la configuración de las secuencias de cancelación que se encargan de limpiar los componentes de entrenamiento distribuidos, los cargadores de datos y los recursos específicos del marco durante la recuperación de errores.

**Parámetros**

Ninguno (todos los métodos son estáticos)

**Métodos estáticos**

```
get_default_checkpointless_abort()
```

Obtenga la instancia de composición de abortación predeterminada que contiene todos los componentes de cancelación estándar.

**Devoluciones:**
+ **Compose**: instancia de anulación compuesta por defecto con todos los componentes de la anulación

**Componentes por defecto:**
+ **AbortTransformerEngine()** — Limpia los recursos TransformerEngine 
+ **HPCheckpointingAbort ()**: gestiona la limpieza del sistema de puntos de control
+ **HPAbortTorchDistributed()** — Anula las operaciones distribuidas PyTorch 
+ **HPDataLoaderAbort()** — Detiene y limpia los cargadores de datos

```
create_custom_abort(abort_instances)
```

*Cree una composición de cancelación personalizada con solo las instancias de cancelación especificadas.*

**Parámetros:**
+ **abort\$1instances** (*Abort*): número variable de instancias de anulación que se van a incluir en la composición

**Devuelve:**
+ **Compose**: nueva instancia de cancelación compuesta que contiene solo los componentes especificados

**Aumenta:**
+ **ValueError**— Si no se proporcionan instancias de aborto

```
override_abort(abort_compose, abort_type, new_abort)
```

Sustituye un componente de cancelación específico en una instancia de Compose por un componente nuevo.

**Parámetros:**
+ **abort\$1compose (Compose**): la instancia de *Compose* original que se va a modificar
+ **abort\$1type (type**): el *tipo de componente de* cancelación que se va a reemplazar (por ejemplo,) `HPCheckpointingAbort`
+ **new\$1abort (Abort***): la nueva instancia* de cancelación que se utilizará como reemplazo

**Devuelve:**
+ **Compose**: nueva instancia de Compose con el componente especificado reemplazado

**Aumenta:**
+ **ValueError**— Si abort\$1compose no tiene el atributo 'instances'

**Ejemplo**

```
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
from hyperpod_checkpointless_training.nemo_plugins.callbacks import CheckpointlessCallback  
from hyperpod_checkpointless_training.inprocess.abort import CheckpointlessFinalizeCleanup, CheckpointlessAbortManager  
  
# The strategy automatically integrates with HPWrapper  
@HPWrapper(  
    abort=CheckpointlessAbortManager.get_default_checkpointless_abort(),  
    health_check=CudaHealthCheck(),  
    finalize=CheckpointlessFinalizeCleanup(),  
    enabled=True  
)  
def training_function():  
    trainer.fit(...)
```

**Notas**
+ Las configuraciones personalizadas permiten un control preciso del comportamiento de limpieza
+ Las operaciones de anulación son fundamentales para una limpieza adecuada de los recursos durante la recuperación de errores

### CheckpointlessFinalizeCleanup
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessFinalizeCleanup"></a>

```
class hyperpod_checkpointless_training.inprocess.abort.CheckpointlessFinalizeCleanup()
```

Realiza una limpieza exhaustiva tras la detección de un fallo para preparar la recuperación durante el proceso durante una formación sin puntos de control.

Este controlador de finalización ejecuta operaciones de limpieza específicas del marco, como la anulación, la limpieza del DDP, la recarga de módulos y la limpieza de Megatron/TransformerEngine memoria, destruyendo las referencias de los componentes de entrenamiento. Garantiza que el entorno de formación se restablezca correctamente para que la recuperación del proceso se lleve a cabo correctamente sin que sea necesaria la finalización completa del proceso.

**Parámetros**

Ninguno

**Atributos**
+ **trainer** (*pytorch\$1lightning.trainer o *None*): referencia a la instancia de Lightning Trainer* PyTorch 

**Métodos**

```
__call__(*a, **kw)
```

**Ejecute operaciones de limpieza exhaustivas para preparar la recuperación durante el proceso.**

*Parámetros:*
+ **a** — Argumentos posicionales variables (heredados de la interfaz Finalize)
+ **kw** — Argumentos de palabras clave variables (heredados de la interfaz Finalize)

**Operaciones de limpieza:**
+ Limpieza del **marco de Megatron: pide `abort_megatron()` limpiar los recursos** específicos de Megatron
+ TransformerEngine Limpieza: pide que se **limpien** los recursos `abort_te()` TransformerEngine 
+ **RoPE Cleanup**: pide `cleanup_rope()` limpiar las posiciones rotativas incorporando recursos
+ **DDP Cleanup**: llama `cleanup_ddp()` a limpiar los recursos DistributedDataParallel 
+ Recarga de **módulos: requiere recargar** los módulos del `reload_megatron_and_te()` marco
+ **Limpieza del módulo Lightning**: opcionalmente, borra el módulo Lightning para reducir la memoria de la GPU
+ **Limpieza de memoria**: destruye las referencias a los componentes de entrenamiento para liberar memoria

```
register_attributes(trainer)
```

*Registre la instancia del entrenador para utilizarla durante las operaciones de limpieza.*

**Parámetros:**
+ **trainer** (*pytorch\$1Lightning.Trainer): instancia de Lightning* Trainer que se debe registrar PyTorch 

**Integración con CheckpointlessCallback**

```
from hyperpod_checkpointless_training.nemo_plugins.callbacks import CheckpointlessCallback  
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
  
# The strategy automatically integrates with HPWrapper  
@HPWrapper(  
    ...  
    finalize=CheckpointlessFinalizeCleanup(),   
)  
def training_function():  
    trainer.fit(...)
```

**Notas**
+ Las operaciones de limpieza se ejecutan en un orden específico para evitar problemas de dependencia
+ La limpieza de memoria utiliza la introspección de la recolección de basura para encontrar los objetos objetivo
+ Todas las operaciones de limpieza están diseñadas para ser idempotentes y se pueden volver a intentar de forma segura

### CheckpointlessMegatronStrategy
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessMegatronStrategy"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.megatron_strategy.CheckpointlessMegatronStrategy(*args, **kwargs)
```

NeMo Estrategia Megatron con capacidades integradas de recuperación sin puntos de control para una formación distribuida y tolerante a fallos.

Tenga en cuenta que la capacitación sin puntos de control debe ser de al menos 2 `num_distributed_optimizer_instances` para que la replicación sea optimizada. La estrategia también se ocupa del registro de los atributos esenciales y de la inicialización de los grupos de procesos.

**Parámetros**

Hereda todos los parámetros de: **MegatronStrategy**
+ Parámetros de NeMo MegatronStrategy inicialización estándar
+ Opciones de configuración de entrenamiento distribuidas
+ Modele los ajustes de paralelismo

**Atributos**
+ **base\$1store** *(torch.distributed). TCPStore*(o *ninguno*): almacén distribuido para la coordinación de grupos de procesos

**Métodos**

```
setup(trainer)
```

Inicie la estrategia y registre los componentes de tolerancia a fallos con el formador.

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer): instancia de Lightning* Trainer PyTorch 

**Operaciones de configuración:**
+ **Configuración para padres**: llama a la MegatronStrategy configuración para padres
+ **Registro de inyección de errores**: registra los HPFault InjectionCallback ganchos si están presentes
+ **Finalizar el registro**: registra al entrenador con los controladores de limpieza final
+ **Registro de abortos: registra al** entrenador con los controladores de abortos que lo admiten

```
setup_distributed()
```

Inicialice el grupo de procesos mediante una conexión TCPStore con prefijo o sin raíz.

```
load_model_state_dict(checkpoint, strict=True)
```

Cargue el dictado de estado del modelo con una compatibilidad de recuperación sin puntos de control.

**Parámetros:**
+ **checkpoint** (*Mapping [str, Any]): diccionario* de puntos de control que contiene el estado del modelo
+ **strict** (*bool*, *opcional*): indica si se debe aplicar estrictamente la coincidencia de claves de dictado de estado. Valor predeterminado: `True`

```
get_wrapper()
```

Obtenga la instancia de HPCall Wrapper para la coordinación de la tolerancia a errores.

**Devoluciones:**
+ **HPCallEnvoltorio**: la instancia del contenedor adjunta al entrenador para garantizar la tolerancia a los fallos

```
is_peft()
```

Compruebe si el PEFT (ajuste preciso con eficiencia de parámetros) está habilitado en la configuración de entrenamiento comprobando si hay devoluciones de llamadas del PEFT

**Devoluciones:**
+ **bool**: verdadero si la devolución de llamada PEFT está presente, falsa en caso contrario

```
teardown()
```

Anule el desmontaje nativo de PyTorch Lightning para delegar la limpieza y anular los controladores.

**Ejemplo**

```
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
  
# The strategy automatically integrates with HPWrapper  
@HPWrapper(  
    checkpoint_manager=checkpoint_manager,  
    enabled=True  
)  
def training_function():  
    trainer = pl.Trainer(strategy=CheckpointlessMegatronStrategy())  
    trainer.fit(model, datamodule)
```

### CheckpointlessCallback
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessCallback"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.callbacks.CheckpointlessCallback(  
    enable_inprocess=False,  
    enable_checkpointless=False,  
    enable_checksum=False,  
    clean_tensor_hook=False,  
    clean_lightning_module=False)
```

Lightning Callback, que integra la NeMo formación con el sistema de tolerancia a fallos de Checkpointless Training.

Esta devolución de llamadas gestiona el seguimiento de los pasos, el almacenamiento de los puntos de control y la coordinación de la actualización de los parámetros para lograr funciones de recuperación durante el proceso. Sirve como el principal punto de integración entre los ciclos de entrenamiento de PyTorch Lightning y los mecanismos de entrenamiento HyperPod sin puntos de control, ya que coordina las operaciones de tolerancia a los fallos a lo largo del ciclo de vida del entrenamiento.

**Parámetros**
+ **enable\$1inprocess** (*bool*, *opcional*): habilita las capacidades de recuperación durante el proceso. Valor predeterminado: `False`
+ **enable\$1checkpointless (*bool*, opcional): habilita la recuperación sin puntos** *de control (obligatorio).* `enable_inprocess=True` Valor predeterminado: `False`
+ **enable\$1checksum (bool, opcional): habilita la validación de la suma** *de verificación del estado del modelo (obligatorio**).* `enable_checkpointless=True` Valor predeterminado: `False`
+ **clean\$1tensor\$1hook** (*bool*, *opcional*): elimina los ganchos tensoriales de todos los tensores de la GPU durante la limpieza (operación costosa). Valor predeterminado: `False`
+ **clean\$1lightning\$1module (*bool*, opcional): habilita la limpieza del módulo** *Lightning para liberar memoria de la GPU después de cada reinicio.* Valor predeterminado: `False`

**Atributos**
+ ***tried\$1adapter\$1checkpointless (bool): marca para comprobar si se ha intentado restaurar el adaptador sin puntos de control***

**Métodos**

```
get_wrapper_from_trainer(trainer)
```

Obtenga la instancia de Wrapper del entrenador para coordinar la tolerancia a fallas. HPCall

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer): instancia de Lightning* Trainer PyTorch 

**Devoluciones:**
+ **HPCallWrapper**: la instancia del contenedor para operaciones de tolerancia a errores

```
on_train_batch_start(trainer, pl_module, batch, batch_idx, *args, **kwargs)
```

Se utiliza al principio de cada lote de formación para gestionar el seguimiento y la recuperación de los pasos.

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer): instancia de Lightning* Trainer PyTorch 
+ **pl\$1module** (*pytorch\$1lightning). LightningModule*) — Se está capacitando al módulo Lightning
+ **lote**: datos del lote de entrenamiento actual
+ **batch\$1idx** (*int*): índice del lote actual
+ **args**: argumentos posicionales adicionales
+ **kwargs**: argumentos de palabras clave adicionales

```
on_train_batch_end(trainer, pl_module, outputs, batch, batch_idx)
```

*Libera el bloqueo de actualización de parámetros al final de cada lote de entrenamiento.*

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer): instancia de Lightning* Trainer PyTorch 
+ **pl\$1module** (*pytorch\$1lightning). LightningModule*) — Se está capacitando al módulo Lightning
+ **salidas** (*STEP\$1OUTPUT*) — Salidas de los pasos de entrenamiento
+ **batch** (*Any*): datos actuales del lote de entrenamiento
+ **batch\$1idx** (*int*): índice del lote actual

**Notas:**
+ El tiempo de liberación del bloqueo garantiza que la recuperación sin puntos de control pueda continuar una vez finalizadas las actualizaciones de los parámetros
+ Solo se ejecuta cuando ambos `enable_inprocess` y son verdaderos `enable_checkpointless`

```
get_peft_callback(trainer)
```

*Recupera la llamada PEFT de la lista de devoluciones de llamadas del entrenador.*

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer*): instancia de Lightning Trainer PyTorch 

**Devoluciones:**
+ **PEFT** o **Ninguno**: instancia de devolución de llamada de PEFT si se encuentra, None en caso contrario

```
_try_adapter_checkpointless_restore(trainer, params_to_save)
```

*Intente restaurar sin puntos de control los parámetros del adaptador PEFT.*

**Parámetros:**
+ **trainer** (*Pytorch\$1Lightning.Trainer*): instancia de Lightning Trainer PyTorch 
+ **params\$1to\$1save (*set): conjunto* de nombres de parámetros para guardar** como parámetros del adaptador

**Notas:**
+ Solo se ejecuta una vez por sesión de entrenamiento (controlada por un indicador) `tried_adapter_checkpointless`
+ Configura el administrador de puntos de control con la información de los parámetros del adaptador

**Ejemplo**

```
from hyperpod_checkpointless_training.nemo_plugins.callbacks import CheckpointlessCallback  
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager import CheckpointManager  
import pytorch_lightning as pl  
  
# Create checkpoint manager  
checkpoint_manager = CheckpointManager(  
    enable_checksum=True,  
    enable_offload=True  
)  
  
# Create checkpointless callback with full fault tolerance  
checkpointless_callback = CheckpointlessCallback(  
    enable_inprocess=True,  
    enable_checkpointless=True,  
    enable_checksum=True,  
    clean_tensor_hook=True,  
    clean_lightning_module=True  
)  
  
# Use with PyTorch Lightning trainer  
trainer = pl.Trainer(  
    callbacks=[checkpointless_callback],  
    strategy=CheckpointlessMegatronStrategy()  
)  
  
# Training with fault tolerance  
trainer.fit(model, datamodule=data_module)
```

**Administración de la memoria**
+ **clean\$1tensor\$1hook**: elimina los ganchos tensores durante la limpieza (caro pero minucioso)
+ **clean\$1lightning\$1module**: Libera la memoria de la GPU del módulo Lightning durante los reinicios
+ Ambas opciones ayudan a reducir el consumo de memoria durante la recuperación de errores
+ Coordina con ParameterUpdateLock un seguimiento seguro de las actualizaciones de parámetros

### CheckpointlessCompatibleConnector
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessCompatibleConnector"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.checkpoint_connector.CheckpointlessCompatibleConnector()
```

PyTorch Conector Lightning Checkpoint que integra la recuperación sin puntos de control con la carga tradicional de puntos de control basada en disco.

Este conector amplía el de PyTorch Lightning `_CheckpointConnector` para ofrecer una integración perfecta entre la recuperación sin puntos de control y la restauración de puntos de control estándar. En primer lugar, intenta realizar una recuperación sin puntos de control y, a continuación, recurre a la carga mediante puntos de control basados en disco si la recuperación sin puntos de control no es factible o se produce un error.

**Parámetros**

**Hereda** todos los parámetros de \$1 CheckpointConnector

**Métodos**

```
resume_start(checkpoint_path=None)
```

Intente precargar el punto de control con una prioridad de recuperación sin puntos de control.

**Parámetros:**
+ **checkpoint\$1path** (*str* o *None*, *opcional*): ruta al punto de control del disco como alternativa. Valor predeterminado: `None`

```
resume_end()
```

Complete el proceso de carga del punto de control y realice las operaciones posteriores a la carga.

**Notas**
+ Amplía la `_CheckpointConnector` categoría interna de PyTorch Lightning con un soporte de recuperación sin puntos de control
+ Mantiene una compatibilidad total con los flujos de trabajo estándar de PyTorch Lightning Checkpoint

### CheckpointlessAutoResume
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessAutoResume"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.resume.CheckpointlessAutoResume()
```

Se amplía AutoResume con NeMo una configuración diferida para permitir la validación de la recuperación sin puntos de control antes de resolver la ruta del punto de control.

Esta clase implementa una estrategia de inicialización en dos fases que permite realizar la validación de la recuperación sin puntos de control antes de volver a la carga tradicional de puntos de control basada en disco. Retrasa la AutoResume configuración de forma condicional para evitar una resolución prematura de la ruta de los puntos de control, lo que permite validar primero si la recuperación sin puntos de control es factible CheckpointManager . peer-to-peer

**Parámetros**

Hereda todos los parámetros de **AutoResume**

**Métodos**

```
setup(trainer, model=None, force_setup=False)
```

Retrasa la AutoResume configuración de forma condicional para permitir la validación de la recuperación sin puntos de control.

**Parámetros:**
+ **trainer** *(*Pytorch\$1Lightning.Trainer o Lightning.Fabric.Fabric): instancia de Lightning* Trainer o Fabric* PyTorch 
+ **modelo** *(opcional):* instancia de modelo para la configuración. Valor predeterminado: `None`
+ **force\$1setup** (*bool*, *opcional*): si es verdadero, evita el retraso y ejecuta AutoResume la configuración inmediatamente. Valor predeterminado: `False`

**Ejemplo**

```
from hyperpod_checkpointless_training.nemo_plugins.resume import CheckpointlessAutoResume  
from hyperpod_checkpointless_training.nemo_plugins.megatron_strategy import CheckpointlessMegatronStrategy  
import pytorch_lightning as pl  
  
# Create trainer with checkpointless auto-resume  
trainer = pl.Trainer(  
    strategy=CheckpointlessMegatronStrategy(),  
    resume=CheckpointlessAutoResume()  
)
```

**Notas**
+ Extiende NeMo la AutoResume clase con un mecanismo de retardo que permite una recuperación sin puntos de control
+ Funciona en conjunto con un flujo de trabajo `CheckpointlessCompatibleConnector` de recuperación completo

# Consideraciones especiales
<a name="sagemaker-eks-checkpointless-considerations"></a>

Recopilamos ciertas métricas operativas agregadas y anónimas de rutina para proporcionar la disponibilidad de los servicios esenciales. La creación de estas métricas está totalmente automatizada y no implica una revisión humana de la carga de trabajo de formación del modelo subyacente. Estas métricas se refieren a las operaciones laborales, la administración de recursos y la funcionalidad esencial del servicio. 

HyperPod gestión de puntos de control escalonados y formación elástica: tenga en cuenta que la formación HyperPod sin puntos de control es actualmente incompatible con la HyperPod gestión de puntos de control escalonados y la formación elástica.

Se proporcionan recetas de entrenamiento sin puntos de control para los modelos GPT OSS 120B y Llama para facilitar la puesta en marcha. Estas recetas se han verificado en instancias ml.p5. El uso de otros tipos de instancias puede requerir modificaciones adicionales en las recetas subyacentes. Estas recetas también se pueden adaptar a flujos de trabajo de ajuste completos. Para los modelos personalizados, recomendamos revisar los ejemplos de [introducción](https://docs.aws.amazon.com/sagemaker-eks-checkpointless-recipes-custom).

# Apéndice
<a name="sagemaker-eks-checkpointless-appendix"></a>

**Supervisa los resultados del entrenamiento mediante HyperPod recetas**

SageMaker HyperPod Las recetas ofrecen la integración de Tensorboard para analizar el comportamiento del entrenamiento. Estas recetas también incorporan VizTracer una herramienta de bajo coste para rastrear y visualizar la ejecución del código Python. Para obtener más información, consulte [ VizTracer](https://github.com/gaogaotiantian/viztracer).

Los registros de Tensorboard se generan y almacenan dentro del. `log_dir` Para acceder a estos registros y analizarlos localmente, utilice el siguiente procedimiento:

1. Descargue la carpeta de experimentos de Tensorboard de su entorno de entrenamiento en su equipo local.

1. Abra el símbolo del sistema o el terminal en su equipo local.

1. Navegue hasta el directorio que contiene la carpeta del experimento descargada.

1. Inicie Tensorboard ejecutando el comando:

   ```
   tensorboard --port=<port> --bind_all --logdir experiment.
   ```

1. Abre tu navegador web y visita. `http://localhost:8008`

Ahora puede ver el estado y las visualizaciones de sus trabajos de entrenamiento en la interfaz de Tensorboard. Ver el estado y las visualizaciones le ayuda a supervisar y analizar el proceso de entrenamiento. Supervisar y analizar el proceso de entrenamiento le ayuda a obtener información sobre el comportamiento y el rendimiento de sus modelos. Para obtener más información sobre cómo monitorizar y analizar el entrenamiento con Tensorboard, consulta la Guía del [usuario de NVIDIA NeMo Framework](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/core/exp_manager.html#experiment-manager).

**VizTracer**

Para habilitarlo VizTracer, puedes modificar tu receta configurando la variable `ENABLE_VIZTRACER` de entorno en. `1` Una vez finalizada la formación, su VizTracer perfil estará en la carpeta del experimento`log_dir/viztracer_xxx.json`. Para analizar su perfil, puede descargarlo y abrirlo con la **vizviewer** herramienta:

```
vizviewer --port <port> viztracer_xxx.json
```

Este comando lanza el vizviewer en el puerto 9001. Puedes verlo en http://localhost: <port>en tu navegador. VizTracer Tras abrirla VizTracer, empezará a analizar la formación. Para obtener más información sobre su uso VizTracer, consulte [ VizTracer la documentación](https://viztracer.readthedocs.io/en/latest/installation.html).

# Notas de la versión
<a name="sagemaker-eks-checkpointless-release-notes"></a>

Consulte las siguientes notas de la versión para realizar un seguimiento de las últimas actualizaciones de la formación SageMaker HyperPod sin puntos de control.

**El entrenamiento sin SageMaker HyperPod puntos de control (v1.0.1)**

Fecha: 10 de abril de 2026

**Correcciones de errores**
+ Se corrigió un enlace incorrecto del dispositivo CUDA en el hilo de gestión de fallas. El subproceso de gestión de fallos ahora establece correctamente el contexto del dispositivo CUDA mediante el uso de. `LOCAL_RANK` Esta corrección evita los errores de discordancia de los dispositivos durante la recuperación de errores durante el proceso.

**El entrenamiento sin SageMaker HyperPod puntos de control v1.0.0**

Fecha: 3 de diciembre de 2025

**SageMaker HyperPod Funciones de entrenamiento sin puntos de control**
+ **Mejoras en la inicialización de la comunicación colectiva**: ofrece métodos de inicialización novedosos, como Rootless y para NCCL y TCPStoreless Gloo.
+ Cargador de datos **mapeado en memoria (MMAP)**: almacena en caché (conserva) los lotes precargados para que estén disponibles incluso cuando un fallo provoque que se reinicie el trabajo de formación.
+ **Sin puntos de control**: permite una recuperación más rápida de los errores de entrenamiento en clústeres en entornos de entrenamiento distribuidos a gran escala mediante optimizaciones a nivel del marco
+ **Basado en Nvidia Nemo y PyTorch Lightning**: aprovecha estos potentes marcos para un entrenamiento de modelos eficiente y flexible
  + [Nividia NeMo](https://github.com/NVIDIA-NeMo/NeMo)
  + [PyTorch Rayo](https://lightning.ai/docs/pytorch/stable/)

**SageMaker HyperPod Contenedor Docker de entrenamiento sin control**

[Checkpointless Training on HyperPod se basa en el marco de NVIDIA. NeMo ](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html) HyperPod El objetivo de checkpointless training es recuperarse con mayor rapidez de los fallos de formación en clústeres en entornos de formación distribuidos a gran escala. Para ello, se realizan optimizaciones a nivel del marco de trabajo que se imparten en un contenedor base que contiene la imagen base con la NCCL y las optimizaciones. PyTorch 

**Disponibilidad.**

Actualmente, las imágenes solo están disponibles en:

```
eu-north-1
ap-south-1
us-east-2
eu-west-1
eu-central-1
sa-east-1
us-east-1
eu-west-2
ap-northeast-1
us-west-2
us-west-1
ap-southeast-1
ap-southeast-2
```

pero no están disponibles en las siguientes 3 regiones en las que se ha optado por participar:

```
ap-southeast-3
ap-southeast-4
eu-south-2
```

**Detalles del contenedor**

Contenedor Docker de entrenamiento sin control para PyTorch la versión 2.6.0 con la versión 12.9 de CUDA

```
963403601044.dkr.ecr.eu-north-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
423350936952.dkr.ecr.ap-south-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
556809692997.dkr.ecr.us-east-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
942446708630.dkr.ecr.eu-west-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
391061375763.dkr.ecr.eu-central-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
311136344257.dkr.ecr.sa-east-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
327873000638.dkr.ecr.us-east-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
016839105697.dkr.ecr.eu-west-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
356859066553.dkr.ecr.ap-northeast-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
920498770698.dkr.ecr.us-west-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
827510180725.dkr.ecr.us-west-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
885852567298.dkr.ecr.ap-southeast-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
304708117039.dkr.ecr.ap-southeast-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
```

**Paquetes preinstalados**

```
PyTorch: v2.6.0
CUDA: v12.9
NCCL: v2.27.5
EFA: v1.43.0
AWS-OFI-NCCL v1.16.0
Libfabric version 2.1
Megatron v0.15.0
Nemo v2.6.0rc0
```

# Uso de particiones de GPU en Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-gpu-partitioning"></a>

Los administradores de clústeres pueden elegir cómo maximizar el uso de la GPU en su organización. Puede habilitar la partición de la GPU con la tecnología de GPU de instancias múltiples (MIG) de NVIDIA para particionar los recursos de la GPU en instancias más pequeñas y aisladas para una mejor utilización de los recursos. Esta capacidad permite ejecutar varias tareas de menor tamaño de forma simultánea en una sola GPU, en lugar de dedicar todo el hardware a una sola tarea, a menudo infrautilizada. Esto elimina el desperdicio de memoria y potencia de cómputo.

El particionamiento de la GPU con la tecnología MIG admite GPUs y permite particionar una sola GPU compatible en hasta siete particiones de GPU independientes. Cada partición de la GPU tiene recursos de memoria, caché y cómputo dedicados, lo que proporciona un aislamiento predecible.

## Ventajas
<a name="sagemaker-hyperpod-eks-gpu-partitioning-benefits"></a>
+ **Utilización mejorada de la GPU**: maximice la eficiencia informática mediante la partición en GPUs función de los requisitos de procesamiento y memoria
+ **Aislamiento de tareas**: cada partición de la GPU funciona de forma independiente con recursos de memoria, caché y cómputo dedicados
+ **Flexibilidad de tareas**: Support una combinación de tareas en una sola GPU física, todas ejecutándose en paralelo
+ **Administración flexible de la configuración**: Suponga configuraciones de Kubernetes Do-it-yourself (hágalo usted mismo) mediante el cliente `kubectl` de línea de comandos de Kubernetes y una solución gestionada con etiquetas personalizadas para configurar y aplicar fácilmente las etiquetas asociadas a las particiones de la GPU

**importante**  
Los grupos de instancias flexibles (grupos de instancias que sí utilizan) no admiten la partición de la GPU con MIG. `InstanceRequirements` Para usar MIG, crea un grupo de instancias con una sola instancia. `InstanceType`

## Tipos de instancias admitidos
<a name="sagemaker-hyperpod-eks-gpu-partitioning-instance-types"></a>

Los siguientes HyperPod tipos de instancias admiten la creación de particiones de GPU con tecnología MIG:

[Instancias de **GPU A100**: tipos de instancia/p4/ https://aws.amazon.com/ec2/](https://aws.amazon.com/ec2/instance-types/p4/)
+ **ml.p4d.24xlarge** - 8 NVIDIA A100 (80 GB por GPU) GPUs HBM2e 
+ **ml.p4de.24xlarge** - 8 NVIDIA A100 (80 GB por GPU) GPUs HBM2e 

**Instancias de GPU [https://aws.amazon.com/ec2/H100: tipos de instancia/p5/](https://aws.amazon.com/ec2/instance-types/p5/)**
+ **ml.p5.48xlarge**: 8 NVIDIA H100 (80 GB por GPU) GPUs HBM3 

**Instancias de GPU [https://aws.amazon.com/ec2/H200: tipos de instancia/p5/](https://aws.amazon.com/ec2/instance-types/p5/)**
+ **ml.p5e.48xlarge**: 8 NVIDIA H200 (141 GB por GPU) GPUs HBM3e 
+ **ml.p5en.48xlarge - 8 NVIDIA H200 (141 GB por GPU)** GPUs HBM3e 

**Instancias de GPU https://aws.amazon.com/ec2/ B200: tipos de** [instancia/p6/](https://aws.amazon.com/ec2/instance-types/p6/)
+ **ml.p6b.48xlarge - 8 NVIDIA B200** GPUs

## Particiones de GPU
<a name="sagemaker-hyperpod-eks-gpu-partitioning-profiles"></a>

Los perfiles MIG de NVIDIA definen cómo GPUs se particionan. Cada perfil especifica la asignación de cómputo y memoria por instancia MIG. Los siguientes son los perfiles MIG asociados a cada tipo de GPU:

**GPU A100 (ml.p4d.24xlarge)**


| Perfil | Memoria (GB) | Instancias por GPU | Total por ml.p4d.24xlarge | 
| --- | --- | --- | --- | 
| `1g.5gb` | 5 | 7 | 56 | 
| `2g.10gb` | 10 | 3 | 24 | 
| `3g.20gb` | 20 | 2 | 16 | 
| `4g.20gb` | 20 | 1 | 8 | 
| `7g.40gb` | 40 | 1 | 8 | 

**GPU H100 (ml.p5.48xlarge)**


| Perfil | Memoria (GB) | Instancias por GPU | Total por ml.p5,48 x large | 
| --- | --- | --- | --- | 
| `1g.10gb` | 10 | 7 | 56 | 
| `1g.20gb` | 20 | 4 | 32 | 
| `2g.20gb` | 20 | 3 | 24 | 
| `3g.40gb` | 40 | 2 | 16 | 
| `4g.40gb` | 40 | 1 | 8 | 
| `7g.80gb` | 80 | 1 | 8 | 

**GPU H200 (ml.p5e.48xlarge y ml.p5en.48xlarge)**


| Perfil | Memoria (GB) | Instancias por GPU | Total por ml.p5en.48xlarge | 
| --- | --- | --- | --- | 
| `1g.18gb` | 18 | 7 | 56 | 
| `1g.35gb` | 35 | 4 | 32 | 
| `2g.35gb` | 35 | 3 | 24 | 
| `3g.71gb` | 71 | 2 | 16 | 
| `4g.71gb` | 71 | 1 | 8 | 
| `7g.141gb` | 141 | 1 | 8 | 

**Topics**
+ [Ventajas](#sagemaker-hyperpod-eks-gpu-partitioning-benefits)
+ [Tipos de instancias admitidos](#sagemaker-hyperpod-eks-gpu-partitioning-instance-types)
+ [Particiones de GPU](#sagemaker-hyperpod-eks-gpu-partitioning-profiles)
+ [Configuración de particiones de GPU en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning-setup.md)
+ [Ciclo de vida y etiquetas de los nodos](sagemaker-hyperpod-eks-gpu-partitioning-labels.md)
+ [Envío de tareas con MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md)

# Configuración de particiones de GPU en Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup"></a>

**Topics**
+ [Requisitos previos](#sagemaker-hyperpod-eks-gpu-partitioning-setup-prerequisites)
+ [Creación de un clúster con configuración MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-create-cluster)
+ [Añadir un operador de GPU a un clúster existente](#sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator)
+ [Actualización de la configuración de MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-update)
+ [Verificación de la configuración MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-verify)
+ [Comandos comunes para depurar la configuración MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-debug-commands)
+ [Uso de SageMaker AI Console](#sagemaker-hyperpod-eks-gpu-partitioning-setup-console)

## Requisitos previos
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-prerequisites"></a>
+ HyperPod Clúster de Amazon EKS con instancias de GPU compatibles
+ NVIDIA GPU Operator instalado
+ Permisos de IAM adecuados para la administración de clústeres

## Creación de un clúster con configuración MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-create-cluster"></a>

### Usando AWS CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-create-cluster-cli"></a>

```
aws sagemaker create-cluster \
  --cluster-name my-mig-cluster \
  --orchestrator 'Eks={ClusterArn=arn:aws:eks:region:account:cluster/cluster-name}' \
  --instance-groups '{
    "InstanceGroupName": "gpu-group",
    "InstanceType": "ml.p4d.24xlarge",
    "InstanceCount": 1,
    "LifeCycleConfig": {
       "SourceS3Uri": "s3://my-bucket",
       "OnCreate": "on_create_script.sh"
    },
    "KubernetesConfig": {
       "Labels": {
          "nvidia.com/mig.config": "all-1g.5gb"
       }
    },
    "ExecutionRole": "arn:aws:iam::account:role/execution-role",
    "ThreadsPerCore": 1
  }' \
  --vpc-config '{
     "SecurityGroupIds": ["sg-12345"],
     "Subnets": ["subnet-12345"]
  }' \
  --node-provisioning-mode Continuous
```

### Usando CloudFormation
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-create-cluster-cfn"></a>

```
{
  "ClusterName": "my-mig-cluster",
  "InstanceGroups": [
    {
      "InstanceGroupName": "gpu-group",
      "InstanceType": "ml.p4d.24xlarge",
      "InstanceCount": 1,
      "KubernetesConfig": {
        "Labels": {
          "nvidia.com/mig.config": "all-2g.10gb"
        }
      },
      "ExecutionRole": "arn:aws:iam::account:role/execution-role"
    }
  ],
  "Orchestrator": {
    "Eks": {
      "ClusterArn": "arn:aws:eks:region:account:cluster/cluster-name"
    }
  },
  "NodeProvisioningMode": "Continuous"
}
```

## Añadir un operador de GPU a un clúster existente
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator"></a>

### Instale GPU Operator
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-install"></a>

`{$AWS_REGION}`Sustitúyala por la región de tu clúster (p. ej., us-east-1, us-west-2).

```
helm install gpuo helm_chart/HyperPodHelmChart/charts/gpu-operator \
-f helm_chart/HyperPodHelmChart/charts/gpu-operator/regional-values/values-{$AWS_REGION}.yaml \
-n kube-system
```

### Verifica la instalación (espera de 2 a 3 minutos)
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-verify"></a>

Compruebe que todos los módulos de operador de GPU estén funcionando:

```
kubectl get pods -n kube-system | grep -E "(gpu-operator|nvidia-)"
```

**Cápsulas esperadas:**
+ gpu-operator-\$1: 1 instancia (controlador de clúster)
+ nvidia-device-plugin-daemonset-\$1 - 1 por nodo de GPU (todas las instancias de GPU)
+ nvidia-mig-manager-\$1 - 1 por nodo compatible con MiG (A100/H100)

### Eliminar el complemento de dispositivo antiguo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-remove"></a>

Deshabilita el existente nvidia-device-plugin:

```
helm upgrade dependencies helm_chart/HyperPodHelmChart \
--set nvidia-device-plugin.devicePlugin.enabled=false \
-n kube-system
```

### Verifica los recursos de la GPU
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-verify-gpu"></a>

Confirme que los nodos muestren la capacidad de la GPU. Debería mostrar: nvidia.com/gpu: 8 (o el número real de GPU).

```
kubectl describe nodes | grep "nvidia.com/gpu"
```

## Actualización de la configuración de MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update"></a>

**Preparación de los nodos antes de las actualizaciones de MIG**  
Antes de actualizar las configuraciones de MIG en tu grupo de instancias, debes preparar los nodos para evitar la interrupción de la carga de trabajo. Sigue estos pasos para drenar de forma segura las cargas de trabajo de los nodos que se van a reconfigurar.

### Paso 1: Identifique los nodos del grupo de instancias
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-identify"></a>

Primero, identifica todos los nodos que pertenecen al grupo de instancias que deseas actualizar:

```
# List all nodes in the instance group
kubectl get nodes -l sagemaker.amazonaws.com/instance-group-name=INSTANCE_GROUP_NAME

# Example:
kubectl get nodes -l sagemaker.amazonaws.com/instance-group-name=p4d-group
```

Este comando devuelve una lista de todos los nodos del grupo de instancias especificado. Anota el nombre de cada nodo para los siguientes pasos.

### Paso 2: acordonar y drenar cada nodo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-drain"></a>

Para cada nodo identificado en el paso 1, lleve a cabo las siguientes acciones:

#### Acordona el nodo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-drain-cordon"></a>

El acordonamiento evita que se programen nuevos módulos en el nodo:

```
# Cordon a single node
kubectl cordon NODE_NAME

# Example:
kubectl cordon hyperpod-i-014a41a7001adca60
```

#### Vacíe los módulos de carga de trabajo del nodo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-drain-evict"></a>

Vacíe el nodo para expulsar todos los módulos de carga de trabajo y, al mismo tiempo, preservar los módulos del sistema:

```
# Drain the node (ignore DaemonSets and evict pods)
kubectl drain NODE_NAME \
  --ignore-daemonsets \
  --delete-emptydir-data \
  --force \
  --grace-period=300

# Example:
kubectl drain hyperpod-i-014a41a7001adca60 \
  --ignore-daemonsets \
  --delete-emptydir-data \
  --force \
  --grace-period=300
```

**Explicación de las opciones de comando:**
+ `--ignore-daemonsets`- Permite continuar con la operación de drenaje incluso si hay DaemonSet cápsulas
+ `--delete-emptydir-data`- Elimina los pods utilizando volúmenes EmptyDir (necesarios para que el drenaje se realice correctamente)
+ `--force`- Obliga a eliminar los pods no gestionados por un controlador (utilízalos con precaución)
+ `--grace-period=300`- Da a las cápsulas 5 minutos para que terminen sin problemas

**importante**  
La operación de drenaje puede tardar varios minutos en función del número de cápsulas y de sus períodos de gracia de cierre
Los pods del sistema de los siguientes espacios de nombres seguirán ejecutándose: `kube-system``cert-manager`,`kubeflow`,`hyperpod-inference-system`,`kube-public`,`mpi-operator`,,`gpu-operator`,`aws-hyperpod`, `jupyter-k8s-system``hyperpod-observability`, y `kueue-system` `keda`
DaemonSet los pods permanecerán en el nodo (se ignoran por diseño)

### Paso 3: Compruebe que no se esté ejecutando ningún pod de carga de trabajo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-verify"></a>

Tras el vaciado, compruebe que no quede ningún módulo de carga de trabajo en los nodos (excepto los espacios de nombres del sistema):

```
# Check for any remaining pods outside system namespaces
kubectl get pods --all-namespaces --field-selector spec.nodeName=NODE_NAME \
  | grep -v "kube-system" \
  | grep -v "cert-manager" \
  | grep -v "kubeflow" \
  | grep -v "hyperpod-inference-system" \
  | grep -v "kube-public" \
  | grep -v "mpi-operator" \
  | grep -v "gpu-operator" \
  | grep -v "aws-hyperpod" \
  | grep -v "jupyter-k8s-system" \
  | grep -v "hyperpod-observability" \
  | grep -v "kueue-system" \
  | grep -v "keda"

# Example:
kubectl get pods --all-namespaces --field-selector spec.nodeName=hyperpod-i-014a41a7001adca60 \
  | grep -v "kube-system" \
  | grep -v "cert-manager" \
  | grep -v "kubeflow" \
  | grep -v "hyperpod-inference-system" \
  | grep -v "kube-public" \
  | grep -v "mpi-operator" \
  | grep -v "gpu-operator" \
  | grep -v "aws-hyperpod" \
  | grep -v "jupyter-k8s-system" \
  | grep -v "hyperpod-observability" \
  | grep -v "kueue-system" \
  | grep -v "keda"
```

**Resultado esperado:** si el nodo está drenado correctamente, este comando no debería arrojar ningún resultado (o solo mostrar la fila del encabezado). Si algún pod sigue ejecutándose, investiga por qué no se ha desalojado y elimínalo manualmente si es necesario.

### Paso 4: Verificar el estado de preparación del nodo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-readiness"></a>

Antes de continuar con la actualización del MIG, confirme que todos los nodos estén acordonados:

```
# Check node status - should show "SchedulingDisabled"
kubectl get nodes -l sagemaker.amazonaws.com/instance-group-name=INSTANCE_GROUP_NAME
```

Los nodos deberían aparecer `SchedulingDisabled` en la columna STATUS, lo que indica que están acordonados y preparados para la actualización del MIG.

### Actualice el perfil MIG en el clúster existente
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-change"></a>

Puede cambiar los perfiles MIG en los clústeres existentes:

```
aws sagemaker update-cluster \
  --cluster-name my-mig-cluster \
  --instance-groups '{
    "InstanceGroupName": "gpu-group",
    "InstanceType": "ml.p4d.24xlarge",
    "InstanceCount": 1,
    "KubernetesConfig": {
       "Labels": {
          "nvidia.com/mig.config": "all-3g.20gb"
       }
    },
    "ExecutionRole": "arn:aws:iam::account:role/execution-role"
  }'
```

**nota**  
Si los trabajos ya se están ejecutando en un nodo, la partición MIG fallará. El usuario recibirá un mensaje de error para drenar los nodos antes de volver a intentar la partición MIG.

## Verificación de la configuración MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-verify"></a>

Tras la creación o actualización del clúster, compruebe la configuración MIG:

```
# Update kubeconfig
aws eks update-kubeconfig --name your-eks-cluster --region us-east-2

# Check MIG labels
kubectl get node NODE_NAME -o=jsonpath='{.metadata.labels}' | grep mig

# Check available MIG resources
kubectl describe node NODE_NAME | grep -A 10 "Allocatable:"
```

## Comandos comunes para depurar la configuración MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-debug-commands"></a>

Use los siguientes comandos para solucionar problemas y validar la configuración de MIG en su clúster:

```
# Check GPU Operator status
kubectl get pods -n gpu-operator-resources

# View MIG configuration
kubectl exec -n gpu-operator-resources nvidia-driver-XXXXX -- nvidia-smi mig -lgi

# Check device plugin configuration
kubectl logs -n gpu-operator-resources nvidia-device-plugin-XXXXX

# Monitor node events
kubectl get events --field-selector involvedObject.name=NODE_NAME
```

**nota**  
Sustituya `nvidia-driver-XXXXX` y `nvidia-device-plugin-XXXXX` por los nombres reales de los pods del clúster y `NODE_NAME` por el nombre del nodo.

## Uso de SageMaker AI Console
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-console"></a>

### Creación de un nuevo clúster con MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-console-create"></a>

1. Vaya a **Amazon SageMaker AI** > **HyperPod Clústeres** > **Administración de clústeres** > **Crear HyperPod clúster**

1. Seleccione **Orchestrated by EKS**

1. Elija la **configuración personalizada** y compruebe que **GPU Operator** esté activado de forma predeterminada

1. En la sección **Grupos de instancias**, haz clic en **Añadir grupo**

1. Configura el grupo de instancias y ve a **Configuración avanzada** para activar la opción **Usar partición de GPU** y elige la **configuración MIG que desees en el menú** desplegable

1. Haz clic en **Añadir grupo de instancias** y completa el resto de la configuración del clúster

1. Haga clic en **Enviar** para crear el clúster

### Actualización de la configuración MIG en el clúster existente
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-console-update"></a>

1. Vaya a **Amazon SageMaker AI** > **HyperPod Clústeres** > **Administración de clústeres**

1. Selecciona tu clúster existente y haz clic en **Editar** en el grupo de instancias que deseas modificar

1. En **Configuración avanzada**, activa la opción **Usar partición de GPU** si aún no está habilitada y selecciona una **configuración MIG diferente en el menú** desplegable

1. **Haz clic en Guardar cambios**

# Ciclo de vida y etiquetas de los nodos
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels"></a>

Amazon SageMaker HyperPod realiza comprobaciones exhaustivas del estado de las instancias del clúster durante la creación y actualización de los HyperPod clústeres antes de que comience el particionamiento de la GPU. HyperPod el agente de monitoreo de estado monitorea continuamente el estado de las instancias particionadas por GPU.

## Estados de configuración de MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels-states"></a>

Los nodos con configuración de partición de GPU pasan por varios estados:
+ **Pendiente**: el nodo se está configurando con un perfil MIG
+ **Configuración**: el operador de GPU está aplicando la partición MIG
+ **Correcto**: la partición de la GPU se completó correctamente
+ **Fallo**: se produjo un error al particionar la GPU

## Supervisión de los estados de los nodos
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels-monitoring"></a>

```
# Check node health status
kubectl get nodes -l sagemaker.amazonaws.com/node-health-status=Schedulable

# Monitor MIG configuration progress
kubectl get node NODE_NAME -o jsonpath='{.metadata.labels.nvidia\.com/mig\.config\.state}'

# Check for configuration errors
kubectl describe node NODE_NAME | grep -A 5 "Conditions:"
```

## Etiquetas y manchas personalizadas
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels-custom"></a>

Puedes gestionar la configuración de MIG con etiquetas y etiquetas personalizadas para etiquetar las particiones de la GPU y aplicarlas en todas las instancias:

```
{
  "KubernetesConfig": {
    "Labels": {
      "nvidia.com/mig.config": "all-2g.10gb",
      "task-type": "inference",
      "environment": "production"
    },
    "Taints": [
      {
        "Key": "gpu-task",
        "Value": "mig-enabled",
        "Effect": "NoSchedule"
      }
    ]
  }
}
```

# Envío de tareas con MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission"></a>

**Topics**
+ [Uso de Kubernetes YAML](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-kubectl)
+ [Uso de HyperPod CLI](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-cli)
+ [Despliegue de modelos con MIG](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-deployment)
+ [Uso de HyperPod CLI](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli)

## Uso de Kubernetes YAML
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-kubectl"></a>

```
apiVersion: batch/v1
kind: Job
metadata:
  name: mig-job
  namespace: default
spec:
  template:
    spec:
      containers:
      - name: pytorch
        image: pytorch/pytorch:latest
        resources:
          requests:
            nvidia.com/mig-1g.5gb: 1
            cpu: "100m"
            memory: "128Mi"
          limits:
            nvidia.com/mig-1g.5gb: 1
      restartPolicy: Never
```

## Uso de HyperPod CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-cli"></a>

Utilice la HyperPod CLI para implementar JumpStart modelos compatibles con MIG. El siguiente ejemplo muestra los nuevos parámetros de CLI para el particionamiento de la GPU:

```
# Deploy JumpStart model with MIG
hyp create hyp-jumpstart-endpoint \
  --model-id deepseek-llm-r1-distill-qwen-1-5b \
  --instance-type ml.p5.48xlarge \
  --accelerator-partition-type mig-2g.10gb \
  --accelerator-partition-validation True \
  --endpoint-name my-endpoint \
  --tls-certificate-output-s3-uri s3://certificate-bucket/ \
  --namespace default
```

## Despliegue de modelos con MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-deployment"></a>

HyperPod La inferencia permite implementar los modelos en los perfiles MIG a través de Studio Classic y `kubectl` CLI HyperPod . Para implementar JumpStart los modelos`kubectl`, haga CRDs que los campos se llamen `spec.server.acceleratorPartitionType` para implementar el modelo en el perfil MIG deseado. Realizamos validaciones para garantizar que los modelos se puedan implementar en el perfil MIG seleccionado en el CRD. En caso de que desee deshabilitar las comprobaciones de validación de MIG, utilice esta opción. `spec.server.validations.acceleratorPartitionValidation` `False`

### JumpStart Modelos
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-jumpstart"></a>

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name: deepseek-model
  namespace: default
spec:
  sageMakerEndpoint:
    name: deepseek-endpoint
  model:
    modelHubName: SageMakerPublicHub
    modelId: deepseek-llm-r1-distill-qwen-1-5b
  server:
    acceleratorPartitionType: mig-7g.40gb
    instanceType: ml.p4d.24xlarge
```

### Implemente un modelo desde Amazon S3 mediante InferenceEndpointConfig
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-s3"></a>

InferenceEndpointConfig le permite implementar un modelo personalizado desde Amazon S3. Para implementar un modelo en MIG, `spec.worker.resources` mencione el perfil MIG en `requests` y. `limits` Consulte una implementación sencilla a continuación:

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: custom-model
  namespace: default
spec:
  replicas: 1
  modelName: my-model
  endpointName: my-endpoint
  instanceType: ml.p4d.24xlarge
  modelSourceConfig:
    modelSourceType: s3
    s3Storage:
      bucketName: my-model-bucket
      region: us-east-2
    modelLocation: model-path
  worker:
    resources:
      requests:
        nvidia.com/mig-3g.20gb: 1
        cpu: "5600m"
        memory: "10Gi"
      limits:
        nvidia.com/mig-3g.20gb: 1
```

### Implemente el modelo de FSx for Lustre usando InferenceEndpointConfig
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-fsx"></a>

InferenceEndpointConfig le permite implementar un modelo personalizado desde FSx para Lustre. Para implementar un modelo en MIG, `spec.worker.resources` mencione el perfil MIG en y. `requests` `limits` Consulte una implementación sencilla a continuación:

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: custom-model
  namespace: default
spec:
  replicas: 1
  modelName: my-model
  endpointName: my-endpoint
  instanceType: ml.p4d.24xlarge
  modelSourceConfig:
    modelSourceType: fsx
    fsxStorage:
      fileSystemId: fs-xxxxx
    modelLocation: location-on-fsx
  worker:
    resources:
      requests:
        nvidia.com/mig-3g.20gb: 1
        cpu: "5600m"
        memory: "10Gi"
      limits:
        nvidia.com/mig-3g.20gb: 1
```

### Uso de la interfaz de usuario clásica de Studio
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio"></a>

#### Implementación JumpStart de modelos con MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-deploy"></a>

1. Abra **Studio Classic** y navegue hasta **JumpStart**

1. Busque o busque el modelo que desee (por ejemplo, "DeepSeek«, «Llama», etc.)

1. Haga clic en la tarjeta del modelo y seleccione **Desplegar**

1. En la configuración de despliegue:
   + Elija **HyperPod**como objetivo de despliegue
   + Seleccione su clúster compatible con MIG en el menú desplegable
   + En **Configuración de la instancia**:
     + Seleccione el tipo de instancia (por ejemplo,) `ml.p4d.24xlarge`
     + Elija el **tipo de partición de la GPU** entre las opciones disponibles
     + Configure los ajustes de **recuento de instancias** y **escalado automático**

1. **Revise y haga clic en Implementar**

1. Supervise el progreso de la implementación en la sección **Endpoints**

#### Opciones de configuración del modelo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-config"></a>

**Configuración del punto final:**
+ **Nombre del punto** de conexión: identificador único para su implementación
+ **Nombre de la variante**: variante de configuración (predeterminada: AllTraffic)
+ **Tipo de instancia**: debe ser compatible con la partición de la GPU (serie p)
+ **Perfil MIG**: partición de GPU
+ **Recuento inicial de instancias**: número de instancias que se van a implementar
+ **Escalado automático**: habilita el escalado dinámico en función del tráfico

**Configuración avanzada:**
+ **Ubicación de los datos del modelo**: ruta de Amazon S3 para modelos personalizados
+ **Imagen del contenedor**: contenedor de inferencias personalizado (opcional)
+ **Variables de entorno**: configuraciones específicas del modelo
+ Configuración de **Amazon VPC: configuración de** aislamiento de red

#### Supervisión de los modelos implementados
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-monitor"></a>

1. **Vaya a **Studio Classic** > **Implementaciones > Terminales****

1. Seleccione su terminal compatible con MIG

1. Vea las métricas, que incluyen:
   + **Utilización de MIG: uso** por partición de GPU
   + **Consumo de memoria**: por partición de GPU
   + **Latencia de inferencia: tiempo** de procesamiento de la solicitud
   + **Rendimiento**: solicitudes por segundo

1. Configura ** CloudWatch las alarmas de Amazon** para un monitoreo automatizado

1. Configure **políticas de autoescalado en función del uso** de MIG

## Uso de HyperPod CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli"></a>

### JumpStart Despliegue
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli-jumpstart"></a>

El JumpStart comando HyperPod CLI incluye dos campos nuevos para la compatibilidad con MIG:
+ `--accelerator-partition-type`- Especifica la configuración MIG (por ejemplo, mig-4g.20gb)
+ `--accelerator-partition-validation`- Valida la compatibilidad entre los modelos y el perfil MIG (predeterminado: true)

```
hyp create hyp-jumpstart-endpoint \
  --version 1.1 \
  --model-id deepseek-llm-r1-distill-qwen-1-5b \
  --instance-type ml.p4d.24xlarge \
  --endpoint-name js-test \
  --accelerator-partition-type "mig-4g.20gb" \
  --accelerator-partition-validation true \
  --tls-certificate-output-s3-uri s3://my-bucket/certs/
```

### Despliegue personalizado de terminales
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli-custom"></a>

Para la implementación a través de un punto final personalizado, utilice los campos existentes `--resources-requests` y habilite `--resources-limits` la funcionalidad del perfil MIG:

```
hyp create hyp-custom-endpoint \
  --namespace default \
  --metadata-name deepseek15b-mig-10-14-v2 \
  --endpoint-name deepseek15b-mig-endpoint \
  --instance-type ml.p4d.24xlarge \
  --model-name deepseek15b-mig \
  --model-source-type s3 \
  --model-location deep-seek-15b \
  --prefetch-enabled true \
  --tls-certificate-output-s3-uri s3://sagemaker-bucket \
  --image-uri lmcache/vllm-openai:v0.3.7 \
  --container-port 8080 \
  --model-volume-mount-path /opt/ml/model \
  --model-volume-mount-name model-weights \
  --s3-bucket-name model-storage-123456789 \
  --s3-region us-east-2 \
  --invocation-endpoint invocations \
  --resources-requests '{"cpu":"5600m","memory":"10Gi","nvidia.com/mig-3g.20gb":"1"}' \
  --resources-limits '{"nvidia.com/mig-3g.20gb":"1"}' \
  --env '{
    "OPTION_ROLLING_BATCH":"vllm",
    "SERVING_CHUNKED_READ_TIMEOUT":"480",
    "DJL_OFFLINE":"true",
    "NUM_SHARD":"1",
    "SAGEMAKER_PROGRAM":"inference.py",
    "SAGEMAKER_SUBMIT_DIRECTORY":"/opt/ml/model/code",
    "MODEL_CACHE_ROOT":"/opt/ml/model",
    "SAGEMAKER_MODEL_SERVER_WORKERS":"1",
    "SAGEMAKER_MODEL_SERVER_TIMEOUT":"3600",
    "OPTION_TRUST_REMOTE_CODE":"true",
    "OPTION_ENABLE_REASONING":"true",
    "OPTION_REASONING_PARSER":"deepseek_r1",
    "SAGEMAKER_CONTAINER_LOG_LEVEL":"20",
    "SAGEMAKER_ENV":"1"
  }'
```

# Características de resiliencia de clústeres para la organización de SageMaker HyperPod clústeres con Amazon EKS
<a name="sagemaker-hyperpod-eks-resiliency"></a>

SageMaker HyperPod proporciona las siguientes características de resiliencia de clústeres. 

**Topics**
+ [Sistema de Monitoreo de Salud](sagemaker-hyperpod-eks-resiliency-health-monitoring-agent.md)
+ [Comprobaciones de estado básicas](sagemaker-hyperpod-eks-resiliency-basic-health-check.md)
+ [Comprobaciones de estado exhaustivas](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md)
+ [Recuperación automática de nodos](sagemaker-hyperpod-eks-resiliency-node-recovery.md)
+ [Etiquetas de Kubernetes relacionadas con la resiliencia según SageMaker HyperPod](sagemaker-hyperpod-eks-resiliency-node-labels.md)
+ [Cómo poner en cuarentena, reemplazar o reiniciar manualmente un nodo](sagemaker-hyperpod-eks-resiliency-manual.md)
+ [Configuraciones de resiliencia sugeridas](sagemaker-hyperpod-eks-resiliency-config-tips.md)

# Sistema de Monitoreo de Salud
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-agent"></a>

SageMaker HyperPod El sistema de monitoreo de la salud incluye dos componentes 

1. Agentes de monitoreo instalados en sus nodos, que incluyen el Health Monitoring Agent (HMA) que actúa como monitor de estado en el host y un conjunto de monitores de out-of-node estado.

1. Sistema de recuperación de nodos gestionado por. SageMaker HyperPod El sistema de monitoreo del estado monitoreará el estado del nodo de forma continua a través de agentes de monitoreo y, luego, tomará medidas automáticamente cuando se detecte una falla utilizando el sistema de recuperación de nodos. 

![\[Esta imagen ilustra cómo el sistema de monitoreo del estado se integró con HyperPod Cluster.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-resilience-event.png)


## Controles de salud realizados por el agente de SageMaker HyperPod monitoreo de salud
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-agent-list-of-checks"></a>

El agente SageMaker HyperPod de control de la salud comprueba lo siguiente.

**NVIDIA GPUs**
+ [Notificaciones de infracción de la política de DCGM](https://docs.nvidia.com/datacenter/dcgm/3.0/user-guide/feature-overview.html#notifications)
+ Errores en el resultado de `nvidia-smi`
+ Varios errores en los registros generados por la plataforma Amazon Elastic Compute Cloud (EC2)
+ Validación del recuento de GPU: si no coincide el número esperado de un tipo de instancia concreto (por ejemplo: 8 GPUs GPUs en el tipo de instancia ml.p5.48xlarge) y el recuento devuelto por, HMA reinicia el nodo `nvidia-smi` 

**AWS Trainium**
+ Errores en el resultado del [monitor AWS Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide.html)
+ Salidas generadas por el detector de problemas de nodos neuronales (para obtener más información sobre el detector de problemas de nodos AWS neuronales, consulte [Detección y recuperación de problemas de nodos AWS neuronales en clústeres de Amazon EKS](https://aws.amazon.com/blogs/machine-learning/node-problem-detection-and-recovery-for-aws-neuron-nodes-within-amazon-eks-clusters/)).
+ Varios errores en los registros generados por la plataforma Amazon EC2
+ Validación del recuento de dispositivos neuronales: si hay una discrepancia entre el número real de dispositivos neuronales en un tipo de instancia concreto y el recuento devuelto por`neuron-ls`, HMA reinicia el nodo

 Las comprobaciones anteriores son pasivas y las comprobaciones de estado de los nodos se realizan de forma continua en los HyperPod nodos. Además de estas comprobaciones, HyperPod también realiza comprobaciones de estado exhaustivas (o activas) durante la creación y actualización de HyperPod los clústeres. Más información sobre los [controles de estado profundos](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-resiliency-deep-health-checks.html).

## Detección de fallas
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-fault-detection"></a>

Cuando SageMaker HyperPod detecta una falla, implementa una respuesta de cuatro partes:

1. **Etiquetas de nodos**

   1. Estado de Salud: `sagemaker.amazonaws.com/node-health-status`

   1. Tipo de fallo: `sagemaker.amazonaws.com/fault-types` etiqueta para una categorización de alto nivel

   1. Motivo del error: `sagemaker.amazonaws.com/fault-reasons` etiqueta para obtener información detallada sobre el error

1. **Contaminación del nodo**

   1. `sagemaker.amazonaws.com/node-health-status=Unschedulable:NoSchedule`

1. **Anotación de nodo**

   1. Detalles del error: `sagemaker.amazonaws.com/fault-details`

   1. Registra hasta 20 fallos con marcas de tiempo que se produjeron en el nodo

1. **Condiciones del nodo (condición** del nodo de [Kubernetes](https://kubernetes.io/docs/reference/node/node-status/#condition))

   1. Refleja el estado de salud actual en las condiciones del nodo:
      + Tipo: igual que el tipo de falla
      + Estado: `True`
      + Motivo: Igual que el motivo de la culpa
      + LastTransitionTime: Tiempo de aparición de la falla

![\[Esta imagen ilustra cómo funciona el sistema de monitorización del estado cuando se detecta una avería.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-resilience-workflow.png)


## Registros generados por el agente de SageMaker HyperPod monitorización del estado
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-agent-health-check-results"></a>

El agente SageMaker HyperPod de monitorización del estado es una función de out-of-the-box comprobación del estado y se ejecuta de forma continua en todos los HyperPod clústeres. El agente de supervisión del estado publica los eventos de estado detectados en las instancias de GPU o Trn en el grupo de registros del clúster. CloudWatch `/aws/sagemaker/Clusters/`

Los registros de detección del agente de supervisión del HyperPod estado se crean como flujos de registro independientes con el nombre `SagemakerHealthMonitoringAgent` de cada nodo. Puede consultar los registros de detección utilizando la información de CloudWatch registro de la siguiente manera.

```
fields @timestamp, @message
| filter @message like /HealthMonitoringAgentDetectionEvent/
```

Este proceso devuelve un resultado similar al siguiente.

```
2024-08-21T11:35:35.532-07:00
    {"level":"info","ts":"2024-08-21T18:35:35Z","msg":"NPD caught event: %v","details: ":{"severity":"warn","timestamp":"2024-08-22T20:59:29Z","reason":"XidHardwareFailure","message":"Node condition NvidiaErrorReboot is now: True, reason: XidHardwareFailure, message: \"NVRM: Xid (PCI:0000:b9:00): 71, pid=<unknown>, name=<unknown>, NVLink: fatal error detected on link 6(0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\""},"HealthMonitoringAgentDetectionEvent":"HealthEvent"}
2024-08-21T11:35:35.532-07:00
    {"level":"info","ts":"2024-08-21T18:35:35Z","msg":"NPD caught event: %v","details: ":{"severity":"warn","timestamp":"2024-08-22T20:59:29Z","reason":"XidHardwareFailure","message":"Node condition NvidiaErrorReboot is now: True, reason: XidHardwareFailure, message: \"NVRM: Xid (PCI:0000:b9:00): 71, pid=<unknown>, name=<unknown>, NVLink: fatal error detected on link 6(0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\""},"HealthMonitoringAgentDetectionEvent":"HealthEvent"}
```

# Comprobaciones de estado básicas
<a name="sagemaker-hyperpod-eks-resiliency-basic-health-check"></a>

SageMaker HyperPod realiza un conjunto de *comprobaciones de estado básicas* en las instancias del clúster durante la creación y actualización de HyperPod los clústeres. Estas comprobaciones de estado básicas son independientes del orquestador, por lo que son aplicables independientemente de las plataformas de orquestación subyacentes compatibles ( SageMaker HyperPod Amazon EKS o Slurm).

Las comprobaciones de estado básicas supervisan las instancias del clúster para detectar problemas relacionados con dispositivos, como, por ejemplo, los aceleradores (núcleos de GPU y Trainium) y los dispositivos de red (Elastic Fabric Adapter o EFA). Para ver la lista de comprobaciones de estado básicas del clúster, consulte [Cluster health checks](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html#sagemaker-hyperpod-resiliency-slurm-cluster-health-check).

# Comprobaciones de estado exhaustivas
<a name="sagemaker-hyperpod-eks-resiliency-deep-health-checks"></a>

SageMaker HyperPod realiza *comprobaciones exhaustivas del estado* de las instancias del clúster durante la creación y actualización de HyperPod los clústeres. También puedes solicitar comprobaciones de estado exhaustivas de un SageMaker HyperPod clúster a pedido mediante la [StartClusterHealthCheck](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StartClusterHealthCheck.html)API. Las exhaustivas comprobaciones de estado garantizan la fiabilidad y la estabilidad de los SageMaker HyperPod clústeres al probar los componentes de hardware e infraestructura subyacentes. Este método proactivo ayuda a identificar y mitigar los posibles problemas en una fase temprana del ciclo de vida del clúster.

## Lista de controles de estado exhaustivos realizados por SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-resiliency-deep-health-checks-list"></a>

SageMaker HyperPod ejecuta las siguientes comprobaciones de estado exhaustivas.

**Comprobaciones de estado exhaustivas de instancias**


| Categoría | Nombre de la utilidad | Compatibilidad de los tipos de instancias | Description (Descripción) | 
| --- | --- | --- | --- | 
| Acelerador | GPU/recuento NVLink  | GPU | Verifica los recuentos GPU/NVLink . | 
| Acelerador | [Diagnóstico de DCGM](https://docs.nvidia.com/datacenter/dcgm/latest/user-guide/dcgm-diagnostics.html) de nivel 4 | GPU | Evalúa el estado y la funcionalidad de NVIDIA GPUs mediante la ejecución de diagnósticos DCGM (NVIDIA Data Center GPU Manager) en el nivel 4, que incluyen pruebas de memoria adicionales. | 
| Acelerador | Neuron sysfs | Trainium | En las instancias impulsadas por Trainium, el estado de los dispositivos de Neuron se determina mediante la lectura de los contadores de [Neuron sysfs](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-sysfs-user-guide.html) propagada directamente por el controlador de Neuron. | 
| Acelerador | Comprobación del hardware de Neuron | Trainium | Ejecuta una carga de trabajo de entrenamiento y verifica los resultados para probar el hardware. | 
| Acelerador | Prueba local de NCCOM | Trainium | Evalúa el rendimiento de las operaciones de comunicación colectiva en nodos individuales de Trainium. | 
| Network | EFA | GPU y Trainium | Realiza una evaluación comparativa de la latencia y el ancho de banda en el dispositivo EFA asociado. | 

**Comprobaciones de estado exhaustivas de clústeres**


| Categoría | Nombre de la utilidad | Compatibilidad de los tipos de instancias | Description (Descripción) | 
| --- | --- | --- | --- | 
| Acelerador | Prueba de NCCL | GPU | Verifica el rendimiento de las operaciones de comunicación colectiva en varios dispositivos NVIDIA GPUs | 
| Acelerador | Prueba de clúster de NCCOM | Trainium | Verifica el rendimiento de las operaciones de comunicación colectiva en varios nodos de Trainium. | 

**Controles de estado exhaustivos con grupos de instancias flexibles**  
En el caso de los grupos que se utilizan `InstanceRequirements` con varios tipos de instancias, las comprobaciones de estado exhaustivas se comportan de la siguiente manera:  
Las comprobaciones de estado exhaustivas a nivel de instancia solo se ejecutan en los tipos de instancias de GPU que cumplen los requisitos. Se omiten los tipos de instancias de CPU dentro de un grupo de instancias flexible.
Las pruebas de conectividad a nivel de clúster (como la NCCL AllReduce) se ejecutan solo entre instancias del mismo tipo dentro del grupo de instancias. Esto garantiza que los resultados de las pruebas sean precisos y reflejen las capacidades de red de cada tipo de instancia.
Si las comprobaciones de estado exhaustivas están habilitadas, al menos un tipo de instancia del grupo de instancias flexible debe admitir las comprobaciones de estado exhaustivas.

## Registros de las comprobaciones de estado exhaustivas
<a name="sagemaker-hyperpod-eks-resiliency-deep-health-checks-log"></a>

A continuación, se muestran ejemplos de registros de las comprobaciones de estado SageMaker HyperPod exhaustivas.

**Registros de clústeres** 

Los registros de comprobaciones de estado exhaustivas a nivel de clúster se almacenan en su CloudWatch grupo de registros en `/aws/sagemaker/Clusters/<cluster_name>/<cluster_id>`

Los flujos de registros se registran en `DeepHealthCheckResults/<log_stream_id>`.

Tal y como se muestra en el siguiente ejemplo, los registros de resultados de las comprobaciones de estado exhaustivas muestran el ID de la instancia que no aprobó las comprobaciones y el motivo del error.

```
{
    "level": "error",
    "ts": "2024-06-18T21:15:22Z",
    "msg": "Encountered FaultyInstance. Replace the Instance. Region: us-west-2, InstanceType: p4d.24xlarge. ERROR:Bandwidth has less than threshold: Expected minimum threshold :80,NCCL Test output Bw: 30"
}
```

**Registros de instancias** 

Los registros de las comprobaciones de estado exhaustivas de instancias se almacenan en `/var/log/aws/clusters/sagemaker-deep-health-check.log` en cada nodo. Para acceder al nodo mediante SSH y abrir el archivo de registro, ejecute el siguiente comando.

```
cat /var/log/aws/clusters/sagemaker-deep-health-check.log
```

A continuación se muestra un ejemplo del resultado de las pruebas de esfuerzo del hardware, las pruebas de esfuerzo de [NVIDIA DCGM](https://developer.nvidia.com/dcgm) y las pruebas de conectividad de EFA.

```
# Hardware Stress Test output

2024-08-20T21:53:58Z info Executing Hardware stress check with command: stress-ng, and args: [--cpu 32 --vm 2 --hdd 1 --fork 8 --switch 4 --timeout 60 --metrics]

2024-08-20T21:54:58Z info stress-ng success

2024-08-20T21:54:58Z    info    GpuPci Count check success

# DCGM Stress Test

2024-08-20T22:25:02Z    info    DCGM diagnostic health summary: dcgmCheckLevel: 0 dcgmVersion: 3.3.7 gpuDriverVersion: 535.183.01, gpuDeviceIds: [2237] replacementRequired: false rebootRequired:false

# EFA Loopback Test

2024-08-20T22:26:28Z    info    EFA Loopback check passed for device: rdmap0s29 . Output summary is MaxBw: 58.590000, AvgBw: 32.420000, MaxTypicalLat: 30.870000, MinTypicalLat: 20.080000, AvgLat: 21.630000
```

A continuación se muestra un ejemplo del resultado de la prueba de conectividad de NCCL.

```
#       size         count      type   redop    root     time   algbw   busbw #wrong     time   algbw   busbw #wrong

#        (B)    (elements)                               (us)  (GB/s)  (GB/s)            (us)  (GB/s)  (GB/s)       

           8             2     float     sum      -1    353.9    0.00    0.00      0    304.2    0.00    0.00      0
          16             4     float     sum      -1    352.8    0.00    0.00      0    422.9    0.00    0.00      0
          32             8     float     sum      -1    520.0    0.00    0.00      0    480.3    0.00    0.00      0
          64            16     float     sum      -1    563.0    0.00    0.00      0    416.1    0.00    0.00      0
         128            32     float     sum      -1    245.1    0.00    0.00      0    308.4    0.00    0.00      0
         256            64     float     sum      -1    310.8    0.00    0.00      0    304.9    0.00    0.00      0
         512           128     float     sum      -1    304.9    0.00    0.00      0    300.8    0.00    0.00      0
        1024           256     float     sum      -1    509.3    0.00    0.00      0    495.4    0.00    0.00      0
        2048           512     float     sum      -1    530.3    0.00    0.00      0    420.0    0.00    0.00      0
        4096          1024     float     sum      -1    391.2    0.01    0.01      0    384.5    0.01    0.01      0
        8192          2048     float     sum      -1    328.5    0.02    0.02      0    253.2    0.03    0.03      0
       16384          4096     float     sum      -1    497.6    0.03    0.03      0    490.9    0.03    0.03      0
       32768          8192     float     sum      -1    496.7    0.07    0.07      0    425.0    0.08    0.08      0
       65536         16384     float     sum      -1    448.0    0.15    0.15      0    501.0    0.13    0.13      0
      131072         32768     float     sum      -1    577.4    0.23    0.23      0    593.4    0.22    0.22      0
      262144         65536     float     sum      -1    757.8    0.35    0.35      0    721.6    0.36    0.36      0
      524288        131072     float     sum      -1   1057.1    0.50    0.50      0   1019.1    0.51    0.51      0
     1048576        262144     float     sum      -1   1460.5    0.72    0.72      0   1435.6    0.73    0.73      0
     2097152        524288     float     sum      -1   2450.6    0.86    0.86      0   2583.1    0.81    0.81      0
     4194304       1048576     float     sum      -1   4344.5    0.97    0.97      0   4419.3    0.95    0.95      0
     8388608       2097152     float     sum      -1   8176.5    1.03    1.03      0   8197.8    1.02    1.02      0
    16777216       4194304     float     sum      -1    15312    1.10    1.10      0    15426    1.09    1.09      0
    33554432       8388608     float     sum      -1    30149    1.11    1.11      0    29941    1.12    1.12      0
    67108864      16777216     float     sum      -1    57819    1.16    1.16      0    58635    1.14    1.14      0
   134217728      33554432     float     sum      -1   115699    1.16    1.16      0   115331    1.16    1.16      0
   268435456      67108864     float     sum      -1   227507    1.18    1.18      0   228047    1.18    1.18      0
   536870912     134217728     float     sum      -1   453751    1.18    1.18      0   456595    1.18    1.18      0
  1073741824     268435456     float     sum      -1   911719    1.18    1.18      0   911808    1.18    1.18      0
  2147483648     536870912     float     sum      -1  1804971    1.19    1.19      0  1806895    1.19    1.19      0

2024-08-20T16:22:43.831-07:00

# Out of bounds values : 0 OK

2024-08-20T16:22:43.831-07:00

# Avg bus bandwidth    : 0.488398 

2024-08-20T23:22:43Z    info    Nccl test successful. Summary: NcclMaxAlgoBw: 1.190000, NcclAvgAlgoBw: 0.488398, NcclThresholdAlgoBw: 1.180000, NcclOutOfBoundError: OK, NcclOperations: all_reduce_perf, NcclTotalDevices: 2, NcclNodes: 2, NcclClusterMessage:
```

# Recuperación automática de nodos
<a name="sagemaker-hyperpod-eks-resiliency-node-recovery"></a>

Durante la creación o actualización del clúster, los usuarios administradores del clúster pueden seleccionar la opción de recuperación de nodos (instancia) entre `Automatic` (recomendado) y `None` en el clúster. Si está configurado en`Automatic`, SageMaker HyperPod reinicia o reemplaza automáticamente los nodos defectuosos. 

**importante**  
Se recomienda configurar la opción `Automatic`.

La recuperación automática de nodos se ejecuta cuando un agente de supervisión del estado, las comprobaciones de estado básicas y las comprobaciones de estado exhaustivas detectan problemas. Si se establece en `None`, el agente de supervisión del estado etiquetará las instancias cuando se detecte un error, pero no iniciará automáticamente ninguna acción de reparación ni recuperación en los nodos afectados. No se recomienda usar esta opción.

# Etiquetas de Kubernetes relacionadas con la resiliencia según SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-resiliency-node-labels"></a>

*Las etiquetas* son pares clave-valor que se adjuntan a los objetos de [Kubernetes](https://kubernetes.io/docs/concepts/overview/working-with-objects/#kubernetes-objects). SageMaker HyperPod introduce las siguientes etiquetas para las comprobaciones de estado que proporciona.

## Etiquetas de estado de comprobación del nodo
<a name="sagemaker-hyperpod-eks-resiliency-node-labels-health-status"></a>

Las etiquetas `node-health-status` representan el estado del nodo y se deben utilizar como parte del filtro del selector de nodos en los nodos en buen estado.


| Etiqueta | Description (Descripción) | 
| --- | --- | 
| sagemaker.amazonaws.com/node-health-status: Schedulable | El nodo ha superado las comprobaciones de estado básicas y está disponible para ejecutar cargas de trabajo. Esta comprobación de estado es la misma que las [funciones de SageMaker HyperPod resiliencia disponibles actualmente para los clústeres de Slurm](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html). | 
| sagemaker.amazonaws.com/node-health-status: Unschedulable | El nodo está llevando a cabo comprobaciones de estado exhaustivas y no está disponible para ejecutar cargas de trabajo. | 
| sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReplacement | El nodo no ha superado las comprobaciones de estado exhaustivas ni las comprobaciones del agente de supervisión del estado y tiene que reemplazarse. Si la recuperación automática de nodos está habilitada, el nodo se reemplazará automáticamente por. SageMaker HyperPod | 
| sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReboot | El nodo no ha superado las comprobaciones de estado exhaustivas ni las comprobaciones del agente de supervisión del estado y debe reiniciarse. Si la recuperación automática de nodos está habilitada, el nodo se reiniciará automáticamente por. SageMaker HyperPod | 

## Etiquetas de comprobaciones de estado exhaustivas
<a name="sagemaker-hyperpod-eks-resiliency-node-labels-deep-health-check"></a>

Las etiquetas `deep-health-check-status` representan el progreso de una comprobación de estado exhaustiva de un nodo específico. Es útil para que los usuarios de Kubernetes puedan filtrar rápidamente el progreso de las comprobaciones de estado exhaustivas generales.


| Etiqueta | Description (Descripción) | 
| --- | --- | 
| sagemaker.amazonaws.com/deep-health-check-status: InProgress | El nodo está llevando a cabo comprobaciones de estado exhaustivas y no está disponible para ejecutar cargas de trabajo. | 
| sagemaker.amazonaws.com/deep-health-check-status: Passed | El nodo ha realizado correctamente comprobaciones de estado exhaustivas y comprobaciones de los agentes de supervisión del estado. Además, también está disponible para ejecutar cargas de trabajo. | 
| sagemaker.amazonaws.com/deep-health-check-status: Failed | El nodo no ha superado las comprobaciones de estado exhaustivas ni las comprobaciones del agente de supervisión del estado y debe reiniciarse o reemplazarse. Si la recuperación automática de nodos está habilitada, el nodo se reiniciará automáticamente o se sustituirá por. SageMaker HyperPod | 

## Etiquetas de tipo de error y motivo
<a name="sagemaker-hyperpod-eks-resiliency-node-labels-fault-type-and-reason"></a>

A continuación se describen las etiquetas `fault-type` y. `fault-reason`
+ Las etiquetas `fault-type` representan categorías de errores de alto nivel cuando se produce un error en las comprobaciones de estado. Se completan con los errores detectados durante las comprobaciones de estado exhaustivas y de los agentes de supervisión del estado.
+ Las etiquetas `fault-reason` representan el motivo detallado del error asociado a un `fault-type`.

## Cómo SageMaker HyperPod etiquetar
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels"></a>

En los siguientes temas se explica cómo se realiza el etiquetado en función de los distintos casos.

**Topics**
+ [Cuando se agrega un nodo a un SageMaker HyperPod clúster con la configuración de verificación de estado profunda deshabilitada](#sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-off)
+ [Cuando se agrega un nodo a un SageMaker HyperPod clúster con la configuración de verificación de estado profunda habilitada](#sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-on)
+ [Cuando se produzcan errores de computación en los nodos](#sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-node-fails)

### Cuando se agrega un nodo a un SageMaker HyperPod clúster con la configuración de verificación de estado profunda deshabilitada
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-off"></a>

Cuando se agrega un nodo nuevo a un clúster, y si la comprobación de estado profunda no está habilitada para el grupo de instancias, SageMaker HyperPod ejecuta las mismas comprobaciones de estado que las comprobaciones de [ SageMaker HyperPod estado disponibles actualmente para los clústeres de Slurm](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html). 

Si se supera la comprobación de estado, los nodos se marcarán con la siguiente etiqueta.

```
sagemaker.amazonaws.com/node-health-status: Schedulable
```

Si no se supera la comprobación de estado, los nodos finalizarán y se reemplazarán. Este comportamiento es el mismo que el modo en que funciona la comprobación de SageMaker HyperPod estado de los clústeres de Slurm. 

### Cuando se agrega un nodo a un SageMaker HyperPod clúster con la configuración de verificación de estado profunda habilitada
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-on"></a>

Cuando se agrega un nodo nuevo a un SageMaker HyperPod clúster, y si la prueba de estado profunda está habilitada para el grupo de instancias, HyperPod primero se mancha el nodo y se inicia la check/stress prueba de estado profunda de aproximadamente 2 horas en el nodo. Tras la comprobación de estado exhaustiva, hay tres posibles resultados de las etiquetas de los nodos. 

1. Cuando se supere la prueba de comprobación de estado exhaustiva

   ```
   sagemaker.amazonaws.com/node-health-status: Schedulable
   ```

1. Cuando no se supere la prueba de comprobación de estado exhaustiva, y es necesario reemplazar la instancia

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReplacement
   ```

1. Cuando no se supere la prueba de comprobación de estado exhaustiva, y es necesario reiniciar la instancia para volver a ejecutar dicha prueba

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReboot
   ```

Si una instancia no supera la prueba de comprobación de estado exhaustiva, la instancia siempre se reemplazará. Si las pruebas de comprobación de estado exhaustivas se realizan correctamente, se eliminará la taint del nodo.

### Cuando se produzcan errores de computación en los nodos
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-node-fails"></a>

El agente SageMaker HyperPod de monitorización del estado también supervisa de forma continua el estado de cada nodo. Cuando detecta algún error (como un error en la GPU o un bloqueo del controlador), el agente marca el nodo con una de las siguientes etiquetas.

1. Cuando el nodo está en mal estado y debe reemplazarse

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReplacement
   ```

1. Cuando el nodo está en mal estado y debe reiniciarse

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReboot
   ```

 El agente de supervisión del estado también aplica taints al nodo cuando detecta problemas de estado del nodo.

# Cómo poner en cuarentena, reemplazar o reiniciar manualmente un nodo
<a name="sagemaker-hyperpod-eks-resiliency-manual"></a>

Aprenda a poner en cuarentena, reemplazar y reiniciar manualmente un nodo defectuoso en SageMaker HyperPod clústeres organizados con Amazon EKS.

**Cómo poner en cuarentena un nodo y forzar la eliminación de un pod de entrenamiento**

```
kubectl cordon <node-name>
```

Tras la cuarentena, fuerce la expulsión del pod. Esto es útil cuando un pod se queda atascado en la terminación durante más de 30 minutos o `kubectl describe pod` muestra El nodo no está listo en Eventos.

```
kubectl delete pods <pod-name> --grace-period=0 --force
```

SageMaker HyperPod ofrece dos métodos para la recuperación manual de nodos. El enfoque preferido es utilizar el SageMaker HyperPod sistema Reboot and Replace APIs, que proporciona un proceso de recuperación más rápido y transparente que funciona en todos los orquestadores. Como alternativa, puedes usar los comandos kubectl para etiquetar los nodos para las operaciones de reinicio y reemplazo. Ambos métodos activan los mismos SageMaker HyperPod procesos de recuperación.

**Para reiniciar un nodo mediante la API de reinicio**

Para reiniciar un nodo, puede utilizar la BatchRebootClusterNodes API.

 A continuación, se muestra un ejemplo de cómo ejecutar la operación de reinicio en dos instancias de un clúster mediante AWS Command Line Interface:

```
 aws sagemaker batch-reboot-cluster-nodes \
        --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
        --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

**Para reemplazar un nodo mediante la API Replace**

Para reemplazar un nodo, puedes usar la BatchReplaceClusterNodes API de la siguiente manera

 A continuación, se muestra un ejemplo de cómo ejecutar la operación de reemplazo en dos instancias de un clúster mediante AWS Command Line Interface:

```
 aws sagemaker batch-replace-cluster-nodes \
        --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
        --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

**Clústeres gestionados por Karpenter**  
En el caso de SageMaker HyperPod los clústeres que utilizan Karpenter para el aprovisionamiento de nodos, la `BatchReplaceClusterNodes` API no garantiza la creación de un nodo de reemplazo. El nodo especificado se *cancelará*, pero el reemplazo dependerá del modelo de aprovisionamiento de Karpenter. pod-demand-based Karpenter solo crea nodos nuevos cuando hay pods en un `Pending` estado que no se puede programar en los nodos existentes.  
Si la carga de trabajo del nodo eliminado se puede reprogramar en los nodos restantes del clúster (por ejemplo, si esos nodos tienen suficiente capacidad), Karpenter no prevé ningún reemplazo. Para garantizar que se cree un nodo de reemplazo, compruebe que la configuración de la carga de trabajo (como las reglas de antiafinidad de los pods o las solicitudes de recursos) requiera un nodo nuevo para los pods desplazados.  
Somos conscientes de esta limitación y estamos trabajando activamente en una solución que obligue a sustituir los nodos cuando se solicite a través de la API.

**Para reemplazar un nodo mediante kubectl**

Etiquete el nodo por el que desea reemplazarlo`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement`, lo que activa el. SageMaker HyperPod [Recuperación automática de nodos](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Tenga en cuenta que también debe activar la recuperación automática de nodos durante la creación o actualización del clúster.

```
kubectl label nodes <node-name> \
   sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement
```

**Para reiniciar un nodo mediante kubectl**

Etiquete el nodo con el que se va a reiniciar`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot`, lo que activa el. SageMaker HyperPod [Recuperación automática de nodos](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Tenga en cuenta que también debe activar la recuperación automática de nodos durante la creación o actualización del clúster.

```
kubectl label nodes <node-name> \
   sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot
```

Una vez `UnschedulablePendingReboot` colocadas las etiquetas`UnschedulablePendingReplacement`, debería poder ver que el nodo finaliza o se reinicia en unos minutos. 

# Configuraciones de resiliencia sugeridas
<a name="sagemaker-hyperpod-eks-resiliency-config-tips"></a>

Cuando las comprobaciones de estado profundas están habilitadas, cada vez que se agrega una nueva instancia al HyperPod clúster (ya sea durante la creación del clúster o mediante el reemplazo automático de nodos), la nueva instancia pasa por el proceso de verificación de estado profunda (pruebas de estrés a nivel de instancia) durante aproximadamente un par de horas. A continuación se sugieren combinaciones de configuración de resiliencia en función de posibles casos.

1. **Caso**: si dispone de nodos adicionales de reserva en un clúster como recursos de respaldo (sin utilizar toda la capacidad), o si puede esperar unas dos horas a que se realice el proceso de comprobación de estado exhaustiva para obtener las instancias menos propensas a errores.

   **Recomendación**: habilite la configuración de la comprobación de estado exhaustiva durante todo el ciclo de vida del clúster. La configuración de recuperación automática de nodos está habilitada de forma predeterminada.

1. **Caso**: si no dispone de nodos adicionales de respaldo (la capacidad se utiliza por completo para una parte de la carga de entrenamiento). Desea obtener los nodos de reemplazo lo antes posible para reanudar el trabajo de entrenamiento. 

   **Recomendación**: habilite la comprobación de estado exhaustiva durante la creación del clúster y, a continuación, desactive la configuración de la comprobación de estado exhaustiva una vez creado el clúster. La configuración de la recuperación automática de nodos está habilitada de forma predeterminada.

1. **Caso**: si no dispone de nodos adicionales de respaldo y no desea esperar unas dos horas a que se realice el proceso de comprobación de estado exhaustiva (clústeres pequeños).

   **Recomendación**: deshabilite la configuración de la comprobación de estado exhaustiva durante todo el ciclo de vida del clúster. La configuración de la recuperación automática de nodos está habilitada de forma predeterminada.

Si desea reanudar inmediatamente el trabajo de entrenamiento tras producirse un error, asegúrese de disponer de nodos adicionales de reserva como recursos de respaldo en el clúster.

# Instancias puntuales en Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-spot"></a>

Amazon SageMaker HyperPod es compatible con las instancias puntuales de Amazon EC2, lo que permite un importante ahorro de costes para las cargas de trabajo con tolerancia a errores y sin estado. AI/ML Entre los casos de uso se incluyen los trabajos de inferencia y formación por lotes, el ajuste de hiperparámetros y las cargas de trabajo experimentales. También puede usar las instancias puntuales para escalar automáticamente su capacidad de cómputo cuando esta capacidad de bajo costo esté disponible y reducirla a la capacidad bajo demanda cuando se recupere la capacidad puntual adicional.

De forma predeterminada, las instancias puntuales HyperPod funcionan con HyperPod la [función de aprovisionamiento continuo](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-scaling-eks.html), que permite SageMaker HyperPod aprovisionar automáticamente la capacidad restante en segundo plano mientras las cargas de trabajo comienzan inmediatamente en las instancias disponibles. Cuando se produce un error en el aprovisionamiento de nodos debido a limitaciones de capacidad u otros problemas, SageMaker HyperPod se vuelve a intentar automáticamente en segundo plano hasta que los clústeres alcancen la escala deseada, de modo que las operaciones de escalado automático sigan siendo resilientes y sin bloqueos. [También puede utilizar instancias puntuales con escalado automático basado en Karpenter.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling.html)

**Capacidades y conceptos clave a tener en cuenta**
+ Obtenga hasta un 90% de ahorro de costos en comparación con las instancias bajo demanda
+ Utilice instancias puntuales para trabajos que puedan gestionar interrupciones y en los que los tiempos de inicio y finalización de los trabajos sean flexibles
+ Al utilizar Karpenter para el escalado automático, puede configurarlo para que recurra automáticamente HyperPod a On-Demand cuando la capacidad de Spot se interrumpa o no esté disponible
+ Acceda a una amplia gama de tipos de instancias de CPU, GPU y aceleradores compatibles con HyperPod
+ La disponibilidad de la capacidad depende del suministro de EC2 y varía según la región y el tipo de instancia
+ Puede realizar diversas acciones, como identificar la probabilidad de obtener las instancias deseadas o de que se produzcan interrupciones, utilizando diversas herramientas, como [Spot Instance Advisor](https://aws.amazon.com/ec2/spot/instance-advisor/), proporcionado por EC2

## Introducción
<a name="sagemaker-hyperpod-spot-instance-getstart"></a>

### Requisitos previos
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq"></a>

Antes de comenzar, asegúrese de que dispone de lo siguiente:

#### AWS CLI instalado y configurado
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-cli"></a>

Configure sus AWS credenciales y su región:

```
aws configure
```

Consulte la [documentación de AWS credenciales](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html) para obtener instrucciones detalladas.

#### Función de IAM para la ejecución SageMaker HyperPod
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-iam"></a>

Para actualizar el clúster, primero debe crear permisos de [AWS Identity and Access Management](https://aws.amazon.com/iam/) (IAM) para Karpenter. Para obtener instrucciones, consulte [Crear un rol de IAM para el escalado automático con Karpenter HyperPod ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling-iam.html).

#### Configuración de clústeres de VPC y EKS
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-cluster"></a>

**2.1 Crear un clúster de VPC y EKS**

Siga la [guía de configuración de HyperPod EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-install-packages-using-helm-chart.html) para:

1. Cree una VPC con subredes en varias zonas de disponibilidad

1. Crear un clúster de EKS

1. Instale las [dependencias necesarias mediante gráficos de Helm](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-install-packages-using-helm-chart.html)

**2.2 Establezca las variables de entorno**

```
export EKS_CLUSTER_ARN="arn:aws:eks:REGION:ACCOUNT_ID:cluster/CLUSTER_NAME"
export EXECUTION_ROLE="arn:aws:iam::ACCOUNT_ID:role/SageMakerExecutionRole"
export BUCKET_NAME="your-s3-bucket-name"
export SECURITY_GROUP="sg-xxxxx"
export SUBNET="subnet-xxxxx"
export SUBNET1="subnet-xxxxx"
export SUBNET2="subnet-xxxxx"
export SUBNET3="subnet-xxxxx"
```

#### Cuotas de servicio para las instancias Spot
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-quota"></a>

Compruebe que tiene las cuotas requeridas para las instancias que va a crear en el SageMaker HyperPod clúster. Para revisar sus cuotas, en la consola de Service Quotas, elija AWS servicios en el panel de navegación y, a continuación, elija SageMaker. Por ejemplo, en la siguiente captura de pantalla se muestra la cuota disponible para las instancias c5.

![\[Imagen que contiene información sobre la región de coste.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/Screenshot-cluster-quota.png)


#### Compruebe la disponibilidad de puntos
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-availability"></a>

Antes de crear grupos de instancias puntuales, compruebe la disponibilidad en las diferentes zonas de disponibilidad:

```
aws ec2 get-spot-placement-scores \
  --region us-west-2 \
  --instance-types c5.2xlarge \
  --target-capacity 10 \
  --single-availability-zone \
  --region-names us-west-2
```

**Consejo**: diríjase a las zonas de disponibilidad con puntuaciones de ubicación más altas para mejorar la disponibilidad. También puede consultar los precios de Spot Instance Advisor y EC2 Spot para comprobar la disponibilidad. Seleccione la zona de disponibilidad requerida con una mejor puntuación de disponibilidad y configure el grupo de instancias con la subred asociada para lanzar la instancia en esa zona de disponibilidad.

### Creación de un grupo de instancias (sin escalado automático)
<a name="sagemaker-hyperpod-spot-instance-getstart-create"></a>

**CreateCluster (Punto)**

```
aws sagemaker create-cluster \
    --cluster-name clusterNameHere \
    --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
    --node-provisioning-mode "Continuous" \
    --cluster-role 'arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole' \
    --instance-groups '[{
        "InstanceGroupName": "auto-spot-c5-2x-az1",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} }
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET1'"]
         }
    }]' 
    --vpc-config '{
        "SecurityGroupIds": ["'$SECURITY_GROUP'"],
        "Subnets": ["'$SUBNET'"] 
    }'
```

**Actualizar el clúster (puntual o bajo demanda)**

```
aws sagemaker update-cluster \
   --cluster-name "my-cluster" \
   --instance-groups '[{
        "InstanceGroupName": "auto-spot-c5-x-az3",
        "InstanceType": "ml.c5.xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} },
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://'$BUCKET_NAME'",
            "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET3'"]
        }
    },
    {
        "InstanceGroupName": "auto-spot-c5-2x-az2",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} }
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET2'"]
         }
    },
    {   
        "InstanceGroupName": "auto-ondemand-c5-2x-az1",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET1'"]
         }
    }]'
```

`CapacityRequirements`no se puede modificar una vez que se ha creado un grupo de instancias.

**Describa el clúster**

```
aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --region us-west-2
```

```
## Sample Response
{
    "ClusterName": "my-cluster",
    "InstanceGroups": [
        {
            "InstanceGroupName": "ml.c5.2xlarge",
            "InstanceType": "ml.c5.xlarge",
            "InstanceCount": 5,
            "CurrentCount": 3,
            "CapacityRequirements: { "Spot": {} },
            "ExecutionRole": "arn:aws:iam::account:role/SageMakerExecutionRole",
            "InstanceStorageConfigs": [...],
            "OverrideVpcConfig": {...}
        }
        // Other IGs
    ]
}
```

**DescribeClusterNode**

```
aws sagemaker describe-cluster-node --cluster-name $HP_CLUSTER_NAME --region us-west-2
```

```
## Sample Response
{
  "NodeDetails": {
    "InstanceId": "i-1234567890abcdef1",
    "InstanceGroupName": "ml.c5.2xlarge",
    "CapacityType": "Spot",
    "InstanceStatus": {...}
  }
}
```

### Uso de la consola
<a name="sagemaker-hyperpod-spot-instance-getstart-console"></a>

#### Cree y configure un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-spot-instance-getstart-console-create"></a>

Para empezar, lance y configure el clúster de SageMaker HyperPod EKS y compruebe que el modo de aprovisionamiento continuo esté activado al crear el clúster. Realice los siguientes pasos:

1. En la consola de SageMaker IA, selecciona HyperPod los clústeres en el panel de navegación.

1. Elija Crear HyperPod clúster y orquestar en Amazon EKS.

1. Para ver las opciones de configuración, seleccione Configuración personalizada.

1. En Nombre, ingrese un nombre.

1. En Recuperación de instancias, selecciona Automática.

1. En el modo de aprovisionamiento de instancias, selecciona Usar aprovisionamiento continuo.

1. CapacityType : Seleccione Spot 

1. Seleccione Enviar.

Captura de pantalla de la consola: 

![\[Imagen que contiene el flujo del clúster de creación.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/Screenshot-create-cluster.png)


Esta configuración crea la configuración necesaria, como una nube privada virtual (VPC), subredes, grupos de seguridad y un clúster EKS, e instala los operadores en el clúster. También puede proporcionar los recursos existentes, como un clúster de EKS, si desea utilizar un clúster existente en lugar de crear uno nuevo. Esta configuración tardará unos 20 minutos.

#### Agregar un nuevo grupo de instancias puntuales al mismo clúster
<a name="sagemaker-hyperpod-spot-instance-getstart-console-add"></a>

Para añadir un Spot IG a su clúster de HyperPod EKS existente. Realice los siguientes pasos:

1. En la consola de SageMaker IA, elija HyperPod los clústeres en el panel de navegación.

1. Seleccione un HyperPod clúster existente con Amazon EKS Orchestration (asegúrese de que el aprovisionamiento continuo esté habilitado).

1. Haga clic en Edit.

1. En la página Editar clúster, haz clic en Crear grupo de instancias.

1. Selecciona el tipo de capacidad: instancia puntual en la configuración del grupo de instancias.

1. Haz clic en Crear grupo de instancias. 

1. Haga clic en Submit.

**Captura de pantalla de la consola:**

![\[Imagen que contiene el flujo de creación del grupo de instancias.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/Screenshot-instance-group.png)


### Usando CloudFormation
<a name="sagemaker-hyperpod-spot-instance-getstart-cfn"></a>

```
Resources:
  TestCluster:
    Type: AWS::SageMaker::Cluster
    Properties:
      ClusterName: "SampleCluster"
      InstanceGroups:
        - InstanceGroupName: group1
          InstanceType: ml.c5.2xlarge
          InstanceCount: 1
          LifeCycleConfig:
            SourceS3Uri: "s3://'$BUCKET_NAME'"
            OnCreate: "on_create_noop.sh"
          ExecutionRole: "'$EXECUTION_ROLE'",
          ThreadsPerCore: 1
          CapacityRequirements:
            Spot: {}
      VpcConfig:
        Subnets:
          - "'$SUBNET1'"
        SecurityGroupIds:
          - "'$SECURITY_GROUP'"
      Orchestrator:
        Eks:
          ClusterArn:
            '$EKS_CLUSTER_ARN'
      NodeProvisioningMode: "Continuous"
      NodeRecovery: "Automatic"
```

Consulte [https://docs.aws.amazon.com/sagemaker/latest/dg/smcluster- getting-started-eks-console - create-cluster-cfn .html](https://docs.aws.amazon.com/sagemaker/latest/dg/smcluster-getting-started-eks-console-create-cluster-cfn.html) para obtener más información.

### Escalado automático basado en Karpenter
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter"></a>

#### Crear un rol de clúster
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-role"></a>

**Paso 1: Diríjase a la consola de IAM**

1. Vaya al servicio **Consola de administración de AWS**→ **IAM**

1. Haz clic en **Funciones** en la barra lateral izquierda

1. **Haz clic en Crear rol**

**Paso 2: Configurar la política de confianza**

1. Seleccione una política de confianza personalizada (en lugar de AWS un servicio)

1. Sustituya el JSON predeterminado por esta política de confianza:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "hyperpod.sagemaker.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

haga clic en Siguiente

**Paso 3: crear una política de permisos personalizada**

Como se trata de SageMaker permisos específicos, tendrás que crear una política personalizada:

1. Haz clic en **Crear política** (se abre en una pestaña nueva)

1. Haga clic en la pestaña **JSON**

1. Introduzca esta política:

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "sagemaker:BatchAddClusterNodes",
           "sagemaker:BatchDeleteClusterNodes"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

1. Haga clic en **Siguiente**.

1. Ponle un nombre como `SageMakerHyperPodRolePolicy`

1. Haz clic en **Crear política**

**Paso 4: Adjunte la política al rol**

1. Vuelva a la pestaña de creación de roles

1. Actualice la lista de políticas

1. Busque y seleccione la política recién creada

1. Haga clic en **Siguiente**.

**Paso 5: Asigne un nombre y cree el rol**

1. Introduzca el nombre de un rol (por ejemplo,`SageMakerHyperPodRole`)

1. Agregue una descripción si lo desea

1. Revise la política de confianza y los permisos

1. Haz clic en **Crear rol**

#### Verificación
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-verify"></a>

Tras la creación, puede verificarlo de la siguiente manera:
+ Al marcar la pestaña Relaciones de confianza, se muestra el servicio de hiperpód
+ Si marca la pestaña Permisos, se muestra su política personalizada
+ El ARN del rol estará disponible para su uso con HyperPod

El formato ARN del rol será:

```
 arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole
```

#### Cree un clúster con AutoScaling:
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-create-cluster"></a>

Para una mejor disponibilidad, cree IGs varias subredes AZs configurando. También puede incluir OnDemand IGs como alternativa.

```
aws sagemaker create-cluster \
    --cluster-name clusterNameHere \
    --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
    --node-provisioning-mode "Continuous" \
    --cluster-role 'arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole' \
    --instance-groups '[{
        "InstanceGroupName": "auto-spot-c5-2x-az1",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 0, // For Auto scaling keep instance count as 0
        "CapacityRequirements: { "Spot": {} }
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET1'"]
         }
    }]' 
--vpc-config '{
    "SecurityGroupIds": ["'$SECURITY_GROUP'"],
    "Subnets": ["'$SUBNET'"] 
}'
--auto-scaling ' {
    "Mode": "Enable",
    "AutoScalerType": "Karpenter"
}'
```

#### Actualice el clúster (puntual o bajo demanda)
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-update-cluster"></a>

```
aws sagemaker update-cluster \
   --cluster-name "my-cluster" \
   --instance-groups '[{
        "InstanceGroupName": "auto-spot-c5-x-az3",
        "InstanceType": "ml.c5.xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} },
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://'$BUCKET_NAME'",
            "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET3'"]
        }
    },
    {
        "InstanceGroupName": "auto-spot-c5-2x-az2",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} }
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET2'"]
         }
    },
    {   
        "InstanceGroupName": "auto-ondemand-c5-2x-az1",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET1'"]
         }
    }]'
```

#### Crear HyperpodNodeClass
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-create-class"></a>

`HyperpodNodeClass`es un recurso personalizado que se asigna a grupos de instancias creados previamente y que define las restricciones en SageMaker HyperPod torno a las cuales los tipos de instancias y las zonas de disponibilidad son compatibles con las decisiones de escalado automático de Karpenter. Para usarlo`HyperpodNodeClass`, solo tienes que especificar los nombres `InstanceGroups` de los componentes del SageMaker HyperPod clúster que quieres usar como fuente de los recursos de AWS cómputo que se utilizarán para ampliar los pods de tu clúster. NodePools El `HyperpodNodeClass` nombre que utilices aquí se transferirá a la sección siguiente NodePool en la que hagas referencia a él. Esto indica de NodePool qué `HyperpodNodeClass` se deben extraer los recursos. Para crear una`HyperpodNodeClass`, complete los siguientes pasos:

1. Cree un archivo YAML (por ejemplo, nodeclass.yaml) similar al código siguiente. Agrega `InstanceGroup` los nombres que usaste en el momento de crear el clúster. SageMaker HyperPod También puedes añadir nuevos grupos de instancias a un clúster de SageMaker HyperPod EKS existente.

1. Haz referencia al `HyperPodNodeClass` nombre en tu NodePool configuración.

A continuación se muestra un ejemplo`HyperpodNodeClass`:

```
apiVersion: karpenter.sagemaker.amazonaws.com/v1
kind: HyperpodNodeClass
metadata:
  name: multiazg6
spec:
  instanceGroups:
    # name of InstanceGroup in HyperPod cluster. InstanceGroup needs to pre-created
    # before this step can be completed.
    # MaxItems: 10
    - auto-spot-c5-2x-az1
    - auto-spot-c5-2x-az2
    - auto-spot-c5-x-az3
    - auto-ondemand-c5-2x-az1
```

Karpenter prioriza los grupos de instancias puntuales frente a las instancias bajo demanda, y utiliza On-Demand como alternativa cuando se especifica en la configuración. La selección de instancias se ordena según las puntuaciones de ubicación puntual de EC2 asociadas a la zona de disponibilidad de cada subred.

**Aplique la configuración a su clúster de EKS mediante: `kubectl`**

```
kubectl apply -f nodeclass.yaml
```

El HyperPod clúster debe estar AutoScaling habilitado y el AutoScaling estado debe cambiar a uno `InService` antes de `HyperpodNodeClass` poder aplicarlo. También muestra las capacidades de los grupos de instancias en forma puntual o puntual OnDemand. Para obtener más información y consideraciones clave, consulte el ajuste de [escala automático en SageMaker HyperPod EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling.html).

**Por ejemplo**

```
apiVersion: karpenter.sagemaker.amazonaws.com/v1
kind: HyperpodNodeClass
metadata:
  creationTimestamp: "2025-11-30T03:25:04Z"
  name: multiazc6
  uid: ef5609be-15dd-4700-89ea-a3370e023690
spec:
  instanceGroups:
  -spot1
status:
  conditions:
  // true when all IGs in the spec are present in SageMaker cluster, false otherwise
  - lastTransitionTime: "2025-11-20T03:25:04Z"
    message: ""
    observedGeneration: 3
    reason: InstanceGroupReady
    status: "True"
    type: InstanceGroupReady
  // true if subnets of IGs are discoverable, false otherwise
  - lastTransitionTime: "2025-11-20T03:25:04Z"
    message: ""
    observedGeneration: 3
    reason: SubnetsReady
    status: "True"
    type: SubnetsReady
  // true when all dependent resources are Ready [InstanceGroup, Subnets]
  - lastTransitionTime: "2025-11-30T05:47:55Z"
    message: ""
    observedGeneration: 3
    reason: Ready
    status: "True"
    type: Ready
  instanceGroups:
  - instanceTypes:
    - ml.c5.2xlarge
    name:auto-spot-c5-2x-az2
    subnets:
    - id: subnet-03ecc649db2ff20d2
      zone: us-west-2a
      zoneId: usw2-az2
  - capacities: {"Spot": {}}
```

#### Crear NodePool
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-create-nodepool"></a>

 NodePool Establece restricciones sobre los nodos que Karpenter puede crear y los pods que pueden ejecutarse en esos nodos. Se NodePool puede configurar para realizar varias acciones, como: 
+ Defina etiquetas y marcas para limitar los módulos que pueden ejecutarse en los nodos que crea Karpenter
+ Limite la creación de nodos a determinadas zonas, tipos de instancias y arquitecturas de ordenadores, etc.

Para obtener más información al respecto NodePool, consulte. [NodePools](https://karpenter.sh/docs/concepts/nodepools/) SageMaker HyperPod El Karpenter gestionado es compatible con un conjunto limitado de requisitos conocidos de Kubernetes y Karpenter, que explicamos en este post.

Para crear un, complete los siguientes pasos: NodePool

Cree un archivo YAML `nodepool.yaml` con el nombre de la NodePool configuración que desee. El siguiente código es un ejemplo de configuración para crear un ejemplo NodePool. Especificamos que incluya nuestro tipo de SageMaker instancia ml.g6.xlarge y, además, lo especificamos para una zona. NodePool Consulte para obtener más personalizaciones. [NodePools](https://karpenter.sh/docs/concepts/nodepools/)

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
 name: gpunodepool
spec:
 template:
   spec:
     nodeClassRef:
      group: karpenter.sagemaker.amazonaws.com
      kind: HyperpodNodeClass
      name: multiazg6
     expireAfter: Never
     requirements:
        - key: node.kubernetes.io/instance-type
          operator: Exists
        - key: "node.kubernetes.io/instance-type" // Optional otherwise Karpenter will decide based on Job config resource requirements
          operator: In
          values: ["ml.c5.2xlarge"]
        - key: "topology.kubernetes.io/zone"
          operator: In
          values: ["us-west-2a"]
```

**Consejo**: En caso de interrupción puntual de EC2, Hyperpod contamina el nodo para provocar el desalojo del pod. **El proceso de **consolidación** de Karpenter respeta los presupuestos de interrupción de los módulos y lleva a cabo un desalojo normal de Kubernetes, pero si se establece ConsolidateAfter en 0, la consolidación se puede producir de forma inmediata, lo que deja muy poco tiempo para desalojar el pod sin problemas.** Configúrelo en un valor distinto de cero durante un máximo de 2 minutos para poder desalojar el módulo sin problemas si es necesario realizar cualquier control.

**Aplícalo a tu clúster NodePool :**

```
kubectl apply -f nodepool.yaml
```

**Supervise el NodePool estado para asegurarse de que la condición Listo del estado esté establecida en True:**

```
kubectl get nodepool gpunodepool -oyaml
```

En este ejemplo, se muestra cómo se NodePool puede usar a para especificar el hardware (tipo de instancia) y la ubicación (zona de disponibilidad) de los pods.

**Lance una carga de trabajo sencilla**

La siguiente carga de trabajo ejecuta una implementación de Kubernetes en la que los pods en implementación solicitan 1 CPU y 256 MB de memoria por réplica y por pod. Los pods aún no se han activado.

```
kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml
```

Cuando lo aplicamos, podemos ver una implementación y un lanzamiento de un solo nodo en nuestro clúster, como se muestra en la siguiente captura de pantalla.

**Para escalar este componente, usa el siguiente comando:**

```
kubectl scale deployment inflate --replicas 10
```

Consulte [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- hyperpod-eks-autoscaling .html](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling.html) para obtener más detalles.

### Gestión de la interrupción de nodos
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-interrupt"></a>

Las instancias puntuales se pueden recuperar en cualquier momento. En la mayoría de los casos, EC2 proporciona un aviso de interrupción de 2 minutos como máximo, pero este aviso no está garantizado. En algunas situaciones, EC2 puede cancelar las instancias puntuales de forma inmediata y sin previo aviso. HyperPod gestiona automáticamente ambos escenarios:
+ Con 2 minutos de antelación: vuelve a intentar automáticamente el desalojo correcto de las cápsulas y la sustitución controlada de la capacidad cuando la capacidad de Spot esté disponible.
+ Sin previo aviso (cierre inmediato): vuelve a intentar sustituir automáticamente el nodo (cuando haya capacidad disponible) sin necesidad de desalojarlo de forma automática 

**Cómo funciona**

Cuando EC2 envía un aviso de interrupción puntual, automáticamente: HyperPod 

1. Detecta la señal de interrupción 

1. Contamina el nodo: impide que se programen nuevos pods en la instancia interrumpida

1. Desaloja los pods sin problemas: da tiempo a los pods en ejecución para completar o comprobar su trabajo (respetando Kubernetes) `terminationGracePeriodSeconds`

1. Sustituye la capacidad: intenta aprovisionar automáticamente las instancias de reemplazo (puntuales o bajo demanda según la disponibilidad). 

   El reemplazo de capacidad funciona mediante el aprovisionamiento automático de las instancias de reemplazo. Cuando la capacidad no está disponible de forma inmediata, el sistema continúa realizando comprobaciones hasta que se pueda acceder a los recursos. En el caso de los grupos de instancias que no se escalan automáticamente, HyperPod intenta ampliarlos dentro del mismo grupo de instancias hasta que esté disponible la capacidad necesaria. En el caso de los grupos de instancias basados en Karpenter, Karpenter implementa un mecanismo de respaldo para otros grupos de instancias configurados en la clase Node cuando el grupo principal no puede satisfacer la demanda. Además, puedes configurar On-Demand como una opción alternativa, lo que permite a Karpenter cambiar automáticamente a las instancias On-Demand si no puede escalar correctamente los grupos de instancias puntuales.

1. Reprograma las cargas de trabajo: Kubernetes reprograma automáticamente los pods desalojados en los nodos en buen estado

### Encuentra tu consumo y tu factura
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-bill"></a>

Para comprobar el uso y la facturación de las instancias puntuales HyperPod , puede utilizar la consola AWS Cost Explorer. Vaya a Billing and Cost Management > Facturación

![\[Imagen que contiene información sobre la región de costes.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/Screenshot-cost-region.png)


**Para explorar el uso y la facturación en la consola, vaya a Billing and Cost Management > Cost Explorer**

![\[Una imagen que contiene el costo y el uso.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/Screenshot-cost-usage.png)


# Uso UltraServers en Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-ultraserver"></a>

SageMaker HyperPod La compatibilidad con Ultraservers proporciona capacidades de computación en GPU de alto rendimiento para cargas de trabajo de inteligencia artificial y aprendizaje automático. Basados en la NVL72 arquitectura GB200 y la arquitectura NVIDIA, estos Ultraservers ofrecen NVLink conectividad en 18 GB200 instancias en una configuración de doble rack, lo que supone un total de 72 B200. GPUs Esta NVLink estructura permite que las cargas de trabajo utilicen las comunicaciones de la GPU, lo que aumenta la capacidad utilizable de la GPU y la memoria direccionable más allá de lo que es posible con las instancias discretas, y es compatible con modelos de IA más complejos y que consumen muchos recursos. La NVLink conectividad es posible gracias a la tecnología NVIDIA IMEX, que gestiona la configuración de bajo nivel para garantizar la seguridad de las conexiones mediante una estructura de GPU entre instancias del mismo rack.

HyperPod simplifica la implementación y la administración de estos clústeres de GPU mediante el reconocimiento inteligente de la topología y la configuración automatizada. La plataforma detecta y etiqueta automáticamente los nodos con su ubicación física y la información del bloque de capacidad, lo que permite programar cargas de trabajo distribuidas teniendo en cuenta la topología. HyperPod resume los complejos requisitos de configuración de IMEX, lo que le permite centrarse en el despliegue de la carga de trabajo en lugar de en la configuración de la estructura de GPU de bajo nivel. Puede elegir opciones de implementación flexibles, que incluyen nodos autoadministrados y grupos de nodos administrados por EKS. Amazon EKS ofrece controladores NVIDIA optimizados AMIs que incluyen controladores NVIDIA preconfigurados, Fabric Manager, controladores IMEX y todo el software de sistema necesario para un funcionamiento sin problemas.

La integración incluye capacidades de colocación de módulos que garantizan que las cargas de trabajo distribuidas se programen de manera óptima entre los NVL72 dominios mediante etiquetas topológicas estándar de Kubernetes. Las características integradas de supervisión y recuperación automatizada proporcionan soporte operativo, ya que el agente de estado de la AMI detecta los errores de la GPU en los registros del núcleo y puede corregir automáticamente los problemas o reemplazar los nodos defectuosos en los grupos de nodos administrados. Esta combinación de escalado de GPU, ubicación inteligente de la carga de trabajo y operaciones automatizadas le ayuda a centrarse en las AI/ML innovaciones y no en la complejidad de la infraestructura, a la vez que consigue el máximo rendimiento de sus inversiones en GPU.

Para configurar el uso UltraServers con tu HyperPod clúster, sigue estos pasos:

1. Crea un [ HyperPod clúster basado en EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html). Cuando elijas un grupo de instancias, asegúrate de elegir un UltraServer. 

1. Una vez creado el clúster, use los siguientes comandos para instalar los complementos operativos:

   Complemento para dispositivos NVIDIA versión 0.17.2

   ```
   kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/nvidia-device-plugin.yml
   ```

   FD DaemonSet v0.17.3

   ```
   kubectl apply -k "https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.17.3"
   ```

   Descubrimiento de características de la GPU

   ```
   kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/gpu-feature-discovery-daemonset.yaml
   ```

Ahora puede ejecutar trabajos. El siguiente ejemplo muestra cómo crear un dominio, configurar un dominio de IMEX y habilitar la asignación de canales. Estos pasos también le permiten crear un pod para aprovisionar un canal para la comunicación NCCL.

1. Cree un archivo de especificaciones de recursos para usarlo con Kubectl.

   ```
   cat <<EOF > imex-channel-injection.yaml
   ---
   apiVersion: resource.nvidia.com/v1beta1
   kind: ComputeDomain
   metadata:
     name: imex-channel-injection
   spec:
     numNodes: 1
     channel:
       resourceClaimTemplate:
         name: imex-channel-0
   ---
   apiVersion: v1
   kind: Pod
   metadata:
     name: imex-channel-injection
   spec:
     affinity:
       nodeAffinity:
         requiredDuringSchedulingIgnoredDuringExecution:
           nodeSelectorTerms:
           - matchExpressions:
             - key: nvidia.com/gpu.clique
               operator: Exists
             - key: topology.k8s.aws/ultraserver-id
               operator: In
               values: 
               - <UltraServer-ID>
     containers:
     - name: ctr
       image: ubuntu:22.04
       command: ["bash", "-c"]
       args: ["ls -la /dev/nvidia-caps-imex-channels; trap 'exit 0' TERM; sleep 9999 & wait"]
       resources:
         claims:
         - name: imex-channel-0
     resourceClaims:
     - name: imex-channel-0
       resourceClaimTemplateName: imex-channel-0
   EOF
   ```

1. Aplique la configuración que ha creado.

   ```
   kubectl apply -f imex-channel-injection.yaml
   ```

1. Ejecute los comandos `get pods` para comprobar que se ha creado el pod.

   ```
   kubectl get pods
   kubectl get pods -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain
   ```

1. También puede comprobar los registros del pod para ver si ha asignado un canal de comunicación.

   ```
   kubectl logs imex-channel-injection
   ```

   ```
   total 0
   drwxr-xr-x 2 root root     60 Feb 19 10:43 .
   drwxr-xr-x 6 root root    380 Feb 19 10:43 ..
   crw-rw-rw- 1 root root 507, 0 Feb 19 10:43 channel0
   ```

1. También puede comprobar los registros para comprobar que la configuración automática de IMEX se esté ejecutando con un canal asignado.

   ```
   kubectl logs -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain --tail=-1
   /etc/nvidia-imex/nodes_config.cfg:
   ```

   ```
   IMEX Log initializing at: 8/8/2025 14:23:12.081
   [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX version 570.124.06 is running with the following configuration options
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Logging level = 4
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Logging file name/path = /var/log/nvidia-imex.log
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Append to log file = 0
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Max Log file size = 1024 (MBs)
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Use Syslog file = 0
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX Library communication bind interface =
   
   [JAug 8 2025 14:23:12] [INFO] [tid 39] IMEX library communication bind port = 50000
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Identified this node as ID 0, using bind IP of '10.115.131.8', and network interface of enP5p9s0
   [Aug 8 2025 14:23:120] [INFO] [tid 39] nvidia-imex persistence file /var/run/nvidia-imex/persist.dat does not exist.  Assuming no previous importers.
   [Aug 8 2025 14:23:12] [INFO] [tid 39] NvGpu Library version matched with GPU Driver version
   [Aug 8 2025 14:23:12] [INFO] [tid 63] Started processing of incoming messages.
   [Aug 8 2025 14:23:12] [INFO] [tid 64] Started processing of incoming messages.
   [Aug 8 2025 14:23:12] [INFO] [tid 65] Started processing of incoming messages.
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Creating gRPC channels to all peers (nPeers = 1).
   [Aug 8 2025 14:23:12] [INFO] [tid 66] Started processing of incoming messages.
   [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX_WAIT_FOR_QUORUM != FULL, continuing initialization without waiting for connections to all nodes.
   [Aug 8 2025 14:23:12] [INFO] [tid 67] Connection established to node 0 with ip address 10.115.131.8. Number of times connected: 1
   [Aug 8 2025 14:23:12] [INFO] [tid 39] GPU event successfully subscribed
   ```

1. Después de verificar todo, elimine la carga de trabajo y borre la configuración.

   ```
   kubectl delete -f imex-channel-injection.yaml
   ```

# IDEs y cuadernos
<a name="sagemaker-hyperpod-eks-cluster-ide"></a>

Amazon SageMaker presenta una nueva capacidad para los clústeres de SageMaker HyperPod EKS, que permite a los desarrolladores de IA ejecutar sus cargas de trabajo de aprendizaje automático interactivas directamente en el clúster de HyperPod EKS. Esta función presenta un nuevo complemento denominado Amazon SageMaker Spaces, que permite a los desarrolladores de IA crear y gestionar entornos autónomos para ejecutar ordenadores portátiles.

Los administradores pueden usar la SageMaker HyperPod consola para instalar el complemento en su clúster y definir las configuraciones de espacio predeterminadas, como imágenes, recursos de cómputo, almacenamiento local para la configuración de los cuadernos (almacenamiento adicional que se adjunta a sus espacios de desarrollo), sistemas de archivos y scripts de inicialización. Estará disponible una opción de instalación con un solo clic con la configuración predeterminada para simplificar la experiencia de administración. Los administradores pueden usar la SageMaker HyperPod consola, kubectl o HyperPod CLI para instalar el operador, crear la configuración predeterminada y administrar todos los espacios en una ubicación centralizada.

Los desarrolladores de IA pueden usar la HyperPod CLI para crear, actualizar y eliminar espacios de desarrollo. Tienen la flexibilidad de usar las configuraciones predeterminadas proporcionadas por los administradores o personalizar las configuraciones. Los desarrolladores de IA pueden acceder a sus espacios HyperPod utilizando su VS Code local IDEs, and/or el navegador web que aloja sus espacios, JupyterLab o el CodeEditor IDE en un dominio DNS personalizado configurado por sus administradores. También pueden usar la característica de reenvío de puertos de Kubernetes para acceder a los espacios de sus navegadores web.

## Administrador
<a name="admin-cx"></a>
+ [Configuración de permisos](permission-setup.md)
+ [Instale el complemento SageMaker AI Spaces](operator-install.md)
+ [Personaliza el complemento](customization.md)
+ [Agregue usuarios y configure cuentas de servicio](add-user.md)
+ [Límites](ds-limits.md)
+ [La gobernanza de las tareas de Interactive Spaces está en HyperPod](task-governance.md)
+ [Observabilidad](observability.md)

## Científico de datos
<a name="data-scientist-cx"></a>
+ [Crea y gestiona espacios](create-manage-spaces.md)
+ [Acceso desde el navegador web](browser-access.md)
+ [Acceso remoto a SageMaker Spaces](vscode-access.md)

## SageMaker Precios de las instancias gestionadas por Spaces
<a name="spaces-managed-instance-pricing"></a>

El operador o complemento de SageMaker Spaces no implica ningún cargo adicional para el cliente. Sin embargo, para permitir la SSH-over-SSM tunelización necesaria para la función de *conexión IDE remota*, SageMaker Spaces utiliza una instancia gestionada. AWS Esta instancia está registrada como una instancia local avanzada en SSM y, por lo tanto, se factura por hora de procesamiento.

[Consulte la tarifa de «Administración de instancias local» en la página de precios de AWS Systems Manager: Precios de AWS Systems Manager: precios/ https://aws.amazon.com/systems-manager/](https://aws.amazon.com/systems-manager/pricing.com)

# Configuración de permisos
<a name="permission-setup"></a>

## Se requieren funciones para el complemento y sus dependencias
<a name="permission-setup-addon"></a>

### Se requieren funciones de IAM para SageMaker los espacios de SageMaker HyperPod
<a name="role-hyperpod"></a>

Al habilitar las funciones de **SageMaker Spaces (también conocidas como SageMaker ** **IDE o cuadernos)** en un clúster SageMaker HyperPod (EKS), se deben crear y asignar varias funciones de IAM. Estas funciones permiten el acceso seguro, el enrutamiento, las sesiones IDE remotas y el aprovisionamiento de almacenamiento de EBS. En la siguiente tabla se resumen las cuatro funciones y cuándo son necesarias.

### Tabla de resumen de funciones
<a name="role-table"></a>


| Rol de IAM | ¿Obligatorio? | Finalidad | ¿Quién lo usa? | ¿La SageMaker consola permite la personalización? | 
| --- | --- | --- | --- | --- | 
|  Función de ejecución del complemento Spaces  |  Siempre es obligatorio  |  Permite que el controlador de Spaces gestione Spaces, genere sesiones de SSM URLs prefirmadas y gestione  |  Módulo de controlador adicional (privilegiado)  |  ✔ Sí  | 
|  Función de router integrado en el clúster  |  Necesario para el acceso a la WeBui  |  Permite que el pod del router realice operaciones de KMS para la firma JWT (autenticación WebUI)  |  Módulo de enrutador integrado en el clúster (privilegiado)  |  ✔ Sí  | 
|  Función de instancia gestionada por SSM  |  Necesario para el acceso remoto al IDE  |  Utilizado por el agente SSM sidecar para sesiones IDE SSH-over-SSM remotas  |  Módulos IDE SSM Agent in Space (no son módulos adicionales)  |  ✔ Sí  | 
|  Función de IAM para el complemento EBS CSI Driver  |  Siempre es obligatorio  |  Permite que el controlador CSI de EBS almacene create/attach/modify volúmenes para las cargas de trabajo de Spaces  |  Complemento del controlador EBS CSI  |  Creado automáticamente  | 
|  Función de IAM para el complemento de DNS externo  |  Necesario para el acceso a la WeBui  |  Garantiza que a los puntos finales de Space y a los componentes del clúster se les puedan asignar automáticamente nombres DNS en las zonas alojadas de Route 53 del cliente.  |  Complemento de DNS externo  |  Creado automáticamente  | 

### 1. Función de ejecución del complemento Spaces (obligatorio)
<a name="add-n-execution-role"></a>

La función de ejecución del complemento Spaces siempre es necesaria porque la utiliza el módulo controlador del complemento SageMaker Spaces, un componente administrativo que se instala mediante el complemento EKS. Esta función permite al controlador administrar Spaces, aprovisionar recursos, interactuar con SSM y generar prefirmados URLs para el acceso remoto al IDE y a la WeBui. También admite el acceso KMS utilizado para la firma de solicitudes para autenticar las solicitudes https de la WeBui. Esta función se puede crear automáticamente cuando se instala el complemento SageMaker Spaces a través de la consola. SageMaker Para la creación manual, AWS proporciona la política `AmazonSageMakerSpacesControllerPolicy` gestionada.

**Política de confianza de referencia**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "pods.eks.amazonaws.com"
      },
      "Action": [
          "sts:AssumeRole",
          "sts:TagSession"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{accountId}}",
          "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}"
        }
      }
    }
  ]
}
```

### 2. Función de enrutador en el clúster (necesaria para la autenticación de WeBui)
<a name="in-cluster-role"></a>

El **pod del router, un componente privilegiado que autentica las sesiones de WeBui de Spaces, utiliza la función de enrutador** dentro del clúster. El router usa una clave KMS para crear y firmar los tokens JWT que autorizan el acceso de los usuarios a espacios específicos. Esta función permite al módulo del router generar claves de datos y descifrarlas. Al igual que la función de controlador, refuerza la seguridad mediante restricciones de alcance basadas en etiquetas y clústeres. Esta función se puede generar automáticamente al instalar el complemento Spaces a través de la AWS SageMaker consola, pero los clientes pueden crearla manualmente.

**Política de confianza de referencia**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "pods.eks.amazonaws.com"
      },
      "Action": [
          "sts:AssumeRole",
          "sts:TagSession"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{accountId}}",
          "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}"
        }
      }
    }
  ]
}
```

**Política de permisos de referencia**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KMSDescribeKey",
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}"
        },
        {
            "Sid": "KMSKeyOperations",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:sagemaker:component": "amazon-sagemaker-spaces",
                    "kms:EncryptionContext:sagemaker:eks-cluster-arn": "${aws:PrincipalTag/eks-cluster-arn}"
                }
            }
        }
    ]
}
```

### 3. Función de instancia gestionada por SSM (necesaria para el acceso remoto al IDE)
<a name="ssm-role"></a>

El rol de instancia gestionada por SSM se transfiere al registrar la instancia gestionada por SSM para habilitar el acceso remoto al IDE. Esta función permite al agente de SSM registrar el pod como instancia gestionada por SSM y utilizar los canales del administrador de sesiones de SSM para la conectividad IDE remota (SSH-over-SSM). Se puede crear automáticamente al utilizar la consola. AWS SageMaker En el caso de las implementaciones manuales, los clientes deben crear este rol y proporcionárselo al complemento Spaces. El módulo controlador en sí no asume esta función; solo la proporciona cuando se llama`ssm:CreateActivation`.

**Política de confianza de referencia**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ssm.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{account}}"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:ssm:{{region}}:{{account}}:*"
                }
            }
        }
    ]
}
```

**Política de permisos de referencia**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ssm:DescribeAssociation"
      ],
      "Resource": [
        "arn:aws:ssm:{{region}}:{{account}}:association/*",
        "arn:aws:ssm:{{region}}:{{account}}:document/*",
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:GetDocument",
        "ssm:DescribeDocument"
      ],
      "Resource": "arn:aws:ssm:{{region}}:{{account}}:document/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:GetParameter",
        "ssm:GetParameters"
      ],
      "Resource": "arn:aws:ssm:{{region}}:{{account}}:parameter/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:ListInstanceAssociations"
      ],
      "Resource": [
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:PutComplianceItems"
      ],
      "Resource": [
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateAssociationStatus"
      ],
      "Resource": [
        "arn:aws:ssm:{{region}}:{{account}}:document/*",
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateInstanceAssociationStatus"
      ],
      "Resource": [
        "arn:aws:ssm:{{region}}:{{account}}:association/*",
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateInstanceInformation"
      ],
      "Resource": [
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:GetDeployablePatchSnapshotForInstance",
        "ssm:GetManifest",
        "ssm:ListAssociations",
        "ssm:PutInventory",
        "ssm:PutConfigurePackageResult"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssmmessages:CreateControlChannel",
        "ssmmessages:CreateDataChannel",
        "ssmmessages:OpenControlChannel",
        "ssmmessages:OpenDataChannel"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2messages:AcknowledgeMessage",
        "ec2messages:DeleteMessage",
        "ec2messages:FailMessage",
        "ec2messages:GetEndpoint"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2messages:GetMessages",
        "ec2messages:SendReply"
      ],
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "ssm:SourceInstanceARN": "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
        }
      }
    }
  ]
}
```

### 4. Función de IAM para el complemento EBS CSI Driver
<a name="role-ebs-csi"></a>

La función de IAM para el controlador CSI de EBS es obligatoria porque el controlador CSI de EBS aprovisiona volúmenes persistentes para las cargas de trabajo de Spaces. Si bien la [EBSCSIDriverpolítica de Amazon AWS](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEBSCSIDriverPolicy.html) gestionada proporciona permisos básicos, los SageMaker HyperPod clústeres requieren [capacidades adicionales](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-ebs.html#sagemaker-hyperpod-eks-ebs-setup), como la creación rápida de restauraciones instantáneas, el etiquetado de volúmenes propiedad de los clústeres y attaching/detaching los volúmenes de los nodos gestionados. HyperPod Estos permisos también incluyen permisos específicos, como. SageMaker APIs `sagemaker:AttachClusterNodeVolume` Si el controlador CSI de EBS no está instalado, la SageMaker consola ahora creará automáticamente este rol durante la instalación del complemento Spaces, **sin necesidad de que el cliente tome ninguna medida**.

### 5. Función de IAM para el complemento de DNS externo
<a name="role-external-nds"></a>

El complemento de DNS externo administra los registros de DNS de los servicios y los recursos de entrada del HyperPod clúster. Garantiza que a los puntos finales de Space y a los componentes del clúster se les puedan asignar automáticamente nombres DNS en las zonas alojadas de Route 53 del cliente. En la actualidad, los clientes suelen instalar el DNS externo de forma manual mediante una opción de 1 clic en la consola de EKS. Como parte de la mejora de la experiencia de SageMaker Spaces, la SageMaker consola ahora creará automáticamente esta función durante la instalación del complemento de Spaces, **sin necesidad de que el cliente tome ninguna medida**.

## Configuración de permisos para que AWS Toolkit acceda a Spaces SageMaker
<a name="permission-for-toolkitl"></a>

Para permitir que el panel lateral del explorador de recursos de AWS VS Code Toolkit detecte SageMaker Spaces y se conecte a ellos, se requieren los siguientes permisos de IAM. Estos permisos permiten al kit de herramientas enumerar SageMaker HyperPod los clústeres disponibles, recuperar los detalles del clúster y obtener un token de conexión para el clúster de Amazon EKS asociado.

**Política de IAM obligatoria**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SageMakerListClusters",
            "Effect": "Allow",
            "Action": "sagemaker:ListClusters",
            "Resource": "*"
        },
        {
            "Sid": "SageMakerDescribeCluster",
            "Effect": "Allow",
            "Action": "sagemaker:DescribeCluster",
            "Resource": "arn:aws:sagemaker:{{region}}:{{account}}:cluster/cluster-name"
        },
        {
            "Sid": "EksDescribeCluster",
            "Effect": "Allow",
            "Action": "eks:DescribeCluster",
            "Resource": "arn:aws:eks:{{region}}:{{account}}:cluster/cluster-name"
        },
        {
            "Sid": "EksGetToken",
            "Effect": "Allow",
            "Action": "eks:GetToken",
            "Resource": "*"
        }
    ]
}
```

**Recomendaciones de alcance**
+ Sustituya el nombre del clúster por los SageMaker HyperPod clústeres específicos a los que deben acceder sus usuarios.
+ La GetToken acción eks: actualmente no admite restricciones a nivel de recursos y debe usar el recurso: «\$1». Se trata de una limitación del AWS servicio. La autenticación del lado del cliente se realiza a través de [las entradas de acceso EKS](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html).

# Instale el complemento SageMaker AI Spaces
<a name="operator-install"></a>

## Dependencias
<a name="dependencies"></a>

**Complemento Amazon EKS Pod Identity Agent**
+ Necesario para que el operador obtenga AWS las credenciales
+ **Normalmente viene preinstalado** en la mayoría de los clústeres de EKS
+ Instalación: mediante complementos de EKS

**Gestor de certificados**
+ Necesario para la administración de certificados TLS
+ **Preinstalado si se** utiliza HyperPod Quick Cluster Create
+ Instalación: mediante complementos de EKS

**Controlador EBS CSI**
+ Necesario para el almacenamiento persistente en Space (volúmenes EBS)
+ **Se instala automáticamente** cuando se utiliza la SageMaker consola para realizar la instalación
+ Requiere un rol de IAM con permisos `AmazonEBSCSIDriverPolicy` específicos HyperPod de \$1
+ Instalación: mediante complementos de EKS. Sin embargo, asegúrese de seguir la guía para instalar los permisos adicionales necesarios para ello HyperPod. 
+ Referencia: [Uso del controlador CSI de Amazon EBS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-ebs.html) en HyperPod

## Dependencias adicionales para el acceso a la WeBui
<a name="-additional-dependencies"></a>

**AWS Controlador Load Balancer**
+ **Preinstalado si se** utiliza HyperPod Quick Cluster Create
+ Instalación: Via Helm
+ Guía de instalación manual: [Instalación del controlador AWS Load Balancer](https://docs.aws.amazon.com/eks/latest/userguide/lbc-helm.html)

**DNS externo**
+ Obligatorio cuando se utiliza un dominio personalizado para el acceso a la WeBui
+ Administra los registros DNS de Route53 automáticamente
+ Requiere el rol de IAM con permisos de Route53
+ Instalación: mediante complementos de EKS

## Instalación
<a name="installation"></a>

Antes de empezar, asegúrese de tener:
+ Un SageMaker HyperPod clúster activo con al menos un nodo de trabajo que ejecute la versión 1.30 o posterior de Kubernetes
+ Al menos un nodo de trabajo con un tipo de instancia mínimo (XX vCPU, Y GiB de memoria)

### Instalación del complemento Amazon SageMaker Spaces
<a name="space-add-on"></a>

Puede instalar el complemento SageMaker Spaces mediante una instalación rápida para la configuración predeterminada o una instalación personalizada para una configuración avanzada.

#### Instalación rápida
<a name="quick-install"></a>

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

1. Elige tu clúster de la lista de clústeres.

1. En la pestaña IDE y cuadernos, busca Amazon SageMaker Spaces y, a continuación, selecciona Instalación rápida.

Instalación rápida y automática:
+ Crea las funciones de IAM necesarias para el complemento
+ Habilita el modo de acceso remoto con las funciones de IAM requeridas para Systems Manager
+ Instala el complemento y configura la asociación de identidades del pod

#### Instalación personalizada
<a name="custom-install"></a>

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

1. Elige tu clúster de la lista de clústeres.

1. En la pestaña IDE y cuadernos, busca Amazon SageMaker Spaces y, a continuación, selecciona Instalación personalizada.

1. Configure las siguientes opciones:

   **Los roles de IAM necesarios para cada complemento**
   + Elija si desea crear nuevas funciones de IAM con los permisos recomendados o utilizar las existentes con los permisos necesarios (consulte la sección anterior sobre la configuración de los permisos de administrador)

   **Configuración de acceso remoto**
   + Habilitar para permitir que los usuarios se conecten a los espacios desde el código local de Visual Studio mediante AWS Systems Manager
   + Para el rol de instancia gestionado por SSM:
     + **Crear un nuevo rol**: el complemento crea y administra el rol con los permisos de Systems Manager necesarios
     + **Utilizar el rol existente**: seleccione un rol preconfigurado con los permisos de Systems Manager necesarios
   + Asegúrese de que la función de ejecución del complemento Spaces tenga PassRole permisos para la función de instancia gestionada por SSM
**nota**  
Al habilitar el acceso remoto, se activa el nivel de instancias avanzadas de AWS Systems Manager por cargos adicionales por instancia. Para obtener información sobre los precios, consulte los precios de Systems Manager.

   **Configuración de acceso a un navegador web**
   + Habilitar para permitir que los usuarios accedan a los espacios a través de un navegador web mediante los certificados DNS y SSL de Route 53
   + **Requisitos previos:** instale el AWS Load Balancer Controller antes de habilitar el acceso al navegador
   + **Zona alojada de Route 53:** selecciona una zona alojada existente para un dominio o subdominio de tu propiedad. El dominio o subdominio debe estar registrado y bajo su control para permitir la administración del DNS y la validación de los certificados SSL.

     Para obtener más información sobre el registro de dominios, consulte [Registrar un dominio nuevo](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html#domain-register-procedure-section) en la Guía para desarrolladores de Route 53.
   + **Subdominio:** introduzca el prefijo del subdominio (solo alfanuméricos y guiones, máximo 63 caracteres)
   + **Certificado SSL:** seleccione un certificado SSL existente de AWS Certificate Manager. El certificado debe ser válido y cubrir tanto su subdominio (por ejemplo, subdominio.domain.com) como los subdominios comodín (por ejemplo, \$1.subdomain.domain.com) para permitir el acceso individual al espacio. URLs
   +  **Clave de firma de token: seleccione una clave asimétrica de KMS para la firma** de token de JWT. AWS La clave se usa para cifrar los tokens de autenticación para un acceso seguro a la WeBui. Puede crear una nueva clave asimétrica en KMS o seleccionar una existente a la que tenga acceso su cuenta.
**nota**  
Se aplican cargos estándar de Route 53 a las zonas alojadas y a las consultas de DNS. Para obtener información sobre precios, consulte los precios de Route 53.

#### Instalación del complemento EKS: Jupyter K8s con Webui
<a name="webui-install"></a>

##### Archivo de configuración
<a name="configure-file"></a>

Crear: `addon-config.yaml`

```
jupyter-k8s:
  workspacePodWatching:
    enable: true

jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    kmsEncryptionContext:
      enabled: true
    traefik:
      shouldInstall: true
    auth:
      kmsKeyId: "<KMS_KEY_ARN>"
```

**Sustituya los siguientes marcadores de posición:**
+ <DOMAIN\$1NAME>: Su nombre de dominio (por ejemplo,`jupyter.example.com`)
+ <ACM\$1CERTIFICATE\$1ARN>: El ARN de su certificado ACM (p. ej., `arn:aws:acm:us-west-2:111122223333:certificate/12345678-1234-1234-1234-123456789012` 
+ <KMS\$1KEY\$1ARN>: El ARN de su clave KMS (p. ej., `arn:aws:kms:us-west-2:111122223333:key/12345678-1234-1234-1234-123456789012`

##### Instalación mediante AWS CLI
<a name="install-via-cli"></a>

```
aws eks create-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

**Para actualizar el complemento existente:**

```
aws eks update-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

##### Instalación mediante Consola de administración de AWS
<a name="install-via-console"></a>

1. Vaya a la **consola EKS** → Seleccione su clúster

1. Haga clic en la pestaña **Complementos** → **Añadir nuevo**

1. Seleccione el complemento **SageMaker Spaces**

1. Pegue la configuración de YAML anterior en los ajustes de configuración **opcionales**

1. Haz clic en **Siguiente** y, a continuación, revisa la configuración del complemento

1. Haga clic en **Create (Crear)**

##### Verifica la instalación
<a name="install-verify"></a>

```
# Check addon status
aws eks describe-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --region <AWS_REGION>
```

##### Personalización de los atributos de ALB
<a name="customize-alb"></a>

De forma predeterminada, el complemento crea un balanceador de cargas público para usarlo con la interfaz de usuario web. Puedes personalizar los atributos del balanceador de cargas mediante las propiedades del complemento EKS.

Para crear un ALB interno, defina el esquema de la siguiente manera: `internal`

```
jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    alb:
      scheme: "internal"  # Default is "internet-facing"
```

También puede usar el `alb.annotations` campo para personalizar la configuración del ALB:

```
jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    alb:
      scheme: "internal"
      annotations:
        alb.ingress.kubernetes.io/security-groups: "<SECURITY_GROUP_ID>"
        alb.ingress.kubernetes.io/subnets: "<SUBNET_ID_1>,<SUBNET_ID_2>"
        alb.ingress.kubernetes.io/load-balancer-attributes: "idle_timeout.timeout_seconds=60"
```

**Anotaciones ALB comunes:**
+ `alb.ingress.kubernetes.io/security-groups`: especifique los grupos de seguridad para el ALB
+ `alb.ingress.kubernetes.io/subnets`: especifique las subredes para el ALB
+ `alb.ingress.kubernetes.io/load-balancer-attributes`: Defina los atributos del ALB (tiempo de espera de inactividad, registros de acceso, etc.)

Consulte la [documentación del AWS Load Balancer Controller](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/ingress/annotations/) para ver todas las anotaciones disponibles.

### Actualización o control de versiones del complemento
<a name="upgrade-add-on"></a>

```
aws eks update-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

# Personaliza el complemento
<a name="customization"></a>

## Plantilla
<a name="customization-template"></a>

Las plantillas son configuraciones de espacio de trabajo reutilizables que sirven como modelos controlados por el administrador para la creación de espacios de trabajo. Proporcionan valores predeterminados para la configuración del espacio de trabajo y sirven de barrera para controlar lo que pueden hacer los científicos de datos. Las plantillas existen a nivel de clúster y se pueden reutilizar en todos los espacios de nombres. 

SageMaker Spaces crea dos plantillas de sistema como punto de partida para los científicos de datos, una para el editor de código y otra para. JupyterLab El complemento administra estas plantillas de sistema y no se pueden editar directamente. En su lugar, los administradores pueden crear nuevas plantillas y configurarlas como predeterminadas.

## Gobierno de tareas
<a name="customization-governabce"></a>

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: my-jupyter-template
  namespace: my-namespace
  labels:
    kueue.x-k8s.io/priority-class: <user-input>-priority
spec:
  displayName: "My Custom Jupyter Lab"
  description: "Custom Jupyter Lab with specific configurations"
  defaultImage: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
  allowedImages:
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  defaultResources:
    requests:
      cpu: "1"
      memory: "4Gi"
    limits:
      cpu: "4"
      memory: "16Gi"
  primaryStorage:
    defaultSize: "10Gi"
    minSize: "5Gi"
    maxSize: "50Gi"
    defaultStorageClassName: "sagemaker-spaces-default-storage-class"
    defaultMountPath: "/home/sagemaker-user"
  defaultContainerConfig:
    command: ["/opt/amazon/sagemaker/workspace/bin/entrypoint-workspace-jupyterlab"]
  defaultPodSecurityContext:
    fsGroup: 1000
  defaultOwnershipType: "Public"
  defaultAccessStrategy:
    name: "hyperpod-access-strategy"
  allowSecondaryStorages: true
  appType: "jupyterlab"
```

## SMD/ Imágenes personalizadas
<a name="customization-image"></a>

Los clientes pueden configurar las políticas de imágenes mediante plantillas proporcionando una imagen predeterminada y una lista de imágenes permitidas. Además, los administradores pueden elegir si permiten que los científicos de datos traigan sus propias imágenes personalizadas. El sistema utiliza de forma predeterminada la SageMaker distribución más reciente, pero si desea anclarla a una versión concreta, puede especificar la versión exacta de SMD para utilizarla en una plantilla.

Requisitos de imagen personalizada:
+ `curl`si desea utilizar el apagado inactivo
+ puerto 8888
+ acceso remoto

## Requisito de IDE remoto
<a name="remote-ide-requirement"></a>

### Requisito de versión de Visual Studio Code
<a name="remote-ide-requirement-vscode"></a>

Se requiere la versión [v1.90](https://code.visualstudio.com/updates/v1_90) o superior de Visual Studio Code. Recomendamos que se utilice la [versión más reciente de Visual Studio Code](https://code.visualstudio.com/updates).

### Requisitos del sistema operativo
<a name="remote-ide-requirement-operate"></a>

Para conectarse de forma remota a los espacios de Studio, necesita uno de los siguientes sistemas operativos:
+ macOS 13 o superior
+ Windows 10
  + [El soporte de Windows 10 finaliza el 14 de octubre de 2025](https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281)
+ Windows 11
+ Linux
+ Instala el [código oficial de Microsoft VS para Linux](https://code.visualstudio.com/docs/setup/linux)
  + no es una versión de código abierto

### Requisitos previos de la máquina local
<a name="remote-ide-requirement-machine"></a>

Antes de conectar el código de Visual Studio local a los espacios de Studio, asegúrese de que la máquina local tenga las dependencias y el acceso a la red necesarios.

**nota**  
Los entornos con restricciones de instalación de software pueden impedir que los usuarios instalen las dependencias necesarias. El AWS Toolkit for Visual Studio Code busca automáticamente estas dependencias al iniciar conexiones remotas y solicitará la instalación si falta alguna. Coordínese con su departamento de TI para asegurarse de que estos componentes estén disponibles.

**Dependencias locales requeridas**

Su máquina local debe tener instalados los siguientes componentes:
+ **[https://code.visualstudio.com/docs/remote/ssh](https://code.visualstudio.com/docs/remote/ssh)**
+ — Extensión estándar de VS Code Marketplace para desarrollo remoto
+ **[Plugin Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)**: necesario para una gestión segura de las sesiones
+ **Cliente SSH**: componente estándar en la mayoría de las máquinas (se recomienda [OpenSSH para Windows](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse))
+ **[https://code.visualstudio.com/docs/configure/command-line](https://code.visualstudio.com/docs/configure/command-line)**
+  Normalmente se incluye con la instalación de VS Code

**Requisitos específicos de la plataforma**
+ **Usuarios de Windows**: se requiere la PowerShell versión 5.1 o posterior para las conexiones de terminales SSH

**Requisitos de conectividad de red**

Su máquina local debe tener acceso de red a los [puntos finales del administrador de sesiones](https://docs.aws.amazon.com/general/latest/gr/ssm.html). Por ejemplo, en EE. UU. Este (Virginia del Norte) (us-east-1) pueden ser:
+ `[ssm.us-east-1.amazonaws.com](http://ssm.us-east-1.amazonaws.com)`
+ `ssm.us-east-1.api.aws`
+ `[ssmmessages.us-east-1.amazonaws.com](http://ssmmessages.us-east-1.amazonaws.com)`
+ `[ec2messages.us-east-1.amazonaws.com](http://ec2messages.us-east-1.amazonaws.com)`

### Requisitos de imágenes
<a name="remote-ide-requirement-image"></a>

**SageMaker Imágenes de distribución**

Cuando utilice SageMaker Distribution con acceso remoto, utilice la versión 2.7 o posterior de [SageMaker Distribution](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-distribution.html).

**Imágenes personalizadas**

Cuando [traiga su propia imagen (BYOI)](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi.html) con acceso remoto, asegúrese de seguir las [especificaciones de imagen personalizadas](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi-specs.html) y de que estén instaladas las siguientes dependencias:
+ `curl`o `wget` — Necesario para descargar componentes AWS CLI 
+ `unzip`— Necesario para extraer los archivos AWS CLI de instalación
+ `tar`— Necesario para la extracción de archivos
+ `gzip`— Necesario para la gestión de archivos comprimidos

### Requisitos de instancias
<a name="remote-ide-requirement-instance"></a>
+ **Memoria**: 8 GB o más
+ Usa instancias con al menos 8 GB de memoria. *No* se admiten los siguientes tipos de instancia por falta de memoria (menos de 8 GB): `ml.t3.medium`, `ml.c7i.large`, `ml.c6i.large`, `ml.c6id.large` y `ml.c5.large`. Para obtener una lista más completa de los tipos de instancias, consulte la página de [precios bajo demanda de Amazon EC2](https://aws.amazon.com/ec2/pricing/on-demand/)

## Optimización del tiempo de inicio de Kubernetes mediante el precalentamiento de las imágenes de los contenedores
<a name="remote-ide-optimize-image"></a>

El rendimiento de la extracción de imágenes de contenedores se ha convertido en un obstáculo importante para muchos clientes de EKS, especialmente porque las AI/ML cargas de trabajo dependen de imágenes de contenedores cada vez más grandes. La primera vez que se utilizan en cada nodo de EKS, se tarda varios minutos en extraer y desempaquetar estas imágenes de gran tamaño. Este retraso añade una latencia considerable a la hora de lanzar SageMaker Spaces y repercute directamente en la experiencia del usuario, especialmente en entornos en los que es fundamental un arranque rápido, como las libretas o las tareas de desarrollo interactivo. 

El precalentamiento de imágenes es una técnica que se utiliza para precargar imágenes de contenedores específicas en cada nodo del EKS/HyperPod clúster antes de que se necesiten. En lugar de esperar a que un módulo active la primera extracción de una imagen grande, el clúster descarga y almacena en caché las imágenes de todos los nodos de forma proactiva. Esto garantiza que, cuando se inicien las cargas de trabajo, las imágenes necesarias ya estén disponibles localmente, lo que elimina las largas demoras en el arranque en frío. El precalentamiento de la imagen mejora la velocidad de inicio de SageMaker Spaces y proporciona a los usuarios finales una experiencia más predecible y con mayor capacidad de respuesta.

### El precalentamiento mediante DaemonSet
<a name="remote-ide-optimize-image-dae"></a>

Recomendamos utilizar un DaemonSet para precargar las imágenes. A DaemonSet garantiza que un pod se ejecute en cada nodo del clúster. Cada contenedor del DaemonSet pod hace referencia a una imagen que deseas almacenar en caché. Cuando Kubernetes inicia el pod, extrae automáticamente las imágenes y calienta la caché de cada nodo.

En el siguiente ejemplo, se muestra cómo crear una DaemonSet que precargue dos imágenes de la GPU. Cada contenedor ejecuta un `sleep infinity` comando ligero para mantener el pod activo con una sobrecarga mínima.

```
cat <<EOF | kubectl apply -n "namespace_1" -f -
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: image-preload-ds
spec:
  selector:
    matchLabels:
      app: image-preloader
  template:
    metadata:
      labels:
        app: image-preloader
    spec:
      containers:
      - name: preloader-3-4-2
        image: public.ecr.aws/sagemaker/sagemaker-distribution:3.4.2-gpu
        command: ["sleep"]
        args: ["infinity"]
        resources:
          requests:
            cpu: 1m
            memory: 16Mi
          limits:
            cpu: 5m
            memory: 32Mi
      - name: preloader-3-3-2
        image: public.ecr.aws/sagemaker/sagemaker-distribution:3.3.2-gpu
        command: ["sleep"]
        args: ["infinity"]
        resources:
          requests:
            cpu: 1m
            memory: 16Mi
          limits:
            cpu: 5m
            memory: 32Mi
EOF
```

### Cómo funciona
<a name="remote-ide-optimize-image-how"></a>
+ Cada contenedor hace referencia a una imagen.
+ Kubernetes debe descargar cada imagen antes de iniciar el contenedor.
+ Una vez que el pod se ejecuta en todos los nodos, las imágenes se almacenan en caché localmente.
+ Cualquier carga de trabajo que utilice estas imágenes ahora comienza mucho más rápido.

## Espacio de almacenamiento predeterminado (EBS)
<a name="space-storage"></a>

El sistema utiliza el controlador CSI de EBS de forma predeterminada para aprovisionar los volúmenes de almacenamiento de EBS para cada espacio de trabajo. SageMaker crea una clase de almacenamiento de EBS para usarla con los espacios de trabajo, y los administradores pueden personalizar el tamaño predeterminado y máximo de estos volúmenes mediante la configuración de la plantilla. Para los usuarios avanzados que trabajan con herramientas CLI, también puede personalizar la clase de almacenamiento del espacio de trabajo, lo que permite a los usuarios aprovechar otras clases de almacenamiento, incluida la configuración de claves KMS administradas por el cliente para sus volúmenes de EBS.

Tenga en cuenta que los volúmenes de EBS están enlazados a una zona de disponibilidad determinada, lo que significa que los espacios de trabajo solo se pueden programar en nodos de la misma zona de disponibilidad que su volumen de almacenamiento. Esto puede provocar errores de programación si existe capacidad del clúster pero no en la AZ correcta.

## Almacenamiento adicional
<a name="space-additional-storage"></a>

SageMaker Spaces permite adjuntar volúmenes de almacenamiento adicionales, como Amazon EFS, FSx for Lustre o S3 Mountpoint, a sus espacios de desarrollo. Esto te permite acceder a conjuntos de datos compartidos, colaborar en proyectos o utilizar almacenamiento de alto rendimiento para tus cargas de trabajo.

### Requisitos previos
<a name="space-additional-storage-prereq"></a>

Antes de adjuntar almacenamiento adicional a los espacios, debes:

1. **Instale el complemento de controlador CSI adecuado** mediante los [complementos de EKS](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html) (controlador CSI Amazon EFS, controlador CSI Amazon FSx for Lustre o controlador CSI Mountpoint para Amazon S3)

1. **Configure los recursos de almacenamiento y PersistentVolumeClaims** siga la documentación del controlador CSI para su tipo de almacenamiento específico

1. **Asegúrese de que el PVC esté disponible** en el mismo espacio de nombres en el que planea crear su espacio

### Adjuntar almacenamiento a los espacios
<a name="space-additional-storage-attach"></a>

Una vez que haya PersistentVolumeClaim configurado una, puede adjuntarla a un espacio mediante la HyperPod CLI o kubectl.

**HyperPod CLI**

```
hyp create hyp-space \
    --name my-space \
    --display-name "My Space with FSx" \
    --memory 8Gi \
    --volume name=shared-fsx,mountPath=/shared,persistentVolumeClaimName=my-fsx-pvc
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-space
spec:
  displayName: "My Space with FSx"
  desiredStatus: Running
  volumes:
  - name: shared-fsx
    mountPath: /shared
    persistentVolumeClaimName: my-fsx-pvc
```

### Múltiples volúmenes
<a name="space-additional-storage-multiple"></a>

Puede adjuntar varios volúmenes de almacenamiento adicionales a un solo espacio especificando varios `--volume` indicadores con la CLI o varias entradas en la `volumes` matriz con kubectl.

**HyperPod CLI**

```
hyp create hyp-space \
    --name my-space \
    --display-name "My Space with Multiple Storage" \
    --memory 8Gi \
    --volume name=shared-efs,mountPath=/shared,persistentVolumeClaimName=my-efs-pvc \
    --volume name=datasets,mountPath=/datasets,persistentVolumeClaimName=my-s3-pvc
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-space
spec:
  displayName: "My Space with Multiple Storage"
  desiredStatus: Running
  volumes:
  - name: shared-efs
    mountPath: /shared
    persistentVolumeClaimName: my-efs-pvc
  - name: datasets
    mountPath: /datasets
    persistentVolumeClaimName: my-s3-pvc
```

## Configuración de recursos
<a name="space-resource-configuration"></a>

SageMaker Spaces le permite configurar los recursos informáticos para sus entornos de desarrollo, incluidos los recursos de CPU, memoria y GPU, para que se adapten a sus requisitos de carga de trabajo.

### Configuración de GPU
<a name="space-gpu-configuration"></a>

SageMaker Spaces admite tanto la asignación completa de la GPU como el particionamiento de la GPU mediante la tecnología de GPU de instancias múltiples (MIG) de NVIDIA. Esto te permite optimizar el uso de la GPU para distintos tipos de cargas de trabajo de aprendizaje automático.

#### Asignación total de la GPU
<a name="space-gpu-whole"></a>

**HyperPod CLI**

```
hyp create hyp-space \
    --name gpu-space \
    --display-name "GPU Development Space" \
    --image public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu \
    --memory 16Gi \
    --gpu 1 \
    --gpu-limit 1
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: gpu-space
spec:
  displayName: "GPU Development Space"
  image: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  desiredStatus: Running
  resources:
    requests:
      memory: "16Gi"
      nvidia.com/gpu: "1"
    limits:
      memory: "16Gi"
      nvidia.com/gpu: "1"
```

#### Particionamiento de GPU (MIG)
<a name="space-gpu-mig"></a>

El particionamiento de la GPU mediante la tecnología de GPU de instancias múltiples (MIG) de NVIDIA permite particionar una sola GPU en instancias más pequeñas y aisladas. El HyperPod clúster debe tener nodos de GPU que admitan MIG y tener perfiles MIG configurados. Para obtener más información sobre cómo configurar MIG en el HyperPod clúster, consulte [Partición de GPU](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-gpu-partitioning-setup.html) con NVIDIA MIG.

**HyperPod CLI**

```
hyp create hyp-space \
    --name mig-space \
    --display-name "MIG GPU Space" \
    --image public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu \
    --memory 8Gi \
    --accelerator-partition-type mig-3g.20gb \
    --accelerator-partition-count 1
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: mig-space
spec:
  displayName: "MIG GPU Space"
  image: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  desiredStatus: Running
  resources:
    requests:
      memory: "8Gi"
      nvidia.com/mig-3g.20gb: "1"
    limits:
      memory: "8Gi"
      nvidia.com/mig-3g.20gb: "1"
```

## Ciclo de vida
<a name="space-lifecycle"></a>

La configuración del ciclo de vida proporciona scripts de inicio que se ejecutan al crear o iniciar un espacio de trabajo. Estos scripts permiten a los administradores personalizar el entorno del espacio de trabajo durante el inicio. Se trata de scripts bash con un tamaño máximo de 1 KB. Si necesita una configuración más amplia, le recomendamos añadir un script a la imagen del contenedor y activar el script a partir de la configuración del ciclo de vida.

[Aprovechamos los enlaces del ciclo de vida de los contenedores de Kubernetes para ofrecer esta funcionalidad en https://kubernetes. io/docs/concepts/containers/container](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/)-lifecycle-hooks/. Tenga en cuenta que Kubernetes no garantiza cuándo se ejecutará el script de inicio en relación con el punto de entrada del contenedor. 

## Cierre por inactividad
<a name="space-idle-shutdown"></a>

Configure el cierre automático de los espacios de trabajo inactivos para optimizar el uso de los recursos.

### Cierre por inactividad
<a name="space-idle-shutdown-spec"></a>

```
idleShutdown:
  enabled: true
  idleShutdownTimeoutMinutes: 30
  detection:
    httpGet:
      path: /api/idle
      port: 8888
      scheme: HTTP
```

### Parameters
<a name="space-idle-shutdown-parameter"></a>

**habilitado** (booleano, obligatorio): habilita o deshabilita el cierre inactivo del espacio de trabajo.

**idleShutdownTimeoutMinutos** (enteros, obligatorios): número de minutos de inactividad antes de que se cierre el espacio de trabajo. El valor mínimo es 1.

**detección** (objeto, obligatorio): define cómo detectar el estado inactivo del espacio de trabajo.

**Detection.httpGet** (objeto, opcional): configuración de punto final HTTP para la detección de inactividad. Utiliza la especificación Action de Kubernetes. HTTPGet
+ **ruta: ruta** HTTP a solicitar
+ **puerto**: número o nombre del puerto
+ **esquema**: HTTP o HTTPS (predeterminado: HTTP)

### Ubicaciones de configuración
<a name="space-idle-shutdown-configure"></a>

**Configuración del espacio de trabajo**

Defina el apagado por inactividad directamente en la especificación del espacio de trabajo:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:

      name: my-workspace
spec:
  displayName: "Development Workspace"
  image:
      jupyter/scipy-notebook:latest
  idleShutdown:
    enabled: true

      idleShutdownTimeoutMinutes: 30
    detection:
      httpGet:
        path:
      /api/idle
        port: 8888
```

**Configuración de la plantilla**

Defina el comportamiento de apagado en reposo predeterminado en WorkspaceTemplate:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: jupyter-template
spec:
  displayName: "Jupyter Template"
  defaultImage: jupyter/scipy-notebook:latest
  defaultIdleShutdown:
    enabled: true
    idleShutdownTimeoutMinutes: 30
    detection:
      httpGet:
        path: /api/idle
        port: 8888
  idleShutdownOverrides:
    allow: true
    minTimeoutMinutes: 60
    maxTimeoutMinutes: 240
```

### Herencia y anulaciones de plantillas
<a name="space-idle-shutdown-inherit"></a>

Los espacios de trabajo que utilizan una plantilla heredan automáticamente la configuración de la plantilla. `defaultIdleShutdown` Los espacios de trabajo pueden anular esta configuración si la plantilla lo permite.

**Política de anulación**

Las plantillas controlan el comportamiento de anulación mediante: `idleShutdownOverrides`

**allow** (boolean, default: true): indica si los espacios de trabajo pueden anular la configuración predeterminada de apagado por inactividad.

**minTimeoutMinutes**(entero, opcional): valor de tiempo de espera mínimo permitido para las anulaciones de espacios de trabajo.

**maxTimeoutMinutes**(entero, opcional): valor de tiempo de espera máximo permitido para las anulaciones del espacio de trabajo.

**Ejemplo de herencia**

Workspace hereda los valores predeterminados de la plantilla:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-workspace
spec:
  displayName: "My Workspace"
  templateRef:
    name: jupyter-template
  # Inherits defaultIdleShutdown from template
```

**Ejemplo de anulación**

Workspace anula los valores predeterminados de la plantilla:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-workspace
spec:
  displayName: "My Workspace"
  templateRef:
    name: jupyter-template
  idleShutdown:
    enabled: true
    idleShutdownTimeoutMinutes: 60  # Must be within template bounds
    detection:
      httpGet:
        path: /api/idle
        port: 8888
```

**Configuración bloqueada**

Evite la anulación del espacio de trabajo:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: locked-template
spec:
  displayName: "Locked Template"
  defaultImage: jupyter/scipy-notebook:latest
  defaultIdleShutdown:
    enabled: true
    idleShutdownTimeoutMinutes: 30
    detection:
      httpGet:
        path: /api/idle
        port: 8888
  idleShutdownOverrides:
    allow: false  # Workspaces cannot override
```

### Comportamiento
<a name="space-idle-shutdown-behavior"></a>

Cuando el apagado por inactividad está activado, el sistema comprueba periódicamente la actividad del espacio de trabajo mediante el punto de conexión HTTP configurado. Si el punto final indica que el espacio de trabajo está inactivo durante el tiempo de espera especificado, el espacio de trabajo se detiene automáticamente. Puede reiniciar manualmente el espacio de trabajo cuando sea necesario.

## Actualizaciones de plantillas
<a name="customization-template-updates"></a>

Las herramientas del cliente, como Kubectl o Hyperpod CLI y SDK, se pueden usar para administrar Spaces dentro del clúster de EKS. Los administradores pueden aprovisionar plantillas de Space para las configuraciones de Space predeterminadas, mientras que los científicos de datos pueden personalizar sus entornos de desarrollo integrados sin necesidad de comprender la complejidad subyacente de Kubernetes. Para obtener instrucciones de uso detalladas, consulte la documentación de CLI y SDK en [https://sagemaker-hyperpod-cli.readthedocs.io/en/latest/index.html](https://sagemaker-hyperpod-cli.readthedocs.io/en/latest/index.html).

Los administradores pueden realizar operaciones CRUD en las plantillas de Space, que sirven como configuraciones básicas al crear un espacio. Los científicos de datos pueden realizar operaciones CRUD en Spaces y anular varios parámetros, incluidos los perfiles de GPU de varias instancias para nodos de procesamiento específicos. Pueden iniciar, detener y conectarse a los Spaces mediante el VSCode acceso remoto y la interfaz de usuario web. Cuando se actualiza una plantilla de espacio, cualquier espacio que se cree posteriormente se configurará con los ajustes de la plantilla actualizada. Las comprobaciones de conformidad se realizarán cuando se actualicen o se inicien los espacios existentes. Si alguna configuración está fuera de los límites o no coincide, los espacios no se actualizarán ni se iniciarán.

## Usando hyp cli y kubectl
<a name="customization-hyp-cli"></a>

El usuario puede realizar CRUD en las plantillas con la CLI de Hyperpod

```
### 1. Create a Space Template
hyp create hyp-space-template --file template.yaml

### 2. List Space Templates
hyp list hyp-space-template
hyp list hyp-space-template --output json

### 3. Describe a Space Template
hyp describe hyp-space-template --name my-template
hyp describe hyp-space-template --name my-template --output json

### 4. Update a Space Template
hyp update hyp-space-template --name my-template --file updated-template.yaml

### 5. Delete a Space Template
hyp delete hyp-space-template --name my-template
```

Para crear plantillas personalizadas, puede utilizar las plantillas de nuestro sistema como punto de partida. Esta plantilla funcionará para imágenes tipo SMD, pero se puede personalizar en función de las imágenes utilizadas por los administradores.

Ejemplo de plantilla personalizada: JupyterLab 

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: my-jupyter-template
  namespace: my-namespace
spec:
  displayName: "My Custom Jupyter Lab"
  description: "Custom Jupyter Lab with specific configurations"
  defaultImage: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
  allowedImages:
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  defaultResources:
    requests:
      cpu: "1"
      memory: "4Gi"
    limits:
      cpu: "4"
      memory: "16Gi"
  primaryStorage:
    defaultSize: "10Gi"
    minSize: "5Gi"
    maxSize: "50Gi"
    defaultStorageClassName: "sagemaker-spaces-default-storage-class"
    defaultMountPath: "/home/sagemaker-user"
  defaultContainerConfig:
    command: ["/opt/amazon/sagemaker/workspace/bin/entrypoint-workspace-jupyterlab"]
  defaultPodSecurityContext:
    fsGroup: 1000
  defaultOwnershipType: "Public"
  defaultAccessStrategy:
    name: "hyperpod-access-strategy"
  allowSecondaryStorages: true
  appType: "jupyterlab"
```

Ejemplo de plantilla de editor de código personalizada:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: my-code-editor-template
  namespace: my-namespace
spec:
  displayName: "My Custom Code Editor"
  description: "Custom Code Editor with specific configurations"
  defaultImage: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
  allowedImages:
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  defaultResources:
    requests:
      cpu: "1"
      memory: "4Gi"
    limits:
      cpu: "4"
      memory: "16Gi"
  primaryStorage:
    defaultSize: "10Gi"
    minSize: "5Gi"
    maxSize: "50Gi"
    defaultStorageClassName: "sagemaker-spaces-default-storage-class"
    defaultMountPath: "/home/sagemaker-user"
  defaultContainerConfig:
    command: ["/opt/amazon/sagemaker/workspace/bin/entrypoint-workspace-code-editor"]
  defaultPodSecurityContext:
    fsGroup: 1000
  defaultOwnershipType: "Public"
  defaultAccessStrategy:
    name: "hyperpod-access-strategy"
  allowSecondaryStorages: true
  appType: "code-editor"
```

# Agregue usuarios y configure cuentas de servicio
<a name="add-user"></a>

## Control de acceso detallado: nuestra recomendación
<a name="add-user-access-control"></a>

Los usuarios se diferencian en función de su nombre de usuario de Kubernetes. El nombre de usuario de Kubernetes se define en su entrada de acceso. Para garantizar que dos usuarios humanos tengan nombres de usuario distintos, hay dos opciones:

1. Recomendado: varios usuarios humanos pueden usar el mismo rol siempre que cada uno tenga su propio nombre de sesión distinto que persista entre sesiones. De forma predeterminada, los nombres de usuario de Kubernetes para las funciones de IAM tienen este formato. `arn:aws:sts::{ACCOUNT_ID}:assumed-role/{ROLE_NAME}/{SESSION_NAME}` Con este valor predeterminado, los usuarios ya estarán diferenciados por el nombre de la sesión. Un administrador tiene varias formas de imponer nombres de sesión únicos por usuario.
   + Inicio de sesión SSO: los usuarios que utilicen el inicio de sesión único tendrán de forma predeterminada un nombre de sesión vinculado a su nombre de usuario AWS 
   + Servicio central de venta de credenciales: en el caso de los clientes empresariales, es posible que dispongan de algún servicio interno de venta de credenciales al que los usuarios puedan llamar para obtener credenciales con su identidad. 
   + Aplicación basada en roles: exija a los usuarios de IAM que establezcan su `aws:username` nombre de sesión de rol cuando asuman un rol de IAM en la suya. Cuenta de AWS La documentación sobre cómo hacerlo está aquí: [https://aws.amazon.com/blogs/seguridad/ -/easily-control-naming-individualiam-role-sessions](https://aws.amazon.com/blogs/security/easily-control-naming-individual-iam-role-sessions/)

1. Si dos científicos de datos utilizan entradas de acceso diferentes (función o usuario de IAM diferente), siempre se contarán como usuarios diferentes.

**Crear una entrada de acceso**

Política de IAM requerida para el puesto de científico de datos:
+ `eks:DescribeCluster`

Políticas de acceso y entrada obligatorias
+ `AmazonSagemakerHyperpodSpacePolicy`- dentro del ámbito del espacio de nombres, DS debería crear espacios en
+ `AmazonSagemakerHyperpodSpaceTemplatePolicy`- limitado al espacio de nombres «jupyter-k8s-shared»

## Espacios públicos y privados
<a name="add-user-spaces"></a>

Admitimos 2 tipos de patrones de uso compartido: «Público» y «OwnerOnly». Tanto los campos «AccessType» como «OwnershipType» utilizan estos dos valores.
+ AccessType: Cualquier persona con permisos en el espacio de nombres puede acceder a los espacios públicos, mientras que solo OwnerOnly pueden acceder a ellos el creador del espacio y los usuarios administradores. Los usuarios administradores se definen con los siguientes criterios:
+ OwnershipType: Los espacios públicos pueden ser modified/deleted propiedad de cualquier persona con permisos en el espacio de nombres, OwnerOnly del creador o del administrador. modified/deleted 

Los usuarios administradores se definen de la siguiente manera:

1. Forma parte del grupo `system:masters` Kubernetes

1. Parte del grupo de Kubernetes definido en la variable de entorno CLUSTER\$1ADMIN\$1GROUP del diagrama helm.

Los grupos de un usuario se pueden configurar mediante las entradas de acceso EKS. Un espacio se puede definir como «público» o «OwnerOnly» configurando las especificaciones del objeto:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  labels:
    app.kubernetes.io/name: jupyter-k8s
  name: example-workspace
spec:
  displayName: "Example Workspace"
  image: "public.ecr.aws/sagemaker/sagemaker-distribution:3.4.2-cpu"
  desiredStatus: "Running"
  ownershipType: "Public"/"OwnerOnly"
  accessType: "Public"/"OwnerOnly"
  # more fields here
```

# Límites
<a name="ds-limits"></a>

Los espacios funcionan como módulos en los nodos HyperPod EKS con volúmenes EBS adjuntos. La cantidad de espacios que se pueden implementar por nodo está limitada por los límites de la AWS infraestructura.

**Límites de volumen de EBS por nodo**

[Referencia: \$1limits.html https://docs.aws.amazon.com/AWSEC2/ latest/UserGuide/volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html)

Los nodos EC2 tienen un número máximo de volúmenes de EBS que se pueden conectar. Como cada espacio suele utilizar un volumen de EBS, esto limita el número de espacios con almacenamiento de EBS dedicado que pueden ejecutarse en un solo nodo.

**Número máximo de pods por nodo HyperPod **

Referencia: [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- hyperpod-eks-prerequisites .html](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)

Cada tipo de HyperPod instancia admite un número máximo de pods en función de las direcciones IP disponibles en el complemento CNI de VPC. Como cada espacio se ejecuta como un pod, esto limita directamente el número de espacios por nodo.

**Impact**

El límite efectivo de espacios por nodo es la restricción que se alcance primero. 

# La gobernanza de las tareas de Interactive Spaces está en HyperPod
<a name="task-governance"></a>

En esta sección, se explica cómo optimizar los clústeres de Amazon SageMaker HyperPod EKS compartidos para las cargas de trabajo de Interactive Spaces. Aprenderá a configurar las funciones de gobierno de tareas de Kueue, incluidas la administración de cuotas, la programación prioritaria y las políticas de intercambio de recursos, para garantizar que sus cargas de trabajo de desarrollo se ejecuten sin interrupciones y, al mismo tiempo, mantener una asignación justa entre las actividades de formación, evaluación y procesamiento por lotes de sus equipos.

## Cómo funciona la gestión del espacio interactivo
<a name="task-governance-how"></a>

Para gestionar eficazmente los espacios interactivos en clústeres de HyperPod EKS compartidos, implemente las siguientes estrategias de gobierno de tareas utilizando las capacidades existentes de Kueue.

**Configuración de las clases de prioridad**

Defina clases prioritarias específicas para los espacios interactivos con un peso elevado (por ejemplo, 100) a fin de garantizar que los módulos de desarrollo se admitan y programen antes que otros tipos de tareas. Esta configuración permite a Interactive Spaces evitar las tareas de menor prioridad durante la carga del clúster, lo cual es fundamental para mantener flujos de trabajo de desarrollo ininterrumpidos.

**Dimensiones y asignación de cuotas**

Reserva suficientes recursos de cómputo en tu equipo ClusterQueue para gestionar las cargas de trabajo de desarrollo esperadas. Durante los períodos en los que los recursos de desarrollo están inactivos, los recursos de cuota no utilizados se pueden asignar temporalmente a las tareas de otros equipos. Cuando la demanda de desarrollo aumente, estos recursos prestados se pueden recuperar para dar prioridad a los módulos de Interactive Space pendientes.

**Estrategias de uso compartido de recursos**

Elija entre dos enfoques de uso compartido de cuotas en función de sus requisitos:

*Control estricto de los recursos*: desactive las cuotas de préstamo y los préstamos para garantizar que la capacidad de cómputo reservada esté siempre disponible para sus Interactive Spaces. Este enfoque requiere cuotas de tamaño lo suficientemente grandes como para gestionar de forma independiente los picos de demanda de desarrollo y puede provocar que los nodos estén inactivos durante los períodos de bajo uso.

*Uso compartido flexible de recursos*: habilite el préstamo de cuotas para que otros equipos puedan utilizar los recursos de desarrollo inactivos cuando sea necesario. Sin embargo, deshabilite los préstamos para garantizar que Interactive Spaces nunca funcione con recursos prestados y recuperables que podrían provocar desalojos inesperados.

**Preferencia dentro del equipo**

Activa la prevención dentro del equipo cuando ejecutes cargas de trabajo mixtas (formación, evaluación y espacios interactivos) por debajo de la misma cuota. Esto le permite a Kueue evitar los trabajos de menor prioridad dentro de su equipo para dar cabida a los módulos de Interactive Space de alta prioridad, lo que garantiza que el trabajo de desarrollo pueda continuar sin tener que depender de cuotas externas.

## Ejemplo de configuración de Interactive Space
<a name="task-governance-space-setup"></a>

El siguiente ejemplo muestra cómo Kueue administra los recursos de cómputo de Interactive Spaces en un clúster compartido de Amazon SageMaker HyperPod .

**Configuración de clústeres y configuración de políticas**

El clúster tiene la siguiente configuración:
+ *Team Alpha (equipo de desarrollo)*: cuota de 8 CPU para Interactive Spaces
+ *Equipo Beta (ML Team)*: cuota de 16 CPU para formación y evaluación
+ *Equipo Gamma (Investigación)*: cuota de 6 CPU para experimentación
+ *Aprovisionamiento estático*: sin escalado automático
+ *Capacidad total*: 30 CPUs

El grupo de CPU compartido usa esta política de prioridad:
+ *Espacios interactivos*: prioridad 100
+ *Entrenamiento*: prioridad de 75
+ *Evaluación*: prioridad de 50
+ *Procesamiento por lotes*: prioridad 25

Kueue impone las cuotas de equipo y las clases prioritarias, con la opción preferente habilitada y el préstamo desactivado para el equipo de desarrollo.

**Estado inicial: uso normal del clúster**

En operaciones normales:
+ *Equipo Alpha*: ejecuta 6 espacios interactivos usando 6 CPUs, 2 CPUs inactivos
+ *Equipo Beta*: Realiza tareas de formación (12 CPUs) y de evaluación (4 CPUs) dentro de su cuota de 16 CPU
+ *Team Gamma*: ejecuta cargas de trabajo de investigación en los 6 CPUs
+ *Uso compartido de recursos*: el equipo Beta toma prestada la batería inactiva del equipo Alpha 2 CPUs para recibir formación adicional

**Pico de desarrollo: el equipo Alpha requiere recursos adicionales**

Cuando los desarrolladores de Team Alpha necesitan ampliar el trabajo de desarrollo, los módulos adicionales de Interactive Space requieren 4 más CPUs. Kueue detecta que los nuevos pods:
+ Dentro del espacio de nombres de Team Alpha
+ Prioridad 100 (espacios interactivos)
+ Todavía no se han admitido debido a limitaciones de cuota

**El proceso de respuesta de Kueue**

Kueue sigue un proceso de tres pasos para asignar recursos:

1. **Verificación de cuotas**

   Pregunta: ¿El equipo Alpha tiene una cuota no utilizada?
   + *Uso actual*: 6 CPUs usados, 2 CPUs disponibles
   + *Nuevo requisito*: se CPUs necesitan 4
   + *Resultado*: Cuota insuficiente → Continúe con el paso 2

1. **Autoprevención en el equipo Alpha**

   Pregunta: ¿Se pueden evitar los trabajos de menor prioridad del Equipo Alpha?
   + *Objetivos disponibles*: No hay trabajos de menor prioridad en el Equipo Alpha
   + *Resultado*: No hay opción preferente → Continúe con el paso 3

1. **Recupera los recursos prestados**

   Pregunta: ¿Otros equipos están tomando prestados los recursos del Equipo Alpha?
   + *Recursos prestados*: el equipo beta usa 2 CPUs del equipo Alpha
   + *Acción*: Kueue desaloja las cápsulas de entrenamiento prestadas por el equipo Beta y libera 2 CPUs
   + Aún *se necesitan* 2 más CPUs → Los espacios interactivos permanecerán intactos hasta que se disponga de los NotAdmitted recursos

Este enfoque da prioridad a los espacios interactivos y, al mismo tiempo, mantiene los límites de las cuotas de los equipos y evita que el trabajo de desarrollo se lleve a cabo con recursos prestados e inestables.

# Observabilidad
<a name="observability"></a>

## Supervisión estándar de Kubernetes
<a name="observability-monitor"></a>

Puedes monitorear Spaces con herramientas estándar de Kubernetes, como describir y registrar. `kubectl` `kubectl`

**Supervisar el estado del espacio**

```
# List all Spaces with status
kubectl get workspace -A

# Get detailed information about a specific Space
kubectl describe workspace <workspace-name>
```

**Visualización de registros de espacio**

```
# View workspace container logs
kubectl logs -l workspace.jupyter.org/workspace-name=<workspace-name> -c workspace

# View SSM agent sidecar logs (for remote IDE connectivity)
kubectl logs -l workspace.jupyter.org/workspace-name=<workspace-name> -c ssm-agent-sidecar

# Follow logs in real-time
kubectl logs -l workspace.jupyter.org/workspace-name=<workspace-name> -c workspace -f
```

**Comprensión de las condiciones del espacio**

Los espacios presentan cuatro tipos de condiciones en su estado:
+ **Disponible**: `True` cuando el espacio está listo para su uso. Todos los recursos necesarios (módulos, servicios, almacenamiento) están funcionando y en buen estado.
+ **Progresivo**: `True` cuando el Espacio se está creando, actualizando o conciliando. Transiciones a `False` una vez estable.
+ **Degradado**: `True` cuando se detectan errores con los recursos del espacio. Consulta el mensaje de estado para obtener más información.
+ **Detenido**: `True` cuando el estado de espacio deseado está establecido en`Stopped`. Los módulos están cerrados, pero se conservan el almacenamiento y la configuración.

## CloudWatch Integración de registros
<a name="observability-cw"></a>

Puede instalar el complemento de CloudWatch registro para enviar los registros de Space a Amazon CloudWatch Logs para una administración y retención de registros centralizadas. Esto permite la agregación de registros en varios clústeres y la integración con CloudWatch Insights para consultas y análisis. Todos los `kubectl` registros disponibles anteriormente se pueden consultar CloudWatch con este complemento.

**Referencia: https://docs.aws.amazon.com/sagemaker/** [latest/dg/sagemaker- hyperpod-eks-cluster-observability - cluster-cloudwatch-ci .html](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci.html).

## HyperPod Complemento de observabilidad
<a name="observability-addon"></a>

El complemento de SageMaker HyperPod observabilidad proporciona paneles de control completos para monitorear la utilización de los recursos espaciales. Tras instalar el complemento, puede ver el uso de memoria y CPU de Space en la pestaña **Tareas** de la HyperPod consola, que muestra las métricas en los paneles de Grafana gestionados por Amazon.

**[Referencia: - .html https://docs.aws.amazon.com/sagemaker/ latest/dg/sagemaker hyperpod-observability-addon](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-observability-addon.html)**

**Métricas clave disponibles:**
+ Utilización de CPU y memoria por espacio
+ Métricas de la GPU (si corresponde)

# Crea y gestiona espacios
<a name="create-manage-spaces"></a>

Los científicos de datos pueden crear listas para ver todos los espacios a los que tienen acceso, crear un espacio con una de las plantillas, actualizar el espacio para actualizar la imagen, el sistema de archivos y otros atributos de la configuración del espacio, y eliminar un espacio. Como requisito previo, los clientes deben instalar HyperPod CLI o usar kubectl para crear y administrar espacios. Para obtener más información sobre HyperPod CLI, consulte [esto](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/README.md#space). Para usar los comandos de kubectl, consulta [esta guía](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) para instalar kubectl.

## Creación de espacio
<a name="create-manage-spaces-create"></a>

**HyperPod CLI**

Crea un espacio de Jupyter

```
hyp create hyp-space \ 
    --name myspace \ 
    --display-name "My Space" \ 
    --memory 8Gi \ 
    --template-ref name=sagemaker-jupyter-template,namespace=jupyter-k8s-system
```

Crea un espacio de editor de código

```
hyp create hyp-space \ 
    --name myspace \ 
    --display-name "My Space" \ 
    --memory 8Gi \ 
    --template-ref name=sagemaker-code-editor-template,namespace=jupyter-k8s-system
```

**kubectl**

```
kubectl apply -f - <<EOF
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-space
spec:
  displayName: my-space
  desiredStatus: Running
EOF
```

o simplemente puedes aplicar el archivo yaml

```
kubectl apply -f my-workspace.yaml
```

## Enumere los espacios
<a name="create-manage-spaces-list"></a>

**HyperPod CLI**

```
hyp list hyp-space
```

**kubectl**

```
kubectl get workspaces -n <workspace-namespace> 
```

## Describa un espacio
<a name="create-manage-spaces-describe"></a>

**HyperPod CLI**

```
hyp describe hyp-space --name myspace
```

**kubectl**

```
# Basic Status reporting
kubectl get workspace my-workspace -n <workspace-namespace>

# Enhanced Workspace Information Retrieval 
kubectl get workspace my-workspace -n <workspace-namespace> -o wide

# Complete Workspace Information Retrieval
kubectl get workspace my-workspace -n <workspace-namespace> -o json
kubectl get workspace my-workspace -n <workspace-namespace> -o yaml
```

## Actualizar un espacio
<a name="create-manage-spaces-update"></a>

**HyperPod CLI**

```
hyp update hyp-space \
    --name myspace \
    --display-name "Updated My Space"
```

**kubectl**

Actualice el archivo YAML del espacio de trabajo original según sea necesario y, a continuación, vuelva a aplicarlo. Asegúrese de que el nombre de los metadatos no esté modificado. También puedes usar estos comandos kubectl para modificar campos sin tener que volver a aplicar todo el yaml del espacio de trabajo: 

```
# Open a Terminal IDE and modify the Workspace
kubectl edit workspace -n <workspace-namespace>

# Patch a Workspace
kubectl patch workspace <workspace-name> --type='merge' -p \
    '{"spec":{"<field name>":"<desired value>"}}' -n <workspace-namespace>
```

## Iniciar/detener un espacio
<a name="create-manage-spaces-stop"></a>

**HyperPod CLI**

```
hyp start hyp-space --name myspace
hyp stop hyp-space --name myspace
```

**kubectl**

Puede actualizar el campo de estado deseado del espacio de trabajo a start/stop un espacio.

```
# Start a Workspace
kubectl patch workspace <workspace-name> --type='merge' -p \
    '{"spec":{"desiredStatus":"Running"}}' -n <workspace-namespace>
    
# Stop a Workspace
kubectl patch workspace <workspace-name> --type='merge' -p \
    '{"spec":{"desiredStatus":"Stopped"}}' -n <workspace-namespace>
```

## Obtenga los registros
<a name="create-manage-spaces-log"></a>

**HyperPod CLI**

```
hyp get-logs hyp-space --name myspace
```

**kubectl**

```
# Check Pod Logs
kubectl logs -l workspace.jupyter.org/workspace-name=<workspace-metadata-name>

# Check Pod Events
kubectl describe pod -l workspace.jupyter.org/workspace-name=<workspace-metadata-name>

# Check Operator Logs
kubectl logs -n jupyter-k8s-system deployment/jupyter-k8s-controller-manager
```

## Eliminar un espacio
<a name="create-manage-spaces-delete"></a>

**HyperPod CLI**

```
hyp delete hyp-space --name myspace
```

**kubectl**

```
# Delete a Workspace
kubectl delete workspace <workspace-name> -n <namespace>
```

# Acceso desde el navegador web
<a name="browser-access"></a>

El acceso a la interfaz de usuario web le permite conectarse directamente a los espacios de desarrollo que se ejecutan en su SageMaker HyperPod clúster a través de una interfaz de navegador web segura. Esto proporciona acceso inmediato a Jupyter Lab y a otros entornos de desarrollo basados en la web sin necesidad de instalar software local.

## Requisitos previos
<a name="browser-access-prereq"></a>

Antes de configurar el acceso a la interfaz de usuario web, asegúrese de haber completado lo siguiente:
+ SageMaker Instalación del *complemento Spaces: siga la instalación* del [complemento SageMaker Spaces](https://docs.aws.amazon.com/sagemaker/latest/dg/operator-install.html) y habilite el acceso a la interfaz de usuario web durante la instalación
+ *Acceso de los usuarios al clúster de EKS*: los usuarios necesitan que EKS Access Entry esté configurada con los permisos adecuados. Consulte [Añadir usuarios y configurar cuentas de servicio para ver los detalles de configuración de EKS Access Entry](https://docs.aws.amazon.com/sagemaker/latest/dg/add-user.html)
+ *Espacios de desarrollo*: cree e inicie espacios de desarrollo en su HyperPod clúster
+ Acceso a *kubectl: asegúrese de que kubectl esté configurado para acceder* a su clúster de EKS

## Genere la URL de acceso a la interfaz web
<a name="browser-access-url"></a>

**Uso de HyperPod CLI**

Si tiene la HyperPod CLI instalada, puede usar este comando simplificado:

```
hyp create hyp-space-access --name <space-name> --connection-type web-ui
```

**Uso de kubectl**

También puede usar la línea de `kubectl` comandos para crear una solicitud de conexión.

```
kubectl create -f - -o yaml <<EOF
apiVersion: connection.workspace.jupyter.org/v1alpha1
kind: WorkspaceConnection
metadata:
  namespace: <space-namespace>
spec:
  workspaceName: <space-name>
  workspaceConnectionType: web-ui
EOF
```

La URL está presente en el `status.workspaceConnectionUrl` resultado de este comando.

## Acceder a su espacio de desarrollo
<a name="browser-access-develop"></a>

1. *Genere la URL de la interfaz de usuario web* mediante uno de los métodos anteriores

1. *Copia la URL* de la respuesta

1. *Abre la URL* en tu navegador web

1. *Acceda a su entorno de desarrollo* a través de la interfaz web

## Entornos de desarrollo compatibles
<a name="browser-access-develop-env"></a>

La interfaz de usuario web proporciona acceso a:
+ *Laboratorio Jupyter*
+ *Editor de código*

## Resolución de problemas
<a name="browser-access-troubleshooting"></a>

**No se puede generar el acceso URLs**

Comprueba lo siguiente:
+ SageMaker El complemento Spaces se está ejecutando: kubectl get pods -n sagemaker-spaces-system
+ El espacio de desarrollo está funcionando y en buen estado
+ El usuario tiene los permisos de entrada de acceso a EKS adecuados

# Acceso remoto a SageMaker Spaces
<a name="vscode-access"></a>

El acceso remoto le permite conectar su código local de Visual Studio directamente a los espacios de desarrollo que se ejecutan en su SageMaker HyperPod clúster. Las conexiones remotas utilizan SSM para establecer túneles seguros y cifrados entre la máquina local y los espacios de desarrollo.

## Requisitos previos
<a name="vscode-access-prereq"></a>

Antes de configurar el acceso remoto, asegúrese de haber completado lo siguiente:
+ *SageMaker Instalación del complemento Spaces*: siga la [instalación del complemento SageMaker Spaces](https://docs.aws.amazon.com/sagemaker/latest/dg/operator-install.html) y habilite el acceso remoto durante la instalación (instalación rápida o instalación personalizada con la configuración de acceso remoto habilitada).
+ *Acceso de los usuarios al clúster de EKS*: los usuarios deben configurar EKS Access Entry con los permisos adecuados. Consulte [Añadir usuarios y configurar cuentas de servicio para ver los detalles de configuración de EKS Access Entry](https://docs.aws.amazon.com/sagemaker/latest/dg/add-user.html)
+ *Espacios de desarrollo*: cree e inicie espacios de desarrollo en su HyperPod clúster
+ Acceso a *kubectl: asegúrese de que kubectl esté configurado para acceder* a su clúster de EKS

## Genere una conexión remota con VS Code
<a name="vscode-access-remote"></a>

### Uso de HyperPod CLI
<a name="vscode-access-remote-cli"></a>

Si tiene la HyperPod CLI instalada, puede usar este comando simplificado:

```
hyp create hyp-space-access --name <space-name> --connection-type vscode-remote
```

### Uso de kubectl
<a name="vscode-access-remote-kubectl"></a>

También puede usar la línea de `kubectl` comandos para crear una solicitud de conexión.

```
kubectl create -f - -o yaml <<EOF
apiVersion: connection.workspace.jupyter.org/v1alpha1
kind: WorkspaceConnection
metadata:
  namespace: <space-namespace>
spec:
  workspaceName: <space-name>
  workspaceConnectionType: vscode-remote
EOF
```

La URL está presente en el `status.workspaceConnectionUrl` resultado de este comando.

## Conectarse con VS Code
<a name="vscode-access-remote-vscode"></a>

1. Genere la URL de conexión de VS Code mediante uno de los métodos anteriores

1. Copie la URL de VS Code de la respuesta

1. Haga clic en la URL o péguela en su navegador

1. VS Code le pedirá que abra la conexión remota

1. Confirme la conexión para establecer el entorno de desarrollo remoto

## Entornos de desarrollo compatibles
<a name="vscode-access-remote-dev-env"></a>

La interfaz de usuario web proporciona acceso a:
+ *Laboratorio Jupyter*
+ *Editor de código*

## Resolución de problemas
<a name="troubleshooting"></a>

**No se puede generar la conexión URLs**

*Compruebe lo siguiente:*
+ SageMaker El complemento Spaces se está ejecutando: kubectl get pods -n sagemaker-spaces-system
+ El espacio de desarrollo está funcionando y en buen estado
+ El acceso remoto se habilitó durante la instalación del complemento
+ El usuario tiene los permisos de entrada de acceso a EKS adecuados

# Entrene e implemente modelos con HyperPod CLI y SDK
<a name="getting-started-hyperpod-training-deploying-models"></a>

Amazon le SageMaker HyperPod ayuda a entrenar e implementar modelos de aprendizaje automático a escala. La AWS HyperPod CLI es una interfaz de línea de comandos unificada que simplifica los flujos de trabajo de aprendizaje automático (ML). AWS Resume las complejidades de la infraestructura y proporciona una experiencia optimizada para enviar, supervisar y administrar trabajos de entrenamiento de ML. La CLI se ha diseñado específicamente para científicos de datos e ingenieros de ML que desean centrarse en el desarrollo de modelos en lugar de en la administración de la infraestructura. En este tema se explican tres escenarios clave: entrenar un PyTorch modelo, implementar un modelo personalizado con artefactos entrenados e implementar un modelo. JumpStart Diseñado para usuarios principiantes, este tutorial conciso garantiza que pueda configurar, entrenar e implementar modelos sin esfuerzo mediante la HyperPod CLI o el SDK. El proceso de establecimiento de comunicación entre el entrenamiento y la inferencia le ayuda a administrar los artefactos de los modelos de forma eficaz. 

## Requisitos previos
<a name="prerequisites"></a>

Antes de empezar a usar Amazon SageMaker HyperPod, asegúrate de tener:
+ Una AWS cuenta con acceso a Amazon SageMaker HyperPod
+ La versión de Python 3.9, 3.10 o 3.11 instalada
+ AWS CLI configurada con las credenciales adecuadas. 

## Instalación de la HyperPod CLI y el SDK
<a name="install-cli-sdk"></a>

Instale el paquete necesario para acceder a la CLI y al SDK:

```
pip install sagemaker-hyperpod
```

Este comando configura las herramientas necesarias para interactuar con HyperPod los clústeres.

## Configuración del contexto de su clúster
<a name="configure-cluster"></a>

HyperPod funciona en clústeres optimizados para el aprendizaje automático. Comience por enumerar los clústeres disponibles para seleccionar uno para sus tareas.

1. Enumere todos los clústeres disponibles:

   ```
   hyp list-cluster
   ```

1. Elija y configure su clúster activo:

   ```
   hyp set-cluster-context your-eks-cluster-name
   ```

1. Verifique la configuración:

   ```
   hyp get-cluster-context
   ```

**nota**  
Todos los comandos subsiguientes se dirigen al clúster que ha establecido como contexto.

## Elección del escenario
<a name="choose-scenario"></a>

Para obtener instrucciones detalladas sobre cada escenario, haga clic en los temas siguientes:

**Topics**
+ [Requisitos previos](#prerequisites)
+ [Instalación de la HyperPod CLI y el SDK](#install-cli-sdk)
+ [Configuración del contexto de su clúster](#configure-cluster)
+ [Elección del escenario](#choose-scenario)
+ [Entrena un PyTorch modelo](train-models-with-hyperpod.md)
+ [Implementar un modelo personalizado](deploy-trained-model.md)
+ [Implemente un JumpStart modelo](deploy-jumpstart-model.md)

# Entrena un PyTorch modelo
<a name="train-models-with-hyperpod"></a>

En este tema se explica el proceso de entrenamiento de un PyTorch modelo con HyperPod.

En este escenario, entrenemos un PyTorch modelo con la `hyp-pytorch-job` plantilla, que simplifica la creación de empleo al exponer los parámetros de uso común. Los artefactos del modelo se almacenarán en un bucket de S3 para usarlos posteriormente en la inferencia. Sin embargo, esto es opcional y puede elegir la ubicación de almacenamiento que prefiera.

## Creación de un trabajo de entrenamiento
<a name="create-training-job"></a>

Puede entrenar el modelo mediante la CLI o el SDK de Python.

### Uso de la CLI
<a name="using-cli"></a>

Cree un trabajo de entrenamiento con el siguiente comando:

```
hyp create hyp-pytorch-job \
    --version 1.0 \
    --job-name test-pytorch-job \
    --image pytorch/pytorch:latest \
    --command '["python", "train.py"]' \
    --args '["--epochs", "10", "--batch-size", "32"]' \
    --environment '{"PYTORCH_CUDA_ALLOC_CONF": "max_split_size_mb:32"}' \
    --pull-policy "IfNotPresent" \
    --instance-type ml.p4d.24xlarge \
    --tasks-per-node 8 \
    --label-selector '{"accelerator": "nvidia", "network": "efa"}' \
    --deep-health-check-passed-nodes-only true \
    --scheduler-type "kueue" \
    --queue-name "training-queue" \
    --priority "high" \
    --max-retry 3 \
    --volumes '["data-vol", "model-vol", "checkpoint-vol"]' \
    --persistent-volume-claims '["shared-data-pvc", "model-registry-pvc"]' \
    --output-s3-uri s3://my-bucket/model-artifacts
```

**Explicación de los principales parámetros necesarios**:
+ `--job-name`: identificador único de su trabajo de entrenamiento
+ `--image`: imagen de Docker que contiene su entorno de entrenamiento

Este comando inicia un trabajo de entrenamiento denominado `test-pytorch-job`. `--output-s3-uri` especifica dónde se almacenarán los artefactos del modelo entrenado, por ejemplo, `s3://my-bucket/model-artifacts`. Tome nota de esta ubicación, pues la necesitará para implementar el modelo personalizado.

### Uso del SDK para Python
<a name="using-python-sdk"></a>

Use el SDK para el control programático. Cree un script de Python para lanzar el mismo trabajo de entrenamiento.

```
from sagemaker.hyperpod import HyperPodPytorchJob
from sagemaker.hyperpod.job 
import ReplicaSpec, Template, Spec, Container, Resources, RunPolicy, Metadata

# Define job specifications
nproc_per_node = "1"  # Number of processes per node
replica_specs = 
[
    ReplicaSpec
    (
        name = "pod",  # Replica name
        template = Template
        (
            spec = Spec
            (
                containers =
                [
                    Container
                    (
                        # Container name
                        name="container-name",  
                        
                        # Training image
                        image="448049793756.dkr.ecr.us-west-2.amazonaws.com/ptjob:mnist",  
                        
                        # Always pull image
                        image_pull_policy="Always",  
                        resources=Resources\
                        (
                            # No GPUs requested
                            requests={"nvidia.com/gpu": "0"},  
                            # No GPU limit
                            limits={"nvidia.com/gpu": "0"},   
                        ),
                        # Command to run
                        command=["python", "train.py"],  
                        # Script arguments
                        args=["--epochs", "10", "--batch-size", "32"],  
                    )
                ]
            )
        ),
    )
]
# Keep pods after completion
run_policy = RunPolicy(clean_pod_policy="None")  

# Create and start the PyTorch job
pytorch_job = HyperPodPytorchJob
(
    # Job name
    metadata = Metadata(name="demo"),  
    # Processes per node
    nproc_per_node = nproc_per_node,   
    # Replica specifications
    replica_specs = replica_specs,     
    # Run policy
    run_policy = run_policy,           
    # S3 location for artifacts
    output_s3_uri="s3://my-bucket/model-artifacts"  
)
# Launch the job
pytorch_job.create()
```

## Supervisión del trabajo de entrenamiento
<a name="monitor-training-job"></a>

Puede supervisar el progreso de su trabajo con estos comandos:

### Uso de la CLI
<a name="monitor-cli"></a>

```
# Check job status
hyp list hyp-pytorch-job

# Get detailed information
hyp describe hyp-pytorch-job --job-name test-pytorch-job

# View logs
hyp get-logs hyp-pytorch-job \
    --pod-name test-pytorch-job-pod-0 \
    --job-name test-pytorch-job
```

**Nota**: El tiempo de entrenamiento varía según la complejidad del modelo y el tipo de instancia. Supervise los registros para hacer un seguimiento del progreso.

Estos comandos le ayudan a verificar el estado del trabajo y a solucionar problemas. Cuando el trabajo se haya completado correctamente, los artefactos del modelo se guardarán en `s3://my-bucket/model-artifacts`.

### Uso del SDK para Python
<a name="monitor-python-sdk"></a>

Incluya el siguiente código en el script de Python:

```
print("List all pods created for this job:")
print(pytorch_job.list_pods())

print("Check the logs from pod0:")
print(pytorch_job.get_logs_from_pod(pod_name="demo-pod-0"))

print("List all HyperPodPytorchJobs:")
print(HyperPodPytorchJob.list())

print("Describe job:")
print(HyperPodPytorchJob.get(name="demo").model_dump())

pytorch_job.refresh()
print(pytorch_job.status.model_dump())
```

## Siguientes pasos
<a name="next-steps"></a>

Tras el entrenamiento, los artefactos del modelo se almacenan en el bucket de S3 que haya especificado (`s3://my-bucket/model-artifacts`). Puede usar estos artefactos para implementar un modelo. Actualmente, debe administrar la transición del entrenamiento a la inferencia de forma manual. Esto implica:
+ **Localizar los artefactos**: compruebe el bucket de S3 (`s3://my-bucket/model-artifacts`) para confirmar la presencia de los archivos del modelo entrenado.
+ **Registrar la ruta**: anote la ruta de S3 exacta (por ejemplo, `s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz`) para usarla en la configuración de inferencia.
+ **Hacer referencia en la implementación**: proporcione esta ruta de S3 al configurar el punto de conexión personalizado para garantizar que se cargue el modelo correcto.

# Implementar un modelo personalizado
<a name="deploy-trained-model"></a>

Cuando finalice el entrenamiento, implemente el modelo para la inferencia. Puede implementar un modelo personalizado mediante la CLI o el SDK.

## Localización de los artefactos del modelo
<a name="locate-model-artifacts"></a>
+ **Compruebe su bucket de S3**: verifique que los artefactos del modelo se hayan guardado en `s3://my-bucket/model-artifacts/`.
+ **Anote la ruta exacta**: necesitará la ruta completa (por ejemplo, `s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz`).

## Implementación mediante la CLI
<a name="deploy-using-cli"></a>

Ejecute el siguiente comando para implementar su modelo personalizado:

```
hyp create hyp-custom-endpoint \
    --version 1.0 \
    --env '{"HF_MODEL_ID":"/opt/ml/model", "SAGEMAKER_PROGRAM":"inference.py", }' \
    --model-source-type s3 \
    --model-location test-pytorch-job \
    --s3-bucket-name my-bucket \
    --s3-region us-east-2 \
    --prefetch-enabled true \ 
    --image-uri 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:latest \
    --model-volume-mount-name model-weights \
    --container-port 8080 \
    --resources-requests '{"cpu": "30000m", "nvidia.com/gpu": 1, "memory": "100Gi"}' \
    --resources-limits '{"nvidia.com/gpu": 1}' \
    --tls-output-s3-uri s3://<bucket_name> \
    --instance-type ml.g5.8xlarge \
    --endpoint-name endpoint-custom-pytorch \
    --model-name pytorch-custom-model
```

Este comando implementa el modelo entrenado como un punto de conexión denominado `endpoint-custom-pytorch`. `--model-location` hace referencia a la ruta del artefacto del trabajo de entrenamiento.

## Implementación mediante el Python SDK
<a name="deploy-using-sdk"></a>

Cree un script de Python con el siguiente contenido:

```
from sagemaker.hyperpod.inference.config.hp_custom_endpoint_config import Model, Server, SageMakerEndpoint, TlsConfig, EnvironmentVariables
from sagemaker.hyperpod.inference.hp_custom_endpoint import HPCustomEndpoint

model = Model(
    model_source_type="s3",
    model_location="test-pytorch-job",
    s3_bucket_name="my-bucket",
    s3_region="us-east-2",
    prefetch_enabled=True
)

server = Server(
    instance_type="ml.g5.8xlarge",
    image_uri="763104351884.dkr.ecr.us-east-2.amazonaws.com/huggingface-pytorch-tgi-inference:2.4.0-tgi2.3.1-gpu-py311-cu124-ubuntu22.04-v2.0",
    container_port=8080,
    model_volume_mount_name="model-weights"
)

resources = {
    "requests": {"cpu": "30000m", "nvidia.com/gpu": 1, "memory": "100Gi"},
    "limits": {"nvidia.com/gpu": 1}
}

env = EnvironmentVariables(
    HF_MODEL_ID="/opt/ml/model",
    SAGEMAKER_PROGRAM="inference.py",
    SAGEMAKER_SUBMIT_DIRECTORY="/opt/ml/model/code",
    MODEL_CACHE_ROOT="/opt/ml/model",
    SAGEMAKER_ENV="1"
)

endpoint_name = SageMakerEndpoint(name="endpoint-custom-pytorch")

tls_config = TlsConfig(tls_certificate_output_s3_uri="s3://<bucket_name>")

custom_endpoint = HPCustomEndpoint(
    model=model,
    server=server,
    resources=resources,
    environment=env,
    sage_maker_endpoint=endpoint_name,
    tls_config=tls_config
)

custom_endpoint.create()
```

## Invocar al punto de conexión
<a name="invoke-endpoint"></a>

### Uso de la CLI
<a name="invoke-using-cli"></a>

Pruebe el punto de conexión con una entrada de muestra:

```
hyp invoke hyp-custom-endpoint \
    --endpoint-name endpoint-custom-pytorch \
    --body '{"inputs":"What is the capital of USA?"}'
```

Esto devuelve la respuesta del modelo, por ejemplo: “La capital de EE. UU. es Washington, D.C.”.

### Uso del SDK
<a name="invoke-using-sdk"></a>

Incluya el siguiente código en el script de Python:

```
data = '{"inputs":"What is the capital of USA?"}'
response = custom_endpoint.invoke(body=data).body.read()
print(response)
```

## Administración del punto de conexión
<a name="manage-endpoint"></a>

### Uso de la CLI
<a name="manage-using-cli"></a>

Enumere e inspeccione el punto de conexión:

```
hyp list hyp-custom-endpoint
hyp get hyp-custom-endpoint --name endpoint-custom-pytorch
```

### Uso del SDK
<a name="manage-using-sdk"></a>

Incluya el siguiente código en el script de Python:

```
logs = custom_endpoint.get_logs()
print(logs)
```

## Eliminar recursos
<a name="cleanup-resources"></a>

Cuando haya terminado, elimine el punto de conexión para evitar costos innecesarios.

### Uso de la CLI
<a name="cleanup-using-cli"></a>

```
hyp delete hyp-custom-endpoint --name endpoint-custom-pytorch
```

### Uso del SDK
<a name="cleanup-using-sdk"></a>

```
custom_endpoint.delete()
```

## Siguientes pasos
<a name="next-steps"></a>

Ha implementado y probado satisfactoriamente un modelo personalizado utilizando SageMaker HyperPod. Ahora puede utilizar este punto de conexión para la inferencia en sus aplicaciones.

# Implemente un JumpStart modelo
<a name="deploy-jumpstart-model"></a>

Puede implementar un JumpStart modelo previamente entrenado para la inferencia mediante la CLI o el SDK.

## Uso de la CLI
<a name="deploy-jumpstart-cli"></a>

Ejecute el siguiente comando para implementar un JumpStart modelo:

```
hyp create hyp-jumpstart-endpoint \
  --version 1.0 \
  --model-id deepseek-llm-r1-distill-qwen-1-5b \
  --instance-type ml.g5.8xlarge \
  --endpoint-name endpoint-test-jscli
```

## Uso del SDK
<a name="deploy-jumpstart-sdk"></a>

Cree un script de Python con el siguiente contenido:

```
from sagemaker.hyperpod.inference.config.hp_jumpstart_endpoint_config import Model, Server, SageMakerEndpoint, TlsConfig
from sagemaker.hyperpod.inference.hp_jumpstart_endpoint import HPJumpStartEndpoint

model=Model(
    model_id='deepseek-llm-r1-distill-qwen-1-5b'
)

server=Server(
    instance_type='ml.g5.8xlarge',
)

endpoint_name=SageMakerEndpoint(name='<endpoint-name>')

# create spec
js_endpoint=HPJumpStartEndpoint(
    model=model,
    server=server,
    sage_maker_endpoint=endpoint_name
)
```

## Invocar al punto de conexión
<a name="invoke-jumpstart-endpoint"></a>

### Uso de la CLI
<a name="invoke-jumpstart-cli"></a>

Pruebe el punto de conexión con una entrada de muestra:

```
hyp invoke hyp-jumpstart-endpoint \
    --endpoint-name endpoint-jumpstart \
    --body '{"inputs":"What is the capital of USA?"}'
```

### Uso del SDK
<a name="invoke-jumpstart-sdk"></a>

Incluya el siguiente código en el script de Python:

```
data = '{"inputs":"What is the capital of USA?"}'
response = js_endpoint.invoke(body=data).body.read()
print(response)
```

## Administración del punto de conexión
<a name="manage-jumpstart-endpoint"></a>

### Uso de la CLI
<a name="manage-jumpstart-cli"></a>

Enumere e inspeccione el punto de conexión:

```
hyp list hyp-jumpstart-endpoint
hyp get hyp-jumpstart-endpoint --name endpoint-jumpstart
```

### Uso del SDK
<a name="manage-jumpstart-sdk"></a>

Incluya el siguiente código en el script de Python:

```
endpoint_iterator = HPJumpStartEndpoint.list()
for endpoint in endpoint_iterator:
    print(endpoint.name, endpoint.status)

logs = js_endpoint.get_logs()
print(logs)
```

## Eliminar recursos
<a name="cleanup-jumpstart-resources"></a>

Cuando haya terminado, elimine el punto de conexión para evitar costos innecesarios.

### Uso de la CLI
<a name="cleanup-jumpstart-cli"></a>

```
hyp delete hyp-jumpstart-endpoint --name endpoint-jumpstart
```

### Uso del SDK
<a name="cleanup-jumpstart-sdk"></a>

```
js_endpoint.delete()
```

## Siguientes pasos
<a name="jumpstart-next-steps"></a>

Ahora que ha entrenado un PyTorch modelo, lo ha implementado como un punto final personalizado y ha implementado un JumpStart modelo mediante HyperPod la CLI y el SDK, explore las funciones avanzadas:
+ **Entrenamiento de varios nodos**: escale el entrenamiento en varias instancias
+ **Contenedores personalizados**: cree entornos de entrenamiento especializados
+ **Integración con SageMaker Pipelines**: automatice sus flujos de trabajo de aprendizaje automático
+ **Supervisión avanzada**: configure las métricas y alertas personalizadas

Para ver más ejemplos y configuraciones avanzadas, visita el [SageMaker HyperPod GitHub repositorio](https://github.com/aws/amazon-sagemaker-examples).

# Ejecución de tareas en SageMaker HyperPod clústeres orquestados por Amazon EKS
<a name="sagemaker-hyperpod-eks-run-jobs"></a>

En los siguientes temas, se proporcionan procedimientos y ejemplos de acceso a nodos de procesamiento y ejecución de cargas de trabajo de aprendizaje automático en SageMaker HyperPod clústeres aprovisionados orquestados con Amazon EKS. En función de cómo haya configurado el entorno de su HyperPod clúster, hay muchas maneras de ejecutar cargas de trabajo de aprendizaje automático en clústeres. HyperPod 

**nota**  
Al ejecutar trabajos a través de la SageMaker HyperPod CLI o kubectl, HyperPod puede realizar un seguimiento del uso del procesamiento (horas de GPU/CPU) en todos los espacios de nombres (equipos). Estas métricas impulsan los informes de uso, que proporcionan:  
Visibilidad del consumo de recursos asignados frente a prestados
Uso de los recursos de los equipos para la auditoría (hasta 180 días)
Atribución de costos alineada con las políticas de gobernanza de tareas
Para utilizar los informes de uso, debe instalar la infraestructura de informes de uso. Recomendamos encarecidamente configurar la [Gobernanza de tareas](sagemaker-hyperpod-eks-operate-console-ui-governance.md) para forzar las cuotas de computación y permitir una atribución detallada de los costos.  
[Para obtener más información sobre cómo configurar y generar informes de uso, consulta Cómo informar sobre el uso de los recursos informáticos en. HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html)

**sugerencia**  
Para obtener una experiencia práctica y orientación sobre cómo configurar y usar un SageMaker HyperPod clúster organizado con Amazon EKS, le recomendamos que asista a este taller de [Amazon EKS Support](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e). SageMaker HyperPod

Los usuarios científicos de datos pueden entrenar modelos fundamentales utilizando el conjunto de clústeres de EKS como orquestador del clúster. SageMaker HyperPod Los científicos utilizan la [SageMaker HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli) y los `kubectl` comandos nativos para encontrar SageMaker HyperPod los clústeres disponibles, enviar trabajos de formación (pods) y gestionar sus cargas de trabajo. La SageMaker HyperPod CLI permite el envío de trabajos mediante un archivo de esquema de trabajo de formación y proporciona capacidades para la publicación, descripción, cancelación y ejecución de trabajos. Los científicos pueden usar [Kubeflow Training Operator](https://www.kubeflow.org/docs/components/training/overview/) de acuerdo con las cuotas de cómputo gestionadas por la [SageMaker IA y gestionadas por HyperPod la IA MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html) para gestionar los experimentos de aprendizaje automático y las sesiones de formación. 

**Topics**
+ [Instalación de la SageMaker HyperPod CLI](sagemaker-hyperpod-eks-run-jobs-access-nodes.md)
+ [SageMaker HyperPod Comandos CLI](sagemaker-hyperpod-eks-hyperpod-cli-reference.md)
+ [Ejecución de trabajos mediante la SageMaker HyperPod CLI](sagemaker-hyperpod-eks-run-jobs-hyperpod-cli.md)
+ [Ejecución de trabajos mediante `kubectl`](sagemaker-hyperpod-eks-run-jobs-kubectl.md)

# Instalación de la SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-eks-run-jobs-access-nodes"></a>

SageMaker HyperPod proporciona el SageMaker HyperPod paquete de [interfaz de línea](https://github.com/aws/sagemaker-hyperpod-cli) de comandos (CLI). 

1. Compruebe si la versión de Python en el equipo sea una de las versiones comprendidas entre la versión 3.8 y la versión 3.11.

1. Compruebe los requisitos previos en el archivo `README` markdown del paquete [SageMaker HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli).

1. Clona el paquete SageMaker HyperPod CLI desde GitHub.

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-cli.git
   ```

1. Instale la SageMaker HyperPod CLI.

   ```
   cd sagemaker-hyperpod-cli && pip install .
   ```

1. Compruebe si la SageMaker HyperPod CLI se ha instalado correctamente ejecutando el siguiente comando. 

   ```
   hyperpod --help
   ```

**nota**  
Si es un científico de datos y desea utilizar la SageMaker HyperPod CLI, asegúrese de que los administradores del clúster hayan configurado correctamente su función de IAM siguiendo las instrucciones que aparecen en [Usuarios de IAM para científicos](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-user) y. [Configuración del control de acceso basado en roles de Kubernetes](sagemaker-hyperpod-eks-setup-rbac.md)

# SageMaker HyperPod Comandos CLI
<a name="sagemaker-hyperpod-eks-hyperpod-cli-reference"></a>

En la siguiente tabla se resumen los comandos de la SageMaker HyperPod CLI.

**nota**  
Para obtener una referencia de CLI completa, consulte [README](https://github.com/aws/sagemaker-hyperpod-cli?tab=readme-ov-file#sagemaker-hyperpod-command-line-interface) en el [ GitHubrepositorio de SageMaker HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli).


| SageMaker HyperPod Comando CLI | Entidad  | Description (Descripción) | 
| --- | --- | --- | 
| hyperpod get-clusters | clúster/acceso | Muestra todos los clústeres en los que se ha habilitado al usuario con permisos de IAM para enviar cargas de trabajo de formación. Ofrece una instantánea actual de todas las instancias disponibles en las que no se ejecuta ninguna carga de trabajo o trabajo, junto con su capacidad máxima, agrupadas por estados de comprobación de estado (por ejemplo:) BurnInPassed | 
| hyperpod connect-cluster | clúster/acceso | Se configura para funcionar kubectl en el clúster y el espacio de nombres especificados HyperPod  | 
| hyperpod start-job  | job | Envía el trabajo al clúster de destino: el nombre del trabajo será único en cuanto al espacio de nombres. Los usuarios podrán anular las especificaciones de yaml pasándolas como argumentos de la CLI | 
| hyperpod get-job | job | Muestra los metadatos del trabajo enviado | 
| hyperpod list-jobs | job | Muestra todos los trabajos de la red cluster/namespace a los que se ha añadido al usuario con permisos de IAM para enviar cargas de trabajo de formación | 
| hyperpod cancel-job | job | Detiene y elimina el trabajo y cede los recursos de computación subyacentes Este trabajo no se puede reanudar de nuevo. Debe iniciarse un nuevo trabajo, si es necesario. | 
| hyperpod list-pods | pod | Muestra todos los pods del trabajo en cuestión en un espacio de nombres | 
| hyperpod get-log | pod | Recupera los registros de un determinado pod en un trabajo específico | 
| hyperpod exec | pod | Ejecuta el comando bash en el intérprete de comandos de los pods especificados y publica el resultado | 
| hyperpod --help | utilidad | muestra todos los comandos compatibles | 

# Ejecución de trabajos mediante la SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli"></a>

Para ejecutar los trabajos, asegúrese de haber instalado Kubeflow Training Operator en los clústeres de EKS. Para obtener más información, consulte [Instalación de paquetes en el clúster de Amazon EKS mediante Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).

Ejecute el `hyperpod get-cluster` comando para obtener la lista de HyperPod clústeres disponibles.

```
hyperpod get-clusters
```

Ejecute `hyperpod connect-cluster` para configurar la SageMaker HyperPod CLI con el clúster EKS que organiza el HyperPod clúster.

```
hyperpod connect-cluster --cluster-name <hyperpod-cluster-name>
```

Utilice el comando `hyperpod start-job` para ejecutar un trabajo. En el siguiente comando se muestra el comando con las opciones necesarias. 

```
hyperpod start-job \
    --job-name <job-name>
    --image <docker-image-uri>
    --entry-script <entrypoint-script>
    --instance-type <ml.instance.type>
    --node-count <integer>
```

El comando `hyperpod start-job` también incluye varias opciones, como, por ejemplo, la reanudación automática y la programación de trabajos.

## Habilitación de la reanudación automática de trabajos
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-enable-auto-resume"></a>

El comando `hyperpod start-job` también tiene las siguientes opciones para especificar la reanudación automática de un trabajo. Para permitir que la reanudación automática del trabajo funcione con las funciones de resiliencia de los SageMaker HyperPod nodos, debe establecer el valor de la `restart-policy` opción en. `OnFailure` El trabajo debe ejecutarse en el espacio de nombres `kubeflow` o en un espacio de nombres con el prefijo `hyperpod`.
+ [--auto-resume <bool>] \$1Opcional, habilite la reanudación automática del trabajo después de un error, el valor predeterminado está establecido en false.
+ [--max-retry <int>] \$1Opcional, si la reanudación automática está establecida en true, el valor predeterminado de max-retry es 1 si no se especifica.
+ <enum>[--restart-policy] \$1Optional, política de reinicio. PyTorchJob Los valores disponibles son `Always`, `OnFailure`, `Never` o `ExitCode`. El valor predeterminado es `OnFailure`. 

```
hyperpod start-job \
    ... // required options \
    --auto-resume true \
    --max-retry 3 \
    --restart-policy OnFailure
```

## Ejecución de trabajos con opciones de programación
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-scheduling"></a>

El comando `hyperpod start-job` tiene las siguientes opciones para configurar el trabajo con mecanismos de cola. 

**nota**  
Necesita que [Kueue](https://kueue.sigs.k8s.io/docs/overview/) esté instalado en el clúster de EKS. Si no está instalado, siga las instrucciones que se indican en [Configuración para la gobernanza de SageMaker HyperPod tareas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md).
+ [--scheduler-type <enum>] \$1Opcional, especifique el tipo de programador. El valor predeterminado es `Kueue`.
+ [--queue-name <string>] \$1Opcional, especifique el nombre de [Cola local](https://kueue.sigs.k8s.io/docs/concepts/local_queue/) o [Cola de clúster](https://kueue.sigs.k8s.io/docs/concepts/cluster_queue/) que desea enviar con el trabajo. Los administradores del clúster deben crear la cola con `CreateComputeQuota`.
+ [--priority <string>] \$1Opcional, especifique el nombre de [Clase de prioridad de carga de trabajo](https://kueue.sigs.k8s.io/docs/concepts/workload_priority_class/), que deben crear los administradores del clúster.

```
hyperpod start-job \
    ... // required options
    --scheduler-type Kueue \
    --queue-name high-priority-queue \
    --priority high
```

## Ejecución de trabajos a partir de un archivo de configuración
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-from-config"></a>

También puede crear un archivo de configuración de trabajos que incluya todos los parámetros necesarios para el trabajo y, a continuación, pasar este archivo de configuración al comando `hyperpod start-job` mediante la opción --config-file. En este caso:

1. Cree el archivo de configuración de trabajos con los parámetros necesarios. Consulte el archivo de configuración de trabajos en el GitHub repositorio de SageMaker HyperPod CLI para obtener un [archivo de configuración de referencia](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-run-jobs-hyperpod-cli.html#sagemaker-hyperpod-eks-hyperpod-cli-from-config).

1. Inicie el trabajo con el archivo de configuración de la siguiente manera.

   ```
   hyperpod start-job --config-file /path/to/test_job.yaml
   ```

**sugerencia**  
Para obtener una lista completa de los parámetros del `hyperpod start-job` comando, consulte la sección [Enviar un trabajo](https://github.com/aws/sagemaker-hyperpod-cli?tab=readme-ov-file#submitting-a-job) en el GitHub repositorio `README.md` de SageMaker HyperPod CLI.

# Ejecución de trabajos mediante `kubectl`
<a name="sagemaker-hyperpod-eks-run-jobs-kubectl"></a>

**nota**  
La reanudación automática del trabajo de entrenamiento requiere la versión de lanzamiento de Kubeflow Training Operator `1.7.0`, `1.8.0` o `1.8.1`.

Tenga en cuenta que debe instalar Kubeflow Training Operator en los clústeres mediante un gráfico de Helm. Para obtener más información, consulte [Instalación de paquetes en el clúster de Amazon EKS mediante Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md). Compruebe si el plano de control de Kubeflow Training Operator esté configurado correctamente. Para ello, ejecute el siguiente comando.

```
kubectl get pods -n kubeflow
```

Este proceso devuelve un resultado similar al siguiente.

```
NAME                                             READY   STATUS    RESTARTS   AGE
training-operator-658c68d697-46zmn               1/1     Running   0          90s
```

**Envío de un trabajo de entrenamiento**

Para ejecutar trabajos de entrenamiento, prepare el archivo de configuración de trabajos y ejecute el comando [https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) de la siguiente manera.

```
kubectl apply -f /path/to/training_job.yaml
```

**Descripción de un trabajo de entrenamiento**

Para recuperar los detalles del trabajo enviado al clúster de EKS, utilice el siguiente comando. Devuelve información sobre el trabajo, como, por ejemplo, la hora de envío del trabajo, la hora de finalización, el estado del trabajo y los detalles de configuración.

```
kubectl get -o yaml training-job -n kubeflow
```

**Detención de trabajo de entrenamiento y eliminación de los recursos de EKS**

Para detener un trabajo de entrenamiento, utilice kubectl delete. A continuación se ofrece un ejemplo de cómo detener el trabajo de entrenamiento creado a partir del archivo de configuración `pytorch_job_simple.yaml`.

```
kubectl delete -f /path/to/training_job.yaml 
```

Esto debería devolver la siguiente salida.

```
pytorchjob.kubeflow.org "training-job" deleted
```

**Habilitación de la reanudación automática de trabajos**

SageMaker HyperPod admite la funcionalidad de reanudación automática de tareas para las tareas de Kubernetes y se integra con el plano de control de Kubeflow Training Operator.

Asegúrese de que haya suficientes nodos en el clúster que hayan pasado la comprobación de estado. SageMaker HyperPod Los nodos deberían tener la propiedad taint `sagemaker.amazonaws.com/node-health-status` establecida en `Schedulable`. Se recomienda incluir un selector de nodos en el archivo YAML del trabajo para seleccionar los nodos con la configuración adecuada, de la siguiente manera.

```
sagemaker.amazonaws.com/node-health-status: Schedulable
```

El siguiente fragmento de código es un ejemplo de cómo modificar la configuración YAML de un trabajo de Kubeflow para habilitar la funcionalidad de reanudación automática del PyTorch trabajo. Debe añadir dos anotaciones y establecer `restartPolicy` en `OnFailure` de la siguiente manera.

```
apiVersion: "kubeflow.org/v1"
kind: PyTorchJob 
metadata:
    name: pytorch-simple
    namespace: kubeflow
    annotations: { // config for job auto resume
      sagemaker.amazonaws.com/enable-job-auto-resume: "true"
      sagemaker.amazonaws.com/job-max-retry-count: "2"
    }
spec:
  pytorchReplicaSpecs:
  ......
  Worker:
      replicas: 10
      restartPolicy: OnFailure
      template:
          spec:
              nodeSelector:
                  sagemaker.amazonaws.com/node-health-status: Schedulable
```

**Comprobación del estado de reanudación automática de trabajos**

Ejecute el siguiente comando para comprobar el estado de la reanudación automática de trabajos.

```
kubectl describe pytorchjob -n kubeflow <job-name>
```

Según los patrones de error, es posible que aparezcan dos patrones de reinicio de los trabajos de entrenamiento de Kubeflow de la siguiente manera.

**Patrón 1**:

```
Start Time:    2024-07-11T05:53:10Z
Events:
  Type     Reason                   Age                    From                   Message
  ----     ------                   ----                   ----                   -------
  Normal   SuccessfulCreateService  9m45s                  pytorchjob-controller  Created service: pt-job-1-worker-0
  Normal   SuccessfulCreateService  9m45s                  pytorchjob-controller  Created service: pt-job-1-worker-1
  Normal   SuccessfulCreateService  9m45s                  pytorchjob-controller  Created service: pt-job-1-master-0
  Warning  PyTorchJobRestarting     7m59s                  pytorchjob-controller  PyTorchJob pt-job-1 is restarting because 1 Master replica(s) failed.
  Normal   SuccessfulCreatePod      7m58s (x2 over 9m45s)  pytorchjob-controller  Created pod: pt-job-1-worker-0
  Normal   SuccessfulCreatePod      7m58s (x2 over 9m45s)  pytorchjob-controller  Created pod: pt-job-1-worker-1
  Normal   SuccessfulCreatePod      7m58s (x2 over 9m45s)  pytorchjob-controller  Created pod: pt-job-1-master-0
  Warning  PyTorchJobRestarting     7m58s                  pytorchjob-controller  PyTorchJob pt-job-1 is restarting because 1 Worker replica(s) failed.
```

**Patrón 2**: 

```
Events:
  Type    Reason                   Age    From                   Message
  ----    ------                   ----   ----                   -------
  Normal  SuccessfulCreatePod      19m    pytorchjob-controller  Created pod: pt-job-2-worker-0
  Normal  SuccessfulCreateService  19m    pytorchjob-controller  Created service: pt-job-2-worker-0
  Normal  SuccessfulCreatePod      19m    pytorchjob-controller  Created pod: pt-job-2-master-0
  Normal  SuccessfulCreateService  19m    pytorchjob-controller  Created service: pt-job-2-master-0
  Normal  SuccessfulCreatePod      4m48s  pytorchjob-controller  Created pod: pt-job-2-worker-0
  Normal  SuccessfulCreatePod      4m48s  pytorchjob-controller  Created pod: pt-job-2-master-0
```

# Uso del operador de entrenamiento HyperPod
<a name="sagemaker-eks-operator"></a>

 El operador de SageMaker HyperPod formación de Amazon te ayuda a acelerar el desarrollo de modelos de IA generativa mediante la gestión eficiente de la formación distribuida en grandes clústeres de GPU. Presenta capacidades inteligentes de recuperación de errores, detección de tareas pendientes y administración de procesos que minimizan las interrupciones en el entrenamiento y reducen los costos. A diferencia de la infraestructura de entrenamiento tradicional, que requiere que el trabajo se reinicie por completo cuando se producen fallos, este operador implementa la recuperación del proceso quirúrgico para que sus trabajos de entrenamiento se desarrollen sin problemas. 

 El operador también utiliza las funciones de monitoreo y observabilidad HyperPod del estado, lo que proporciona visibilidad en tiempo real de la ejecución de la capacitación y monitorea automáticamente métricas críticas, como los picos de pérdidas y la degradación del rendimiento. Puede definir las políticas de recuperación mediante sencillas configuraciones de YAML sin cambios en el código, lo que le permitirá responder rápidamente a estados de entrenamiento irrecuperables y recuperarse de ellos. Estas capacidades de supervisión y recuperación funcionan en conjunto para mantener un rendimiento de entrenamiento óptimo y, al mismo tiempo, minimizar los gastos operativos.

 Si bien no se requiere Kueue para este operador de entrenamiento, el administrador del clúster puede instalarlo y configurarlo para ampliar las capacidades de programación de trabajos. Para obtener más información, consulte la [documentación oficial de Kueue](https://kueue.sigs.k8s.io/docs/overview/).

**nota**  
Para utilizar el operador de formación, debe utilizar la última [versión de la HyperPod AMI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html). Para actualizar, utilice la operación [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API. Si utilizas la [gobernanza de HyperPod tareas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html), también debe ser la versión más reciente.

## Versiones compatibles
<a name="sagemaker-eks-operator-supported-versions"></a>

 El operador de HyperPod formación solo funciona con versiones específicas de Kubernetes, Kueue y. HyperPod Consulte la siguiente lista para ver todas las versiones compatibles. 
+ Versiones de Kubernetes compatibles: 1.28, 1.29, 1.30, 1.31, 1.32 y 1.33
+ Versiones de Kueue sugeridas: [v.0.12.2](https://github.com/kubernetes-sigs/kueue/releases/tag/v0.12.2) y [v.0.12.3](https://github.com/kubernetes-sigs/kueue/releases/tag/v0.12.3)
+ La última versión de HyperPod AMI. Para actualizar a la versión más reciente de la AMI, utilice la [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API.
+ [PyTorch 2.4.0 — 2.7.1](https://github.com/pytorch/pytorch/releases)

**nota**  
Recopilamos ciertas métricas operativas rutinarias agregadas y anónimas para proporcionar la disponibilidad esencial de los servicios. La creación de estas métricas está totalmente automatizada y no implica una revisión humana de la carga de trabajo de formación del modelo subyacente. Estas métricas se refieren a las operaciones de un trabajo, a la gestión de los recursos y a la funcionalidad esencial del servicio.

# Instalación del operador de entrenamiento
<a name="sagemaker-eks-operator-install"></a>

Consulte las secciones siguientes para obtener más información acerca de cómo instalar el operador de entrenamiento.

## Requisitos previos
<a name="sagemaker-eks-operator-prerequisites"></a>

 Antes de utilizar el operador de HyperPod formación, debe haber cumplido los siguientes requisitos previos: 
+  [Creó un HyperPod clúster con la orquestación de Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html). 
+ Se instaló la AMI más reciente en el HyperPod clúster. Para obtener más información, consulte [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS](sagemaker-hyperpod-release-ami-eks.md).
+ [Instalar cert-manager](https://cert-manager.io/docs/installation/).
+  [Configurar el agente de Pod Identity de EKS mediante la consola](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html). Si desea utilizar el AWS CLI, utilice el siguiente comando: 

  ```
  aws eks create-addon \ 
   --cluster-name my-eks-cluster \
   --addon-name eks-pod-identity-agent \
   --region Región de AWS
  ```
+ (Opcional) Si ejecuta los nodos del HyperPod clúster en una VPC privada, debe configurar los puntos de enlace de la PrivateLinks VPC para la API de Amazon AI (`com.amazonaws.aws-region.sagemaker.api`) y los servicios de SageMaker autenticación Amazon EKS (com.amazonaws). *aws-region*.eks-auth). También debe asegurarse de que los nodos del clúster se ejecuten con subredes que estén en un grupo de seguridad que permita que el tráfico se enrute a través de los puntos de enlace de la VPC para comunicarse con SageMaker AI y Amazon EKS. Si no están configurados correctamente, la instalación del complemento puede fallar. Para obtener más información sobre la configuración de puntos de enlace de VPC, consulte Crear [un punto de enlace de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).

## Instalación del operador de entrenamiento
<a name="sagemaker-eks-operator-install-operator"></a>

 Ahora puede instalar el operador de HyperPod entrenamiento a través de la consola SageMaker AI, la consola Amazon EKS o con los métodos de AWS CLI la consola que ofrecen experiencias simplificadas que le ayudan a instalar al operador. AWS CLI Ofrece un enfoque programático que le permite personalizar más la instalación.

Entre las dos experiencias de consola, la SageMaker IA ofrece una instalación con un solo clic, crea la función de ejecución de la IAM, crea la asociación de identidad del módulo e instala al operador. La instalación con la consola de Amazon EKS es similar, pero no crea el rol de ejecución de IAM automáticamente. Durante este proceso, puede elegir si crear un nuevo rol de ejecución de IAM con la información que la consola rellena previamente. De forma predeterminada, estos roles creados solo tienen acceso al clúster actual en el que está instalando el operador. A menos que edite los permisos del rol para incluir otros clústeres, si elimina el operador y lo vuelve a instalar, debe crear un nuevo rol. 

------
#### [ SageMaker AI console (recommended) ]

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

1. Vaya a la página de detalles de su clúster.

1. En la pestaña **Panel** de control, localiza el complemento denominado **Amazon SageMaker HyperPod Training Operator** y selecciona **instalar**. Durante el proceso de instalación, la SageMaker IA crea una función de ejecución de IAM con permisos similares a los de la política [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)gestionada y crea una asociación de identidad de pod entre el clúster de Amazon EKS y la nueva función de ejecución.

------
#### [ Amazon EKS console ]

**nota**  
Si instala el complemento a través del clúster de Amazon EKS, asegúrese primero de haber etiquetado el HyperPod clúster con el par clave-valor. `SageMaker:true` De lo contrario, la instalación fallará.

1. Abra la consola Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Vaya a su clúster de EKS, seleccione **Complementos** y, a continuación, **Obtener más complementos**.

1. Elige Amazon SageMaker HyperPod Training Operator y, a continuación, selecciona **Siguiente**.

1. En **Versión**, la consola utiliza de forma predeterminada la versión más reciente, que es la que le recomendamos.

1. En **Acceso al complemento**, elija un rol de IAM con Pod Identity para usarlo con el complemento del operador de entrenamiento. Si no dispone de ningún rol, elija **Crear rol recomendado** para crear uno.

1. Durante este proceso de creación del rol, la consola de IAM rellena previamente toda la información necesaria, como el caso de uso, la política [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)gestionada y otros permisos necesarios, el nombre del rol y la descripción. A medida que vaya completando los pasos, revise la información y seleccione **Crear rol**.

1. En la consola de EKS, revise la configuración del complemento y, a continuación, seleccione **Crear**.

------
#### [ CLI ]

1. Asegúrese de que la función de ejecución de IAM de su HyperPod clúster tenga una relación de confianza que permita a EKS Pod Identity asumir la función o [crear una nueva función de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) con la siguiente política de confianza. Como alternativa, podría utilizar la consola de Amazon EKS para instalar el complemento, que crea un rol recomendado.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
         "Effect": "Allow",
         "Principal": {
           "Service": "pods.eks.amazonaws.com"
         },
         "Action": [
           "sts:AssumeRole",
           "sts:TagSession",
           "eks-auth:AssumeRoleForPodIdentity"
         ]
       }
     ]
   }
   ```

------

1.  Adjunta la [política AmazonSageMakerHyperPodTrainingOperatorAccess gestionada a la](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html) función que has creado. 

1.  [A continuación, cree una asociación de Pod Identity entre su clúster de EKS, su rol de IAM y su nuevo rol de IAM](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).

   ```
   aws eks create-pod-identity-association \
   --cluster-name my-eks-cluster \
   --role-arn ARN of your execution role \
   --namespace aws-hyperpod \
   --service-account hp-training-operator-controller-manager \
   --region Región de AWS
   ```

1.  Una vez finalizado el proceso, puede utilizar la ListPodIdentityAssociations operación para ver la asociación que ha creado. A continuación se muestra un ejemplo de respuesta. 

   ```
   aws eks list-pod-identity-associations --cluster-name my-eks-cluster
   {
       "associations": [{
           "clusterName": "my-eks-cluster",
           "namespace": "aws-hyperpod",
           "serviceAccount": "hp-training-operator-controller-manager",
           "associationArn": "arn:aws:eks:us-east-2:123456789012:podidentityassociation/my-hyperpod-cluster/a-1a2b3c4d5e6f7g8h9",
           "associationId": "a-1a2b3c4d5e6f7g8h9"
       }]
   }
   ```

1. Para instalar el operador de entrenamiento, utilice la operación `create-addon`. El parámetro `--addon-version` es opcional. Si no proporciona ninguno, la versión predeterminada será la última versión. Para obtener las versiones posibles, utilice la [ DescribeAddonVersions](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html)operación.

   ```
   aws eks create-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --resolve-conflicts OVERWRITE
   ```

------

Si ya tiene el operador de entrenamiento instalado en su HyperPod clúster, puede actualizar el complemento EKS a la versión que desee. Si quieres utilizar un [[entrenamiento elástico](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html) o sin puntos de control](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html), ten en cuenta lo siguiente:
+ Tanto el entrenamiento sin puntos de control como el entrenamiento elástico requieren que el complemento EKS esté en la versión 1.2.0 o superior.
+ El operador de SageMaker HyperPod formación de Amazon mantiene la compatibilidad con versiones anteriores de cualquier versión complementaria de EKS, por lo que puedes actualizar desde cualquier versión complementaria a la 1.2.0 o superior.
+ Si pasa de la versión 1.2.0 o superior a una versión inferior, primero debe eliminar los trabajos existentes antes de la degradación y volver a enviar los trabajos una vez finalizada la degradación.

------
#### [ Amazon EKS Console ]

1. Abra la consola Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. **Vaya a su clúster de EKS y seleccione Complementos.** A continuación, elige el complemento Amazon SageMaker HyperPod Training Operator y selecciona **Editar**.

1. En el menú **Versión**, selecciona la versión del complemento que desees y, a continuación, selecciona **Guardar cambios**.

------
#### [ CLI ]

1. Primero, obtén la lista de las versiones compatibles del complemento para tu clúster.

   ```
   aws eks describe-addon-versions \
     --kubernetes-version $(aws eks describe-cluster --name my-eks-cluster --query 'cluster.version' --output text) \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --query 'addons[0].addonVersions[].addonVersion' \
     --output table
   ```

1. A continuación, actualiza el complemento a la versión que desees.

   ```
   aws eks update-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --addon-version target-version
     --resolve-conflicts OVERWRITE
   ```

------

 El operador de entrenamiento incluye una serie de opciones con valores predeterminados que pueden adaptarse a su caso de uso. Le recomendamos que pruebe el operador de entrenamiento con los valores predeterminados antes de cambiarlos. En la siguiente tabla se describen todos los parámetros y ejemplos de cuándo es posible que desee configurar cada parámetro.


| Parámetro | Description (Descripción) | Predeterminado | 
| --- | --- | --- | 
| hpTrainingControllerManager.Manager.Resources.Requests.cpu | Cuántos procesadores asignar al controlador | 1 | 
| hpTrainingControllerManager.Manager.Resources.Requests.Memory | Cuánta memoria asignar al controlador | 2Gi | 
| hpTrainingControllerManager.Manager.Resources.Limits.cpu | Límite de CPU para el controlador | 2 | 
| hpTrainingControllerManager.Manager.Resources.Limits.Memory | Límite de memoria para el controlador | 4Gi | 
| hpTrainingControllerManager.Node Selector | Selector de nodos para los pods del controlador | El comportamiento predeterminado es seleccionar los nodos con la etiqueta sagemaker.amazonaws.com/compute-type: "HyperPod" | 

## HyperPod agente elástico
<a name="sagemaker-eks-operator-elastic-agent"></a>

El agente HyperPod elástico es una extensión [PyTorchde ElasticAgent](https://docs.pytorch.org/docs/stable/elastic/agent.html) s. Organiza los ciclos de vida de la formación de los trabajadores en cada contenedor y se comunica con el HyperPod operador de formación. Para utilizar el operador de HyperPod formación, primero debe instalar el agente HyperPod elástico en la imagen de formación antes de poder enviar y ejecutar los trabajos con el operador. El siguiente es un archivo docker que instala el agente elástico y utiliza `hyperpodrun` para crear el iniciador de trabajos.

**nota**  
Tanto el [entrenamiento sin puntos de control](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html) como el [entrenamiento elástico](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html) requieren que utilices el agente HyperPod elástico versión 1.1.0 o superior.

```
RUN pip install hyperpod-elastic-agent

ENTRYPOINT ["entrypoint.sh"]
# entrypoint.sh
...
hyperpodrun --nnodes=node_count --nproc-per-node=proc_count \
            --rdzv-backend hyperpod \ # Optional
            --inprocess-restart \ # Optional (in-process fault recovery with checkpointless training)
            ... # Other torchrun args
            # pre-traing arg_group
            --pre-train-script pre.sh --pre-train-args "pre_1 pre_2 pre_3" \
            # post-train arg_group
            --post-train-script post.sh --post-train-args "post_1 post_2 post_3" \
            training.py --script-args
```

Ahora puede enviar trabajos con `kubectl`.

### HyperPod argumentos de Elastic Agent
<a name="sagemaker-eks-operator-elastic-agent-args"></a>

 El agente HyperPod elástico admite todos los argumentos originales y añade algunos argumentos adicionales. A continuación se muestran todos los argumentos disponibles en el agente HyperPod elástico. Para obtener más información sobre PyTorch el Elastic Agent, consulta su [documentación oficial](https://docs.pytorch.org/docs/stable/elastic/agent.html). 


| Argumento | Description (Descripción) | Valor predeterminado | 
| --- | --- | --- | 
| --shutdown-signal | Señal que se envía a los nodos de trabajo en caso de cierre (SIGTERM o SIGKILL) | “SIGKILL” | 
| --shutdown-timeout | Tiempo de espera en segundos entre la señal de apagado y las señales SIGKILL | 15 | 
| --server-host | Dirección del servidor del agente | “0.0.0.0” | 
| --server-port | Puerto del servidor del agente | 8080 | 
| --server-log-level | Nivel de registro del servidor agente | “info” | 
| --server-shutdown-timeout | Tiempo de espera de apagado del servidor en segundos | 300 | 
| --pre-train-script | Ruta al script entrenado previamente | Ninguno | 
| --pre-train-args | Argumentos para el script entrenado previamente | Ninguno | 
| --post-train-script | Ruta al script entrenado previamente | Ninguno | 
| --post-train-args | Argumentos para el script entrenado posteriormente | Ninguno | 
| --en proceso: reinicio | Indicador que especifica si se debe utilizar la función inprocess\$1restart | FALSO | 
| --inprocess-timeout | Tiempo en segundos que el agente espera a que los trabajadores alcancen una barrera de sincronización antes de iniciar un reinicio a nivel de proceso. | Ninguno | 

## Gobernanza de tareas (opcional)
<a name="sagemaker-eks-operator-task-governance"></a>

El operador de formación está integrado con la [gobernanza de HyperPod tareas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance), un sistema de administración sólido diseñado para agilizar la asignación de recursos y garantizar la utilización eficiente de los recursos informáticos en todos los equipos y proyectos de sus clústeres de Amazon EKS. Para configurar la gobernanza de las HyperPod tareas, consulte[Configuración para la gobernanza de SageMaker HyperPod tareas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md). 

**nota**  
Al instalar el complemento de gobierno de HyperPod tareas, debe usar la versión v1.3.0-eksbuild.1 o superior.

Al enviar el trabajo, incluya el nombre de la cola y las etiquetas de clase de prioridad de `hyperpod-ns-team-name-localqueue` y `priority-class-name-priority`. Por ejemplo, si utiliza Kueue, las etiquetas pasarán a ser las siguientes:
+ *team-name*kueue.x-k8s.io/queue-name: hyperpod-ns- -localqueue
+ kueue.x-k8s.io/priority-class: -name-priority *priority-class*

A continuación se muestra un ejemplo de cómo podría ser su archivo de configuración:

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPytorchJob
metadata:
  name: hp-task-governance-sample
  namespace: hyperpod-ns-team-name
  labels:
    kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
    kueue.x-k8s.io/priority-class: priority-class-priority
spec:
  nprocPerNode: "1"
  runPolicy:
    cleanPodPolicy: "None"
  replicaSpecs: 
    - name: pods
      replicas: 4
      spares: 2
      template:
        spec:
          containers:
            - name: ptjob
              image: XXXX
              imagePullPolicy: Always
              ports:
                - containerPort: 8080
              resources:
                requests:
                  cpu: "2"
```

Luego use el siguiente comando kubectl para aplicar el archivo YAML.

```
kubectl apply -f task-governance-job.yaml
```

## Kueue (opcional)
<a name="sagemaker-eks-operator-kueue"></a>

Si bien puede ejecutar los trabajos directamente, su organización también puede integrar el operador de entrenamiento con Kueue para asignar recursos y programar trabajos. Sigue los pasos que se indican a continuación para instalar Kueue en tu clúster. HyperPod 

1. Siga la guía de instalación que se indica en la [documentación oficial de Kueue](https://kueue.sigs.k8s.io/docs/installation/#install-a-custom-configured-released-version). Cuando llegue al paso de configuración `controller_manager_config.yaml`, añada la siguiente configuración:

   ```
   externalFrameworks:
   - "HyperPodPytorchJob.v1.sagemaker.amazonaws.com"
   ```

1. Siga el resto de los pasos de la guía de instalación oficial. Cuando termine de instalar Kueue, puede crear algunas colas de muestra con el comando `kubectl apply -f sample-queues.yaml`. Utilice el siguiente archivo YAML.

   ```
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: ClusterQueue
   metadata:
     name: cluster-queue
   spec:
     namespaceSelector: {}
     preemption:
       withinClusterQueue: LowerPriority
     resourceGroups:
     - coveredResources:
       - cpu
       - nvidia.com/gpu
       - pods
       flavors:
       - name: default-flavor
         resources:
         - name: cpu
           nominalQuota: 16
         - name: nvidia.com/gpu
           nominalQuota: 16
         - name: pods
           nominalQuota: 16
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: LocalQueue
   metadata:
     name: user-queue
     namespace: default
   spec:
     clusterQueue: cluster-queue
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: ResourceFlavor
   metadata:
     name: default-flavor
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   description: High priority
   kind: WorkloadPriorityClass
   metadata:
     name: high-priority-class
   value: 1000
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   description: Low Priority
   kind: WorkloadPriorityClass
   metadata:
     name: low-priority-class
   value: 500
   ```

# Uso del operador de entrenamiento para ejecutar trabajos
<a name="sagemaker-eks-operator-usage"></a>

 Para usar kubectl para ejecutar el trabajo, debe crear un job.yaml para especificar las especificaciones del trabajo y ejecutar `kubectl apply -f job.yaml` para enviarlo. En este archivo YAML, puede especificar configuraciones personalizadas en el argumento `logMonitoringConfiguration` para definir reglas de supervisión automatizadas que analicen los resultados del registro del trabajo de entrenamiento distribuido para detectar problemas y recuperarse. 

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPyTorchJob
metadata:
  labels:
    app.kubernetes.io/name: HyperPod
    app.kubernetes.io/managed-by: kustomize
  name: &jobname xxx
  annotations:
    XXX: XXX
    ......
spec:
  nprocPerNode: "X"
  replicaSpecs:
    - name: 'XXX'
      replicas: 16
      template:
        spec:
          nodeSelector:
            beta.kubernetes.io/instance-type: ml.p5.48xlarge
          containers:
            - name: XXX
              image: XXX
              imagePullPolicy: Always
              ports:
                - containerPort: 8080 # This is the port that HyperPodElasticAgent listens to
              resources:
                limits:
                  nvidia.com/gpu: 8
                  hugepages-2Mi: 5120Mi
                requests:
                  nvidia.com/gpu: 8
                  hugepages-2Mi: 5120Mi
                  memory: 32000Mi
          ......        
  runPolicy:
    jobMaxRetryCount: 50
    restartPolicy:
      numRestartBeforeFullJobRestart: 3 
      evalPeriodSeconds: 21600 
      maxFullJobRestarts: 1
    cleanPodPolicy: "All"
    logMonitoringConfiguration: 
      - name: "JobStart"
        logPattern: ".*Experiment configuration.*" # This is the start of the training script
        expectedStartCutOffInSeconds: 120 # Expected match in the first 2 minutes
      - name: "JobHangingDetection"
        logPattern: ".*\\[Epoch 0 Batch \\d+.*'training_loss_step': (\\d+(\\.\\d+)?).*"
        expectedRecurringFrequencyInSeconds: 300 # If next batch is not printed within 5 minute, consider it hangs. Or if loss is not decimal (e.g. nan) for 2 minutes, mark it hang as well.
        expectedStartCutOffInSeconds: 600 # Allow 10 minutes of job startup time
      - name: "NoS3CheckpointingDetection"
        logPattern: ".*The checkpoint is finalized. All shards is written.*"
        expectedRecurringFrequencyInSeconds: 600 # If next checkpoint s3 upload doesn't happen within 10 mins, mark it hang.
        expectedStartCutOffInSeconds: 1800 # Allow 30 minutes for first checkpoint upload
      - name: "LowThroughputDetection"
        logPattern: ".*\\[Epoch 0 Batch \\d+.*'samples\\/sec': (\\d+(\\.\\d+)?).*"
        metricThreshold: 80 # 80 samples/sec
        operator: "lteq"
        metricEvaluationDataPoints: 25 # if throughput lower than threshold for 25 datapoints, kill the job
```

Si quieres usar las opciones de monitoreo de registros, asegúrate de enviar el registro de entrenamiento a. `sys.stdout` HyperPod El agente elástico supervisa los registros de entrenamiento en sys.stdout, que se guardan en. `/tmp/hyperpod/` Puede usar el siguiente comando para emitir registros de entrenamiento.

```
logging.basicConfig(format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", level=logging.INFO, stream=sys.stdout)
```

 La tabla siguiente describe todas las configuraciones de supervisión de registros posibles: 


| Parámetro | De uso | 
| --- | --- | 
| jobMaxRetryContar | Número máximo de reinicios del proceso | 
| Política de reinicio: numRestartBefore FullJobRestart | Número máximo de reinicios del proceso antes de que el operador reinicie el trabajo | 
| Política de reinicio: evalPeriodSeconds | Período de evaluación del límite de reinicio en segundos | 
| Política de reinicio: se reinicia maxFullJob | Número máximo de reinicios de trabajos completos antes de que el trabajo falle | 
| cleanPodPolicy | Especifica los pods que debe limpiar el operador. Los valores aceptados son All, OnlyComplete y None. | 
| logMonitoringConfiguration | Reglas de supervisión de registros para detectar trabajos lentos y pendientes | 
| expectedRecurringFrequencyInSeconds | Intervalo de tiempo entre dos LogPattern partidos consecutivos tras el cual la regla se evalúa como SUSPENDIDA. Si no se especifica, no existe ninguna restricción de tiempo entre partidos consecutivos LogPattern . | 
| expectedStartCutOffInSeconds | Tiempo hasta la primera LogPattern coincidencia, después de lo cual la regla se evalúa como pendiente. Si no se especifica, no existe ninguna restricción de tiempo para la primera LogPattern coincidencia. | 
| logPattern | Expresión regular que identifica las líneas de registro a las que se aplica la regla cuando está activa | 
| metricEvaluationDataPuntos | Número de veces consecutivas que debe evaluarse una regla como SLOW antes de marcar un trabajo como SLOW. Si no se especifica, el valor predeterminado es 1. | 
| metricThreshold | Umbral del valor extraído LogPattern con un grupo de captura. Si no se especifica, no se realiza ninguna evaluación métrica | 
| operador | Desigualdad que se debe aplicar a la configuración de supervisión. Los valores aceptados son gt, gteq, lt, lteq y eq | 
| stopPattern | Expresión regular para identificar la línea de registro en la que se va a desactivar la regla. Si no se especifica, la regla siempre estará activa. | 
| faultOnMatch | Indica si una coincidencia de LogPattern debería provocar inmediatamente un error en el trabajo. Si el valor es verdadero, el trabajo se marcará como defectuoso en cuanto concuerde LogPattern , independientemente de otros parámetros de la regla. Si es falsa o no se especifica, la regla se evaluará como SLOW o HANGING en función de otros parámetros. | 

 Para una mayor resiliencia del entrenamiento, especifique los detalles de configuración del nodo de repuesto. Si su trabajo no funciona, el operador trabaja con Kueue para usar los nodos reservados con antelación para seguir ejecutando el trabajo. Las configuraciones de nodos de repuesto requieren Kueue, por lo que si intenta enviar un trabajo con nodos de repuesto pero no tiene Kueue instalado, el trabajo fallará. El siguiente ejemplo es un archivo `job.yaml` de muestra que contiene configuraciones de nodos de repuesto.

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPyTorchJob
metadata:
  labels:
    kueue.x-k8s.io/queue-name: user-queue # Specify the queue to run the job.
  name: hyperpodpytorchjob-sample
spec:
  nprocPerNode: "1"
  runPolicy:
    cleanPodPolicy: "None"
  replicaSpecs: 
    - name: pods
      replicas: 1
      spares: 1 # Specify how many spare nodes to reserve.
      template:
        spec:
          containers:
            - name: XXX
              image: XXX
              
              imagePullPolicy: Always
              ports:
                - containerPort: 8080
              resources:
                requests:
                  nvidia.com/gpu: "0"
                limits:
                  nvidia.com/gpu: "0"
```

## Supervisión
<a name="sagemaker-eks-operator-usage-monitoring"></a>

Amazon SageMaker HyperPod integra la [observabilidad con Amazon Managed Grafana y Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-observability-addon.html), por lo que puedes configurar la monitorización para recopilar e introducir métricas en estas herramientas de observabilidad.

Como alternativa, puede recopilar las métricas a través de Amazon Managed Service para Prometheus sin observabilidad administrada. Para ello, incluya las métricas que quiere supervisar en su archivo `job.yaml` cuando ejecute tareas con `kubectl`.

```
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: hyperpod-training-operator
  namespace: aws-hyperpod
spec:
  ......
  endpoints:
    - port: 8081
      path: /metrics
      interval: 15s
```

Los siguientes son eventos que emite el operador de entrenamiento y que puede incluir en Amazon Managed Service para Prometheus para supervisar los trabajos de entrenamiento.


| Event | Description (Descripción) | 
| --- | --- | 
| hyperpod\$1training\$1operator\$1jobs\$1created\$1total | Número total de trabajos que ha ejecutado el operador de entrenamiento | 
| hyperpod\$1training\$1operator\$1jobs\$1restart\$1latency | Latencia de reinicio del trabajo actual | 
| hyperpod\$1training\$1operator\$1jobs\$1fault\$1detection\$1latency | Latencia de detección de fallos | 
| hyperpod\$1training\$1operator\$1jobs\$1deleted\$1total | Número total de trabajos eliminados | 
| hyperpod\$1training\$1operator\$1jobs\$1successful\$1total | Número total de trabajos completados | 
| hyperpod\$1training\$1operator\$1jobs\$1failed\$1total | Número total de trabajos fallidos | 
| hyperpod\$1training\$1operator\$1jobs\$1restarted\$1total | Número total de trabajos reiniciados automáticamente | 

## Configuración del docker de ejemplo
<a name="sagemaker-eks-operator-usage-docker"></a>

A continuación se muestra un ejemplo de un archivo docker que puede ejecutar con el comando `hyperpod run`.

```
export AGENT_CMD="--backend=nccl"
exec hyperpodrun --server-host=${AGENT_HOST} --server-port=${AGENT_PORT} \
    --tee=3 --log_dir=/tmp/hyperpod \
    --nnodes=${NNODES} --nproc-per-node=${NPROC_PER_NODE} \
    --pre-train-script=/workspace/echo.sh --pre-train-args='Pre-training script' \
    --post-train-script=/workspace/echo.sh --post-train-args='Post-training script' \
    /workspace/mnist.py --epochs=1000 ${AGENT_CMD}
```

## Ejemplos de configuraciones de supervisión de registros
<a name="sagemaker-eks-operator-usage-log-monitoring"></a>

**Detección de trabajos pendientes**

Para detectar los trabajos pendientes, utilice las siguientes configuraciones. Utiliza los parámetros siguientes:
+ expectedStartCutOffInSeconds — cuánto tiempo debe esperar el monitor antes de esperar los primeros registros
+ expectedRecurringFrequencyInSeconds — el intervalo de tiempo necesario para esperar al siguiente lote de registros

Con esta configuración, el monitor de registros espera ver una línea de registro que coincida con el patrón `.*Train Epoch.*` de expresiones regulares dentro de los 60 segundos posteriores al inicio del trabajo de entrenamiento. Tras la primera aparición, el monitor espera ver líneas de registro coincidentes cada 10 segundos. Si los primeros registros no aparecen en 60 segundos o los registros siguientes no aparecen cada 10 segundos, el agente HyperPod elástico considera que el contenedor está atascado y coordina con el operador que está entrenando para reiniciar el trabajo.

```
runPolicy:
    jobMaxRetryCount: 10
    cleanPodPolicy: "None"
    logMonitoringConfiguration:
      - name: "JobStartGracePeriod"
        # Sample log line: [default0]:2025-06-17 05:51:29,300 [INFO] __main__: Train Epoch: 5 [0/60000 (0%)]       loss=0.8470
        logPattern: ".*Train Epoch.*"  
        expectedStartCutOffInSeconds: 60 
      - name: "JobHangingDetection"
        logPattern: ".*Train Epoch.*"
        expectedRecurringFrequencyInSeconds: 10 # if the next batch is not printed within 10 seconds
```

**Pico de pérdida de entrenamiento**

La siguiente configuración de supervisión emite registros de entrenamiento con el patrón `xxx training_loss_step xx`. Utiliza el parámetro `metricEvaluationDataPoints`, que le permite especificar un umbral de puntos de datos antes de que el operador reinicie el trabajo. Si el valor de la pérdida de entrenamiento es superior a 2,0, el operador reinicia el trabajo.

```
runPolicy:
  jobMaxRetryCount: 10
  cleanPodPolicy: "None"
  logMonitoringConfiguration:
    - name: "LossSpikeDetection"
      logPattern: ".*training_loss_step (\\d+(?:\\.\\d+)?).*"   # training_loss_step 5.0
      metricThreshold: 2.0
      operator: "gt"
      metricEvaluationDataPoints: 5 # if loss higher than threshold for 5 data points, restart the job
```

** TFLOPs Detección baja**

La siguiente configuración de supervisión emite registros de entrenamiento con el patrón `xx TFLOPs xx` cada 5 segundos. Si TFLOPs es inferior a 100 para 5 puntos de datos, el operador reinicia el trabajo de entrenamiento.

```
runPolicy:
  jobMaxRetryCount: 10
  cleanPodPolicy: "None"
  logMonitoringConfiguration:
    - name: "TFLOPs"
      logPattern: ".* (.+)TFLOPs.*"    # Training model, speed: X TFLOPs...
      expectedRecurringFrequencyInSeconds: 5        
      metricThreshold: 100       # if Tflops is less than 100 for 5 data points, restart the job       
      operator: "lt"
      metricEvaluationDataPoints: 5
```

**Detección del registro de errores en el script de entrenamiento**

La siguiente configuración de supervisión detecta si el patrón especificado en `logPattern` está presente en los registros de entrenamiento. En cuanto el operador de formación detecta el patrón de error, lo considera un error y reinicia el trabajo.

```
runPolicy:
  jobMaxRetryCount: 10
  cleanPodPolicy: "None"
  logMonitoringConfiguration:
    - name: "GPU Error"
      logPattern: ".*RuntimeError.*out of memory.*"
      faultOnMatch: true
```

# Resolución de problemas
<a name="sagemaker-eks-operator-troubleshooting"></a>

Consulte las siguientes secciones para obtener más información sobre cómo solucionar errores al utilizar el operador de entrenamiento.

## No puedo instalar el operador de entrenamiento
<a name="sagemaker-eks-operator-troubleshooting-installation-error"></a>

Si no puede instalar el operador de entrenamiento, asegúrese de utilizar las [versiones compatibles de los componentes](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html#sagemaker-eks-operator-supported-versions). Por ejemplo, si aparece un error que indica que la versión de la HyperPod AMI no es compatible con el operador de formación, [actualice a la versión más reciente](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html).

## Versión de gobierno de HyperPod tareas incompatible
<a name="sagemaker-eks-operator-troubleshooting-task-governance-version"></a>

Durante la instalación, es posible que reciba un mensaje de error que indique que la versión de la gobernanza de HyperPod tareas no es compatible. El operador de entrenamiento solo funciona con la versión v1.3.0-eksbuild.1 o superior. Actualiza el complemento de gobierno de HyperPod tareas e inténtalo de nuevo. 

## Faltan permisos
<a name="sagemaker-eks-operator-troubleshooting-task-missing-permissions"></a>

 Mientras configura el operador de entrenamiento o ejecuta tareas, es posible que reciba errores que indiquen que no tiene autorización para ejecutar determinadas operaciones, por ejemplo, `DescribeClusterNode`. Para resolver estos errores, asegúrese de configurar correctamente los permisos de IAM mientras [configura el agente Pod Identity de Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-install.html#sagemaker-eks-operator-install-pod-identity).

# Uso del entrenamiento elástico en Amazon SageMaker HyperPod
<a name="sagemaker-eks-elastic-training"></a>

 El entrenamiento de Elastic es una nueva SageMaker HyperPod capacidad de Amazon que escala automáticamente los trabajos de capacitación en función de la disponibilidad de los recursos de cómputo y la prioridad de la carga de trabajo. Los trabajos de formación de Elastic pueden comenzar con los recursos de cómputo mínimos necesarios para el entrenamiento de modelos y ampliarlos o reducirlos de forma dinámica mediante puntos de control automáticos y reanudarlos en diferentes configuraciones de nodos (tamaño mundial). El escalado se logra ajustando automáticamente el número de réplicas de datos paralelos. Durante los períodos de alta utilización de los clústeres, los trabajos de formación elástica se pueden configurar para que se reduzcan automáticamente en respuesta a las solicitudes de recursos de los trabajos de mayor prioridad, lo que permite liberar recursos informáticos para las cargas de trabajo críticas. Cuando se liberan recursos durante los períodos de menor actividad, las tareas de formación elástica se reducen automáticamente para acelerar la formación y, a continuación, se reducen cuando las cargas de trabajo de mayor prioridad vuelven a necesitar recursos. 

La formación elástica se basa en el operador de HyperPod formación e integra los siguientes componentes:
+ [Amazon EKS para la orquestación de Kubernetes](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks.html)
+ [Amazon SageMaker HyperPod Task Governance](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html) para la asignación de colas, la priorización y la programación de trabajos
+ [PyTorch Puntos de control distribuidos (DCP)](https://docs.pytorch.org/docs/stable/distributed.checkpoint.html) para una gestión escalable de estados y puntos de control, como el DCP

**Marcos compatibles**
+ PyTorch con datos distribuidos en paralelo (DDP) y datos totalmente fragmentados en paralelo (FSDP)
+ PyTorch Punto de control distribuido (DCP)

## Requisitos previos
<a name="sagemaker-eks-elastic-prereqs"></a>

### SageMaker HyperPod Clúster EKS
<a name="sagemaker-eks-elastic-hyperpod-cluster"></a>

Debe tener un SageMaker HyperPod clúster en ejecución con la orquestación de Amazon EKS. Para obtener información sobre la creación de un clúster de HyperPod EKS, consulte:
+ [Cómo empezar a utilizar Amazon EKS en SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html)

### SageMaker HyperPod Operador de formación
<a name="sagemaker-eks-elastic-training-operator"></a>

Elastic Training es compatible con la versión 1.2 y versiones posteriores de Training Operator.

Para instalar el operador de formación como complemento de EKS, consulta: [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- eks-operator-install .html](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-install.html)

### (Recomendado) Instale y configure Task Governance y Kueue
<a name="sagemaker-eks-elastic-task-governance"></a>

Recomendamos instalar y configurar Kueue mediante la [gobernanza de HyperPod tareas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html) para especificar las prioridades de la carga de trabajo mediante un entrenamiento flexible. Kueue ofrece una mejor gestión de la carga de trabajo, ya que permite establecer colas, priorizar, programar grupos, hacer un seguimiento de los recursos y adoptar medidas preventivas adecuadas, elementos esenciales para operar en entornos de formación con varios usuarios.
+ La planificación de grupos garantiza que todos los módulos necesarios de un trabajo de formación comiencen juntos. Esto evita situaciones en las que algunos módulos se inicien mientras que otros permanezcan pendientes, lo que podría provocar un desperdicio de recursos.
+ La prevención moderada permite que los trabajos elásticos de menor prioridad cedan recursos a las cargas de trabajo de mayor prioridad. Los trabajos de Elastic pueden reducirse sin problemas sin ser desalojados por la fuerza, lo que mejora la estabilidad general del clúster.

Recomendamos configurar los siguientes componentes de Kueue:
+ PriorityClasses para definir la importancia relativa del trabajo
+ ClusterQueues para gestionar el intercambio global de recursos y las cuotas entre los equipos o las cargas de trabajo
+ LocalQueues para enrutar los trabajos de los espacios de nombres individuales a los correspondientes ClusterQueue

Para configuraciones más avanzadas, también puede incorporar:
+ Políticas de reparto equitativo para equilibrar el uso de los recursos entre varios equipos
+ Reglas de preferencia personalizadas para hacer cumplir los controles organizativos o de costos SLAs 

Consulte:
+ [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- hyperpod-eks-operate-console -ui-governance.html](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html)
+ [Documentación de Kueue](https://kueue.sigs.k8s.io/)

### (Recomendado) Configure los espacios de nombres de usuario y las cuotas de recursos
<a name="sagemaker-eks-elastic-namespaces-quotas"></a>

Al implementar esta función en Amazon EKS, recomendamos aplicar un conjunto de configuraciones básicas a nivel de clúster para garantizar el aislamiento, la equidad de los recursos y la coherencia operativa entre los equipos.

#### Configuración del espacio de nombres y el acceso
<a name="sagemaker-eks-elastic-namespace-access"></a>

Organice sus cargas de trabajo mediante espacios de nombres independientes para cada equipo o proyecto. Esto le permite aplicar un aislamiento y una gobernanza detallados. También recomendamos configurar el mapeo RBAC de AWS IAM a Kubernetes para asociar usuarios o roles individuales de IAM a sus espacios de nombres correspondientes.

Las prácticas clave incluyen:
+ Asigne las funciones de IAM a las cuentas de servicio de Kubernetes mediante las funciones de IAM para las cuentas de servicio (IRSA) cuando las cargas de trabajo necesiten permisos. AWS [https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html)
+ Aplique políticas RBAC para restringir a los usuarios solo a los espacios de nombres designados (por ejemplo,`Role`/en `RoleBinding` lugar de a los permisos de todo el clúster).

#### Restricciones de recursos e informática
<a name="sagemaker-eks-elastic-resource-constraints"></a>

Para evitar la contención de recursos y garantizar una programación justa entre los equipos, aplica cuotas y límites a nivel de espacio de nombres:
+ ResourceQuotas para limitar el número total de CPU, memoria, almacenamiento y objetos (pods, servicios PVCs, etc.).
+ LimitRanges para hacer cumplir los límites de CPU y memoria predeterminados y máximos por pod o por contenedor.
+ PodDisruptionBudgets (PDBs) según sea necesario para definir las expectativas de resiliencia.
+ Opcional: restricciones de colas a nivel de espacio de nombres (p. ej., mediante Task Governance o Kueue) para evitar que los usuarios envíen trabajos en exceso.

Estas restricciones ayudan a mantener la estabilidad del clúster y permiten programar de forma predecible las cargas de trabajo de formación distribuidas.

#### Escalado automático
<a name="sagemaker-eks-elastic-autoscaling"></a>

SageMaker HyperPod on EKS admite el escalado automático de clústeres a través de Karpenter. Cuando se utiliza Karpenter o un aprovisionador de recursos similar junto con Elastic Training, tanto el clúster como el trabajo de entrenamiento elástico pueden ampliarse automáticamente una vez enviado un trabajo de entrenamiento elástico. Esto se debe a que el operador de Elastic Training adopta un enfoque codicioso y siempre pide más recursos de cómputo de los disponibles hasta que alcanza el límite máximo establecido por el trabajo. Esto se debe a que el operador de Elastic Training solicita continuamente recursos adicionales como parte de la ejecución flexible del trabajo, lo que puede activar el aprovisionamiento de nodos. Los aprovisionadores continuos de recursos, como Karpenter, atenderán las solicitudes ampliando el clúster de cómputo.

Para mantener estas ampliaciones predecibles y bajo control, recomendamos configurar el nivel de espacio de nombres en los espacios de nombres ResourceQuotas en los que se crean los trabajos de formación elástica. ResourceQuotas ayudan a limitar el máximo de recursos que los trabajos pueden solicitar, lo que impide el crecimiento ilimitado de los clústeres y, al mismo tiempo, permite un comportamiento elástico dentro de unos límites definidos.

Por ejemplo, una ResourceQuota instancia p5.48xlarge de 8 ml tendrá el siguiente formato:

```
apiVersion: v1
kind: ResourceQuota
metadata:
  name: <quota-name>
  namespace: <namespace-name>
spec:
  hard:
    nvidia.com/gpu: "64"
    vpc.amazonaws.com/efa: "256"
    requests.cpu: "1536"
    requests.memory: "5120Gi"
    limits.cpu: "1536"
    limits.memory: "5120Gi"
```

## Cree un contenedor de formación
<a name="sagemaker-eks-elastic-build-container"></a>

HyperPod El operador de formación trabaja con un PyTorch lanzador personalizado que se proporciona mediante el paquete python de HyperPod Elastic Agent ([https://www.piwheels). org/project/hyperpod-elastic-agent/](https://www.piwheels.org/project/hyperpod-elastic-agent/)). Los clientes deben instalar el agente elástico y sustituir el comando por el comando para iniciar la formación`torchrun`. `hyperpodrun` Para obtener más información, consulte:

[https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- eks-operator-install .html\$1 sagemaker-eks-operator-elastic -agent](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-install.html#sagemaker-eks-operator-elastic-agent)

Un ejemplo de contenedor de entrenamiento:

```
FROM ...

...

RUN pip install hyperpod-elastic-agent
ENTRYPOINT ["entrypoint.sh"]

# entrypoint.sh ...
hyperpodrun --nnodes=node_count --nproc-per-node=proc_count \
  --rdzv-backend hyperpod \
 # Optional ...
 # Other torchrun args
 # pre-traing arg_group
 --pre-train-script pre.sh --pre-train-args "pre_1 pre_2 pre_3" \
 # post-train arg_group
 --post-train-script post.sh --post-train-args "post_1 post_2 post_3" \
 training.py --script-args
```

## Modificación del código de entrenamiento
<a name="sagemaker-eks-elastic-training-code"></a>

SageMaker HyperPod proporciona un conjunto de recetas que ya están configuradas para ejecutarse con Elastic Policy.

Para habilitar el entrenamiento elástico para los guiones de PyTorch entrenamiento personalizados, tendrás que realizar pequeñas modificaciones en tu ciclo de entrenamiento. Esta guía explica las modificaciones necesarias para garantizar que tu trabajo de formación responda a los eventos de escalado elástico que se producen cuando cambia la disponibilidad de los recursos informáticos. Durante todos los eventos elásticos (por ejemplo, si hay nodos disponibles o si los nodos se ven afectados), el trabajo de formación recibe una señal de evento elástica que se utiliza para coordinar un cierre correcto, guardando un punto de control y reanudando el entrenamiento reiniciándolo desde ese punto de control guardado con una nueva configuración mundial. Para habilitar el entrenamiento elástico con guiones de entrenamiento personalizados, debes:

### Detectar eventos de Elastic Scaling
<a name="sagemaker-eks-elastic-detect-events"></a>

En su ciclo de entrenamiento, compruebe si hay eventos elásticos durante cada iteración:

```
from hyperpod_elastic_agent.elastic_event_handler import elastic_event_detected

def train_epoch(model, dataloader, optimizer, args):
    for batch_idx, batch_data in enumerate(dataloader):
        # Forward and backward pass
        loss = model(batch_data).loss
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()

        # Handle checkpointing and elastic scaling
        should_checkpoint = (batch_idx + 1) % args.checkpoint_freq == 0
        elastic_event = elastic_event_detected()
        
        # Save checkpoint if scaling-up or scaling down job
        if should_checkpoint or elastic_event:
            save_checkpoint(model, optimizer, scheduler, 
                            checkpoint_dir=args.checkpoint_dir, 
                            step=global_step)
              
            if elastic_event:
                print("Elastic scaling event detected. Checkpoint saved.")
                return
```

### Implemente el almacenamiento de puntos de control y la carga de puntos de control
<a name="sagemaker-eks-elastic-checkpoint-implementation"></a>

Nota: Recomendamos usar el punto de control PyTorch distribuido (DCP) para guardar los estados del modelo y del optimizador, ya que el DCP permite reanudar desde un punto de control con diferentes tamaños de mundo. Es posible que otros formatos de puntos de control no admitan la carga de puntos de control en mundos de diferentes tamaños, en cuyo caso tendrás que implementar una lógica personalizada para gestionar los cambios dinámicos de tamaño del mundo.

```
import torch.distributed.checkpoint as dcp
from torch.distributed.checkpoint.state_dict import get_state_dict, set_state_dict

def save_checkpoint(model, optimizer, lr_scheduler, user_content, checkpoint_path):
    """Save checkpoint using DCP for elastic training."""
    state_dict = {
        "model": model,
        "optimizer": optimizer,
        "lr_scheduler": lr_scheduler,
        **user_content
    }
      
    dcp.save(
        state_dict=state_dict,
        storage_writer=dcp.FileSystemWriter(checkpoint_path)
    )

def load_checkpoint(model, optimizer, lr_scheduler, checkpoint_path):
    """Load checkpoint using DCP with automatic resharding."""
    state_dict = {
        "model": model,
        "optimizer": optimizer,
        "lr_scheduler": lr_scheduler
    }
      
    dcp.load(
        state_dict=state_dict,
        storage_reader=dcp.FileSystemReader(checkpoint_path)
    )
      
    return model, optimizer, lr_scheduler
```

### (Opcional) Usa cargadores de datos con estado
<a name="sagemaker-eks-elastic-stateful-dataloaders"></a>

Si solo está entrenando para una sola época (es decir, una sola pasada por todo el conjunto de datos), el modelo debe ver cada muestra de datos exactamente una vez. Si el trabajo de formación termina a mitad de la fase y se reanuda con un tamaño mundial diferente, las muestras de datos procesadas anteriormente se repetirán si el estado del cargador de datos no se mantiene. Un cargador de datos con estado lo evita guardando y restaurando la posición del cargador de datos, lo que garantiza que las ejecuciones reanudadas continúen desde el evento de escalado elástico sin tener que volver a procesar ninguna muestra. Le recomendamos que lo utilice [StatefulDataLoader](https://meta-pytorch.org/data/main/torchdata.stateful_dataloader.html), que sustituye de forma inmediata a esas adiciones `state_dict()` y `load_state_dict()` métodos, ya `torch.utils.data.DataLoader` que permite controlar el proceso de carga de datos a mitad de época.

## Presentar trabajos de formación elásticos
<a name="sagemaker-eks-elastic-submit-job"></a>

[HyperPod el operador de formación](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-usage.html) define un nuevo tipo de recurso:`hyperpodpytorchjob`. Elastic Training amplía este tipo de recurso y agrega los campos resaltados a continuación:

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPyTorchJob
metadata:
  name: elastic-training-job
spec:
  elasticPolicy:
    minReplicas: 1
    maxReplicas: 4
    # Increment amount of pods in fixed-size groups
    # Amount of pods will be equal to minReplicas + N * replicaIncrementStep
    replicaIncrementStep: 1           
    # ... or Provide an exact amount of pods that required for training
    replicaDiscreteValues: [2,4,8]     

    # How long traing operator wait job to save checkpoint and exit during
    # scaling events. Job will be force-stopped after this period of time
    gracefulShutdownTimeoutInSeconds: 600

    # When scaling event is detected:   
    # how long job controller waits before initiate scale-up.
    # Some delay can prevent from frequent scale-ups and scale-downs
    scalingTimeoutInSeconds: 60

    # In case of faults, specify how long elastic training should wait for
    # recovery, before triggering a scale-down
    faultyScaleDownTimeoutInSeconds: 30
  ...
  replicaSpecs:
    - name: pods
      replicas: 4           # Initial replica count
      maxReplicas: 8        # Max for this replica spec (should match elasticPolicy.maxReplicas)
      ...
```

### Uso de kubectl
<a name="sagemaker-eks-elastic-kubectl-apply"></a>

Posteriormente, puedes iniciar Elastic Training con el siguiente comando.

```
kubectl apply -f elastic-training-job.yaml
```

### Uso de SageMaker recetas
<a name="sagemaker-eks-elastic-sagemaker-recipes"></a>

Los trabajos de entrenamiento elásticos se pueden lanzar a través de [SageMaker HyperPod recetas](https://github.com/aws/sagemaker-hyperpod-recipes).

**nota**  
Hemos incluido **46** recetas elásticas para trabajos **de SFO** y **DPO** en Hyperpod Recipe. Los usuarios pueden iniciar esos trabajos con un cambio de línea sobre el script de inicio estático existente:  
`++recipes.elastic_policy.is_elastic=true`

Además de las recetas estáticas, las recetas elásticas añaden los siguientes campos para definir los comportamientos elásticos:

#### Política elástica
<a name="sagemaker-eks-elastic-policy"></a>

El `elastic_policy` campo define la configuración de nivel de trabajo para el trabajo de entrenamiento elástico y tiene las siguientes configuraciones:
+ `is_elastic`: `bool` - si este trabajo es elástico
+ `min_nodes`: `int` - el número mínimo de nodos utilizados para el entrenamiento elástico
+ `max_nodes`: `int` - el número máximo de nodos utilizados para el entrenamiento elástico
+ `replica_increment_step`: `int` - incrementar la cantidad de cápsulas en grupos de tamaño fijo, este campo se excluye mutuamente del que `scale_config` definimos más adelante.
+ `use_graceful_shutdown`: `bool` - si se utiliza un apagado correcto durante los eventos de escalado, el valor predeterminado es. `true`
+ `scaling_timeout`: `int` - el tiempo de espera en segundos durante el evento de escalado antes del tiempo de espera
+ `graceful_shutdown_timeout`: `int` - el tiempo de espera para un cierre correcto

El siguiente es un ejemplo de definición de este campo, que también puedes encontrar en el repositorio Hyperpod Recipe de Recipe: `recipes_collection/recipes/fine-tuning/llama/llmft_llama3_1_8b_instruct_seq4k_gpu_sft_lora.yaml`

```
<static recipe>
...
elastic_policy:
  is_elastic: true
  min_nodes: 1
  max_nodes: 16
  use_graceful_shutdown: true
  scaling_timeout: 600
  graceful_shutdown_timeout: 600
```

#### Config de escala
<a name="sagemaker-eks-elastic-scale-config"></a>

El `scale_config` campo define las configuraciones principales en cada escala específica. Es un diccionario clave-valor, donde la clave es un número entero que representa la escala objetivo y el valor es un subconjunto de la receta básica. A `<key>` escala, utilizamos la `<value>` para actualizar las configuraciones específicas de la receta. base/static A continuación se muestra un ejemplo de este campo:

```
scale_config:   
...
  2:
    trainer:
      num_nodes: 2
    training_config:
      training_args:
        train_batch_size: 128
        micro_train_batch_size: 8
        learning_rate: 0.0004
  3:
    trainer:
      num_nodes: 3
    training_config:
      training_args:
        train_batch_size: 128
        learning_rate: 0.0004
        uneven_batch:
          use_uneven_batch: true
          num_dp_groups_with_small_batch_size: 16
          small_local_batch_size: 5
          large_local_batch_size: 6
 ...
```

La configuración anterior define la configuración de entrenamiento en las escalas 2 y 3. En ambos casos, utilizamos la tasa de aprendizaje`4e-4`, el tamaño del lote de`128`. Pero en la escala 2, utilizamos a `micro_train_batch_size` de 8, mientras que en la escala 3 utilizamos un tamaño de lote irregular, ya que el tamaño del lote del tren no se puede dividir uniformemente en 3 nodos.

**Tamaño de lote desigual**

Se trata de un campo para definir el comportamiento de distribución de los lotes cuando el tamaño del lote global no se puede dividir uniformemente por el número de rangos. No es específico del entrenamiento elástico, pero permite escalar con mayor precisión la granularidad.
+ `use_uneven_batch`: `bool` - si utiliza una distribución desigual de los lotes
+ `num_dp_groups_with_small_batch_size`: `int` - en una distribución desigual de lotes, algunos rangos utilizan lotes locales más pequeños, mientras que otros utilizan lotes más grandes. El tamaño del lote global debe ser igual a `small_local_batch_size * num_dp_groups_with_small_batch_size + (world_size-num_dp_groups_with_small_batch_size) * large_local_batch_size`
+ `small_local_batch_size`: `int` - este valor es el tamaño de lote local más pequeño
+ `large_local_batch_size`: `int` - este valor es el tamaño de lote local más grande

**Supervise la formación en MLFlow**

Los trabajos de recetas de Hyperpod respaldan la observabilidad de manera integral. MLFlow Los usuarios pueden especificar MLFlow las configuraciones en la receta:

```
training_config:
  mlflow:
    tracking_uri: "<local_file_path or MLflow server URL>"
    run_id: "<MLflow run ID>"
    experiment_name: "<MLflow experiment name, e.g. llama_exps>"
    run_name: "<run name, e.g. llama3.1_8b>"
```

Estas configuraciones se asignan a la [MLFlow configuración](https://mlflow.org/docs/latest/ml/tracking/tracking-api/#setup--configuration) correspondiente. El siguiente es un ejemplo de MLflow panel para un trabajo de entrenamiento elástico.

![\[El siguiente es un ejemplo de MLflow panel para un trabajo de entrenamiento elástico.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-elastic-sample-dashboard.png)


Tras definir las recetas elásticas, podemos utilizar los scripts del lanzador, por ejemplo, `launcher_scripts/llama/run_llmft_llama3_1_8b_instruct_seq4k_gpu_sft_lora.sh` para lanzar un trabajo de entrenamiento elástico. Esto es similar a lanzar un trabajo estático con la receta de Hyperpod.

**nota**  
El trabajo de entrenamiento elástico del soporte de recetas se reanuda automáticamente a partir de los últimos puntos de control. Sin embargo, de forma predeterminada, cada reinicio crea un nuevo directorio de entrenamiento. Para poder reanudar correctamente desde el último punto de control, debemos asegurarnos de que se vuelva a utilizar el mismo directorio de formación. Esto se puede hacer configurando  
`recipes.training_config.training_args.override_training_dir=true`

## Ejemplos de casos de uso y limitaciones
<a name="sagemaker-eks-elastic-use-cases"></a>

### Amplíe cuando haya más recursos disponibles
<a name="sagemaker-eks-elastic-scale-up"></a>

Cuando haya más recursos disponibles en el clúster (por ejemplo, cuando se completen otras cargas de trabajo). Durante este evento, el controlador de formación ampliará automáticamente el trabajo de formación. Este comportamiento se explica a continuación.

Para simular una situación en la que haya más recursos disponibles, podemos enviar un trabajo de alta prioridad y, a continuación, liberar los recursos eliminando el trabajo de alta prioridad.

```
# Submit a high-priority job on your cluster. As a result of this command
# resources will not be available for elastic training
kubectl apply -f high_prioriy_job.yaml

# Submit an elastic job with normal priority
kubectl apply -f hyperpod_job_with_elasticity.yaml

# Wait for training to start....

# Delete high priority job. This command will make additional resources available for
# elastic training
kubectl delete -f high_prioriy_job.yaml

# Observe the scale-up of elastic job
```

Comportamiento esperado:
+ El operador de formación crea una carga de trabajo de Kueue Cuando un trabajo de formación flexible solicita un cambio de tamaño mundial, el operador de formación genera un objeto de carga de trabajo de Kueue adicional que representa los nuevos requisitos de recursos.
+ Kueue admite la carga de trabajo Kueue evalúa la solicitud en función de los recursos disponibles, las prioridades y las políticas de colas. Una vez aprobada, se admite la carga de trabajo.
+ El operador de formación crea los módulos adicionales Una vez ingresados, el operador lanza los módulos adicionales necesarios para alcanzar el nuevo tamaño mundial.
+ Cuando las nuevas cápsulas estén listas, el operador de entrenamiento envía una señal de evento elástica especial al guion de entrenamiento.
+ El trabajo de entrenamiento realiza puntos de control para preparar una parada correcta. El proceso de entrenamiento comprueba periódicamente la presencia de la señal elástica del evento mediante una llamada a la función **elastic\$1event\$1detected** (). Una vez detectada, inicia un punto de control. Una vez que el punto de control se haya completado correctamente, el proceso de formación finaliza sin problemas.
+ El operador de formación reinicia el trabajo con el nuevo tamaño mundial. El operador espera a que se cierren todos los procesos y, a continuación, reinicia el trabajo de formación utilizando el tamaño mundial actualizado y el punto de control más reciente.

**Nota:** Cuando no se usa Kueue, el operador de entrenamiento se salta los dos primeros pasos. Intenta crear inmediatamente los módulos adicionales necesarios para el nuevo tamaño del mundo. Si no hay suficientes recursos disponibles en el clúster, estos módulos permanecerán en estado **pendiente** hasta que haya capacidad disponible.

![\[El diagrama ilustra el cambio de tamaño y el cronograma de los recursos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-elastic-resize-timeline.png)


### Prioridad por trabajo de alta prioridad
<a name="sagemaker-eks-elastic-preemption"></a>

Los trabajos elásticos se pueden reducir automáticamente cuando un trabajo de alta prioridad necesita recursos. Para simular este comportamiento, puede enviar un trabajo de formación flexible, que utilice el máximo número de recursos disponibles desde el inicio de la formación, en lugar de enviar un trabajo de alta prioridad y observar el comportamiento preferente.

```
# Submit an elastic job with normal priority
kubectl apply -f hyperpod_job_with_elasticity.yaml

# Submit a high-priority job on your cluster. As a result of this command
# some amount of resources will be   
kubectl apply -f high_prioriy_job.yaml

# Observe scale-down behaviour
```

Cuando un trabajo de alta prioridad necesita recursos, Kueue puede evitar las cargas de trabajo de Elastic Training de menor prioridad (puede haber más de un objeto de carga de trabajo asociado al trabajo de Elastic Training). El proceso de preferencia sigue esta secuencia:

1. Se envía un trabajo de alta prioridad. El trabajo crea una nueva carga de trabajo de Kueue, pero la carga de trabajo no se puede admitir porque los recursos del clúster son insuficientes.

1. Kueue se antepone a una de las cargas de trabajo del trabajo de Elastic Training Los trabajos de Elastic pueden tener varias cargas de trabajo activas (una por configuración de tamaño mundial). Kueue selecciona una opción prioritaria en función de las políticas de prioridad y de colas.

1. El operador de entrenamiento envía una señal de evento elástica. Una vez que se activa la preferencia, el operador de entrenamiento notifica al proceso de entrenamiento en ejecución que se detenga correctamente.

1. El proceso de entrenamiento realiza controles. El trabajo de entrenamiento comprueba periódicamente si hay señales de eventos elásticas. Cuando se detecta, comienza un punto de control coordinado para preservar el progreso antes de detenerse.

1. un operador de formación limpia los módulos y las cargas de trabajo. El operador espera a que se complete el punto de control y, a continuación, elimina los módulos de formación que formaban parte de la carga de trabajo prioritaria. También elimina el objeto de carga de trabajo correspondiente de Kueue.

1. Se admite la carga de trabajo de alta prioridad. Con los recursos liberados, Kueue admite el trabajo de alta prioridad, lo que le permite iniciar la ejecución.  
![\[Cronograma preferente para cargas de trabajo de entrenamiento elásticas.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-elastic-preemption-timeline.png)

La preferencia puede provocar que todo el trabajo de entrenamiento se detenga, lo que puede no ser deseable para todos los flujos de trabajo. Para evitar la suspensión total del trabajo y, al mismo tiempo, permitir la escalabilidad elástica, los clientes pueden configurar dos niveles de prioridad diferentes dentro del mismo trabajo de formación definiendo dos secciones: `replicaSpec`
+ Un ReplicaSpec principal (fijo) con prioridad normal o alta
  + Contiene el número mínimo de réplicas necesario para mantener el trabajo de formación en ejecución.
  + Utiliza un valor superior PriorityClass, lo que garantiza que estas réplicas *nunca* se sustituyan.
  + Mantiene el progreso inicial incluso cuando el clúster está bajo presión de recursos.
+ Un ReplicaSpec elástico (escalable) con menor prioridad
  + Contiene las réplicas opcionales adicionales que proporcionan procesamiento adicional durante el escalado elástico.
  + Utiliza una inferior PriorityClass, lo que permite a Kueue adelantarse a estas réplicas cuando los trabajos de mayor prioridad necesitan recursos.
  + Garantiza que solo se recupere la parte elástica, mientras que el entrenamiento básico continúa sin interrupciones.

Esta configuración permite la prevención parcial, en la que solo se recupera la capacidad elástica, lo que mantiene la continuidad de la formación y, al mismo tiempo, permite compartir equitativamente los recursos en entornos con varios usuarios. Ejemplo:

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPyTorchJob
metadata:
  name: elastic-training-job
spec:
  elasticPolicy:
    minReplicas: 2
    maxReplicas: 8
    replicaIncrementStep: 2
  ...
  replicaSpecs:
    - name: base
      replicas: 2
      template:
        spec:
          priorityClassName: high-priority # set high-priority to avoid evictions
           ...
    - name: elastic
      replicas: 0
      maxReplicas: 6
      template:
        spec:
          priorityClassName: low-priority. # Set low-priority for elastic part
           ...
```

### El desalojo del módulo de almacenamiento, los bloqueos del módulo y la degradación del hardware:
<a name="sagemaker-eks-elastic-pod-eviction"></a>

El operador de HyperPod formación incluye mecanismos integrados para recuperar el proceso de formación cuando se interrumpe inesperadamente. Las interrupciones pueden producirse por varios motivos, como errores en el código de entrenamiento, desalojos de módulos, fallos de nodos, degradación del hardware y otros problemas de tiempo de ejecución.

Cuando esto ocurre, el operador intenta recrear automáticamente los módulos afectados y reanudar el entrenamiento desde el último punto de control. Si la recuperación no es posible de inmediato, por ejemplo, debido a una capacidad sobrante insuficiente, el operador puede seguir progresando reduciendo temporalmente el tamaño del mundo y reduciendo el elástico trabajo de formación.

Cuando un trabajo de entrenamiento elástico se interrumpe o pierde réplicas, el sistema se comporta de la siguiente manera:
+ Fase de recuperación (utilizando nodos de reserva) El controlador de entrenamiento espera a que `faultyScaleDownTimeoutInSeconds` los recursos estén disponibles e intenta recuperar las réplicas fallidas mediante la redistribución de los módulos de la capacidad sobrante.
+ Reducción elástica Si la recuperación no es posible dentro del plazo de espera, el operador de formación reduce la tarea a un tamaño mundial más pequeño (si la política de flexibilidad del trabajo lo permite). Luego, la capacitación se reanuda con menos réplicas.
+ Escalabilidad elástica Cuando vuelven a estar disponibles recursos adicionales, el operador vuelve a escalar automáticamente el trabajo de capacitación al tamaño mundial preferido.

Este mecanismo garantiza que la capacitación pueda continuar con un tiempo de inactividad mínimo, incluso en caso de escasez de recursos o de fallas parciales de la infraestructura, sin dejar de aprovechar el escalamiento elástico.

### Usa el entrenamiento elástico con otras HyperPod funciones
<a name="sagemaker-eks-elastic-other-features"></a>

Actualmente, Elastic Training no admite las capacidades de entrenamiento sin puntos de control, los puntos de control HyperPod gestionados por niveles ni las instancias puntuales.

**nota**  
Recopilamos ciertas métricas operativas rutinarias agregadas y anónimas para proporcionar la disponibilidad de los servicios esenciales. La creación de estas métricas está totalmente automatizada y no implica una revisión humana de la carga de trabajo de formación del modelo subyacente. Estas métricas se refieren a un trabajo y al escalamiento de las operaciones, a la administración de recursos y a la funcionalidad esencial del servicio.

# Observabilidad del SageMaker HyperPod clúster de Amazon orquestado por Amazon EKS
<a name="sagemaker-hyperpod-eks-cluster-observability"></a>

Para lograr una observabilidad completa de los recursos y componentes de software de su clúster de Amazon SageMaker HyperPod (SageMaker HyperPod), integre el clúster con [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html), [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) y [Amazon](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) Managed Grafana. Estas herramientas proporcionan visibilidad del estado del clúster, las métricas de rendimiento y la utilización de los recursos.

La integración con Amazon Managed Service para Prometheus permite exportar métricas relacionadas con los recursos de HyperPod su clúster, lo que proporciona información sobre su rendimiento, uso y estado. La integración con Amazon Managed Grafana permite la visualización de estas métricas a través de varios paneles de Grafana que ofrecen una interfaz intuitiva para supervisar y analizar el comportamiento del clúster. Al aprovechar estos servicios, obtiene una visión centralizada y unificada de su HyperPod clúster, lo que facilita la supervisión proactiva, la solución de problemas y la optimización de sus cargas de trabajo de formación distribuidas.

**nota**  
Si bien CloudWatch Amazon Managed Service for Prometheus y Amazon Managed Grafana se centran en las métricas operativas (por ejemplo, el estado del sistema o la formación, el desempeño laboral) SageMaker HyperPod , los informes de uso [complementan la gobernanza de tareas](sagemaker-hyperpod-eks-operate-console-ui-governance.md) para proporcionar información sobre la responsabilidad financiera y de los recursos. Estos informes registran lo siguiente:  
Utilización del cómputo (GPU/CPU/Neuron Core hours) across namespaces/teams
Atribución de costos de los recursos asignados y prestados
Tendencias históricas (hasta 180 días) de auditoría y optimización
Para obtener más información sobre cómo configurar y generar informes de uso, consulte Cómo [informar sobre el uso de la informática en HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html). 

**sugerencia**  
Para encontrar ejemplos prácticos y soluciones, consulte también la sección [Observabilidad](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/06-observability) del [ SageMaker HyperPod taller Amazon EKS Support in](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e).

Continúe con los siguientes temas para configurar la observabilidad de los SageMaker HyperPod clústeres.

**Topics**
+ [Observabilidad de modelos para trabajos de formación en SageMaker HyperPod clústeres orquestados por Amazon EKS](sagemaker-hyperpod-eks-cluster-observability-model.md)
+ [Observabilidad de clústeres y tareas](sagemaker-hyperpod-eks-cluster-observability-cluster.md)

# Observabilidad de modelos para trabajos de formación en SageMaker HyperPod clústeres orquestados por Amazon EKS
<a name="sagemaker-hyperpod-eks-cluster-observability-model"></a>

SageMaker HyperPod los clústeres organizados con Amazon EKS pueden integrarse con la [MLflow aplicación de Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html). Los administradores de clústeres configuran el MLflow servidor y lo conectan a los SageMaker HyperPod clústeres. Los científicos de datos pueden obtener información sobre el modelo.

**Para configurar un MLflow servidor mediante AWS CLI**

Un administrador de clústeres debe crear un servidor MLflow de seguimiento.

1. Cree un servidor MLflow de seguimiento de SageMaker IA siguiendo las instrucciones de [Crear un servidor de seguimiento mediante la AWS CLI](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-cli.html#mlflow-create-tracking-server-cli-infra-setup).

1. Asegúrese de que el [https://docs.aws.amazon.com/eks/latest/APIReference/API_auth_AssumeRoleForPodIdentity.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_auth_AssumeRoleForPodIdentity.html)permiso existe en la función de ejecución de IAM para SageMaker HyperPod.

1. Si el complemento `eks-pod-identity-agent` aún no está instalado en el clúster de EKS, instálelo en dicho clúster.

   ```
   aws eks create-addon \
       --cluster-name <eks_cluster_name> \
       --addon-name eks-pod-identity-agent \
       --addon-version vx.y.z-eksbuild.1
   ```

1. Crea un `trust-relationship.json` archivo para que Pod lo llame MLflow APIs a un nuevo rol.

   ```
   cat >trust-relationship.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
               "Effect": "Allow",
               "Principal": {
                   "Service": "pods.eks.amazonaws.com"
   
               },
               "Action": [
                   "sts:AssumeRole",
                   "sts:TagSession"
               ]
           }
       ]
   }
   EOF
   ```

   Ejecute el siguiente comando para crear el rol y asociar la relación de confianza.

   ```
   aws iam create-role --role-name hyperpod-mlflow-role \
       --assume-role-policy-document file://trust-relationship.json \
       --description "allow pods to emit mlflow metrics and put data in s3"
   ```

1. Cree la siguiente política que conceda acceso al pod para llamar a todas las operaciones `sagemaker-mlflow` y colocar los artefactos del modelo en S3. El permiso S3 ya existe en el servidor de rastreo, pero si los artefactos del modelo son demasiado grandes, se llama directamente a s3 desde el MLflow código para cargar los artefactos.

   ```
   cat >hyperpod-mlflow-policy.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker-mlflow:AccessUI",
                   "sagemaker-mlflow:CreateExperiment",
                   "sagemaker-mlflow:SearchExperiments",
                   "sagemaker-mlflow:GetExperiment",
                   "sagemaker-mlflow:GetExperimentByName",
                   "sagemaker-mlflow:DeleteExperiment",
                   "sagemaker-mlflow:RestoreExperiment",
                   "sagemaker-mlflow:UpdateExperiment",
                   "sagemaker-mlflow:CreateRun",
                   "sagemaker-mlflow:DeleteRun",
                   "sagemaker-mlflow:RestoreRun",
                   "sagemaker-mlflow:GetRun",
                   "sagemaker-mlflow:LogMetric",
                   "sagemaker-mlflow:LogBatch",
                   "sagemaker-mlflow:LogModel",
                   "sagemaker-mlflow:LogInputs",
                   "sagemaker-mlflow:SetExperimentTag",
                   "sagemaker-mlflow:SetTag",
                   "sagemaker-mlflow:DeleteTag",
                   "sagemaker-mlflow:LogParam",
                   "sagemaker-mlflow:GetMetricHistory",
                   "sagemaker-mlflow:SearchRuns",
                   "sagemaker-mlflow:ListArtifacts",
                   "sagemaker-mlflow:UpdateRun",
                   "sagemaker-mlflow:CreateRegisteredModel",
                   "sagemaker-mlflow:GetRegisteredModel",
                   "sagemaker-mlflow:RenameRegisteredModel",
                   "sagemaker-mlflow:UpdateRegisteredModel",
                   "sagemaker-mlflow:DeleteRegisteredModel",
                   "sagemaker-mlflow:GetLatestModelVersions",
                   "sagemaker-mlflow:CreateModelVersion",
                   "sagemaker-mlflow:GetModelVersion",
                   "sagemaker-mlflow:UpdateModelVersion",
                   "sagemaker-mlflow:DeleteModelVersion",
                   "sagemaker-mlflow:SearchModelVersions",
                   "sagemaker-mlflow:GetDownloadURIForModelVersionArtifacts",
                   "sagemaker-mlflow:TransitionModelVersionStage",
                   "sagemaker-mlflow:SearchRegisteredModels",
                   "sagemaker-mlflow:SetRegisteredModelTag",
                   "sagemaker-mlflow:DeleteRegisteredModelTag",
                   "sagemaker-mlflow:DeleteModelVersionTag",
                   "sagemaker-mlflow:DeleteRegisteredModelAlias",
                   "sagemaker-mlflow:SetRegisteredModelAlias",
                   "sagemaker-mlflow:GetModelVersionByAlias"
               ],
               "Resource": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-tracking-server/<ml tracking server name>"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::<mlflow-s3-bucket_name>"
           }
       ]
   }
   EOF
   ```
**nota**  
 ARNs Son el del MLflow servidor y el bucket de S3 configurado con el MLflow servidor durante el servidor que creó siguiendo las instrucciones de [configuración de la MLflow infraestructura](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-cli.html#mlflow-create-tracking-server-cli-infra-setup).

1. Asocie la política `mlflow-metrics-emit-policy` al `hyperpod-mlflow-role` mediante el documento de política guardado en el paso anterior.

   ```
   aws iam put-role-policy \
     --role-name hyperpod-mlflow-role \
     --policy-name mlflow-metrics-emit-policy \
     --policy-document file://hyperpod-mlflow-policy.json
   ```

1. Crea una cuenta de servicio de Kubernetes para que Pod acceda al servidor. MLflow 

   ```
   cat >mlflow-service-account.yaml <<EOF
   apiVersion: v1
   kind: ServiceAccount
   metadata:
     name: mlflow-service-account
     namespace: kubeflow
   EOF
   ```

   Ejecute el siguiente comando para que se aplique el clúster de EKS.

   ```
   kubectl apply -f mlflow-service-account.yaml
   ```

1. Cree una asociación de Pod Identity.

   ```
   aws eks create-pod-identity-association \
       --cluster-name EKS_CLUSTER_NAME \
       --role-arn arn:aws:iam::111122223333:role/hyperpod-mlflow-role \
       --namespace kubeflow \
       --service-account mlflow-service-account
   ```

**Para recopilar métricas de los trabajos de formación y enviarlas al servidor MLflow**

Los científicos de datos deben configurar el script de entrenamiento y la imagen del docker para emitir métricas al MLflow servidor.

1. Añada las siguientes líneas al principio del script de entrenamiento.

   ```
   import mlflow
   
   # Set the Tracking Server URI using the ARN of the Tracking Server you created
   mlflow.set_tracking_uri(os.environ['MLFLOW_TRACKING_ARN'])
   # Enable autologging in MLflow
   mlflow.autolog()
   ```

1. Cree una imagen de Docker con el script de entrenamiento y envíela a Amazon ECR. Obtenga el ARN del contenedor de ECR. Para obtener más información sobre cómo crear y enviar una imagen de Docker, consulte [Pushing a Docker image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) en la *Guía del usuario de ECR*.
**sugerencia**  
Asegúrese de añadir la instalación de los paquetes de mlflow y sagemaker-mlflow en el archivo de Docker. Para obtener más información sobre la instalación de los paquetes, los requisitos y las versiones compatibles de los paquetes, consulte [Instalación MLflow y el MLflow complemento SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-track-experiments.html#mlflow-track-experiments-install-plugin).

1. Añada una cuenta de servicio a los pods del trabajo de entrenamiento para darles acceso a `hyperpod-mlflow-role`. Esto permite que los Pods llamen MLflow APIs. Ejecute la siguiente plantilla de envío de trabajos de SageMaker HyperPod CLI. Cree esto con el nombre del archivo `mlflow-test.yaml`.

   ```
   defaults:
    - override hydra/job_logging: stdout
   
   hydra:
    run:
     dir: .
    output_subdir: null
   
   training_cfg:
    entry_script: ./train.py
    script_args: []
    run:
     name: test-job-with-mlflow # Current run name
     nodes: 2 # Number of nodes to use for current training
     # ntasks_per_node: 1 # Number of devices to use per node
   cluster:
    cluster_type: k8s # currently k8s only
    instance_type: ml.c5.2xlarge
    cluster_config:
     # name of service account associated with the namespace
     service_account_name: mlflow-service-account
     # persistent volume, usually used to mount FSx
     persistent_volume_claims: null
     namespace: kubeflow
     # required node affinity to select nodes with SageMaker HyperPod
     # labels and passed health check if burn-in enabled
     label_selector:
         required:
             sagemaker.amazonaws.com/node-health-status:
                 - Schedulable
         preferred:
             sagemaker.amazonaws.com/deep-health-check-status:
                 - Passed
         weights:
             - 100
     pullPolicy: IfNotPresent # policy to pull container, can be Always, IfNotPresent and Never
     restartPolicy: OnFailure # restart policy
   
   base_results_dir: ./result # Location to store the results, checkpoints and logs.
   container: 111122223333.dkr.ecr.us-west-2.amazonaws.com/tag # container to use
   
   env_vars:
    NCCL_DEBUG: INFO # Logging level for NCCL. Set to "INFO" for debug information
    MLFLOW_TRACKING_ARN: arn:aws:sagemaker:us-west-2:11112223333:mlflow-tracking-server/tracking-server-name
   ```

1. Inicie el trabajo con el archivo YAML de la siguiente manera.

   ```
   hyperpod start-job --config-file /path/to/mlflow-test.yaml
   ```

1. Genere una URL prefirmada para el servidor MLflow de seguimiento. Puede abrir el enlace en el navegador y empezar a realizar un seguimiento del trabajo de entrenamiento.

   ```
   aws sagemaker create-presigned-mlflow-tracking-server-url \                          
       --tracking-server-name "tracking-server-name" \
       --session-expiration-duration-in-seconds 1800 \
       --expires-in-seconds 300 \
       --region region
   ```

# Observabilidad de clústeres y tareas
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster"></a>

Existen dos opciones para monitorear SageMaker HyperPod los clústeres:

**El complemento de SageMaker HyperPod observabilidad**: SageMaker HyperPod proporciona un out-of-the-box panel de control completo que le brinda información sobre las tareas de desarrollo del modelo básico (FM) y los recursos del clúster. Esta solución de observabilidad unificada publica automáticamente métricas clave en Amazon Managed Service para Prometheus y las muestra en los paneles de Amazon Managed Grafana. Los paneles están optimizados específicamente para el desarrollo del FM y abarcan en profundidad el estado del hardware, la utilización de los recursos y el rendimiento de las tareas. Con este complemento, puede consolidar los datos de estado y rendimiento de NVIDIA DCGM, los exportadores de nodos de Kubernetes a nivel de instancia, el adaptador Elastic Fabric, los sistemas de archivos integrados, Kubernetes, Kueue y los operadores de tareas. APIs SageMaker HyperPod 

**Amazon CloudWatch Insights**: Amazon CloudWatch Insights recopila métricas para los recursos informáticos, como la CPU, la memoria, el disco y la red. Información de contenedores también proporciona información de diagnóstico, como, por ejemplo, errores de reinicio de contenedores, para ayudarlo a aislar problemas y solucionarlos rápidamente. También puede configurar CloudWatch alarmas en las métricas que recopila Container Insights.

**Topics**
+ [SageMaker HyperPod Observabilidad de Amazon con Grafana gestionada por Amazon y Amazon Managed Service para Prometheus](sagemaker-hyperpod-observability-addon.md)
+ [Observabilidad con Amazon CloudWatch](sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci.md)

# SageMaker HyperPod Observabilidad de Amazon con Grafana gestionada por Amazon y Amazon Managed Service para Prometheus
<a name="sagemaker-hyperpod-observability-addon"></a>

Amazon SageMaker HyperPod (SageMaker HyperPod) proporciona un out-of-the-box panel de control completo que le proporciona información sobre las tareas de desarrollo del modelo básico (FM) y los recursos del clúster. Esta solución de observabilidad unificada publica automáticamente métricas clave en Amazon Managed Service para Prometheus y las muestra en los paneles de Amazon Managed Grafana. Los paneles están optimizados específicamente para el desarrollo del FM y abarcan en profundidad el estado del hardware, la utilización de los recursos y el rendimiento de las tareas. Con este complemento, puede consolidar los datos de estado y rendimiento de NVIDIA DCGM, los exportadores de nodos de Kubernetes a nivel de instancia, el adaptador Elastic Fabric, los sistemas de archivos integrados, Kubernetes, APIs Kueue y los operadores de tareas. SageMaker HyperPod 

## Compatibilidad con grupos de instancias restringidos (RIG)
<a name="hyperpod-observability-addon-rig-support"></a>

El complemento de observabilidad también admite clústeres que contienen grupos de instancias restringidos. En los clústeres de RIG, el complemento adapta automáticamente su estrategia de implementación para cumplir con las restricciones de seguridad y aislamiento de la red de los nodos restringidos. DaemonSet los componentes (exportador de nodos, exportador de DCGM, exportador EFA, monitor Neuron y colector de nodos) se ejecutan tanto en nodos estándar como restringidos. Los componentes de despliegue (recopilador central, Kube State Metrics y Training Metrics Agent) se programan con una lógica que reconoce los límites para respetar el aislamiento de la red entre los grupos de instancias. La recopilación de registros de contenedores con Fluent Bit no está disponible en los nodos restringidos.

Para obtener información sobre cómo configurar el complemento en clústeres con grupos de instancias restringidos, consulte[Configuración del complemento de SageMaker HyperPod observabilidad](hyperpod-observability-addon-setup.md).

**Topics**
+ [Compatibilidad con grupos de instancias restringidos (RIG)](#hyperpod-observability-addon-rig-support)
+ [Configuración del complemento de SageMaker HyperPod observabilidad](hyperpod-observability-addon-setup.md)
+ [Paneles de SageMaker HyperPod observabilidad de Amazon](hyperpod-observability-addon-viewing-dashboards.md)
+ [Explorando las métricas de los SageMaker HyperPod clústeres en Amazon Managed Grafana](hyperpod-observability-addon-exploring-metrics.md)
+ [Personalización de las métricas, los paneles y las alertas del SageMaker HyperPod clúster](hyperpod-observability-addon-customizing.md)
+ [Crear métricas de clúster personalizadas SageMaker HyperPod](hyperpod-observability-addon-custom-metrics.md)
+ [SageMaker HyperPod métricas de clúster](hyperpod-observability-cluster-metrics.md)
+ [Alertas preconfiguradas](hyperpod-observability-addon-alerts.md)
+ [Solución de problemas con el complemento de SageMaker HyperPod observabilidad de Amazon](hyperpod-observability-addon-troubleshooting.md)

# Configuración del complemento de SageMaker HyperPod observabilidad
<a name="hyperpod-observability-addon-setup"></a>

En la siguiente lista se indican los requisitos previos para configurar el complemento de observabilidad.

Para que las métricas de tu clúster de Amazon SageMaker HyperPod (SageMaker HyperPod) se envíen a un espacio de trabajo de Amazon Managed Service for Prometheus y, de forma opcional, verlas en Amazon Managed Grafana, adjunta primero las siguientes políticas y permisos gestionados a tu rol de consola.
+ Para usar Amazon Managed Grafana, habilite AWS IAM Identity Center (IAM Identity Center) en un lugar donde esté disponible Región de AWS Amazon Managed Grafana. Para obtener instrucciones, consulte [Getting started with IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) en la *Guía del usuario de AWS IAM Identity Center *. Para ver una lista de Regiones de AWS donde está disponible Amazon Managed Grafana, consulte [Regiones admitidas](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html#AMG-supported-Regions) en la *Guía del usuario de Amazon Managed Grafana*.
+ Cree al menos un usuario en IAM Identity Center.
+ Asegúrese de que el complemento [Agente de Pod Identity de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html#add-ons-pod-id) esté instalado en su clúster de Amazon EKS. El complemento Amazon EKS Pod Identity Agent permite que el complemento de SageMaker HyperPod observabilidad obtenga las credenciales para interactuar con Amazon Managed Service for CloudWatch Prometheus y Logs. Para comprobar si su clúster de Amazon EKS tiene el complemento, vaya a la consola de Amazon EKS y consulte la pestaña **Complementos** de su clúster. Para obtener más información sobre cómo instalar el complemento si no está instalado, consulte [Creación de complemento (Consola de administración de AWS)](https://docs.aws.amazon.com/eks/latest/userguide/creating-an-add-on.html#_create_add_on_console) en la *Guía del usuario de Amazon EKS*.
**nota**  
El agente de identidad de Amazon EKS Pod es obligatorio para los grupos de instancias estándar. En el caso de los grupos de instancias restringidos (RIG), el agente de identidad del pod no está disponible debido a restricciones de aislamiento de la red. La función de IAM de ejecución del grupo de instancias del clúster se utiliza para interactuar con Amazon Managed Service for Prometheus. Para obtener información sobre cómo configurar ese rol, consulte. [Requisitos previos adicionales para los grupos de instancias restringidos](#hyperpod-observability-addon-rig-prerequisites)
+ Asegúrese de tener al menos un nodo en el SageMaker HyperPod clúster antes de instalar el complemento de SageMaker HyperPod observabilidad. El tipo de instancia de Amazon EC2 más pequeño que funciona en este caso es `4xlarge`. Este requisito de tamaño mínimo de nodo garantiza que el nodo pueda alojar todos los pods que cree el complemento de SageMaker HyperPod observabilidad junto con cualquier otro pod que ya se esté ejecutando en el clúster.
+ Añada las siguientes políticas y permisos a su rol.
  + [AWS política gestionada: AmazonSageMakerHyperPodObservabilityAdminAccess](security-iam-awsmanpol-AmazonSageMakerHyperPodObservabilityAdminAccess.md)
  + [AWS política gestionada: V2 AWSGrafana WorkspacePermissionManagement](https://docs.aws.amazon.com/grafana/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSGrafanaWorkspacePermissionManagementV2)
  + [AWS política gestionada: AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)
  + Permisos adicionales para configurar los roles de IAM necesarios para acceder a los complementos de Amazon Managed Grafana y Amazon Elastic Kubernetes Service:

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "CreateRoleAccess",
                "Effect": "Allow",
                "Action": [
                    "iam:CreateRole",
                    "iam:CreatePolicy",
                    "iam:AttachRolePolicy",
                    "iam:ListRoles"
                ],
                "Resource": [
                    "arn:aws:iam::*:role/service-role/AmazonSageMakerHyperPodObservabilityGrafanaAccess*",
                    "arn:aws:iam::*:role/service-role/AmazonSageMakerHyperPodObservabilityAddonAccess*",
                    "arn:aws:iam::*:policy/service-role/HyperPodObservabilityAddonPolicy*",
                    "arn:aws:iam::*:policy/service-role/HyperPodObservabilityGrafanaPolicy*"
                ]
            }
        ]
    }
    ```

------
  + Se necesitan permisos adicionales para administrar los usuarios de IAM Identity Center para Amazon Managed Grafana:

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "SSOAccess",
                "Effect": "Allow",
                "Action": [
                    "sso:ListProfileAssociations",
                    "sso-directory:SearchUsers",
                    "sso-directory:SearchGroups",
                    "sso:AssociateProfile",
                    "sso:DisassociateProfile"
                ],
                "Resource": [
                    "*"
                ]
            }
        ]
    }
    ```

------

## Requisitos previos adicionales para los grupos de instancias restringidos
<a name="hyperpod-observability-addon-rig-prerequisites"></a>

Si tu clúster contiene grupos de instancias restringidos, la función de ejecución del grupo de instancias debe tener permisos para escribir métricas en Amazon Managed Service for Prometheus. Cuando utilizas la **configuración rápida** para crear tu clúster con la observabilidad habilitada, estos permisos se añaden automáticamente a la función de ejecución.

Si utilizas una **configuración personalizada** o agregas la observabilidad a un clúster de RIG existente, asegúrate de que la función de ejecución de cada grupo de instancias restringido tenga los siguientes permisos:

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "PrometheusAccess",
            "Effect": "Allow",
            "Action": "aps:RemoteWrite",
            "Resource": "arn:aws:aps:us-east-1:account_id:workspace/workspace-ID"
        }
    ]
}
```

Sustituya *us-east-1* y *workspace-ID* por su Región de AWS ID de cuenta y el ID de espacio de trabajo de Amazon Managed Service for Prometheus. *account\$1id*

Cuando se haya asegurado de que cumple los requisitos anteriores, ya podrá instalar el complemento de observabilidad.

**Cómo instalar el complemento de observabilidad rápidamente**

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

1. Vaya a la página de detalles de su clúster.

1. En la pestaña **Panel** de control, busca el complemento denominado **HyperPod Monitoring & Observability** y selecciona **Instalación rápida**.

**Cómo instalar el complemento de observabilidad de forma personalizada**

1. Vaya a la página de detalles de su clúster.

1. En la pestaña **Panel** de control, busca el complemento denominado **HyperPod Monitoring & Observability** y selecciona Instalación **personalizada**.

1. Especifique las categorías de métricas que desee ver. Para obtener más información sobre estas categorías de métricas, consulte [SageMaker HyperPod métricas de clúster](hyperpod-observability-cluster-metrics.md).

1. Especifica si quieres activar Amazon CloudWatch Logs.

1. Especifique si desea que el servicio cree un nuevo espacio de trabajo de Amazon Managed Service para Prometheus.

1. Para poder ver las métricas en los paneles de Amazon Managed Grafana, marque la casilla **Utilice un espacio de trabajo de Grafana gestionado por Amazon**. Puede especificar su propio espacio de trabajo o dejar que el servicio cree uno nuevo. 
**nota**  
Amazon Managed Grafana no está disponible en todos los países Regiones de AWS en los que está disponible Amazon Managed Service for Prometheus. Sin embargo, puede configurar un espacio de trabajo de Grafana en cualquier Región de AWS y especificar que tome los datos de las métricas de un espacio de trabajo de Prometheus que se encuentre en otra Región de AWS. Para obtener más información, consulte [Uso de la configuración del origen de datos de AWS para agregar Amazon Managed Service para Prometheus como origen de datos](https://docs.aws.amazon.com/grafana/latest/userguide/AMP-adding-AWS-config.html) y [Conexión a Amazon Managed Service para Prometheus y a los orígenes de datos de Prometheus de código abierto](https://docs.aws.amazon.com/grafana/latest/userguide/prometheus-data-source.html). 

# Paneles de SageMaker HyperPod observabilidad de Amazon
<a name="hyperpod-observability-addon-viewing-dashboards"></a>

En este tema se describe cómo ver los paneles de métricas de tus clústeres de Amazon SageMaker HyperPod (SageMaker HyperPod) y cómo añadir nuevos usuarios a un panel. En este tema también se describen los distintos tipos de panel.

## Acceso a paneles
<a name="hyperpod-observability-addon-accessing-dashboards"></a>

Para ver las métricas de su SageMaker HyperPod clúster en Amazon Managed Grafana, lleve a cabo los siguientes pasos:

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

1. Vaya a la página de detalles de su clúster.

1. En la pestaña **Panel** de control, localice la sección **HyperPod Observabilidad** y elija **Abrir panel en Grafana**.

## Adición de nuevos usuarios a un espacio de trabajo de Amazon Managed Grafana
<a name="hyperpod-observability-addon-adding-users"></a>

Para obtener más información sobre cómo añadir usuarios a un espacio de trabajo de Amazon Managed Grafana, consulte [Use AWS IAM Identity Center with your Amazon Managed Grafana workspace](https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG-SSO.html) en la *Guía del usuario de Amazon Managed Grafana*.

## Paneles de observabilidad
<a name="hyperpod-observability-addon-dashboards.title"></a>

El complemento de SageMaker HyperPod observabilidad proporciona seis paneles interconectados en tu espacio de trabajo predeterminado de Amazon Managed Grafana. Cada panel proporciona información detallada sobre los diferentes recursos y tareas de los clústeres para distintos usuarios, como científicos de datos, ingenieros de machine learning y administradores.

### Panel de tareas
<a name="hyperpod-observability-addon-task-dashboard"></a>

El panel de tareas proporciona una supervisión y visualización exhaustivas de las métricas de utilización de los recursos para las tareas. SageMaker HyperPod El panel principal muestra una tabla detallada que agrupa el uso de los recursos por tareas principales y muestra el uso de la CPU, la GPU y la memoria en los distintos pods. Los gráficos interactivos de series temporales realizan un seguimiento del uso de la CPU, el consumo de memoria del sistema, los porcentajes de uso de la GPU y el uso de la memoria de la GPU en determinados pods, lo que le permite supervisar las tendencias de rendimiento a lo largo del tiempo. El panel incluye potentes funciones de filtrado a través de variables como el nombre del clúster, el espacio de nombres, el tipo de tarea y los pods específicos, lo que facilita el análisis detallado de cargas de trabajo específicas. Esta solución de monitoreo es esencial para optimizar la asignación de recursos y mantener el rendimiento de las cargas de trabajo de aprendizaje automático. SageMaker HyperPod

### Panel de entrenamiento
<a name="hyperpod-observability-addon-training-dashboard"></a>

El panel de entrenamiento proporciona un seguimiento exhaustivo de las métricas de estado, fiabilidad y administrado de fallos de los trabajos de entrenamiento. El panel incluye indicadores clave de rendimiento, como el recuento de tareas creadas, las tasas de éxito y los porcentajes de tiempo de actividad, además del seguimiento detallado de los reinicios automáticos y manuales. Además, muestra con detalle los patrones de fallos con gráficos circulares y mapas térmicos que desglosan los incidentes por tipo y latencia de remediación, lo que permite identificar los problemas recurrentes y optimizar la fiabilidad de las tareas. Esta interfaz incluye supervisión en tiempo real de métricas críticas, como los tiempos de recuperación del sistema y las latencias de detección de fallos, lo que la convierte en una herramienta esencial para mantener una alta disponibilidad de las cargas de trabajo de entrenamiento. Además, la ventana de seguimiento de 24 horas del panel proporciona un contexto histórico para analizar las tendencias y los patrones del rendimiento de los trabajos de entrenamiento, lo que ayuda a los equipos a abordar de forma proactiva los posibles problemas antes de que afecten a las cargas de trabajo de producción.

### Panel de inferencia
<a name="hyperpod-observability-addon-inference-dashboard"></a>

El panel de inferencia proporciona una supervisión exhaustiva del rendimiento de la implementación del modelo y las métricas de estado en múltiples dimensiones. Incluye una descripción detallada de las implementaciones activas, la supervisión en tiempo real de las tasas de solicitudes, los porcentajes de éxito y las métricas de latencia, lo que le permite realizar un seguimiento del rendimiento del servicio de modelos e identificar posibles cuellos de botella. El panel incluye paneles especializados tanto de las métricas de inferencia generales como de las métricas específicas de token de los modelos de lenguaje, como el tiempo transcurrido hasta el primer token (TTFT) y el rendimiento del token, por lo que es especialmente importante para supervisar las implementaciones de modelos de lenguaje de gran tamaño. Además, proporciona información sobre la infraestructura mediante el seguimiento de la asignación de nodos y pods, al tiempo que ofrece funciones detalladas de análisis de errores para ayudar a mantener una alta disponibilidad y un alto rendimiento de las cargas de trabajo de inferencia.

### Panel del clúster
<a name="hyperpod-observability-addon-cluster-dashboard"></a>

El panel de control del clúster proporciona una visión integral del estado y el rendimiento del clúster, y ofrece visibilidad en tiempo real de los recursos de cómputo, memoria, red y almacenamiento en todo su entorno Amazon SageMaker HyperPod (SageMaker HyperPod). Puede ver, de un vistazo, las métricas más importantes, como el total de instancias, el uso de la GPU, el uso de la memoria y el rendimiento de la red, a través de una interfaz intuitiva que actualiza automáticamente los datos cada pocos segundos. El panel está organizado en secciones lógicas: comienza con una descripción general del clúster que muestra las métricas clave, así como el porcentaje de instancias en buen estado y el recuento total de recursos, seguida de secciones detalladas sobre el rendimiento de la GPU, el uso de la memoria, las estadísticas de red y las métricas de almacenamiento. Cada sección incluye gráficos y paneles interactivos que le permiten desglosar métricas específicas, con intervalos de tiempo personalizables y opciones de filtrado por nombre de clúster, instancia o ID de GPU.

### Panel del sistema de archivos
<a name="hyperpod-observability-addon-filesystem-dashboard"></a>

El panel del sistema de archivos proporciona una visibilidad completa de las métricas de rendimiento y estado del sistema de archivos (Amazon FSx for Lustre). El panel muestra las métricas de almacenamiento fundamentales, como la capacidad libre, los ahorros en la deduplicación, la CPU/memory utilización, las IOPS del disco, el rendimiento y las conexiones de los clientes en múltiples visualizaciones. Le permite monitorear tanto los indicadores de rendimiento a nivel del sistema, como el uso de la CPU y la memoria, como las métricas específicas del almacenamiento, como las operaciones y los patrones de uso del disco. read/write La interfaz incluye funciones de supervisión de alertas y gráficos detallados de series temporales para hacer un seguimiento de las tendencias del rendimiento a lo largo del tiempo, por lo que es muy importante para el mantenimiento proactivo y la planificación de la capacidad. Además, gracias a su amplia cobertura de métricas, el panel ayuda a identificar posibles cuellos de botella, a optimizar el rendimiento del almacenamiento y a garantizar un funcionamiento fiable del sistema de archivos para las cargas de trabajo. SageMaker HyperPod 

### Panel de particiones de GPU
<a name="hyperpod-observability-addon-gpu-partition-dashboard"></a>

Para monitorear las métricas específicas de las particiones de la GPU cuando se utilizan configuraciones de GPU de varias instancias (MIG), debe instalar o actualizar a la última versión del complemento Observability. SageMaker HyperPod Este complemento proporciona capacidades de monitoreo integrales, que incluyen métricas específicas de MIG, como el recuento de particiones, el uso de memoria y el uso de cómputo por partición de GPU.

Si ya tienes instalado SageMaker HyperPod Observability pero necesitas compatibilidad con las métricas MIG, solo tienes que actualizar el complemento a la última versión. Este proceso no es disruptivo y mantiene la configuración de monitoreo existente.

SageMaker HyperPod expone automáticamente las métricas específicas de MIG, que incluyen:
+ `nvidia_mig_instance_count`: Número de instancias MIG por perfil
+ `nvidia_mig_memory_usage`: Utilización de memoria por instancia MIG
+ `nvidia_mig_compute_utilization`: Utilización de cómputo por instancia MIG

### Panel de registros de clústeres
<a name="hyperpod-observability-addon-cluster-logs-dashboard"></a>

El panel de registros de clústeres proporciona una vista centralizada de CloudWatch los registros del SageMaker HyperPod clúster. El panel consulta el grupo de `/aws/sagemaker/Clusters/{cluster-name}/{cluster-id}` registros y muestra los eventos de registro con funciones de filtrado por ID de instancia, nombre del flujo de registro, nivel de registro (ERROR, WARN, INFO, DEBUG) y búsqueda de texto libre. El panel incluye una cronología de los eventos que muestra la distribución de los eventos del registro a lo largo del tiempo, un contador total de eventos, una cronología de los eventos buscados para filtrar los resultados y un panel de registros detallado con mensajes de registro completos, marcas de tiempo y metadatos del flujo de registro. Este panel se utiliza CloudWatch como fuente de datos y es útil para depurar los problemas del clúster, supervisar los eventos de estado de las instancias e investigar los fallos en las tareas de formación.

# Explorando las métricas de los SageMaker HyperPod clústeres en Amazon Managed Grafana
<a name="hyperpod-observability-addon-exploring-metrics"></a>

Tras conectar Amazon Managed Grafana a su espacio de trabajo de Amazon Managed Service para Prometheus, podrá utilizar el editor de consultas y las herramientas de visualización de Grafana para explorar los datos de las métricas. Amazon Managed Grafana ofrece varias formas de interactuar con los datos de Prometheus, como un editor de consultas completo para crear expresiones de PromQL, un navegador de métricas para descubrir las métricas y etiquetas disponibles, y funciones de creación de plantillas para crear paneles dinámicos. Puede realizar consultas de rango para visualizar datos de series temporales a lo largo de los períodos y consultas instantáneas para obtener los valores más recientes, con opciones para formatear los resultados como gráficos de series temporales, tablas o mapas térmicos. Para obtener más información detallada sobre la configuración de las consultas, el uso del navegador de métricas y el aprovechamiento de las características de las plantillas, consulte [Uso del origen de datos de Prometheus](https://docs.aws.amazon.com/grafana/latest/userguide/using-prometheus-datasource.html).

# Personalización de las métricas, los paneles y las alertas del SageMaker HyperPod clúster
<a name="hyperpod-observability-addon-customizing"></a>

Amazon Managed Grafana le permite crear paneles integrales que muestran sus datos a través de paneles que contienen consultas conectadas a sus orígenes de datos. Puede crear paneles desde cero, importar los existentes o exportar sus creaciones para compartirlos y hacer copias de seguridad. Los paneles de Grafana incluyen características dinámicas a través de las variables que reemplazan los valores con codificación rígida en las consultas, de manera que sus visualizaciones son más flexibles e interactivas. También puede mejorar sus paneles con características como anotaciones, paneles de biblioteca para reutilizarlos, administración del historial de versiones y enlaces personalizados para crear una solución completa de supervisión y observabilidad. Para obtener step-by-step instrucciones sobre cómo crear, importar, configurar y administrar paneles, consulte [Creación](https://docs.aws.amazon.com/grafana/latest/userguide/v10-dash-building-dashboards.html) de paneles.

# Crear métricas de clúster personalizadas SageMaker HyperPod
<a name="hyperpod-observability-addon-custom-metrics"></a>

El complemento de observabilidad Amazon SageMaker HyperPod (SageMaker HyperPod) proporciona cientos de métricas out-of-the-box de salud, rendimiento y eficiencia. Además de esas métricas, es posible que tenga que supervisar las métricas personalizadas específicas de sus aplicaciones o según sus necesidades empresariales que no se recopilan en las métricas predeterminadas, como los indicadores de rendimiento específicos del modelo, las estadísticas de procesamiento de datos o las mediciones específicas de la aplicación. Para abordar esta necesidad, puede implementar una recopilación de métricas personalizada OpenTelemetry mediante la integración de un fragmento de código de Python en su aplicación.

Para crear métricas personalizadas, primero ejecute el siguiente comando de shell para instalar los OpenTelemetry componentes principales necesarios para instrumentar las aplicaciones de Python para la observabilidad. Esta instalación hace posible que las aplicaciones de Python que se ejecutan en SageMaker HyperPod clústeres emitan datos de telemetría personalizados. El OpenTelemetry recopilador recopila esos datos y los envía a la infraestructura de observabilidad.

```
pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-grpc
```

El siguiente script de ejemplo configura una canalización de OpenTelemetry métricas que etiqueta automáticamente las métricas con la información de los nodos y los nodos, lo que garantiza una atribución adecuada dentro del clúster, y envía estas métricas a la pila de observabilidad SageMaker HyperPod integrada cada segundo. El script establece una conexión con el recopilador de SageMaker HyperPod métricas, configura los atributos de recursos adecuados para su identificación y proporciona una interfaz de medición a través de la cual se pueden crear varios tipos de métricas (contadores, indicadores o histogramas) para realizar un seguimiento de cualquier aspecto del rendimiento de la aplicación. Las métricas personalizadas se integran en los paneles de SageMaker HyperPod control junto con las métricas del sistema. Esta integración permite una observabilidad completa a través de una única interfaz en la que puede crear alertas, visualizaciones e informes personalizados para supervisar el perfil de rendimiento completo de su carga de trabajo.

```
import os
from opentelemetry import metrics
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import OTLPMetricExporter
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.sdk.resources import Resource

# Get hostname/pod name
hostname = os.uname()[1]
node_name = os.getenv('NODE_NAME', 'unknown')

collector_endpoint = "hyperpod-otel-collector.hyperpod-observability:4317"

# Configure the OTLP exporter
exporter = OTLPMetricExporter(
    endpoint=collector_endpoint,
    insecure=True,
    timeout=5000  # 5 seconds timeout
)

reader = PeriodicExportingMetricReader(
    exporter,
    export_interval_millis=1000
)

resource = Resource.create({
    "service.name": "metric-test",
    "pod.name": hostname,
    "node.name": node_name
})

meter_provider = MeterProvider(
    metric_readers=[reader],
    resource=resource
)
metrics.set_meter_provider(meter_provider)

# Create a meter
meter = metrics.get_meter("test-meter")

# Create a counter
counter = meter.create_counter(
    name="test.counter",
    description="A test counter"
)

counter.add(1, {"pod": hostname, "node": node_name})
```

# SageMaker HyperPod métricas de clúster
<a name="hyperpod-observability-cluster-metrics"></a>

Amazon SageMaker HyperPod (SageMaker HyperPod) publica varias métricas en 9 categorías distintas en tu espacio de trabajo de Amazon Managed Service for Prometheus. No todas las métricas están activadas de forma predeterminada ni se muestran en el espacio de trabajo de Amazon Managed Grafana. En la siguiente tabla se muestra qué métricas están activas de forma predeterminada al instalar el complemento de observabilidad, qué categorías tienen métricas adicionales que se pueden activar para obtener información de clúster más detallada y dónde aparecen en el espacio de trabajo de Amazon Managed Grafana.


| Categoría métrica | ¿Activada de forma predeterminada? | ¿Hay métricas avanzadas adicionales disponibles? | ¿En qué paneles de Grafana está disponible? | 
| --- | --- | --- | --- | 
| Métricas de entrenamiento | Sí | Sí | Formación | 
| Métricas de inferencia | Sí | No | Inferencia | 
| Métricas de gobernanza de tareas | No | Sí | Ninguna. Consulte el espacio de trabajo de Amazon Managed Service para Prometheus para crear su propio panel. | 
| Métricas de escalado | No | Sí | Ninguna. Consulte el espacio de trabajo de Amazon Managed Service para Prometheus para crear su propio panel. | 
| Métricas de clúster | Sí | Sí | Clúster | 
| Métricas de la instancia | Sí | Sí | Clúster | 
| Métricas de computación acelerada | Sí | Sí | Tarea, clúster | 
| Métricas de red | No | Sí | Clúster | 
| Sistema de archivos | Sí | No | Sistema de archivos | 

En las siguientes tablas se describen las métricas disponibles para monitorizar su SageMaker HyperPod clúster, organizadas por categoría.

## Disponibilidad de las métricas en los grupos de instancias restringidos
<a name="hyperpod-observability-rig-metrics-availability"></a>

Cuando el clúster contiene grupos de instancias restringidos, la mayoría de las categorías de métricas están disponibles en los nodos restringidos, con las siguientes excepciones y consideraciones. También puedes configurar alertas en cualquier métrica que desees.


| Categoría métrica | ¿Disponible en los nodos RIG? | Notas | 
| --- | --- | --- | 
| Métricas de entrenamiento | Sí | Se recopilan las métricas de los pods de Kubeflow y Kubernetes. Las métricas de KPI de entrenamiento avanzadas (del agente de métricas de entrenamiento) no están disponibles en los nodos de RIG. | 
| Métricas de inferencia | No | Los grupos de instancias restringidos no admiten cargas de trabajo de inferencia. | 
| Métricas de gobernanza de tareas | No | Las métricas de Kueue solo se recopilan de los nodos estándar, si los hay. | 
| Métricas de escalado | No | Las métricas de KEDA se recopilan únicamente de los nodos estándar, si los hay. | 
| Métricas de clúster | Sí | Están disponibles las métricas de Kube State y las métricas del servidor API. Kube State Metrics se programa preferentemente en nodos estándar, pero puede ejecutarse en nodos restringidos en clústeres exclusivos de RIG. | 
| Métricas de la instancia | Sí | Las métricas de Node Exporter y cAdvisor se recopilan en todos los nodos, incluidos los nodos restringidos. | 
| Métricas de computación acelerada | Sí | DCGM Exporter se ejecuta en nodos restringidos habilitados para la GPU. Neuron Monitor se ejecuta en nodos restringidos habilitados para Neuron cuando el modo avanzado está activado. | 
| Métricas de red | Sí | EFA Exporter se ejecuta en nodos restringidos habilitados para EFA cuando el modo avanzado está activado. | 
| Métricas del sistema de archivos | Sí | FSx para Lustre, las métricas de uso del clúster son compatibles con los grupos de instancias restringidos. | 

**nota**  
La recopilación de registros de contenedores con Fluent Bit no se implementa en nodos restringidos. Los registros de clúster de los nodos restringidos están disponibles a través de la SageMaker HyperPod plataforma, independientemente del complemento de observabilidad. Puede ver estos registros en el panel de registros de clústeres.

## Métricas de entrenamiento
<a name="hyperpod-observability-training-metrics"></a>

Utilice estas métricas para realizar un seguimiento del rendimiento de las tareas de entrenamiento ejecutadas en el SageMaker HyperPod clúster.


| Nombre o tipo de métrica | Description (Descripción) | ¿Activada de forma predeterminada? | Origen de la métrica | 
| --- | --- | --- | --- | 
| Métricas de Kubeflow | [https://github.com/kubeflow/entrenador](https://github.com/kubeflow/trainer) | Sí | Kubeflow | 
| Métricas del pod de Kubernetes | [https://github.com/kubernetes/kube-state-metrics](https://github.com/kubernetes/kube-state-metrics) | Sí | Kubernetes  | 
| training\$1uptime\$1percentage | Porcentaje del tiempo de entrenamiento del tamaño total de la ventana | No | SageMaker HyperPod operador de entrenamiento | 
| training\$1manual\$1recovery\$1count | Número total de reinicios manuales realizados en el trabajo | No | SageMaker HyperPod operador de formación | 
| training\$1manual\$1downtime\$1ms | Tiempo total en milisegundos durante el cual el trabajo ha estado inactivo debido a intervenciones manuales | No | SageMaker HyperPod operador de formación | 
| training\$1auto\$1recovery\$1count | Número total de recuperaciones automáticas | No | SageMaker HyperPod operador de formación | 
| training\$1auto\$1recovery\$1downtime | Tiempo total de sobrecarga de la infraestructura en milisegundos durante la recuperación de errores | No | SageMaker HyperPod operador de formación | 
| training\$1fault\$1count | Número total de errores detectados durante el entrenamiento | No | SageMaker HyperPod operador de formación | 
| training\$1fault\$1type\$1count | Distribución de los fallos por tipo | No | SageMaker HyperPod operador de formación | 
| training\$1fault\$1recovery\$1time\$1ms | Tiempo de recuperación en milisegundos para cada tipo de fallo | No | SageMaker HyperPod operador de formación | 
| training\$1time\$1ms | Tiempo total en milisegundos dedicado al entrenamiento real | No | SageMaker HyperPod operador de formación | 

## Métricas de inferencia
<a name="hyperpod-observability-inference-metrics"></a>

Utilice estas métricas para realizar un seguimiento del rendimiento de las tareas de inferencia en el SageMaker HyperPod clúster.


| Nombre o tipo de métrica | Description (Descripción) | ¿Activada de forma predeterminada? | Origen de la métrica | 
| --- | --- | --- | --- | 
| model\$1invocations\$1total | Número total de solicitudes de invocación realizadas al modelo | Sí | SageMaker HyperPod operador de inferencia | 
| model\$1errors\$1total | Número total de errores al invocar el modelo | Sí | SageMaker HyperPod operador de inferencia | 
| model\$1concurrent\$1requests | Solicitudes al modelo simultáneas activas | Sí | SageMaker HyperPod operador de inferencia | 
| model\$1latency\$1milliseconds | Latencia de invocación del modelo en milisegundos | Sí | SageMaker HyperPod operador de inferencia | 
| model\$1ttfb\$1milliseconds | Latencia del modelo con respecto al primer byte en milisegundos | Sí | SageMaker HyperPod operador de inferencia | 
| TGI | Estas métricas se pueden utilizar para supervisar el rendimiento de TGI, escalar automáticamente la implementación y ayudar a identificar los cuellos de botella. Para obtener una lista detallada de las métricas, consulte [https://github.com/deepjavalibrary/djl- serving/blob/master/prometheus/README .md.](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) | Sí | Contenedor de modelos | 
| LMI | Estas métricas se pueden utilizar para supervisar el rendimiento de LMI y ayudar a identificar los cuellos de botella. Para obtener una lista detallada de las métricas, consulta [https://github.com/deepjavalibrary/djl](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) - .md. serving/blob/master/prometheus/README | Sí | Contenedor de modelos | 

## Métricas de gobernanza de tareas
<a name="hyperpod-observability-task-governance-metrics"></a>

Utilice estas métricas para supervisar la gobernanza de las tareas y la asignación de recursos en el SageMaker HyperPod clúster.


| Nombre o tipo de métrica | Description (Descripción) | ¿Activada de forma predeterminada? | Origen de la métrica | 
| --- | --- | --- | --- | 
| Kueue | Consulte [https://kueue.sigs.k8s. io/docs/reference/metrics](https://kueue.sigs.k8s.io/docs/reference/metrics/)/. | No | Kueue | 

## Métricas de escalado
<a name="hyperpod-observability-scaling-metrics"></a>

Usa estas métricas para monitorear el comportamiento y el rendimiento del autoscalamiento en el SageMaker HyperPod clúster.


| Nombre o tipo de métrica | Description (Descripción) | ¿Activada de forma predeterminada? | Origen de la métrica | 
| --- | --- | --- | --- | 
| Métricas del KEDA Operator | Consulte [https://keda. sh/docs/2.17/integrations/prometheus/\$1operator](https://keda.sh/docs/2.17/integrations/prometheus/#operator). | No | Escalado automático basado en eventos de Kubernetes (KEDA) | 
| Métricas de KEDA Webhooks | Consulte [https://keda. sh/docs/2.17/integrations/prometheus/\$1admission -webhooks](https://keda.sh/docs/2.17/integrations/prometheus/#admission-webhooks). | No | Escalado automático basado en eventos de Kubernetes (KEDA) | 
| Métricas del servidor de KEDA Metrics | [Consulte https://keda. sh/docs/2.17/integrations/prometheus/\$1metrics -server](https://keda.sh/docs/2.17/integrations/prometheus/#metrics-server). | No | Escalado automático basado en eventos de Kubernetes (KEDA) | 

## Métricas de clúster
<a name="hyperpod-observability-cluster-health-metrics"></a>

Utilice estas métricas para supervisar el estado general del clúster y la asignación de recursos.


| Nombre o tipo de métrica | Description (Descripción) | ¿Activada de forma predeterminada? | Origen de la métrica | 
| --- | --- | --- | --- | 
| Estado del clúster | Métricas del servidor de la API de Kubernetes. Consulte [https://kubernetes. io/docs/reference/instrumentation/metrics](https://kubernetes.io/docs/reference/instrumentation/metrics/)/. | Sí | Kubernetes  | 
| Kubestate | Consulte [https://github.com/kubernetes/kube-state-metrics/tree/main/docs\$1default -resources](https://github.com/kubernetes/kube-state-metrics/tree/main/docs#default-resources). | Limitado | Kubernetes  | 
| KubeState Avanzado | Consulte [https://github.com/kubernetes/kube-state-metrics/tree/main/docs\$1optional -resources](https://github.com/kubernetes/kube-state-metrics/tree/main/docs#optional-resources). | No | Kubernetes  | 

## Métricas de la instancia
<a name="hyperpod-observability-instance-metrics"></a>

Utilice estas métricas para supervisar el rendimiento y el estado de las instancias individuales.


| Nombre o tipo de métrica | Description (Descripción) | ¿Activada de forma predeterminada? | Origen de la métrica | 
| --- | --- | --- | --- | 
| Métricas de nodos | ¿Ves [https://github.com/prometheus/node\$1exporter? readme-ov-filetab= \$1 enabled-by-default](https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default). | Sí | Kubernetes  | 
| Métricas de contenedores | Métricas de contenedores expuestas por Cadvisor. Consulte [https://github.com/google/cadvisor](https://github.com/google/cadvisor). | Sí | Kubernetes  | 

## Métricas de computación acelerada
<a name="hyperpod-observability-accelerated-compute-metrics"></a>

Utilice estas métricas para supervisar el rendimiento, el estado y la utilización de los dispositivos de computación acelerada individuales de su clúster.

**nota**  
Cuando la partición de GPU con MIG (GPU de instancias múltiples) está habilitada en el clúster, las métricas de DCGM proporcionan automáticamente una granularidad a nivel de partición para monitorear instancias MIG individuales. Cada partición MIG se expone como un dispositivo de GPU independiente con sus propias métricas de temperatura, potencia, uso de memoria y actividad informática. Esto le permite realizar un seguimiento del uso y el estado de los recursos de cada partición de la GPU de forma independiente, lo que permite una supervisión precisa de las cargas de trabajo que se ejecutan en recursos fraccionados de la GPU. Para obtener más información sobre la configuración de la partición de la GPU, consulte. [Uso de particiones de GPU en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)


| Nombre o tipo de métrica | Description (Descripción) | ¿Activada de forma predeterminada? | Origen de la métrica | 
| --- | --- | --- | --- | 
| NVIDIA GPU | Métricas de DCGM. Consulte [https://github.com/NVIDIA/dcgm- -metrics-included.csv. exporter/blob/main/etc/dcp](https://github.com/NVIDIA/dcgm-exporter/blob/main/etc/dcp-metrics-included.csv) | Limitado |  NVIDIA Data Center GPU Manager (DCGM)  | 
|  NVIDIA GPU (avanzado)  | Métricas de DCGM que se comentan en el siguiente archivo CSV:[https://github.com/NVIDIA/dcgm- -metrics-included.csv exporter/blob/main/etc/dcp](https://github.com/NVIDIA/dcgm-exporter/blob/main/etc/dcp-metrics-included.csv) | No |  NVIDIA Data Center GPU Manager (DCGM)  | 
| AWS Trainio | Métricas de Neuron. Consulte [https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron- .html\$1 monitor-user-guide](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide.html#neuron-monitor-nc-counters). neuron-monitor-nc-counters | No | AWS Monitor de neuronas | 

## Métricas de red
<a name="hyperpod-observability-network-metrics"></a>

Utilice estas métricas para supervisar el rendimiento y el estado de los Elastic Fabric Adapter (EFA) de su clúster.


| Nombre o tipo de métrica | Description (Descripción) | ¿Activada de forma predeterminada? | Origen de la métrica | 
| --- | --- | --- | --- | 
| EFA | Véase [https://github.com/aws-samples/awsome-distributed-training//blob/main/4.validation\$1and\$1observability/3.efa-node-exporter/README.md.](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md) | No | Elastic Fabric Adapter | 

## Métricas del sistema de archivos
<a name="hyperpod-observability-file-system-metrics"></a>


| Nombre o tipo de métrica | Description (Descripción) | ¿Activada de forma predeterminada? | Origen de la métrica | 
| --- | --- | --- | --- | 
| Sistema de archivos | Métricas de Amazon FSx for Lustre: CloudWatch[Monitorización con Amazon CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html). | Sí | Amazon FSx para Lustre | 

# Alertas preconfiguradas
<a name="hyperpod-observability-addon-alerts"></a>

El complemento de observabilidad Amazon SageMaker HyperPod (SageMaker HyperPod) habilita alertas predeterminadas para el clúster y las cargas de trabajo que le notifican cuando el sistema detecta indicadores tempranos comunes de bajo rendimiento del clúster. Estas alertas se definen en el sistema de alertas integrado de Amazon Managed Grafana. Para obtener más información sobre cómo modificar estas alertas preconfiguradas o crear alertas nuevas, consulte [Alertas en la versión 10 de Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/v10-alerts.html) en la *Guía del usuario de Amazon Managed Grafana*. El siguiente archivo YAML muestra las alertas predeterminadas.

```
groups:
- name: sagemaker_hyperpod_alerts
  rules:
  # GPU_TEMP_ABOVE_80C
  - alert: GPUHighTemperature
    expr: DCGM_FI_DEV_GPU_TEMP > 80
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "GPU Temperature Above 80C"
      description: "GPU {{ $labels.gpu }} temperature is {{ $value }}°C."

  # GPU_TEMP_ABOVE_85C  
  - alert: GPUCriticalTemperature  
    expr: DCGM_FI_DEV_GPU_TEMP > 85
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "GPU Temperature Above 85C"
      description: "GPU {{ $labels.gpu }} temperature is {{ $value }}°C."

  # GPU_MEMORY_ERROR
  # Any ECC double-bit errors indicate serious memory issues requiring immediate attention
  - alert: GPUMemoryErrorDetected
    expr: DCGM_FI_DEV_ECC_DBE_VOL_TOTAL > 0 or DCGM_FI_DEV_ECC_DBE_AGG_TOTAL > DCGM_FI_DEV_ECC_DBE_AGG_TOTAL offset 5m
    labels:
      severity: critical
    annotations:
      summary: "GPU ECC Double-Bit Error Detected"
      description: "GPU {{ $labels.gpu }} has detected ECC double-bit errors."

  # GPU_POWER_WARNING
  # Sustained power limit violations can impact performance and stability
  - alert: GPUPowerViolation
    expr: DCGM_FI_DEV_POWER_VIOLATION > 100
    for: 5m
    labels:
      severity: warning  
    annotations:
      summary: "GPU Power Violation"
      description: "GPU {{ $labels.gpu }} has been operating at power limit for extended period."

  # GPU_NVLINK_ERROR
  # NVLink errors above threshold indicate interconnect stability issues
  - alert: NVLinkErrorsDetected
    expr: DCGM_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL > 0 or DCGM_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL > 10
    labels:
      severity: warning
    annotations:
      summary: "NVLink Errors Detected" 
      description: "GPU {{ $labels.gpu }} has detected NVLink errors."

  # GPU_THERMAL_VIOLATION  
  # Immediate alert on thermal violations to prevent hardware damage
  - alert: GPUThermalViolation
    expr: increase(DCGM_FI_DEV_THERMAL_VIOLATION[5m]) > 0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "GPU Thermal Violation Detected"
      description: "GPU {{ $labels.gpu }} has thermal violations on node {{ $labels.Hostname }}"

  # GPU_XID_ERROR
  # XID errors indicate driver or hardware level GPU issues requiring investigation
  - alert: GPUXidError
    expr: DCGM_FI_DEV_XID_ERRORS > 0
    for: 0m
    labels:
      severity: critical
    annotations:
      summary: "GPU XID Error Detected"
      description: "GPU {{ $labels.gpu }} experienced XID error {{ $value }} on node {{ $labels.Hostname }}"

  # MIG_CONFIG_FAILURE
  # MIG configuration failures indicate issues with GPU partitioning setup
  - alert: MIGConfigFailure
    expr: kubelet_node_name{nvidia_com_mig_config_state="failed"} > 0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "MIG Configuration Failed"
      description: "MIG configuration failed on node {{ $labels.instance }}"

  # DISK_SPACE_WARNING
  # 90% threshold ensures time to respond before complete disk exhaustion
  - alert: NodeDiskSpaceWarning
    expr: (node_filesystem_size_bytes - node_filesystem_free_bytes) / node_filesystem_size_bytes * 100 > 90
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "High Disk Usage"
      description: "Node {{ $labels.instance }} disk usage is above 90%"

  # FSX_STORAGE_WARNING
  # 80% FSx utilization allows buffer for burst workloads
  - alert: FsxLustreStorageWarning
    expr: fsx_lustre_storage_used_bytes / fsx_lustre_storage_capacity_bytes * 100 > 80
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "High FSx Lustre Usage"
      description: "FSx Lustre storage usage is above 80% on file system {{ $labels.filesystem_id }}"
```

# Solución de problemas con el complemento de SageMaker HyperPod observabilidad de Amazon
<a name="hyperpod-observability-addon-troubleshooting"></a>

Usa la siguiente guía para resolver problemas comunes con el complemento de observabilidad Amazon SageMaker HyperPod (SageMaker HyperPod).

## Solución de problemas de métricas que faltan de Amazon Managed Grafana
<a name="troubleshooting-missing-metrics"></a>

Si las métricas no aparecen en los paneles de Amazon Managed Grafana, siga estos pasos para identificar y resolver el problema.

### Verificación de la conexión entre Amazon Managed Service para Prometheus y Amazon Managed Grafana
<a name="verify-amp-grafana-connection"></a>

1. Inicie sesión en la consola de Amazon Managed Grafana.

1. En el panel de navegación izquierdo, elija **Todos los espacios de trabajo**.

1. En la tabla **Espacios de trabajo**, elija su espacio de trabajo.

1. En la página de detalles del espacio de trabajo, seleccione la pestaña **Orígenes de datos**.

1. Compruebe que existe el origen de datos de Amazon Managed Service para Prometheus.

1. Compruebe los ajustes de la conexión:
   + Confirme que la URL del punto de conexión sea correcta.
   + Compruebe que la autenticación de IAM esté configurada correctamente.
   + Elija **Probar conexión**. Compruebe que el estado sea **El origen de datos funciona**.

### Verificación del estado del complemento de Amazon EKS
<a name="verify-eks-addon-status"></a>

1. Abra la consola Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Seleccione el clúster.

1. Elija la pestaña **Complementos**.

1. **Compruebe que el complemento de SageMaker HyperPod observabilidad aparezca en la lista y que su estado sea ACTIVO.**

1. Si el estado no es **ACTIVE**, consulte [Solución de errores al instalar el complemento](#troubleshooting-addon-installation-failures).

### Verificación de la asociación de Pod Identity
<a name="verify-pod-identity-association"></a>

1. Abra la consola Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Seleccione el clúster.

1. En la página Detalles del clúster, seleccione la pestaña **Acceso**.

1. En la tabla **Asociaciones de Pod Identity**, elija la asociación que tenga los siguientes valores de propiedad:
   + **Espacio de nombres:** `hyperpod-observability`
   + **Cuenta de servicio**: `hyperpod-observability-operator-otel-collector`
   + **Complemento**: `amazon-sagemaker-hyperpod-observability`

1. Asegúrese de que el rol de IAM vinculado a esta asociación tenga los siguientes permisos.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PrometheusAccess",
               "Effect": "Allow",
               "Action": "aps:RemoteWrite",
               "Resource": "arn:aws:aps:us-east-1:111122223333:workspace/workspace-ID"
           },
           {
               "Sid": "CloudwatchLogsAccess",
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams",
                   "logs:PutLogEvents",
                   "logs:GetLogEvents",
                   "logs:FilterLogEvents",
                   "logs:GetLogRecord",
                   "logs:StartQuery",
                   "logs:StopQuery",
                   "logs:GetQueryResults"
               ],
               "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/Clusters/*",
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/Clusters/*:log-stream:*"
               ]
           }
       ]
   }
   ```

------

1. Asegúrese de que el rol de IAM vinculado a esta asociación tenga la siguiente política de confianza. Compruebe que el ARN de origen y la cuenta de origen sean correctos.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
               "Effect": "Allow",
               "Principal": {
                   "Service": "pods.eks.amazonaws.com"
               },
               "Action": [
                   "sts:AssumeRole",
                   "sts:TagSession"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:cluster/cluster-name",
                       "aws:SourceAccount": "111122223333"
                   }
               }
           }
       ]
   }
   ```

------

### Verificación de la limitación de Amazon Managed Service para Prometheus
<a name="check-amp-throttling"></a>

1. Inicie sesión en la consola Service Quotas Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/).

1. En el cuadro **Cuotas administradas**, busque y seleccione Amazon Managed Service para Prometheus.

1. Elige la cuota **Serie activa por espacio de trabajo**.

1. En la pestaña **Cuotas a nivel de recurso**, seleccione el espacio de trabajo de Amazon Managed Service para Prometheus.

1. Asegúrese de que la utilización sea inferior a la cuota actual.

1. Si ha alcanzado el límite de cuota, seleccione su espacio de trabajo pulsando el botón de opción situado a la izquierda y, a continuación, elija **Solicitud de aumento a nivel de recursos**.

### Compruebe que el almacenamiento en caché KV y el enrutamiento inteligente estén habilitados
<a name="verify-caching-routing"></a>

Si falta el `KVCache Metrics` panel de control, la función no está habilitada o el puerto no se menciona en el. `modelMetrics` Para obtener más información sobre cómo activarlo, consulta los pasos 1 y 3 de[Configure el almacenamiento en caché KV y el enrutamiento inteligente para mejorar el rendimiento](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route). 

Si falta el `Intelligent Router Metrics` panel de control, active la función para que aparezcan. Para obtener más información sobre cómo habilitar esto, consulte[Configure el almacenamiento en caché KV y el enrutamiento inteligente para mejorar el rendimiento](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route). 

## Solución de errores al instalar el complemento
<a name="troubleshooting-addon-installation-failures"></a>

Si el complemento de observabilidad no se instala, siga estos pasos para diagnosticar y resolver el problema.

### Comprobación del estado de la sonda
<a name="check-health-probe-status"></a>

1. Abra la consola Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Seleccione el clúster.

1. Elija la pestaña **Complementos**.

1. Seleccione el complemento que ha fallado.

1. Consulte la sección **Problemas de estado**.

1. Si el problema de estado está relacionado con las credenciales o Pod Identity, consulte [Verificación de la asociación de Pod Identity](#verify-pod-identity-association). Asegúrese también de que el complemento del agente de Pod Identity se esté ejecutando en el clúster.

1. Compruebe si hay errores en los registros del administrador. Para obtener instrucciones, consulte [Consulta de los registros del administrador](#review-manager-logs).

1. Póngase en contacto con AWS Support con los detalles del problema.

### Consulta de los registros del administrador
<a name="review-manager-logs"></a>

1. Obtención del pod del administrador de complementos:

   ```
   kubectl logs -n hyperpod-observability -l control-plane=hyperpod-observability-controller-manager
   ```

1. Si tiene problemas urgentes, póngase en contacto con Soporte.

## Consulta de todos los pods de observabilidad
<a name="review-all-observability-pods"></a>

Todos los módulos que crea el complemento de SageMaker HyperPod observabilidad están en el `hyperpod-observability` espacio de nombres. Ejecute el siguiente comando para obtener el estado de estos pods.

```
kubectl get pods -n hyperpod-observability
```

Busque los pods cuyo estado sea `pending` o `crashloopbackoff`. Ejecute el siguiente comando para obtener los registros de estos pods pendientes o fallidos.

```
kubectl logs -n hyperpod-observability pod-name
```

Si no encuentra errores en los registros, ejecute el siguiente comando para describir los pods y buscar errores.

```
kubectl describe -n hyperpod-observability pod pod-name
```

Para obtener más contexto, ejecute los dos comandos siguientes para describir las implementaciones y los daemonsets de estos pods.

```
kubectl describe -n hyperpod-observability deployment deployment-name
```

```
kubectl describe -n hyperpod-observability daemonset daemonset-name
```

## Solución de problemas de los pods que están bloqueados con el estado pendiente
<a name="pods-stuck-in-pending"></a>

Si ve que hay pods bloqueados con el estado `pending`, asegúrese de que el nodo sea suficientemente grande para que quepa en todos los pods. Para comprobarlo, realice los siguientes pasos.

1. Abra la consola Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Elija su clúster.

1. Elija la pestaña **Computación** del clúster.

1. Elija el nodo con el tipo de instancia más pequeño.

1. En la sección de asignación de capacidad, busque los pods disponibles.

1. Si no hay pods disponibles, necesitará un tipo de instancia más grande.

Si tiene problemas urgentes, póngase en contacto con AWS Support.

## Solución de problemas de observabilidad en grupos de instancias restringidos
<a name="troubleshooting-rig-observability"></a>

Usa la siguiente guía para resolver problemas específicos de los clústeres con grupos de instancias restringidos.

### Los módulos de observabilidad no se inician en los nodos restringidos
<a name="troubleshooting-rig-pods-not-starting"></a>

Si los módulos de observabilidad no se inician en los nodos restringidos, compruebe el estado y los eventos del módulo:

```
kubectl get pods -n hyperpod-observability -o wide
kubectl describe pod pod-name -n hyperpod-observability
```

Entre las causas comunes, se incluyen las siguientes:
+ **Fallos de extracción de imágenes:** los eventos del módulo pueden mostrar errores de extracción de imágenes si las imágenes del contenedor de observabilidad aún no están incluidas en la lista de permitidos en los nodos restringidos. Asegúrese de que está ejecutando la última versión del complemento de observabilidad. Si el problema persiste después de la actualización, ponte en contacto con Soporte.
+ **Tolerancias a la contaminación:** compruebe que las especificaciones del módulo incluyan la tolerancia requerida para los nodos restringidos. El complemento, a partir de la versión, añade `v1.0.5-eksbuild.1` automáticamente esta tolerancia cuando se habilita la compatibilidad con RIG. Si está utilizando una versión anterior, actualice a la última versión.

### Visualización de los registros de los pods en los nodos restringidos
<a name="troubleshooting-rig-viewing-logs"></a>

El `kubectl logs` comando no funciona para los pods que se ejecutan en nodos restringidos. Esta es una limitación esperada, ya que la ruta de comunicación necesaria para la transmisión de registros no está disponible en los nodos restringidos.

Para ver los registros de los nodos restringidos, utilice el panel **Cluster Logs** de Amazon Managed Grafana, que consulta CloudWatch los registros directamente. Puede filtrar por ID de instancia, flujo de registro, nivel de registro y búsqueda de texto libre para encontrar las entradas de registro relevantes.

### Fallos de resolución de DNS en clústeres con nodos estándar y restringidos
<a name="troubleshooting-rig-dns-resolution"></a>

En los clústeres híbridos (clústeres con grupos de instancias estándar y restringidos), los pods de los nodos estándar pueden experimentar tiempos de espera de resolución de DNS al intentar llegar a puntos de enlace de AWS servicio, como Amazon Managed Service for Prometheus o. CloudWatch

**Causa:** el `kube-dns` servicio tiene puntos de conexión tanto de pods de CoreDNS estándar como de pods de CoreDNS de RIG. Los pods de nodos estándar no pueden llegar a los puntos finales de RIG CoredNS debido al aislamiento de la red. Cuando se `kube-proxy` equilibra la carga de una solicitud de DNS desde un pod de nodo estándar a un punto final de RIG CoreDNS, se agota el tiempo de espera de la solicitud.

**Solución: `internalTrafficPolicy: Local` configúrelo** en el `kube-dns` servicio de modo que los pods solo lleguen a CoredNS en su nodo local:

```
kubectl patch svc kube-dns -n kube-system -p '{"spec":{"internalTrafficPolicy":"Local"}}'
```

Tras aplicar este parche, reinicie los módulos de observabilidad afectados:

```
kubectl delete pods -n hyperpod-observability -l app.kubernetes.io/name=hyperpod-node-collector
```

### Las métricas de los nodos restringidos no llegan a Amazon Managed Service para Prometheus
<a name="troubleshooting-rig-metrics-not-reaching-amp"></a>

Si las métricas de los nodos restringidos no aparecen en tu espacio de trabajo de Amazon Managed Service for Prometheus:

1. **Compruebe los permisos de la función de ejecución.** Asegúrese de que el rol de ejecución del grupo de instancias restringido tenga `aps:RemoteWrite` permiso para su espacio de trabajo de Prometheus. Para obtener más información, consulte [Requisitos previos adicionales para los grupos de instancias restringidos](hyperpod-observability-addon-setup.md#hyperpod-observability-addon-rig-prerequisites).

1. **Compruebe el estado del pod del recopilador de nodos.** Ejecute el siguiente comando y compruebe que los pods del recopilador de nodos se estén ejecutando en nodos restringidos:

   ```
   kubectl get pods -n hyperpod-observability | grep node-collector
   ```

1. **Compruebe las implementaciones del recopilador central.** En los clústeres con nodos restringidos, el complemento implementa un recopilador central por límite de red. Compruebe que existe un recopilador central para cada límite:

   ```
   kubectl get deployments -n hyperpod-observability | grep central-collector
   ```

1. **Compruebe si hay errores en los eventos del pod.** `kubectl describe`Utilízalo en los módulos recopiladores para buscar eventos de error:

   ```
   kubectl describe pod collector-pod-name -n hyperpod-observability
   ```

Si el problema persiste después de verificar lo anterior, ponte en contacto con nosotros Soporte.

### La verificación de identidad del pod no se aplica a los nodos de grupos de instancias restringidos
<a name="troubleshooting-rig-pod-identity"></a>

Los pasos [Verificación de la asociación de Pod Identity](#verify-pod-identity-association) de solución de problemas se aplican solo a los nodos estándar. En los nodos restringidos, el complemento utiliza la función de ejecución del grupo de instancias del clúster para la AWS autenticación en lugar de Amazon EKS Pod Identity. Si faltan métricas en los nodos restringidos, verifica los permisos de la función de ejecución en lugar de la asociación de identidad del pod.

### Fluent Bit no se ejecuta en nodos restringidos
<a name="troubleshooting-rig-fluent-bit"></a>

Este es el comportamiento esperado. Fluent Bit no se implementa intencionalmente en nodos restringidos. Los registros de los nodos restringidos se publican a CloudWatch través de la SageMaker HyperPod plataforma independientemente del complemento de observabilidad. Utilice el panel de **registros de clústeres** de Amazon Managed Grafana para ver estos registros.

# Observabilidad con Amazon CloudWatch
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci"></a>

Utilice [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) para recopilar, agregar y resumir las métricas y los registros de las aplicaciones y microservicios en contenedores del clúster de EKS asociado a un clúster. HyperPod 

Amazon CloudWatch Insights recopila métricas de los recursos informáticos, como la CPU, la memoria, el disco y la red. Información de contenedores también proporciona información de diagnóstico, como, por ejemplo, errores de reinicio de contenedores, para ayudarlo a aislar problemas y solucionarlos rápidamente. También puede configurar CloudWatch alarmas en las métricas que recopila Container Insights.

Para obtener una lista completa de las métricas, consulte [Métricas de Información de contenedores de Kubernetes y de Amazon EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html) en la *Guía del usuario de Amazon EKS*.

## Instale CloudWatch Container Insights
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-setup"></a>

Los usuarios administradores de clústeres deben configurar CloudWatch Container Insights siguiendo las instrucciones que se indican en [Instalar el CloudWatch agente mediante el complemento Amazon CloudWatch Observability EKS o el diagrama de Helm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html) de la *Guía del CloudWatch usuario*. Para obtener más información sobre el complemento Amazon EKS, consulte también [Instalar el complemento Amazon CloudWatch Observability EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html) en la *Guía del usuario de Amazon EKS*.

Una vez finalizada la instalación, compruebe que el complemento CloudWatch Observability esté visible en la pestaña del complemento del clúster EKS. Es posible que pasen unos minutos hasta que se cargue el panel.

**nota**  
SageMaker HyperPod requiere la versión CloudWatch Insight v2.0.1-eksbuild.1 o posterior.

![\[CloudWatch Observability service card showing status, version, and IAM role information.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod-eks-CIaddon.png)


# Acceda CloudWatch al panel de información sobre contenedores
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-access-dashboard"></a>

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Elija **Información** y, a continuación, **Información de contenedores**.

1. Seleccione el clúster EKS configurado con el HyperPod clúster que está utilizando.

1. Vea las métricas Pod/Cluster de nivel.

![\[Performance monitoring dashboard for EKS clúster showing node status, resource utilization, and pod metrics.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod-eks-CIdashboard.png)


## Acceda a los registros de información sobre CloudWatch contenedores
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-access-log"></a>

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Elija **Logs** (Registros) y, a continuación, elija **Log groups** (Grupo de registro).

Cuando tenga los HyperPod clústeres integrados con Amazon CloudWatch Container Insights, podrá acceder a los grupos de registros correspondientes en el siguiente formato:`/aws/containerinsights /<eks-cluster-name>/*`. En este grupo de registros, puede buscar y explorar varios tipos de registros, como, por ejemplo, los registros de rendimiento, los registros de host, los registros de aplicaciones y los registros del plano de datos.

# Aprovisionamiento continuo para mejorar las operaciones del clúster en Amazon EKS
<a name="sagemaker-hyperpod-scaling-eks"></a>

 SageMaker HyperPod Los clústeres de Amazon creados con la orquestación de Amazon EKS ahora admiten el aprovisionamiento continuo, una nueva capacidad que permite una mayor flexibilidad y eficiencia al ejecutar cargas de trabajo a gran escala AI/ML . El aprovisionamiento continuo le permite empezar a entrenar rápidamente, escalar sin problemas, realizar tareas de mantenimiento sin interrumpir las operaciones y obtener una visión detallada de las operaciones del clúster. 

**nota**  
El aprovisionamiento continuo está disponible como configuración opcional para los HyperPod clústeres creados con la orquestación de EKS. Los clústeres creados con la orquestación de Slurm utilizan un modelo de escalado diferente.

## Funcionamiento
<a name="sagemaker-hyperpod-scaling-eks-how"></a>

El sistema de aprovisionamiento continuo presenta una arquitectura de estado deseado que reemplaza el modelo tradicional basado en solicitudes. Esta nueva arquitectura admite operaciones paralelas y sin bloqueo en diferentes niveles de recursos sin afectar a la estabilidad y el rendimiento del sistema. El sistema de aprovisionamiento continuo:
+ **Acepta la solicitud**: registra el recuento de instancias de destino para cada grupo de instancias.
+ **Inicia el aprovisionamiento**: comienza a lanzar instancias para cumplir con el recuento objetivo.

  **Hace un seguimiento del progreso**: supervisa cada intento de lanzamiento de una instancia y registra el estado.
+ **Gestiona los errores**: reintenta automáticamente los lanzamientos fallidos.

El aprovisionamiento continuo está deshabilitado de forma predeterminada. Para utilizar esta característica, debe configurar `--node-provisioning-mode` en `Continuous`.

Con el aprovisionamiento continuo activado, puede iniciar varias operaciones de escalado simultáneamente sin esperar a que se completen las operaciones anteriores. Esto le permite escalar diferentes grupos de instancias en el mismo clúster de forma simultánea y enviar varias solicitudes de escalado al mismo grupo de instancias. 

El aprovisionamiento continuo también le permite acceder a una supervisión detallada de los eventos [DescribeClusterEvent](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterEvent.html)y a una [ListClusterEvent](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterEvents.html)visibilidad operativa, así como a una visibilidad operativa. 

## Medición de uso
<a name="sagemaker-hyperpod-scaling-eks-metering"></a>

HyperPod Los clústeres con aprovisionamiento continuo utilizan la medición a nivel de instancia para proporcionar una facturación precisa que refleje el uso real de los recursos. Este enfoque de medición se diferencia de la facturación tradicional de clústeres, ya que hace un seguimiento de cada instancia de forma independiente.

**Facturación por instancia**

Con el aprovisionamiento continuo, la facturación comienza y termina en cada instancia en lugar de esperar a que cambie el estado del clúster. A continuación se enumeran los beneficios de este enfoque:
+ **Precisión de la facturación**: la facturación comienza cuando se inicia la ejecución del script de ciclo de vida. Si el script de ciclo de vida falla, se volverá a intentar aprovisionar la instancia y se le cobrará por el tiempo de ejecución del script de ciclo de vida.
+ **Medición independiente**: el ciclo de vida de facturación de cada instancia se administra por separado, lo que evita errores de facturación en cascada.
+ **Actualizaciones de facturación en tiempo real**: la facturación comienza cuando una instancia empieza a ejecutar su script de ciclo de vida y se detiene cuando la instancia entra en un estado de finalización.

**Ciclo de vida de facturación**

Cada instancia del HyperPod clúster sigue este ciclo de vida de facturación:
+ **Inicio de la facturación**: cuando la instancia se lanza correctamente y comienza a ejecutar su script de configuración del ciclo de vida.
+ **La facturación continúa**: durante toda la vida operativa de la instancia.
+ **La facturación se detiene**: cuando la instancia entra en un estado de finalización, independientemente del motivo de la finalización.

**nota**  
La facturación no se inicia en el caso de las instancias que no se consiguen lanzar. Si el lanzamiento de una instancia falla debido a una falta de capacidad o por otros problemas, no se le cobrará por ese intento fallido. La facturación se calcula por instancia y los costos se agregan y anotan en el Nombre de recurso de Amazon (ARN) de su clúster. 

## Creación de un clúster con el aprovisionamiento continuo activado
<a name="sagemaker-hyperpod-scaling-eks-create"></a>

**nota**  
Debe tener un clúster de Amazon EKS existente configurado con una red de VPC y tener instalado el gráfico de Helm necesario. Además, debe preparar un script de configuración del ciclo de vida y cargarlo en un bucket de Amazon S3 al que pueda acceder su rol de ejecución. Para obtener más información, consulte [Administración de SageMaker HyperPod clústeres orquestados por Amazon EKS](sagemaker-hyperpod-eks-operate.md).

La siguiente AWS CLI operación crea un HyperPod clúster con un grupo de instancias y el aprovisionamiento continuo activados.

```
aws sagemaker create-cluster \ 
--cluster-name $HP_CLUSTER_NAME \
--orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
--vpc-config '{
   "SecurityGroupIds": ["'$SECURITY_GROUP'"],
   "Subnets": ["'$SUBNET'"]
}' \
--instance-groups '{
   "InstanceGroupName": "ig-1",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "s3://'$BUCKET_NAME'",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "'$EXECUTION_ROLE'",
   "ThreadsPerCore": 1,
   "TrainingPlanArn": ""
}' \
--node-provisioning-mode Continuous


// Expected Output:
{
    "ClusterArn": "arn:aws:sagemaker:us-west-2:<account-id>:cluster/<cluster-id>"
}
```

Una vez que hayas creado el clúster, puedes usar [ListClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterNodes.html)o [DescribeClusterNode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterNode.html)para obtener más información sobre los nodos del clúster. 

Al llamar a estas operaciones, se devolverá un [ClusterInstanceStatusDetails](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceStatusDetails.html)objeto con uno de los siguientes valores: 
+  **Running**: el nodo está en buen estado y registrado en el orquestador de clústeres (EKS). 
+  **Failure**: se ha producido un error en el aprovisionamiento del nodo, pero el sistema volverá a intentarlo automáticamente con una nueva instancia de EC2. 
+  **Pending**: el nodo se está aprovisionando o reiniciando. 
+  **ShuttingDown**: La terminación del nodo está en curso. El nodo o bien pasa al estado Failure si se produce algún problema con la terminación o bien se elimina correctamente del clúster. 
+  **SystemUpdating**: El nodo está siendo parcheado por la AMI, ya sea de forma manual o como parte de la aplicación de parches a cronjobs. 
+  **DeepHealthCheckInProgress**: Se están realizando [controles de estado exhaustivos (DHCs)](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md). Esto puede tardar entre unos minutos y varias horas, según la naturaleza de las pruebas. Los nodos malos se reemplazan y los nodos en buen estado pasan a estar en ejecución. 
+  **NotFound**: Se utiliza como [BatchAddClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchAddClusterNodes.html)respuesta para indicar que se ha eliminado un nodo durante una reproducción idempotente. 

## Requisitos mínimos de capacidad () MinCount
<a name="sagemaker-hyperpod-scaling-eks-mincount"></a>

La MinCount función te permite especificar la cantidad mínima de instancias que se deben aprovisionar correctamente antes de que un grupo de instancias pase al `InService` estado. Esta función proporciona un mejor control sobre las operaciones de escalado y ayuda a evitar situaciones en las que los grupos de instancias parcialmente aprovisionados no se puedan usar de manera eficaz para entrenar cargas de trabajo.

**importante**  
MinCount no es una garantía permanente de capacidad mínima. Solo garantiza que el número mínimo de instancias especificado esté disponible cuando el grupo de instancias se forme por primera vez`InService`. Durante las operaciones normales, como el reemplazo de instancias en mal estado o las actividades de mantenimiento, MinCount pueden producirse breves interrupciones.

### ¿Cómo funciona MinCount
<a name="sagemaker-hyperpod-scaling-eks-mincount-how"></a>

Cuando creas o actualizas un grupo de instancias con la MinCount opción habilitada, se produce el siguiente comportamiento:
+ **Grupos de instancias nuevos**: el grupo de instancias permanece en `Creating` estado hasta que al menos MinCount las instancias se aprovisionen correctamente y estén listas. Una vez que se alcanza este umbral, el grupo de instancias pasa a`InService`.
+ **Grupos de instancias existentes**: al actualizar MinCount un grupo de instancias existente, el estado cambia a `Updating` hasta que se cumpla el nuevo MinCount requisito.
+ **Escalado continuo**: si TargetCount es superior a MinCount, el sistema de escalado continuo seguirá intentando lanzar instancias adicionales hasta que TargetCount se alcance.
+ **Tiempo de espera y reversión**: si MinCount no se puede cumplir en un plazo de 3 horas, el sistema restablece automáticamente el grupo de instancias a su último estado válido conocido. Para obtener más información sobre el comportamiento de reversión, consulta Comportamiento de reversión [automática](#sagemaker-hyperpod-scaling-eks-mincount-rollback).

### Estado del grupo de instancias durante las operaciones MinCount
<a name="sagemaker-hyperpod-scaling-eks-mincount-status"></a>

Los grupos de instancias MinCount configurados muestran el siguiente comportamiento de estado:

Creación  
Para grupos de instancias nuevos cuando CurrentCount < MinCount. El grupo de instancias permanece en este estado hasta que se cumpla el requisito de capacidad mínima.

Actualización  
Para los grupos de instancias existentes, cuando MinCount se modifica y CurrentCount < MinCount. El grupo de instancias permanece en este estado hasta que se cumpla el nuevo requisito de capacidad mínima.

InService  
Cuando MinCount ≤ CurrentCount ≤ TargetCount. El grupo de instancias está listo para usarse y todas las operaciones de mutación están desbloqueadas.

Durante nuestro `Creating` `Updating` estado, se aplican las siguientes restricciones:
+ Operaciones de mutación como `BatchAddClusterNodes``BatchDeleteClusterNodes`, o `UpdateClusterSoftware` están bloqueadas
+ Aún puede modificar TargetCount los valores MinCount y corregir los errores de configuración
+ Siempre se permite eliminar clústeres y grupos de instancias

### Comportamiento de reversión automática
<a name="sagemaker-hyperpod-scaling-eks-mincount-rollback"></a>

Si un grupo de instancias no puede llegar al suyo MinCount en un plazo de 3 horas, el sistema inicia automáticamente una reversión para evitar esperas indefinidas:
+ **Nuevos grupos de instancias**: MinCount y TargetCount se restablecen a (0, 0)
+ **Grupos de instancias existentes**: MinCount y TargetCount se restauran a sus valores del último `InService` estado
+ **Selección de instancias para su terminación**: si las instancias deben cancelarse durante la reversión, el sistema selecciona primero las instancias en mal estado y, a continuación, las que se aprovisionaron más recientemente.
+ **Transición de estado**: el grupo de instancias pasa inmediatamente al `InService` estado después de iniciar la reversión, lo que permite que el sistema de escalado continuo administre la capacidad de acuerdo con la configuración de la reversión

El tiempo de espera de 3 horas se restablece cada vez que se actualiza. MinCount Por ejemplo, si actualizas MinCount varias veces, el período de espera comienza desde la actualización más reciente.

### MinCount eventos
<a name="sagemaker-hyperpod-scaling-eks-mincount-events"></a>

El sistema emite eventos específicos para ayudarle a realizar un seguimiento de MinCount las operaciones:
+ **Capacidad mínima alcanzada**: se emite cuando un grupo de instancias alcanza correctamente su capacidad MinCount y pasa a `InService`
+ **Se inicia la reversión**: se emite cuando vence el tiempo de espera de 3 horas y comienza la reversión automática

Puede supervisar estos eventos mediante [ListClusterEvents](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterEvents.html)el seguimiento del progreso de sus operaciones. MinCount 

### Uso de la API
<a name="sagemaker-hyperpod-scaling-eks-mincount-api"></a>

MinCount se especifica mediante el `MinInstanceCount` parámetro en las configuraciones de grupos de instancias:

```
aws sagemaker create-cluster \
--cluster-name $HP_CLUSTER_NAME \
--orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
--vpc-config '{
   "SecurityGroupIds": ["'$SECURITY_GROUP'"],
   "Subnets": ["'$SUBNET'"]
}' \
--instance-groups '{
   "InstanceGroupName": "worker-group",
   "InstanceType": "ml.p4d.24xlarge",
   "InstanceCount": 64,
   "MinInstanceCount": 50,
   "LifeCycleConfig": {
      "SourceS3Uri": "s3://'$BUCKET_NAME'",
      "OnCreate": "on_create.sh"
   },
   "ExecutionRole": "'$EXECUTION_ROLE'"
}' \
--node-provisioning-mode Continuous
```

Consideraciones clave de MinCount uso:
+ `MinInstanceCount`debe estar entre 0 y el valor `InstanceCount` (incluido) del grupo de instancias especificado en [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)nuestra [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)solicitud
+ Si `MinInstanceCount` se establece en 0 (predeterminado), se conserva el comportamiento de escalado continuo estándar
+ Si se establece `MinInstanceCount` igual a, se `InstanceCount` proporciona un comportamiento all-or-nothing de escalado
+ MinCount solo está disponible para clústeres con el `NodeProvisioningMode` valor establecido en `Continuous`

## Grupos de instancias flexibles
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig"></a>

Los grupos de instancias flexibles te permiten especificar varios tipos de instancias dentro de un único grupo de instancias. Esto simplifica la administración de clústeres al reducir la cantidad de grupos de instancias que necesitas crear y administrar, especialmente para las cargas de trabajo de inferencia que utilizan el escalado automático.

Con grupos de instancias flexibles, puedes: HyperPod
+ Intenta aprovisionar instancias con el primer tipo de instancia de la lista
+ Recurre a los tipos de instancias siguientes si la capacidad no está disponible
+ Termina primero las instancias del tipo de instancia con la prioridad más baja durante la reducción

**nota**  
Los grupos de instancias flexibles solo están disponibles para los clústeres con el valor establecido en. `NodeProvisioningMode` `Continuous` `InstanceRequirements`Las propiedades `InstanceType` y las propiedades se excluyen mutuamente: puedes especificar una u otra, pero no ambas.

### Crea un clúster con un grupo de instancias flexible
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig-create"></a>

`InstanceRequirements`Utilízalo en lugar de `InstanceType` para crear un grupo de instancias flexible. El orden de los tipos de instancias de la lista determina la prioridad del aprovisionamiento.

```
aws sagemaker create-cluster \
--cluster-name $HP_CLUSTER_NAME \
--orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
--vpc-config '{
   "SecurityGroupIds": ["'$SECURITY_GROUP'"],
   "Subnets": ["'$SUBNET_AZ1'", "'$SUBNET_AZ2'"]
}' \
--instance-groups '[{
   "InstanceGroupName": "flexible-ig",
   "InstanceRequirements": {
      "InstanceTypes": ["ml.p5.48xlarge", "ml.p4d.24xlarge", "ml.g6.48xlarge"]
   },
   "InstanceCount": 10,
   "LifeCycleConfig": {
      "SourceS3Uri": "s3://'$BUCKET_NAME'",
      "OnCreate": "on_create.sh"
   },
   "ExecutionRole": "'$EXECUTION_ROLE'"
}]' \
--node-provisioning-mode Continuous
```

### Escalado específico con BatchAddClusterNodes
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig-targeted"></a>

Si usas grupos de instancias flexibles, puedes usarlos [BatchAddClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchAddClusterNodes.html)para agregar nodos con tipos de instancias y zonas de disponibilidad específicos. Esto resulta especialmente útil cuando el escalado automático de Karpenter determina el tipo de instancia y la zona de disponibilidad óptimos para tu carga de trabajo.

```
aws sagemaker batch-add-cluster-nodes \
--cluster-name $HP_CLUSTER_NAME \
--nodes-to-add '[
   {
      "InstanceGroupName": "flexible-ig",
      "IncrementTargetCountBy": 1,
      "InstanceTypes": ["ml.p5.48xlarge"],
      "AvailabilityZones": ["us-west-2a"]
   }
]'
```

### Consulta los detalles de los grupos de instancias flexibles
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig-describe"></a>

[DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)Utilízalo para ver los tipos de instancias y el desglose por tipo de tu grupo de instancias flexible. La respuesta incluye:
+ `InstanceRequirements`— Los tipos de instancias actuales y deseados para el grupo de instancias
+ `InstanceTypeDetails`— Un per-instance-type desglose que muestra el recuento y la configuración de cada tipo de instancia del grupo

### Uso de grupos de instancias flexibles con el escalado automático de Karpenter
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig-autoscaling"></a>

Los grupos de instancias flexibles se integran con el escalado automático gestionado HyperPod de Karpenter. Para obtener más información sobre la configuración de Karpenter, consulte. [Escalado automático en EKS SageMaker HyperPod](sagemaker-hyperpod-eks-autoscaling.md) Cuando haces referencia a un grupo de instancias flexible en una `HyperPodNodeClass` configuración, Karpenter automáticamente:
+ Detecta los tipos de instancias compatibles del grupo de instancias flexible
+ Selecciona el tipo de instancia y la zona de disponibilidad óptimos en función de los requisitos y los precios del pod
+ Escala el grupo de instancias flexible mediante `BatchAddClusterNodes` llamadas segmentadas según el tipo de instancia y la zona de disponibilidad seleccionados

**nota**  
Cuando Karpenter gestiona el escalado, utiliza su propia lógica de selección en función de los requisitos y los precios de los módulos para determinar qué tipo de instancia aprovisionar. Esto difiere de la prioridad de orden de lista que utiliza el aprovisionamiento nativo (como `CreateCluster` y`UpdateCluster`), en la que siempre se intenta usar primero el primer tipo de instancia de la lista. HyperPod

Esto elimina la necesidad de crear grupos de instancias independientes para cada tipo de instancia y configurar Karpenter manualmente para que haga referencia a varios grupos.

# Escalado automático en EKS SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-autoscaling"></a>

Amazon SageMaker HyperPod proporciona una solución gestionada de escalado automático de nodos basada en Karpenter para clústeres creados con la orquestación de EKS. [Karpenter](https://karpenter.sh/) es un administrador del ciclo de vida de los nodos de Kubernetes de código abierto creado por Kubernetes que optimiza el escalado de los clústeres y la rentabilidad. AWS A diferencia de las implementaciones autogestionadas de Karpenter, la implementación gestionada elimina SageMaker HyperPod la sobrecarga operativa que supone la instalación, la configuración y el mantenimiento de los controladores de Karpenter, a la vez que proporciona resiliencia y tolerancia a fallos integradas. Esta solución gestionada de escalado automático se basa en las capacidades de [aprovisionamiento continuo HyperPod](sagemaker-hyperpod-scaling-eks.md) de las que dispone y le permite escalar de forma eficiente los recursos de cómputo para las cargas de trabajo de formación e inferencia mediante la gestión y la recuperación automáticas de los fallos. 

Solo paga por lo que utiliza. Usted es responsable de pagar todas las instancias informáticas que se aprovisionan automáticamente mediante el escalado automático de acuerdo con los precios estándar. SageMaker HyperPod Para obtener información detallada sobre los precios, consulta [Amazon SageMaker AI](https://aws.amazon.com/sagemaker/ai/pricing/).

Al habilitar el escalado automático basado en Karpenter con HyperPod, tiene acceso a:
+ **Ciclo de vida gestionado por el servicio**: HyperPod gestiona la instalación, las actualizaciones y el mantenimiento de Karpenter, lo que elimina la sobrecarga operativa.
+ **Aprovisionamiento justo a tiempo**: Karpenter observará los pods pendientes y aprovisionará la computación necesaria para las cargas de trabajo del grupo bajo demanda.
+ **Escala a cero**: reduzca verticalmente a cero nodos sin mantener una infraestructura de controladores dedicada.
+ **Selección de nodos en función de la carga de trabajo**: Karpenter elige los tipos de instancias óptimos en función de los requisitos de los pods, las zonas de disponibilidad y los precios para minimizar los costos.
+ **Consolidación automática de nodos**: Karpenter evalúa periódicamente el clúster en busca de oportunidades de optimización y cambia las cargas de trabajo para eliminar los nodos infrautilizados.
+ **Resiliencia integrada**: aprovecha los mecanismos integrados HyperPod de tolerancia a fallos y recuperación de nodos.

En los siguientes temas se explica cómo habilitar el HyperPod escalado automático con Karpenter.

**Topics**
+ [Requisitos previos](#sagemaker-hyperpod-eks-autoscaling-prereqs)
+ [Cree un rol de IAM para el HyperPod escalado automático con Karpenter](sagemaker-hyperpod-eks-autoscaling-iam.md)
+ [Cree y configure un HyperPod clúster con el escalado automático de Karpenter](sagemaker-hyperpod-eks-autoscaling-cluster.md)
+ [Cree un NodeClass](sagemaker-hyperpod-eks-autoscaling-nodeclass.md)
+ [Cree un NodePool](sagemaker-hyperpod-eks-autoscaling-nodepool.md)
+ [Implementación de una carga de trabajo](sagemaker-hyperpod-eks-autoscaling-workload.md)

## Requisitos previos
<a name="sagemaker-hyperpod-eks-autoscaling-prereqs"></a>
+ El aprovisionamiento continuo está habilitado en su clúster. HyperPod Habilite el aprovisionamiento continuo configurándolo `--node-provisioning-mode` `Continuous` al crear el clúster SageMaker HyperPod . Para obtener más información, consulte [Aprovisionamiento continuo para mejorar las operaciones del clúster en Amazon EKS](sagemaker-hyperpod-scaling-eks.md).
+ Se ha instalado la versión 1.0.742.0\$11.0.241.0 o superior del Health Monitoring Agent. Necesario para las operaciones y la supervisión del HyperPod clúster. Debe configurarse antes de activar el escalado automático de Karpenter para garantizar la correcta gestión del ciclo de vida de los nodos y la elaboración de informes sobre el estado del clúster. Para obtener más información, consulte [Sistema de Monitoreo de Salud](sagemaker-hyperpod-eks-resiliency-health-monitoring-agent.md).
+ Solo si su clúster de Amazon EKS ejecuta Karpenter, tanto el Karpenter `NodePool` como las versiones de `NodeClaim` deben ser v1.
+ `NodeRecovery` configurado en automático. Para obtener más información, consulte [Recuperación automática de nodos](sagemaker-hyperpod-eks-resiliency-node-recovery.md).

# Cree un rol de IAM para el HyperPod escalado automático con Karpenter
<a name="sagemaker-hyperpod-eks-autoscaling-iam"></a>

En los siguientes pasos, crearás un rol de IAM que te permitirá gestionar los nodos de Kubernetes de tu clúster SageMaker HyperPod mediante el escalado automático basado en Karpenter. Esta función proporciona los permisos necesarios para añadir y eliminar nodos del clúster automáticamente en función HyperPod de la demanda de carga de trabajo.

**Apertura de la consola de IAM**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en console.aws.amazon.com.

1. Seleccione **Roles** en el panel de navegación.

1. Elija **Create role** (Crear rol).

**Configuración de la política de confianza**

1. En **Tipo de entidad de confianza**, elija **Política de confianza personalizada**.

1. Elija **Política de confianza personalizada** y sustituya la política predeterminada por lo siguiente:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "hyperpod.sagemaker.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Elija **Siguiente**.

**Creación del rol y asociación a la política de permisos**

Como SageMaker HyperPod requiere permisos específicos que no están disponibles en las políticas AWS administradas, debes crear una política personalizada.

1. Elija **Crear política**. Se abrirá una nueva pestaña del navegador.

1. Seleccione la pestaña **JSON**.

1. Reemplace la política predeterminada con lo siguiente:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:BatchAddClusterNodes",
                   "sagemaker:BatchDeleteClusterNodes"
               ],
               "Resource": "arn:aws:sagemaker:*:*:cluster/*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "${aws:PrincipalAccount}"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:CreateGrant",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:*:*:key/*",
               "Condition": {
                   "StringLike": {
                       "kms:ViaService": "sagemaker.*.amazonaws.com"
                   },
                   "Bool": {
                       "kms:GrantIsForAWSResource": "true"
                   },
                   "ForAllValues:StringEquals": {
                       "kms:GrantOperations": [
                           "CreateGrant",
                           "Decrypt",
                           "DescribeKey",
                           "GenerateDataKeyWithoutPlaintext",
                           "ReEncryptTo",
                           "ReEncryptFrom",
                           "RetireGrant"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Elija **Siguiente**.

1. Para **Nombre de la política**, introduzca **SageMakerHyperPodKarpenterPolicy**.

1. (Opcional) En **Descripción**, escriba una descripción para la política.

1. Elija **Crear política**.

1. Vuelva a la pestaña de creación de roles y actualice la lista de políticas.

1. Busca y selecciona la **SageMakerHyperPodKarpenterPolicy**que acabas de crear.

1. Elija **Siguiente**.

**Asignación de un nombre al rol y creación del rol**

1. En **Nombre del rol**, ingrese `SageMakerHyperPodKarpenterRole`.

1. (Opcional) **En Descripción**, ingrese una descripción para el rol.

1. En la sección **Paso 1: selección de entidades de confianza**, compruebe que la política de confianza muestre las entidades principales de servicio correctas.

1. En la sección **Paso 2: adición de permisos**, compruebe que se haya asociado `SageMakerHyperPodKarpenterPolicy`.

1. Elija **Crear rol**.

**Registro del ARN del rol**

Después de crear el rol correctamente:

1. En la lista **Roles**, elija el nombre del rol `SageMakerHyperPodKarpenterRole`.

1. Copie el **ARN del rol** que se muestra en la sección **Resumen**. Necesitará este ARN al crear el clúster HyperPod.

El ARN tiene el siguiente formato: `arn:aws:iam::ACCOUNT-ID:role/SageMakerHyperPodKarpenterRole`.

# Cree y configure un HyperPod clúster con el escalado automático de Karpenter
<a name="sagemaker-hyperpod-eks-autoscaling-cluster"></a>

En los siguientes pasos, creará un SageMaker HyperPod clúster con el aprovisionamiento continuo activado y lo configurará para que utilice el escalado automático basado en Karpenter.

**Crea un clúster HyperPod**

1. Cargue la configuración de su entorno y extraiga valores de las CloudFormation pilas.

   ```
   source .env
   SUBNET1=$(cfn-output $VPC_STACK_NAME PrivateSubnet1)
   SUBNET2=$(cfn-output $VPC_STACK_NAME PrivateSubnet2)
   SUBNET3=$(cfn-output $VPC_STACK_NAME PrivateSubnet3)
   SECURITY_GROUP=$(cfn-output $VPC_STACK_NAME NoIngressSecurityGroup)
   EKS_CLUSTER_ARN=$(cfn-output $EKS_STACK_NAME ClusterArn)
   EXECUTION_ROLE=$(cfn-output $SAGEMAKER_STACK_NAME ExecutionRole)
   SERVICE_ROLE=$(cfn-output $SAGEMAKER_STACK_NAME ServiceRole)
   BUCKET_NAME=$(cfn-output $SAGEMAKER_STACK_NAME Bucket)
   HP_CLUSTER_NAME="hyperpod-eks-test-$(date +%s)"
   EKS_CLUSTER_NAME=$(cfn-output $EKS_STACK_NAME ClusterName)
   HP_CLUSTER_ROLE=$(cfn-output $SAGEMAKER_STACK_NAME ClusterRole)
   ```

1. Actualice el script de inicialización del nodo en el bucket de Amazon S3.

   ```
   aws s3 cp lifecyclescripts/on_create_noop.sh s3://$BUCKET_NAME
   ```

1. Cree un archivo de configuración del clúster con sus variables de entorno.

   ```
   cat > cluster_config.json << EOF
   {
       "ClusterName": "$HP_CLUSTER_NAME",
       "InstanceGroups": [
           {
               "InstanceCount": 1,
               "InstanceGroupName": "system",
               "InstanceType": "ml.c5.xlarge",
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://$BUCKET_NAME",
                   "OnCreate": "on_create_noop.sh"
               },
               "ExecutionRole": "$EXECUTION_ROLE"
           },
           {
               "InstanceCount": 0,
               "InstanceGroupName": "auto-c5-az1",
               "InstanceType": "ml.c5.xlarge",
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://$BUCKET_NAME",
                   "OnCreate": "on_create_noop.sh"
               },
               "ExecutionRole": "$EXECUTION_ROLE"
           },
           {
               "InstanceCount": 0,
               "InstanceGroupName": "auto-c5-4xaz2",
               "InstanceType": "ml.c5.4xlarge",
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://$BUCKET_NAME",
                   "OnCreate": "on_create_noop.sh"
               },
               "ExecutionRole": "$EXECUTION_ROLE",
               "OverrideVpcConfig": {
                   "SecurityGroupIds": [
                       "$SECURITY_GROUP"
                   ],
                   "Subnets": [
                       "$SUBNET2"
                   ]
               }
           },
           {
               "InstanceCount": 0,
               "InstanceGroupName": "auto-g5-az3",
               "InstanceType": "ml.g5.xlarge",
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://$BUCKET_NAME",
                   "OnCreate": "on_create_noop.sh"
               },
               "ExecutionRole": "$EXECUTION_ROLE",
               "OverrideVpcConfig": {
                   "SecurityGroupIds": [
                       "$SECURITY_GROUP"
                   ],
                   "Subnets": [
                       "$SUBNET3"
                   ]
               }
           }
       ],
       "VpcConfig": {
           "SecurityGroupIds": [
               "$SECURITY_GROUP"
           ],
           "Subnets": [
               "$SUBNET1"
           ]
       },
       "Orchestrator": {
           "Eks": {
               "ClusterArn": "$EKS_CLUSTER_ARN"
           }
       },
       "ClusterRole": "$HP_CLUSTER_ROLE",
       "AutoScaling": {
           "Mode": "Enable",
           "AutoScalerType": "Karpenter"
       },
       "NodeProvisioningMode": "Continuous"
   }
   EOF
   ```

1. Ejecute el siguiente comando para crear el HyperPod clúster.

   ```
   aws sagemaker create-cluster --cli-input-json file://./cluster_config.json
   ```

1. El proceso de creación del clúster debería tardar unos 20 minutos. Supervisa el estado del clúster hasta que se muestren InService ambos ClusterStatus y AutoScaling .Status.

1. Guarde el ARN del clúster para operaciones posteriores.

   ```
   HP_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME \
      --output text --query ClusterArn)
   ```

**Activación del escalado automático de Karpenter**

1. Ejecute el siguiente comando para habilitar el escalado automático basado en Karpenter en cualquier clúster preexistente que tenga el modo de aprovisionamiento continuo de nodos.

   ```
   aws sagemaker update-cluster \
       --cluster-name $HP_CLUSTER_NAME \
       --auto-scaling Mode=Enable,AutoScalerType=Karpenter \
       --cluster-role $HP_CLUSTER_ROLE
   ```

1. Compruebe que Karpenter se haya activado correctamente:

   ```
   aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --query 'AutoScaling'
   ```

1. Resultado previsto:

   ```
   {
       "Mode": "Enable",
       "AutoScalerType": "Karpenter",
       "Status": "InService"
   }
   ```

Espere `Status` a que se muestre `InService` antes de proceder a configurar NodeClass y NodePool.

# Cree un NodeClass
<a name="sagemaker-hyperpod-eks-autoscaling-nodeclass"></a>

**importante**  
Debe empezar con 0 nodos en su grupo de instancias y dejar que Karpenter se encargue del escalado automático. Si empieza con más de 0 nodos, Karpenter los reducirá a 0.

Una clase de nodos (`NodeClass`) define los ajustes de la infraestructura que se aplican a los grupos de nodos del clúster de Amazon EKS, incluida la configuración de la red, los ajustes de almacenamiento y el etiquetado de los recursos. A `HyperPodNodeClass` es una personalización `NodeClass` que se asigna a grupos de instancias creados previamente y define las restricciones en SageMaker HyperPod torno a las cuales se admiten los tipos de instancias y las zonas de disponibilidad para las decisiones de escalado automático de Karpenter.

**Consideraciones a tener en cuenta para crear una clase de nodo**
+ Puede especificar hasta 10 grupos de instancias en una `NodeClass`.
+ Los grupos de instancias que se utilizan `InstanceRequirements` (grupos de instancias flexibles) pueden contener varios tipos de instancias dentro de un único grupo de instancias. Esto simplifica la `NodeClass` configuración, ya que puedes hacer referencia a menos grupos de instancias para cubrir el mismo conjunto de tipos de instancias y zonas de disponibilidad. Por ejemplo, en lugar de crear 6 grupos de instancias (3 tipos de instancias × 2 AZs), puedes crear un único grupo de instancias flexible que abarque todas las combinaciones. Ten en cuenta que `InstanceType` `InstanceRequirements` son mutuamente excluyentes: debes especificar uno u otro para cada grupo de instancias.
+ Al utilizar la partición de GPU con MIG (GPU de instancias múltiples), Karpenter puede aprovisionar nodos automáticamente con grupos de instancias habilitados para MIG. Asegúrate de que tus grupos de instancias incluyan tipos de instancias compatibles con MIG (ml.p4d.24xlarge, ml.p5.48xlarge o ml.p5e/p5en.48xlarge) y configura las etiquetas MIG adecuadas durante la creación del clúster. Para obtener más información [Uso de particiones de GPU en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md) sobre cómo configurar las particiones de la GPU, consulta.
+ Si se aplican etiquetas personalizadas a los grupos de instancias, puedes verlas en el `desiredLabels` campo al consultar el `HyperpodNodeClass` estado. Esto incluye etiquetas de configuración MIG, como. `nvidia.com/mig.config` Cuando los trabajos entrantes soliciten recursos MIG, Karpenter escalará automáticamente las instancias con las etiquetas MIG correspondientes aplicadas.
+ Si decides eliminar un grupo de instancias, te recomendamos eliminarlo de tu clúster `NodeClass` antes de eliminarlo del clúster. HyperPod Si se elimina un grupo de instancias mientras se usa en una `NodeClass`, la `NodeClass` se marcará como no `Ready` para aprovisionamiento y no se usará para las operaciones de escalado posteriores hasta que se elimine el grupo de instancias de la `NodeClass`.
+ Cuando elimine grupos de instancias de una `NodeClass`, Karpenter detectará una deriva de los nodos administrados por Karpenter en los grupos de instancias e interrumpirá los nodos en función de los controles de los presupuestos de interrupciones.
+ Las subredes que utiliza el grupo de instancias deben pertenecer a la misma zona de disponibilidad. Las subredes se especifican con `OverrideVpcConfig` para el grupo de instancias o para el clúster. `VpcConfig` se usa de forma predeterminada.
+ Por el momento, solo se admite la capacidad bajo demanda. No se admiten grupos de instancias con plan de entrenamiento o capacidad reservada.
+ No se admiten grupos de instancias con `DeepHealthChecks (DHC)`. Esto se debe a que un DHC tarda entre 60 y 90 minutos en completarse y los pods tienen el estado pendiente durante ese tiempo, lo que puede provocar un sobreaprovisionamiento.

En los siguientes pasos se muestra cómo crear una `NodeClass`.

1. Cree un archivo YAML (por ejemplo, nodeclass.yaml) con la configuración de su `NodeClass`.

1. Aplique la configuración al clúster con kubectl.

1. Haga referencia a la `NodeClass` en la configuración del `NodePool`.

1. A continuación, se muestra una `NodeClass` de ejemplo donde se utilizan los tipos de instancia ml.c5.xlarge y ml.c5.4xlarge:

   ```
   apiVersion: karpenter.sagemaker.amazonaws.com/v1
   kind: HyperpodNodeClass
   metadata:
     name: sample-nc
   spec:
     instanceGroups:
       # name of InstanceGroup in HyperPod cluster. InstanceGroup needs to pre-created
       # MaxItems: 10
       - auto-c5-xaz1
       - auto-c5-4xaz2
   ```

1. Aplique la configuración:

   ```
   kubectl apply -f nodeclass.yaml
   ```

1. Supervisa el NodeClass estado para asegurarte de que la condición Listo esté establecida en True:

   ```
   kubectl get hyperpodnodeclass sample-nc -o yaml
   ```

   ```
   apiVersion: karpenter.sagemaker.amazonaws.com/v1
   kind: HyperpodNodeClass
   metadata:
     creationTimestamp: "<timestamp>"
     name: sample-nc
     uid: <resource-uid>
   spec:
     instanceGroups:
     - auto-c5-az1
     - auto-c5-4xaz2
   status:
     conditions:
     // true when all IGs in the spec are present in SageMaker cluster, false otherwise
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 3
       reason: InstanceGroupReady
       status: "True"
       type: InstanceGroupReady
     // true if subnets of IGs are discoverable, false otherwise
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 3
       reason: SubnetsReady
       status: "True"
       type: SubnetsReady
     // true when all dependent resources are Ready [InstanceGroup, Subnets]
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 3
       reason: Ready
       status: "True"
       type: Ready
     instanceGroups:
     - desiredLabels:
       - key: <custom_label_key>
         value: <custom_label_value>
       - key: nvidia.com/mig.config
         value: all-1g.5gb
       instanceTypes:
       - ml.c5.xlarge
       name: auto-c5-az1
       subnets:
       - id: <subnet-id>
         zone: <availability-zone-a>
         zoneId: <zone-id-a>
     - instanceTypes:
       - ml.c5.4xlarge
       name: auto-c5-4xaz2
       subnets:
       - id: <subnet-id>
         zone: <availability-zone-b>
         zoneId: <zone-id-b>
     # Flexible instance group with multiple instance types
     - instanceTypes:
       - ml.p5.48xlarge
       - ml.p4d.24xlarge
       - ml.g6.48xlarge
       name: inference-workers
       subnets:
       - id: <subnet-id>
         zone: <availability-zone-a>
         zoneId: <zone-id-a>
       - id: <subnet-id>
         zone: <availability-zone-b>
         zoneId: <zone-id-b>
   ```

# Cree un NodePool
<a name="sagemaker-hyperpod-eks-autoscaling-nodepool"></a>

El `NodePool` establece restricciones sobre los nodos que Karpenter puede crear y los pods que pueden ejecutarse en esos nodos. El `NodePool` se puede configurar para que haga cosas como:
+ Limitar la creación de nodos a determinadas zonas, tipos de instancias y arquitecturas de recursos de computación.
+ Definir etiquetas o taints para limitar los pod que pueden ejecutarse en los nodos que crea Karpenter.

**nota**  
HyperPod El proveedor admite un conjunto limitado de requisitos conocidos de Kubernetes y Karpenter que se explican a continuación. 

En los siguientes pasos se muestra cómo crear una `NodePool`.

1. Cree un archivo YAML llamado nodepool.yaml con la configuración de `NodePool` que desee.

1. Puede usar la siguiente configuración de muestra.

   Busque `Ready` en `Conditions` para indicar que todos los recursos dependientes funcionan correctamente.

   ```
   apiVersion: karpenter.sh/v1
   kind: NodePool
   metadata:
    name: sample-np
   spec:
    template:
      spec:
        nodeClassRef:
         group: karpenter.sagemaker.amazonaws.com
         kind: HyperpodNodeClass
         name: multiazc5
        expireAfter: Never
        requirements:
           - key: node.kubernetes.io/instance-type
             operator: Exists
   ```

1. Aplique el `NodePool` a su clúster:

   ```
   kubectl apply -f nodepool.yaml
   ```

1. Supervise el estado de `NodePool` para asegurarse de que el estado de la condición `Ready` se haya establecido en `True`:

   ```
   kubectl get nodepool sample-np -oyaml
   ```

   ```
   apiVersion: karpenter.sh/v1
   kind: NodePool
   metadata:
     name: <nodepool-name>
     uid: <resource-uid>
     ...
   spec:
     disruption:
       budgets:
       - nodes: 90%
       consolidateAfter: 0s
       consolidationPolicy: WhenEmptyOrUnderutilized
     template:
       spec:
         expireAfter: 720h
         nodeClassRef:
           group: karpenter.sagemaker.amazonaws.com
           kind: HyperpodNodeClass
           name: <nodeclass-name>
         requirements:
         - key: node.kubernetes.io/instance-type
           operator: Exists
   status:
     conditions:
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 2
       reason: ValidationSucceeded
       status: "True"
       type: ValidationSucceeded
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 2
       reason: NodeClassReady
       status: "True"
       type: NodeClassReady
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 2
       reason: Ready
       status: "True"
       type: Ready
   ```

**Etiquetas compatibles con Karpenter Provider HyperPod**

Estas son las restricciones y requisitos opcionales que puede especificar en su configuración de `NodePool`.


|  Tipo de requisito  |  Finalidad  |  Utilice valores Case/Supported   |  Recomendación  | 
| --- | --- | --- | --- | 
|  Tipos de instancias (`node.kubernetes.io/instance-type`)  |  Controla los tipos de SageMaker instancias entre los que Karpenter puede elegir  |  En lugar de restringirlo solo a ml.c5.xlarge, deja que Karpenter elija entre todos los tipos disponibles en sus grupos de instancias  |  No defina nada o utilice el operador Exists para ofrecer a Karpenter la máxima flexibilidad a la hora de elegir tipos de instancias rentables  | 
|  Zonas de disponibilidad (`topology.kubernetes.io/zone`)  |  Controla las zonas de AWS disponibilidad en las que se pueden crear los nodos  |  Nombres de zonas específicas como us-east-1c. Úselo cuando necesite que los pods se ejecuten en zonas específicas por motivos de latencia o de conformidad  | n/a | 
|  Arquitectura (`kubernetes.io/arch`)  |  Especifica la arquitectura de la CPU  |  Solo amd64 (actualmente no es compatible con ARM)  |  n/a  | 

# Implementación de una carga de trabajo
<a name="sagemaker-hyperpod-eks-autoscaling-workload"></a>

Los siguientes ejemplos demuestran cómo el HyperPod escalado automático con Karpenter aprovisiona automáticamente los nodos en respuesta a las demandas de carga de trabajo. En estos ejemplos se muestra el comportamiento de escalado básico y los patrones de distribución de múltiples zonas de disponibilidad.

**Implementación de una sola carga de trabajo**

1. La siguiente implementación de Kubernetes incluye pods que solicitan 1 CPU y 256 M de memoria por réplica o pod. En este escenario, los pods aún no se han creado.

   ```
   kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml
   ```

1. Para probar el proceso de escalado vertical, ejecute el siguiente comando. Karpenter agregará nuevos nodos al clúster.

   ```
   kubectl scale deployment inflate --replicas 10
   ```

1. Para probar el proceso de reducción vertical, ejecute el siguiente comando. Karpenter eliminará los nodos del clúster.

   ```
   kubectl scale deployment inflate --replicas 0
   ```

**Implemente una carga de trabajo en varios AZs**

1. Ejecute el siguiente comando para implementar una carga de trabajo que lance una implementación de Kubernetes, en la que los pods implementados deben distribuirse de manera uniforme entre las diferentes zonas de disponibilidad con un desfase máximo de 1.

   ```
   kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/spread-zone.yaml
   ```

1. Ejecute el siguiente comando para ajustar el número de pods:

   ```
   kubectl scale deployment zone-spread --replicas 15
   ```

   Karpenter agregará nuevos nodos al clúster con al menos un nodo en una zona de disponibilidad diferente.

Para ver más ejemplos, consulte los [ejemplos de cargas de trabajo de Karpenter en](https://github.com/aws/karpenter-provider-aws/tree/main/examples/workloads). GitHub

# Uso de la programación basada en la topología en Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-topology"></a>

La eficiencia de la transferencia de datos es un factor fundamental en las cargas de trabajo de computación de alto rendimiento (HPC) y de machine learning. Cuando se utiliza UltraServers con Amazon SageMaker HyperPod, aplica SageMaker HyperPod automáticamente etiquetas topológicas a los recursos. La programación con reconocimiento de topología ayuda a asignar los recursos para minimizar las sobrecargas de la transferencia de datos al considerar tanto la topología de la instancia (cómo se conectan los recursos dentro de una instancia) como la topología de la red (cómo se conectan las instancias entre sí). Para obtener más información sobre la topología de las instancias, consulte [Topología de instancias de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html).

La programación con reconocimiento de topología es compatible con los dos clústeres de Slurm y Amazon EKS. Para obtener información general sobre cómo funciona la topología con Slurm, consulte [Topology guide in the Slurm documentation](https://slurm.schedmd.com/topology.html).

En Amazon SageMaker HyperPod, los gastos generales de transferencia de datos suelen provenir de tres fuentes principales:
+ **GPU-to-GPU transferencia de datos**: las tecnologías modernas, como NVLink los NVLink conmutadores, permiten la transferencia de datos de alto rendimiento entre ellas GPUs sin la participación de otros recursos informáticos. Esto es extremadamente eficiente, pero suele limitarse a una sola instancia.
+ **GPU-to-CPU transferencia de datos**: los sistemas de acceso a memoria no uniforme (NUMA) tienen varios buses de sistema en una sola placa base. En una arquitectura de instancia EC2 típica, como la p5.48xlarge, hay dos buses de sistema diferentes, cada uno con una CPU y 4. GPUs Para obtener un rendimiento óptimo, los procesos que cargan o leen datos to/from GPUs deben ejecutarse en una CPU conectada al mismo bus del sistema que la GPU.
+ **Comunicaciones de red entre instancias**: las instancias transfieren datos a través de una cadena de conmutadores de red. La ruta más corta suele corresponder a la latencia más baja.

## UltraServer arquitectura
<a name="sagemaker-hyperpod-topology-ultraserver-architecture"></a>

SageMaker HyperPod admite UltraServer la arquitectura con instancias p6e-gb200.36xlarge. An UltraServer contiene hasta 18 instancias p6e-gb200.36xlarge, con 4 en cada instancia. GPUs Todos los nodos están interconectados GPUs a través de NVLink conmutadores, lo que permite la transferencia de datos entre dos nodos sin utilizar interfaces de red. GPUs 

Esta arquitectura genera un aumento significativo del rendimiento en comparación con las instancias individuales. Para aprovechar esta arquitectura de forma eficaz, los trabajos deben enviarse a los nodos de cómputo desde un único nodo UltraServer.

## Etiqueta de topología de EKS
<a name="sagemaker-hyperpod-topology-eks-scheduling"></a>

De acuerdo con la topología de instancias de EC2, etiqueta HyperPod automáticamente los nodos con las siguientes etiquetas:
+ **topology.kubernetes.io/region**: la región en la que reside el nodo. Región de AWS 
+ **topology.kubernetes.io/zone**: es la zona de disponibilidad en la que reside el nodo.
+ **topology.k8s.aws/ network-node-layer**: describe el conjunto de nodos de red de una instancia. NetworkNodes En cada conjunto de nodos de red, los nodos de red se enumeran en orden jerárquico de arriba a abajo. El nodo de red que está conectado a la instancia es el último nodo de red de la lista. Hay cuatro capas de nodos de red y a cada nodo se le asigna una etiqueta. Las capas disponibles son `topology.k8s.aws/network-node-layer-1`, `topology.k8s.aws/network-node-layer-2` y `topology.k8s.aws/network-node-layer-3`.
+ **topology.k8s.aws/ultraserver-id: identificador que se utiliza para etiquetar cada una de las instancias que pertenecen al mismo dominio en un Ultraserver**. NVLink UltraServers Para obtener más información sobre el uso SageMaker HyperPod [Uso UltraServers en Amazon SageMaker HyperPod](sagemaker-hyperpod-ultraserver.md) de with, consulte.

Con estas etiquetas, puede utilizar la programación basada en la topología en el gobierno de HyperPod tareas para aplicar anotaciones y etiquetas topológicas a fin de optimizar la eficiencia del entrenamiento de sus cargas de trabajo. Para obtener más información, consulte [Uso de la programación basada en la topología en la gobernanza de tareas de Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-scheduling.md).

## Complementos de topología de red de Slurm
<a name="sagemaker-hyperpod-topology-slurm-plugins"></a>

Slurm proporciona complementos integrados para conocer la topología de la red. UltraServer architecture in SageMaker HyperPod es compatible con el complemento de bloques.

### Uso del topology/block complemento
<a name="w2aac13c35c39c15b5"></a>

NVIDIA desarrolló un topology/block complemento que proporciona una programación jerárquica en bloques de nodos con las siguientes características:
+ Un bloque es un rango consecutivo de nodos.
+ Los bloques no se pueden superponer entre sí.
+ Todos los nodos de un bloque se asignan a un trabajo antes de utilizar el siguiente bloque.
+ El tamaño del bloque de planificación es el tamaño de bloque más pequeño configurado.
+ Cada tamaño de nivel de bloque superior es una potencia de dos del anterior.

Este complemento asigna los nodos en función de la topología de red definida.

#### Configuración
<a name="w2aac13c35c39c15b5b9"></a>

Para configurar la programación basada en la topología con el complemento, topology/block 
+ SageMaker HyperPod configura automáticamente el complemento. topology/block Si desea ajustar el complemento, especifique lo siguiente en el archivo topology.conf de su directorio de configuración de Slurm:

  ```
  BlockName=us1 Nodes=ultraserver1-[0-17]
    
  BlockName=us2 Nodes=ultraserver2-[0-17]
    
  BlockSizes=18
  ```
+ Asegúrese de que `slurm.conf` incluya:

  ```
  TopologyPlugin=topology/block
  ```

#### De uso
<a name="w2aac13c35c39c15b5c11"></a>

Al enviar trabajos, puede utilizar los siguientes argumentos adicionales con los comandos `sbatch` y `srun`:
+ `--segment=N`: especifique el número de nodos que desea agrupar. El tamaño del segmento debe ser menor o igual que el tamaño del bloque de planificación.
+ `--exclusive=topo`: pida que no se coloquen otros trabajos en el mismo bloque. Esto es útil para las referencias y las aplicaciones sensibles al rendimiento.

A continuación se muestran escenarios de ejemplo que puede tener en cuenta al pensar en la asignación de bloques.

**Asignar un bloque completo de nodos a un sistema vacío**

```
sbatch -N18
```

**Asignar dos bloques de nodos a un sistema vacío**

```
sbatch -N36
```

**Asignar 18 nodos a un bloque más 6 nodos a otro bloque**

```
sbatch -N24
```

**Asignar 12 nodos a un bloque más 12 nodos a otro bloque**

```
sbatch -N24 —segment=12
```

**Con —exclusive=topo, el trabajo debe colocarse en un bloque que no contenga ningún trabajo**

```
sbatch -N12 —exclusive=topo
```

## Mejores prácticas de topología UltraServer
<a name="sagemaker-hyperpod-topology-best-practices"></a>

Para un rendimiento óptimo con una UltraServer arquitectura en SageMaker HyperPod:
+ **Defina los tamaños de bloque adecuados**: configure `BlockSizes=18` (o 17 si hay un nodo libre) para que coincidan con la UltraServer arquitectura.
+ **Utilizar segmentos para mejorar la disponibilidad**: utilice `--segment=16`, `--segment=8` o `--segment=9` con los comandos `srun` y `sbatch` para mejorar la flexibilidad de la programación de tareas.
+ **Tener en cuenta el tamaño del trabajo y el tamaño del segmento**:
  + Si`BlockSizes=18`, los trabajos con hasta 18 instancias siempre se ejecutarán en una sola UltraServer.
  + Si`BlockSizes=16`, los trabajos con menos de 16 instancias siempre se ejecutarán en una sola UltraServer, mientras que los trabajos con 18 instancias se ejecutarán en una o dos UltraServers.

Al pensar en segmentar, tenga en cuenta lo siguiente:
+ Con`--segment=1`, cada instancia se puede ejecutar de forma independiente UltraServer.
+ Con`-N 18 --segment 9`, se colocarán 9 nodos en una UltraServer y se pueden colocar otros 9 nodos en la misma u otra UltraServer.
+ Con`-N 24 --segment 8`, el trabajo puede ejecutarse en 2 o 3 UltraServers, con cada 8 nodos colocados juntos en el mismo servidor.

## Limitaciones en la programación SageMaker HyperPod basada en la topología
<a name="sagemaker-hyperpod-topology-limitations"></a>

El complemento `topology/block` tiene limitaciones en el caso de los clústeres heterogéneos (clústeres con distintos tipos de instancia):
+ Slurm solo puede programar los nodos enumerados en bloques.
+ Cada bloque debe tener al menos `BlockSizes[0]` nodos.

Para clústeres heterogéneos, tenga en cuenta estas alternativas:
+ No utilice el complemento de bloques con clústeres heterogéneos. En su lugar, aísle UltraServer los nodos de una partición diferente.
+ Cree un clúster independiente UltraServers solo en la misma VPC y utilice la configuración de varios clústeres de Slurm.

# Implementación de modelos en Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-model-deployment"></a>

Amazon SageMaker HyperPod ahora va más allá de la formación para ofrecer una plataforma de inferencia integral que combina la flexibilidad de Kubernetes con la excelencia operativa de los servicios gestionados. AWS Implemente, escale y optimice sus modelos de aprendizaje automático con una confiabilidad de nivel empresarial utilizando el mismo HyperPod cómputo durante todo el ciclo de vida del modelo.

Amazon SageMaker HyperPod ofrece interfaces de implementación flexibles que le permiten implementar modelos a través de varios métodos, incluidos kubectl, Python SDK, Amazon SageMaker Studio UI o CLI. HyperPod Este servicio proporciona capacidades avanzadas de escalado automático con una asignación dinámica de recursos que se ajusta automáticamente en función de la demanda. Además, incluye funciones integrales de observabilidad y monitoreo que rastrean métricas críticas como time-to-first-token la latencia y el uso de la GPU para ayudarlo a optimizar el rendimiento.

**nota**  
Al realizar la implementación en instancias habilitadas para la GPU, puede utilizar la partición de la GPU con la tecnología de GPU de instancias múltiples (MIG) para ejecutar varias cargas de trabajo de inferencia en una sola GPU. Esto permite un mejor uso de la GPU y una optimización de los costes. Para obtener más información sobre la configuración de las particiones de la GPU, consulte[Uso de particiones de GPU en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

**Infraestructura unificada para entrenamiento e inferencia**

Maximice el uso de la GPU mediante una transición sin interrupciones de los recursos de computación entre las cargas de trabajo de entrenamiento y de inferencia. De este modo, se reduce el costo total de propiedad y, al mismo tiempo, se mantiene la continuidad operativa.

**Opciones de implementación listas para la empresa**

Implemente modelos de múltiples fuentes, incluidos modelos de pesos abiertos y cerrados de Amazon SageMaker JumpStart y modelos personalizados de Amazon S3 y Amazon FSx con soporte para arquitecturas de inferencia de un solo nodo y de varios nodos.

**Almacenamiento en caché de valores clave (KV) por niveles gestionado y enrutamiento inteligente**

El almacenamiento en caché KV guarda los vectores clave-valor precalculados después de procesar los tokens anteriores. Cuando se procesa el siguiente token, no es necesario volver a calcular los vectores. Mediante una arquitectura de almacenamiento en caché de dos niveles, puede configurar una caché de nivel 1 que utilice la memoria de la CPU para la reutilización local de baja latencia y una caché de nivel 2 que utilice Redis para permitir el uso compartido de la caché a nivel de nodo de forma escalable.

El enrutamiento inteligente analiza las solicitudes entrantes y las dirige a la instancia de inferencia que tiene más probabilidades de tener los pares clave-valor relevantes en caché. El sistema examina la solicitud y, a continuación, la enruta en función de una de las siguientes estrategias de enrutamiento:

1. `prefixaware`— Las solicitudes posteriores con el mismo prefijo de solicitud se envían a la misma instancia

1. `kvaware`— Las solicitudes entrantes se envían a la instancia con la tasa de aciertos de caché de KV más alta.

1. `session`— Las solicitudes de la misma sesión de usuario se envían a la misma instancia.

1. `roundrobin`— Distribución uniforme de las solicitudes sin tener en cuenta el estado de la caché KV.

Para obtener más información sobre cómo habilitar esta función, consulte[Configure el almacenamiento en caché KV y el enrutamiento inteligente para mejorar el rendimiento](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route).

**Almacenamiento en niveles de caché L2 incorporado: soporte para almacenamiento en caché KV**

Basándose en la infraestructura de caché KV existente, HyperPod ahora integra el almacenamiento por niveles como una opción de backend L2 adicional junto con Redis. Con el almacenamiento en niveles SageMaker gestionado incorporado, esto ofrece un rendimiento mejorado. Esta mejora proporciona a los clientes una opción más escalable y eficiente para la descarga de caché, lo que resulta especialmente beneficioso para las cargas de trabajo de inferencia LLM de alto rendimiento. La integración mantiene la compatibilidad con los servidores modelo VLLM existentes y las capacidades de enrutamiento, a la vez que ofrece un mejor rendimiento.

**nota**  
**Cifrado de datos:** los datos de la caché KV (claves y valores de atención) se almacenan sin cifrar en reposo para optimizar la latencia de inferencia y mejorar el rendimiento. Para cargas de trabajo con encryption-at-rest requisitos estrictos, considere la posibilidad de cifrar las solicitudes y las respuestas en la capa de aplicación, o bien inhabilite el almacenamiento en caché.  
**Aislamiento de datos:** cuando se utiliza el almacenamiento en niveles gestionado como backend de la caché de nivel 2, varias implementaciones de inferencia dentro de un clúster comparten el almacenamiento en caché sin aislamiento. Los datos de caché de nivel 2 KV (claves y valores de atención) de las diferentes implementaciones no están separados. Para las cargas de trabajo que requieren el aislamiento de datos (escenarios con varios usuarios, diferentes niveles de clasificación de datos), impleméntelas en clústeres separados o utilice instancias de Redis dedicadas.

**Implementación de varias instancias con conmutación por error automática**

HyperPod La inferencia admite la implementación de varios tipos de instancias para mejorar la confiabilidad de la implementación y la utilización de los recursos. Especifique una lista priorizada de tipos de instancias en la configuración de implementación y el sistema seleccionará automáticamente entre las alternativas disponibles cuando el tipo de instancia preferido carezca de capacidad. El programador de Kubernetes utiliza la afinidad de `preferredDuringSchedulingIgnoredDuringExecution` nodos para evaluar los tipos de instancias por orden de prioridad, asignando las cargas de trabajo al tipo de instancia disponible con mayor prioridad y, al mismo tiempo, garantizando la implementación incluso cuando los recursos preferidos no estén disponibles. Esta capacidad evita los errores de implementación debidos a las limitaciones de capacidad y, al mismo tiempo, mantiene sus preferencias de costo y rendimiento, lo que garantiza la disponibilidad continua del servicio incluso durante las fluctuaciones de la capacidad del clúster.

**Afinidad de nodos personalizada para un control detallado de la programación**

HyperPod La inferencia admite la afinidad de nodos personalizada para controlar la ubicación de la carga de trabajo más allá de la selección del tipo de instancia. Especifique en el `nodeAffinity` campo los criterios de selección de nodos, como la distribución por zonas de disponibilidad, el filtrado por tipos de capacidad (bajo demanda o puntual) o etiquetas de nodos personalizadas. El sistema admite el uso de restricciones de ubicación obligatorias `requiredDuringSchedulingIgnoredDuringExecution` y preferencias opcionales`preferredDuringSchedulingIgnoredDuringExecution`, lo que proporciona un control total sobre las decisiones de programación de los módulos y, al mismo tiempo, mantiene la flexibilidad de implementación.

**nota**  
Recopilamos ciertas métricas operativas de rutina para proporcionar la disponibilidad de los servicios esenciales. La creación de estas métricas está totalmente automatizada y no implica una revisión humana de la carga de trabajo de inferencia del modelo subyacente. Estas métricas se refieren a las operaciones de despliegue, la administración de recursos y el registro de los terminales.

**Topics**
+ [Configuración de los HyperPod clústeres para la implementación de modelos](sagemaker-hyperpod-model-deployment-setup.md)
+ [Implementación de modelos fundacionales y modelos de ajuste fino personalizados](sagemaker-hyperpod-model-deployment-deploy.md)
+ [Políticas de escalado automático para la implementación de su modelo de HyperPod inferencia](sagemaker-hyperpod-model-deployment-autoscaling.md)
+ [Implementación de la observabilidad de inferencias en clústeres HyperPod](sagemaker-hyperpod-model-deployment-observability.md)
+ [Gobierno de tareas para el despliegue del modelo en HyperPod](sagemaker-hyperpod-model-deployment-task-gov.md)
+ [HyperPod solución de problemas de inferencias](sagemaker-hyperpod-model-deployment-ts.md)
+ [Notas de la versión SageMaker HyperPod de Amazon Inference](sagemaker-hyperpod-inference-release-notes.md)

# Configuración de los HyperPod clústeres para la implementación de modelos
<a name="sagemaker-hyperpod-model-deployment-setup"></a>

Esta guía le muestra cómo habilitar las capacidades de inferencia en los SageMaker HyperPod clústeres de Amazon. Configurará la infraestructura, los permisos y los operadores que los ingenieros de aprendizaje automático necesitan para implementar y administrar los puntos finales de inferencia.

**nota**  
Para crear un clúster con el operador de inferencia preinstalado, consulte. [Cree un clúster orquestado por EKS SageMaker HyperPod](sagemaker-hyperpod-quickstart.md#sagemaker-hyperpod-quickstart-eks) Para instalar el operador de inferencia en un clúster existente, continúe con los siguientes procedimientos.

Puede instalar el operador de inferencia mediante la consola de SageMaker IA para disfrutar de una experiencia optimizada o utilizar la AWS CLI para obtener un mayor control. En esta guía se describen ambos métodos de instalación.

## Método 1: instalar el complemento HyperPod Inference a través de una consola de SageMaker IA (recomendado)
<a name="sagemaker-hyperpod-model-deployment-setup-ui"></a>

La consola de SageMaker IA ofrece la experiencia más optimizada con dos opciones de instalación:
+ **Instalación rápida:** crea automáticamente todos los recursos necesarios con valores predeterminados optimizados, incluidos los roles de IAM, los buckets de Amazon S3 y los complementos de dependencia. Se creará un nuevo dominio de Studio con los permisos necesarios para implementar un JumpStart modelo en el clúster correspondiente. Esta opción es ideal para empezar rápidamente con decisiones de configuración mínimas.
+ **Instalación personalizada:** proporciona flexibilidad para especificar los recursos existentes o personalizar las configuraciones y, al mismo tiempo, mantener la experiencia de un solo clic. Los clientes pueden optar por reutilizar las funciones de IAM, los buckets de Amazon S3 o los complementos de dependencia existentes en función de sus requisitos organizativos.

### Requisitos previos
<a name="sagemaker-hyperpod-model-deployment-setup-ui-prereqs"></a>
+ Un HyperPod clúster existente con la orquestación de Amazon EKS
+ Permisos de IAM para la administración de clústeres de Amazon EKS
+ kubectl está configurado para el acceso al clúster

### Pasos de instalación
<a name="sagemaker-hyperpod-model-deployment-setup-ui-steps"></a>

1. **Navegue hasta la consola de SageMaker IA y vaya a **HyperPod Clústeres → Administración de clústeres**.**

1. Seleccione el clúster en el que desee instalar el operador de inferencia.

1. Navegue hasta la pestaña **Inferencia.** Seleccione **Instalación rápida** para una configuración automática o **Instalación personalizada** para flexibilidad de configuración.

1. Si elige la instalación personalizada, especifique los recursos existentes o personalice la configuración según sea necesario.

1. Haga clic en **Instalar** para iniciar el proceso de instalación automática.

1. Compruebe el estado de la instalación a través de la consola o ejecutando los siguientes comandos:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   ```
   aws eks describe-addon --cluster-name CLUSTER-NAME --addon-name amazon-sagemaker-hyperpod-inference --region REGION
   ```

Una vez que el complemento se haya instalado correctamente, puede implementar los modelos utilizando la documentación de implementación de modelos o ir a[Comprobación de que el operador de inferencia funciona](#sagemaker-hyperpod-model-deployment-setup-verify).

## Método 2: Instalación del operador de inferencia mediante la CLI AWS
<a name="sagemaker-hyperpod-model-deployment-setup-addon"></a>

El método de instalación AWS CLI proporciona un mayor control sobre el proceso de instalación y es adecuado para la automatización y las configuraciones avanzadas.

### Requisitos previos
<a name="sagemaker-hyperpod-model-deployment-setup-prereq-addon"></a>

El operador de inferencia permite la implementación y la administración de puntos finales de inferencia de aprendizaje automático en su clúster de Amazon EKS. Antes de la instalación, asegúrese de que el clúster tenga las configuraciones de seguridad y la infraestructura de soporte necesarias. Complete estos pasos para configurar las funciones de IAM, instalar el AWS Load Balancer Controller, configurar los controladores Amazon S3 y FSx Amazon CSI e implementar KEDA y cert-manager:

1. [Conéctese a su clúster y configure las variables de entorno](#sagemaker-hyperpod-model-deployment-setup-connect-addon)

1. [Configure las funciones de IAM para el operador de inferencia](#sagemaker-hyperpod-model-deployment-setup-prepare-addon)

1. [Cree el rol de controlador ALB](#sagemaker-hyperpod-model-deployment-setup-alb-addon)

1. [Creación del rol del operador de KEDA](#sagemaker-hyperpod-model-deployment-setup-keda-addon)

1. [Instale los complementos EKS de dependencia](#sagemaker-hyperpod-model-deployment-setup-install-dependencies)

**nota**  
Como alternativa, puede utilizar CloudFormation plantillas para automatizar la configuración de los requisitos previos. Para obtener más información, consulte [Uso de CloudFormation plantillas para crear la pila de requisitos previos](#sagemaker-hyperpod-model-deployment-setup-cfn).

### Conéctese a su clúster y configure las variables de entorno
<a name="sagemaker-hyperpod-model-deployment-setup-connect-addon"></a>

Antes de continuar, compruebe que sus AWS credenciales estén configuradas correctamente y que cuenten con los permisos necesarios. Ejecute los siguientes pasos con un director de IAM con privilegios de administrador y acceso de administrador de clústeres a un clúster de Amazon EKS. Asegúrese de haber creado un HyperPod clúster con[Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md). Instale las utilidades de línea de comandos helm, eksctl y kubectl.

Para obtener acceso administrativo de Kubernetes al clúster de Amazon EKS, abra la consola de Amazon EKS y seleccione el clúster. En la pestaña **Acceso**, seleccione Entradas de acceso de **IAM**. Si no existe ninguna entrada para su entidad principal de IAM, seleccione **Crear entrada de acceso**. Seleccione el principal de IAM deseado y asócielo a él`AmazonEKSClusterAdminPolicy`.

1. Configure kubectl para que se conecte al clúster recién creado y orquestado por el HyperPod clúster de Amazon EKS. Especifique la región y el nombre del clúster. HyperPod 

   ```
   export HYPERPOD_CLUSTER_NAME=<hyperpod-cluster-name>
   export REGION=<region>
   
   # S3 bucket where tls certificates will be uploaded
   export BUCKET_NAME="hyperpod-tls-<your-bucket-suffix>" # Bucket should have prefix: hyperpod-tls-*
   
   export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
   --query 'Orchestrator.Eks.ClusterArn' --output text | \
   cut -d'/' -f2)
   aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
   ```
**nota**  
Si utilizas un nombre de bucket personalizado que no comience por`hyperpod-tls-`, adjunta la siguiente política a tu función de ejecución:  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "TLSBucketDeleteObjectsPermission",
               "Effect": "Allow",
               "Action": ["s3:DeleteObject"],
               "Resource": ["arn:aws:s3:::${BUCKET_NAME}/*"],
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "${aws:PrincipalAccount}"
                   }
               }
           },
           {
               "Sid": "TLSBucketGetObjectAccess",
               "Effect": "Allow",
               "Action": ["s3:GetObject"],
               "Resource": ["arn:aws:s3:::${BUCKET_NAME}/*"]
           },
           {
               "Sid": "TLSBucketPutObjectAccess",
               "Effect": "Allow",
               "Action": ["s3:PutObject", "s3:PutObjectTagging"],
               "Resource": ["arn:aws:s3:::${BUCKET_NAME}/*"],
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "${aws:PrincipalAccount}"
                   }
               }
           }
       ]
   }
   ```

1. Establezca las variables de entorno predeterminadas.

   ```
   HYPERPOD_INFERENCE_ROLE_NAME="SageMakerHyperPodInference-$HYPERPOD_CLUSTER_NAME"
   HYPERPOD_INFERENCE_NAMESPACE="hyperpod-inference-system"
   ```

1. Extraiga el nombre del clúster de Amazon EKS del ARN del clúster, actualice el kubeconfig local y verifique la conectividad enumerando todos los pods en los espacios de nombres.

   ```
   kubectl get pods --all-namespaces
   ```

1. (Opcional) Instale el complemento del dispositivo NVIDIA para activar la compatibilidad de la GPU en el clúster.

   ```
   # Install nvidia device plugin
   kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.14.5/nvidia-device-plugin.yml
   # Verify that GPUs are visible to k8s
   kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia.com/gpu
   ```

### Configure las funciones de IAM para el operador de inferencia
<a name="sagemaker-hyperpod-model-deployment-setup-prepare-addon"></a>

1. Recopile los identificadores de AWS recursos esenciales y ARNs necesarios para configurar las integraciones de servicios entre los componentes de Amazon EKS, SageMaker AI e IAM.

   ```
   %%bash -x
   
   export ACCOUNT_ID=$(aws --region $REGION sts get-caller-identity --query 'Account' --output text)
   export OIDC_ID=$(aws --region $REGION eks describe-cluster --name $EKS_CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
   export EKS_CLUSTER_ROLE=$(aws eks --region $REGION describe-cluster --name $EKS_CLUSTER_NAME --query 'cluster.roleArn' --output text)
   ```

1. Asocie un OIDCidentity proveedor de IAM a su clúster de EKS.

   ```
   eksctl utils associate-iam-oidc-provider --region=$REGION --cluster=$EKS_CLUSTER_NAME --approve
   ```

1. Cree la política de confianza necesaria para el rol de IAM del operador HyperPod de inferencia. Estas políticas permiten una comunicación segura entre servicios entre Amazon EKS, SageMaker AI y otros AWS servicios.

   ```
   %%bash -x
   
   # Create trust policy JSON
   cat << EOF > trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Service": [
                   "sagemaker.amazonaws.com"
               ]
           },
           "Action": "sts:AssumeRole"
       },
       {
           "Effect": "Allow",
           "Principal": {
               "Federated": "arn:aws:iam::${ACCOUNT_ID}:oidc-provider/oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
               "StringLike": {
                   "oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}:aud": "sts.amazonaws.com",
                   "oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}:sub": "system:serviceaccount:hyperpod-inference-system:hyperpod-inference-controller-manager"
               }
           }
       }
   ]
   }
   EOF
   ```

1. Cree un rol de ejecución para el operador de inferencia.

   ```
   aws iam create-role --role-name $HYPERPOD_INFERENCE_ROLE_NAME --assume-role-policy-document file://trust-policy.json
   aws iam attach-role-policy --role-name $HYPERPOD_INFERENCE_ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerHyperPodInferenceAccess
   ```

1. Cree un espacio de nombres para los recursos del operador de inferencia

   ```
   kubectl create namespace $HYPERPOD_INFERENCE_NAMESPACE
   ```

### Cree el rol de controlador ALB
<a name="sagemaker-hyperpod-model-deployment-setup-alb-addon"></a>

1. Cree la política de confianza y la política de permisos.

   ```
   # Create trust policy
   cat <<EOF > /tmp/alb-trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
               "StringLike": {
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:hyperpod-inference-system:aws-load-balancer-controller",
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
               }
           }
       }
   ]
   }
   EOF
   
   # Create permissions policy
   export ALBController_IAM_POLICY_NAME=HyperPodInferenceALBControllerIAMPolicy
   curl -o AWSLoadBalancerControllerIAMPolicy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.13.0/docs/install/iam_policy.json
   
   # Create the role
   aws iam create-role \
       --role-name alb-role \
       --assume-role-policy-document file:///tmp/alb-trust-policy.json 
   
   # Create the policy
   ALB_POLICY_ARN=$(aws iam create-policy \
       --policy-name $ALBController_IAM_POLICY_NAME \
       --policy-document file://AWSLoadBalancerControllerIAMPolicy.json \
       --query 'Policy.Arn' \
       --output text)
   
   # Attach the policy to the role
   aws iam attach-role-policy \
       --role-name alb-role \
       --policy-arn $ALB_POLICY_ARN
   ```

1. Aplique Tags (`kubernetes.io.role/elb`) a todas las subredes del clúster de Amazon EKS (tanto públicas como privadas).

   ```
   export VPC_ID=$(aws --region $REGION eks describe-cluster --name $EKS_CLUSTER_NAME --query 'cluster.resourcesVpcConfig.vpcId' --output text)
   
   # Add Tags
   aws ec2 describe-subnets \
   --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=true" \
   --query 'Subnets[*].SubnetId' --output text | \
   tr '\t' '\n' | \
   xargs -I{} aws ec2 create-tags --resources {} --tags Key=kubernetes.io/role/elb,Value=1
   
   # Verify Tags are added
   aws ec2 describe-subnets \
   --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=true" \
   --query 'Subnets[*].SubnetId' --output text | \
   tr '\t' '\n' |
   xargs -n1 -I{} aws ec2 describe-tags --filters "Name=resource-id,Values={}" "Name=key,Values=kubernetes.io/role/elb" --query "Tags[0].Value" --output text
   ```

1. Cree punto de conexión de VPC de Amazon S3.

   ```
   aws ec2 create-vpc-endpoint \
       --region ${REGION} \
       --vpc-id ${VPC_ID} \
       --vpc-endpoint-type Gateway \
       --service-name "com.amazonaws.${REGION}.s3" \
       --route-table-ids $(aws ec2 describe-route-tables --region $REGION --filters "Name=vpc-id,Values=${VPC_ID}" --query 'RouteTables[].Associations[].RouteTableId' --output text | tr ' ' '\n' | sort -u | tr '\n' ' ')
   ```

### Creación del rol del operador de KEDA
<a name="sagemaker-hyperpod-model-deployment-setup-keda-addon"></a>

1. Cree la política de confianza y la política de permisos.

   ```
   # Create trust policy
   cat <<EOF > /tmp/keda-trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
               "StringLike": {
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:hyperpod-inference-system:keda-operator",
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
               }
           }
       }
   ]
   }
   EOF
   
   # Create permissions policy
   cat <<EOF > /tmp/keda-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "cloudwatch:GetMetricData",
               "cloudwatch:GetMetricStatistics",
               "cloudwatch:ListMetrics"
           ],
           "Resource": "*"
       },
       {
           "Effect": "Allow",
           "Action": [
               "aps:QueryMetrics",
               "aps:GetLabels",
               "aps:GetSeries",
               "aps:GetMetricMetadata"
           ],
           "Resource": "*"
       }
   ]
   }
   EOF
   
   # Create the role
   aws iam create-role \
       --role-name keda-operator-role \
       --assume-role-policy-document file:///tmp/keda-trust-policy.json
   
   # Create the policy
   KEDA_POLICY_ARN=$(aws iam create-policy \
       --policy-name KedaOperatorPolicy \
       --policy-document file:///tmp/keda-policy.json \
       --query 'Policy.Arn' \
       --output text)
   
   # Attach the policy to the role
   aws iam attach-role-policy \
       --role-name keda-operator-role \
       --policy-arn $KEDA_POLICY_ARN
   ```

1. Si utiliza modelos cerrados, cree un rol de IAM para acceder a ellos.

   1. Cree una política de IAM.

      ```
      %%bash -s $REGION
      
      JUMPSTART_GATED_ROLE_NAME="JumpstartGatedRole-${REGION}-${HYPERPOD_CLUSTER_NAME}"
      
      cat <<EOF > /tmp/trust-policy.json
      {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
              },
              "Action": "sts:AssumeRoleWithWebIdentity",
              "Condition": {
                  "StringLike": {
                      "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:*:hyperpod-inference-service-account*",
                      "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
                  }
              }
          },
              {
              "Effect": "Allow",
              "Principal": {
                  "Service": "sagemaker.amazonaws.com"
              },
              "Action": "sts:AssumeRole"
          }
      ]
      }
      EOF
      ```

   1. Crear un rol de IAM.

      ```
      # Create the role using existing trust policy
      aws iam create-role \
      --role-name $JUMPSTART_GATED_ROLE_NAME \
      --assume-role-policy-document file:///tmp/trust-policy.json
      
      aws iam attach-role-policy \
      --role-name $JUMPSTART_GATED_ROLE_NAME \
      --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerHyperPodGatedModelAccess
      ```

      ```
      JUMPSTART_GATED_ROLE_ARN_LIST= !aws iam get-role --role-name=$JUMPSTART_GATED_ROLE_NAME --query "Role.Arn" --output text
      JUMPSTART_GATED_ROLE_ARN = JUMPSTART_GATED_ROLE_ARN_LIST[0]
      !echo $JUMPSTART_GATED_ROLE_ARN
      ```

### Instale los complementos EKS de dependencia
<a name="sagemaker-hyperpod-model-deployment-setup-install-dependencies"></a>

Antes de instalar el operador de inferencia, debe instalar los siguientes complementos de EKS necesarios en su clúster. El operador de inferencia no se instalará si falta alguna de estas dependencias. Cada complemento tiene un requisito de versión mínimo para ser compatible con el complemento Inference.

**importante**  
Instale todos los complementos de dependencia antes de intentar instalar el operador de inferencia. La falta de dependencias provocará errores de instalación con mensajes de error específicos.

#### Complementos necesarios
<a name="sagemaker-hyperpod-model-deployment-setup-required-addons"></a>

1. **Controlador CSI Mountpoint de Amazon S3** (versión mínima: v1.14.1-eksbuild.1)

   Necesario para montar buckets S3 como volúmenes persistentes en cargas de trabajo de inferencia.

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name aws-mountpoint-s3-csi-driver \
       --region $REGION \
       --service-account-role-arn $S3_CSI_ROLE_ARN
   ```

   Para obtener instrucciones de instalación detalladas, incluidos los permisos de IAM necesarios, consulte el controlador CSI de [Mountpoint for Amazon S3](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html#mountpoint-for-s3-add-on).

1. **Controlador Amazon FSx CSI** (versión mínima: v1.6.0-eksbuild.1)

   Necesario para montar sistemas de archivos para el almacenamiento de modelos de alto rendimiento. FSx 

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name aws-fsx-csi-driver \
       --region $REGION \
       --service-account-role-arn $FSX_CSI_ROLE_ARN
   ```

   Para obtener instrucciones de instalación detalladas, incluidos los permisos de IAM necesarios, consulte el controlador [CSI de Amazon FSx for Lustre](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html#add-ons-aws-fsx-csi-driver).

1. **Metrics Server** (versión mínima: v0.7.2-eksbuild.4)

   Necesario para la funcionalidad de escalado automático y la recopilación de métricas de recursos.

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name metrics-server \
       --region $REGION
   ```

   Para obtener instrucciones de instalación detalladas, consulte [Metrics Server](https://docs.aws.amazon.com/eks/latest/userguide/metrics-server.html).

1. **Cert Manager** (versión mínima: v1.18.2-eksbuild.2)

   Necesario para la administración de certificados TLS para garantizar la seguridad de los puntos finales de inferencia.

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

   [Para obtener instrucciones de instalación detalladas, consulte cert-manager.](https://docs.aws.amazon.com/eks/latest/userguide/community-addons.html#addon-cert-manager)

#### Verifique la instalación del complemento
<a name="sagemaker-hyperpod-model-deployment-setup-verify-dependencies"></a>

Tras instalar los complementos necesarios, compruebe que se estén ejecutando correctamente:

```
# Check add-on status
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name metrics-server --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION

# Verify pods are running
kubectl get pods -n kube-system | grep -E "(mountpoint|fsx|metrics-server)"
kubectl get pods -n cert-manager
```

Todos los complementos deben mostrar el estado «ACTIVO» y todos los pods deben estar en estado «En ejecución» antes de proceder a la instalación por parte del operador de inferencia.

**nota**  
Si creó el HyperPod clúster mediante la configuración rápida o las opciones de configuración personalizadas, es posible que el controlador FSx CSI y el administrador de certificados ya estén instalados. Compruebe su presencia mediante los comandos anteriores.

### Instalación del operador de inferencia con el complemento EKS
<a name="sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon"></a>

El método de instalación del complemento EKS proporciona una experiencia gestionada con actualizaciones automáticas y validación de dependencias integrada. Este es el enfoque recomendado para instalar el operador de inferencia.

**Instale el complemento del operador de inferencia**

1. Prepare la configuración del complemento recopilando todo lo necesario ARNs y creando el archivo de configuración:

   ```
   # Gather required ARNs
   export EXECUTION_ROLE_ARN=$(aws iam get-role --role-name $HYPERPOD_INFERENCE_ROLE_NAME --query "Role.Arn" --output text)
   export HYPERPOD_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME --region $REGION --query "ClusterArn" --output text)
   export KEDA_ROLE_ARN=$(aws iam get-role --role-name keda-operator-role --query 'Role.Arn' --output text)
   export ALB_ROLE_ARN=$(aws iam get-role --role-name alb-role --query 'Role.Arn' --output text)
   
   # Verify all ARNs are set correctly
   echo "Execution Role ARN: $EXECUTION_ROLE_ARN"
   echo "HyperPod Cluster ARN: $HYPERPOD_CLUSTER_ARN"
   echo "KEDA Role ARN: $KEDA_ROLE_ARN"
   echo "ALB Role ARN: $ALB_ROLE_ARN"
   echo "TLS S3 Bucket: $BUCKET_NAME"
   ```

1. Cree el archivo de configuración del complemento con todos los ajustes necesarios:

   ```
   cat > addon-config.json << EOF
   {
     "executionRoleArn": "$EXECUTION_ROLE_ARN",
     "tlsCertificateS3Bucket": "$BUCKET_NAME",
     "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
     "jumpstartGatedModelDownloadRoleArn": "$JUMPSTART_GATED_ROLE_ARN",
     "alb": {
       "serviceAccount": {
         "create": true,
         "roleArn": "$ALB_ROLE_ARN"
       }
     },
     "keda": {
       "auth": {
         "aws": {
           "irsa": {
             "roleArn": "$KEDA_ROLE_ARN"
           }
         }
       }
     }
   }
   EOF
   
   # Verify the configuration file
   cat addon-config.json
   ```

1. Instale el complemento del operador de inferencia (versión mínima: v1.0.0-eksbuild.1):

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --configuration-values file://addon-config.json \
       --region $REGION
   ```

1. Supervise el progreso de la instalación y verifique que se complete correctamente:

   ```
   # Check installation status (repeat until status shows "ACTIVE")
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health}" \
       --output table
   
   # Verify pods are running
   kubectl get pods -n hyperpod-inference-system
   
   # Check operator logs for any issues
   kubectl logs -n hyperpod-inference-system deployment/hyperpod-inference-controller-manager --tail=50
   ```

Para obtener información detallada sobre la solución de problemas de instalación, consulte[HyperPod solución de problemas de inferencias](sagemaker-hyperpod-model-deployment-ts.md).

Para comprobar que el operador de inferencia funciona correctamente, continúe[Comprobación de que el operador de inferencia funciona](#sagemaker-hyperpod-model-deployment-setup-verify).

### Uso de CloudFormation plantillas para crear la pila de requisitos previos
<a name="sagemaker-hyperpod-model-deployment-setup-cfn"></a>

Como alternativa a la configuración manual de los requisitos previos, puede utilizar CloudFormation plantillas para automatizar la creación de las funciones y políticas de IAM necesarias para el operador de inferencia.

1. Configure las variables de entrada. Sustituya los valores de los marcadores de posición por los suyos propios:

   ```
   #!/bin/bash
   set -e
   
   # ===== INPUT VARIABLES =====
   HP_CLUSTER_NAME="my-hyperpod-cluster"  # Replace with your HyperPod cluster name
   REGION="us-east-1"  # Replace with your AWS region
   PREFIX="my-prefix"  # Replace with your resource prefix
   SHORT_PREFIX="12a34d56"  # Replace with your short prefix (maximum 8 characters)
   CREATE_DOMAIN="true"  # Set to "false" if you don't need a SageMaker Studio domain
   STACK_NAME="hyperpod-inference-prerequisites"  # Replace with your stack name
   TEMPLATE_URL="https://aws-sagemaker-hyperpod-cluster-setup-${REGION}-prod.s3.${REGION}.amazonaws.com/templates/main-stack-inference-operator-addon-template.yaml"
   ```

1. Obtenga información sobre el clúster y la red:

   ```
   # ===== DERIVE EKS CLUSTER NAME =====
   EKS_CLUSTER_NAME=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --region $REGION --query 'Orchestrator.Eks.ClusterArn' --output text | awk -F'/' '{print $NF}')
   echo "EKS_CLUSTER_NAME=$EKS_CLUSTER_NAME"
   
   # ===== GET VPC AND OIDC =====
   VPC_ID=$(aws eks describe-cluster --name $EKS_CLUSTER_NAME --region $REGION --query 'cluster.resourcesVpcConfig.vpcId' --output text)
   echo "VPC_ID=$VPC_ID"
   
   OIDC_PROVIDER=$(aws eks describe-cluster --name $EKS_CLUSTER_NAME --region $REGION --query 'cluster.identity.oidc.issuer' --output text | sed 's|https://||')
   echo "OIDC_PROVIDER=$OIDC_PROVIDER"
   
   # ===== GET PRIVATE ROUTE TABLES =====
   ALL_ROUTE_TABLES=$(aws ec2 describe-route-tables --region $REGION --filters "Name=vpc-id,Values=$VPC_ID" --query 'RouteTables[].RouteTableId' --output text)
   EKS_PRIVATE_ROUTE_TABLES=""
   for rtb in $ALL_ROUTE_TABLES; do
       HAS_IGW=$(aws ec2 describe-route-tables --region $REGION --route-table-ids $rtb --query 'RouteTables[0].Routes[?GatewayId && starts_with(GatewayId, `igw-`)]' --output text 2>/dev/null)
       if [ -z "$HAS_IGW" ]; then
           EKS_PRIVATE_ROUTE_TABLES="${EKS_PRIVATE_ROUTE_TABLES:+$EKS_PRIVATE_ROUTE_TABLES,}$rtb"
       fi
   done
   echo "EKS_PRIVATE_ROUTE_TABLES=$EKS_PRIVATE_ROUTE_TABLES"
   
   # ===== CHECK S3 VPC ENDPOINT =====
   S3_ENDPOINT_EXISTS=$(aws ec2 describe-vpc-endpoints --region $REGION --filters "Name=vpc-id,Values=$VPC_ID" "Name=service-name,Values=com.amazonaws.$REGION.s3" --query 'VpcEndpoints[0].VpcEndpointId' --output text)
   CREATE_S3_ENDPOINT_STACK=$([ "$S3_ENDPOINT_EXISTS" == "None" ] && echo "true" || echo "false")
   echo "CREATE_S3_ENDPOINT_STACK=$CREATE_S3_ENDPOINT_STACK"
   
   # ===== GET HYPERPOD DETAILS =====
   HYPERPOD_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --region $REGION --query 'ClusterArn' --output text)
   echo "HYPERPOD_CLUSTER_ARN=$HYPERPOD_CLUSTER_ARN"
   
   # ===== GET DEFAULT VPC FOR DOMAIN =====
   DOMAIN_VPC_ID=$(aws ec2 describe-vpcs --region $REGION --filters "Name=isDefault,Values=true" --query 'Vpcs[0].VpcId' --output text)
   echo "DOMAIN_VPC_ID=$DOMAIN_VPC_ID"
   
   DOMAIN_SUBNET_IDS=$(aws ec2 describe-subnets --region $REGION --filters "Name=vpc-id,Values=$DOMAIN_VPC_ID" --query 'Subnets[0].SubnetId' --output text)
   echo "DOMAIN_SUBNET_IDS=$DOMAIN_SUBNET_IDS"
   
   # ===== GET INSTANCE GROUPS =====
   INSTANCE_GROUPS=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --region $REGION --query 'InstanceGroups[].InstanceGroupName' --output json | python3 -c "import sys, json; groups = json.load(sys.stdin); print('[' + ','.join([f'\\\\\\\"' + g + '\\\\\\\"' for g in groups]) + ']')")
   echo "INSTANCE_GROUPS=$INSTANCE_GROUPS"
   ```

1. Cree un archivo de parámetros e implemente la pila:

   ```
   # ===== CREATE PARAMETERS JSON =====
   cat > /tmp/cfn-params.json << EOF
   [
     {"ParameterKey":"ResourceNamePrefix","ParameterValue":"$PREFIX"},
     {"ParameterKey":"ResourceNameShortPrefix","ParameterValue":"$SHORT_PREFIX"},
     {"ParameterKey":"VpcId","ParameterValue":"$VPC_ID"},
     {"ParameterKey":"EksPrivateRouteTableIds","ParameterValue":"$EKS_PRIVATE_ROUTE_TABLES"},
     {"ParameterKey":"EKSClusterName","ParameterValue":"$EKS_CLUSTER_NAME"},
     {"ParameterKey":"OIDCProviderURLWithoutProtocol","ParameterValue":"$OIDC_PROVIDER"},
     {"ParameterKey":"HyperPodClusterArn","ParameterValue":"$HYPERPOD_CLUSTER_ARN"},
     {"ParameterKey":"HyperPodClusterName","ParameterValue":"$HP_CLUSTER_NAME"},
     {"ParameterKey":"CreateDomain","ParameterValue":"$CREATE_DOMAIN"},
     {"ParameterKey":"DomainVpcId","ParameterValue":"$DOMAIN_VPC_ID"},
     {"ParameterKey":"DomainSubnetIds","ParameterValue":"$DOMAIN_SUBNET_IDS"},
     {"ParameterKey":"CreateS3EndpointStack","ParameterValue":"$CREATE_S3_ENDPOINT_STACK"},
     {"ParameterKey":"TieredStorageConfig","ParameterValue":"{\"Mode\":\"Enable\",\"InstanceMemoryAllocationPercentage\":20}"},
     {"ParameterKey":"TieredKVCacheConfig","ParameterValue":"{\"KVCacheMode\":\"Enable\",\"InstanceGroup\":$INSTANCE_GROUPS,\"NVMeMode\":\"Enable\"}"}
   ]
   EOF
   
   echo -e "\n===== CREATING CLOUDFORMATION STACK ====="
   aws cloudformation create-stack \
       --region $REGION \
       --stack-name $STACK_NAME \
       --template-url $TEMPLATE_URL \
       --parameters file:///tmp/cfn-params.json \
       --capabilities CAPABILITY_NAMED_IAM
   ```

1. Supervise el estado de creación de la pila:

   ```
   aws cloudformation describe-stacks \
       --stack-name $STACK_NAME \
       --region $REGION \
       --query 'Stacks[0].StackStatus'
   ```

1. Una vez que la pila se haya creado correctamente, recupere los valores de salida para utilizarlos en la instalación del operador de inferencia:

   ```
   aws cloudformation describe-stacks \
       --stack-name $STACK_NAME \
       --region $REGION \
       --query 'Stacks[0].Outputs'
   ```

Una vez creada la CloudFormation pila, continúe con [Instalación del operador de inferencia con el complemento EKS](#sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon) la instalación del operador de inferencia.

## Método 3: instalación del diagrama de Helm
<a name="sagemaker-hyperpod-model-deployment-setup-helm"></a>

**nota**  
Para una experiencia de instalación más sencilla, recomendamos utilizar [Método 1: instalar el complemento HyperPod Inference a través de una consola de SageMaker IA (recomendado)](#sagemaker-hyperpod-model-deployment-setup-ui) o[Método 2: Instalación del operador de inferencia mediante la CLI AWS](#sagemaker-hyperpod-model-deployment-setup-addon). Es posible que la instalación de Helm Chart quede obsoleta en una versión futura.

### Requisitos previos
<a name="sagemaker-hyperpod-model-deployment-setup-prereq"></a>

Antes de continuar, compruebe que sus AWS credenciales estén configuradas correctamente y que cuenten con los permisos necesarios. Los siguientes pasos deben ser ejecutados por un director de IAM con privilegios de administrador y acceso de administrador de clúster a un clúster de Amazon EKS. Compruebe que ha creado un HyperPod clúster con[Creación de un SageMaker HyperPod clúster con la orquestación de Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md). Compruebe que ha instalado las utilidades de la línea de comandos de helm, eksctl y kubectl. 

Para obtener acceso administrativo de Kubernetes al clúster de Amazon EKS, vaya a la consola de Amazon EKS y seleccione el clúster que está utilizando. Busque en la pestaña **Acceso** y seleccione Entradas de acceso de IAM. Si no hay ninguna entrada para su entidad principal de IAM, seleccione **Crear entrada de acceso**. A continuación, seleccione la entidad principal de IAM deseada y asóciele la `AmazonEKSClusterAdminPolicy`.

1. Configure kubectl para que se conecte al clúster recién creado y orquestado por el HyperPod clúster de Amazon EKS. Especifique la región y el nombre del clúster. HyperPod 

   ```
   export HYPERPOD_CLUSTER_NAME=<hyperpod-cluster-name>
   export REGION=<region>
   
   # S3 bucket where tls certificates will be uploaded
   BUCKET_NAME="<Enter name of your s3 bucket>" # This should be bucket name, not URI
   
   export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
   --query 'Orchestrator.Eks.ClusterArn' --output text | \
   cut -d'/' -f2)
   aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
   ```

1. Establezca las variables de entorno predeterminadas.

   ```
   LB_CONTROLLER_POLICY_NAME="AWSLoadBalancerControllerIAMPolicy-$HYPERPOD_CLUSTER_NAME"
   LB_CONTROLLER_ROLE_NAME="aws-load-balancer-controller-$HYPERPOD_CLUSTER_NAME"
   S3_MOUNT_ACCESS_POLICY_NAME="S3MountpointAccessPolicy-$HYPERPOD_CLUSTER_NAME"
   S3_CSI_ROLE_NAME="SM_HP_S3_CSI_ROLE-$HYPERPOD_CLUSTER_NAME"
   KEDA_OPERATOR_POLICY_NAME="KedaOperatorPolicy-$HYPERPOD_CLUSTER_NAME"
   KEDA_OPERATOR_ROLE_NAME="keda-operator-role-$HYPERPOD_CLUSTER_NAME"
   HYPERPOD_INFERENCE_ROLE_NAME="HyperpodInferenceRole-$HYPERPOD_CLUSTER_NAME"
   HYPERPOD_INFERENCE_SA_NAME="hyperpod-inference-operator-controller"
   HYPERPOD_INFERENCE_SA_NAMESPACE="hyperpod-inference-system"
   JUMPSTART_GATED_ROLE_NAME="JumpstartGatedRole-$HYPERPOD_CLUSTER_NAME"
   FSX_CSI_ROLE_NAME="AmazonEKSFSxLustreCSIDriverFullAccess-$HYPERPOD_CLUSTER_NAME"
   ```

1. Extraiga el nombre del clúster de Amazon EKS del ARN del clúster, actualice el kubeconfig local y verifique la conectividad enumerando todos los pods en los espacios de nombres.

   ```
   kubectl get pods --all-namespaces
   ```

1. (Opcional) Instale el complemento del dispositivo NVIDIA para activar la compatibilidad de la GPU en el clúster.

   ```
   #Install nvidia device plugin
   kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.14.5/nvidia-device-plugin.yml
   # Verify that GPUs are visible to k8s
   kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia.com/gpu
   ```

### Preparación del entorno para la instalación del operador de inferencia
<a name="sagemaker-hyperpod-model-deployment-setup-prepare"></a>

1. Recopile los identificadores de AWS recursos esenciales y ARNs necesarios para configurar las integraciones de servicios entre los componentes de Amazon EKS, SageMaker AI e IAM.

   ```
   %%bash -x
   
   export ACCOUNT_ID=$(aws --region $REGION sts get-caller-identity --query 'Account' --output text)
   export OIDC_ID=$(aws --region $REGION eks describe-cluster --name $EKS_CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
   export EKS_CLUSTER_ROLE=$(aws eks --region $REGION describe-cluster --name $EKS_CLUSTER_NAME --query 'cluster.roleArn' --output text)
   ```

1. Asocie un OIDCidentity proveedor de IAM a su clúster de EKS.

   ```
   eksctl utils associate-iam-oidc-provider --region=$REGION --cluster=$EKS_CLUSTER_NAME --approve
   ```

1. Cree la política de confianza necesaria para el rol de IAM del operador HyperPod de inferencia. Esta política permite una comunicación segura entre servicios entre Amazon EKS, SageMaker AI y otros AWS servicios.

   ```
   %%bash -x
   
   # Create trust policy JSON
   cat << EOF > trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
   {
       "Effect": "Allow",
       "Principal": {
           "Service": [
               "sagemaker.amazonaws.com"
           ]
       },
       "Action": "sts:AssumeRole"
   },
   {
       "Effect": "Allow",
       "Principal": {
           "Federated": "arn:aws:iam::${ACCOUNT_ID}:oidc-provider/oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}"
       },
       "Action": "sts:AssumeRoleWithWebIdentity",
       "Condition": {
           "StringLike": {
               "oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}:aud": "sts.amazonaws.com",
               "oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}:sub": "system:serviceaccount:hyperpod-inference-system:hyperpod-inference-controller-manager"
           }
       }
   }
   ]
   }
   EOF
   ```

1. Cree una función de ejecución para el operador de inferencia y adjunte la política gestionada.

   ```
   aws iam create-role --role-name $HYPERPOD_INFERENCE_ROLE_NAME --assume-role-policy-document file://trust-policy.json
   aws iam attach-role-policy --role-name $HYPERPOD_INFERENCE_ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerHyperPodInferenceAccess
   ```

1. Descargue y cree la política de IAM necesaria para que el controlador de Load Balancer gestione los balanceadores de AWS carga de aplicaciones y los balanceadores de carga de red en su clúster de EKS.

   ```
   %%bash -x 
   
   export ALBController_IAM_POLICY_NAME=HyperPodInferenceALBControllerIAMPolicy
   
   curl -o AWSLoadBalancerControllerIAMPolicy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.13.0/docs/install/iam_policy.json
   aws iam create-policy --policy-name $ALBController_IAM_POLICY_NAME --policy-document file://AWSLoadBalancerControllerIAMPolicy.json
   ```

1. Cree una cuenta de servicio de IAM que vincule la cuenta de servicio de Kubernetes con la política de IAM, lo que permitirá al AWS Load Balancer Controller asumir los AWS permisos necesarios a través de IRSA (funciones de IAM para cuentas de servicio).

   ```
   %%bash -x 
   
   export ALB_POLICY_ARN="arn:aws:iam::$ACCOUNT_ID:policy/$ALBController_IAM_POLICY_NAME"
   
   # Create IAM service account with gathered values
   eksctl create iamserviceaccount \
   --approve \
   --override-existing-serviceaccounts \
   --name=aws-load-balancer-controller \
   --namespace=kube-system \
   --cluster=$EKS_CLUSTER_NAME \
   --attach-policy-arn=$ALB_POLICY_ARN \
   --region=$REGION
   
   # Print the values for verification
   echo "Cluster Name: $EKS_CLUSTER_NAME"
   echo "Region: $REGION"
   echo "Policy ARN: $ALB_POLICY_ARN"
   ```

1. Aplique Tags (`kubernetes.io.role/elb`) a todas las subredes del clúster de Amazon EKS (tanto públicas como privadas).

   ```
   export VPC_ID=$(aws --region $REGION eks describe-cluster --name $EKS_CLUSTER_NAME --query 'cluster.resourcesVpcConfig.vpcId' --output text)
   
   # Add Tags
   aws ec2 describe-subnets \
   --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=true" \
   --query 'Subnets[*].SubnetId' --output text | \
   tr '\t' '\n' | \
   xargs -I{} aws ec2 create-tags --resources {} --tags Key=kubernetes.io/role/elb,Value=1
   
   # Verify Tags are added
   aws ec2 describe-subnets \
   --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=true" \
   --query 'Subnets[*].SubnetId' --output text | \
   tr '\t' '\n' |
   xargs -n1 -I{} aws ec2 describe-tags --filters "Name=resource-id,Values={}" "Name=key,Values=kubernetes.io/role/elb" --query "Tags[0].Value" --output text
   ```

1. Cree un espacio de nombres para KEDA y el administrador de certificados.

   ```
   kubectl create namespace keda
   kubectl create namespace cert-manager
   ```

1. Cree punto de conexión de VPC de Amazon S3.

   ```
   aws ec2 create-vpc-endpoint \
   --vpc-id ${VPC_ID} \
   --vpc-endpoint-type Gateway \
   --service-name "com.amazonaws.${REGION}.s3" \
   --route-table-ids $(aws ec2 describe-route-tables --filters "Name=vpc-id,Values=${VPC_ID}" --query 'RouteTables[].Associations[].RouteTableId' --output text | tr ' ' '\n' | sort -u | tr '\n' ' ')
   ```

1. Configure el acceso al almacenamiento de S3:

   1. Cree una política de IAM que conceda los permisos de S3 necesarios para usar Mountpoint para Amazon S3, de manera que los buckets de S3 puedan acceder al sistema de archivos desde el clúster.

      ```
      %%bash -x
      
      export S3_CSI_BUCKET_NAME=“<bucketname_for_mounting_through_filesystem>”
      
      cat <<EOF> s3accesspolicy.json
      {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          
          {
              "Sid": "MountpointAccess",
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetObject",
                  "s3:PutObject",
                  "s3:AbortMultipartUpload",
                  "s3:DeleteObject"
              ],
              "Resource": [
                      "arn:aws:s3:::${S3_CSI_BUCKET_NAME}",
                      "arn:aws:s3:::${S3_CSI_BUCKET_NAME}/*"
              ]
          }
      ]
      }
      EOF
      
      aws iam create-policy \
      --policy-name S3MountpointAccessPolicy \
      --policy-document file://s3accesspolicy.json
      
      cat <<EOF> s3accesstrustpolicy.json
      {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/${OIDC_ID}"
              },
              "Action": "sts:AssumeRoleWithWebIdentity",
              "Condition": {
                  "StringEquals": {
                      "oidc.eks.$REGION.amazonaws.com/id/${OIDC_ID}:aud": "sts.amazonaws.com",
                      "oidc.eks.$REGION.amazonaws.com/id/${OIDC_ID}:sub": "system:serviceaccount:kube-system:${s3-csi-driver-sa}"
                  }
              }
          }
      ]
      }
      EOF
      
      aws iam create-role --role-name $S3_CSI_ROLE_NAME --assume-role-policy-document file://s3accesstrustpolicy.json
      
      aws iam attach-role-policy --role-name $S3_CSI_ROLE_NAME --policy-arn "arn:aws:iam::$ACCOUNT_ID:policy/S3MountpointAccessPolicy"
      ```

   1. (Opcional) Cree una cuenta de servicio de IAM para el controlador CSI de Amazon S3. El controlador CSI de Amazon S3 requiere una cuenta de servicio de IAM con los permisos adecuados para montar buckets S3 como volúmenes persistentes en su clúster de Amazon EKS. Este paso crea el rol de IAM y la cuenta de servicio de Kubernetes necesarios con la política de acceso a S3 requerida.

      ```
      %%bash -x 
      
      export S3_CSI_ROLE_NAME="SM_HP_S3_CSI_ROLE-$REGION"
      export S3_CSI_POLICY_ARN=$(aws iam list-policies --query 'Policies[?PolicyName==`S3MountpointAccessPolicy`]' | jq '.[0].Arn' |  tr -d '"')
      
      eksctl create iamserviceaccount \
      --name s3-csi-driver-sa \
      --namespace kube-system \
      --cluster $EKS_CLUSTER_NAME \
      --attach-policy-arn $S3_CSI_POLICY_ARN \
      --approve \
      --role-name $S3_CSI_ROLE_NAME \
      --region $REGION 
      
      kubectl label serviceaccount s3-csi-driver-sa app.kubernetes.io/component=csi-driver app.kubernetes.io/instance=aws-mountpoint-s3-csi-driver app.kubernetes.io/managed-by=EKS app.kubernetes.io/name=aws-mountpoint-s3-csi-driver -n kube-system --overwrite
      ```

   1. (Opcional) Instale el complemento del controlador CSI de Amazon S3. Este controlador permite que los pods monten buckets de S3 como volúmenes persistentes, lo que proporciona acceso directo al almacenamiento de S3 desde las cargas de trabajo de Kubernetes.

      ```
      %%bash -x
      
      export S3_CSI_ROLE_ARN=$(aws iam get-role --role-name $S3_CSI_ROLE_NAME  --query 'Role.Arn' --output text)
      eksctl create addon --name aws-mountpoint-s3-csi-driver --cluster $EKS_CLUSTER_NAME --service-account-role-arn $S3_CSI_ROLE_ARN --force
      ```

   1. (Opcional) Cree una reclamación de volumen persistente (PVC) para el almacenamiento de S3. Esta PVC permite a los pods solicitar y utilizar el almacenamiento de S3 como si se tratara de un sistema de archivos tradicional.

      ```
      %%bash -x 
      
      cat <<EOF> pvc_s3.yaml
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
      name: s3-claim
      spec:
      accessModes:
      - ReadWriteMany # supported options: ReadWriteMany / ReadOnlyMany
      storageClassName: "" # required for static provisioning
      resources:
      requests:
          storage: 1200Gi # ignored, required
      volumeName: s3-pv
      EOF
      
      kubectl apply -f pvc_s3.yaml
      ```

1. (Opcional) Configure FSx el acceso al almacenamiento. Cree una cuenta de servicio de IAM para el controlador Amazon FSx CSI. El conductor de FSx CSI utilizará esta cuenta de servicio para interactuar con el FSx servicio de Amazon en nombre de tu clúster.

   ```
   %%bash -x 
   
   
   eksctl create iamserviceaccount \
   --name fsx-csi-controller-sa \
   --namespace kube-system \
   --cluster $EKS_CLUSTER_NAME \
   --attach-policy-arn arn:aws:iam::aws:policy/AmazonFSxFullAccess \
   --approve \
   --role-name FSXLCSI-${EKS_CLUSTER_NAME}-${REGION} \
   --region $REGION
   ```

### Creación del rol del operador de KEDA
<a name="sagemaker-hyperpod-model-deployment-setup-keda"></a>

1. Cree la política de confianza y la política de permisos.

   ```
   # Create trust policy
   cat <<EOF > /tmp/keda-trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
               "StringLike": {
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:kube-system:keda-operator",
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
               }
           }
       }
   ]
   }
   EOF
   # Create permissions policy
   cat <<EOF > /tmp/keda-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "cloudwatch:GetMetricData",
               "cloudwatch:GetMetricStatistics",
               "cloudwatch:ListMetrics"
           ],
           "Resource": "*"
       },
       {
           "Effect": "Allow",
           "Action": [
               "aps:QueryMetrics",
               "aps:GetLabels",
               "aps:GetSeries",
               "aps:GetMetricMetadata"
           ],
           "Resource": "*"
       }
   ]
   }
   EOF
   # Create the role
   aws iam create-role \
   --role-name keda-operator-role \
   --assume-role-policy-document file:///tmp/keda-trust-policy.json
   # Create the policy
   KEDA_POLICY_ARN=$(aws iam create-policy \
   --policy-name KedaOperatorPolicy \
   --policy-document file:///tmp/keda-policy.json \
   --query 'Policy.Arn' \
   --output text)
   # Attach the policy to the role
   aws iam attach-role-policy \
   --role-name keda-operator-role \
   --policy-arn $KEDA_POLICY_ARN
   ```

1. Si utiliza modelos cerrados, cree un rol de IAM para acceder a ellos.

   1. Cree la política de confianza y la función de IAM para el acceso mediante un modelo cerrado.

      ```
      %%bash -s $REGION
      
      JUMPSTART_GATED_ROLE_NAME="JumpstartGatedRole-${REGION}-${HYPERPOD_CLUSTER_NAME}"
      
      cat <<EOF > /tmp/trust-policy.json
      {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
              },
              "Action": "sts:AssumeRoleWithWebIdentity",
              "Condition": {
                  "StringLike": {
                      "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:*:hyperpod-inference-service-account*",
                      "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
                  }
              }
          },
              {
              "Effect": "Allow",
              "Principal": {
                  "Service": "sagemaker.amazonaws.com"
              },
              "Action": "sts:AssumeRole"
          }
      ]
      }
      EOF
      
      # Create the role and attach the managed policy
      aws iam create-role \
      --role-name $JUMPSTART_GATED_ROLE_NAME \
      --assume-role-policy-document file:///tmp/trust-policy.json
      
      aws iam attach-role-policy \
      --role-name $JUMPSTART_GATED_ROLE_NAME \
      --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerHyperPodGatedModelAccess
      ```

      ```
      JUMPSTART_GATED_ROLE_ARN_LIST= !aws iam get-role --role-name=$JUMPSTART_GATED_ROLE_NAME --query "Role.Arn" --output text
      JUMPSTART_GATED_ROLE_ARN = JUMPSTART_GATED_ROLE_ARN_LIST[0]
      !echo $JUMPSTART_GATED_ROLE_ARN
      ```

### Instalación del operador de inferencia
<a name="sagemaker-hyperpod-model-deployment-setup-install"></a>

1. Instale el operador de HyperPod inferencia. Este paso recopila los identificadores de recursos de AWS necesarios y genera el comando de instalación de Helm con los parámetros de configuración adecuados.

   Acceda al diagrama de timón desde [https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm\$1chart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart).

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-cli
   cd sagemaker-hyperpod-cli
   cd helm_chart/HyperPodHelmChart
   helm dependencies update charts/inference-operator
   ```

   ```
   %%bash -x
   
   HYPERPOD_INFERENCE_ROLE_ARN=$(aws iam get-role --role-name=$HYPERPOD_INFERENCE_ROLE_NAME --query "Role.Arn" --output text)
   echo $HYPERPOD_INFERENCE_ROLE_ARN
   
   S3_CSI_ROLE_ARN=$(aws iam get-role --role-name=$S3_CSI_ROLE_NAME --query "Role.Arn" --output text)
   echo $S3_CSI_ROLE_ARN
   
   HYPERPOD_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME --query "ClusterArn")
   
   # Verify values
   echo "Cluster Name: $EKS_CLUSTER_NAME"
   echo "Execution Role: $HYPERPOD_INFERENCE_ROLE_ARN"
   echo "Hyperpod ARN: $HYPERPOD_CLUSTER_ARN"
   # Run the the HyperPod inference operator installation. 
   
   helm install hyperpod-inference-operator charts/inference-operator \
   -n kube-system \
   --set region=$REGION \
   --set eksClusterName=$EKS_CLUSTER_NAME \
   --set hyperpodClusterArn=$HYPERPOD_CLUSTER_ARN \
   --set executionRoleArn=$HYPERPOD_INFERENCE_ROLE_ARN \
   --set s3.serviceAccountRoleArn=$S3_CSI_ROLE_ARN \
   --set s3.node.serviceAccount.create=false \
   --set keda.podIdentity.aws.irsa.roleArn="arn:aws:iam::$ACCOUNT_ID:role/keda-operator-role" \
   --set tlsCertificateS3Bucket="s3://$BUCKET_NAME" \
   --set alb.region=$REGION \
   --set alb.clusterName=$EKS_CLUSTER_NAME \
   --set alb.vpcId=$VPC_ID
   
   # For JumpStart Gated Model usage, Add
   # --set jumpstartGatedModelDownloadRoleArn=$UMPSTART_GATED_ROLE_ARN
   ```

1. Configure las anotaciones de la cuenta de servicio para la integración de IAM. Esta anotación permite que la cuenta de servicio del operador asuma los permisos de IAM necesarios para administrar los puntos de conexión de inferencia e interactuar con los servicios de AWS .

   ```
   %%bash -x 
   
   EKS_CLUSTER_ROLE_NAME=$(echo $EKS_CLUSTER_ROLE | sed 's/.*\///')
   
   # Annotate service account
   kubectl annotate serviceaccount hyperpod-inference-operator-controller-manager \
   -n hyperpod-inference-system \
   eks.amazonaws.com/role-arn=arn:aws:iam::${ACCOUNT_ID}:role/${EKS_CLUSTER_ROLE_NAME} \
   --overwrite
   ```

## Comprobación de que el operador de inferencia funciona
<a name="sagemaker-hyperpod-model-deployment-setup-verify"></a>

Siga estos pasos para comprobar que la instalación del operador de inferencia funciona correctamente mediante la implementación y la prueba de un modelo sencillo.

**Implemente un modelo de prueba para verificar el operador**

1. Cree un archivo de configuración de implementación de modelos. Esto crea un archivo de manifiesto de Kubernetes que define el despliegue de un JumpStart modelo para el HyperPod operador de inferencia.

   ```
   cat <<EOF>> simple_model_install.yaml
   ---
   apiVersion: inference.sagemaker.aws.amazon.com/v1
   kind: JumpStartModel
   metadata:
   name: testing-deployment-bert
   namespace: default
   spec:
   model:
   modelId: "huggingface-eqa-bert-base-cased"
   sageMakerEndpoint:
   name: "hp-inf-ep-for-testing"
   server:
   instanceType: "ml.c5.2xlarge"
   environmentVariables:
   - name: SAMPLE_ENV_VAR
       value: "sample_value"
   maxDeployTimeInSeconds: 1800
   EOF
   ```

1. Implemente el modelo y limpie el archivo de configuración.

   ```
   kubectl create -f simple_model_install.yaml
   rm -f simple_model_install.yaml
   ```

1. Verifique la configuración de la cuenta de servicio para asegurarse de que el operador pueda asumir los permisos. AWS 

   ```
   # Get the service account details
   kubectl get serviceaccount -n hyperpod-inference-system
   
   # Check if the service account has the AWS annotations
   kubectl describe serviceaccount hyperpod-inference-operator-controller-manager -n hyperpod-inference-system
   ```

**Configure los ajustes de implementación (si usa la interfaz de usuario de Studio)**

1. Revisa el tipo de instancia recomendado en la sección **Configuración de implementación**.

1. Si vas a modificar el **tipo de instancia**, asegúrate de que sea compatible con tu HyperPod clúster. Ponte en contacto con tu administrador si las instancias compatibles no están disponibles.

1. Para las instancias particionadas por GPU con MIG habilitado, selecciona una **partición de GPU adecuada de entre los perfiles MIG disponibles para optimizar el uso de la GPU**. Para obtener más información, consulte [Uso de particiones de GPU en Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

1. Si utilizas el gobierno de tareas, configura los ajustes de prioridad para las capacidades de prevención del despliegue del modelo.

1. Introduzca el espacio de nombres proporcionado por su administrador. Si es necesario, ponte en contacto con tu administrador para obtener el espacio de nombres correcto.

## (Opcional) Configura el acceso de los usuarios a través de la JumpStart interfaz de usuario de SageMaker AI Studio Classic
<a name="sagemaker-hyperpod-model-deployment-setup-optional-js"></a>

Para obtener más información sobre cómo configurar el SageMaker HyperPod acceso para los usuarios de Studio Classic y configurar los permisos RBAC detallados de Kubernetes para los usuarios de científicos de datos, lee y. [Configuración de un clúster de Amazon EKS en Studio](sagemaker-hyperpod-studio-setup-eks.md) [Configuración del control de acceso basado en roles de Kubernetes](sagemaker-hyperpod-eks-setup-rbac.md)

1. Identifique la función de IAM que los usuarios de Data Scientist utilizarán para gestionar e implementar modelos desde AI Studio Classic. SageMaker HyperPod SageMaker Suele ser el rol de ejecución del perfil de usuario o el rol de ejecución del dominio para el usuario de Studio Classic.

   ```
   %%bash -x
   
   export DATASCIENTIST_ROLE_NAME="<Execution Role Name used in SageMaker Studio Classic>"
   
   export DATASCIENTIST_POLICY_NAME="HyperPodUIAccessPolicy"
   export EKS_CLUSTER_ARN=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
     --query 'Orchestrator.Eks.ClusterArn' --output text)
   
   export DATASCIENTIST_HYPERPOD_NAMESPACE="team-namespace"
   ```

1. Asocie una política de identidad que permita acceder a la implementación del modelo.

   ```
   %%bash -x
   
   # Create access policy
   cat << EOF > hyperpod-deployment-ui-access-policy.json
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DescribeHyerpodClusterPermissions",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeCluster"
               ],
               "Resource": "$HYPERPOD_CLUSTER_ARN"
           },
           {
               "Sid": "UseEksClusterPermissions",
               "Effect": "Allow",
               "Action": [
                   "eks:DescribeCluster",
                   "eks:AccessKubernetesApi",
                   "eks:MutateViaKubernetesApi",
                   "eks:DescribeAddon"
               ],
               "Resource": "$EKS_CLUSTER_ARN"
           },
           {
               "Sid": "ListPermission",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:ListClusters",
                   "sagemaker:ListEndpoints"
               ],
               "Resource": "*"
           },
           {
               "Sid": "SageMakerEndpointAccess",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeEndpoint",
                   "sagemaker:InvokeEndpoint"
               ],
               "Resource": "arn:aws:sagemaker:$REGION:$ACCOUNT_ID:endpoint/*"
           }
       ]
   }
   EOF
   
   aws iam put-role-policy --role-name DATASCIENTIST_ROLE_NAME --policy-name HyperPodDeploymentUIAccessInlinePolicy --policy-document file://hyperpod-deployment-ui-access-policy.json
   ```

1. Cree una entrada de acceso a EKS para el usuario que la asigne a un grupo de Kubernetes.

   ```
   %%bash -x
   
   aws eks create-access-entry --cluster-name $EKS_CLUSTER_NAME \
       --principal-arn "arn:aws:iam::$ACCOUNT_ID:role/$DATASCIENTIST_ROLE_NAME" \
       --kubernetes-groups '["hyperpod-scientist-user-namespace-level","hyperpod-scientist-user-cluster-level"]'
   ```

1. Cree políticas de RBAC de Kubernetes para el usuario.

   ```
   %%bash -x
   
   cat << EOF > cluster_level_config.yaml
   kind: ClusterRole
   apiVersion: rbac.authorization.k8s.io/v1
   metadata:
     name: hyperpod-scientist-user-cluster-role
   rules:
   - apiGroups: [""]
     resources: ["pods"]
     verbs: ["list"]
   - apiGroups: [""]
     resources: ["nodes"]
     verbs: ["list"]
   - apiGroups: [""]
     resources: ["namespaces"]
     verbs: ["list"]
   ---
   apiVersion: rbac.authorization.k8s.io/v1
   kind: ClusterRoleBinding
   metadata:
     name: hyperpod-scientist-user-cluster-role-binding
   subjects:
   - kind: Group
     name: hyperpod-scientist-user-cluster-level
     apiGroup: rbac.authorization.k8s.io
   roleRef:
     kind: ClusterRole
     name: hyperpod-scientist-user-cluster-role
     apiGroup: rbac.authorization.k8s.io
   EOF
   
   
   kubectl apply -f cluster_level_config.yaml
   
   
   cat << EOF > namespace_level_role.yaml
   kind: Role
   apiVersion: rbac.authorization.k8s.io/v1
   metadata:
     namespace: $DATASCIENTIST_HYPERPOD_NAMESPACE
     name: hyperpod-scientist-user-namespace-level-role
   rules:
   - apiGroups: [""]
     resources: ["pods"]
     verbs: ["create", "get"]
   - apiGroups: [""]
     resources: ["nodes"]
     verbs: ["get", "list"]
   - apiGroups: [""]
     resources: ["pods/log"]
     verbs: ["get", "list"]
   - apiGroups: [""]
     resources: ["pods/exec"]
     verbs: ["get", "create"]
   - apiGroups: ["kubeflow.org"]
     resources: ["pytorchjobs", "pytorchjobs/status"]
     verbs: ["get", "list", "create", "delete", "update", "describe"]
   - apiGroups: [""]
     resources: ["configmaps"]
     verbs: ["create", "update", "get", "list", "delete"]
   - apiGroups: [""]
     resources: ["secrets"]
     verbs: ["create", "get", "list", "delete"]
   - apiGroups: [ "inference.sagemaker.aws.amazon.com" ]
     resources: [ "inferenceendpointconfig", "inferenceendpoint", "jumpstartmodel" ]
     verbs: [ "get", "list", "create", "delete", "update", "describe" ]
   - apiGroups: [ "autoscaling" ]
     resources: [ "horizontalpodautoscalers" ]
     verbs: [ "get", "list", "watch", "create", "update", "patch", "delete" ]
   ---
   apiVersion: rbac.authorization.k8s.io/v1
   kind: RoleBinding
   metadata:
     namespace: $DATASCIENTIST_HYPERPOD_NAMESPACE
     name: hyperpod-scientist-user-namespace-level-role-binding
   subjects:
   - kind: Group
     name: hyperpod-scientist-user-namespace-level
     apiGroup: rbac.authorization.k8s.io
   roleRef:
     kind: Role
     name: hyperpod-scientist-user-namespace-level-role
     apiGroup: rbac.authorization.k8s.io
   EOF
   
   
   kubectl apply -f namespace_level_role.yaml
   ```

# Implementación de modelos fundacionales y modelos de ajuste fino personalizados
<a name="sagemaker-hyperpod-model-deployment-deploy"></a>

Ya sea que esté implementando modelos básicos preentrenados de contrapesos o cerrados de Amazon SageMaker JumpStart o sus propios modelos personalizados o ajustados almacenados en Amazon S3 o Amazon FSx, SageMaker HyperPod proporciona la infraestructura flexible y escalable que necesita para las cargas de trabajo de inferencia de producción.




****  

|  | Implemente modelos de bases abiertas y cerradas desde JumpStart | Implemente modelos personalizados y ajustados de Amazon S3 y Amazon FSx | 
| --- | --- | --- | 
| Descripción |  Implemente desde un catálogo completo de modelos fundacionales previamente entrenados con políticas de escalado y optimización automáticas adaptadas a cada familia de modelos.  | Utilice sus propios modelos personalizados y ajustados y aproveche la infraestructura empresarial de la empresa para realizar inferencias a SageMaker HyperPod escala de producción. Elija entre un almacenamiento rentable con Amazon S3 o un sistema de archivos de alto rendimiento con Amazon FSx. | 
| Ventajas principales | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html)  | 
| Opciones de implementación |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html)  | 

En las siguientes secciones, se explica cómo implementar modelos de Amazon SageMaker JumpStart y Amazon S3 y Amazon FSx.

**Topics**
+ [Implemente modelos a JumpStart partir de Amazon SageMaker Studio](sagemaker-hyperpod-model-deployment-deploy-js-ui.md)
+ [Implemente modelos JumpStart utilizando kubectl](sagemaker-hyperpod-model-deployment-deploy-js-kubectl.md)
+ [Implemente modelos personalizados y ajustados de Amazon S3 y Amazon mediante kubectl FSx](sagemaker-hyperpod-model-deployment-deploy-ftm.md)
+ [Implementación de modelos de ajuste fino personalizados desde el SDK de Python y la CLI de HyperPod](deploy-trained-model.md) 
+ [Implemente modelos de Amazon SageMaker JumpStart mediante el SDK de Python y HPCLI](deploy-jumpstart-model.md) 

# Implemente modelos a JumpStart partir de Amazon SageMaker Studio
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui"></a>

En los siguientes pasos, se explica cómo implementar modelos JumpStart con Amazon SageMaker Studio.

## Requisitos previos
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-prereqs"></a>

Compruebe que ha configurado las capacidades de inferencia en sus SageMaker HyperPod clústeres de Amazon. Para obtener más información, consulte [Configuración de los HyperPod clústeres para la implementación de modelos](sagemaker-hyperpod-model-deployment-setup.md). 

## Cree un despliegue HyperPod
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-create"></a>

1. En Amazon SageMaker Studio, abre la página de **JumpStart**destino desde el panel de navegación izquierdo. 

1. En **Todos los modelos públicos**, elija el modelo que desee implementar.
**nota**  
Si ha seleccionado un modelo cerrado, tendrá que aceptar el Acuerdo de licencia de usuario final (EULA).

1. Elija **SageMaker HyperPod**.

1. En **Configuración de implementación**, JumpStart recomendará una instancia para la implementación. Puede modificar la configuración si es necesario.

   1. Si modificas el **tipo de instancia**, asegúrate de que sea compatible con el **HyperPod clúster** elegido. Si no hay instancias compatibles, tendrás que seleccionar un **HyperPod clúster** nuevo o ponerte en contacto con tu administrador para añadir instancias compatibles al clúster.

   1. Para priorizar la implementación del modelo, instale el complemento de gobernanza de tareas, cree asignaciones de recursos de computación y configure las clasificaciones de las tareas para la política de clústeres. Una vez hecho esto, debería aparecer una opción para seleccionar una prioridad para la implementación del modelo que se puede usar como prioridad para otras implementaciones y tareas del clúster. 

   1. Introduzca el espacio de nombres al que le ha dado acceso su administrador. Puede que tenga que contactar directamente con el administrador para obtener el espacio de nombres exacto. Después de proporcionar un espacio de nombres válido, se debe activar el botón **Implementar** para implementar el modelo.

   1. Si tu tipo de instancia está particionado (compatible con MIG), selecciona un tipo de **partición de GPU**.

   1. Si quieres habilitar el enrutamiento inteligente KVCache o de nivel 2 para acelerar la inferencia de LLM, actívalos. De forma predeterminada, solo la caché de nivel 1 KB está habilitada. Para obtener más información sobre el KVCache enrutamiento inteligente, consulte el [SageMaker HyperPod modelo](sagemaker-hyperpod-model-deployment.md) de implementación.

1. Elija **Implementar** y espere a que se cree el **Punto de conexión**.

1. Una vez creado el **Punto de conexión**, seleccione **Probar inferencia**.

## Edite una HyperPod implementación
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-edit"></a>

1. En Amazon SageMaker Studio, selecciona **Compute** y, a continuación, **HyperPodclústeres** en el panel de navegación izquierdo. 

1. En **Implementaciones**, elige la implementación del HyperPod clúster que deseas modificar.

1. En el icono de puntos suspensivos verticales (⋮), seleccione **Editar**.

1. En **Configuración de la implementación**, puede activar o desactivar **Escalado automático** y cambiar **Número máximo de réplicas**.

1. Seleccione **Guardar**.

1. El **Estado** cambiará a **Actualización**. Cuando vuelva a **En servicio**, los cambios se completarán y verá un mensaje que los confirma.

## Elimine una implementación HyperPod
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-delete"></a>

1. En Amazon SageMaker Studio, selecciona **Compute** y, a continuación, **HyperPodclústeres** en el panel de navegación izquierdo. 

1. En **Implementaciones**, elige la implementación del HyperPod clúster que deseas modificar.

1. En el icono de puntos suspensivos verticales (⋮), elija **Eliminar**.

1. En la **ventana Eliminar HyperPod despliegue**, seleccione la casilla de verificación.

1. Elija **Eliminar**.

1. El **Estado** cambiará a **Eliminando**. Una vez que se haya eliminado la HyperPod implementación, verás un mensaje que la confirma.

# Implemente modelos JumpStart utilizando kubectl
<a name="sagemaker-hyperpod-model-deployment-deploy-js-kubectl"></a>

Los siguientes pasos muestran cómo implementar un JumpStart modelo en un HyperPod clúster mediante kubectl.

Las siguientes instrucciones contienen celdas de código y comandos diseñados para ejecutarse en una terminal. Asegúrese de haber configurado su entorno con AWS credenciales antes de ejecutar estos comandos. 

## Requisitos previos
<a name="kubectl-prerequisites"></a>

Antes de comenzar, compruebe que: 
+ Configure las capacidades de inferencia en sus SageMaker HyperPod clústeres de Amazon. Para obtener más información, consulte [Configuración de los HyperPod clústeres para la implementación de modelos](sagemaker-hyperpod-model-deployment-setup.md).
+ Ha instalado la utilidad [kubectl](https://kubernetes.io/docs/reference/kubectl/) y configurado [jq](https://jqlang.org/) en su terminal.

## Ajustes y configuración
<a name="kubectl-prerequisites-setup-and-configuration"></a>

1. Elija su región.

   ```
   export REGION=<region>
   ```

1. Vea todos los modelos y HyperPod clústeres de centros SageMaker públicos.

1. Seleccione uno `JumpstartModel` de JumpstartPublic Hub. JumpstartPublic El hub tiene una gran cantidad de modelos disponibles, por lo que puede utilizar `NextToken` para enumerar de forma iterativa todos los modelos disponibles en el hub público.

   ```
   aws sagemaker list-hub-contents --hub-name SageMakerPublicHub --hub-content-type Model --query '{Models: HubContentSummaries[].{ModelId:HubContentName,Version:HubContentVersion}, NextToken: NextToken}' --output json
   ```

   ```
   export MODEL_ID="deepseek-llm-r1-distill-qwen-1-5b"
   export MODEL_VERSION="2.0.4"
   ```

1. Configure el ID del modelo y el nombre del clúster que ha seleccionado en las siguientes variables.
**nota**  
Consulte con el administrador del clúster para asegurarse de que se concedan los permisos a ese rol o usuario. Puede ejecutar `!aws sts get-caller-identity --query "Arn"` para comprobar qué rol o usuario se está utilizando en la terminal.

   ```
   aws sagemaker list-clusters --output table
   
   # Select the cluster name where you want to deploy the model.
   export HYPERPOD_CLUSTER_NAME="<insert cluster name here>"
   
   # Select the instance that is relevant for your model deployment and exists within the selected cluster.
   # List availble instances in your HyperPod cluster
   aws sagemaker describe-cluster --cluster-name=$HYPERPOD_CLUSTER_NAME --query "InstanceGroups[].{InstanceType:InstanceType,Count:CurrentCount}" --output table
   
   # List supported instance types for the selected model
   aws sagemaker describe-hub-content --hub-name SageMakerPublicHub --hub-content-type Model --hub-content-name "$MODEL_ID" --output json | jq -r '.HubContentDocument | fromjson | {Default: .DefaultInferenceInstanceType, Supported: .SupportedInferenceInstanceTypes}'
   
   
   # Select and instance type from the cluster that is compatible with the model. 
   # Make sure that the selected instance is either default or supported instance type for the jumpstart model 
   export INSTANCE_TYPE="<Instance_type_In_cluster"
   ```

1. Confirme con el administrador del clúster qué espacio de nombres se pueden usar. El administrador debería haber creado una cuenta de servicio `hyperpod-inference` en su espacio de nombres.

   ```
   export CLUSTER_NAMESPACE="default"
   ```

1. Establezca un nombre para el punto de conexión y el objeto personalizado que se va a crear.

   ```
   export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
   ```

1. A continuación, se muestra un ejemplo de implementación de un modelo `deepseek-llm-r1-distill-qwen-1-5b` desde Jumpstart. Cree un archivo yaml de implementación similar basado en el modelo seleccionado en el paso anterior.
**nota**  
Si su clúster utiliza particiones de GPU con MIG, puede solicitar perfiles MIG específicos añadiendo el `acceleratorPartitionType` campo a la especificación del servidor. Para obtener más información, consulte [Envío de tareas con MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md).

   ```
   cat << EOF > jumpstart_model.yaml
   ---
   apiVersion: inference.sagemaker.aws.amazon.com/v1
   kind: JumpStartModel
   metadata:
     name: $SAGEMAKER_ENDPOINT_NAME
     namespace: $CLUSTER_NAMESPACE 
   spec:
     sageMakerEndpoint:
       name: $SAGEMAKER_ENDPOINT_NAME
     model:
       modelHubName: SageMakerPublicHub
       modelId: $MODEL_ID
       modelVersion: $MODEL_VERSION
     server:
       instanceType: $INSTANCE_TYPE
       # Optional: Specify GPU partition profile for MIG-enabled instances
       # acceleratorPartitionType: "1g.10gb"
     metrics:
       enabled: true
     environmentVariables:
       - name: SAMPLE_ENV_VAR
         value: "sample_value"
     maxDeployTimeInSeconds: 1800
     autoScalingSpec:
       cloudWatchTrigger:
         name: "SageMaker-Invocations"
         namespace: "AWS/SageMaker"
         useCachedMetrics: false
         metricName: "Invocations"
         targetValue: 10
         minValue: 0.0
         metricCollectionPeriod: 30
         metricStat: "Sum"
         metricType: "Average"
         dimensions:
           - name: "EndpointName"
             value: "$SAGEMAKER_ENDPOINT_NAME"
           - name: "VariantName"
             value: "AllTraffic"
   EOF
   ```

## Implementación del modelo
<a name="kubectl-deploy-your-model"></a>

**Actualización de la configuración de Kubernetes e implementación del modelo**

1. Configure kubectl para conectarse al HyperPod clúster organizado por Amazon EKS.

   ```
   export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
     --query 'Orchestrator.Eks.ClusterArn' --output text | \
     cut -d'/' -f2)
   aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
   ```

1. Implemente su modelo. JumpStart 

   ```
   kubectl apply -f jumpstart_model.yaml
   ```

**Supervisión del estado de la implementación del modelo**

1. Compruebe que el modelo se haya implementado correctamente.

   ```
   kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Compruebe que el punto de conexión se haya creado correctamente.

   ```
   aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
   ```

1. Invoque el punto de conexión de su modelo. Puede obtener las cargas útiles de ejemplo del objeto `JumpStartModel` mediante programación.

   ```
   aws sagemaker-runtime invoke-endpoint \
     --endpoint-name $SAGEMAKER_ENDPOINT_NAME \
     --content-type "application/json" \
     --body '{"inputs": "What is AWS SageMaker?"}' \
     --region $REGION \
     --cli-binary-format raw-in-base64-out \
     /dev/stdout
   ```

## Administración de la implementación
<a name="kubectl-manage-your-deployment"></a>

Elimine la implementación de su JumpStart modelo cuando ya no la necesite.

```
kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
```

**Resolución de problemas**

Use estos comandos de depuración si la implementación no funciona según lo previsto.

1. Compruebe el estado de la implementación de Kubernetes. Este comando inspecciona el objeto de implementación de Kubernetes subyacente que administra los pods que ejecutan su modelo. Utilícelo para solucionar problemas relacionados con la programación de los pods, la asignación de recursos y el arranque de los contenedores.

   ```
   kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Compruebe el estado del recurso de su JumpStart modelo. Este comando examina el recurso `JumpStartModel` personalizado que administra la configuración del modelo general y el ciclo de vida de la implementación. Úselo para solucionar problemas específicos del modelo, como errores de configuración o problemas de creación de terminales de SageMaker IA.

   ```
   kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Compruebe el estado de todos los objetos de Kubernetes. Este comando proporciona una visión general completa de todos los recursos de Kubernetes relacionados en su espacio de nombres. Utilícelo para comprobar rápidamente el estado general de los pods, los servicios, las implementaciones y los recursos personalizados asociados a la implementación de su modelo.

   ```
   kubectl get pods,svc,deployment,JumpStartModel,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
   ```

# Implemente modelos personalizados y ajustados de Amazon S3 y Amazon mediante kubectl FSx
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm"></a>

Los siguientes pasos muestran cómo implementar modelos almacenados en Amazon S3 o Amazon en un SageMaker HyperPod clúster de Amazon FSx mediante kubectl. 

Las siguientes instrucciones contienen celdas de código y comandos diseñados para ejecutarse en una terminal. Asegúrese de haber configurado su entorno con AWS credenciales antes de ejecutar estos comandos.

## Requisitos previos
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-prereqs"></a>

Antes de comenzar, compruebe que: 
+ Configure las capacidades de inferencia en sus SageMaker HyperPod clústeres de Amazon. Para obtener más información, consulte [Configuración de los HyperPod clústeres para la implementación de modelos](sagemaker-hyperpod-model-deployment-setup.md).
+ Ha instalado la utilidad [kubectl](https://kubernetes.io/docs/reference/kubectl/) y configurado [jq](https://jqlang.org/) en su terminal.

## Ajustes y configuración
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-setup"></a>

Reemplace todos los valores marcadores de posición por los identificadores de recursos reales.

1. Seleccione su región en su entorno.

   ```
   export REGION=<region>
   ```

1. Inicialice el nombre de su clúster. Esto identifica el HyperPod clúster en el que se implementará el modelo.
**nota**  
Consulte con el administrador del clúster para asegurarse de que se concedan los permisos a ese rol o usuario. Puede ejecutar `!aws sts get-caller-identity --query "Arn"` para comprobar qué rol o usuario se está utilizando en la terminal.

   ```
   # Specify your hyperpod cluster name here
   HYPERPOD_CLUSTER_NAME="<Hyperpod_cluster_name>"
   
   # NOTE: For sample deployment, we use g5.8xlarge for deepseek-r1 1.5b model which has sufficient memory and GPU
   instance_type="ml.g5.8xlarge"
   ```

1. Inicialice el espacio de nombres de su clúster. El administrador del clúster ya debería haber creado una cuenta de servicio de inferencia de hiperpods en su espacio de nombres.

   ```
   cluster_namespace="<namespace>"
   ```

1. Cree una CRD con una de las siguientes opciones:

------
#### [ Using Amazon FSx as the model source ]

   1. Configure un nombre de SageMaker punto final.

      ```
      export SAGEMAKER_ENDPOINT_NAME="deepseek15b-fsx"
      ```

   1. Configura el ID del sistema de FSx archivos de Amazon que se va a utilizar.

      ```
      export FSX_FILE_SYSTEM_ID="fs-1234abcd"
      ```

   1. El siguiente es un ejemplo de un archivo yaml para crear un punto final con Amazon FSx y un DeepSeek modelo.
**nota**  
En el caso de los clústeres con la partición de GPU habilitada, `nvidia.com/gpu` sustitúyala por el nombre de recurso MIG correspondiente, por ejemplo. `nvidia.com/mig-1g.10gb` Para obtener más información, consulte [Envío de tareas con MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md).

      ```
      cat <<EOF> deploy_fsx_cluster_inference.yaml
      ---
      apiVersion: inference.sagemaker.aws.amazon.com/v1
      kind: InferenceEndpointConfig
      metadata:
        name: lmcache-test
        namespace: inf-update
      spec:
        modelName: Llama-3.1-8B-Instruct
        instanceType: ml.g5.24xlarge
        invocationEndpoint: v1/chat/completions
        replicas: 2
        modelSourceConfig:
          fsxStorage:
            fileSystemId: $FSX_FILE_SYSTEM_ID
          modelLocation: deepseek-1-5b
          modelSourceType: fsx
        worker:
          environmentVariables:
          - name: HF_MODEL_ID
            value: /opt/ml/model
          - name: SAGEMAKER_PROGRAM
            value: inference.py
          - name: SAGEMAKER_SUBMIT_DIRECTORY
            value: /opt/ml/model/code
          - name: MODEL_CACHE_ROOT
            value: /opt/ml/model
          - name: SAGEMAKER_ENV
            value: '1'
          image: 763104351884.dkr.ecr.us-east-2.amazonaws.com/huggingface-pytorch-tgi-inference:2.4.0-tgi2.3.1-gpu-py311-cu124-ubuntu22.04-v2.0
          modelInvocationPort:
            containerPort: 8080
            name: http
          modelVolumeMount:
            mountPath: /opt/ml/model
            name: model-weights
          resources:
            limits:
              nvidia.com/gpu: 1
              # For MIG-enabled instances, use: nvidia.com/mig-1g.10gb: 1
            requests:
              cpu: 30000m
              memory: 100Gi
              nvidia.com/gpu: 1
              # For MIG-enabled instances, use: nvidia.com/mig-1g.10gb: 1
      EOF
      ```

------
#### [ Using Amazon S3 as the model source ]

   1. Configure un nombre de punto SageMaker final.

      ```
      export SAGEMAKER_ENDPOINT_NAME="deepseek15b-s3"
      ```

   1. Configure la ubicación del bucket de Amazon S3 donde se encuentra el modelo.

      ```
      export S3_MODEL_LOCATION="deepseek-qwen-1-5b"
      ```

   1. El siguiente es un ejemplo de archivo yaml para crear un punto final con Amazon S3 y un DeepSeek modelo.
**nota**  
Para los clústeres con la partición de GPU habilitada, `nvidia.com/gpu` sustitúyala por el nombre de recurso MIG correspondiente, como. `nvidia.com/mig-1g.10gb` Para obtener más información, consulte [Envío de tareas con MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md).

      ```
      cat <<EOF> deploy_s3_inference.yaml
      ---
      apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1
      kind: InferenceEndpointConfig
      metadata:
        name: $SAGEMAKER_ENDPOINT_NAME
        namespace: $CLUSTER_NAMESPACE
      spec:
        modelName: deepseek15b
        endpointName: $SAGEMAKER_ENDPOINT_NAME
        instanceType: ml.g5.8xlarge
        invocationEndpoint: invocations
        modelSourceConfig:
          modelSourceType: s3
          s3Storage:
            bucketName: $S3_MODEL_LOCATION
            region: $REGION
          modelLocation: deepseek15b
          prefetchEnabled: true
        worker:
          resources:
            limits:
              nvidia.com/gpu: 1
              # For MIG-enabled instances, use: nvidia.com/mig-1g.10gb: 1
            requests:
              nvidia.com/gpu: 1
              # For MIG-enabled instances, use: nvidia.com/mig-1g.10gb: 1
              cpu: 25600m
              memory: 102Gi
          image: 763104351884.dkr.ecr.us-east-2.amazonaws.com/djl-inference:0.32.0-lmi14.0.0-cu124
          modelInvocationPort:
            containerPort: 8000
            name: http
          modelVolumeMount:
            name: model-weights
            mountPath: /opt/ml/model
          environmentVariables:
            - name: PYTHONHASHSEED
              value: "123"
            - name: OPTION_ROLLING_BATCH
              value: "vllm"
            - name: SERVING_CHUNKED_READ_TIMEOUT
              value: "480"
            - name: DJL_OFFLINE
              value: "true"
            - name: NUM_SHARD
              value: "1"
            - name: SAGEMAKER_PROGRAM
              value: "inference.py"
            - name: SAGEMAKER_SUBMIT_DIRECTORY
              value: "/opt/ml/model/code"
            - name: MODEL_CACHE_ROOT
              value: "/opt/ml/model"
            - name: SAGEMAKER_MODEL_SERVER_WORKERS
              value: "1"
            - name: SAGEMAKER_MODEL_SERVER_TIMEOUT
              value: "3600"
            - name: OPTION_TRUST_REMOTE_CODE
              value: "true"
            - name: OPTION_ENABLE_REASONING
              value: "true"
            - name: OPTION_REASONING_PARSER
              value: "deepseek_r1"
            - name: SAGEMAKER_CONTAINER_LOG_LEVEL
              value: "20"
            - name: SAGEMAKER_ENV
              value: "1"
            - name: MODEL_SERVER_TYPE
              value: "vllm"
            - name: SESSION_KEY
              value: "x-user-id"
      EOF
      ```

------
#### [ Using Amazon S3 as the model source ]

   1. Configure un nombre de punto SageMaker final.

      ```
      export SAGEMAKER_ENDPOINT_NAME="deepseek15b-s3"
      ```

   1. Configure la ubicación del bucket de Amazon S3 donde se encuentra el modelo.

      ```
      export S3_MODEL_LOCATION="deepseek-qwen-1-5b"
      ```

   1. El siguiente es un ejemplo de archivo yaml para crear un punto final con Amazon S3 y un DeepSeek modelo.

      ```
      cat <<EOF> deploy_s3_inference.yaml
      ---
      apiVersion: inference.sagemaker.aws.amazon.com/v1
      kind: InferenceEndpointConfig
      metadata:
        name: lmcache-test
        namespace: inf-update
      spec:
        modelName: Llama-3.1-8B-Instruct
        instanceType: ml.g5.24xlarge
        invocationEndpoint: v1/chat/completions
        replicas: 2
        modelSourceConfig:
          modelSourceType: s3
          s3Storage:
            bucketName: bugbash-ada-resources
            region: us-west-2
          modelLocation: models/Llama-3.1-8B-Instruct
          prefetchEnabled: false
        kvCacheSpec:
          enableL1Cache: true
      #    enableL2Cache: true
      #    l2CacheSpec:
      #      l2CacheBackend: redis/sagemaker
      #      l2CacheLocalUrl: redis://redis.redis-system.svc.cluster.local:6379
        intelligentRoutingSpec:
          enabled: true
        tlsConfig:
          tlsCertificateOutputS3Uri: s3://sagemaker-lmcache-fceb9062-tls-6f6ee470
        metrics:
          enabled: true
          modelMetrics:
            port: 8000
        loadBalancer:
          healthCheckPath: /health
        worker:
          resources:
            limits:
              nvidia.com/gpu: "4"
            requests:
              cpu: "6"
              memory: 30Gi
              nvidia.com/gpu: "4"
          image: lmcache/vllm-openai:latest
          args:
            - "/opt/ml/model"
            - "--max-model-len"
            - "20000"
            - "--tensor-parallel-size"
            - "4"
          modelInvocationPort:
            containerPort: 8000
            name: http
          modelVolumeMount:
            name: model-weights
            mountPath: /opt/ml/model
          environmentVariables:
            - name: PYTHONHASHSEED
              value: "123"
            - name: OPTION_ROLLING_BATCH
              value: "vllm"
            - name: SERVING_CHUNKED_READ_TIMEOUT
              value: "480"
            - name: DJL_OFFLINE
              value: "true"
            - name: NUM_SHARD
              value: "1"
            - name: SAGEMAKER_PROGRAM
              value: "inference.py"
            - name: SAGEMAKER_SUBMIT_DIRECTORY
              value: "/opt/ml/model/code"
            - name: MODEL_CACHE_ROOT
              value: "/opt/ml/model"
            - name: SAGEMAKER_MODEL_SERVER_WORKERS
              value: "1"
            - name: SAGEMAKER_MODEL_SERVER_TIMEOUT
              value: "3600"
            - name: OPTION_TRUST_REMOTE_CODE
              value: "true"
            - name: OPTION_ENABLE_REASONING
              value: "true"
            - name: OPTION_REASONING_PARSER
              value: "deepseek_r1"
            - name: SAGEMAKER_CONTAINER_LOG_LEVEL
              value: "20"
            - name: SAGEMAKER_ENV
              value: "1"
            - name: MODEL_SERVER_TYPE
              value: "vllm"
            - name: SESSION_KEY
              value: "x-user-id"
      EOF
      ```

------

## Configure el almacenamiento en caché KV y el enrutamiento inteligente para mejorar el rendimiento
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route"></a>

1. Habilite el almacenamiento en caché de KV configurando `enableL1Cache` y en `enableL2Cache` `true` .A continuación, configúrelo `redis` y actualícelo `l2CacheLocalUrl` con `l2CacheSpec` la URL del clúster de Redis.

   ```
     kvCacheSpec:
       enableL1Cache: true
       enableL2Cache: true
       l2CacheSpec:
         l2CacheBackend: <redis | tieredstorage>
         l2CacheLocalUrl: <redis cluster URL if l2CacheBackend is redis >
   ```
**nota**  
Si el clúster de Redis no está dentro de la misma Amazon VPC que HyperPod el clúster, no se garantiza el cifrado de los datos en tránsito.
**nota**  
No necesita l2 CacheLocalUrl si se selecciona el almacenamiento por niveles.

1. Habilite el enrutamiento inteligente configurándolo en under`enabled`. `true` `intelligentRoutingSpec` Puede especificar la estrategia de enrutamiento que desea utilizar`routingStrategy`. Si no se especifica ninguna estrategia de enrutamiento, el valor predeterminado es. `prefixaware`

   ```
   intelligentRoutingSpec:
       enabled: true
       routingStrategy: <routing strategy to use>
   ```

1. Habilite las métricas del router y las métricas de almacenamiento en caché `enabled` configurándolas en debajo. `true` `metrics` El `port` valor debe ser el mismo que el `containerPort` valor inferior`modelInvocationPort`.

   ```
   metrics:
       enabled: true
       modelMetrics:
         port: <port value>
       ...
       modelInvocationPort:
         containerPort: <port value>
   ```

## Implemente su modelo desde Amazon S3 o Amazon FSx
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-deploy"></a>

1. Obtenga el nombre del clúster de Amazon EKS del ARN del HyperPod clúster para la autenticación de kubectl.

   ```
   export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
     --query 'Orchestrator.Eks.ClusterArn' --output text | \
     cut -d'/' -f2)
   aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
   ```

1. Implemente su InferenceEndpointConfig modelo con una de las siguientes opciones:

------
#### [ Deploy with Amazon FSx as a source ]

   ```
   kubectl apply -f deploy_fsx_luster_inference.yaml
   ```

------
#### [ Deploy with Amazon S3 as a source ]

   ```
   kubectl apply -f deploy_s3_inference.yaml
   ```

------

## Verificación del estado de la implementación
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-verify"></a>

1. Compruebe si el modelo se ha implementado correctamente.

   ```
   kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Compruebe que el punto de conexión se haya creado correctamente.

   ```
   kubectl describe SageMakerEndpointRegistration $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Pruebe el punto de conexión implementado para comprobar que funciona correctamente. Este paso confirma que el modelo se ha implementado correctamente y que puede procesar las solicitudes de inferencia.

   ```
   aws sagemaker-runtime invoke-endpoint \
     --endpoint-name $SAGEMAKER_ENDPOINT_NAME \
     --content-type "application/json" \
     --body '{"inputs": "What is AWS SageMaker?"}' \
     --region $REGION \
     --cli-binary-format raw-in-base64-out \
     /dev/stdout
   ```

## Administración de la implementación
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-manage"></a>

Cuando termine de probar la implementación, utilice los siguientes comandos para limpiar los recursos.

**nota**  
Verifique que ya no necesita el modelo implementado ni los datos almacenados antes de continuar.

**Eliminación de sus recursos**

1. Elimine la implementación de la inferencia y los recursos de Kubernetes asociados. Esto detiene los contenedores del modelo en ejecución y elimina el SageMaker punto final.

   ```
   kubectl delete inferenceendpointconfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Compruebe que la limpieza se ha realizado correctamente.

   ```
   # # Check that Kubernetes resources are removed
   kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
   ```

   ```
   # Verify SageMaker endpoint is deleted (should return error or empty)
   aws sagemaker describe-endpoint --endpoint-name $SAGEMAKER_ENDPOINT_NAME --region $REGION
   ```

**Resolución de problemas**

Use estos comandos de depuración si la implementación no funciona según lo previsto.

1. Compruebe el estado de la implementación de Kubernetes.

   ```
   kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Compruebe el InferenceEndpointConfig estado para ver el estado de la implementación de alto nivel y cualquier problema de configuración.

   ```
   kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Compruebe el estado de todos los objetos de Kubernetes. Obtendrá una visión completa de todos los recursos de Kubernetes relacionados en su espacio de nombres. Esto le proporciona una visión general rápida de lo que se está ejecutando y lo que podría faltar.

   ```
   kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
   ```

# Políticas de escalado automático para la implementación de su modelo de HyperPod inferencia
<a name="sagemaker-hyperpod-model-deployment-autoscaling"></a>

La siguiente información proporciona ejemplos prácticos y configuraciones para implementar políticas de escalado automático en las implementaciones del modelo de SageMaker HyperPod inferencia de Amazon. 

Aprenderá a configurar el escalado automático con `autoScalingSpec` integrado en los archivos YAML de su implementación, así como a crear configuraciones independientes de `ScaledObject` de KEDA para escenarios de escalado avanzados. Los ejemplos incluyen el escalamiento de los activadores en función de CloudWatch las métricas, la longitud de las colas de Amazon SQS, las consultas de Prometheus y las métricas de utilización de recursos, como la CPU y la memoria. 

## Uso de YAML en la implementación autoScalingSpec
<a name="sagemaker-hyperpod-model-deployment-autoscaling-yaml"></a>

El operador de SageMaker HyperPod inferencia de Amazon proporciona capacidades de escalado automático integradas para las implementaciones de modelos mediante métricas de CloudWatch Amazon Managed Prometheus (AMP). El siguiente ejemplo de implementación de YAML incluye una sección `autoScalingSpec` que define los valores de configuración para escalar la implementación de su modelo.

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name: deepseek-sample624
  namespace: ns-team-a
spec:
  sageMakerEndpoint:
    name: deepsek7bsme624
  model:
    modelHubName: SageMakerPublicHub
    modelId: deepseek-llm-r1-distill-qwen-1-5b
    modelVersion: 2.0.4
  server:
    instanceType: ml.g5.8xlarge
  metrics:
    enabled: true
  environmentVariables:
    - name: SAMPLE_ENV_VAR
      value: "sample_value"
  maxDeployTimeInSeconds: 1800
  tlsConfig:
    tlsCertificateOutputS3Uri: "s3://{USER}-tls-bucket-{REGION}/certificates"
  autoScalingSpec:
    minReplicaCount: 0
    maxReplicaCount: 5
    pollingInterval: 15
    initialCooldownPeriod: 60
    cooldownPeriod: 120
    scaleDownStabilizationTime: 60
    scaleUpStabilizationTime: 0
    cloudWatchTrigger:
        name: "SageMaker-Invocations"
        namespace: "AWS/SageMaker"
        useCachedMetrics: false
        metricName: "Invocations"
        targetValue: 10.5
        activationTargetValue: 5.0
        minValue: 0.0
        metricCollectionStartTime: 300
        metricCollectionPeriod: 30
        metricStat: "Sum"
        metricType: "Average"
        dimensions:
          - name: "EndpointName"
            value: "deepsek7bsme624"
          - name: "VariantName"
            value: "AllTraffic"
    prometheusTrigger: 
        name: "Prometheus-Trigger"
        useCachedMetrics: false
        serverAddress: http://<prometheus-host>:9090
        query: sum(rate(http_requests_total{deployment="my-deployment"}[2m]))
        targetValue: 10.0
        activationTargetValue: 5.0
        namespace: "namespace"
        customHeaders: "X-Client-Id=cid"
        metricType: "Value"
```

### Explicación de los campos utilizados en la implementación de YAML
<a name="sagemaker-hyperpod-model-deployment-autoscaling-fields"></a>

`minReplicaCount` (opcional, entero)  
Especifica el número mínimo de réplicas de implementación del modelo que se mantendrá en el clúster. Durante los eventos de reducción vertical, la implementación se reduce verticalmente a esta cantidad mínima de pods. Debe ser mayor o igual que 0. Valor predeterminado: 1.

`maxReplicaCount` (opcional, entero)  
Especifica el número máximo de réplicas de implementación del modelo que se mantendrá en el clúster. Debe ser mayor o igual que `minReplicaCount`. Durante los eventos de escalado vertical, la implementación se escala verticalmente a esta cantidad máxima de pods. Valor predeterminado: 5.

`pollingInterval` (opcional, entero)  
Es el intervalo de tiempo en segundos para consultar las métricas. Mínimo: 0. Valor predeterminado: 30 segundos.

`cooldownPeriod` (opcional, entero)  
Es el intervalo de tiempo en segundos que se espera antes de reducir verticalmente de 1 a 0 pods durante un evento de reducción vertical. Se aplica solo cuando `minReplicaCount` se establece en 0. Mínimo: 0. Predeterminado: 300 segundos.

`initialCooldownPeriod` (opcional, entero)  
Es el intervalo de tiempo en segundos que se espera antes de reducir verticalmente de 1 a 0 pods durante una implementación inicial. Se aplica solo cuando `minReplicaCount` se establece en 0. Mínimo: 0. Predeterminado: 300 segundos.

`scaleDownStabilizationTime` (opcional, entero)  
Es el intervalo de tiempo de estabilización en segundos después de que se active el desencadenador de reducción vertical antes de que se produzca la reducción vertical. Mínimo: 0. Predeterminado: 300 segundos.

`scaleUpStabilizationTime` (opcional, entero)  
Es el intervalo de tiempo de estabilización en segundos después de que se active el desencadenador de escalada vertical antes de que se produzca la escalada vertical. Mínimo: 0. Predeterminado: 0 segundos.

`cloudWatchTrigger`  
La configuración de activación de las CloudWatch métricas utilizadas en las decisiones de escalado automático. En `cloudWatchTrigger` están disponibles los siguientes campos:  
+ `name`(Opcional, cadena): nombre del CloudWatch activador. Si no se proporciona, utiliza el formato predeterminado: < model-deployment-name >-scaled-object-cloudwatch-trigger.
+ `useCachedMetrics` (opcional, booleano): determina si se deben almacenar en caché las métricas consultadas por KEDA. KEDA consulta las métricas con pollingInterval, mientras que el Escalador automático de pod horizontal (HPA) solicita las métricas de KEDA cada 15 segundos. Cuando se establece en true, las métricas consultadas se almacenan en caché y se utilizan para atender las solicitudes de HPA. Valor predeterminado: verdadero.
+ `namespace`(Obligatorio, cadena): el espacio de CloudWatch nombres de la métrica que se va a consultar.
+ `metricName`(Obligatorio, cadena): nombre de la CloudWatch métrica.
+ `dimensions` (opcional, lista): es la lista de dimensiones de la métrica. Cada dimensión incluye un nombre (nombre de la dimensión, cadena) y un valor (valor de la dimensión, cadena).
+ `targetValue`(Obligatorio, flotante): el valor objetivo de la CloudWatch métrica utilizada en las decisiones de escalado automático.
+ `activationTargetValue`(Opcional, flotante): el valor objetivo de la CloudWatch métrica que se usa al escalar de 0 a 1 pod. Se aplica solo cuando `minReplicaCount` se establece en 0. Valor predeterminado: 0.
+ `minValue`(Opcional, flotante): el valor que se utilizará cuando la CloudWatch consulta no devuelva ningún dato. Valor predeterminado: 0.
+ `metricCollectionStartTime`(Opcional, entero): hora de inicio de la consulta de métricas, calculada como metricCollectionStart tiempo T. Debe ser mayor o igual a metricCollectionPeriod. Predeterminado: 300 segundos.
+ `metricCollectionPeriod` (opcional, entero): es la duración de la consulta de métricas en segundos. Debe ser un valor CloudWatch admitido (1, 5, 10, 30 o un múltiplo de 60). Predeterminado: 300 segundos.
+ `metricStat`(Opcional, cadena): el tipo de estadística de la CloudWatch consulta. Predeterminado: `Average`.
+ `metricType` (opcional, cadena): define cómo se usa la métrica para escalar los cálculos. Predeterminado: `Average`. Valores permitidos: `Average`, `Value`.
  + **Promedio**: réplicas deseadas = límite máximo (valor de la métrica)/(valor objetivo)
  + **Valor**: réplicas deseadas = (réplicas actuales) × límite máximo (valor de la métrica)/(valor objetivo)

`prometheusTrigger`  
Es la configuración del desencadenador de las métricas de Amazon Managed Prometheus (AMP) que se utiliza en las decisiones de escalado automático. En `prometheusTrigger` están disponibles los siguientes campos:  
+ `name`(Opcional, cadena): nombre del CloudWatch activador. Si no se proporciona, utiliza el formato predeterminado: < model-deployment-name >-scaled-object-cloudwatch-trigger.
+ `useCachedMetrics` (opcional, booleano): determina si se deben almacenar en caché las métricas consultadas por KEDA. KEDA consulta las métricas con pollingInterval, mientras que el Escalador automático de pod horizontal (HPA) solicita las métricas de KEDA cada 15 segundos. Cuando se establece en true, las métricas consultadas se almacenan en caché y se utilizan para atender las solicitudes de HPA. Valor predeterminado: verdadero.
+ `serverAddress` (obligatorio, cadena): es la dirección del servidor de AMP. Debe usar el formato: <https://aps-workspaces.<región>.amazonaws.com/workspaces/<workspace\$1id>
+ `query` (obligatorio, cadena): es la consulta de PromQL utilizada para la métrica. Debe devolver un valor escalar.
+ `targetValue`(Obligatorio, flotante): el valor objetivo de la CloudWatch métrica utilizada en las decisiones de escalado automático.
+ `activationTargetValue`(Opcional, flotante): el valor objetivo de la CloudWatch métrica que se usa al escalar de 0 a 1 pod. Se aplica solo cuando `minReplicaCount` se establece en 0. Valor predeterminado: 0.
+ `namespace` (opcional, cadena): es el espacio de nombres que se utilizará para las consultas con espacios de nombres. Valor predeterminado: cadena vacía (`""`).
+ `customHeaders` (opcional, cadena): son los encabezados personalizados que se deben incluir al consultar el punto de conexión de Prometheus. Valor predeterminado: cadena vacía ("").
+ `metricType` (opcional, cadena): define cómo se usa la métrica para escalar los cálculos. Predeterminado: `Average`. Valores permitidos: `Average`, `Value`.
  + **Promedio**: réplicas deseadas = límite máximo (valor de la métrica)/(valor objetivo)
  + **Valor**: réplicas deseadas = (réplicas actuales) × límite máximo (valor de la métrica)/(valor objetivo)

## Uso de las definiciones ScaledObject yaml de KEDA a través de kubectl
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl"></a>

Además de configurar el escalado automático a través de la autoScalingSpec sección YAML de tu implementación, puedes crear y aplicar definiciones YAML de KEDA independientes mediante kubectl. `ScaledObject`

Este enfoque proporciona mayor flexibilidad en los escenarios de escalado complejos y permite administrar las políticas de escalado automático independientemente de las implementaciones de los modelos. `ScaledObject`Las configuraciones de KEDA admiten una [amplia gama de activadores de escalado](https://keda.sh/docs/2.17/scalers/), incluidas CloudWatch las métricas, la longitud de las colas de Amazon SQS, las consultas de Prometheus y las métricas basadas en recursos, como el uso de la CPU y la memoria. Puede aplicar estas configuraciones a las implementaciones de modelos existentes haciendo referencia al nombre de la implementación en la sección de la especificación. scaleTargetRef ScaledObject 

**nota**  
Asegúrese de que el rol de operador keda proporcionado durante la instalación del operador de HyperPod inferencia tenga los permisos adecuados para consultar las métricas definidas en los activadores de objetos escalados.

### CloudWatch métricas
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-cw"></a>

La siguiente política yaml de KEDA utiliza CloudWatch las métricas como activadores para realizar el escalado automático en una implementación de Kubernetes. La política consulta el número de invocaciones de un punto de conexión de Sagemaker y escala el número de pods de implementación. [La lista completa de parámetros admitidos por KEDA para `aws-cloudwatch` el disparador se encuentra en https://keda. sh/docs/2.17/scalers/aws](https://keda.sh/docs/2.17/scalers/aws-cloudwatch/)-cloudwatch/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: aws-cloudwatch
    metadata:
      namespace: AWS/SageMaker
      metricName: Invocations
      targetMetricValue: "1"
      minMetricValue: "1"
      awsRegion: "us-west-2"
      dimensionName: EndpointName;VariantName
      dimensionValue: $ENDPOINT_NAME;$VARIANT_NAME
      metricStatPeriod: "30" # seconds
      metricStat: "Sum"
      identityOwner: operator
```

### Métricas de Amazon SQS
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-sqs"></a>

La siguiente política yaml de KEDA utiliza las métricas de Amazon SQS como desencadenadores para realizar el escalado automático en una implementación de Kubernetes. La política consulta el número de invocaciones de un punto de conexión de Sagemaker y escala el número de pods de implementación. [La lista completa de parámetros admitidos por KEDA para el `aws-cloudwatch` disparador se encuentra en https://keda. sh/docs/2.17/scalers/aws](https://keda.sh/docs/2.17/scalers/aws-sqs/)-sqs/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: aws-sqs-queue
    metadata:
      queueURL: https://sqs.eu-west-1.amazonaws.com/account_id/QueueName
      queueLength: "5"  # Default: "5"
      awsRegion: "us-west-1"
      scaleOnInFlight: true
      identityOwner: operator
```

### Métricas de Prometheus
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-prometheus"></a>

La siguiente política yaml de KEDA utiliza las métricas de Prometheus como desencadenadores para realizar el escalado automático en una implementación de Kubernetes. La política consulta el número de invocaciones de un punto de conexión de Sagemaker y escala el número de pods de implementación. [La lista completa de parámetros admitidos por KEDA para el `aws-cloudwatch` disparador se encuentra en https://keda. sh/docs/2.17/scalers/prometheus](https://keda.sh/docs/2.17/scalers/prometheus/)/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: prometheus
    metadata:
      serverAddress: http://<prometheus-host>:9090
      query: avg(rate(http_requests_total{deployment="$DEPLOYMENT_NAME"}[2m])) # Note: query must return a vector/scalar single element response
      threshold: '100.50'
      namespace: example-namespace  # for namespaced queries, eg. Thanos
      customHeaders: X-Client-Id=cid,X-Tenant-Id=tid,X-Organization-Id=oid # Optional. Custom headers to include in query. In case of auth header, use the custom authentication or relevant authModes.
      unsafeSsl: "false" #  Default is `false`, Used for skipping certificate check when having self-signed certs for Prometheus endpoint    
      timeout: 1000 # Custom timeout for the HTTP client used in this scaler
      identityOwner: operator
```

### Métricas de CPU
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-cpu"></a>

La siguiente política yaml de KEDA utiliza las métricas de CPU como desencadenadores para realizar el escalado automático en una implementación de Kubernetes. La política consulta el número de invocaciones de un punto de conexión de Sagemaker y escala el número de pods de implementación. La lista completa de parámetros admitidos por KEDA para el `aws-cloudwatch` disparador se encuentra en [https://keda. sh/docs/2.17/scalers/prometheus](https://keda.sh/docs/2.17/scalers/prometheus/)/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: cpu
    metricType: Utilization # Allowed types are 'Utilization' or 'AverageValue'
    metadata:
        value: "60"
        containerName: "" # Optional. You can use this to target a specific container
```

### Métricas de memoria
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-memory"></a>

La siguiente política yaml de KEDA utiliza la consulta de las métricas de Prometheus como desencadenador para realizar el escalado automático en una implementación de Kubernetes. La política consulta el número de invocaciones de un punto de conexión de Sagemaker y escala el número de pods de implementación. La lista completa de parámetros admitidos por KEDA para el `aws-cloudwatch` disparador se encuentra en [https://keda. sh/docs/2.17/scalers/prometheus](https://keda.sh/docs/2.17/scalers/prometheus/)/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: memory
    metricType: Utilization # Allowed types are 'Utilization' or 'AverageValue'
    metadata:
        value: "60"
        containerName: "" # Optional. You can use this to target a specific container in a pod
```

## Ejemplo de política de Prometheus para reducir verticalmente a 0 pods
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-sample"></a>

La siguiente política yaml de KEDA utiliza la consulta de las métricas de Prometheus como desencadenador para realizar el escalado automático en una implementación de Kubernetes. Esta política utiliza un `minReplicaCount` de 0, lo que permite a KEDA reducir verticalmente la implementación a 0 pods. Si `minReplicaCount` se establece en 0, debe proporcionar un criterio de activación para que aparezca el primer pod, después de que los pods se reduzcan verticalmente a 0. Para el desencadenador de Prometheus, este valor lo proporciona `activationThreshold`. En el caso de la cola de SQS, proviene de `activationQueueLength`.

**nota**  
Si utiliza un `minReplicaCount` de 0, asegúrese de que la activación no dependa de una métrica que generen los pods. Si los pods se reducen verticalmente a 0, esa métrica nunca se generará y los pods ya no podrán escalarse verticalmente.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 0 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  cooldownPeriod:  30
  initialCooldownPeriod:  180 # time before scaling down the pods after initial deployment
  triggers:
  - type: prometheus
    metadata:
      serverAddress: http://<prometheus-host>:9090
      query: sum(rate(http_requests_total{deployment="my-deployment"}[2m])) # Note: query must return a vector/scalar single element response
      threshold: '100.50'
      activationThreshold: '5.5' # Required if minReplicaCount is 0 for initial scaling
      namespace: example-namespace
      timeout: 1000
      identityOwner: operator
```

**nota**  
Los desencadenadores de CPU y memoria solo pueden escalarse a 0 si se define al menos un escalador adicional que no sea de CPU o memoria (por ejemplo, SQS \$1 CPU o Prometheus \$1 CPU). 

# Implementación de la observabilidad de inferencias en clústeres HyperPod
<a name="sagemaker-hyperpod-model-deployment-observability"></a>

Amazon SageMaker HyperPod ofrece capacidades integrales de observabilidad de inferencias que permiten a los científicos de datos y a los ingenieros de aprendizaje automático monitorear y optimizar sus modelos implementados. [https://prometheus.io/](https://prometheus.io/)

Con las métricas habilitadas de forma predeterminada, la plataforma captura datos esenciales de rendimiento del modelo, como la latencia de invocación, las solicitudes simultáneas, las tasas de error y las métricas de los token, al tiempo que proporciona puntos de conexión de Prometheus estándar para los clientes que prefieren implementar soluciones de observabilidad personalizadas.

**nota**  
Este tema contiene información detallada sobre la implementación de la observabilidad de inferencias en los clústeres. HyperPod Para obtener una referencia más general, consulte [Observabilidad de clústeres y tareas](sagemaker-hyperpod-eks-cluster-observability-cluster.md).

Esta guía proporciona step-by-step instrucciones para implementar y usar la observabilidad de inferencias en sus clústeres. HyperPod Aprenderá a configurar las métricas en los archivos YAML de implementación, a acceder a los paneles de supervisión en función de su rol (administrador, científico de datos o ingeniero de machine learning), a integrarse con soluciones de observabilidad personalizadas mediante puntos de conexión de Prometheus y a solucionar problemas de supervisión comunes.

## Métricas de inferencia admitidas
<a name="sagemaker-hyperpod-model-deployment-observability-metrics"></a>

**Métricas de invocación**

Estas métricas capturan los datos de solicitud y respuesta de inferencia del modelo, lo que proporciona una visibilidad universal independientemente del tipo de modelo o del marco de servicio. Cuando las métricas de inferencia están activas, estas métricas se calculan en el momento de la invocación y se exportan a la infraestructura de supervisión.
+ `model_invocations_total`: número total de solicitudes de invocación realizadas al modelo 
+ `model_errors_total`: número total de errores al invocar el modelo
+ `model_concurrent_requests`: solicitudes simultáneas al modelo activas
+ `model_latency_milliseconds`: latencia de invocación del modelo en milisegundos
+ `model_ttfb_milliseconds`: latencia del modelo con respecto al primer byte en milisegundos

**Métricas de contenedor del modelo**

Estas métricas proporcionan información sobre las operaciones internas de los contenedores del modelo, incluido el procesamiento de los tokens, la administración de las colas y los indicadores de rendimiento específicos del marco. Las métricas disponibles dependen del marco de servicio del modelo:
+ [Métricas de contenedores de TGI](https://huggingface.co/docs/text-generation-inference/en/reference/metrics) 
+ [Métricas de contenedores de LMI](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) 

**Dimensiones métricas**

Todas las métricas de inferencia incluyen etiquetas completas que permiten filtrar y analizar con detalle todas las implementaciones:
+ **Identidad del clúster:**
  + `cluster_id`- El identificador único del HyperPod clúster
  + `cluster_name`- El nombre del HyperPod clúster
+ **Identidad del recurso:**
  + `resource_name`- Nombre de la implementación (por ejemplo, "jumpstart-model-deployment«)
  + `resource_type`: tipo de implementación (jumpstart, inference-endpoint)
  + `namespace`: espacio de nombres de Kubernetes para tenencia múltiple
+ **Características del modelo:**
  + `model_name`: Identificador de modelo específico (por ejemplo, “llama-2-7b-chat”)
  + `model_version`- Versión modelo para A/B pruebas y versiones anteriores
  + `model_container_type`: marco de servicio (TGI, LMI, -)
+ **Contexto de la infraestructura:**
  + `pod_name`: identificador de pod individual para la depuración
  + `node_name`: nodo de Kubernetes para la correlación de recursos
  + `instance_type`: tipo de instancia de EC2 para el análisis de costos
+ **Contexto operativo:**
  + `metric_source`: punto de recopilación (reverse-proxy, model-container)
  + `task_type`: clasificación de la carga de trabajo (inferencia)

## Configuración de las métricas en el YAML de implementación
<a name="sagemaker-hyperpod-model-deployment-observability-yaml"></a>

Amazon SageMaker HyperPod habilita las métricas de inferencia de forma predeterminada para todas las implementaciones de modelos, lo que proporciona una observabilidad inmediata sin necesidad de configuración adicional. Puede personalizar el comportamiento de las métricas modificando la configuración de YAML de la implementación para habilitar o deshabilitar la recopilación de métricas en función de sus requisitos específicos.

**Implemente un modelo desde JumpStart**

Usa la siguiente configuración de YAML para implementar un JuJumpStartmpStart modelo con las métricas habilitadas:

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name:mistral-model
  namespace: ns-team-a
spec:
  model:
    modelId: "huggingface-llm-mistral-7b-instruct"
    modelVersion: "3.19.0"
  metrics:
    enabled:true # Default: true (can be set to false to disable)
  replicas: 2
  sageMakerEndpoint:
    name: "mistral-model-sm-endpoint"
  server:
    instanceType: "ml.g5.12xlarge"
    executionRole: "arn:aws:iam::123456789:role/SagemakerRole"
  tlsConfig:
    tlsCertificateOutputS3Uri: s3://hyperpod/mistral-model/certs/
```

**Implemente modelos personalizados y ajustados desde Amazon S3 o Amazon FSx**

Configure puntos de conexión de inferencia personalizados con parámetros de métricas detallados mediante el siguiente YAML:

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name:mistral-model
  namespace: ns-team-a
spec:
  model:
    modelId: "huggingface-llm-mistral-7b-instruct"
    modelVersion: "3.19.0"
  metrics:
    enabled:true # Default: true (can be set to false to disable)
  replicas: 2
  sageMakerEndpoint:
    name: "mistral-model-sm-endpoint"
  server:
    instanceType: "ml.g5.12xlarge"
    executionRole: "arn:aws:iam::123456789:role/SagemakerRole"
  tlsConfig:
    tlsCertificateOutputS3Uri: s3://hyperpod/mistral-model/certs/

Deploy a custom inference endpoint

Configure custom inference endpoints with detailed metrics settings using the following YAML:

apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: inferenceendpoint-deepseeks
  namespace: ns-team-a
spec:
  modelName: deepseeks
  modelVersion: 1.0.1
  metrics:
    enabled: true # Default: true (can be set to false to disable)
    metricsScrapeIntervalSeconds: 30 # Optional: if overriding the default 15s
    modelMetricsConfig:
        port: 8000 # Optional: if overriding, it defaults to the WorkerConfig.ModelInvocationPort.ContainerPort within the InferenceEndpointConfig spec 8080
        path: "/custom-metrics" # Optional: if overriding the default "/metrics"
  endpointName: deepseek-sm-endpoint
  instanceType: ml.g5.12xlarge
  modelSourceConfig:
    modelSourceType: s3
    s3Storage:
      bucketName: model-weights
      region: us-west-2
    modelLocation: deepseek
    prefetchEnabled: true
  invocationEndpoint: invocations
  worker:
    resources:
      limits:
        nvidia.com/gpu: 1
      requests:
        nvidia.com/gpu: 1
        cpu: 25600m
        memory: 102Gi
    image: 763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:0.32.0-lmi14.0.0-cu124
    modelInvocationPort:
      containerPort: 8080
      name: http
    modelVolumeMount:
      name: model-weights
      mountPath: /opt/ml/model
    environmentVariables: ...
  tlsConfig:
    tlsCertificateOutputS3Uri: s3://hyperpod/inferenceendpoint-deepseeks4/certs/
```

**nota**  
Para deshabilitar las métricas para implementaciones específicas, configure `metrics.enabled: false` en su configuración de YAML.

## Supervise y solucione los problemas de las cargas de trabajo de inferencia por rol
<a name="sagemaker-hyperpod-model-deployment-observability-role"></a>

Amazon SageMaker HyperPod proporciona capacidades de observabilidad integrales que admiten diferentes flujos de trabajo de usuario, desde la configuración inicial del clúster hasta la solución avanzada de problemas de rendimiento. Utilice las siguientes instrucciones según su rol y los requisitos de supervisión.

**HyperPod administrador**

**Su responsabilidad:** activar la infraestructura de observabilidad y garantizar el buen estado del sistema en todo el clúster.

**Qué debe saber:**
+ La observabilidad de todo el clúster proporciona métricas de infraestructura de todas las cargas de trabajo.
+ La configuración con un solo clic implementa una pila de supervisión con paneles preconfigurados.
+ Las métricas de la infraestructura son independientes de las métricas de inferencia específicas del modelo.

**Qué debe hacer:**

1. Navega hasta la HyperPod consola.

1. Seleccione el clúster.

1. Ve a la página de detalles del HyperPod clúster que acabas de crear. Verás una nueva opción para instalar el complemento de HyperPod observabilidad.

1. Haga clic en la opción **Instalación rápida**. Después de 1 a 2 minutos, se completarán todos los pasos y verá el panel de Grafana y los detalles del espacio de trabajo de Prometheus.

Esta única acción implementa automáticamente el complemento EKS, configura los operadores de observabilidad y aprovisiona paneles prediseñados en Grafana.

**Científico de datos**

**Su responsabilidad:** implementar los modelos de manera eficiente y supervisar su rendimiento básico.

**Qué debe saber:**
+ Las métricas se activan automáticamente al implementar los modelos.
+ Los paneles de Grafana muestran el rendimiento del modelo de forma inmediata.
+ Puede filtrar los paneles para centrarse en implementaciones específicas.

**Qué debe hacer:**

1. Implementar el modelo con el método que prefiera:

   1. Interfaz de usuario de Amazon SageMaker Studio

   1. HyperPod Comandos CLI

   1. El SDK de Python en los cuadernos

   1. kubectl con configuraciones de YAML

1. Acceder a las métricas de su modelo:

   1. Abre Amazon SageMaker Studio

   1. Ve al HyperPod clúster y abre el panel de control de Grafana

   1. Seleccione Panel de inferencias.

   1. Aplicación de filtros para ver la implementación específica del modelo

1. Supervisar los indicadores clave de rendimiento:

   1. Realice un seguimiento de la latencia y el rendimiento del modelo.

   1. Supervise las tasas de error y la disponibilidad.

   1. Revise las tendencias de uso de los recursos.

Una vez completado este proceso, tendrá una visibilidad inmediata del rendimiento de su modelo sin que sea necesaria ninguna configuración adicional, lo que le permitirá identificar rápidamente los problemas de implementación o los cambios en el rendimiento.

**Ingeniero de machine learning (MLE)**

**Su responsabilidad:** mantener el rendimiento del modelo de producción y resolver problemas de rendimiento complejos.

**Qué debe saber:**
+ Las métricas avanzadas incluyen detalles del contenedor del modelo, como la profundidad de las colas y las métricas de los token.
+ El análisis de correlación entre varios tipos de métricas revela las causas raíz.
+ Las configuraciones de escalado automático afectan directamente al rendimiento durante los picos de tráfico.

**Escenario hipotético:** el modelo de chat de un cliente genera respuestas lentas e intermitentes. Los usuarios se quejan de retrasos de entre 5 a 10 segundos. El MLE puede aprovechar la observabilidad de la inferencia para llevar a cabo una investigación sistemática del rendimiento.

**Qué debe hacer:**

1. Examinar el panel de Grafana para comprender el alcance y la gravedad del problema de rendimiento:

   1. Alerta de alta latencia activa desde las 09:30

   1. Latencia P99: 8,2 s (normal: 2,1 s)

   1. Periodo de tiempo afectado: de las 09:30 a las 10:15 (45 minutos)

1. Correlacionar varias métricas para comprender el comportamiento del sistema durante el incidente:

   1. Solicitudes simultáneas: ha llegado hasta 45 (normal: de 15 a 20)

   1. Escalado de los pods: KEDA ha escalado de 2 a 5 pods durante el incidente

   1. Utilización de la GPU: se ha mantenido normal (entre un 85 y un 90 %)

   1. Uso de la memoria: normal (24 GB/32 GB)

1. Examinar el comportamiento del sistema distribuido, ya que las métricas de la infraestructura parecen normales:

   1. Vista por nodos: todos los pods se concentran en el mismo nodo (distribución deficiente)

   1. Métricas del contenedor del modelo: la profundidad de la cola de TGI muestra 127 solicitudes (normal: entre 5 y 10)

   ```
   Available in Grafana dashboard under "Model Container Metrics" panel
           Metric: tgi_queue_size{resource_name="customer-chat-llama"}
           Current value: 127 requests queued (indicates backlog)
   ```

1. Identificar los problemas de configuración interconectados:

   1. Política de escalado de KEDA: demasiado lenta (intervalo de sondeo de 30 segundos)

   1. Plazo de escalado: la respuesta de escalado se ha retrasado más de 45 segundos con respecto al pico de tráfico

1. Implementar correcciones específicas basadas en el análisis:

   1. Intervalo de sondeo de KEDA actualizado: 30 s → 15 s

   1. Aumento de maxReplicas en la configuración de escalado

   1. Ajuste de los umbrales de escalado para escalarlos antes (15 frente a 20 solicitudes simultáneas)

Puede diagnosticar problemas de rendimiento complejos sistemáticamente usando métricas exhaustivas, implementar correcciones específicas y establecer medidas preventivas para mantener un rendimiento uniforme del modelo de producción.

## Implementación de su propia integración de observabilidad
<a name="sagemaker-hyperpod-model-deployment-observability-diy"></a>

Amazon SageMaker HyperPod expone las métricas de inferencia a través de puntos de enlace Prometheus estándares del sector, lo que permite la integración con su infraestructura de observabilidad existente. Utilice este enfoque cuando prefiera implementar soluciones de supervisión personalizadas o integrarlas con plataformas de observabilidad de terceros en lugar de utilizar la pila integrada de Grafana y Prometheus.

**Acceso a los puntos de conexión de las métricas de inferencia**

**Qué debe saber:**
+ Las métricas de inferencia se exponen automáticamente en los puntos de conexión estandarizados de Prometheus.
+ Las métricas están disponibles independientemente del tipo de modelo o del marco de servicio.
+ Se aplican las prácticas estándar de extracción de Prometheus para la recopilación de datos.

**Configuración del punto de conexión de las métricas de inferencia:**
+ **Puerto**: 9113
+ **Ruta:** /metrics
+ **Punto de conexión completo:** http://pod-ip:9113/metrics

**Métricas de instancia disponibles:**
+ `model_invocations_total`: número total de solicitudes de invocación realizadas al modelo
+ `model_errors_total`: número total de errores al invocar el modelo
+ `model_concurrent_requests`: solicitudes simultáneas activas por modelo
+ `model_latency_milliseconds`: latencia de invocación del modelo en milisegundos
+ `model_ttfb_milliseconds`: latencia del modelo con respecto al primer byte en milisegundos

**Acceda a las métricas del contenedor del modelo**

**Qué debe saber:**
+ Los contenedores del modelo exponen métricas adicionales específicas de su marco de servicio.
+ Estas métricas proporcionan información interna sobre los contenedores, como el procesamiento de los tokens y la profundidad de las colas.
+ La configuración del punto de conexión varía según el tipo de contenedor del modelo.

**Para despliegues de JumpStart modelos que utilizan contenedores de inferencia de generación de texto (TGI):**
+ **Puerto:** 8080 (puerto de contenedor del modelo)
+ **Ruta:** /metrics
+ **Documentación**[: https://huggingface. co/docs/text-generation-inference/en/reference/metrics](https://huggingface.co/docs/text-generation-inference/en/reference/metrics)

**Para despliegues de JumpStart modelos que utilizan contenedores de inferencia de modelos grandes (LMI):**
+ **Puerto:** 8080 (puerto de contenedor del modelo)
+ **Ruta:** /server/metrics
+ **[Documentación: djl- .md https://github.com/deepjavalibrary/ serving/blob/master/prometheus/README](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md)**

**Para puntos de conexión de inferencia personalizados (BYOD):**
+ **Puerto:** configurado por el cliente (predeterminado): el 8080 es el. WorkerConfig ModelInvocationPort. ContainerPort dentro de las InferenceEndpointConfig especificaciones.)
+ **Ruta:** configurada por el cliente (/metrics predeterminada)

**Implementación de una integración de observabilidad personalizada**

Con una integración de observabilidad personalizada, usted es responsable de:

1. **Extracción de métricas:** implemente la extracción compatible con Prometheus desde los puntos de conexión anteriores.

1. **Exportación de datos:** configure la exportación en la plataforma de observabilidad de su elección.

1. **Alertas:** configure reglas de alerta en función de los requisitos operativos.

1. **Paneles:** cree paneles de visualización para sus necesidades de supervisión.

## Solución de problemas de observabilidad de inferencias
<a name="sagemaker-hyperpod-model-deployment-observability-troubleshoot"></a>

**El panel no muestra datos**

Si el panel de Grafana está vacío y todos los paneles muestran “Sin datos”, lleve a cabo los siguientes pasos para investigar:

1. Compruebe que el administrador tenga instalada la observabilidad de inferencias:

   1. Vaya a la HyperPod consola > Seleccione el clúster > Compruebe si el estado «Observabilidad» muestra «Activado»

   1. Verifique que se pueda acceder al enlace del espacio de trabajo de Grafana desde la descripción general del clúster.

   1. Confirme que el espacio de trabajo de Prometheus administrado por Amazon esté configurado y reciba datos.

1. Verifica que la HyperPod observabilidad esté habilitada:

   ```
   hyp observability view      
   ```

1. Verifique que las métricas del modelo estén habilitadas:

   ```
   kubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabled       
   ```

   ```
   kubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabled        
   ```

1. Compruebe el punto de conexión de las métricas:

   ```
   kubectl port-forward pod/customer-chat-llama-xxx 9113:9113
   curl localhost:9113/metrics | grep model_invocations_total# Expected: model_invocations_total{...} metrics
   ```

1. Consulte los registros:

   ```
   # Model Container
   kubectl logs customer-chat-llama-xxx -c customer-chat-llama# Look for: OOM errors, CUDA errors, model loading failures
   
   # Proxy/SideCar
   kubectl logs customer-chat-llama-xxx -c sidecar-reverse-proxy# Look for: DNS resolution issues, upstream connection failures
   
   # Metrics Exporter Sidecar
   kubectl logs customer-chat-llama-xxx -c otel-collector# Look for: Metrics collection issues, export failures
   ```

**Otros problemas comunes**


| Problema | Solución | Action | 
| --- | --- | --- | 
|  La observabilidad de inferencias no está instalada  |  Instale la observabilidad de inferencias desde la consola  |  «Habilitar la observabilidad» en la consola HyperPod   | 
|  Métricas desactivadas en el modelo  |  Actualizar la configuración del modelo  |  Añadir `metrics: {enabled: true}` a las especificaciones del modelo  | 
|  El espacio de trabajo AMP no está configurado  |  Corregir la conexión del origen de datos  |  Verificar el ID del espacio de trabajo de AMP en los orígenes de datos de Grafana  | 
|  Conectividad de red  |  Compruebe los grupos de seguridad/ NACLs  |  Asegúrese de que los pods puedan llegar a los puntos de conexión de AMP  | 

# Gobierno de tareas para el despliegue del modelo en HyperPod
<a name="sagemaker-hyperpod-model-deployment-task-gov"></a>

En esta sección, se explica cómo optimizar los clústeres de Amazon SageMaker HyperPod EKS compartidos para cargas de trabajo de inferencia en tiempo real. Aprenderá a configurar las características de gobernanza de tareas de Kueue, como la administración de cuotas, la programación de prioridades y las políticas de uso compartido de recursos, para garantizar que sus cargas de trabajo de inferencia reciban los recursos de GPU que necesitan durante los picos de tráfico y, al mismo tiempo, mantener una asignación justa entre las actividades de entrenamiento, evaluación y pruebas de sus equipos. Para obtener información general sobre la gobernanza de tareas, consulte [SageMaker HyperPod gobierno de tareas](sagemaker-hyperpod-eks-operate-console-ui-governance.md).

## Funcionamiento de la administración de la carga de trabajo de inferencia
<a name="sagemaker-hyperpod-model-deployment-task-gov-how"></a>

Para gestionar eficazmente los picos de tráfico de inferencia en tiempo real en los clústeres de HyperPod EKS compartidos, implemente las siguientes estrategias de gobierno de tareas utilizando las capacidades existentes de Kueue.

**Configuración de las clases de prioridad**

Defina clases de prioridad específicas para las cargas de trabajo de inferencia con un peso elevado (por ejemplo, 100) a fin de garantizar que los pods de inferencia se admitan y programen antes que otros tipos de tarea. Esta configuración permite que las cargas de trabajo de inferencia se antepongan a los trabajos de menor prioridad durante la carga del clúster, lo cual es fundamental para mantener los requisitos de baja latencia durante los picos de tráfico.

**Dimensiones y asignación de cuotas**

Reserve suficientes recursos de GPU en la `ClusterQueue` de su equipo para gestionar los picos de inferencia esperados. Durante los períodos de poco tráfico de inferencias, los recursos de cuota no utilizados se pueden asignar temporalmente a las tareas de otros equipos. Cuando la demanda de inferencias aumenta, estos recursos prestados se pueden recuperar para priorizar los pods de inferencias pendientes. Para obtener más información, consulte [Cluster Queue](https://kueue.sigs.k8s.io/docs/concepts/cluster_queue/).

**Estrategias de uso compartido de recursos**

Elija entre dos enfoques de uso compartido de cuotas en función de sus requisitos:

1. **Control estricto de los recursos:** desactive las cuotas de préstamo y los préstamos para garantizar que la capacidad reservada de la GPU esté siempre disponible para sus cargas de trabajo. Este enfoque requiere un tamaño de cuotas suficientemente grande como para poder gestionar los picos de demanda de forma independiente, lo que puede provocar que los nodos estén inactivos durante los períodos de poco tráfico.

1. **Uso compartido flexible de recursos:** active el préstamo de cuotas para utilizar los recursos inactivos de otros equipos cuando sea necesario. Los pods prestados se marcan como preferentes y se pueden expulsar si el equipo que las presta recupera su capacidad.

**Preferencia dentro del equipo**

Active la preferencia dentro del equipo al ejecutar cargas de trabajo mixtas (evaluación, entrenamiento e inferencia) por debajo de la misma cuota. Esto permite que Kueue anteponga los trabajos de menor prioridad dentro de su equipo para incluir pods de inferencia de alta prioridad, de manera que se puedan ejecutar las inferencias en tiempo real sin depender de los préstamos de cuotas externas. Para obtener más información, consulte [Preferencia](https://kueue.sigs.k8s.io/docs/concepts/preemption/).

## Configuración de la carga de trabajo de inferencia de ejemplo
<a name="sagemaker-hyperpod-model-deployment-task-gov-example"></a>

El siguiente ejemplo muestra cómo Kueue administra los recursos de GPU en un clúster de Amazon SageMaker HyperPod compartido.

**Configuración del clúster y de la política**  
El clúster tiene la siguiente configuración:
+ **Equipo A**: cuota de 10 GPU P4
+ **Equipo B**: cuota de 20 GPU P4
+ **Aprovisionamiento estático**: sin escalado automático
+ **Capacidad total: 30** P4 GPUs

El grupo de GPU compartido usa esta política de prioridad:

1. **Inferencia en tiempo real**: prioridad de 100

1. **Entrenamiento**: prioridad de 75

1. **Evaluación**: prioridad de 50

Kueue aplica las cuotas de los equipos y las clases de prioridad, y habilita la preferencia y el préstamo de cuotas.

**Estado inicial: uso normal del clúster**  
En operaciones normales:
+ El equipo A realiza tareas de formación y evaluación en los 10 puestos de categoría P4 GPUs
+ El equipo B ejecuta la inferencia (10 P4) y la evaluación (10 P4) en tiempo real dentro de su cuota de 20 GPU
+ El clúster se utiliza por completo y se admiten y se ejecutan todos los trabajos

**Pico de inferencia: el equipo B necesita más GPUs**  
Cuando el equipo B sufre un pico de tráfico, los módulos de inferencia adicionales requieren 5 P4 más. GPUs Kueue detecta que los nuevos pods:
+ Están dentro del espacio de nombres del equipo B
+ Tienen prioridad de 100 (inferencia en tiempo real)
+ Todavía no se han admitido debido a limitaciones de cuota

**El proceso de respuesta de Kueue elige entre dos opciones:**  
**Opción 1 - préstamo de cuotas:** si el equipo A solo usa 6 de sus 10 P4, Kueue puede admitir los pods del equipo B con las 4 P4 inactivas. Sin embargo, estos recursos prestados se marcan como preferentes: si el equipo A envía trabajos para alcanzar la cuota total, Kueue expulsa los pods de inferencia prestados por el equipo B.

**Opción 2 - anteposición automática (recomendada):** el equipo B ejecuta trabajos de evaluación de baja prioridad (prioridad 50). Cuando los pods de inferencia de alta prioridad esperan, Kueue antepone los trabajos de evaluación dentro de la cuota del equipo B y admite los pods de inferencia. Este enfoque proporciona una asignación segura de los recursos sin riesgo de expulsión externa.

Kueue sigue un proceso de tres pasos para asignar recursos:

1. **Verificación de cuotas**

   Pregunta: ¿El equipo B tiene una cuota que no utiliza?
   + Sí → Admitir los pods
   + No → Continuar con el paso 2

1. **Anteposición automática dentro del equipo B**

   Pregunta: ¿Se pueden anteponer los trabajos de menor prioridad del equipo B?
   + Sí → Anteponer los trabajos de evaluación (prioridad 50), liberar 5 P4 y admitir los pods de inferencia
   + No → Continuar con el paso 3

   Este enfoque mantiene las cargas de trabajo dentro de la cuota garantizada del equipo B, lo que evita los riesgos de expulsión externa.

1. **Préstamos de otros equipos**

   Pregunta: ¿Se puede tomar prestada una cuota inactiva de otros equipos?
   + Sí → Admitir el uso de una cuota prestada (marcada como preferente)
   + No → El pod conserva el estado `NotAdmitted`

# HyperPod solución de problemas de inferencias
<a name="sagemaker-hyperpod-model-deployment-ts"></a>

Esta guía de solución de problemas aborda los problemas más comunes que pueden producirse durante la implementación y el funcionamiento de Amazon SageMaker HyperPod Inference. Estos problemas suelen estar relacionados con la configuración de las redes de VPC, los permisos de IAM, la administración de recursos de Kubernetes y los problemas de conectividad del operador que pueden impedir la implementación exitosa del modelo o provocar que las implementaciones fallen o permanezcan en estados pendientes.

Esta guía de solución de problemas utiliza la siguiente terminología: los **pasos de solución de problemas** son procedimientos de diagnóstico para identificar e investigar los problemas, la **resolución** proporciona las acciones específicas para solucionar los problemas identificados y la **verificación** confirma que la solución ha funcionado correctamente.

**Topics**
+ [Deduzca los errores de instalación del operador mediante una consola de SageMaker IA](sagemaker-hyperpod-model-deployment-ts-console-cfn-failures.md)
+ [Inferencia de errores de instalación del operador mediante CLI AWS](sagemaker-hyperpod-model-deployment-ts-cli.md)
+ [Tiempo de espera para descargar el certificado](sagemaker-hyperpod-model-deployment-ts-certificate.md)
+ [Problemas de implementación del modelo](sagemaker-hyperpod-model-deployment-ts-deployment-issues.md)
+ [Emisión de permisos VPC ENI](sagemaker-hyperpod-model-deployment-ts-permissions.md)
+ [Problema con la relación de confianza de IAM](sagemaker-hyperpod-model-deployment-ts-trust.md)
+ [Falta un error en el complemento de la GPU NVIDIA](sagemaker-hyperpod-model-deployment-ts-gpu.md)
+ [El operador de inferencia no se puede iniciar](sagemaker-hyperpod-model-deployment-ts-startup.md)

# Deduzca los errores de instalación del operador mediante una consola de SageMaker IA
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-failures"></a>

**Descripción general:** Al instalar el operador de inferencia a través de la consola de SageMaker IA mediante una instalación rápida o una instalación personalizada, es posible que las CloudFormation pilas subyacentes fallen debido a varios problemas. En esta sección se describen los escenarios de error más comunes y sus soluciones.

## Deduzca el error en la instalación del complemento por parte del operador mediante una instalación rápida o personalizada
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-stack-failed"></a>

**Problema:** la creación del HyperPod clúster se completa correctamente, pero se produce un error al instalar el complemento del operador de inferencia.

**Causas habituales:**
+ Se han superado los límites de capacidad del pod en los nodos del clúster. La instalación del operador de inferencia requiere un mínimo de 13 pods. El tipo de instancia mínimo recomendado es`ml.c5.4xlarge`.
+ Problemas con los permisos de IAM
+ Restricciones de cuota de recursos
+ Problemas de configuración de red o VPC

### Síntomas y diagnóstico
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-symptoms"></a>

**Síntomas:**
+ El complemento Inference Operator muestra el estado CREATE\$1FAILED o DEGRADED en la consola
+ CloudFormation la pila asociada al complemento tiene el estado CREATE\$1FAILED
+ El progreso de la instalación se detiene o muestra mensajes de error

**Pasos de diagnóstico:**

1. Compruebe el estado del complemento del operador de inferencia:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

1. Compruebe si hay problemas con el límite de los pods:

   ```
   # Check current pod count per node
   kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, allocatable: .status.allocatable.pods, capacity: .status.capacity.pods}'
   
   # Check pods running on each node
   kubectl get pods --all-namespaces -o wide | awk '{print $8}' | sort | uniq -c
   
   # Check for pod evictions or failures
   kubectl get events --all-namespaces --sort-by='.lastTimestamp' | grep -i "pod\|limit\|quota"
   ```

1. Comprueba el estado de la CloudFormation pila (si utilizas la instalación de consola):

   ```
   # List CloudFormation stacks related to the cluster
   aws cloudformation list-stacks \
       --region $REGION \
       --query "StackSummaries[?contains(StackName, '$EKS_CLUSTER_NAME') && StackStatus=='CREATE_FAILED'].{Name:StackName,Status:StackStatus,Reason:StackStatusReason}" \
       --output table
   
   # Get detailed stack events
   aws cloudformation describe-stack-events \
       --stack-name <stack-name> \
       --region $REGION \
       --query "StackEvents[?ResourceStatus=='CREATE_FAILED']" \
       --output table
   ```

### Resolución
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-resolution"></a>

Para resolver el error de instalación, guarde la configuración actual, elimine el complemento fallido, corrija el problema subyacente y, a continuación, vuelva a instalar el operador de inferencia a través de la consola de SageMaker IA (se recomienda) o la AWS CLI.

**Paso 1: Guarde la configuración actual**
+ Extraiga y guarde la configuración del complemento antes de eliminarla:

  ```
  # Save the current configuration
  aws eks describe-addon \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --region $REGION \
      --query 'addon.configurationValues' \
      --output text > addon-config-backup.json
  
  # Verify the configuration was saved
  cat addon-config-backup.json
  
  # Pretty print for readability
  cat addon-config-backup.json | jq '.'
  ```

**Paso 2: Eliminar el complemento fallido**
+ Elimine el complemento del operador de inferencia:

  ```
  aws eks delete-addon \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --region $REGION
  
  # Wait for deletion to complete
  echo "Waiting for add-on deletion..."
  aws eks wait addon-deleted \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --region $REGION 2>/dev/null || sleep 60
  ```

**Paso 3: Solucione el problema subyacente**

Elija la solución adecuada en función de la causa del error:

Si se ha superado el límite de cápsulas del problema:

```
# The inference operator requires a minimum of 13 pods.
# The minimum recommended instance type is ml.c5.4xlarge.
#
# Option 1: Add instance group with higher pod capacity
# Different instance types support different maximum pod counts
# For example: m5.large (29 pods), m5.xlarge (58 pods), m5.2xlarge (58 pods)
aws sagemaker update-cluster \
    --cluster-name $HYPERPOD_CLUSTER_NAME \
    --region $REGION \
    --instance-groups '[{"InstanceGroupName":"worker-group-2","InstanceType":"ml.m5.xlarge","InstanceCount":2}]'

# Option 2: Scale existing node group to add more nodes
aws eks update-nodegroup-config \
    --cluster-name $EKS_CLUSTER_NAME \
    --nodegroup-name <nodegroup-name> \
    --scaling-config minSize=2,maxSize=10,desiredSize=5 \
    --region $REGION

# Option 3: Clean up unused pods
kubectl delete pods --field-selector status.phase=Failed --all-namespaces
kubectl delete pods --field-selector status.phase=Succeeded --all-namespaces
```

**Paso 4: Vuelva a instalar el operador de inferencia**

Tras solucionar el problema subyacente, vuelva a instalar el operador de inferencia mediante uno de los métodos siguientes:
+ **SageMaker Consola de IA con instalación personalizada (recomendada):** reutilice las funciones de IAM y el depósito de TLS existentes de la instalación anterior. Para ver los pasos, consulte [Método 1: instalar el complemento HyperPod Inference a través de una consola de SageMaker IA (recomendado)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).
+ **AWS CLI con configuración guardada:** utilice la configuración de la que hizo una copia de seguridad en el paso 1 para volver a instalar el complemento. Para ver todos los pasos de instalación de la CLI, consulte[Método 2: Instalación del operador de inferencia mediante la CLI AWS](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-addon).

  ```
  aws eks create-addon \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --addon-version v1.0.0-eksbuild.1 \
      --configuration-values file://addon-config-backup.json \
      --region $REGION
  ```
+ **SageMaker Consola de IA con instalación rápida:** crea automáticamente nuevas funciones de IAM, un depósito de TLS y complementos de dependencia. Para ver los pasos, consulte [Método 1: instalar el complemento HyperPod Inference a través de una consola de SageMaker IA (recomendado)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).

**Paso 5: Compruebe que la instalación se ha realizado correctamente**

```
# Check add-on status
aws eks describe-addon \
    --cluster-name $EKS_CLUSTER_NAME \
    --addon-name amazon-sagemaker-hyperpod-inference \
    --region $REGION \
    --query "addon.{Status:status,Health:health}" \
    --output table

# Verify pods are running
kubectl get pods -n hyperpod-inference-system

# Check operator logs
kubectl logs -n hyperpod-inference-system deployment/hyperpod-inference-controller-manager --tail=50
```

## La instalación de Cert-Manager falló debido a que el webhook de Kueue no estaba listo
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-webhook-race"></a>

**Problema:** la instalación del complemento cert-manager falla y se produce un error de webhook porque el servicio de webhook de Task Governance (Kueue) no tiene puntos de enlace disponibles. Se trata de una condición de carrera que se produce cuando cert-manager intenta crear recursos antes de que los módulos de webhook de Task Governance estén en pleno funcionamiento. Esto puede ocurrir cuando se instala el complemento Task Governance junto con el operador de inferencia durante la creación del clúster.

### Síntomas y diagnóstico
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-symptoms"></a>

**Mensaje de error:**

```
AdmissionRequestDenied
Internal error occurred: failed calling webhook "mdeployment.kb.io": failed to call webhook: 
Post "https://kueue-webhook-service.kueue-system.svc:443/mutate-apps-v1-deployment?timeout=10s": 
no endpoints available for service "kueue-webhook-service"
```

**Causa raíz:**
+ El complemento Task Governance instala y registra un webhook mutante que intercepta todas las creaciones de Deployment
+ El complemento Cert-Manager intenta crear recursos de despliegue antes de que los webhooks de Task Governance estén listos
+ El control de admisión de Kubernetes llama webhook a Task Governance, pero no tiene puntos de conexión (los pods aún no se están ejecutando)

**Paso de diagnóstico:**

1. Compruebe el estado del complemento cert-manager:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

### Resolución
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-resolution"></a>

**Solución: elimine y vuelva a instalar cert-manager**

El webhook de Task Governance estará listo en 60 segundos. Simplemente elimina y vuelve a instalar el complemento cert-manager:

1. Elimine el complemento cert-manager fallido:

   ```
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

1. Espere entre 30 y 60 segundos hasta que el webhook de Task Governance esté listo y, a continuación, vuelva a instalar el complemento cert-manager:

   ```
   sleep 60
   
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

# Inferencia de errores de instalación del operador mediante CLI AWS
<a name="sagemaker-hyperpod-model-deployment-ts-cli"></a>

**Descripción general:** Al instalar el operador de inferencia a través de la AWS CLI, la instalación del complemento puede fallar debido a la falta de dependencias. En esta sección se describen los escenarios de error más comunes en la instalación de la CLI y sus soluciones.

## Se produjo un error en la instalación del complemento de inferencia debido a la falta de controladores CSI
<a name="sagemaker-hyperpod-model-deployment-ts-missing-csi-drivers"></a>

**Problema:** Se produce un error al crear el complemento del operador de inferencia porque las dependencias del controlador CSI necesarias no están instaladas en el clúster EKS.

**Síntomas y diagnóstico:**

**Mensajes de error:**

Los siguientes errores aparecen en los registros de creación de complementos o en los registros de operadores de inferencia:

```
S3 CSI driver not installed (missing CSIDriver s3.csi.aws.com). 
Please install the required CSI driver and see the troubleshooting guide for more information.

FSx CSI driver not installed (missing CSIDriver fsx.csi.aws.com). 
Please install the required CSI driver and see the troubleshooting guide for more information.
```

**Pasos de diagnóstico:**

1. Compruebe si los controladores CSI están instalados:

   ```
   # Check for S3 CSI driver
   kubectl get csidriver s3.csi.aws.com
   kubectl get pods -n kube-system | grep mountpoint
   
   # Check for FSx CSI driver  
   kubectl get csidriver fsx.csi.aws.com
   kubectl get pods -n kube-system | grep fsx
   ```

1. Compruebe el estado del complemento EKS:

   ```
   # List all add-ons
   aws eks list-addons --cluster-name $EKS_CLUSTER_NAME --region $REGION
   
   # Check specific CSI driver add-ons
   aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION 2>/dev/null || echo "S3 CSI driver not installed"
   aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION 2>/dev/null || echo "FSx CSI driver not installed"
   ```

1. Compruebe el estado del complemento del operador de inferencia:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

**Solución**:

**Paso 1: Instale el controlador CSI de S3 que falta**

1. Cree el rol de IAM para el controlador CSI de S3 (si aún no lo ha creado):

   ```
   # Set up service account role ARN (from installation steps)
   export S3_CSI_ROLE_ARN=$(aws iam get-role --role-name $S3_CSI_ROLE_NAME --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found")
   echo "S3 CSI Role ARN: $S3_CSI_ROLE_ARN"
   ```

1. Instale el complemento del controlador CSI de S3:

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name aws-mountpoint-s3-csi-driver \
       --addon-version v1.14.1-eksbuild.1 \
       --service-account-role-arn $S3_CSI_ROLE_ARN \
       --region $REGION
   ```

1. Verifique la instalación del controlador CSI de S3:

   ```
   # Wait for add-on to be active
   aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION
   
   # Verify CSI driver is available
   kubectl get csidriver s3.csi.aws.com
   kubectl get pods -n kube-system | grep mountpoint
   ```

**Paso 2: Instale el controlador FSx CSI que falta**

1. Cree el rol de IAM para el controlador FSx CSI (si aún no lo ha creado):

   ```
   # Set up service account role ARN (from installation steps)
   export FSX_CSI_ROLE_ARN=$(aws iam get-role --role-name $FSX_CSI_ROLE_NAME --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found")
   echo "FSx CSI Role ARN: $FSX_CSI_ROLE_ARN"
   ```

1. Instale el complemento FSx del controlador CSI:

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name aws-fsx-csi-driver \
       --addon-version v1.6.0-eksbuild.1 \
       --service-account-role-arn $FSX_CSI_ROLE_ARN \
       --region $REGION
   
   # Wait for add-on to be active
   aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION
   
   # Verify FSx CSI driver is running
   kubectl get pods -n kube-system | grep fsx
   ```

**Paso 3: Verificar todas las dependencias**

Tras instalar las dependencias que faltan, compruebe que se estén ejecutando correctamente antes de volver a intentar instalar el operador de inferencia:

```
# Check all required add-ons are active
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name metrics-server --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION

# Verify all pods are running
kubectl get pods -n kube-system | grep -E "(mountpoint|fsx|metrics-server)"
kubectl get pods -n cert-manager
```

## Faltan las definiciones de recursos personalizados de inferencia durante la implementación del modelo
<a name="sagemaker-hyperpod-model-deployment-ts-crd-not-exist"></a>

**Problema:** Faltan las definiciones de recursos personalizadas (CRDs) al intentar crear implementaciones de modelos. Este problema se produce al instalar y eliminar previamente el complemento de inferencia sin limpiar las implementaciones de modelos que tienen finalizadores.

**Síntomas y diagnóstico:**

**Causa raíz:**

Si elimina el complemento de inferencia sin eliminar primero todas las implementaciones del modelo, los recursos personalizados con finalizadores permanecen en el clúster. Estos finalizadores deben completarse antes de que pueda eliminar el. CRDs El proceso de eliminación del complemento no espera a que se complete la eliminación del CRD, lo que hace que el CRDs complemento permanezca en un estado de finalización e impide nuevas instalaciones.

**Para diagnosticar este problema**

1. Compruebe si CRDs existen.

   ```
   kubectl get crd | grep inference.sagemaker.aws.amazon.com
   ```

1. Comprueba si hay recursos personalizados atascados.

   ```
   # Check for JumpStartModel resources
   kubectl get jumpstartmodels -A
   
   # Check for InferenceEndpointConfig resources
   kubectl get inferenceendpointconfigs -A
   ```

1. Inspeccione los finalizadores para ver si los recursos están atascados.

   ```
   # Example for a specific JumpStartModel
   kubectl get jumpstartmodels <model-name> -n <namespace> -o jsonpath='{.metadata.finalizers}'
   
   # Example for a specific InferenceEndpointConfig
   kubectl get inferenceendpointconfigs <config-name> -n <namespace> -o jsonpath='{.metadata.finalizers}'
   ```

**Solución**:

Elimine manualmente los finalizadores de todas las implementaciones de modelos que no se eliminaron al eliminar el complemento de inferencia. Complete los siguientes pasos para cada recurso personalizado bloqueado.

**Para eliminar los finalizadores de los recursos JumpStartModel **

1. Enumera todos los JumpStartModel recursos en todos los espacios de nombres.

   ```
   kubectl get jumpstartmodels -A
   ```

1. Para cada JumpStartModel recurso, elimina los finalizadores parcheando el recurso para establecer metadata.finalizers en una matriz vacía.

   ```
   kubectl patch jumpstartmodels <model-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

   En el siguiente ejemplo, se muestra cómo aplicar un parche a un recurso denominado kv-l1-only.

   ```
   kubectl patch jumpstartmodels kv-l1-only -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

1. Compruebe que se haya eliminado la instancia del modelo.

   ```
   kubectl get jumpstartmodels -A
   ```

   Cuando se hayan limpiado todos los recursos, debería ver el siguiente resultado.

   ```
   Error from server (NotFound): Unable to list "inference.sagemaker.aws.amazon.com/v1, Resource=jumpstartmodels": the server could not find the requested resource (get jumpstartmodels.inference.sagemaker.aws.amazon.com)
   ```

1. Compruebe que se ha quitado el JumpStartModel CRD.

   ```
   kubectl get crd | grep jumpstartmodels.inference.sagemaker.aws.amazon.com
   ```

   Si el CRD se ha eliminado correctamente, este comando no devuelve ningún resultado.

**Para eliminar los finalizadores de los recursos InferenceEndpointConfig **

1. Enumera todos los InferenceEndpointConfig recursos en todos los espacios de nombres.

   ```
   kubectl get inferenceendpointconfigs -A
   ```

1. Para cada InferenceEndpointConfig recurso, elimina los finalizadores.

   ```
   kubectl patch inferenceendpointconfigs <config-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

   En el siguiente ejemplo, se muestra cómo aplicar un parche a un recurso denominado. my-inference-config

   ```
   kubectl patch inferenceendpointconfigs my-inference-config -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

1. Compruebe que se haya eliminado la instancia de configuración.

   ```
   kubectl get inferenceendpointconfigs -A
   ```

   Cuando se hayan limpiado todos los recursos, deberías ver el siguiente resultado.

   ```
   Error from server (NotFound): Unable to list "inference.sagemaker.aws.amazon.com/v1, Resource=inferenceendpointconfigs": the server could not find the requested resource (get inferenceendpointconfigs.inference.sagemaker.aws.amazon.com)
   ```

1. Compruebe que se ha quitado el InferenceEndpointConfig CRD.

   ```
   kubectl get crd | grep inferenceendpointconfigs.inference.sagemaker.aws.amazon.com
   ```

   Si el CRD se ha eliminado correctamente, este comando no devuelve ningún resultado.

**Para volver a instalar el complemento de inferencia**

Tras limpiar todos los recursos atascados y comprobar que CRDs se han eliminado, vuelva a instalar el complemento de inferencia. Para obtener más información, consulte [Instalación del operador de inferencia con el complemento EKS](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon).

**Verificación:**

1. Compruebe que el complemento de inferencia se haya instalado correctamente.

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health}" \
       --output table
   ```

   El Estado debe ser ACTIVO y la Salud debe estar SANA.

1. Compruebe que CRDs estén correctamente instalados.

   ```
   kubectl get crd | grep inference.sagemaker.aws.amazon.com
   ```

   Debería ver lo relacionado con las inferencias en la CRDs lista de resultados.

1. Pruebe a crear un nuevo modelo de implementación para confirmar que el problema está resuelto.

   ```
   # Create a test deployment using your preferred method
   kubectl apply -f <your-model-deployment.yaml>
   ```

**Prevención**:

Para evitar este problema, complete los siguientes pasos antes de desinstalar el complemento de inferencia.

1. Elimine todas las implementaciones de modelos.

   ```
   # Delete all JumpStartModel resources
   kubectl delete jumpstartmodels --all -A
   
   # Delete all InferenceEndpointConfig resources
   kubectl delete inferenceendpointconfigs --all -A
   
   # Wait for all resources to be fully deleted
   kubectl get jumpstartmodels -A
   kubectl get inferenceendpointconfigs -A
   ```

1. Compruebe que se hayan eliminado todos los recursos personalizados.

1. Tras confirmar que se han limpiado todos los recursos, elimine el complemento de inferencia.

## No se pudo instalar el complemento de inferencia porque faltaba un administrador de certificados
<a name="sagemaker-hyperpod-model-deployment-ts-missing-cert-manager"></a>

**Problema:** La creación del complemento del operador de inferencia falla porque el complemento EKS del administrador de certificados no está instalado, por lo que faltan las definiciones de recursos personalizadas (). CRDs

**Síntomas y diagnóstico:**

**Mensajes de error:**

Los siguientes errores aparecen en los registros de creación de complementos o en los registros de operadores de inferencia:

```
Missing required CRD: certificaterequests.cert-manager.io. 
The cert-manager add-on is not installed. Please install cert-manager and see the troubleshooting guide for more information.
```

**Pasos de diagnóstico:**

1. Compruebe si el administrador de certificados está instalado:

   ```
   # Check for cert-manager CRDs
   kubectl get crd | grep cert-manager
   kubectl get pods -n cert-manager
   
   # Check EKS add-on status
   aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION 2>/dev/null || echo "Cert-manager not installed"
   ```

1. Compruebe el estado del complemento del operador de inferencia:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

**Solución**:

**Paso 1: Instalar el complemento cert-manager**

1. Instale el complemento EKS de cert-manager:

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --addon-version v1.18.2-eksbuild.2 \
       --region $REGION
   ```

1. Compruebe la instalación de cert-manager:

   ```
   # Wait for add-on to be active
   aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION
   
   # Verify cert-manager pods are running
   kubectl get pods -n cert-manager
   
   # Verify CRDs are installed
   kubectl get crd | grep cert-manager | wc -l
   # Expected: Should show multiple cert-manager CRDs
   ```

**Paso 2: Vuelva a intentar instalar el operador de inferencia**

1. Una vez instalado el administrador de certificados, vuelva a intentar instalar el operador de inferencia:

   ```
   # Delete the failed add-on if it exists
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION 2>/dev/null || echo "Add-on not found, proceeding with installation"
   
   # Wait for deletion to complete
   sleep 30
   
   # Reinstall the inference operator add-on
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --addon-version v1.0.0-eksbuild.1 \
       --configuration-values file://addon-config.json \
       --region $REGION
   ```

1. Supervise la instalación:

   ```
   # Check installation status
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health}" \
       --output table
   
   # Verify inference operator pods are running
   kubectl get pods -n hyperpod-inference-system
   ```

## La instalación del complemento de inferencia falló debido a la falta del controlador ALB
<a name="sagemaker-hyperpod-model-deployment-ts-missing-alb"></a>

**Problema:** La creación del complemento del operador de inferencia falla porque la controladora del AWS Load Balancer no está instalada o no está configurada correctamente para el complemento de inferencia.

**Síntomas y diagnóstico:**

**Mensajes de error:**

Los siguientes errores aparecen en los registros de creación de complementos o en los registros de operadores de inferencia:

```
ALB Controller not installed (missing aws-load-balancer-controller pods). 
Please install the Application Load Balancer Controller and see the troubleshooting guide for more information.
```

**Pasos de diagnóstico:**

1. Compruebe si el controlador ALB está instalado:

   ```
   # Check for ALB Controller pods
   kubectl get pods -n kube-system | grep aws-load-balancer-controller
   kubectl get pods -n hyperpod-inference-system | grep aws-load-balancer-controller
   
   # Check ALB Controller service account
   kubectl get serviceaccount aws-load-balancer-controller -n kube-system 2>/dev/null || echo "ALB Controller service account not found"
   kubectl get serviceaccount aws-load-balancer-controller -n hyperpod-inference-system 2>/dev/null || echo "ALB Controller service account not found in inference namespace"
   ```

1. Compruebe la configuración del complemento del operador de inferencia:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,ConfigurationValues:configurationValues}" \
       --output json
   ```

**Solución**:

Elija una de las siguientes opciones en función de su configuración:

**Opción 1: dejar que el complemento de inferencia instale el controlador ALB (recomendado)**
+ Asegúrese de que la función ALB esté creada y configurada correctamente en la configuración del complemento:

  ```
  # Verify ALB role exists
  export ALB_ROLE_ARN=$(aws iam get-role --role-name alb-role --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found")
  echo "ALB Role ARN: $ALB_ROLE_ARN"
  
  # Update your addon-config.json to enable ALB
  cat > addon-config.json << EOF
  {
    "executionRoleArn": "$EXECUTION_ROLE_ARN",
    "tlsCertificateS3Bucket": "$BUCKET_NAME",
    "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
    "alb": {
      "enabled": true,
      "serviceAccount": {
        "create": true,
        "roleArn": "$ALB_ROLE_ARN"
      }
    },
    "keda": {
      "auth": {
        "aws": {
          "irsa": {
            "roleArn": "$KEDA_ROLE_ARN"
          }
        }
      }
    }
  }
  EOF
  ```

**Opción 2: utilice la instalación existente del controlador ALB**
+ Si ya tiene instalado el controlador ALB, configure el complemento para usar la instalación existente:

  ```
  # Update your addon-config.json to disable ALB installation
  cat > addon-config.json << EOF
  {
    "executionRoleArn": "$EXECUTION_ROLE_ARN",
    "tlsCertificateS3Bucket": "$BUCKET_NAME",
    "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
    "alb": {
      "enabled": false
    },
    "keda": {
      "auth": {
        "aws": {
          "irsa": {
            "roleArn": "$KEDA_ROLE_ARN"
          }
        }
      }
    }
  }
  EOF
  ```

**Paso 3: Vuelva a intentar instalar el operador de inferencia**

1. Vuelva a instalar el complemento del operador de inferencia con la configuración actualizada:

   ```
   # Delete the failed add-on if it exists
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION 2>/dev/null || echo "Add-on not found, proceeding with installation"
   
   # Wait for deletion to complete
   sleep 30
   
   # Reinstall with updated configuration
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --addon-version v1.0.0-eksbuild.1 \
       --configuration-values file://addon-config.json \
       --region $REGION
   ```

1. Compruebe que el controlador ALB esté funcionando:

   ```
   # Check ALB Controller pods
   kubectl get pods -n hyperpod-inference-system | grep aws-load-balancer-controller
   kubectl get pods -n kube-system | grep aws-load-balancer-controller
   
   # Check service account annotations
   kubectl describe serviceaccount aws-load-balancer-controller -n hyperpod-inference-system 2>/dev/null
   kubectl describe serviceaccount aws-load-balancer-controller -n kube-system 2>/dev/null
   ```

## La instalación del complemento de inferencia falló debido a la falta del operador KEDA
<a name="sagemaker-hyperpod-model-deployment-ts-missing-keda"></a>

**Problema:** La creación del complemento del operador de inferencia falla porque el operador KEDA (escalador automático basado en eventos de Kubernetes) no está instalado o no está configurado correctamente para el complemento de inferencia.

**Síntomas y diagnóstico:**

**Mensajes de error:**

Los siguientes errores aparecen en los registros de creación de complementos o en los registros de operadores de inferencia:

```
KEDA operator not installed (missing keda-operator pods). 
KEDA can be installed separately in any namespace or via the Inference addon.
```

**Pasos de diagnóstico:**

1. Compruebe si el operador KEDA está instalado:

   ```
   # Check for KEDA operator pods in common namespaces
   kubectl get pods -n keda-system | grep keda-operator 2>/dev/null || echo "KEDA not found in keda-system namespace"
   kubectl get pods -n kube-system | grep keda-operator 2>/dev/null || echo "KEDA not found in kube-system namespace"
   kubectl get pods -n hyperpod-inference-system | grep keda-operator 2>/dev/null || echo "KEDA not found in inference namespace"
   
   # Check for KEDA CRDs
   kubectl get crd | grep keda 2>/dev/null || echo "KEDA CRDs not found"
   
   # Check KEDA service account
   kubectl get serviceaccount keda-operator -A 2>/dev/null || echo "KEDA service account not found"
   ```

1. Compruebe la configuración del complemento del operador de inferencia:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,ConfigurationValues:configurationValues}" \
       --output json
   ```

**Solución**:

Elija una de las siguientes opciones en función de su configuración:

**Opción 1: dejar que el complemento de inferencia instale KEDA (recomendado)**
+ Asegúrese de que el rol KEDA esté creado y configurado correctamente en la configuración del complemento:

  ```
  # Verify KEDA role exists
  export KEDA_ROLE_ARN=$(aws iam get-role --role-name keda-operator-role --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found")
  echo "KEDA Role ARN: $KEDA_ROLE_ARN"
  
  # Update your addon-config.json to enable KEDA
  cat > addon-config.json << EOF
  {
    "executionRoleArn": "$EXECUTION_ROLE_ARN",
    "tlsCertificateS3Bucket": "$BUCKET_NAME",
    "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
    "alb": {
      "serviceAccount": {
        "create": true,
        "roleArn": "$ALB_ROLE_ARN"
      }
    },
    "keda": {
      "enabled": true,
      "auth": {
        "aws": {
          "irsa": {
            "roleArn": "$KEDA_ROLE_ARN"
          }
        }
      }
    }
  }
  EOF
  ```

**Opción 2: utilice una instalación de KEDA existente**
+ Si ya tiene KEDA instalado, configure el complemento para que utilice la instalación existente:

  ```
  # Update your addon-config.json to disable KEDA installation
  cat > addon-config.json << EOF
  {
    "executionRoleArn": "$EXECUTION_ROLE_ARN",
    "tlsCertificateS3Bucket": "$BUCKET_NAME",
    "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
    "alb": {
      "serviceAccount": {
        "create": true,
        "roleArn": "$ALB_ROLE_ARN"
      }
    },
    "keda": {
      "enabled": false
    }
  }
  EOF
  ```

**Paso 3: Vuelva a intentar instalar el operador de inferencia**

1. Vuelva a instalar el complemento del operador de inferencia con la configuración actualizada:

   ```
   # Delete the failed add-on if it exists
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION 2>/dev/null || echo "Add-on not found, proceeding with installation"
   
   # Wait for deletion to complete
   sleep 30
   
   # Reinstall with updated configuration
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --addon-version v1.0.0-eksbuild.1 \
       --configuration-values file://addon-config.json \
       --region $REGION
   ```

1. Compruebe que KEDA esté funcionando:

   ```
   # Check KEDA pods
   kubectl get pods -n hyperpod-inference-system | grep keda
   kubectl get pods -n kube-system | grep keda
   kubectl get pods -n keda-system | grep keda 2>/dev/null
   
   # Check KEDA CRDs
   kubectl get crd | grep scaledobjects
   kubectl get crd | grep scaledjobs
   
   # Check KEDA service account annotations
   kubectl describe serviceaccount keda-operator -n hyperpod-inference-system 2>/dev/null
   kubectl describe serviceaccount keda-operator -n kube-system 2>/dev/null
   kubectl describe serviceaccount keda-operator -n keda-system 2>/dev/null
   ```

# Tiempo de espera para descargar el certificado
<a name="sagemaker-hyperpod-model-deployment-ts-certificate"></a>

Al implementar un punto final de SageMaker IA, el proceso de creación falla debido a la imposibilidad de descargar el certificado de la autoridad de certificación (CA) en un entorno de VPC. Para ver los pasos de configuración detallados, consulta la [guía de administración](https://github.com/aws-samples/sagemaker-genai-hosting-examples/blob/main/SageMakerHyperpod/hyperpod-inference/Hyperpod_Inference_Admin_Notebook.ipynb).

**Mensaje de error:**

En los CloudWatch registros de puntos finales de la SageMaker IA aparece el siguiente error: 

```
Error downloading CA certificate: Connect timeout on endpoint URL: "https://****.s3.<REGION>.amazonaws.com/****/***.pem"
```

**Causa principal:**
+ Este problema se produce cuando el operador de inferencia no puede acceder al certificado autofirmado de Amazon S3 dentro de su VPC
+ La configuración adecuada del punto de conexión de VPC de Amazon S3 es esencial para el acceso a los certificados

**Solución**:

1. Si no tiene un punto de conexión de VPC de Amazon S3:
   + Cree un punto de enlace de VPC de Amazon S3 siguiendo la configuración de la sección 5.3 de la guía de [administración](https://github.com/aws-samples/sagemaker-genai-hosting-examples/blob/main/SageMakerHyperpod/hyperpod-inference/Hyperpod_Inference_Admin_Notebook.ipynb).

1. Si ya tiene un punto de conexión de VPC de Amazon S3:
   + Asegúrese de que la tabla de enrutamiento de subred esté configurada para apuntar al punto final de la VPC (si se usa el punto de enlace) o de que el DNS privado esté habilitado para el punto final de la interfaz.
   + El punto de enlace de VPC de Amazon S3 debe ser similar a la configuración que se menciona en la sección 5.3 (paso de creación del punto de conexión)

# Problemas de implementación del modelo
<a name="sagemaker-hyperpod-model-deployment-ts-deployment-issues"></a>

**Descripción general:** en esta sección se describen los problemas más comunes que se producen durante la implementación del modelo, incluidos los estados pendientes, las implementaciones fallidas y la supervisión del progreso de la implementación.

## El despliegue del modelo está atascado en estado pendiente
<a name="sagemaker-hyperpod-model-deployment-ts-pending"></a>

Al implementar un modelo, la implementación permanece en estado «pendiente» durante un período prolongado. Esto indica que el operador de inferencia no puede iniciar la implementación del modelo en el HyperPod clúster.

**Componentes afectados:**

Durante el despliegue normal, el operador de inferencia debe:
+ Implementar un pod modelo
+ Creación de un balanceador de carga
+ Cree un punto final de SageMaker IA

**Pasos para la solución de problemas:**

1. Compruebe el estado del módulo del operador de inferencia:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   Ejemplo de resultado esperado:

   ```
   NAME                                                           READY   STATUS    RESTARTS   AGE
   hyperpod-inference-operator-controller-manager-65c49967f5-894fg   1/1     Running   0         6d13h
   ```

1. Revise los registros de operadores de inferencia y examine los registros de operadores para ver si hay mensajes de error:

   ```
   kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
   ```

**Qué buscar:**
+ Mensajes de error en los registros del operador
+ Estado del módulo del operador
+ Cualquier advertencia o fallo relacionado con la implementación

**nota**  
Una implementación en buen estado debería superar el estado «Pendiente» en un tiempo razonable. Si los problemas persisten, revise los registros del operador de inferencia para ver si hay mensajes de error específicos para determinar la causa raíz.

## Solución de problemas de estado de implementación del modelo
<a name="sagemaker-hyperpod-model-deployment-ts-failed"></a>

Cuando la implementación de un modelo entra en un estado «fallido», el error puede producirse en uno de los tres componentes:
+ Despliegue del módulo modelo
+ Creación de un balanceador de carga
+ SageMaker Creación de terminales de IA

**Pasos para la solución de problemas:**

1. Compruebe el estado del operador de inferencia:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   Resultado previsto:

   ```
   NAME                                                           READY   STATUS    RESTARTS   AGE
   hyperpod-inference-operator-controller-manager-65c49967f5-894fg   1/1     Running   0         6d13h
   ```

1. Revise los registros del operador:

   ```
   kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
   ```

**Qué buscar:**

Los registros del operador indicarán qué componente falló:
+ Fallos en el despliegue del pod del modelo
+ Problemas de creación del balanceador de carga
+ SageMaker Errores de punto final de IA

## Comprobar el progreso de la implementación del modelo
<a name="sagemaker-hyperpod-model-deployment-ts-progress"></a>

Para supervisar el progreso de la implementación de su modelo e identificar posibles problemas, puede usar los comandos kubectl para comprobar el estado de varios componentes. Esto ayuda a determinar si la implementación avanza con normalidad o si ha tenido problemas durante las fases de creación del módulo del modelo, configuración del equilibrador de carga o SageMaker configuración de los terminales de IA.

**Método 1: compruebe el estado del modelo JumpStart **

```
kubectl describe jumpstartmodel.inference.sagemaker.aws.amazon.com/<model-name> -n <namespace>
```

**Indicadores de estado clave que deben supervisarse:**

1. Estado de la implementación
   + Busque`Status.State`: Debería mostrarse `DeploymentComplete`
   + Compruebe `Status.Deployment Status.Available Replicas`
   + Supervise `Status.Conditions` el progreso de la implementación

1. SageMaker Estado del terminal de IA
   + Comprobar`Status.Endpoints.Sagemaker.State`: debería mostrarse `CreationCompleted`
   + Verificar `Status.Endpoints.Sagemaker.Endpoint Arn`

1. Estado del certificado TLS
   + Ver detalles `Status.Tls Certificate`
   + Compruebe la caducidad del certificado en `Last Cert Expiry Time`

**Método 2: compruebe la configuración del punto final de inferencia**

```
kubectl describe inferenceendpointconfig.inference.sagemaker.aws.amazon.com/<deployment_name> -n <namespace>
```

**Estados de estado comunes:**
+ `DeploymentInProgress`: Fase de despliegue inicial
+ `DeploymentComplete`: Despliegue exitoso
+ `Failed`: Falló el despliegue

**nota**  
Supervise la sección de eventos para detectar cualquier advertencia o error. Compruebe que el recuento de réplicas coincida con la configuración esperada. Compruebe que se cumplen todas las condiciones `Status: True` para una implementación correcta.

# Emisión de permisos VPC ENI
<a name="sagemaker-hyperpod-model-deployment-ts-permissions"></a>

SageMaker Se produce un error en la creación de puntos finales de IA debido a la falta de permisos para crear interfaces de red en la VPC.

**Mensaje de error:**

```
Please ensure that the execution role for variant AllTraffic has sufficient permissions for creating an endpoint variant within a VPC
```

**Causa raíz:**

La función de ejecución del operador de inferencia carece del permiso de Amazon EC2 necesario para crear interfaces de red (ENI) en la VPC.

**Solución**:

Añada el siguiente permiso de IAM a la función de ejecución del operador de inferencia:

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterfacePermission"
     ],
    "Resource": "*"
}
```

**Verificación:**

Tras añadir el permiso:

1. Elimine el punto final fallido (si existe)

1. Vuelva a intentar la creación del punto final

1. Supervise el estado de la implementación para que se complete correctamente

**nota**  
Este permiso es esencial para los puntos finales de SageMaker IA que se ejecutan en modo VPC. Asegúrese de que la función de ejecución también tenga todos los demás permisos necesarios relacionados con la VPC.

# Problema con la relación de confianza de IAM
<a name="sagemaker-hyperpod-model-deployment-ts-trust"></a>

HyperPod El operador de inferencia no puede comenzar con un AssumeRoleWithWebIdentity error de STS, lo que indica un problema de configuración de la relación de confianza de IAM.

**Mensaje de error:**

```
failed to enable inference watcher for HyperPod cluster *****: operation error SageMaker: UpdateClusterInference, 
get identity: get credentials: failed to refresh cached credentials, failed to retrieve credentials, 
operation error STS: AssumeRoleWithWebIdentity, https response error StatusCode: 403, RequestID: ****, 
api error AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity
```

**Solución**:

Actualice la relación de confianza de la función de ejecución de IAM del operador de inferencia con la siguiente configuración.

Reemplace los siguientes marcadores de posición:
+ `<ACCOUNT_ID>`: el ID de su cuenta AWS 
+ `<REGION>`: Tu AWS región
+ `<OIDC_ID>`: el ID de proveedor OIDC de su clúster de Amazon EKS

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
            "Federated": "arn:aws:iam::<ACCOUNT_ID>:oidc-provider/oidc.eks.<REGION>.amazonaws.com/id/<OIDC_ID>"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringLike": {
                    "oidc.eks.<REGION>.amazonaws.com/id/<OIDC_ID>:sub": "system:serviceaccount:<namespace>:<service-account-name>",
                    "oidc.eks.<REGION>.amazonaws.com/id/<OIDC_ID>:aud": "sts.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "sagemaker.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

**Verificación:**

Tras actualizar la relación de confianza:

1. Compruebe la configuración del rol en la consola de IAM

1. Reinicie el operador de inferencia si es necesario

1. Supervise los registros del operador para que el arranque se inicie

# Falta un error en el complemento de la GPU NVIDIA
<a name="sagemaker-hyperpod-model-deployment-ts-gpu"></a>

La implementación del modelo falla debido a un error de insuficiencia de la GPU a pesar de tener nodos de GPU disponibles. Esto ocurre cuando el complemento del dispositivo NVIDIA no está instalado en el HyperPod clúster.

**Mensaje de error:**

```
0/15 nodes are available: 10 node(s) didn't match Pod's node affinity/selector, 
5 Insufficient nvidia.com/gpu. preemption: 0/15 nodes are available: 
10 Preemption is not helpful for scheduling, 5 No preemption victims found for incoming pod.
```

**Causa raíz:**
+ Kubernetes no puede detectar los recursos de la GPU sin el complemento de dispositivo NVIDIA
+ Provoca errores en la programación de las cargas de trabajo de la GPU

**Solución**:

Instala el complemento de GPU de NVIDIA ejecutando:

```
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/refs/tags/v0.17.1/deployments/static/nvidia-device-plugin.yml
```

**Pasos de verificación:**

1. Comprueba el estado de despliegue del plugin:

   ```
   kubectl get pods -n kube-system | grep nvidia-device-plugin
   ```

1. Comprueba que los recursos de la GPU estén ahora visibles:

   ```
   kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu
   ```

1. Vuelva a intentar el despliegue del modelo

**nota**  
Asegúrese de que los controladores NVIDIA estén instalados en los nodos de la GPU. La instalación del plugin se realiza una sola vez por clúster. Es posible que se requieran privilegios de administrador del clúster para su instalación.

# El operador de inferencia no se puede iniciar
<a name="sagemaker-hyperpod-model-deployment-ts-startup"></a>

El módulo del operador de inferencia no se pudo iniciar y está provocando el siguiente mensaje de error. Este error se debe a que la política de permisos sobre la función de ejecución del operador no está autorizada a desempeñar`sts:AssumeRoleWithWebIdentity`. Debido a esto, la parte del operador que se ejecuta en el plano de control no se inicia.

**Mensaje de error:**

```
Warning Unhealthy 5m46s (x22 over 49m) kubelet Startup probe failed: Get "http://10.1.100.59:8081/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
```

**Causa raíz:**
+ La política de permisos de la función de ejecución del operador de inferencia no está configurada para acceder al token de autorización de los recursos.

**Solución**:

Establezca la siguiente política de la función de ejecución del `EXECUTION_ROLE_ARN` operador de HyperPod inferencia:

```
HyperpodInferenceAccessPolicy-ml-cluster to include all resources
```

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**Pasos de verificación:**

1. Cambiar la política.

1. Finalice el módulo del operador HyperPod de inferencia.

1. El pod se reiniciará sin que se produzcan excepciones.

# Notas de la versión SageMaker HyperPod de Amazon Inference
<a name="sagemaker-hyperpod-inference-release-notes"></a>

En este tema se tratan las notas de la versión que hacen un seguimiento de las actualizaciones, correcciones y nuevas funciones de Amazon SageMaker HyperPod Inference. SageMaker HyperPod La inferencia le permite implementar y escalar modelos de aprendizaje automático en sus HyperPod clústeres con una confiabilidad de nivel empresarial. Para ver las versiones, actualizaciones y mejoras generales de la SageMaker HyperPod plataforma Amazon, consulte[Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md).

Para obtener información sobre las capacidades de SageMaker HyperPod inferencia y las opciones de implementación, consulte[Implementación de modelos en Amazon SageMaker HyperPod](sagemaker-hyperpod-model-deployment.md).

## SageMaker HyperPod Notas de la versión de inferencia: v3.1
<a name="sagemaker-hyperpod-inference-release-notes-20260403"></a>

**Fecha de lanzamiento:** 3 de abril de 2026

**Resumen**

La versión 3.1 de Inference Operator presenta la configuración personalizada de los pods de Kubernetes, la compatibilidad con certificados personalizados y los límites de solicitudes por pod.

**Características principales**
+ **Configuración personalizada del pod de Kubernetes**: se agregó un nuevo `kubernetes` campo al `InferenceEndpointConfig` CRD que permite a los usuarios personalizar las configuraciones del pod de inferencia:
  + **Contenedores de inicio personalizados: ejecute contenedores** de inicio definidos por el usuario antes de que se inicie el servidor de inferencia (por ejemplo, para calentar la caché o configurar el GDS). Los contenedores de inicio se inyectan después del contenedor de captura previa del operador.
  + **Volúmenes personalizados**: añada volúmenes adicionales (`emptyDir`,, `hostPath``configMap`, etc.) a la especificación del módulo, a los que los contenedores de inicio puedan hacer referencia a ellos mediante. `volumeMounts`
  + **Nombre del programador personalizado**: especifique un programador de Kubernetes personalizado para la ubicación del pod.
+ **Certificados personalizados: utilice sus propios certificados** ACM para los puntos finales de inferencia en lugar de los certificados autofirmados generados por el operador, configurados mediante. `customCertificateConfig` Es compatible con los certificados ACM de confianza pública, los certificados de CA AWS privados y los certificados importados de fuentes externas. CAs El operador supervisa el estado de los certificados y admite la detección automática de renovaciones.
+ **Límites de solicitudes**: controle la gestión de las solicitudes por módulo mediante la nueva `RequestLimits` configuración`Worker`, que incluye los siguientes campos configurables:
  + `maxConcurrentRequests`— Número máximo de solicitudes simultáneas en vuelo por cápsula.
  + `maxQueueSize`— Las solicitudes se ponen en cola cuando se alcanza el límite de simultaneidad antes de ser rechazadas.
  + `overflowStatusCode`— Se devuelve el código de estado HTTP cuando se superan los límites (predeterminado: 429).

Para obtener información detallada, incluidos los requisitos previos y las instrucciones de actualización, consulte las secciones siguientes.

### Requisitos previos
<a name="sagemaker-hyperpod-inference-v3-1-prerequisites"></a>

Para utilizar la función de certificados personalizados, añada los siguientes permisos a su función de ejecución de operador de inferencia:

```
{  
    "Sid": "ACMCertificateAccess",  
    "Effect": "Allow",  
    "Action": [  
        "acm:DescribeCertificate",  
        "acm:GetCertificate"  
    ],  
    "Resource": "arn:aws:acm:*:*:certificate/*"  
}
```

### Actualice a la versión 3.1
<a name="sagemaker-hyperpod-inference-v3-1-upgrade"></a>

Si ya tiene el operador de inferencia instalado mediante Helm, utilice los siguientes comandos para actualizar:

```
helm get values -n kube-system hyperpod-inference-operator \
> current-values.yaml

cd sagemaker-hyperpod-cli/helm_chart/HyperPodHelmChart/\
charts/inference-operator

helm upgrade hyperpod-inference-operator . -n kube-system \
  -f current-values.yaml --set image.tag=v3.1
    
# Verification
kubectl get deployment hyperpod-inference-operator-controller-manager \
  -n hyperpod-inference-system \
  -o jsonpath='{.spec.template.spec.containers[0].image}'
```

## SageMaker HyperPod Notas de la versión de inferencia: v3.0
<a name="sagemaker-hyperpod-inference-release-notes-20260223"></a>

**Fecha de lanzamiento:** 23 de febrero de 2026

**Resumen**

Inference Operator 3.0 presenta la integración del complemento EKS para simplificar la gestión del ciclo de vida, la compatibilidad con Node Affinity para un control detallado de la programación y un etiquetado de recursos mejorado. Las instalaciones existentes basadas en Helm se pueden migrar al complemento EKS mediante el script de migración proporcionado. Actualice su función de ejecución de operador de inferencia con nuevos permisos de etiquetado antes de realizar la actualización.

**Características principales**
+ **Integración complementaria de EKS**: gestión del ciclo de vida empresarial con una experiencia de instalación simplificada
+ **Node Affinity**: control de programación detallado para excluir instancias puntuales, preferir zonas de disponibilidad o segmentar nodos con etiquetas personalizadas

Para obtener información detallada, incluidos los requisitos previos, las instrucciones de actualización y la guía de migración, consulte las secciones siguientes.

### Requisitos previos
<a name="sagemaker-hyperpod-inference-v3-0-prerequisites"></a>

Antes de actualizar la versión de Helm a la 3.0, los clientes deben añadir permisos de etiquetado adicionales a su función de operador de inferencias. Como parte de la mejora del etiquetado y la seguridad de los recursos, el operador de inferencia ahora etiqueta los recursos de ALB, S3 y ACM. Esta mejora requiere permisos adicionales en la función de ejecución del operador de inferencia. Añada los siguientes permisos a su función de ejecución de operador de inferencia:

```
{  
    "Sid": "CertificateTagginPermission",  
    "Effect": "Allow",  
    "Action": [  
        "acm:AddTagsToCertificate"  
    ],  
    "Resource": "arn:aws:acm:*:*:certificate/*",  
},  
{  
    "Sid": "S3PutObjectTaggingAccess",  
    "Effect": "Allow",  
    "Action": [  
        "s3:PutObjectTagging"  
    ],  
    "Resource": [  
        "arn:aws:s3:::<TLS_BUCKET>/*" # Replace * with your TLS bucket  
    ]  
}
```

### Actualice a la versión 3.0
<a name="sagemaker-hyperpod-inference-v3-0-upgrade"></a>

Si ya tiene el operador de inferencia instalado mediante Helm, utilice los siguientes comandos para actualizar:

```
helm get values -n kube-system hyperpod-inference-operator \
> current-values.yaml

cd sagemaker-hyperpod-cli/helm_chart/HyperPodHelmChart/\
charts/inference-operator

helm upgrade hyperpod-inference-operator . -n kube-system \
  -f current-values.yaml --set image.tag=v3.0
    
# Verification
kubectl get deployment hyperpod-inference-operator-controller-manager \
  -n hyperpod-inference-system \
  -o jsonpath='{.spec.template.spec.containers[0].image}'
```

### Migración del complemento Helm a EKS
<a name="sagemaker-hyperpod-inference-v3-0-migration"></a>

Si Helm instaló Inference Operator antes de la versión 3.0, le recomendamos migrar al complemento EKS para obtener actualizaciones puntuales sobre las nuevas funciones que se lanzarán para Inference Operator. Este script migra el operador de SageMaker HyperPod inferencia de una instalación basada en Helm a una instalación del complemento EKS.

**Descripción general:** el script toma como parámetros el nombre y la región del clúster, recupera la configuración de instalación de Helm existente y migra a la implementación del complemento EKS. Crea nuevas funciones de IAM para el operador de inferencia, el controlador ALB y el operador KEDA.

Antes de migrar el operador de inferencia, el script garantiza que existan las dependencias necesarias (controlador S3 CSI, controlador CSI, administrador de certificados y servidor de FSx métricas). Si no existen, las implementa como complemento.

Una vez completada la migración del complemento Inference Operator, el script también migra S3 y otras dependencias (ALB FSx, KEDA, cert-manager, metrics-server) si se instalaron originalmente mediante el diagrama Helm del operador de inferencia. Úselo `--skip-dependencies-migration` para omitir este paso para el controlador CSI de S3, el controlador CSI, el administrador de certificados y el servidor de métricas. FSx Tenga en cuenta que ALB y KEDA se instalan como parte del complemento en el mismo espacio de nombres que Inference Operator y se migrarán como parte del complemento Inference Operator.

**importante**  
Durante la migración, no implemente modelos nuevos, ya que no se implementarán hasta que se complete la migración. Una vez que el complemento Inference Operator esté en estado ACTIVO, se podrán implementar nuevos modelos. El tiempo de migración suele tardar entre 15 y 20 minutos y puede completarse en 30 minutos si actualmente solo se implementan unos pocos modelos.

**Requisitos previos de migración:**
+ AWS CLI configurado con las credenciales adecuadas
+ kubectl configurado con acceso a su clúster de EKS
+ Helm instalado
+ Instalación de Helm existente de hyperpod-inference-operator

**nota**  
Los puntos finales que ya estén en funcionamiento no se interrumpirán durante el proceso de migración. Los puntos finales existentes seguirán atendiendo el tráfico sin interrupciones durante la migración.

**Obtener el script de migración:**

```
git clone https://github.com/aws/sagemaker-hyperpod-cli.git
cd sagemaker-hyperpod-cli/helm_chart/HyperPodHelmChart/\
charts/inference-operator/migration
```

**Uso**:

```
./helm_to_addon.sh [OPTIONS] \
  --cluster-name <cluster-name> (Required) \
  --region <region> (Required) \
  --helm-namespace kube-system (Optional) \
  --auto-approve (Optional) \
  --skip-dependencies-migration (Optional) \
  --s3-mountpoint-role-arn <s3-mountpoint-role-arn> (Optional) \
  --fsx-role-arn <fsx-role-arn> (Optional)
```

**Opciones:**
+ `--cluster-name NAME`— Nombre del clúster de EKS (obligatorio)
+ `--region REGION`— AWS región (obligatorio)
+ `--helm-namespace NAMESPACE`— Espacio de nombres donde está instalado Helm Chart (predeterminado: kube-system) (opcional)
+ `--s3-mountpoint-role-arn ARN`— Rol de IAM ARN del controlador CSI Mountpoint de S3 (opcional)
+ `--fsx-role-arn ARN`— ARN FSx del rol de IAM del controlador CSI (opcional)
+ `--auto-approve`— Omite las solicitudes de confirmación si este indicador está activado. `step-by-step`y `auto-approve` se excluyen mutuamente; si `--auto-approve` se proporciona, no especifique `--step-by-step` (opcional)
+ `--step-by-step`— Haga una pausa después de cada paso principal para revisarla. Esto no debe mencionarse si ya `--auto-approve` está agregado (opcional)
+ `--skip-dependencies-migration`— Omita la migración de las dependencias instaladas en Helm a un complemento. Pues las dependencias NO se instalaron mediante el diagrama Helm del operador de inferencia o si desea administrarlas por separado. (opcional)

**Ejemplos**:

Migración básica (migra las dependencias):

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1
```

Aprobación automática sin solicitudes:

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1 \
  --auto-approve
```

Omita la migración de dependencias para el punto de montaje S3 FSx, el administrador de certificados y el servidor Metrics:

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1 \
  --skip-dependencies-migration
```

Proporcione las funciones de S3 e FSx IAM existentes:

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1 \
  --s3-mountpoint-role-arn arn:aws:iam::123456789012:role/s3-csi-role \
  --fsx-role-arn arn:aws:iam::123456789012:role/fsx-csi-role
```

**Ubicación de Backup:**

Las copias de seguridad se almacenan en `/tmp/hyperpod-migration-backup-<timestamp>/`

Las copias de seguridad permiten una migración y una recuperación seguras:
+ **Reversión en caso de error**: si la migración falla, el script puede restaurar automáticamente el clúster a su estado anterior a la migración utilizando las configuraciones respaldadas
+ Registro **de auditoría**: proporciona un registro completo de lo que existía antes de la migración para la resolución de problemas y el cumplimiento
+ **Referencia de configuración**: le permite comparar las configuraciones previas y posteriores a la migración
+ **Recuperación manual**: si es necesario, puede inspeccionar y restaurar manualmente recursos específicos del directorio de respaldo

**Reversión:**

Si la migración falla, el script solicita la confirmación del usuario antes de iniciar la reversión para restaurar el estado anterior.

## SageMaker HyperPod Notas de la versión de inferencia: v2.3
<a name="sagemaker-hyperpod-inference-release-notes-20260203"></a>

**Novedades**

Esta versión introduce nuevos campos opcionales en las definiciones de recursos personalizadas (CRDs) para mejorar la flexibilidad de la configuración de la implementación.

**Características**
+ **Tipos de instancias múltiples**
  + **Fiabilidad de implementación mejorada**: admite configuraciones de varios tipos de instancia con conmutación por error automática a tipos de instancias alternativos cuando las opciones preferidas carecen de capacidad
  + **Programación inteligente de recursos**: utiliza la afinidad de nodos de Kubernetes para priorizar los tipos de instancias y, al mismo tiempo, garantiza la implementación incluso cuando los recursos preferidos no están disponibles
  + **Coste y rendimiento optimizados**: mantiene sus preferencias de tipo de instancia y evita los fallos relacionados con la capacidad durante las fluctuaciones del clúster

**Correcciones de errores**

Los cambios `invocationEndpoint` en el campo de la especificación `InferenceEndpointConfig` entrarán ahora en vigor:
+ Si el `invocationEndpoint` campo está parcheado o actualizado, los recursos dependientes, como el `Ingress` Load Balancer SageMaker y el Endpoint`SageMakerEndpointRegistration`, se actualizarán con la normalización.
+ El valor `invocationEndpoint` proporcionado se almacenará tal cual en la propia especificación. `InferenceEndpointConfig` Cuando este valor se utilice para crear un Load Balancer y, si está activado, un SageMaker Endpoint, se normalizará para tener una barra diagonal inicial.
  + `v1/chat/completions`se normalizará `/v1/chat/completions` para AWS Load Balancer y Endpoint. `Ingress` SageMaker En el caso de`SageMakerEndpointRegistration`, se mostrará en sus especificaciones como. `v1/chat/completions`
  + `///invoke`se normalizará `/invoke` para AWS Load Balancer y Endpoint. `Ingress` SageMaker En el caso de`SageMakerEndpointRegistration`, se mostrará en sus especificaciones como. `invoke`

**Instalación de Helm:**

Siga: [https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm\$1chart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart)

Si está centrado en instalar únicamente el operador de inferencia, después del paso 1, es decir`Set Up Your Helm Environment`, hágalo. `cd HyperPodHelmChart/charts/inference-operator` Como se encuentra en el propio directorio del gráfico de operadores de inferencia, en los comandos, donde quiera que lo vea`helm_chart/HyperPodHelmChart`, reemplace con. `.`

**Actualice Operator a la versión 2.3 en caso de que ya esté instalado:**

```
cd sagemaker-hyperpod-cli/helm_chart/HyperPodHelmChart/\
charts/inference-operator

helm get values -n kube-system hyperpod-inference-operator \
> current-values.yaml

helm upgrade hyperpod-inference-operator . \
  -n kube-system \
  -f current-values.yaml \
  --set image.tag=v2.3
```

# HyperPod en Studio
<a name="sagemaker-hyperpod-studio"></a>

Puede lanzar cargas de trabajo de aprendizaje automático en SageMaker HyperPod los clústeres de Amazon y ver la información de los HyperPod clústeres en Amazon SageMaker Studio. La mayor visibilidad de los detalles del clúster y de las métricas del hardware puede ayudar a su equipo a identificar al candidato adecuado para las cargas de trabajo previas al entrenamiento o para el refinamiento de cargas de trabajo. 

Hay un conjunto de comandos disponibles para ayudarle a empezar a lanzar Studio IDEs en un HyperPod clúster. Puedes trabajar en tus guiones de entrenamiento, usar contenedores de Docker para los guiones de entrenamiento y enviar trabajos al clúster, todo desde Studio IDEs. IDEs En las siguientes secciones se proporciona información sobre cómo configurarlo, cómo detectar los clústeres y supervisar sus tareas, cómo ver la información de los clústeres y cómo conectarse a HyperPod los clústeres de Studio.

**Topics**
+ [Configuración HyperPod en Studio](sagemaker-hyperpod-studio-setup.md)
+ [HyperPod pestañas en Studio](sagemaker-hyperpod-studio-tabs.md)
+ [Conectarse a HyperPod clústeres y enviar tareas a los clústeres](sagemaker-hyperpod-studio-open.md)
+ [Resolución de problemas](sagemaker-hyperpod-studio-troubleshoot.md)

# Configuración HyperPod en Studio
<a name="sagemaker-hyperpod-studio-setup"></a>

Debe configurar los clústeres en función del orquestador de clústeres que elija para acceder a los clústeres a través de Amazon SageMaker Studio. En las siguientes secciones, elija la configuración que mejor se adapte a su orquestador.

En las instrucciones, se presupone que usted ya ha configurado el clúster. Para obtener información sobre los orquestadores de clústeres y cómo configurarlos, comience con las páginas del HyperPod orquestador:
+  [Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md) 
+  [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) 

**Topics**
+ [Configuración de un clúster de Slurm en Studio](sagemaker-hyperpod-studio-setup-slurm.md)
+ [Configuración de un clúster de Amazon EKS en Studio](sagemaker-hyperpod-studio-setup-eks.md)

# Configuración de un clúster de Slurm en Studio
<a name="sagemaker-hyperpod-studio-setup-slurm"></a>

Las siguientes instrucciones describen cómo configurar un clúster de HyperPod Slurm en Studio.

1. Cree un dominio a menos que ya disponga de uno. Para obtener más información sobre cómo crear un dominio, consulte [Guía para empezar a usar Amazon SageMaker AI](gs.md).

1. (Opcional) Crea y adjunta un volumen personalizado FSx para Lustre a tu dominio. 

   1. Asegúrese de que su sistema de archivos FSx Lustre esté en la misma VPC que el dominio previsto y esté en una de las subredes presentes en el dominio.

   1. Puede seguir las instrucciones de [Adición de un sistema de archivos personalizado a un dominio](domain-custom-file-system.md). 

1. (Opcional) Le recomendamos que añada etiquetas a los clústeres para garantizar un flujo de trabajo más fluido. Para obtener información sobre cómo añadir etiquetas, consulte [Edita un SageMaker HyperPod clúster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters) Cómo actualizar el clúster mediante la SageMaker consola AI.

   1. Etiquete su sistema FSx de archivos de Lustre en su dominio de Studio. Esto le ayudará a identificar el sistema de archivos al lanzar sus espacios de Studio. Para ello, añade la siguiente etiqueta a tu clúster para identificarlo con el ID del FSx sistema de archivos,. `fs-id` 

      Clave de la etiqueta = “`hyperpod-cluster-filesystem`“, valor de la etiqueta = “`fs-id`“

   1. Etiquete el espacio de trabajo [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) en su dominio de Studio. Esto se utilizará para vincular rápidamente su espacio de trabajo de Grafana directamente desde el clúster en Studio. Para ello, añada la siguiente etiqueta a su clúster para identificarlo con el ID del espacio de trabajo de Grafana `ws-id`.

      Clave de la etiqueta = “`grafana-workspace`“, valor de la etiqueta = “`ws-id`“

1. Agregue los siguientes permisos a su rol de ejecución. 

   Para obtener información sobre las funciones de ejecución de la SageMaker IA y cómo editarlas, consulte. [Descripción de los permisos y roles de ejecución de espacio de dominio](execution-roles-and-spaces.md) 

   Para obtener más información acerca de cómo asociar políticas a un grupo o usuario de IAM, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:StartSession",
                   "ssm:TerminateSession"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CreateCluster",
                   "sagemaker:ListClusters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "cloudwatch:PutMetricData",
                   "cloudwatch:GetMetricData"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeCluster",
                   "sagemaker:DescribeClusterNode",
                   "sagemaker:ListClusterNodes",
                   "sagemaker:UpdateCluster",
                   "sagemaker:UpdateClusterSoftware"
               ],
               "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
           }
       ]
   }
   ```

------

1. Añada una etiqueta a este rol de IAM, con la clave de la etiqueta = “`SSMSessionRunAs`“ y el valor de la etiqueta = “`os user`“. `os user` es el mismo usuario que configuró para el clúster de Slurm. Gestione el acceso a SageMaker HyperPod los clústeres a nivel de usuario o rol de IAM mediante la función Ejecutar como de [AWS Systems Manager Agent (SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)). Esta característica permite iniciar cada sesión de SSM con el usuario del sistema operativo (SO) asociado al usuario o rol de IAM. 

   Para obtener más información sobre cómo añadir etiquetas a su rol de ejecución, consulte [Etiquetado de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html).

1. [Active la compatibilidad con Ejecutar como para los nodos administrados por Linux y macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). La configuración de Ejecutar como se aplica a toda la cuenta y es necesaria para que todas las sesiones de SSM se inicien correctamente.

1. (Opcional). [Restricción de la vista de tareas en Studio para los clústeres de Slurm](#sagemaker-hyperpod-studio-setup-slurm-restrict-tasks-view) Para obtener más información sobre las tareas visibles en Studio, consulte [Tareas](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks).

En Amazon SageMaker Studio, puede navegar para ver sus clústeres en HyperPod clústeres (en Compute).

## Restricción de la vista de tareas en Studio para los clústeres de Slurm
<a name="sagemaker-hyperpod-studio-setup-slurm-restrict-tasks-view"></a>

Puede restringir la visualización de las tareas de Slurm a los usuarios con autorización para ver, sin que sea necesario introducir manualmente los espacios de nombres ni realizar comprobaciones de permisos adicionales. La restricción se aplica en función del rol de IAM de los usuarios, lo que proporciona una experiencia de usuario segura y optimizada. En la siguiente sección, se explica cómo restringir la visualización de tareas en los clústeres de Studio para Slurm. Para obtener más información sobre las tareas visibles en Studio, consulte [Tareas](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks). 

Todos los usuarios de Studio pueden ver, administrar e interactuar con todas las tareas del clúster de Slurm de forma predeterminada. Para restringirlo, puede administrar el acceso a SageMaker HyperPod los clústeres a nivel de usuario o rol de IAM mediante la función **Ejecutar como** de [AWS Systems Manager Agent (SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)).

Para ello, debe etiquetar los roles de IAM con identificadores específicos, como su nombre de usuario o grupo. Cuando un usuario accede a Studio, el Administrador de sesiones utiliza la característica Ejecutar como para ejecutar comandos como una cuenta de usuario específica de Slurm que coincide con sus etiquetas de rol de IAM. La configuración de Slurm se puede configurar de manera que se limite la visibilidad de las tareas en función de la cuenta de usuario. La interfaz de usuario de Studio filtrará automáticamente las tareas visibles para esa cuenta de usuario específica cuando los comandos se ejecuten con la característica Ejecutar como. Una vez configuradas, cada usuario que asuma el rol con los identificadores especificados filtrará esas tareas de Slurm en función de la configuración de Slurm. Para obtener más información sobre cómo añadir etiquetas a su rol de ejecución, consulte [Etiquetado de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html).

# Configuración de un clúster de Amazon EKS en Studio
<a name="sagemaker-hyperpod-studio-setup-eks"></a>

En las siguientes instrucciones se describe cómo configurar un clúster de Amazon EKS en Studio.

1. Cree un dominio a menos que ya disponga de uno. Para obtener más información sobre cómo crear un dominio, consulte [Guía para empezar a usar Amazon SageMaker AI](gs.md).

1. Agregue los siguientes permisos a su rol de ejecución. 

   Para obtener información sobre las funciones de ejecución de la SageMaker IA y cómo editarlas, consulte[Descripción de los permisos y roles de ejecución de espacio de dominio](execution-roles-and-spaces.md). 

   Para obtener más información acerca de cómo asociar políticas a un grupo o usuario de IAM, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DescribeHyerpodClusterPermissions",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeCluster"
               ],
               "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/cluster-name"
           },
           {
               "Effect": "Allow",
               "Action": "ec2:Describe*",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ecr:CompleteLayerUpload",
                   "ecr:GetAuthorizationToken",
                   "ecr:UploadLayerPart",
                   "ecr:InitiateLayerUpload",
                   "ecr:BatchCheckLayerAvailability",
                   "ecr:PutImage"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
                   "Action": [
                       "cloudwatch:PutMetricData",
                       "cloudwatch:GetMetricData"
                       ],
               "Resource": "*"
           },
           {
               "Sid": "UseEksClusterPermissions",
               "Effect": "Allow",
               "Action": [
                   "eks:DescribeCluster",
                   "eks:AccessKubernetesApi",
                   "eks:DescribeAddon"
               ],
               "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/cluster-name"
           },
           {
               "Sid": "ListClustersPermission",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:ListClusters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:StartSession",
                   "ssm:TerminateSession"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. [Conceda acceso para los usuarios de IAM a las entradas de acceso de Kubernetes con EKS](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html).

   1. Navegue hasta el clúster de Amazon EKS asociado a su HyperPod clúster.

   1. Elija la pestaña **Acceso** y [cree una entrada de acceso](https://docs.aws.amazon.com/eks/latest/userguide/creating-access-entries.html) para el rol de ejecución que ha creado. 

      1. En el paso 1, seleccione el rol de ejecución que ha creado anteriormente en el menú desplegable de la entidad principal de **IAM**.

      1. En el paso 2, seleccione un nombre de política y un ámbito de acceso al que desee que tengan acceso los usuarios. 

1. (Opcional) Le recomendamos que añada etiquetas a los clústeres para disfrutar de una experiencia más fluida. Para obtener información sobre cómo añadir etiquetas, consulte [Edita un SageMaker HyperPod clúster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters) para actualizar el clúster mediante la consola SageMaker AI.

   1. Etiquete el espacio de trabajo [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) en su dominio de Studio. Esto se utilizará para vincular rápidamente su espacio de trabajo de Grafana directamente desde el clúster en Studio. Para ello, añada la siguiente etiqueta a su clúster para identificarlo con el ID del espacio de trabajo de Grafana `ws-id`.

     Clave de la etiqueta = “`grafana-workspace`“, valor de la etiqueta = “`ws-id`“

1. (Opcional) [Restricción de la vista de tareas en Studio para los clústeres de EKS](#sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view). Para obtener más información sobre las tareas visibles en Studio, consulte [Tareas](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks).

## Restricción de la vista de tareas en Studio para los clústeres de EKS
<a name="sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view"></a>

Puede restringir los permisos del espacio de nombres de Kubernetes para que los usuarios solo tengan acceso para ver las tareas que pertenezcan a un espacio de nombres específico. A continuación, se explica cómo restringir la visualización de tareas en los clústeres de Studio para EKS. Para obtener más información sobre las tareas visibles en Studio, consulte [Tareas](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks). 

De forma predeterminada, los usuarios podrán ver todas las tareas del clúster de EKS. Puede restringir la visibilidad de los usuarios de las tareas del clúster de EKS a espacios de nombres específicos, de forma que los usuarios puedan acceder a los recursos que necesitan pero, al mismo tiempo, pueda mantener estrictos controles de acceso. Deberá proporcionar el espacio de nombres para que el usuario muestre los trabajos de ese espacio de nombres una vez que se haya configurado lo siguiente.

Una vez aplicada la restricción, tendrá que proporcionar el espacio de nombres a los usuarios que asuman el rol. Studio solo mostrará los trabajos del espacio de nombres cuando el usuario proporcione las entradas del espacio de nombres para las que tiene permisos de visualización en la pestaña **Tareas**. 

La siguiente configuración permite a los administradores conceder un acceso específico y limitado a los científicos de datos para ver las tareas del clúster. Esta configuración concede los siguientes permisos:
+ Enumerar y obtener pods
+ Enumerar y obtener eventos
+ Obtenga definiciones de recursos personalizadas (CRDs)

Configuración de YAML

```
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: pods-events-crd-cluster-role
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list"]
- apiGroups: [""]
  resources: ["events"]
  verbs: ["get", "list"]
- apiGroups: ["apiextensions.k8s.io"]
  resources: ["customresourcedefinitions"]
  verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: pods-events-crd-cluster-role-binding
subjects:
- kind: Group
  name: pods-events-crd-cluster-level
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: pods-events-crd-cluster-role
  apiGroup: rbac.authorization.k8s.io
```

1. Guarde la configuración de YAML en un archivo llamado `cluster-role.yaml`.

1. Aplique esta configuración con [https://kubernetes.io/docs/reference/kubectl/](https://kubernetes.io/docs/reference/kubectl/):

   ```
   kubectl apply -f cluster-role.yaml
   ```

1. Verifique la configuración:

   ```
   kubectl get clusterrole pods-events-crd-cluster-role
   kubectl get clusterrolebinding pods-events-crd-cluster-role-binding
   ```

1. Asigne usuarios al grupo `pods-events-crd-cluster-level` a través del proveedor de identidades o de IAM.

# HyperPod pestañas en Studio
<a name="sagemaker-hyperpod-studio-tabs"></a>

En Amazon SageMaker Studio, puede navegar hasta uno de sus clústeres en **HyperPodclústeres** (en **Compute**) y ver la lista de clústeres. Los clústeres que se muestran contienen información como tareas, métricas de hardware, configuración y detalles de los metadatos. Esta visibilidad puede ayudar a su equipo a identificar al candidato adecuado para sus cargas de trabajo previamente entrenadas o de refinamiento. En las siguientes secciones se presenta información acerca de cada tipo de información.

## Tareas
<a name="sagemaker-hyperpod-studio-tabs-tasks"></a>

Amazon SageMaker HyperPod proporciona una vista de las tareas del clúster. Las tareas son operaciones o trabajos que se envían al clúster. Pueden ser operaciones de machine learning, como el entrenamiento, la ejecución de experimentos o la inferencia. En la siguiente sección, se proporciona información sobre las tareas HyperPod del clúster.

En Amazon SageMaker Studio, puede ir a uno de sus clústeres en **HyperPodclústeres** (en **Compute**) y ver la información de **tareas** de su clúster. Si tiene problemas con la visualización de las tareas, consulte [Resolución de problemas](sagemaker-hyperpod-studio-troubleshoot.md).

La tabla de tareas incluye:

------
#### [ For Slurm clusters ]

En el caso de los clústeres de Slurm, en la tabla se muestran las tareas que se encuentran actualmente en la cola del programador de trabajos de Slurm. La información que se muestra para cada tarea incluye el nombre de la tarea, el estado, el ID del trabajo, la partición, el tiempo de ejecución, los nodos, los elementos creados por y las acciones.

Para obtener una lista y detalles sobre los trabajos anteriores, usa el [https://slurm.schedmd.com/sacct.html](https://slurm.schedmd.com/sacct.html)comando in JupyterLab o un terminal de editor de código. El comando `sacct` se usa para ver *información histórica* sobre los trabajos que han *finalizado* o están *completos* en el sistema. Proporciona información contable, incluido el uso de los recursos del trabajo, como la memoria y el estado de salida. 

Todos los usuarios de Studio pueden ver, administrar e interactuar con todas las tareas disponibles de Slurm de forma predeterminada. Para restringir las tareas visibles a los usuarios de Studio, consulte [Restricción de la vista de tareas en Studio para los clústeres de Slurm](sagemaker-hyperpod-studio-setup-slurm.md#sagemaker-hyperpod-studio-setup-slurm-restrict-tasks-view).

------
#### [ For Amazon EKS clusters ]

Para los clústeres de Amazon EKS, las tareas de kubeflow (PyTorch, MPI, TensorFlow) se muestran en la tabla. PyTorch las tareas se muestran de forma predeterminada. Puede ordenar por PyTorch MPI y por **Tipo TensorFlow de tarea**. De cada tarea se muestra el nombre, el estado, el espacio de nombres, la clase de prioridad y la hora de creación. 

De manera predeterminada, todos los usuarios pueden ver los trabajos en todos los espacios de nombres. Para restringir los espacios de nombres de Kubernetes visibles disponibles para los usuarios de Studio, consulte [Restricción de la vista de tareas en Studio para los clústeres de EKS](sagemaker-hyperpod-studio-setup-eks.md#sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view). Si un usuario no puede ver las tareas y se le pide que proporcione un espacio de nombres, debe obtener esa información del administrador. 

------

## Métricas
<a name="sagemaker-hyperpod-studio-tabs-metrics"></a>

Amazon SageMaker HyperPod proporciona una vista de las métricas de uso de sus clústeres de Slurm o Amazon EKS. A continuación, se proporciona información sobre las métricas de su HyperPod clúster. 

Deberá instalar el complemento de Amazon EKS para ver las siguientes métricas. Para obtener más información, consulte [Instalación del complemento Amazon CloudWatch Observability EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html).

En Amazon SageMaker Studio, puede ir a uno de sus clústeres en **HyperPodclústeres** (en **Compute**) y ver los detalles de **las métricas** de su clúster. Las métricas ofrecen una vista integral de las métricas de uso del clúster, incluidas las métricas de hardware, equipo y tareas. Esto incluye la disponibilidad y el uso de la computación, la asignación y utilización de los equipos y la información sobre el tiempo de ejecución y espera de las tareas. 

## Configuración
<a name="sagemaker-hyperpod-studio-tabs-settings"></a>

Amazon SageMaker HyperPod proporciona una vista de la configuración del clúster. A continuación, se proporciona información sobre la configuración del HyperPod clúster.

En Amazon SageMaker Studio, puede ir a uno de sus clústeres en **HyperPodclústeres** (en **Compute**) y ver la información de **configuración** de su clúster. La información incluye lo siguiente:
+ Detalles de las **instancias**, como el ID de la instancia, el estado, el tipo de instancia y el grupo de instancias.
+ Detalles de los **grupos de instancias**, como el nombre, el tipo, los recuentos y la información de computación del grupo de instancias.
+ Detalles de la **orquestación**, como el orquestador, la versión y la autoridad de certificación.
+ Detalles de la **resiliencia del clúster**.
+ Detalles de **seguridad**, como las subredes y los grupos de seguridad.

## Details
<a name="sagemaker-hyperpod-studio-tabs-details"></a>

Amazon SageMaker HyperPod proporciona una vista de los detalles de los metadatos del clúster. El siguiente párrafo proporciona información sobre cómo obtener los detalles HyperPod del clúster.

En Amazon SageMaker Studio, puede ir a uno de sus clústeres en **HyperPodclústeres** (en **Compute**) y ver los **detalles** de su clúster. Esto incluye las etiquetas, los registros y los metadatos.

# Conectarse a HyperPod clústeres y enviar tareas a los clústeres
<a name="sagemaker-hyperpod-studio-open"></a>

Puede lanzar cargas de trabajo de aprendizaje automático en HyperPod clústeres de Amazon SageMaker Studio IDEs. Cuando lanzas Studio IDEs en un HyperPod clúster, hay un conjunto de comandos disponibles para ayudarte a empezar. Puedes trabajar en tus guiones de entrenamiento, usar contenedores de Docker para los guiones de entrenamiento y enviar trabajos al clúster, todo desde Studio IDEs. En la siguiente sección, se proporciona información sobre cómo conectar el clúster a Studio IDEs.

En Amazon SageMaker Studio, puede navegar hasta uno de sus clústeres en **HyperPodclústeres** (en **Compute**) y ver la lista de clústeres. Puede conectar el clúster a un IDE que aparezca en **Acciones**. 

También puede elegir un sistema de archivos personalizado de la lista de opciones. Para obtener más información sobre cómo obtener esta configuración, consulte [Configuración HyperPod en Studio](sagemaker-hyperpod-studio-setup.md).

De forma alternativa, puede crear un espacio e iniciar un IDE mediante la AWS CLI. Para ello, utilice los siguientes comandos. En el siguiente ejemplo, se crea un `Private` `JupyterLab` espacio `user-profile-name` con el sistema de archivos `fs-id` FSx for Lustre adjunto.

1. Cree un espacio con. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html) AWS CLI

   ```
   aws sagemaker create-space \
   --region your-region \
   --ownership-settings "OwnerUserProfileName=user-profile-name" \
   --space-sharing-settings "SharingType=Private" \
   --space-settings "AppType=JupyterLab,CustomFileSystems=[{FSxLustreFileSystem={FileSystemId=fs-id}}]"
   ```

1. Cree la aplicación con [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-app.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-app.html) AWS CLI.

   ```
   aws sagemaker create-app \
   --region your-region \
   --space-name space-name \
   --resource-spec '{"ec2InstanceType":"'"instance-type"'","appEnvironmentArn":"'"image-arn"'"}'
   ```

Cuando haya abierto las aplicaciones, podrá enviar las tareas directamente a los clústeres a los que esté conectado. 

# Resolución de problemas
<a name="sagemaker-hyperpod-studio-troubleshoot"></a>

En la siguiente sección, se enumeran las soluciones de solución de problemas HyperPod en Studio.

**Topics**
+ [Pestaña Tareas](#sagemaker-hyperpod-studio-troubleshoot-tasks)
+ [Pestaña Métricas](#sagemaker-hyperpod-studio-troubleshoot-metrics)

## Pestaña Tareas
<a name="sagemaker-hyperpod-studio-troubleshoot-tasks"></a>

Si recibe el mensaje Custom Resource Definition (CRD) is not configured on the cluster mientras está en la pestaña **Tareas**.
+ Conceda las políticas `EKSAdminViewPolicy` y `ClusterAccessRole` al rol de ejecución de su dominio. 

  Para obtener más información sobre cómo añadir etiquetas a su rol de ejecución, consulte [Etiquetado de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html).

  Para obtener más información acerca de cómo asociar políticas a un grupo o usuario de IAM, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

Si la cuadrícula de tareas de las métricas de Slurm no deja de cargarse en la pestaña **Tareas**.
+ Asegúrese de que `RunAs` esté activado en las preferencias del [Administrador de sesiones de AWS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) y que el rol que está utilizando tenga la etiqueta `SSMSessionRunAs` asociada. 
  + Para activar `RunAs`, vaya a la pestaña **Preferencias** de la [consola de Systems Manager](https://console.aws.amazon.com/systems-manager/session-manager). 
  +  [Active la compatibilidad con Ejecutar como para los nodos administrados por Linux y macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). 

Para ver las tareas restringidas en Studio para los clústeres de EKS:
+ Si su rol de ejecución no tiene permisos para enumerar los espacios de nombres de los clústeres de EKS.
  + Consulte [Restricción de la vista de tareas en Studio para los clústeres de EKS](sagemaker-hyperpod-studio-setup-eks.md#sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view).
+ Si los usuarios tienen problemas de acceso a los clústeres de EKS.

  1. Compruebe que el RBAC esté activado ejecutando el siguiente AWS CLI comando.

     ```
     kubectl api-versions | grep rbac
     ```

     Debería devolver rbac.authorization.k8s.io/v1.

  1. Ejecute los siguientes comandos para comprobar si existen `ClusterRole` y `ClusterRoleBinding`.

     ```
     kubectl get clusterrole pods-events-crd-cluster-role
     kubectl get clusterrolebinding pods-events-crd-cluster-role-binding
     ```

  1. Compruebe la pertenencia a un grupo de usuarios. Asegúrese de que el usuario esté asignado correctamente al grupo `pods-events-crd-cluster-level` en su proveedor de identidades o IAM.
+ Si el usuario no puede ver ningún recurso.
  + Compruebe la pertenencia al grupo y asegúrese de que `ClusterRoleBinding` se haya aplicado correctamente.
+ Si los usuarios pueden ver recursos en todos los espacios de nombres.
  + Si se requiere una restricción del espacio de nombres, considere usar `Role` y `RoleBinding` en lugar de `ClusterRole` y `ClusterRoleBinding`.
+ Si la configuración parece correcta, pero no se aplican los permisos.
  + Compruebe si alguna `NetworkPolicies` o `PodSecurityPolicies` interfiere con el acceso.

## Pestaña Métricas
<a name="sagemaker-hyperpod-studio-troubleshoot-metrics"></a>

Si no hay CloudWatch estadísticas de Amazon, se muestran en la pestaña **Métricas**.
+ La `Metrics` sección de detalles del HyperPod clúster se utiliza CloudWatch para buscar los datos. Para ver las métricas de esta sección, debe estar activado [Observabilidad de clústeres y tareas](sagemaker-hyperpod-eks-cluster-observability-cluster.md). Póngase en contacto con su administrador para configurar las métricas.

# SageMaker HyperPod referencias
<a name="sagemaker-hyperpod-ref"></a>

Encuentre más información y referencias sobre su uso SageMaker HyperPod en los siguientes temas.

**Topics**
+ [SageMaker HyperPod precios](#sagemaker-hyperpod-ref-pricing)
+ [SageMaker HyperPod APIs](#sagemaker-hyperpod-ref-api)
+ [SageMaker HyperPod Configuración de Slurm](#sagemaker-hyperpod-ref-slurm-configuration)
+ [SageMaker HyperPod DLAMI](#sagemaker-hyperpod-ref-hyperpod-ami)
+ [SageMaker HyperPod Referencia de permisos de API](#sagemaker-hyperpod-ref-api-permissions)
+ [SageMaker HyperPod comandos en AWS CLI](#sagemaker-hyperpod-ref-cli)
+ [SageMaker HyperPod Módulos de Python en AWS SDK para Python (Boto3)](#sagemaker-hyperpod-ref-boto3)

## SageMaker HyperPod precios
<a name="sagemaker-hyperpod-ref-pricing"></a>

En los temas siguientes se proporciona información sobre SageMaker HyperPod los precios. Para obtener más información sobre el precio por hora del uso de SageMaker HyperPod instancias, consulta también [ SageMaker los precios de Amazon](https://aws.amazon.com/sagemaker/pricing/). 

**Solicitudes de capacidad**

Puede asignar capacidad informática reservada o bajo demanda con SageMaker IA para su uso en ellas SageMaker HyperPod. La creación de clústeres bajo demanda asigna la capacidad disponible del conjunto de capacidades bajo demanda de SageMaker IA. Como alternativa, puede solicitar una capacidad reservada para garantizar el acceso enviando un ticket para aumentar la cuota. La SageMaker IA prioriza las solicitudes de capacidad entrantes y usted recibe un tiempo estimado para la asignación de la capacidad.

**Facturación del servicio**

Cuando aprovisiona una capacidad de cómputo SageMaker HyperPod, se le factura por la duración de la asignación de capacidad. SageMaker HyperPod la facturación aparece en tus facturas de aniversario con una partida que indica el tipo de asignación de capacidad (bajo demanda, reservada), el tipo de instancia y el tiempo dedicado a usarla. 

Para enviar una solicitud de aumento de cuota, consulte [SageMaker HyperPod cuotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

## SageMaker HyperPod APIs
<a name="sagemaker-hyperpod-ref-api"></a>

La siguiente lista incluye un conjunto completo de opciones SageMaker HyperPod APIs para enviar solicitudes de acción en formato JSON a SageMaker AI a través de AWS CLI o AWS SDK para Python (Boto3).
+ [BatchDeleteClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchDeleteClusterNodes.html)
+ [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)
+ [DeleteCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteCluster.html)
+ [DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)
+ [DescribeClusterNode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterNode.html)
+ [ListClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterNodes.html)
+ [ListClusters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusters.html)
+ [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)
+ [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)

## SageMaker HyperPod Configuración de Slurm
<a name="sagemaker-hyperpod-ref-slurm-configuration"></a>

HyperPod admite dos enfoques para configurar Slurm en su clúster. Elija el enfoque que mejor se adapte a sus necesidades.


|  |  |  | 
| --- |--- |--- |
| Enfoque | Descripción | Recomendado para | 
| Configuración basada en API | Defina la configuración de Slurm directamente en las solicitudes de la API y CreateCluster UpdateCluster  | Nuevos clústeres; administración simplificada | 
| Configuración antigua | Utilice un provisioning\$1parameters.json archivo independiente almacenado en Amazon S3 | Clústeres existentes; compatibilidad con versiones anteriores | 

### Configuración de Slurm basada en API (recomendada)
<a name="sagemaker-hyperpod-ref-slurm-api-driven"></a>

Con la configuración basada en API, los tipos de nodos de Slurm, las asignaciones de particiones y los montajes de los sistemas de archivos se definen directamente en las solicitudes de Slurm y de API. CreateCluster UpdateCluster Este enfoque proporciona lo siguiente:
+ **Fuente única de información: toda la configuración está en la solicitud de API**
+ **Sin administración de archivos S3**: no es necesario crearlos ni mantenerlos `provisioning_parameters.json`
+ **Validación integrada: la** API valida la topología de Slurm antes de la creación del clúster
+ Detección de **desviaciones: detecta cambios** no autorizados en `slurm.conf`
+ **Per-instance-group almacenamiento**: configura diferentes FSx sistemas de archivos para diferentes grupos de instancias
+ **FSx para compatibilidad con OpenZFS**: monte sistemas de archivos OpenZFS además de para Lustre FSx 

#### SlurmConfig (por grupo de instancias)
<a name="sagemaker-hyperpod-ref-slurm-config"></a>

`SlurmConfig`Añádelo a cada grupo de instancias para definir el tipo de nodo de Slurm y la asignación de particiones.

```
"SlurmConfig": {
    "NodeType": "Controller | Login | Compute",
    "PartitionNames": ["string"]
}
```

**Parámetros:**
+ `NodeType`: obligatorio. El tipo de nodo Slurm para este grupo de instancias. Valores válidos:
  + `Controller`— Nodo controlador (principal) de Slurm. Ejecuta el daemon`slurmctld`. Exactamente un grupo de instancias debe tener este tipo de nodo.
  + `Login`— Nodo de inicio de sesión para el acceso de los usuarios. Opcional. Como máximo, un grupo de instancias puede tener este tipo de nodo.
  + `Compute`— Nodos de trabajo que ejecutan trabajos. Puede tener varios grupos de instancias con este tipo de nodo.
**importante**  
`NodeType`es inmutable. Una vez establecido durante la creación del clúster, no se puede cambiar. Para usar un tipo de nodo diferente, crea un grupo de instancias nuevo.
+ `PartitionNames`: condicional. Un conjunto de nombres de particiones de Slurm. Necesario para los tipos de `Compute` nodos; no está permitido para `Controller` ningún tipo de `Login` nodo. Actualmente, admite un único nombre de partición por grupo de instancias.
**nota**  
Todos los nodos se agregan automáticamente a la `dev` partición universal además de la partición especificada.

**Ejemplo:**

```
{
    "InstanceGroupName": "gpu-compute",
    "InstanceType": "ml.p4d.24xlarge",
    "InstanceCount": 8,
    "SlurmConfig": {
        "NodeType": "Compute",
        "PartitionNames": ["gpu-training"]
    },
    "LifeCycleConfig": {
        "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/",
        "OnCreate": "on_create.sh"
    },
    "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole"
}
```

#### Orchestrator.Slurm (a nivel de clúster)
<a name="sagemaker-hyperpod-ref-slurm-orchestrator"></a>

Añádalo `Orchestrator.Slurm` a la configuración del clúster para especificar cómo se gestiona el archivo. HyperPod `slurm.conf`

```
"Orchestrator": {
    "Slurm": {
        "SlurmConfigStrategy": "Managed | Overwrite | Merge"
    }
}
```

**Parámetros:**
+ `SlurmConfigStrategy`— Obligatorio cuando `Orchestrator.Slurm` se proporciona. Controla la forma en que se HyperPod administra el `slurm.conf` archivo en el nodo controlador. Valores válidos:
  + `Managed`(predeterminado): controla HyperPod completamente las asignaciones entre nodos y particiones en él. `slurm.conf` La detección de desviaciones está habilitada: si la configuración actual `slurm.conf` difiere de la esperada, se produce un UpdateCluster error. Utilice esta estrategia cuando desee HyperPod ser la única fuente de información fiable para la configuración de Slurm.
  + `Overwrite`— HyperPod fuerza la aplicación de la configuración de la API y sobrescribe cualquier cambio manual en ella. `slurm.conf` La detección de deriva está desactivada. Utilice esta estrategia para recuperarse de una desviación o restablecer el clúster a un estado conocido.
  + `Merge`— HyperPod conserva `slurm.conf` los cambios manuales y los fusiona con la configuración de la API. La detección de deriva está desactivada. Utilice esta estrategia si necesita realizar cambios manuales en la configuración de Slurm que deberían persistir a lo largo de las actualizaciones.

**nota**  
Si `Orchestrator.Slurm` se omite en la solicitud, el comportamiento predeterminado es la estrategia. `Managed`

**sugerencia**  
Puede cambiarlo `SlurmConfigStrategy` en cualquier momento utilizando UpdateCluster. No hay que ceñirse a una estrategia específica.

**Ejemplo:**

```
{
    "ClusterName": "my-hyperpod-cluster",
    "InstanceGroups": [...],
    "Orchestrator": {
        "Slurm": {
            "SlurmConfigStrategy": "Managed"
        }
    }
}
```

#### SlurmConfigStrategy comparación
<a name="sagemaker-hyperpod-ref-slurm-strategy-comparison"></a>


|  |  |  |  | 
| --- |--- |--- |--- |
| Strategy (Estrategia) | Detección de deriva | Cambios manuales | Caso de uso | 
| Managed | Activado: bloquea las actualizaciones si se detecta una desviación | Blocked | HyperPod gestionado | 
| Overwrite | Deshabilitado | Sobrescrito | Recuperación de una desviación; restablecimiento al estado conocido | 
| Merge | Deshabilitado | Preservado | Usuarios avanzados con slurm.conf necesidades personalizadas | 

#### FSx configuración mediante InstanceStorageConfigs
<a name="sagemaker-hyperpod-ref-slurm-fsx-config"></a>

Con la configuración basada en API, puede configurar los FSx sistemas de archivos por grupo de instancias mediante. `InstanceStorageConfigs` Esto permite que diferentes grupos de instancias monten diferentes sistemas de archivos.

**Requisitos previos**:
+ El clúster debe usar una VPC personalizada (via`VpcConfig`). FSx los sistemas de archivos residen en su VPC y la VPC administrada por la plataforma no puede acceder a ellos.
+ Debe haber al menos un grupo de instancias con. `SlurmConfig` `NodeType: Controller`

##### FsxLustreConfig
<a name="sagemaker-hyperpod-ref-slurm-fsx-lustre"></a>

Configura FSx el montaje del sistema de archivos Lustre para un grupo de instancias.

```
"InstanceStorageConfigs": [
    {
        "FsxLustreConfig": {
            "DnsName": "string",
            "MountPath": "string",
            "MountName": "string"
        }
    }
]
```

**Parámetros:**
+ `DnsName`: obligatorio. El nombre DNS del sistema de archivos de Lustre FSx . Ejemplo: `fs-0abc123def456789.fsx.us-west-2.amazonaws.com`
+ `MountPath`: opcional. La ruta de montaje local de la instancia. Valor predeterminado: `/fsx`
+ `MountName`: obligatorio. El nombre de montaje del FSx sistema de archivos de Lustre. Puedes encontrarlo en la FSx consola de Amazon o ejecutándolo`aws fsx describe-file-systems`.

##### FsxOpenZfsConfig
<a name="sagemaker-hyperpod-ref-slurm-fsx-openzfs"></a>

Configura FSx el montaje del sistema de archivos OpenZFS para un grupo de instancias.

```
"InstanceStorageConfigs": [
    {
        "FsxOpenZfsConfig": {
            "DnsName": "string",
            "MountPath": "string"
        }
    }
]
```

**Parámetros:**
+ `DnsName`: obligatorio. El nombre DNS del sistema de archivos OpenZFS FSx . Ejemplo: `fs-0xyz987654321.fsx.us-west-2.amazonaws.com`
+ `MountPath`: opcional. La ruta de montaje local de la instancia. Valor predeterminado: `/home`

**nota**  
Cada grupo de instancias puede tener como máximo uno `FsxLustreConfig` y uno`FsxOpenZfsConfig`.

**Ejemplo con varios sistemas de archivos:**

```
{
    "InstanceGroupName": "gpu-compute",
    "InstanceType": "ml.p4d.24xlarge",
    "InstanceCount": 4,
    "SlurmConfig": {
        "NodeType": "Compute",
        "PartitionNames": ["gpu-training"]
    },
    "InstanceStorageConfigs": [
        {
            "FsxLustreConfig": {
                "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                "MountPath": "/fsx",
                "MountName": "abcdefgh"
            }
        },
        {
            "FsxOpenZfsConfig": {
                "DnsName": "fs-0xyz987654321.fsx.us-west-2.amazonaws.com",
                "MountPath": "/shared"
            }
        },
        {
            "EbsVolumeConfig": {
                "VolumeSizeInGB": 500
            }
        }
    ],
    "LifeCycleConfig": {
        "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/",
        "OnCreate": "on_create.sh"
    },
    "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole"
}
```

**importante**  
FSx los cambios de configuración solo se aplican durante el aprovisionamiento de nodos. Los nodos existentes conservan su FSx configuración original. Para aplicar la nueva FSx configuración a todos los nodos, reduce el grupo de instancias a 0 y, a continuación, vuelve a escalarlo.

#### Ejemplo completo de configuración basada en API
<a name="sagemaker-hyperpod-ref-slurm-complete-example"></a>

El siguiente ejemplo muestra una CreateCluster solicitud completa mediante una configuración de Slurm basada en API:

```
{
    "ClusterName": "ml-training-cluster",
    "InstanceGroups": [
        {
            "InstanceGroupName": "controller",
            "InstanceType": "ml.c5.xlarge",
            "InstanceCount": 1,
            "SlurmConfig": {
                "NodeType": "Controller"
            },
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole",
            "ThreadsPerCore": 2
        },
        {
            "InstanceGroupName": "login",
            "InstanceType": "ml.m5.xlarge",
            "InstanceCount": 1,
            "SlurmConfig": {
                "NodeType": "Login"
            },
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole",
            "ThreadsPerCore": 2
        },
        {
            "InstanceGroupName": "gpu-compute",
            "InstanceType": "ml.p4d.24xlarge",
            "InstanceCount": 8,
            "SlurmConfig": {
                "NodeType": "Compute",
                "PartitionNames": ["gpu-training"]
            },
            "InstanceStorageConfigs": [
                {
                    "FsxLustreConfig": {
                        "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                        "MountPath": "/fsx",
                        "MountName": "abcdefgh"
                    }
                }
            ],
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole",
            "ThreadsPerCore": 2,
            "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"]
        },
        {
            "InstanceGroupName": "cpu-compute",
            "InstanceType": "ml.c5.18xlarge",
            "InstanceCount": 4,
            "SlurmConfig": {
                "NodeType": "Compute",
                "PartitionNames": ["cpu-preprocessing"]
            },
            "InstanceStorageConfigs": [
                {
                    "FsxLustreConfig": {
                        "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                        "MountPath": "/fsx",
                        "MountName": "abcdefgh"
                    }
                }
            ],
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole",
            "ThreadsPerCore": 2
        }
    ],
    "Orchestrator": {
        "Slurm": {
            "SlurmConfigStrategy": "Managed"
        }
    },
    "VpcConfig": {
        "SecurityGroupIds": ["sg-0abc123def456789a"],
        "Subnets": ["subnet-0abc123def456789a", "subnet-0abc123def456789b"]
    },
    "Tags": [
        {
            "Key": "Project",
            "Value": "ML-Training"
        }
    ]
}
```

Para obtener más información sobre el uso de la configuración basada en API, consulte. [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)

### Configuración antigua: provisioning\$1parameters.json
<a name="sagemaker-hyperpod-ref-provisioning-forms"></a>

**nota**  
El `provisioning_parameters.json` enfoque es el método tradicional para configurar Slurm on. HyperPod Para los clústeres nuevos, recomendamos utilizar el enfoque de configuración basado en API descrito anteriormente. El enfoque tradicional sigue siendo totalmente compatible con versiones anteriores.

Con el enfoque tradicional, crea un archivo de configuración de Slurm denominado `provisioning_parameters.json` y lo carga en Amazon S3 como parte de sus scripts de ciclo de vida. HyperPod lee este archivo durante la creación del clúster para configurar los nodos de Slurm.

#### Formulario de configuración para provisioning\$1parameters.json
<a name="sagemaker-hyperpod-ref-provisioning-forms-slurm"></a>

El siguiente código es el formulario de configuración de Slurm que debe preparar para configurar correctamente los nodos de Slurm en su clúster. HyperPod Debe completar este formulario y cargarlo como parte de un conjunto de scripts de ciclo de vida durante la creación del clúster. Para saber cómo se debe preparar este formulario durante los procesos de creación de HyperPod clústeres, consulte. [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)

```
// Save as provisioning_parameters.json.
{
    "version": "1.0.0",
    "workload_manager": "slurm",
    "controller_group": "string",
    "login_group": "string",
    "worker_groups": [
        {
            "instance_group_name": "string",
            "partition_name": "string"
        }
    ],
    "fsx_dns_name": "string",
    "fsx_mountname": "string"
}
```

**Parámetros:**
+ `version`: obligatorio. Esta es la versión del formulario de parámetros de HyperPod aprovisionamiento. Déjelo como `1.0.0`.
+ `workload_manager`: obligatorio. Esto sirve para especificar qué administrador de carga de trabajo se debe configurar en el HyperPod clúster. Déjelo como `slurm`.
+ `controller_group`: obligatorio. Esto sirve para especificar el nombre del grupo de instancias del HyperPod clúster que desea asignar al nodo controlador (principal) de Slurm.
+ `login_group`: opcional. Esto sirve para especificar el nombre del grupo de instancias del HyperPod clúster que quieres asignar al nodo de inicio de sesión de Slurm.
+ `worker_groups`: obligatorio. Esto sirve para configurar los nodos de trabajo (cómputo) de Slurm en el clúster. HyperPod 
  + `instance_group_name`: obligatorio. Esto sirve para especificar el nombre del grupo de HyperPod instancias que deseas asignar al nodo trabajador (de cómputo) de Slurm.
  + `partition_name`: obligatorio. Esto sirve para especificar el nombre de la partición para el nodo.
+ `fsx_dns_name`: opcional. Si quieres configurar tus nodos Slurm en el HyperPod clúster para que se comuniquen con Amazon FSx, especifica el nombre FSx DNS.
+ `fsx_mountname`: opcional. Si quieres configurar tus nodos Slurm en el HyperPod clúster para que se comuniquen con Amazon FSx, especifica el nombre del FSx montaje.

### Comparación: configuración basada en API frente a configuración tradicional
<a name="sagemaker-hyperpod-ref-slurm-comparison"></a>


|  |  |  | 
| --- |--- |--- |
| Característica | Impulsado por API (recomendado) | Legado (provisioning\$1parameters.json) | 
| Ubicación de la configuración | CreateCluster Solicitud de API | Archivo S3 | 
| FSx para Lustre | Sí, por grupo de instancias | Sí, solo para todo el clúster | 
| FSx para OpenZFS | Sí, por grupo de instancias | No: no se admite | 
| Validación integrada | Sí | No | 
| Detección de desviaciones | Sí (estrategia gestionada) | No | 
| Administración de archivos S3 | No obligatorio | Obligatorio | 
| Complejidad del ciclo de vida | Simplificado | Se requiere una configuración completa de SLURM | 

## SageMaker HyperPod DLAMI
<a name="sagemaker-hyperpod-ref-hyperpod-ami"></a>

SageMaker HyperPod ejecuta un DLAMI basado en:
+ [AWS AMI de GPU Deep Learning Base (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) para orquestación con Slurm.
+ AMI basada en Amazon Linux 2 para la orquestación con Amazon EKS.

El SageMaker HyperPod DLAMI incluye paquetes adicionales para admitir herramientas de código abierto como Slurm, Kubernetes, dependencias y paquetes de software de clústeres para admitir funciones de resiliencia, como la comprobación del estado del clúster SageMaker HyperPod y la reanudación automática. Para hacer un seguimiento de las actualizaciones de software que distribuye el equipo de servicio, consulte HyperPod . HyperPod DLAMIs [Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md)

## SageMaker HyperPod Referencia de permisos de API
<a name="sagemaker-hyperpod-ref-api-permissions"></a>

**importante**  
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Cuando configure el control de acceso para permitir la ejecución de operaciones de SageMaker HyperPod API y redacte una política de permisos que pueda adjuntar a los usuarios de IAM para los administradores de la nube, utilice la siguiente tabla como referencia.


|  |  |  | 
| --- |--- |--- |
| Operaciones de SageMaker la API de Amazon | Permisos necesarios (acciones de la API) | Recursos | 
| CreateCluster | sagemaker:CreateCluster | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| DeleteCluster | sagemaker:DeleteCluster | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| DescribeCluster | sagemaker:DescribeCluster | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| DescribeClusterNode | sagemaker:DescribeClusterNode | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| ListClusterNodes | sagemaker:ListClusterNodes | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| ListClusters | sagemaker:ListClusters | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| UpdateCluster | sagemaker:UpdateCluster | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| UpdateClusterSoftware | sagemaker:UpdateClusterSoftware | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 

Para obtener una lista completa de los tipos de permisos y recursos SageMaker APIs, consulte [Acciones, recursos y claves de condición de Amazon SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html) en la *Referencia de autorización de AWS servicio*.

## SageMaker HyperPod comandos en AWS CLI
<a name="sagemaker-hyperpod-ref-cli"></a>

Los siguientes son los AWS CLI comandos SageMaker HyperPod para ejecutar las [operaciones principales de la HyperPod API](#sagemaker-hyperpod-ref-api).
+ [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)
+ [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html)
+ [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-cluster.html)
+ [describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster.html)
+ [describe-cluster-node](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster-node.html)
+ [list-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html)
+ [list-clusters](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-clusters.html)
+ [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html)
+ [update-cluster-software](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster-software.html)

## SageMaker HyperPod Módulos de Python en AWS SDK para Python (Boto3)
<a name="sagemaker-hyperpod-ref-boto3"></a>

Los siguientes son los métodos del AWS SDK para Python (Boto3) cliente para que la SageMaker IA ejecute las [operaciones principales de la HyperPod API](#sagemaker-hyperpod-ref-api).
+ [batch\$1delete\$1cluster\$1nodes](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/batch_delete_cluster_nodes.html#)
+ [create\$1cluster](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_cluster.html)
+ [delete\$1cluster](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/delete_cluster.html)
+ [describe\$1cluster](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/describe_cluster.html)
+ [describe\$1cluster\$1node](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/describe_cluster_node.html)
+ [list\$1cluster\$1nodes](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/list_cluster_nodes.html)
+ [list\$1clusters](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/list_clusters.html)
+ [update\$1cluster](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/update_cluster.html)
+ [update\$1cluster\$1software](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/update_cluster_software.html)

# Notas de SageMaker HyperPod lanzamiento de Amazon
<a name="sagemaker-hyperpod-release-notes"></a>

En este tema se tratan las notas de la versión que hacen un seguimiento de las actualizaciones, las correcciones y las nuevas funciones de Amazon SageMaker HyperPod. Si estás buscando versiones, actualizaciones y mejoras de características generales para Amazon SageMaker HyperPod, puede que esta página te resulte útil.

Las versiones de la HyperPod AMI se documentan por separado para incluir información sobre los componentes clave, incluidas las versiones, las dependencias y las versiones generales de la AMI. Si busca esta información relacionada con las versiones de HyperPod AMI, consulte[Amazon SageMaker HyperPod AMI](sagemaker-hyperpod-release-ami.md).

## SageMaker HyperPod notas de publicación: 16 de abril de 2026
<a name="sagemaker-hyperpod-release-notes-20260416"></a>

SageMaker HyperPod publica lo siguiente para[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características**
+ **Grupos de instancias flexibles**: ahora puedes crear grupos de instancias con varios tipos de instancias mediante el nuevo `InstanceRequirements` parámetro. Esto permite el aprovisionamiento basado en prioridades, en el que se HyperPod intenta aprovisionar primero el tipo de instancia de mayor prioridad y se recurre a los tipos de menor prioridad si no hay capacidad disponible. Los grupos de instancias flexibles simplifican las configuraciones de autoescalado de Karpenter al reducir la cantidad de grupos de instancias necesarios. Puedes especificar hasta 20 tipos de instancias por grupo de instancias. Para obtener más información, consulte [Grupos de instancias flexibles](sagemaker-hyperpod-scaling-eks.md#sagemaker-hyperpod-scaling-eks-flexible-ig).

## SageMaker HyperPod notas de publicación: 25 de enero de 2026
<a name="sagemaker-hyperpod-release-notes-20260125"></a>

SageMaker HyperPod publica lo siguiente para[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características**
+ Publicó la nueva SageMaker HyperPod AMI para Amazon EKS 1.34. Para obtener más información, consulte [SageMaker Lanzamientos de AMI de Hyperpod para Amazon EKS: 25 de enero de 2026](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20260125).

Para obtener más información, consulte [Kubernetes](https://kubernetes.io/blog/2025/08/27/kubernetes-v1-34-release/) v1.34.

## SageMaker HyperPod notas de lanzamiento: 7 de noviembre de 2025
<a name="sagemaker-hyperpod-release-notes-20251107"></a>

SageMaker HyperPod publica lo siguiente para[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características**
+ parches de seguridad actualizados[SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 7 de noviembre de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20251107).

## SageMaker HyperPod notas de lanzamiento: 29 de septiembre de 2025
<a name="sagemaker-hyperpod-release-notes-20250929"></a>

SageMaker HyperPod publica lo siguiente para[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características**
+ Publicó la nueva SageMaker HyperPod AMI para Amazon EKS 1.33. Para obtener más información, [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 29 de septiembre de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250929).
**importante**  
La versión beta de Kubernetes de la API de asignación dinámica de recursos está habilitada de forma predeterminada en esta versión.  
Esta API mejora la programación y la supervisión de las cargas de trabajo que requieren recursos, como: GPUs
Esta API fue desarrollada por la comunidad de código abierto de Kubernetes y podría cambiar en futuras versiones de Kubernetes. Antes de usar la API, consulta la documentación de [Kubernetes](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/) y comprende cómo afecta a tus cargas de trabajo.
HyperPod no está publicando una AMI de HyperPod Amazon Linux 2 para Kubernetes 1.33. AWS recomienda que migre a. AL2023 Para obtener más información, consulte [Actualización de Amazon Linux 2 a AL2023](https://docs.aws.amazon.com/eks/latest/userguide/al2023.html).

Para obtener más información, consulte [Kubernetes](https://kubernetes.io/blog/2025/04/23/kubernetes-v1-33-release/) v1.33.

## SageMaker HyperPod notas de lanzamiento: 4 de agosto de 2025
<a name="sagemaker-hyperpod-release-notes-20250804"></a>

SageMaker HyperPod lanza un nuevo público AMIs para la orquestación de EKS. AMIs Los públicos se pueden usar solos o se pueden usar para crear personalizados AMIs. Para obtener más información sobre el público AMIs, consulte[Versiones de AMI públicas](sagemaker-hyperpod-release-public-ami.md). Para obtener más información sobre cómo crear una AMI personalizada, consulte [Imágenes de Amazon Machine personalizadas (AMIs) para SageMaker HyperPod clústeres](hyperpod-custom-ami-support.md). 

## SageMaker HyperPod notas de publicación: 31 de julio de 2025
<a name="sagemaker-hyperpod-release-notes-20250731"></a>

SageMaker HyperPod publica lo siguiente para[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características y mejoras**
+ Se ha publicado una nueva AMI que actualiza el sistema operativo de Amazon Linux 2 a Amazon Linux 2023 para los clústeres de EKS. Las actualizaciones clave incluyen Linux Kernel 6.1, Python 3.10, el controlador NVIDIA 560.35.03 y el administrador de paquetes DNF que reemplaza a YUM.
**importante**  
La actualización de Amazon Linux 2 AL2023 introduce cambios importantes que podrían afectar a la compatibilidad con el software y las configuraciones diseñadas para AL2. Recomendamos encarecidamente probar las aplicaciones AL2023 antes de actualizar completamente los clústeres.

  Para obtener más información acerca de la nueva AMI y cómo actualizar los clústeres, consulte [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 31 de julio de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250731).

## SageMaker HyperPod notas de lanzamiento: 13 de mayo de 2025
<a name="sagemaker-hyperpod-release-notes-20250513"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nuevas características y mejoras**
+ Se ha publicado una AMI actualizada que admite Ubuntu 22.04 LTS para clústeres de Slurm. Esta versión incluye varias actualizaciones de componentes del sistema y del software para mejorar el rendimiento, actualizar las características y mejorar la seguridad.
**importante**  
La actualización de Ubuntu 20.04 LTS a Ubuntu 22.04 LTS introduce cambios importantes que pueden afectar a la compatibilidad con el software y las configuraciones diseñadas para Ubuntu 20.04.

  Para obtener más información, consulte lo siguiente:
  + [Actualizaciones clave de la AMI de Ubuntu 22.04](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-ami-slurm-ubuntu22-updates)
  + [Actualización a la AMI de Ubuntu 22.04](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade)
  + [Resolución de problemas de errores de actualización](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot)

## SageMaker HyperPod notas de publicación: 1 de mayo de 2025
<a name="sagemaker-hyperpod-release-notes-20250501"></a>

SageMaker HyperPod publica lo siguiente para[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características**
+ Se han añadido informes de uso de los clústeres orquestados por EKS, que permiten a las organizaciones implementar una asignación de costos transparente y basada en el uso entre los equipos, los proyectos o los departamentos. Esta función complementa HyperPod la funcionalidad de [gobierno de tareas](sagemaker-hyperpod-eks-operate-console-ui-governance.md) para garantizar una distribución justa de los costos en AI/ML entornos compartidos de múltiples inquilinos. Para obtener más información, consulte Cómo [informar sobre el uso de la informática en HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html).

## SageMaker HyperPod notas de publicación: 28 de abril de 2025
<a name="sagemaker-hyperpod-release-notes-20250428"></a>

SageMaker HyperPod publica lo siguiente para [Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md) y[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características y mejoras**
+ Se ha actualizado el controlador NVIDIA de la versión 550.144.03 a la 550.163.01. Esta actualización tiene como objetivo abordar las vulnerabilidades y exposiciones comunes (CVEs) presentes en el [boletín de seguridad de las pantallas de las GPU de NVIDIA de abril de 2025](https://nvidia.custhelp.com/app/answers/detail/a_id/5630).

Para obtener más información acerca de las versiones de AMI, consulte [SageMaker HyperPod Lanzamientos de AMI para Slurm: 28 de abril de 2025](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20250428) y [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 28 de abril de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250428).

## SageMaker HyperPod notas de publicación: 18 de abril de 2025
<a name="sagemaker-hyperpod-release-notes-20250418"></a>

SageMaker HyperPod publica lo siguiente para[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características**
+ Se publicó la nueva SageMaker HyperPod AMI para Amazon EKS 1.32.1. Para obtener más información, consulte [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 18 de abril de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250418).

## SageMaker HyperPod notas de publicación: 10 de abril de 2025
<a name="sagemaker-hyperpod-release-notes-20250410"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nuevas características y mejoras**
+ Se agregó un tutorial de recetas de optimización directa de preferencias (DPO) para SageMaker HyperPod la orquestación de Slurm. Este tutorial de ajuste detallado proporciona una step-by-step guía para optimizar la alineación de modelos mediante el método DPO en clústeres de Slurm alimentados por GPU. SageMaker HyperPod Para obtener más información, consulte [HyperPod Tutorial de DPO de Slurm Cluster (GPU)](hyperpod-gpu-slurm-dpo-tutorial.md).

## SageMaker HyperPod notas de lanzamiento: 3 de abril de 2025
<a name="sagemaker-hyperpod-release-notes-20250403"></a>

SageMaker HyperPod publica lo siguiente para [Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md) y[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características y mejoras**
+ Se agregó una página de [inicio rápido](sagemaker-hyperpod-quickstart.md) para implementar SageMaker HyperPod clústeres. La página aprovecha los flujos de trabajo de configuración simplificados SageMaker HyperPod de los talleres especializados y automatiza la implementación mediante plantillas prediseñadas. AWS CloudFormation Es compatible con las preferencias de infraestructura, como Slurm o Amazon EKS, para facilitar la configuración y la implementación de los clústeres de referencia.
+ SageMaker HyperPod ahora admite los siguientes tipos de instancias para los clústeres de Slurm y Amazon EKS.
  + Nuevos tipos de instancia: instancias I3en, M7i y R7i. Para ver la lista completa de instancias compatibles, consulte el campo `InstanceType` en `[ClusterInstanceGroupDetails](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupDetails.html)`.

## SageMaker HyperPod notas de publicación: 16 de marzo de 2025
<a name="sagemaker-hyperpod-release-notes-20250316"></a>

SageMaker HyperPod publica lo siguiente para [Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md) y[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características y mejoras**
+ Se han agregado las siguientes claves de condición de IAM para un control de acceso más detallado en las operaciones de la API [https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateCluster.html) y [https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_UpdateCluster.html).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-release-notes.html)

## SageMaker HyperPod notas de lanzamiento: 20 de febrero de 2025
<a name="sagemaker-hyperpod-release-notes-20250220"></a>

SageMaker HyperPod publica lo siguiente para [Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md) y[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características y mejoras**
+ Se agregó compatibilidad para eliminar grupos de instancias del SageMaker HyperPod clúster. Para obtener más información, consulte [Eliminación de grupos de instancias](smcluster-scale-down.md#smcluster-remove-instancegroup) para los clústeres orquestados por EKS y [Reducción vertical de un clúster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-scale-down) para los clústeres orquestados por Slurm. 

## SageMaker HyperPod notas de lanzamiento: 18 de febrero de 2025
<a name="sagemaker-hyperpod-release-notes-20250218"></a>

SageMaker HyperPod publica lo siguiente para [Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md) y[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características**
+ Esta versión de SageMaker HyperPod incorpora una actualización de seguridad del kit de herramientas de contenedores de Nvidia (de la versión 1.17.3 a la versión 1.17.4). Para obtener más información, consulte la [nota de la versión de 1.17.4](https://github.com/NVIDIA/nvidia-container-toolkit/releases/tag/v1.17.4). 
**nota**  
Para todas las cargas de trabajo de contenedores incluidas en la versión 1.17.4 del kit de herramientas de contenedores de Nvidia, el montaje de bibliotecas de compatibilidad con CUDA ahora está desactivado. Para garantizar la compatibilidad con varias versiones de CUDA en los flujos de trabajo de contenedores, actualice su `LD_LIBRARY_PATH` para que incluya las bibliotecas de compatibilidad de CUDA. Puede consultar los pasos específicos en [Si utiliza una capa de compatibilidad CUDA](inference-gpu-drivers.md#collapsible-cuda-compat).

Para obtener más información acerca de las versiones de AMI, consulte [SageMaker HyperPod Lanzamientos de AMI para Slurm: 18 de febrero de 2025](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20250218) y [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 18 de febrero de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250218).

## SageMaker HyperPod notas de publicación: 6 de febrero de 2025
<a name="sagemaker-hyperpod-release-notes-20250206"></a>

SageMaker HyperPod publica lo siguiente para [Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md) y[Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuevas características y mejoras**
+ Compatibilidad mejorada SageMaker HyperPod con zonas de disponibilidad múltiples: puede especificar diferentes subredes y grupos de seguridad, que abarquen diferentes zonas de disponibilidad, para los grupos de instancias individuales de su clúster. Para obtener más información sobre la compatibilidad con zonas de SageMaker HyperPod disponibilidad múltiples, consulte. [Configuración de clústeres en varios SageMaker HyperPod AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones)

## SageMaker HyperPod notas de lanzamiento: 22 de enero de 2025
<a name="sagemaker-hyperpod-release-notes-20250122"></a>

**Versiones de AMI**
+ [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 22 de enero de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250122)

## SageMaker HyperPod notas de lanzamiento: 9 de enero de 2025
<a name="sagemaker-hyperpod-release-notes-20250109"></a>

SageMaker HyperPod publica lo siguiente para [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) y[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nuevas características y mejoras**
+  IPv6 Soporte agregado: los clústeres pueden usar IPv6 direcciones cuando se configuran con IPv6 subredes y VPC habilitadas. Para obtener más información, consulte [Configuración SageMaker HyperPod con una Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

## SageMaker HyperPod notas de publicación: 21 de diciembre de 2024
<a name="sagemaker-hyperpod-release-notes-20241221"></a>

SageMaker HyperPod publica lo siguiente para [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) y[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nuevas características**
+ SageMaker HyperPod ahora admite los siguientes tipos de instancias para los clústeres de Slurm y Amazon EKS.
  + Nuevos tipos de instancia: C6gn, C6i, M6i y R6i.
  + Nuevos tipos de instancia de Trainium: Trn1 y Trn1n.

**Mejoras**
+ Se ha mejorado la visibilidad del registro de errores cuando Slurm interrumpe los trabajos y se ha evitado la finalización innecesaria de los trabajos durante las cancelaciones de trabajos iniciados por Slurm.
+ Se ha actualizado la DLAMI básica para p5en para los clústeres de Slurm y Amazon EKS.

**Versiones de AMI**
+ [SageMaker HyperPod Lanzamientos de AMI para Slurm: 21 de diciembre de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241221)
+ [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 21 de diciembre de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241221)

## SageMaker HyperPod notas de publicación: 13 de diciembre de 2024
<a name="sagemaker-hyperpod-release-notes-20241213"></a>

SageMaker HyperPod publica lo siguiente para [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) y[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nueva característica**
+ SageMaker HyperPod publica un conjunto de CloudWatch métricas de Amazon para monitorear el estado y el rendimiento de los clústeres de SageMaker HyperPod Slurm. Estas métricas están relacionadas con la CPU, la GPU, el uso de la memoria y la información de las instancias del clúster, como el número de nodos y los nodos con errores. Esta función de monitoreo está habilitada de forma predeterminada y se puede acceder a las métricas en el `/aws/sagemaker/Clusters` CloudWatch espacio de nombres. También puede configurar CloudWatch alarmas en función de estas métricas para detectar y abordar de forma proactiva los posibles problemas en sus clústeres basados en SLURM. HyperPod Para obtener más información, consulte [Métricas de Amazon SageMaker HyperPod Slurm](smcluster-slurm-metrics.md).

**Versiones de AMI**
+ [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 13 de diciembre de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241213)

## SageMaker HyperPod notas de lanzamiento: 24 de noviembre de 2024
<a name="sagemaker-hyperpod-release-notes-20241124"></a>

SageMaker HyperPod publica lo siguiente para [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) y[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nuevas características**
+ Se agregó soporte para configurar SageMaker HyperPod clústeres en varias zonas de disponibilidad. Para obtener más información sobre la compatibilidad con zonas de SageMaker HyperPod disponibilidad múltiples (Multi-AZ), consulte[Configuración de clústeres en varios SageMaker HyperPod AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones).

**Versiones de AMI**
+ [SageMaker HyperPod Lanzamientos de AMI para Slurm: 24 de noviembre de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241124)
+ [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 24 de noviembre de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241124)

## SageMaker HyperPod notas de lanzamiento: 15 de noviembre de 2024
<a name="sagemaker-hyperpod-release-notes-20241115"></a>

SageMaker HyperPod publica lo siguiente para [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) y[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md). Para obtener más información, consulte [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 15 de noviembre de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241115).

**Nuevas características y mejoras**
+ Se ha añadido compatibilidad con los tipos de instancia trn1 y trn1n para los clústeres orquestados por Amazon EKS y Slurm.
+ Ha mejorado la administración de registros para los clústeres de Slurm:
  +  Se ha implementado la rotación de registros: semanal o diaria según el tamaño.
  +  Se ha establecido una retención de registros de 3 semanas.
  +  Se han comprimido los registros para reducir el impacto en el almacenamiento.
  +  Se siguen cargando registros CloudWatch para mantenerlos a largo plazo.
**nota**  
Algunos registros siguen guardados en syslogs.
+ Se ha ajustado la configuración de Fluent Bit para evitar problemas de seguimiento con archivos que contienen líneas largas.

**Correcciones de errores**
+ Se ha evitado el truncamiento involuntario al actualizar nodos del controlador Slurm en el archivo de configuración `slurm.config`.

**Versiones de AMI**
+ [SageMaker HyperPod Lanzamientos de AMI para Slurm: 15 de noviembre de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241115)
+ [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 15 de noviembre de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241115)

## SageMaker HyperPod notas de lanzamiento: 11 de noviembre de 2024
<a name="sagemaker-hyperpod-release-notes-20241111"></a>

SageMaker HyperPod publica lo siguiente para [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) y[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md). 

**Nueva característica**
+ SageMaker HyperPod La AMI ahora admite los tipos de instancias G6e.

**Versiones de AMI**
+ [SageMaker HyperPod Lanzamientos de AMI para Slurm: 11 de noviembre de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241111)
+ [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 11 de noviembre de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241111)

## SageMaker HyperPod notas de publicación: 31 de octubre de 2024
<a name="sagemaker-hyperpod-release-notes-20241031"></a>

SageMaker HyperPod publica lo siguiente para [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) y[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nuevas características**
+ Se agregó la reducción de la escala de SageMaker HyperPod los clústeres a nivel de grupo de instancias y a nivel de instancia para los clústeres orquestados de Amazon EKS y Slurm. Para obtener más información sobre cómo reducir verticalmente los clústeres de Amazon EKS, consulte [Reducir la escala de un SageMaker HyperPod clúster](smcluster-scale-down.md). Para obtener más información sobre cómo reducir verticalmente los clústeres de Slurm, consulte *Reducción vertical de un clúster* en [Administrar los clústeres SageMaker HyperPod de Slurm mediante AWS CLI](sagemaker-hyperpod-operate-slurm-cli-command.md).
+ SageMaker HyperPod ahora es compatible con el tipo de instancia P5e para los clústeres orquestados de Amazon EKS y Slurm. 

## SageMaker HyperPod notas de publicación: 21 de octubre de 2024
<a name="sagemaker-hyperpod-release-notes-20241021"></a>

SageMaker HyperPod publica lo siguiente para [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) y[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nueva característica**
+ SageMaker HyperPod ahora es compatible con los tipos de instancia P5e [n], G6, Gr6 y Trn2 [n] para los clústeres de Slurm y Amazon EKS.

**Versiones de AMI**
+ [SageMaker HyperPod Lanzamientos de AMI para Slurm: 21 de octubre de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241021)
+ [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 21 de octubre de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241021)

## SageMaker HyperPod notas de publicación: 10 de septiembre de 2024
<a name="sagemaker-hyperpod-release-notes-20240910"></a>

SageMaker HyperPod publica lo siguiente para [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md) y[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nuevas características**
+ Se agregó soporte para Amazon EKS en SageMaker HyperPod. Para obtener más información, consulte [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md).
+ Se agregó soporte para administrar SageMaker HyperPod clústeres a través de CloudFormation Terraform. Para obtener más información sobre la administración integral de HyperPod clústeres CloudFormation, consulte [CloudFormation la documentación de `AWS::SageMaker::Cluster`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html). Para obtener más información sobre la administración de HyperPod clústeres a través de Terraform, consulte la [documentación de Terraform para](https://registry.terraform.io/providers/hashicorp/awscc/latest/docs/data-sources/sagemaker_cluster). `awscc_sagemaker_cluster`

**Versiones de AMI**
+ [SageMaker HyperPod Lanzamientos de AMI para Slurm: 10 de septiembre de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20240910)
+ [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 10 de septiembre de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20240910)

## SageMaker HyperPod notas de lanzamiento: 20 de agosto de 2024
<a name="sagemaker-hyperpod-release-notes-20240820"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPod](sagemaker-hyperpod-slurm.md).

**Nuevas características**
+ Se mejoró la [funcionalidad de SageMaker HyperPod reanudación automática](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html#sagemaker-hyperpod-resiliency-slurm-auto-resume), ampliando la capacidad de resiliencia de los nodos Slurm conectados a Generic RESources (GRES).

  Cuando hay [Generic Resources (GRES)](https://slurm.schedmd.com/gres.html) asociados a un nodo de Slurm, Slurm no suele permitir cambios en la asignación de nodos, como la sustitución de nodos, y, por tanto, no permite reanudar un trabajo fallido. A menos que se prohíba explícitamente, la función de HyperPod reanudación automática vuelve a poner en cola automáticamente cualquier trabajo defectuoso asociado a los nodos habilitados para GRES. Este proceso implica detener el trabajo, volver a ponerlo en la cola de trabajos y, a continuación, reiniciarlo desde el principio.

**Otros cambios**
+ Preempaquetado [https://slurm.schedmd.com/slurmrestd.html](https://slurm.schedmd.com/slurmrestd.html)en la SageMaker HyperPod AMI.
+ Se han modificado los valores predeterminados de `ResumeTimeout` y `UnkillableStepTimeout` de 60 a 300 segundos en `slurm.conf` para mejorar la capacidad de respuesta del sistema y la gestión de los trabajos.
+ Se han realizado pequeñas mejoras en las comprobaciones de estado de NVIDIA Data Center GPU Manager (DCGM) y de NVIDIA System Management Interface (nvidia-smi).

**Correcciones de errores**
+ El complemento de HyperPod reanudación automática puede utilizar nodos inactivos para reanudar un trabajo.

## SageMaker HyperPod notas de lanzamiento: 20 de junio de 2024
<a name="sagemaker-hyperpod-release-notes-20240620"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPod](sagemaker-hyperpod-slurm.md).

**Nuevas características**
+ Se agregó una nueva capacidad de adjuntar almacenamiento adicional a las instancias SageMaker HyperPod del clúster. Con esta capacidad, puedes configurar el almacenamiento adicional en el nivel de configuración del grupo de instancias durante los procesos de creación o actualización del clúster, ya sea a través de la SageMaker HyperPod consola o del comando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)and [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) APIs. El volumen de EBS adicional se adjunta a cada instancia de un SageMaker HyperPod clúster y se monta en él. `/opt/sagemaker` Para obtener más información sobre cómo implementarlo en su SageMaker HyperPod clúster, consulte la documentación actualizada en las páginas siguientes.
  + [Empezando con SageMaker HyperPod](smcluster-getting-started-slurm.md)
  + [SageMaker HyperPod Operaciones de clúster de Slurm](sagemaker-hyperpod-operate-slurm.md)

  Tenga en cuenta que debe actualizar el software del HyperPod clúster para utilizar esta capacidad. Después de aplicar los parches al software de HyperPod clústeres, puedes utilizar esta capacidad para SageMaker HyperPod los clústeres existentes creados antes del 20 de junio de 2024 añadiendo nuevos grupos de instancias. Esta capacidad es totalmente efectiva para cualquier SageMaker HyperPod clúster creado después del 20 de junio de 2024.

**Pasos de actualización**
+ Ejecute el siguiente comando para llamar a la [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API y actualizar sus HyperPod clústeres existentes con la última HyperPod DLAMI. Para obtener más instrucciones, consulte [Actualice el software de la SageMaker HyperPod plataforma de un clúster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software). 
**importante**  
Haga una copia de seguridad de su trabajo antes de ejecutar esta API. El proceso de aplicación de parches reemplaza el volumen raíz por la AMI actualizada, lo que significa que se perderán los datos anteriores almacenados en el volumen raíz de la instancia. Asegúrese de hacer una copia de seguridad de los datos del volumen raíz de la instancia en Amazon S3 o Amazon FSx for Lustre. Para obtener más información, consulte [Utilice el script de respaldo proporcionado por SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

  ```
   aws sagemaker update-cluster-software --cluster-name your-cluster-name
  ```
**nota**  
Ten en cuenta que debes ejecutar el AWS CLI comando para actualizar el HyperPod clúster. La actualización del HyperPod software a través de la interfaz de usuario de la SageMaker HyperPod consola no está disponible actualmente.

## SageMaker HyperPod notas de lanzamiento: 24 de abril de 2024
<a name="sagemaker-hyperpod-release-notes-20240424"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPod](sagemaker-hyperpod-slurm.md).

**Correcciones de errores**
+ Se ha corregido un error con el parámetro `ThreadsPerCore` de la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html). Con la solución, [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)y toma y aplica [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) APIs correctamente la entrada del usuario`ThreadsPerCore`. Esta corrección es efectiva en HyperPod los clústeres creados después del 24 de abril de 2024. Si ha tenido problemas con este error y desea aplicar esta corrección a su clúster, debe crear un clúster nuevo. Asegúrese de hacer copia de seguridad de su trabajo y restaurarlo al trasladarse a un clúster nuevo siguiendo las instrucciones que se indican en [Utilice el script de respaldo proporcionado por SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

## SageMaker HyperPod notas de lanzamiento: 27 de marzo de 2024
<a name="sagemaker-hyperpod-release-notes-20240327"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPod](sagemaker-hyperpod-slurm.md).

**HyperPod parche de software**

El equipo HyperPod de servicio distribuye los parches de software mediante[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami). Consulte los siguientes detalles sobre la última versión de HyperPod DLAMI.
+ En esta versión de la HyperPod DLAMI, Slurm se creó con el servicio REST `slurmestd` () con soporte para JSON, YAML y JWT.
+ Se ha actualizado [Slurm](https://slurm.schedmd.com/documentation.html) a la versión 23.11.3.

**Mejoras**
+ Se ha incrementado el tiempo de espera del servicio de reanudación automática a 60 minutos.
+ Se ha mejorado el proceso de sustitución de instancias para no reiniciar el controlador Slurm.
+ Se han mejorado los mensajes de error al ejecutar scripts de ciclo de vida, como los errores de descarga y los errores de comprobación de estado de la instancia al iniciar la instancia.

**Correcciones de errores**
+ Se ha corregido un error en el servicio Chrony que provocaba un problema con la sincronización horaria.
+ Se ha corregido un error con el análisis de `slurm.conf`.
+ Se ha corregido un problema con la biblioteca [`go-dcgm` de NVIDIA](https://github.com/NVIDIA/go-dcgm).

## SageMaker HyperPod notas de publicación: 14 de marzo de 2024
<a name="sagemaker-hyperpod-release-notes-20240314"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPod](sagemaker-hyperpod-slurm.md).

**Mejoras**
+ HyperPod ahora admite correctamente el paso de los nombres de las particiones proporcionados `provisioning_parameters.json` y crea las particiones de forma adecuada en función de las entradas proporcionadas. Para obtener más información sobre `provisioning_parameters.json`, consulte [Configuración antigua: provisioning\$1parameters.json](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-provisioning-forms) y [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

**Versiones de AMI**
+ [SageMaker HyperPod Lanzamientos de AMI para Slurm: 14 de marzo de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20240314)

## SageMaker HyperPod notas de lanzamiento: 15 de febrero de 2024
<a name="sagemaker-hyperpod-release-notes-20240215"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPod](sagemaker-hyperpod-slurm.md).

**Nuevas características**
+ Se agregó una nueva `UpdateClusterSoftware` API para la aplicación SageMaker HyperPod de parches de seguridad. Cuando los parches de seguridad estén disponibles, te recomendamos que actualices SageMaker HyperPod los clústeres existentes en tu cuenta `aws sagemaker update-cluster-software --cluster-name your-cluster-name` ejecutándolos. Para hacer un seguimiento de los futuros parches de seguridad, sigue consultando esta página de notas SageMaker HyperPod de lanzamiento de Amazon. Para obtener más información sobre cómo trabaja la API `UpdateClusterSoftware`, consulte [Actualice el software de la SageMaker HyperPod plataforma de un clúster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).

## SageMaker HyperPod notas de lanzamiento: 29 de noviembre de 2023
<a name="sagemaker-hyperpod-release-notes-20231129"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPod](sagemaker-hyperpod-slurm.md).

**Nuevas características**
+ Lanzó Amazon SageMaker HyperPod en AWS re:Invent 2023.

**Versiones de AMI**
+ [SageMaker HyperPod Versión AMI para Slurm: 29 de noviembre de 2023](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20231129)

# Amazon SageMaker HyperPod AMI
<a name="sagemaker-hyperpod-release-ami"></a>

 SageMaker HyperPod Amazon Machine Images (AMIs) son imágenes de máquinas especializadas para cargas de trabajo de aprendizaje automático distribuidas y computación de alto rendimiento. AMIs Mejoran las imágenes base con componentes esenciales, como los controladores de GPU y la compatibilidad con el acelerador AWS Neuron.

Entre los componentes clave que se han añadido se incluyen los siguientes HyperPod AMIs :
+ [Público AMIs](sagemaker-hyperpod-release-public-ami.md) con soporte para la [creación personalizada AMIs](hyperpod-custom-ami-support.md)
+ Herramientas de orquestación avanzadas:
  + [Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md)
  + [Organización de SageMaker HyperPod clústeres con Amazon EKS](sagemaker-hyperpod-eks.md)
+ Dependencias de administración de clústeres
+ Características de resiliencia integradas:
  + Comprobación de estado del clúster
  + Capacidades de reanudación automática
+ Support para la administración y configuración de HyperPod clústeres

Estas mejoras se basan en la siguiente base: Deep Learning AMIs (DLAMIs):
+ [AWS AMI de GPU Deep Learning Base (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) para orquestación con Slurm.
+ AMI basada en Amazon Linux 2 o Amazon Linux 2023 para la orquestación con Amazon EKS.

Elija la suya HyperPod AMIs en función de sus preferencias de orquestación:
+ Para la orquestación de Slurm, consulte [SageMaker HyperPod Lanzamientos de AMI para Slurm](sagemaker-hyperpod-release-ami-slurm.md).
+ Para la orquestación de Amazon EKS, consulte [SageMaker HyperPod Lanzamientos de AMI para Amazon EKS](sagemaker-hyperpod-release-ami-eks.md).

Para obtener información sobre las versiones de SageMaker HyperPod funciones de Amazon, consulte[Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md).

# Actualice la versión de AMI en su SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-release-ami-update"></a>

 SageMaker HyperPod Amazon Machine Images (AMIs) son imágenes de máquinas especializadas para cargas de trabajo de aprendizaje automático distribuidas y computación de alto rendimiento. Cada AMI incluye controladores, marcos de machine learning, bibliotecas de entrenamiento y herramientas de supervisión del rendimiento. Actualice la versión de la AMI en su clúster, puede utilizar las versiones más recientes de estos componentes y paquetes para sus trabajos y flujos de trabajo de entrenamiento.

 Al actualizar la versión de la AMI en su clúster, tiene la opción de procesar la actualización inmediatamente, programar una actualización única o utilizar una expresión cron para crear una programación periódica. También puede optar por actualizar todas las instancias de un grupo de instancias o solo los lotes de instancias. Si decide actualizar los lotes, establece el porcentaje o la cantidad de instancias que la SageMaker IA debe actualizar a la vez. Si utilizas este método de actualización, estableces un intervalo de tiempo en el que la SageMaker IA debe esperar entre los lotes.

Si decide actualizar por lotes, también puede incluir una lista de alarmas y métricas. Durante el intervalo de espera, la SageMaker IA observa estas métricas y, si alguna supera su umbral, la alarma correspondiente pasa al estado de ALARMA y la SageMaker IA revierte la actualización de la AMI. Para utilizar las reversiones automáticas, su rol de ejecución de IAM debe tener el permiso `cloudwatch:DescribeAlarms`.

**nota**  
La actualización del clúster por lotes solo está disponible para HyperPod los clústeres integrados con Amazon EKS. Además, si va a crear varios programaciones, le recomendamos que incluya un tiempo de margen entre las programaciones. Si las programaciones se superponen, es posible que las actualizaciones fallen.

Para obtener más información sobre cada versión de AMI HyperPod del clúster, consulte[Amazon SageMaker HyperPod AMI](sagemaker-hyperpod-release-ami.md). Para obtener más información sobre las HyperPod versiones generales, consulte[Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md).

Puede usar la API de SageMaker IA o las operaciones de CLI para actualizar el clúster o ver las actualizaciones programadas de un clúster específico. Si utilizas la AWS consola, sigue estos pasos:

**nota**  
La actualización de la AMI con la AWS consola solo está disponible para los clústeres integrados con Amazon EKS. Si tiene un clúster de Slurm, debe usar la API de SageMaker IA o las operaciones de CLI.

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

1. A la izquierda, expande **HyperPod Clústeres** y selecciona **Administración de clústeres**.

1. Elija el clúster que desea actualizar y, a continuación, seleccione **Detalles** y **Actualizar AMI**.



Para crear y administrar las programaciones de actualización mediante programación, utilice las siguientes operaciones de API:
+ [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)— cree un clúster especificando un programa de actualización
+ [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)— actualizar un clúster para añadir un programa de actualización
+ [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)— actualizar el software de la plataforma de un clúster
+ [ DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)— consulte un programa de actualizaciones que ha creado para un clúster
+ [DescribeClusterNode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterNode.html)y [ListClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterNodes.html)— ver cuándo se actualizó el clúster por última vez.

## Permisos necesarios
<a name="sagemaker-hyperpod-release-ami-update-permissions"></a>

En función de cómo haya configurado su [presupuesto de interrupción de pods](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) en su clúster de Amazon EKS, HyperPod desaloja los pods, libera nodos e impide cualquier programación de actualizaciones durante el proceso de actualización de la AMI. Si se infringe alguna restricción dentro del presupuesto, HyperPod omite ese nodo durante la actualización de la AMI. SageMaker HyperPod Para desalojar los pods correctamente, debe añadir los permisos necesarios a la función vinculada al HyperPod servicio. El siguiente archivo yaml tiene los permisos necesarios.

```
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: hyperpod-patching
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["list"]
- apiGroups: [""]
  resources: ["pods/eviction"]
  verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: hyperpod-patching
subjects:
- kind: User
  name: hyperpod-service-linked-role
roleRef:
  kind: ClusterRole
  name: hyperpod-patching
  apiGroup: rbac.authorization.k8s.io
```

Utilice los siguientes comandos para aplicar los permisos.

```
git clone https://github.com/aws/sagemaker-hyperpod-cli.git 

cd sagemaker-hyperpod-cli/helm_chart

helm upgrade hyperpod-dependencies HyperPodHelmChart --namespace kube-system --install
```

## Expresiones cron
<a name="sagemaker-hyperpod-release-ami-update-cron"></a>

Para configurar una actualización única a una hora determinada o de forma periódica, utilice expresiones cron. Las expresiones cron admiten seis campos y están separadas por espacios en blanco. Los seis campos son obligatorios.

```
cron(Minutes Hours Day-of-month Month Day-of-week Year)
```


| **Campos** | **Valores** | **Caracteres comodín** | 
| --- | --- | --- | 
|  Minutos  |  De 0 a 59  |  N/A  | 
|  Horas  |  De 0 a 23  |  N/A  | 
|  D ay-of-month  |  De 1 a 31  | ? | 
|  Mes  |  De 1 a 12  | \$1 / | 
|  D ay-of-week  |  De 1 a 7 o de lunes a domingo  | ? \$1 L | 
|  Año  |  Año actual — 2099  | \$1 | 

**Caracteres comodín**
+ El **\$1** (asterisco) incluye todos los valores del campo. En el campo `Hours`, **\$1** incluiría cada hora.
+ El comodín **/** (barra inclinada) especifica incrementos. En el campo `Months` debe indicar **\$1/3** para especificar cada tercer mes.
+ El comodín **?** (signo de interrogación) especifica uno u otro. En el `Day-of-month` campo podía introducir **7**, y si no le importaba qué día de la semana era el séptimo, ¿podía introducir**?** en el Day-of-week campo.
+ El comodín **L** en el campo `day-of-week` indica el último día del mes o de la semana. Por ejemplo, `5L` significa el último viernes del mes.
+ El comodín **\$1** del ay-of-week campo especifica una instancia determinada del día de la semana especificado dentro de un mes. Por ejemplo, 3\$12 sería el segundo martes del mes: el número 3 hace referencia al martes, ya que es el tercer día de la semana en el calendario anglosajón, mientras que 2 hace referencia al segundo día de ese tipo dentro de un mes.

Puede utilizar expresiones cron en los siguientes casos:
+ Programación única que se ejecuta en una hora y día determinados. Puede usar el `?` comodín para indicar eso day-of-month o day-of-week no importa.

  ```
  cron(30 14 ? 12 MON 2024)
  ```

  ```
  cron(30 14 15 12 ? 2024)
  ```
+ Programación semanal que se ejecuta en una hora y día determinados. En el siguiente ejemplo se crea un horario que se ejecuta a las 12:00 p. m. de todos los lunes, independientemente de si. day-of-month

  ```
  cron(00 12 ? * 1 *)
  ```
+ Programación mensual que se ejecuta todos los meses, independientemente del day-of-week. La siguiente programación se ejecuta a las 12:30 del día 15 de cada mes.

  ```
  cron(30 12 15 * ? *)
  ```
+ Un programa mensual que utiliza day-of-week.

  ```
  cron(30 12 ? * MON *)
  ```
+ Para crear una programación que se ejecute cada enésimo mes, debe usar el comodín `/`. En el siguiente ejemplo, se crea una programación mensual que se ejecuta cada 3 meses. Los dos ejemplos siguientes muestran cómo funciona con day-of-week y day-of-month.

  ```
  cron(30 12 15 */3 ? *)
  ```

  ```
  cron(30 12 ? */3 MON *)
  ```
+ Programación que se ejecuta en una instancia concreta del día de la semana especificado. En el siguiente ejemplo, se crea una programación que se ejecuta a las 12:30 cada segundo lunes de cada mes.

  ```
  cron(30 12 ? * 1#2 *)
  ```
+ Programación que se ejecuta en la última instancia del día de la semana especificado. La siguiente programación se ejecuta a las 12:30 del último lunes de cada mes.

  ```
  cron(30 12 ? * 1L *)
  ```

# SageMaker HyperPod Lanzamientos de AMI para Slurm
<a name="sagemaker-hyperpod-release-ami-slurm"></a>

Las siguientes notas de la versión incluyen las últimas actualizaciones de las versiones de Amazon SageMaker HyperPod AMI para la orquestación de Slurm. HyperPod AMIs Se basan en la [AMI de GPU AWS Deep Learning Base (Ubuntu 22.04).](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-22-04/) El equipo HyperPod de servicio distribuye los parches de software a través de ellos. [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) Para ver las versiones de HyperPod AMI para la orquestación de Amazon EKS, consulte[SageMaker HyperPod Lanzamientos de AMI para Amazon EKS](sagemaker-hyperpod-release-ami-eks.md). Para obtener información sobre las versiones de SageMaker HyperPod funciones de Amazon, consulte[Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md).

**nota**  
Para actualizar los HyperPod clústeres existentes con la última DLAMI, consulte. [Actualice el software de la SageMaker HyperPod plataforma de un clúster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software)

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 1 de marzo de 2026
<a name="sagemaker-hyperpod-release-ami-slurm-20260301"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para SageMaker HyperPod AMI para las versiones 24.11 de Slurm.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Soporte de DLAMI para Slurm** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versión del kernel de Linux: 6.8
  + Versión Glibc: 2.35
  + Versión OpenSSL: 3.0.2
  + FSx Versión de Lustre Client: 2.15.6-1fsx26
  + Versión Runc: 1.3.4
  + Versión contenedora: containerd containerd.io v2.2.1
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.6, 12.8, 12.9, 13.0
  + Versión del instalador de EFA: 1.45.1
  + Versión de Python: 3.10.12
  + Versión de Slurm: 24.11.0
  + Versión nvme-cli: 1.16
  + versión recopilada: 5.12.0.
  + Versión lustre-client: 2.15.6-1fsx26
  + Versión nvidia-imex: 580.126.09-1
  + versión systemd: 249
  + versión openssh: 8.9
  + versión sudo: 1.9.9
  + versión ufw: 0.36.1
  + versión gcc: 11.4.0
  + versión cmake: 3.2.1
  + versión de git: 2.34.1
  + crear la versión: 4.3
  + versión cloudwatch-agent: 1.300064.1b1344-1
  + Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
  + versión lvm2:2.03.11
  + Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versión rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versión del núcleo de Linux: 6.8
  + Versión Glibc: 2.35
  + Versión OpenSSL: 3.0.2
  + FSx Versión de Lustre Client: 2.15.6-1fsx26
  + Versión Runc: 1.3.4
  + Versión contenedora: containerd containerd.io v2.2.1
  + Versión del DMS de AWS Neuronx: 2.26.5.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.6, 12.8, 12.9, 13.0
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.10.12
  + Versión de Slurm: 24.11.0
  + Versión nvme-cli: 1.16
  + versión stress: 1.0.5
  + versión recopilada: 5.12.0.
  + Versión lustre-client: 2.15.6-1fsx26
  + versión systemd: 249
  + versión openssh: 8.9
  + versión sudo: 1.9.9
  + versión ufw: 0.36.1
  + versión gcc: 11.4.0
  + versión cmake: 3.2.1
  + hacer versión: 4.3
  + versión cloudwatch-agent: 1.300064.1b1344-1
  + Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
  + versión lvm2:2.03.11
  + Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versión rdma-core: 60.0-1

------

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 12 de febrero de 2026
<a name="sagemaker-hyperpod-release-ami-slurm-20260212"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para SageMaker HyperPod AMI para las versiones 24.11 de Slurm.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Soporte de DLAMI para Slurm** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versión del kernel de Linux: 6.8
  + Versión Glibc: 2.35
  + Versión OpenSSL: 3.0.2
  + FSx Versión de Lustre Client: 2.15.6-1fsx25
  + Versión Runc: 1.3.4
  + Versión contenedora: containerd containerd.io v2.2.1
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.6, 12.8, 12.9, 13.0
  + Versión del instalador de EFA: 1.45.1
  + Versión de Python: 3.10.12
  + Versión de Slurm: 24.11.0
  + Versión nvme-cli: 1.16
  + versión recopilada: 5.12.0.
  + Versión lustre-client: 2.15.6-1fsx25
  + Versión nvidia-imex: 580.126.09-1
  + versión systemd: 249
  + versión openssh: 8.9
  + versión sudo: 1.9.9
  + versión ufw: 0.36.1
  + versión gcc: 11.4.0
  + versión cmake: 3.2.1
  + versión de git: 2.34.1
  + crear la versión: 4.3
  + versión cloudwatch-agent: 1.300064.0b1337-1
  + Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
  + versión lvm2:2.03.11
  + Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versión rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versión del núcleo de Linux: 6.8
  + Versión Glibc: 2.35
  + Versión OpenSSL: 3.0.2
  + FSx Versión de Lustre Client: 2.15.6-1fsx25
  + Versión Runc: 1.3.4
  + Versión contenedora: containerd containerd.io v2.2.1
  + Versión del DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.6, 12.8, 12.9, 13.0
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.10.12
  + Versión de Slurm: 24.11.0
  + Versión nvme-cli: 1.16
  + versión stress: 1.0.5
  + versión recopilada: 5.12.0.
  + Versión lustre-client: 2.15.6-1fsx25
  + versión systemd: 249
  + versión openssh: 8.9
  + versión sudo: 1.9.9
  + versión ufw: 0.36.1
  + versión gcc: 11.4.0
  + versión cmake: 3.2.1
  + hacer versión: 4.3
  + versión cloudwatch-agent: 1.300064.0b1337-1
  + Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
  + versión lvm2:2.03.11
  + Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versión rdma-core: 60.0-1

------

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 25 de enero de 2026
<a name="sagemaker-hyperpod-release-ami-slurm-20260125"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para SageMaker HyperPod AMI para las versiones 24.11 de Slurm.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Soporte de DLAMI para Slurm** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versión del kernel de Linux: 6.8
  + Versión Glibc: 2.35
  + Versión OpenSSL: 3.0.2
  + FSx Versión de Lustre Client: 2.15.6-1fsx25
  + Versión Runc: 1.3.4
  + Versión contenedora: containerd containerd.io v2.2.1
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.6, 12.8, 12.9, 13.0
  + Versión del instalador de EFA: 2.3.1amzn3.0
  + Versión de Python: 3.10.12
  + Versión de Slurm: 24.11.0
  + Versión nvme-cli: 1.16
  + versión recopilada: 5.12.0.
  + Versión lustre-client: 2.15.6-1fsx25
  + Versión nvidia-imex: 580.126.09-1
  + versión systemd: 249
  + versión openssh: 8.9
  + versión sudo: 1.9.9
  + versión ufw: 0.36.1
  + versión gcc: 11.4.0
  + versión cmake: 3.2.1
  + versión de git: 2.34.1
  + crear la versión: 4.3
  + versión cloudwatch-agent: 1.300063.0b1323-1
  + Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
  + versión lvm2:2.03.11
  + Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versión rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versión del núcleo de Linux: 6.8
  + Versión Glibc: 2.35
  + Versión OpenSSL: 3.0.2
  + FSx Versión de Lustre Client: 2.15.6-1fsx25
  + Versión Runc: 1.3.4
  + Versión contenedora: containerd containerd.io v2.2.1
  + Versión del DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.6, 12.8, 12.9, 13.0
  + Versión del instalador de EFA: 2.3.1amzn2.0
  + Versión de Python: 3.10.12
  + Versión de Slurm: 24.11.0
  + Versión nvme-cli: 1.16
  + versión stress: 1.0.5
  + versión recopilada: 5.12.0.
  + Versión lustre-client: 2.15.6-1fsx25
  + versión systemd: 249
  + versión openssh: 8.9
  + versión sudo: 1.9.9
  + versión ufw: 0.36.1
  + versión gcc: 11.4.0
  + versión cmake: 3.2.1
  + hacer versión: 4.3
  + versión cloudwatch-agent: 1.300063.0b1323-1
  + Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
  + versión lvm2:2.03.11
  + Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versión rdma-core: 60.0-1

------

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 29 de diciembre de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20251229"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para SageMaker HyperPod AMI para las versiones 24.11 de Slurm.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Soporte de DLAMI para Slurm** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versión del kernel de Linux: 6.8
  + Versión Glibc: 2.35
  + Versión OpenSSL: 3.0.2
  + FSx Versión de Lustre Client: 2.15.6-1fsx25
  + Versión Runc: 1.3.4
  + Versión contenedora: containerd containerd.io v2.2.1
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.6, 12.8, 12.9, 13.0
  + Versión del instalador de EFA: 2.3.1amzn3.0
  + Versión de Python: 3.10.12
  + Versión de Slurm: 24.11.0
  + Versión nvme-cli: 1.16
  + versión recopilada: 5.12.0.
  + Versión lustre-client: 2.15.6-1fsx25
  + Versión nvidia-imex: 580.105.08-1
  + versión systemd: 249
  + versión openssh: 8.9
  + versión sudo: 1.9.9
  + versión ufw: 0.36.1
  + versión gcc: 11.4.0
  + versión cmake: 3.2.1
  + versión de git: 2.34.1
  + crear la versión: 4.3
  + versión cloudwatch-agent: 1.300062.0b1304-1
  + Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
  + versión lvm2:2.03.11
  + Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versión rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versión del núcleo de Linux: 6.8
  + Versión Glibc: 2.35
  + Versión OpenSSL: 3.0.2
  + FSx Versión de Lustre Client: 2.15.6-1fsx25
  + Versión Runc: 1.3.4
  + Versión contenedora: containerd containerd.io v2.2.1
  + Versión del DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.6, 12.8, 12.9, 13.0
  + Versión del instalador de EFA: 2.3.1amzn2.0
  + Versión de Python: 3.10.12
  + Versión de Slurm: 24.11.0
  + Versión nvme-cli: 1.16
  + versión stress: 1.0.5
  + versión recopilada: 5.12.0.
  + Versión lustre-client: 2.15.6-1fsx25
  + versión systemd: 249
  + versión openssh: 8.9
  + versión sudo: 1.9.9
  + versión ufw: 0.36.1
  + versión gcc: 11.4.0
  + versión cmake: 3.2.1
  + hacer versión: 4.3
  + versión cloudwatch-agent: 1.300062.0b1304-1
  + Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
  + versión lvm2:2.03.11
  + Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versión rdma-core: 60.0-1

------

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 22 de noviembre de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20251128"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para SageMaker HyperPod AMI para las versiones 24.11 de Slurm.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Soporte de DLAMI para Slurm** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Slurm (arm64) ]
+ Versión del núcleo de Linux: 6.8
+ Versión Glibc: 2.35
+ Versión OpenSSL: 3.0.2
+ FSx Versión de Lustre Client: 2.15.6-1fsx21
+ Versión Runc: 1.3.3
+ Versión contenedora: containerd containerd.io v2.1.5
+ Versión del controlador NVIDIA: 580.95.05
+ Versión CUDA: 12.6, 12.8, 12.9, 13.0
+ Versión del instalador de EFA: 2.1.0amzn5.0
+ Versión de Python: 3.10.12
+ Versión de Slurm: 24.11.0
+ Versión nvme-cli: 1.16
+ versión recopilada: 5.12.0.
+ Versión lustre-client: 2.15.6-1fsx21
+ Versión nvidia-imex: 580.95.05-1
+ versión systemd: 249
+ versión openssh: 8.9
+ versión sudo: 1.9.9
+ versión ufw: 0.36.1
+ versión gcc: 11.4.0
+ versión cmake: 3.2.1
+ versión de git: 2.34.1
+ crear la versión: 4.3
+ versión cloudwatch-agent: 1.300062.0b1304-1
+ Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
+ iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
+ versión lvm2:2.03.11
+ Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
+ versión rdma-core: 58.amzn0-1

------
#### [ Slurm (x86\$164) ]
+ Versión del kernel de Linux: 6.8
+ Versión Glibc: 2.35
+ Versión OpenSSL: 3.0.2
+ FSx Versión de Lustre Client: 2.15.6-1fsx21
+ Versión Runc: 1.3.3
+ Versión contenedora: containerd containerd.io v2.1.5
+ Versión DMS de AWS Neuronx: 2.24.7.0
+ Versión del controlador NVIDIA: 580.95.05
+ Versión CUDA: 12.6, 12.8, 12.9, 13.0
+ Versión del instalador de EFA: 2.3.1amzn1.0
+ Versión de Python: 3.10.12
+ Versión de Slurm: 24.11.0
+ Versión nvme-cli: 1.16
+ versión stress: 1.0.5
+ versión recopilada: 5.12.0.
+ Versión lustre-client: 2.15.6-1fsx21
+ versión systemd: 249
+ versión openssh: 8.9
+ versión sudo: 1.9.9
+ versión ufw: 0.36.1
+ versión gcc: 11.4.0
+ versión cmake: 3.2.1
+ hacer versión: 4.3
+ versión cloudwatch-agent: 1.300062.0b1304-1
+ Versión nfs-utils: 1:2.6 .1-1ubuntu1.2
+ iscsi-initiator-utils versión: 2.1.5-1ubuntu1.1
+ versión lvm2:2.03.11
+ Versión ec2-instance-connect: 1.1.14-0ubuntu1.1
+ versión rdma-core: 59.amzn0-1

------

## SageMaker HyperPod notas de lanzamiento: 7 de noviembre de 2025
<a name="sagemaker-hyperpod-release-notes-20251107"></a>

**La AMI incluye lo siguiente:**
+ Compatible Servicio de AWS: Amazon EC2
+ Sistema operativo: Ubuntu 22.04
+ Arquitectura de cómputo: ARM64
+ Paquetes actualizados: controlador NVIDIA: 580.95.05
+ Versiones de CUDA: cuda-12.6, cuda-12.8, cuda-12.9, cuda-13.0
+ [Correcciones de seguridad: parche de](https://aws.amazon.com/security/security-bulletins/rss/aws-2025-024/) seguridad Runc

## SageMaker HyperPod notas de lanzamiento: 29 de septiembre de 2025
<a name="sagemaker-hyperpod-release-notes-20250929"></a>

**La AMI incluye lo siguiente:**
+ Compatible Servicio de AWS: Amazon EC2
+ Sistema operativo: Ubuntu 22.04
+ Arquitectura de cómputo: ARM64
+ Paquetes actualizados: controlador NVIDIA: 570.172.08
+ Correcciones de seguridad:

## SageMaker HyperPod notas de publicación: 12 de agosto de 2025
<a name="sagemaker-hyperpod-release-notes-20250812"></a>

**La AMI incluye lo siguiente:**
+ Compatible Servicio de AWS: Amazon EC2
+ Sistema operativo: Ubuntu 22.04
+ Arquitectura de cómputo: ARM64
+ La última versión disponible está instalada para los siguientes paquetes:
  + Núcleo de Linux: 6.8
  + FSx Lustre
  + Docker
  + AWS CLI v2 en `/usr/bin/aws`
  + DCGM de NVIDIA
  + Kit de herramientas de contenedor de NVIDIA:
    + Comando de versión: `nvidia-container-cli -V`
  + Nvidia-Docker2:
    + Comando de versión: `nvidia-docker version`
  + Nvidia-IMEX: v570.172.08-1
+ Controlador NVIDIA: 570.158.01
+ Pila NVIDIA CUDA 12.4, 12.5, 12.6, 12.8:
  + Directorios de instalación de CUDA, NCCL y CUDDN: `/usr/local/cuda-xx.x/`
    + Ejemplo: `/usr/local/cuda-12.8/`, `/usr/local/cuda-12.8/`
  + Versión NCCL compilada:
    + Para el directorio CUDA de 12.4, compiló la versión 2.22.3\$1 .4 de NCCL. CUDA12
    + Para el directorio CUDA de 12.5, compiló la versión 2.22.3\$1 .5 de NCCL CUDA12
    + Para el directorio CUDA de 12.6, compiló la versión 2.24.3\$1 .6 de NCCL CUDA12
    + Para el directorio CUDA de 12.8, compiló la versión 2.27.5\$1 .8 de NCCL CUDA12
  + CUDA predeterminado: 12.8
    + PATH `/usr/local/cuda` apunta a CUDA 12.8
    + Se han actualizado las siguientes variables de entorno:
      + `LD_LIBRARY_PATH`tener `/usr/local/cuda-12.8/lib:/usr/local/cuda-12.8/lib64:/usr/local/cuda-12.8:/usr/local/cuda-12.8/targets/sbsa-linux/lib:/usr/local/cuda-12.8/nvvm/lib64:/usr/local/cuda-12.8/extras/CUPTI/lib64`
      + `PATH`tener `/usr/local/cuda-12.8/bin/:/usr/local/cuda-12.8/include/`
      + Para cualquier versión de CUDA diferente, actualícela `LD_LIBRARY_PATH` en consecuencia.
+ Instalador de EFA: 1.42.0
+ Nvidia: 2.5.1 GDRCopy
+ AWS El complemento OFI NCCL viene con el instalador EFA
  + Las rutas `/opt/amazon/ofi-nccl/lib/aarch64-linux-gnu` y `/opt/amazon/ofi-nccl/efa` se añaden a. `LD_LIBRARY_PATH`
+ AWS CLI v2 en `/usr/local/bin/aws2` y AWS CLI v1 en `/usr/bin/aws`
+ Tipo de volumen EBS: gp3
+ Python: `/usr/bin/python3.10`

## SageMaker HyperPod notas de lanzamiento: 27 de mayo de 2025
<a name="sagemaker-hyperpod-release-notes-20250527"></a>

SageMaker HyperPod publica lo siguiente para[Organización de clústeres con Slurm SageMaker HyperPodOrquestación de Slurm](sagemaker-hyperpod-slurm.md).

**Nuevas características y mejoras**
+ Se ha actualizado la AMI de base `Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04) 20250523` a los siguientes componentes clave:
  + Controlador Nvidia: 570.133.20
  + CUDA: 12.8 (predeterminado), compatible con CUDA 12.4-12.6
  + Versión de NCCL: 2.26.5
  + Instalador de EFA: 1.40.0
  + AWS OFI NCCL: 1.14.2-aws
+ Paquetes de SDK de Neuron actualizados:
  + aws-neuronx-collectives: 2.25.65.0-9858ac9a1 (desde 2.24.59.0-838c7fc8b)
  + aws-neuronx-dkms: 2.21.37.0 (desde 2.20.28.0)
  + aws-neuronx-runtime-lib: 2.25.57.0-166c7a468 (desde 2.24.53,0-f239092 cc)
  + aws-neuronx-tools: 2.23.9.0 (desde 2.22.61.0)

**Notas importantes**
+ El NVIDIA Container Toolkit 1.17.4 ha desactivado el montaje de bibliotecas compatibles con CUDA.
+ Se ha actualizado la configuración de EFA de 1.37 a 1.38. EFA ahora incluye AWS OFI NCCL, que se encuentra en el directorio `/opt/amazon/ofi-nccl` en lugar de en la ruta `/opt/aws-ofi-nccl/` original. (Publicado el 18 de febrero de 2025)
+ La versión del núcleo está anclada para garantizar la estabilidad y la compatibilidad de los controladores.

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 13 de mayo de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250513"></a>

Amazon SageMaker HyperPod ha publicado una AMI actualizada que admite Ubuntu 22.04 LTS para clústeres de Slurm. AWS se actualiza periódicamente AMIs para garantizar que tenga acceso a la pila de software más reciente. La actualización a la AMI más reciente mejora la seguridad mediante actualizaciones integrales de paquetes, un rendimiento y una estabilidad mejorados para las cargas de trabajo y compatibilidad con los nuevos tipos de instancia y las últimas características del núcleo.

**importante**  
La actualización de Ubuntu 20.04 LTS a Ubuntu 22.04 LTS introduce cambios importantes que pueden afectar a la compatibilidad con el software y las configuraciones diseñadas para Ubuntu 20.04.

**Topics**
+ [Actualizaciones clave de la AMI de Ubuntu 22.04](#sagemaker-hyperpod-ami-slurm-ubuntu22-updates)
+ [Actualización a la AMI de Ubuntu 22.04](#sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade)
+ [Resolución de problemas de errores de actualización](#sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot)

### Actualizaciones clave de la AMI de Ubuntu 22.04
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-updates"></a>

En la tabla siguiente se muestran las versiones de los componentes de la AMI de Ubuntu 22.04 en comparación con la AMI anterior.


**Versiones de los componentes de la AMI de Ubuntu 22.04 en comparación con la AMI anterior**  

| Componente | Versión anterior | Versión actualizada | 
| --- | --- | --- | 
|  **Sistema operativo Ubuntu**  |  20.04 LTS  |  22.04 LTS  | 
|  **Slurm**  |  24.11  |  24.11 (sin cambios)  | 
|  **Python**  |  3.8 (predeterminada)  |  3.10 (predeterminada)  | 
|  **Elastic Fabric Adapter (EFA) en Amazon FSx**  |  No compatible  |   compatible  | 
|  **Núcleo de Linux**  |  5.15  |  6.8  | 
|  **Biblioteca C GNU (glibc)**  |  2.31  |  2.35  | 
|  **Recopilación de compiladores de GNU (GCC)**  |  9.4.0  |  11.4.0  | 
|  **libc6**  |  ≤ 2.31  |  Compatible con ≥ 2.35  | 
|  **Sistema de archivos de red (NFS)**  |  1:1.3.4  |  1:2.6.1  | 

**nota**  
Si bien la versión de Slurm (24.11) permanece sin cambios, las actualizaciones subyacentes del sistema operativo y de la biblioteca de esta AMI pueden afectar al comportamiento de su sistema y a la compatibilidad de la carga de trabajo. Debe probar sus cargas de trabajo antes de actualizar los clústeres de producción.

### Actualización a la AMI de Ubuntu 22.04
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade"></a>

Antes de actualizar el clúster a la AMI de Ubuntu 22.04, complete estos pasos de preparación y revise los requisitos de actualización. Para solucionar errores de actualización, consulte [Resolución de problemas de errores de actualización](#sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot).

#### Revisión de la compatibilidad con Python
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-python-compatibility"></a>

La AMI de Ubuntu 22.04 usa Python 3.10 como versión predeterminada, actualizada desde Python 3.8. Aunque Python 3.10 mantiene la compatibilidad con la mayoría del código de Python 3.8, debe probar las cargas de trabajo existentes antes de realizar la actualización. Si sus cargas de trabajo requieren Python 3.8, puede instalarlo mediante el siguiente comando en el script de ciclo de vida:

```
yum install python-3.8
```

Antes de actualizar el clúster, asegúrese de hacer lo siguiente:

1. Pruebe la compatibilidad de su código con Python 3.10.

1. Compruebe que los scripts de su ciclo de vida funcionan en el nuevo entorno.

1. Compruebe que todas las dependencias sean compatibles con la nueva versión de Python.

1. Si ha creado el HyperPod clúster copiando el script de ciclo de vida predeterminado desde GitHub, añada el siguiente comando al `setup_mariadb_accounting.sh` archivo antes de actualizar a Ubuntu 22. Para ver el script completo, consulta [setup\$1mariadb\$1accounting.sh en GitHub](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/setup_mariadb_accounting.sh).

   ```
   apt-get -y -o DPkg::Lock::Timeout=120 update && apt-get -y -o DPkg::Lock::Timeout=120 install apg
   ```

#### Actualización del clúster de Slurm
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade-cluster"></a>

Puede actualizar su clúster de Slurm para usar la nueva AMI de dos maneras:

1. Cree un nuevo clúster con la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html).

1. Actualice el software de un clúster existente con la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html).

#### Configuraciones validadas
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-validation"></a>

AWS ha probado una amplia gama de cargas de trabajo de formación distribuidas y funciones de infraestructura en instancias G5, G6, G6e, P4d, P5 y Trn1, entre las que se incluyen:
+ Capacitación distribuida con PyTorch (por ejemplo, FSDP, MA, MNIST). NeMo LLa
+ Acelera las pruebas en todos los tipos de instancias con Nvidia (serie P/G) y AWS Neuron (Trn1).
+ Características de resiliencia que incluyen la [reanudación automática](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html#sagemaker-hyperpod-resiliency-slurm-auto-resume) y [comprobaciones de estado exhaustivas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-resiliency-deep-health-checks.html).

#### Tiempo de inactividad y disponibilidad del clúster
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-downtime-availability"></a>

Durante el proceso de actualización, el clúster no estará disponible. Para minimizar las interrupciones, haga lo siguiente:
+ Pruebe el proceso de actualización en clústeres más pequeños.
+ Cree puntos de comprobación antes de la actualización y, una vez finalizada la actualización, reinicie las cargas de trabajo de entrenamiento desde los puntos de comprobación existentes.

### Resolución de problemas de errores de actualización
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot"></a>

Cuando se produce un error en una actualización, primero debe determinar si el error está relacionado con los scripts del ciclo de vida. Estos scripts suelen fallar por errores de sintaxis, falta de dependencias o por configuraciones incorrectas.

Para investigar los errores relacionados con los scripts del ciclo de vida, consulta los registros. CloudWatch Todos los SageMaker HyperPod eventos y registros se almacenan en el grupo de registros:`/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]`. Observe específicamente el flujo de registro `LifecycleConfig/[instance-group-name]/[instance-id]`, que proporciona información detallada sobre cualquier error durante la ejecución del script.

Si el error de actualización no está relacionado con los scripts del ciclo de vida, recopile la información relevante, como el ARN del clúster, los registros de errores y las marcas de tiempo. A continuación, póngase en contacto con [AWS support](https://aws.amazon.com/premiumsupport/) para obtener más ayuda.

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 7 de mayo de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250507"></a>

Amazon SageMaker HyperPod for Slurm publicó una importante actualización de la versión del sistema operativo a Ubuntu 22.04 (desde la versión anterior de Ubuntu 20.04). Consulte DLAMI Ubuntu 22.04 [(notas de la versión](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-22-04/)) para obtener más información: `Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04) 20250503`.

Actualizaciones de paquetes clave:
+ Ubuntu 22.04 LTS (a partir de la 20.04)
+ Versión de Python:
  + Python 3.10 es ahora la versión predeterminada de Python en la AMI de Slurm de Ubuntu 22.04.
  + Esta actualización da acceso a las características más recientes, mejoras de rendimiento y correcciones de errores introducidas en Python 3.10.
+ Support for EFA on FSx
+ Nueva versión del núcleo de Linux 6.8 (actualizada desde la versión 5.15)
+ Versión de Glibc: 2.35 (actualizada desde la versión 2.31)
+ Versión de GCC: 11.4.0 (actualizada desde la versión 9.4.0)
+ Compatibilidad con la versión libc6 más reciente (desde la versión libc6 <= 2.31)
+ Versión de NFS: 1:2.6.1 (actualizada desde la 1:1.3.4)

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 28 de abril de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250428"></a>

**Mejoras de Slurm**
+ Se ha actualizado el controlador NVIDIA de la versión 550.144.03 a la 550.163.01. Esta actualización tiene como objetivo abordar las vulnerabilidades y exposiciones comunes (CVEs) presentes en el [boletín de seguridad de las pantallas de las GPU de NVIDIA de abril de](https://nvidia.custhelp.com/app/answers/detail/a_id/5630) 2025.

**Compatibilidad con Amazon SageMaker HyperPod DLAMI para Slurm**

------
#### [ Installed the latest version of AWS Neuron SDK ]
+ **aws-neuronx-collectives: 2.24.59.0-838c7fc8b**
+ **aws-neuronx-dkms:** 2.20.28.0
+ **aws-neuronx-runtime-lib: 2.24.53.0-f239092** cc
+ **aws-neuronx-tools/desconocido: 2.22.61.0**

------

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 18 de febrero de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250218"></a>

**Mejoras de Slurm**
+ Se ha actualizado Slurm a la versión 24.11.
+ Actualización de la versión del Elastic Fabric Adapter (EFA) de 1.37.0 a 1.38.0.
+ La EFA ahora incluye el complemento AWS OFI NCCL. Puede buscar este complemento en el directorio `/opt/amazon/ofi-nccl`, en lugar de en la ubicación `/opt/aws-ofi-nccl/` original. Si necesita actualizar la variable de entorno `LD_LIBRARY_PATH`, asegúrese de modificar la ruta para que apunte hacia la nueva ubicación `/opt/amazon/ofi-nccl` del complemento OFI NCCL.
+ Se ha eliminado el paquete emacs de estos. DLAMIs Puede instalar emacs desde emac GNU.

**Compatibilidad con Amazon SageMaker HyperPod DLAMI para Slurm**

------
#### [ Installed the latest version of AWS Neuron SDK 2.19 ]
+ **aws-neuronx-collectives/desconocido: 2.23.135.0-3e70920f2 amd64**
+ **aws-neuronx-dkms/desconocido:** 2.19.64.0 amd64
+ **aws-neuronx-runtime-lib/desconocido: 2.23.112.0-9b5179492** amd64
+ **aws-neuronx-tools/desconocido:** 2.20.204.0 amd64

------

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 21 de diciembre de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241221"></a>

**SageMaker HyperPod Soporte de DLAMI para Slurm**

------
#### [ Deep Learning Slurm AMI ]
+ **Controlador NVIDIA:** 550.127.05
+ **Controlador EFA:** 2.13.0-1
+ Se instaló la última versión del SDK de Neuron AWS 
  + **aws-neuronx-collectives: 2.22.3.0**
  + **aws-neuronx-dkms:** 2.18.20.0
  + **aws-neuronx-oci-hook:** 2.5.8.0
  + **aws-neuronx-runtime-lib: 2.22.19.0**
  + **aws-neuronx-tools:** 2.19.0.0

------

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 24 de noviembre de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241124"></a>

**Actualizaciones generales de la AMI**
+ Publicado en la región `MEL` (Melbourne).
+ Se actualizó el DLAMI SageMaker HyperPod base a las siguientes versiones:
  + Slurm: 2024-11-22.

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 15 de noviembre de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241115"></a>

**Actualizaciones generales de la AMI**
+ Se ha instalado el paquete de `libnvidia-nscq-xxx` más reciente.

**SageMaker HyperPod Soporte de DLAMI para Slurm**

------
#### [ Deep Learning Slurm AMI ]
+ **Controlador NVIDIA:** 550.127.05
+ **Controlador EFA:** 2.13.0-1
+ Se instaló la última versión del SDK de Neuron AWS 
  + **aws-neuronx-collectives:** v2.22.33.0-d2128d1aa
  + **aws-neuronx-dkms:** v2.17.17.0
  + **aws-neuronx-oci-hook:** v2.4.4.0
  + **aws-neuronx-runtime-lib:** v2.21.41.0
  + **aws-neuronx-tools:** v2.18.3.0

------

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 11 de noviembre de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241111"></a>

**Actualizaciones generales de la AMI**
+ Se actualizó el DLAMI SageMaker HyperPod base a la siguiente versión:
  + Slurm: 23/10/2024.

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 21 de octubre de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241021"></a>

**Actualizaciones generales de la AMI**
+ Se actualizó el DLAMI SageMaker HyperPod base a las siguientes versiones:
  + Slurm: 27/9/2024.

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 10 de septiembre de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20240910"></a>

**SageMaker HyperPod Soporte de DLAMI para Slurm**

------
#### [ Deep Learning Slurm AMI ]
+ Se ha instalado el controlador de NVIDIA v550.90.07
+ Se ha instalado el controlador de EFA v2.10
+ Se instaló la última versión del SDK de Neuron AWS 
  + **aws-neuronx-collectives: v2.21.46.0**
  + **aws-neuronx-dkms:** v2.17.17.0
  + **aws-neuronx-oci-hook:** v2.4.4.0
  + **aws-neuronx-runtime-lib:** v2.21.41.0
  + **aws-neuronx-tools:** v2.18.3.0

------

## SageMaker HyperPod Lanzamientos de AMI para Slurm: 14 de marzo de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20240314"></a>

**HyperPod Parche de software DLAMI para Slurm**
+ Se ha actualizado [Slurm](https://slurm.schedmd.com/documentation.html) a la versión 23.11.1
+ [Se agregó [Open PMIx](https://openpmix.github.io/code/getting-the-reference-implementation) v4.2.6 para habilitar Slurm con. PMIx](https://slurm.schedmd.com/mpi_guide.html#pmix)
+ Se basa en la [AMI de GPU de base de aprendizaje profundo de AWS (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) publicada el 26 de octubre de 2023
+ Una lista completa de los paquetes preinstalados en esta HyperPod DLAMI además de la AMI básica
  + [Slurm](https://slurm.schedmd.com/documentation.html): v23.11.1
  + [Abierto: v4.2.6 PMIx ](https://openpmix.github.io/code/getting-the-reference-implementation)
  + Munge: v0.5.15
  + `aws-neuronx-dkms`: v2.\$1
  + `aws-neuronx-collectives`: v2.\$1
  + `aws-neuronx-runtime-lib`: v2.\$1
  + `aws-neuronx-tools`: v2.\$1
  + SageMaker HyperPod paquetes de software para admitir funciones como la comprobación del estado del clúster y la reanudación automática

**Pasos de actualización**
+ Ejecute el siguiente comando para llamar a la [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API y actualizar sus HyperPod clústeres existentes con la última HyperPod DLAMI. Para obtener más instrucciones, consulte [Actualice el software de la SageMaker HyperPod plataforma de un clúster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).
**importante**  
Haga una copia de seguridad de su trabajo antes de ejecutar esta API. El proceso de aplicación de parches reemplaza el volumen raíz por la AMI actualizada, lo que significa que se perderán los datos anteriores almacenados en el volumen raíz de la instancia. Asegúrese de hacer una copia de seguridad de los datos del volumen raíz de la instancia en Amazon S3 o Amazon FSx for Lustre. Para obtener más información, consulte [Utilice el script de respaldo proporcionado por SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

  ```
   aws sagemaker update-cluster-software --cluster-name your-cluster-name
  ```
**nota**  
Ten en cuenta que debes ejecutar el AWS CLI comando para actualizar el HyperPod clúster. La actualización del HyperPod software a través de la interfaz de usuario de la SageMaker HyperPod consola no está disponible actualmente.

## SageMaker HyperPod Versión AMI para Slurm: 29 de noviembre de 2023
<a name="sagemaker-hyperpod-release-ami-slurm-20231129"></a>

**HyperPod Parche de software DLAMI para Slurm**

El equipo de HyperPod servicio distribuye los parches de software a través de. [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) Consulte los siguientes detalles sobre la última versión de HyperPod DLAMI.
+ Se basa en la [AMI de GPU de base de aprendizaje profundo de AWS (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) publicada el 18 de octubre de 2023
+ Una lista completa de los paquetes preinstalados en esta HyperPod DLAMI además de la AMI básica
  + [Slurm](https://slurm.schedmd.com/documentation.html): v23.02.3
  + Munge: v0.5.15
  + `aws-neuronx-dkms`: v2.\$1
  + `aws-neuronx-collectives`: v2.\$1
  + `aws-neuronx-runtime-lib`: v2.\$1
  + `aws-neuronx-tools`: v2.\$1
  + SageMaker HyperPod paquetes de software para admitir funciones como la comprobación del estado del clúster y la reanudación automática

# SageMaker HyperPod Lanzamientos de AMI para Amazon EKS
<a name="sagemaker-hyperpod-release-ami-eks"></a>

Las siguientes notas de la versión incluyen las últimas actualizaciones de las versiones de Amazon SageMaker HyperPod AMI para Amazon EKS Orchestration. Cada nota de la versión incluye una lista resumida de los paquetes preinstalados o preconfigurados para el soporte de SageMaker HyperPod DLAMIs Amazon EKS. Cada DLAMI se basa AL2023 en una versión específica de Kubernetes y es compatible con ella. Para ver las versiones HyperPod de DLAMI para la orquestación de Slurm, consulte. [SageMaker HyperPod Lanzamientos de AMI para Slurm](sagemaker-hyperpod-release-ami-slurm.md) Para obtener información sobre las versiones de SageMaker HyperPod funciones de Amazon, consulte[Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md).

## SageMaker Lanzamientos de AMI de Hyperpod para Amazon EKS: 1 de marzo de 2026
<a name="sagemaker-hyperpod-release-ami-eks-20260301"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para la AMI de SageMaker Hyperpod para las versiones 1.28, 1.29, 1.30, 1.31, 1.32, 1.33 y 1.34 de Amazon EKS.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Compatibilidad con DLAMI de Hyperpod para Amazon EKS** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.44 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.54
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.28.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.28.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.44 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.54
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.29.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.29.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.44 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.54
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.30.14-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.30.14-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.44 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.54
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.43.3
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.46 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.56
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.43.3
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.33.5-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.43.3
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.33.5-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.34 ]
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.34.2-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.16.1g
  + Versión del instalador de EFA: 1.43.3
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.34.2-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.2
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300064.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------

## SageMaker Lanzamientos de AMI de Hyperpod para Amazon EKS: 12 de febrero de 2026
<a name="sagemaker-hyperpod-release-ami-eks-20260212"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para la AMI de SageMaker Hyperpod para las versiones 1.28, 1.29, 1.30, 1.31, 1.32, 1.33 y 1.34 de Amazon EKS.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Compatibilidad con DLAMI de Hyperpod para Amazon EKS** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.28.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.28.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.29.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.29.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.30.14-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.30.14-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.43.3
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.43.3
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.33.5-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear la versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.43.3
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.33.5-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.34 ]
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.45.0
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.34.2-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión del instalador de EFA: 1.43.3
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.34.2-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.1
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------

## SageMaker Lanzamientos de AMI de Hyperpod para Amazon EKS: 25 de enero de 2026
<a name="sagemaker-hyperpod-release-ami-eks-20260125"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para la AMI de SageMaker Hyperpod para las versiones 1.28, 1.29, 1.30, 1.31, 1.32, 1.33 y 1.34 de Amazon EKS.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Compatibilidad con DLAMI de Hyperpod para Amazon EKS** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.28.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.28.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.29.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.29.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.30.14-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.30.14-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.14 de Docker, compilación 0bab007
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.211.01
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.33.5-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.33.5-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.34 ]
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.34.2-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.4
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.5
  + Versión del controlador NVIDIA: 580.126.09
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.34.2-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.126.09
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300062.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------

## SageMaker Lanzamientos de AMI de Hyperpod para Amazon EKS: 29 de diciembre de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251229"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para la AMI de SageMaker Hyperpod para las versiones 1.28, 1.29, 1.30, 1.31, 1.32 y 1.33 de Amazon EKS.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Compatibilidad con DLAMI de Hyperpod para Amazon EKS** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.28.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.28.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.29.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.29.15-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.30.14-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.30.14-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.4
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.4
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.31.13-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.105.08
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,29
  + Versión v2 de AWS CLI: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versión DMS de AWS Neuronx: 2.25.4.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.4
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.4
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.32.9-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.105.08
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.4
  + AWS Neuronx DMS versión: 2.25.4.0
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.33.5-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 60.0
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd/v2 2.1.4
  + Versión del controlador NVIDIA: 580.105.08
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.25
  + Versión de Kubernetes: v1.33.5-eks-ecaa3a6
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.105.08
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------

## SageMaker Lanzamientos de AMI de Hyperpod para Amazon EKS: 22 de noviembre de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251128"></a>

 **Actualizaciones generales de la AMI** 
+ Se publicaron actualizaciones para la AMI de SageMaker Hyperpod para las versiones 1.28, 1.29, 1.30, 1.31, 1.32 y 1.33 de Amazon EKS.
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Compatibilidad con DLAMI de Hyperpod para Amazon EKS** 

Esta versión incluye las siguientes actualizaciones:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + Versión v2 de AWS CLI: aws-cli/1.42.71 Python/3.10.17 Linux/5.10.245-241.978.amzn2.x86\$164 botocore/1.40.71
  + Versión DMS de AWS Neuronx: 2.24.7.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.28.15-eks-473151a
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.24.7.0
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.24
  + Versión de Kubernetes: v1.28.15-eks-473151a
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.

------
#### [ Kubernetes v1.29 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + Versión v2 de AWS CLI: aws-cli/1.42.71 Python/3.10.17 Linux/5.10.245-241.978.amzn2.x86\$164 botocore/1.40.71
  + Versión DMS de AWS Neuronx: 2.24.7.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.29.15-eks-473151a
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.24.7.0
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.24
  + Versión de Kubernetes: v1.29.15-eks-473151a
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.

------
#### [ Kubernetes v1.30 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.2
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + Versión v2 de AWS CLI: aws-cli/1.42.69 Python/3.10.17 Linux/5.10.245-241.976.amzn2.x86\$164 botocore/1.40.69
  + Versión DMS de AWS Neuronx: 2.24.7.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.30.11-eks-473151a
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.24.7.0
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.24
  + Versión de Kubernetes: v1.30.11-eks-473151a
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.

------
#### [ Kubernetes v1.31 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + Versión v2 de AWS CLI: aws-cli/1.42.71 Python/3.10.17 Linux/5.10.245-241.978.amzn2.x86\$164 botocore/1.40.71
  + Versión DMS de AWS Neuronx: 2.24.7.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.31.7-eks-473151a
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.24.7.0
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.24
  + Versión de Kubernetes: v1.31.13-eks-113cf36
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.24
  + Versión de Kubernetes: v1.31.13-eks-113cf36
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.95.05
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ahora está en desuso. La AMI de Kubernetes se basa en. AL2023** 
+ AL2 (x86\$164):
  + Versión del núcleo de Linux: 5.10
  + Versión Glibc: 2.26
  + Versión de OpenSSL: 1.0.2k-fips
  + FSx Versión de Lustre Client: 2.12.8
  + Versión de Docker: versión 25.0.13 de Docker, compilación 0bab007
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + Versión v2 de AWS CLI: aws-cli/1.42.74 Python/3.10.17 Linux/5.10.245-241.978.amzn2.x86\$164 botocore/1.40.74
  + Versión DMS de AWS Neuronx: 2.24.7.0
  + Versión del controlador NVIDIA: 570.195.03
  + Versión de CUDA: 12.2
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.7.16
  + Versión de Kubernetes: v1.32.3-eks-473151a
  + Versión de iptables-services: 1.8.4
  + Versión nginx: 1.20.1
  + Versión nvme-cli: 1.11.1
  + versión epel-release: 7
  + versión stress: 1.0.4
  + versión recopilada: 5.8.1
  + versión acl: 2.2.51
  + Versión de rsyslog: 8.24.0
  + Versión de lustre-client: 2.12.8
  + versión systemd: 219
  + versión openssh: 7.4
  + versión sudo: 1.8.23
  + versión gcc: 7.3.1
  + versión cmake: 2.8.12.2
  + versión de git: 2.47.3
  + hacer versión: 3.82
  + versión cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 1.3.0
  + Versión lvm2:2.02.187
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.24.7.0
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.24
  + Versión de Kubernetes: v1.32.9-eks-113cf36
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.24
  + Versión de Kubernetes: v1.32.9-eks-113cf36
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.95.05
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versión del núcleo de Linux: 6.1
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + AWS Neuronx DMS versión: 2.24.7.0
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.24
  + Versión de Kubernetes: v1.33.5-eks-113cf36
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + versión systemd: 25.2
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 59.
+ AL2023 (ARM64):
  + Versión del kernel de Linux: 6.12
  + Versión Glibc: 2.34
  + Versión OpenSSL: 3.2.2
  + FSx Versión de Lustre Client: 2.15.6
  + Versión Runc: 1.3.3
  + Versión contenida: containerd github. com/containerd/containerd 1,7,27
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 12.8
  + Versión del controlador ENA: 2.15.0g
  + Versión de Python: 3.9.24
  + Versión de Kubernetes: v1.33.5-eks-113cf36
  + Versión de iptables-services: 1.8.8
  + Versión nginx: 1.28.0
  + Versión nvme-cli: 2.13 1.13
  + versión stress: 1.0.7
  + versión recopilada: 5.12.0.
  + versión acl: 2.3.1
  + Versión de lustre-client: 2.15.6
  + Versión nvidia-imex: 580.95.05
  + versión systemd: 252
  + versión openssh: 8.7
  + versión sudo: 1.9.15
  + versión gcc: 11.5.0
  + versión cmake: 3.2.2
  + versión de git: 2.50.1
  + crear versión: 4.3
  + versión de cloudwatch-agent: 1.300060.1
  + Versión nfs-utils: 2.5.4
  + versión lvm2:2.03.16
  + versión ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versión: 2.0
  + versión rdma-core: 58.

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 7 de noviembre de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251107"></a>

**Actualizaciones generales de la AMI**
+ Se publicaron actualizaciones de SageMaker HyperPod AMI para las versiones 1.28, 1.29, 1.30, 1.31, 1.32 y 1.33 de Amazon EKS. 
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

Esta versión incluye las siguientes actualizaciones:

------
#### [ Kubernetes v1.28 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.28.15
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.28.15
+ Package updates incluye los componentes boto3, botocore, pip, regex, psutil y nvidia container toolkit.
+ Paquete agregado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.29 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.29.15
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.29.15
+ Las actualizaciones de paquetes incluyen actualizaciones del núcleo, actualizaciones de glibc y varias bibliotecas del sistema.
+ Paquete añadido: annotated-doc 0.0.3

------
#### [ Kubernetes v1.30 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.30.11
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.30.11
+ Las actualizaciones de los paquetes incluyen actualizaciones de parches en vivo del núcleo y actualizaciones de la biblioteca del sistema.
+ Paquete agregado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.31 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.31.7
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.31.13
+ AL2023 (brazo):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.31.13
  + Versión de kernel: 6.12.46-66.121.amzn2023.aarch64
+ Las actualizaciones de paquetes incluyen amplias actualizaciones de la biblioteca del sistema, actualizaciones del núcleo y actualizaciones de la biblioteca Boost.
+ Paquetes añadidos: apr-util-lmdb kernel-livepatch-6.1.156-177.286

------
#### [ Kubernetes v1.32 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.32.3
  + AWS Versión de IAM Authenticator: v0.6.29
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.32.9
+ AL2023 (brazo):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.32.9
  + Versión de kernel: 6.12.46-66.121.amzn2023.aarch64
+ Las actualizaciones de los paquetes incluyen actualizaciones de parches en vivo del núcleo y actualizaciones de la biblioteca del sistema.
+ Paquete agregado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.33.5
  + Versión de kernel: 6.1.155-176.282.amzn2023.x86\$164
+ AL2023 (brazo):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.33.5
  + Versión de kernel: 6.12.46-66.121.amzn2023.aarch64
+ Las actualizaciones de paquetes incluyen amplias actualizaciones de la biblioteca del sistema, actualizaciones del núcleo y actualizaciones de la biblioteca Boost.
+ Paquetes añadidos: actualizaciones apr-util-lmdb de kernel-livepatch

------

**nota**  
[La versión runc se ha actualizado al boletín de seguridad 1.3.2](https://aws.amazon.com/security/security-bulletins/rss/aws-2025-024/)

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 29 de octubre de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251029"></a>

**Actualizaciones generales de la AMI**
+ Se publicaron actualizaciones de SageMaker HyperPod AMI para las versiones 1.28, 1.29, 1.30, 1.31, 1.32 y 1.33 de Amazon EKS. 
+ [La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-baseoss-aml2-2025-10-14.html)

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

Esta versión incluye las siguientes actualizaciones:

------
#### [ Kubernetes v1.28 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.28.15
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.28.15
+ Package updates incluye los componentes boto3, botocore, pip, regex, psutil y nvidia container toolkit.
+ Paquete agregado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.29 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.29.15
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.29.15
+ Las actualizaciones de paquetes incluyen actualizaciones del núcleo, actualizaciones de glibc y varias bibliotecas del sistema.
+ Paquete añadido: annotated-doc 0.0.3

------
#### [ Kubernetes v1.30 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.30.11
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.30.11
+ Las actualizaciones de los paquetes incluyen actualizaciones de parches en vivo del núcleo y actualizaciones de la biblioteca del sistema.
+ Paquete agregado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.31 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.31.7
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.31.13
+ AL2023 (brazo):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.31.13
  + Versión de kernel: 6.12.46-66.121.amzn2023.aarch64
+ Las actualizaciones de paquetes incluyen amplias actualizaciones de la biblioteca del sistema, actualizaciones del núcleo y actualizaciones de la biblioteca Boost.
+ Paquetes añadidos: apr-util-lmdb kernel-livepatch-6.1.156-177.286

------
#### [ Kubernetes v1.32 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ AL2 (x86\$164):
  + Versión del controlador NVIDIA: 570.195.03
  + Versión CUDA: 12.8
  + Versión de Kubernetes: 1.32.3
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.32.9
+ AL2023 (brazo):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.32.9
  + Versión de kernel: 6.12.46-66.121.amzn2023.aarch64
+ Las actualizaciones de los paquetes incluyen actualizaciones de parches en vivo del núcleo y actualizaciones de la biblioteca del sistema.
+ Paquete agregado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.33.5
  + Versión de kernel: 6.1.155-176.282.amzn2023.x86\$164
+ AL2023 (brazo):
  + Versión del controlador NVIDIA: 580.95.05
  + Versión CUDA: 13.0
  + Versión de Kubernetes: 1.33.5
  + Versión de kernel: 6.12.46-66.121.amzn2023.aarch64
+ Las actualizaciones de paquetes incluyen amplias actualizaciones de la biblioteca del sistema, actualizaciones del núcleo y actualizaciones de la biblioteca Boost.
+ Paquetes añadidos: actualizaciones apr-util-lmdb de kernel-livepatch

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 22 de octubre de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251022"></a>

**AL2x86**

**nota**  
Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023

[La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-baseoss-aml2-2025-10-14.html)
+ Versiones 1.28 - 1.32 de EKS
+ Esta versión contiene los parches de CVE para los paquetes de controladores NVIDIA afectados que se encuentran en el boletín de seguridad de [octubre de Nvidia](https://nvidia.custhelp.com/app/answers/detail/a_id/5703).
+ NVIDIA SMI

  ```
  NVIDIA-SMI 570.195.03             
  Driver Version: 570.195.03     
  CUDA Version: 12.8
  ```
+ Versiones principales  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Paquetes agregados: no se agregó ningún paquete en esta versión.
+ Paquetes actualizados  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Paquetes eliminados: no se eliminó ningún paquete en esta versión.

**AL2023x86**

[La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-gpubaseoss-al2023-2025-10-14.html)
+ Versiones 1.28 - 1.32 de EKS. No se ha publicado la versión 1.33 de EKS.
+ Esta versión contiene parches de CVE para los paquetes de controladores NVIDIA afectados que se encuentran en el boletín de [seguridad de octubre de Nvidia](https://nvidia.custhelp.com/app/answers/detail/a_id/5703).
+ NVIDIA SMI

  ```
  NVIDIA-SMI 580.95.05             
  Driver Version: 580.95.05  
  CUDA Version: 13.0
  ```
+ Versiones principales  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Paquetes agregados: no se agregó ningún paquete en esta versión.
+ Paquetes actualizados  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Paquetes eliminados: no se eliminó ningún paquete en esta versión.

**AL2023 ARM64**

[La nota de publicación básica de DLAMI está disponible aquí.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-gpubaseossarm64-al2023-2025-10-14.html)
+ Versiones 1.31 - 1.33 de EKS.
+ Esta versión contiene los parches de CVE para los paquetes de controladores NVIDIA afectados que se encuentran en el boletín de seguridad de [octubre de Nvidia](https://nvidia.custhelp.com/app/answers/detail/a_id/5703).
+ NVIDIA SMI

  ```
  NVIDIA-SMI 580.95.05        
  Driver Version: 580.95.05    
  CUDA Version: 13.0
  ```
+ Versiones principales  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Paquetes agregados: no se agregó ningún paquete en esta versión.
+ Paquetes actualizados  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Paquetes eliminados: en esta versión no se ha eliminado ningún paquete.

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 29 de septiembre de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250929"></a>

**Actualizaciones generales de la AMI**
+ Publicó la nueva SageMaker HyperPod AMI para Amazon EKS 1.33. Para obtener más información, consulte las versiones de SageMaker HyperPod AMI para Amazon EKS: 29 de septiembre de 2025.
**importante**  
La versión beta de Kubernetes de la API de asignación dinámica de recursos está habilitada de forma predeterminada en esta versión.  
Esta API mejora la programación y la supervisión de las cargas de trabajo que requieren recursos, como: GPUs
Esta API fue desarrollada por la comunidad de código abierto de Kubernetes y podría cambiar en futuras versiones de Kubernetes. Antes de usar la API, consulta la documentación de [Kubernetes](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/) y comprende cómo afecta a tus cargas de trabajo.
HyperPod no está publicando una AMI de HyperPod Amazon Linux 2 para Kubernetes 1.33. AWS recomienda que migre a. AL2023 Para obtener más información, consulte [Actualización de Amazon Linux 2 a AL2023](https://docs.aws.amazon.com/eks/latest/userguide/al2023.html).

Para obtener más información, consulte [Kubernetes](https://kubernetes.io/blog/2025/04/23/kubernetes-v1-33-release/) v1.33.

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

Esta versión incluye las siguientes actualizaciones:

------
#### [ Kubernetes v1.28 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ NVIDIA SMI:
  + Versión del controlador NVIDIA: 570.172.08
  + Versión CUDA: 12.8
+ Paquetes:
  + Idiomas y bibliotecas principales:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Ir: 3.2.0-37.amzn2023
    + Oxidación: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principales:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilidades ZZ: 5.2.5-9.amzn2023.0.2
    + Utilidad-Linux: 2.37.4-1.amzn2023.0.4
  + Neurona:
    + aws-neuronx-dkms: 2.23.9.0-dms
    + aws-neuronx-tools: 2.25.145.0-1
  + TÉ:
    + controlador efa: 2.17.2-1.amzn2023
    + Configuración efa: 1.18-1.amzn2023
    + efa nv permem: 1.2.2-1.amzn2023
    + Perfil efa: 1.7-1.amzn2023
  + núcleo:
    + núcleo: 6.1.148-173.267.amzn2023
    + desarrollo del núcleo: 6.1.148-173.267.amzn2023
    + encabezados del núcleo: 6.1.148-173.267.amzn2023
    + herramientas del núcleo: 6.1.148-173.267.amzn2023
    + módulos de núcleo adicionales: 6.1.148-173.267.amzn2023
    + parche en vivo del núcleo: 1.0-0.amzn2023
  + Nvidia:
    + Kit de herramientas de contenedores nvidia: 1.17.8-1
    + Base del kit de herramientas nvidia container: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con herramientas)
    + gestor de tejidos nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.29 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ NVIDIA SMI:
  + Versión del controlador NVIDIA: 570.172.08
  + Versión CUDA: 12.8
+ Paquetes:
  + Idiomas y bibliotecas principales:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Ir: 3.2.0-37.amzn2023
    + Oxidación: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principales:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilidades ZZ: 5.2.5-9.amzn2023.0.2
    + Utilidad-Linux: 2.37.4-1.amzn2023.0.4
  + Neurona:
    + aws-neuronx-dkms: 2.23.9.0-dms
    + aws-neuronx-tools: 2.25.145.0-1
  + TÉ:
    + controlador efa: 2.17.2-1.amzn2023
    + Configuración efa: 1.18-1.amzn2023
    + efa nv permem: 1.2.2-1.amzn2023
    + Perfil efa: 1.7-1.amzn2023
  + núcleo:
    + núcleo: 6.1.148-173.267.amzn2023
    + desarrollo del núcleo: 6.1.148-173.267.amzn2023
    + encabezados del núcleo: 6.1.148-173.267.amzn2023
    + herramientas del núcleo: 6.1.148-173.267.amzn2023
    + módulos de núcleo adicionales: 6.1.148-173.267.amzn2023
    + parche en vivo del núcleo: 1.0-0.amzn2023
  + Nvidia:
    + Kit de herramientas de contenedores nvidia: 1.17.8-1
    + Base del kit de herramientas nvidia container: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con herramientas)
    + gestor de tejidos nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.30 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ NVIDIA SMI:
  + Versión del controlador NVIDIA: 570.172.08
  + Versión CUDA: 12.8
+ Paquetes:
  + Idiomas y bibliotecas principales:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Ir: 3.2.0-37.amzn2023
    + Oxidación: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principales:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilidades ZZ: 5.2.5-9.amzn2023.0.2
    + Utilidad-Linux: 2.37.4-1.amzn2023.0.4
  + Neurona:
    + aws-neuronx-dkms: 2.23.9.0-dms
    + aws-neuronx-tools: 2.25.145.0-1
  + TÉ:
    + controlador efa: 2.17.2-1.amzn2023
    + Configuración efa: 1.18-1.amzn2023
    + efa nv permem: 1.2.2-1.amzn2023
    + Perfil efa: 1.7-1.amzn2023
  + núcleo:
    + núcleo: 6.1.148-173.267.amzn2023
    + desarrollo del núcleo: 6.1.148-173.267.amzn2023
    + encabezados del núcleo: 6.1.148-173.267.amzn2023
    + herramientas del núcleo: 6.1.148-173.267.amzn2023
    + módulos de núcleo adicionales: 6.1.148-173.267.amzn2023
    + parche en vivo del núcleo: 1.0-0.amzn2023
  + Nvidia:
    + Kit de herramientas de contenedores nvidia: 1.17.8-1
    + Base del kit de herramientas nvidia container: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con herramientas)
    + gestor de tejidos nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.31 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ NVIDIA SMI:
  + Versión del controlador NVIDIA: 570.172.08
  + Versión CUDA: 12.8
+ Paquetes:
  + Idiomas y bibliotecas principales:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Ir: 3.2.0-37.amzn2023
    + Oxidación: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principales:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilidades ZZ: 5.2.5-9.amzn2023.0.2
    + Utilidad-Linux: 2.37.4-1.amzn2023.0.4
  + Neurona:
    + aws-neuronx-dkms: 2.23.9.0-dms
    + aws-neuronx-tools: 2.25.145.0-1
  + TÉ:
    + controlador efa: 2.17.2-1.amzn2023
    + Configuración efa: 1.18-1.amzn2023
    + efa nv permem: 1.2.2-1.amzn2023
    + Perfil efa: 1.7-1.amzn2023
  + núcleo:
    + núcleo: 6.1.148-173.267.amzn2023
    + desarrollo del núcleo: 6.1.148-173.267.amzn2023
    + encabezados del núcleo: 6.1.148-173.267.amzn2023
    + herramientas del núcleo: 6.1.148-173.267.amzn2023
    + módulos de núcleo adicionales: 6.1.148-173.267.amzn2023
    + parche en vivo del núcleo: 1.0-0.amzn2023
  + Nvidia:
    + Kit de herramientas de contenedores nvidia: 1.17.8-1
    + Base del kit de herramientas nvidia container: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con herramientas)
    + gestor de tejidos nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.32 ]
+ **Amazon Linux 2 ya está en desuso. La AMI de Kubernetes se basa en. AL2023**
+ NVIDIA SMI:
  + Versión del controlador NVIDIA: 570.172.08
  + Versión CUDA: 12.8
+ Paquetes:
  + Idiomas y bibliotecas principales:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Ir: 3.2.0-37.amzn2023
    + Oxidación: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principales:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilidades ZZ: 5.2.5-9.amzn2023.0.2
    + Utilidad-Linux: 2.37.4-1.amzn2023.0.4
  + Neurona:
    + aws-neuronx-dkms: 2.23.9.0-dms
    + aws-neuronx-tools: 2.25.145.0-1
  + TÉ:
    + controlador efa: 2.17.2-1.amzn2023
    + Configuración efa: 1.18-1.amzn2023
    + efa nv permem: 1.2.2-1.amzn2023
    + Perfil efa: 1.7-1.amzn2023
  + núcleo:
    + núcleo: 6.1.148-173.267.amzn2023
    + desarrollo del núcleo: 6.1.148-173.267.amzn2023
    + encabezados del núcleo: 6.1.148-173.267.amzn2023
    + herramientas del núcleo: 6.1.148-173.267.amzn2023
    + módulos de núcleo adicionales: 6.1.148-173.267.amzn2023
    + parche en vivo del núcleo: 1.0-0.amzn2023
  + Nvidia:
    + Kit de herramientas de contenedores nvidia: 1.17.8-1
    + Base del kit de herramientas nvidia container: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con herramientas)
    + gestor de tejidos nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.33 ]

La siguiente tabla contiene información sobre los componentes de esta versión de AMI y las versiones correspondientes.


| component | AL2023\$1x86 | AL2023\$1arm64 | 
| --- | --- | --- | 
| EKS | v1.3.4 | v1.33.4 | 
| amazon-ssm-agent | 3.3.2299.0-1.amzn2023 | 3.3.2299.0-1.amzn2023 | 
| aws-neuronx-dkms | 2.23.9.0-dkms | N/A | 
| containerd | 1.7.27-1.eks.amzn2023.0.4 | 1.7.27-1.eks.amzn2023.0.4 | 
| té | 2.17.2-1.amzn2023 | 2.17.2-1.amzn2023 | 
| ena | 2.14.1 g | 2.14.1 g | 
| kernel | 6.12.40-64.114 a.m. de 2023 | N/A | 
| kernel 6.12 | N/A | 6.12.40-64.114. a.m., de 2023 | 
| kmod-nvidia-latest-dkms | 570,12,08-1.amzn2023 | 570,12,08-1.el9 | 
| nvidia-container-toolkit | 1.17.8-1 | 1.17,8-1 | 
| runc | 1.2.6-1.amzn2023.0.1 | 1.2.6-1.amzn2023.0.1 | 

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 25 de agosto de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250825"></a>

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

Esta versión incluye las siguientes actualizaciones:

------
#### [ Kubernetes v1.28 ]

**NVIDIA SMI:**
+ Versión del controlador NVIDIA: 570.172.08
+ Versión de CUDA: 12.8

**Paquetes agregados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Paquetes actualizados:**
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4

**Paquetes eliminados:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositorio modificado:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ contenedor libnvidia-1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------
#### [ Kubernetes v1.29 ]

**NVIDIA SMI:**
+ Versión del controlador NVIDIA: 570.172.08
+ Versión de CUDA: 12.8

**Paquetes agregados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Paquetes actualizados:**
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4

**Paquetes eliminados:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositorio modificado:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ contenedor libnvidia-1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------
#### [ Kubernetes v1.30 ]

**NVIDIA SMI:**
+ Versión del controlador NVIDIA: 570.172.08
+ Versión de CUDA: 12.8

**Paquetes agregados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Paquetes actualizados:**
+ aws-neuronx-dkms.march: 2.22.2.0-dkms → 2.23.9.0-dkms
+ efa.x86\$164: 2.15.3-1.amzn2 → 2.17.2-1.amzn2
+ efa-nv-peermem.x86\$164:1.2.1-1.amzn2 → 1.2.2-1.amzn2
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ ibacm.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ infiniband-diags.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libfabric-aws.x86\$164: 2.1.0amzn3.0-1.amzn2 → 2.1.0amzn5.0-1.amzn2
+ libfabric-aws-devel.x86\$164:2.1.0amzn3.0-1.amzn2 → 2.1.0amzn5.0-1.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ libibumad.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs-core.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs-utils.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libnccl-ofi.x86\$164: 1.15.0-1.amzn2 → 1.16.2-1.amzn2
+ librdmacm.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ librdmacm-utils.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4
+ rdma-core.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ rdma-core-devel.x86\$164:57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2

**Paquetes eliminados:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositorio modificado:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ contenedor libnvidia-1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------
#### [ Kubernetes v1.31 ]

**NVIDIA SMI:**
+ Versión del controlador NVIDIA: 570.172.08
+ Versión de CUDA: 12.8

**Paquetes agregados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Paquetes actualizados:**
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4

**Paquetes eliminados:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositorio modificado:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ contenedor libnvidia-1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------
#### [ Kubernetes v1.32 ]

**NVIDIA SMI:**
+ Versión del controlador NVIDIA: 570.172.08
+ Versión de CUDA: 12.8

**Paquetes agregados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Paquetes actualizados:**
+ aws-neuronx-dkms.march: 2.22.2.0-dkms → 2.23.9.0-dkms
+ efa.x86\$164: 2.15.3-1.amzn2 → 2.17.2-1.amzn2
+ efa-nv-peermem.x86\$164:1.2.1-1.amzn2 → 1.2.2-1.amzn2
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ ibacm.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ infiniband-diags.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libfabric-aws.x86\$164: 2.1.0amzn3.0-1.amzn2 → 2.1.0amzn5.0-1.amzn2
+ libfabric-aws-devel.x86\$164:2.1.0amzn3.0-1.amzn2 → 2.1.0amzn5.0-1.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ libibumad.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs-core.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs-utils.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libnccl-ofi.x86\$164: 1.15.0-1.amzn2 → 1.16.2-1.amzn2
+ librdmacm.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ librdmacm-utils.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4
+ rdma-core.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ rdma-core-devel.x86\$164:57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2

**Paquetes eliminados:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositorio modificado:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ contenedor libnvidia-1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 12 de agosto de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250812"></a>

**La AMI incluye lo siguiente:**
+  AWS Servicio compatible: Amazon EC2
+ Sistema operativo: Amazon Linux 2023
+ Arquitectura de cómputo: ARM64
+ La última versión disponible está instalada para los siguientes paquetes:
  + Núcleo de Linux: 6.12
  + FSx Lustre
  + Docker
  + AWS CLI v2 en `/usr/bin/aws`
  + DCGM de NVIDIA
  + Kit de herramientas de contenedor de NVIDIA:
    + Comando de versión: `nvidia-container-cli -V`
  + Nvidia-Docker2:
    + Comando de versión: `nvidia-docker version`
  + NVIDIA-IMEX: v570.172.08-1
+ Controlador NVIDIA: 570.158.01
+ Pila NVIDIA CUDA 12.4, 12.5, 12.6, 12.8:
  + Directorios de instalación de CUDA, NCCL y CUDDN: `/usr/local/cuda-xx.x/`
    + Ejemplo: `/usr/local/cuda-12.8/`, `/usr/local/cuda-12.8/`
  + Versión NCCL compilada:
    + Para el directorio CUDA de 12.4, compiló la versión 2.22.3\$1 .4 de NCCL. CUDA12
    + Para el directorio CUDA de 12.5, compiló la versión 2.22.3\$1 .5 de NCCL CUDA12
    + Para el directorio CUDA de 12.6, compiló la versión 2.24.3\$1 .6 de NCCL CUDA12
    + Para el directorio CUDA de 12.8, compiló la versión 2.27.5\$1 .8 de NCCL CUDA12
  + CUDA predeterminado: 12.8
    + PATH `/usr/local/cuda` apunta a CUDA 12.8
    + Se han actualizado las siguientes variables de entorno:
      + `LD_LIBRARY_PATH`tener `/usr/local/cuda-12.8/lib:/usr/local/cuda-12.8/lib64:/usr/local/cuda-12.8:/usr/local/cuda-12.8/targets/sbsa-linux/lib:/usr/local/cuda-12.8/nvvm/lib64:/usr/local/cuda-12.8/extras/CUPTI/lib64`
      + `PATH`tener `/usr/local/cuda-12.8/bin/:/usr/local/cuda-12.8/include/`
      + Para cualquier versión de CUDA diferente, actualícela `LD_LIBRARY_PATH` en consecuencia.
+ Instalador de EFA: 1.42.0
+ Nvidia: 2.5.1 GDRCopy
+ AWS El complemento OFI NCCL viene con el instalador EFA
  + Las rutas `/opt/amazon/ofi-nccl/lib` y `/opt/amazon/ofi-nccl/efa` se añaden a. `LD_LIBRARY_PATH`
+ AWS CLI v2 en `/usr/local/bin/aws`
+ Tipo de volumen EBS: gp3
+ Python: `/usr/bin/python3.9`

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 6 de agosto de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250806"></a>

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

 AMIs Incluyen las siguientes actualizaciones:

------
#### [ K8s v1.28 ]
+ **Paquetes de Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23.9.0-dkms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-kComplemento 8:2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:** 2.27.7.0-1
  + **aws-neuronx-tools: 2.25.145.0-1**

------
#### [ K8s v1.29 ]
+ **Paquetes de Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23.9.0-dkms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-kComplemento 8:2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:** 2.27.7.0-1
  + **aws-neuronx-tools: 2.25.145.0-1**

------
#### [ K8s v1.30 ]
+ **Paquetes de Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23.9.0-dkms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-kComplemento 8:2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:** 2.27.7.0-1
  + **aws-neuronx-tools: 2.25.145.0-1**

------
#### [ K8s v1.31 ]
+ **Paquetes de Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23.9.0-dkms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-kComplemento 8:2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:** 2.27.7.0-1
  + **aws-neuronx-tools: 2.25.145.0-1**

------
#### [ K8s v1.32 ]
+ **Paquetes de Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23.9.0-dkms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-kComplemento 8:2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:** 2.27.7.0-1
  + **aws-neuronx-tools: 2.25.145.0-1**

------

**importante**  
AMI base con controlador NVIDIA de código abierto para aprendizaje profundo (Amazon Linux 2) versión 70.3
AMI de base de aprendizaje profundo de controlador propietario Nvidia (Amazon Linux 2) versión 68.4
Compatibilidad con la versión 12.8 de CUA más reciente
Se ha actualizado el controlador Nvidia de 570.158.01 a 570.172.08 para corregir los CVE, tal como aparece en el NVIDIA Security Bulletin de julio.

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 31 de julio de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250731"></a>

Amazon SageMaker HyperPod ahora admite una nueva AMI para los clústeres de Amazon EKS que actualiza el sistema operativo base a Amazon Linux 2023. Esta versión proporciona varias mejoras con respecto a Amazon Linux 2 (AL2). HyperPod publica nuevas versiones AMIs periódicamente, y le recomendamos que ejecute todos sus HyperPod clústeres en las versiones más recientes y seguras de AMIs para abordar las vulnerabilidades y eliminar gradualmente el software y las bibliotecas obsoletos.

### Mejoras clave
<a name="sagemaker-hyperpod-release-ami-eks-20250731-specs"></a>
+ **Sistema operativo**: Amazon Linux 2023 (actualizado desde Amazon Linux 2 o AL2)
+ **Package Manager**: DNF es la herramienta de administración de paquetes predeterminada, que reemplaza a YUM utilizada en AL2
+ **Servicio de red**: `systemd-networkd` administra las interfaces de red, reemplazando el ISC utilizado en `dhclient` AL2
+ **Núcleo de Linux**: versión 6.1, actualizada desde el núcleo utilizado en AL2
+ **Glibc**: versión 2.34, actualizada desde la versión de AL2
+ **GCC**: versión 11.5.0, actualizada desde la versión de AL2
+ **NFS**: versión 1:2.6 .1, actualizada desde la versión 1:1.3 .4 en AL2
+ **Controlador NVIDIA**: versión 570.172.08, una versión más actual del controlador
+ **Python**: versión 3.9, que reemplaza a Python 2.7 utilizado en AL2
+ **NVME**: versión 1.11.1, una versión más reciente del controlador NVMe 

### Antes de la actualización
<a name="sagemaker-hyperpod-release-ami-eks-20250731-prereqs"></a>

Hay algunos puntos importantes que debe saber antes de actualizar la versión. Con AL2023, se han agregado, actualizado o eliminado varios paquetes en comparación con. AL2 Le recomendamos encarecidamente que pruebe sus aplicaciones AL2023 antes de actualizar sus clústeres. Para obtener una lista completa de todos los cambios en los paquetes AL2023, consulte [Package changes in Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/release-notes/compare-packages.html).

Los siguientes son algunos de los cambios importantes entre AL2 y AL2023:
+ **Python 3.10**: La actualización más importante, aparte del sistema operativo, es la actualización de la versión Python. Tras la actualización, los clústeres tienen Python 3.10 por defecto. Si bien algunas cargas de trabajo de entrenamiento distribuidas de Python 3.8 pueden ser compatibles con Python 3.10, te recomendamos encarecidamente que pruebes tus cargas de trabajo específicas por separado. Si la migración a Python 3.10 resulta difícil, pero aun así desea actualizar su clúster para incluir otras funciones nuevas, puede instalar una versión anterior de Python mediante el comando `yum install python-xx.x` con [scripts de ciclo](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-lifecycle-best-practices-slurm.html) de vida antes de ejecutar cualquier carga de trabajo. Asegúrese de probar la compatibilidad tanto de los scripts de ciclo de vida existentes como del código de la aplicación.
+ Aplicación del entorno **de ejecución de NVIDIA**: aplica AL2023 estrictamente los requisitos de tiempo de ejecución de los contenedores de NVIDIA, lo que provoca que los contenedores con variables de entorno NVIDIA codificadas (por ejemplo`NVIDIA_VISIBLE_DEVICES: "all"`) fallen en los nodos que solo funcionan con CPU (mientras que AL2 ignora esta configuración cuando no hay controladores de GPU). Puede anular la aplicación configurando las especificaciones de su pod o utilizando imágenes solo de `NVIDIA_VISIBLE_DEVICES: "void"` la CPU.
+ **cgroup v2**: AL2023 presenta la nueva generación de jerarquías unificadas de grupos de control (cgroup v2). cgroup v2 se usa para tiempos de ejecución de contenedores y también lo usa. `systemd` Si bien AL2023 todavía incluye código que puede hacer que el sistema funcione con cgroup v1, no se recomienda esta configuración.
+ **CNI y `eksctl` versiones de Amazon VPC**: AL2023 también es necesario que la versión de su CNI de Amazon VPC sea 1.16.2 o superior y que su versión sea 0.176.0 o superior. `eksctl`
+ **EFA on FSx for Lustre**: ahora puede usar EFA on FSx for Lustre, que le permite lograr un rendimiento de aplicaciones comparable al de los clústeres locales AI/ML o de HPC (computación de alto rendimiento) y, al mismo tiempo, beneficiarse de la escalabilidad, flexibilidad y elasticidad de la computación en nube.

Además, la actualización AL2023 requiere como mínimo la versión `1.0.643.0_1.0.192.0` de Health Monitoring Agent. Complete el siguiente procedimiento para actualizar el Health Monitoring Agent:

1. Si utiliza scripts de HyperPod ciclo de vida del GitHub repositorio [awsome-distributed-training](https://github.com/aws-samples/awsome-distributed-training)), asegúrese de obtener la versión más reciente. Las versiones anteriores no son compatibles con AL2023. El nuevo script de ciclo de vida garantiza que se `containerd` utilice el almacenamiento adicional montado para incorporar las imágenes del contenedor AL2023.

1. Obtenga la última versión del [repositorio git de HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli/tree/main).

1. Actualice las dependencias con el siguiente comando: `helm dependencies update helm_chart/HyperPodHelmChart`

1. Como se menciona en el paso 4 del [archivo README de HyperPodHelmChart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#step-four-whenever-you-want-to-upgrade-the-installation-of-helm-charts), ejecuta el siguiente comando para actualizar la versión de las dependencias que se ejecutan en el clúster: `helm upgrade dependencies helm_chart/HyperPodHelmChart -namespace kube-system`

### Cargas de trabajo que se han probado en clústeres EKS actualizados
<a name="sagemaker-hyperpod-release-ami-eks-20250731-tested"></a>

Los siguientes son algunos casos de uso en los que se probó la actualización:
+ **Compatibilidad con versiones anteriores**: los trabajos de formación distribuidos más populares que implican PyTorch deberían ser compatibles con versiones anteriores en la nueva AMI. Sin embargo, dado que sus cargas de trabajo pueden depender de bibliotecas específicas de Python o Linux, le recomendamos que primero realice pruebas en una escala más pequeña o en un subconjunto de nodos antes de actualizar los clústeres más grandes.
+ **Pruebas de aceleración**: se han probado trabajos en varios tipos de instancias, utilizando aceleradores NVIDIA (para las familias de instancias P y G) y aceleradores AWS Neuron (para las instancias Trn).

### Cómo actualizar la AMI y las cargas de trabajo asociadas
<a name="sagemaker-hyperpod-release-ami-eks-20250731-upgrade"></a>

Puede crear una AMI personalizada utilizando uno de los métodos siguientes:
+ Utilice la API [create-cluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html) para crear un clúster nuevo con la AMI más reciente.
+ Usa la [update-cluster-software](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API para actualizar tu clúster actual. Tenga en cuenta que esta opción vuelve a ejecutar cualquier script de ciclo de vida.

El clúster no está disponible durante la actualización. Recomendamos planificar este tiempo de inactividad y reiniciar la carga de trabajo de entrenamiento desde un punto de comprobación existente una vez finalizada la actualización. Como práctica recomendada, le recomendamos que realice pruebas en un clúster más pequeño antes de actualizar los clústeres más grandes.

Si el comando update falla, identifique primero la causa del error. En caso de errores en los scripts del ciclo de vida, efectúe las correcciones necesarias en los scripts y vuelva a intentarlo. Para cualquier otro problema que no se pueda resolver, póngase en contacto con [AWS Support](https://aws.amazon.com/premiumsupport/).

### Resolución de problemas
<a name="sagemaker-hyperpod-release-ami-eks-20250731-troubleshooting"></a>

Usa la siguiente sección como ayuda para solucionar cualquier problema que surja al realizar la actualización a AL2023.

**¿Cómo puedo corregir errores, por ejemplo, `"nvml error: driver not loaded: unknown"` en los nodos de un clúster que solo utilizan CPU?**

Si los contenedores que funcionaban en los nodos AL2 Amazon EKS de la CPU ahora fallan AL2023, es posible que la imagen del contenedor tenga variables de entorno NVIDIA codificadas de forma rígida. Puede comprobarlo si hay variables de entorno codificadas de forma rígida con el siguiente comando:

```
docker inspect image:tag | grep -i nvidia
```

AL2023 aplica estrictamente estos requisitos, mientras que AL2 es más indulgente con los nodos que solo utilizan CPU. Una solución consiste en anular la AL2023 aplicación configurando determinadas variables de entorno de NVIDIA en la especificación del pod de Amazon EKS, como se muestra en el siguiente ejemplo:

```
yaml
containers:
- name: your-container
image: your-image:tag
env:
- name: NVIDIA_VISIBLE_DEVICES
value: "void"
- name: NVIDIA_DRIVER_CAPABILITIES
value: ""
```

Otra alternativa es utilizar imágenes de contenedor que solo estén en la CPU (por ejemplo`pytorch/pytorch:latest-cpu`) o crear imágenes personalizadas sin depender de NVIDIA.

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 15 de julio de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250715"></a>

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

 AMIs Incluyen las siguientes actualizaciones:

------
#### [ K8s v1.28 ]
+ **Controlador NVIDIA más reciente**: 550.163.01
+ **CUDA predeterminado: 12.4**
+ **Instalador de EFA:** 1.38.0
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.noarch**: 2.22.2.0-dkms
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.26.43.0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.16.2.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.16.1.0\$10a6506a47-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.26.26.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.26.42.0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:2.24.54.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------
#### [ K8s v1.29 ]
+ **Versión del controlador NVIDIA:** 550.163.01
+ **Versión de CUDA: 12.4**
+ **Instalador de EFA:** 1.38.0
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.march: 2.22.2.0-dkms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.26.43.0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.16.2.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.16.1.0\$10a6506a47-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.26.26.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.26.42.0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:2.24.54.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------
#### [ K8s v1.30 ]
+ **Versión del controlador NVIDIA:** 550.163.01
+ **Versión de CUDA: 12.4**
+ **Versión del instalador de EFA:** 1.38.0
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.march: 2.22.2.0-dkms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.26.43.0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.16.2.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.16.1.0\$10a6506a47-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.26.26.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.26.42.0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:2.24.54.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------
#### [ K8s v1.31 ]
+ **Versión del controlador NVIDIA:** 550.163.01
+ **Versión de CUDA: 12.4**
+ **Versión del instalador de EFA:** 1.38.0
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.march: 2.22.2.0-dkms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.26.43.0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.16.2.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.16.1.0\$10a6506a47-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.26.26.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.26.42.0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:2.24.54.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------
#### [ K8s v1.32 ]
+ **Versión del controlador NVIDIA:** 550.163.01
+ **Versión de CUDA: 12.4**
+ **Versión del instalador de EFA:** 1.38.0
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.march: 2.22.2.0-dkms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.26.43.0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.16.2.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.16.1.0\$10a6506a47-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.26.26.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.26.42.0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:2.24.54.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 9 de junio de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250609"></a>

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

------
#### [ Neuron SDK Updates ]
+ **aws-neuronx-dkms.noarch: 2.21.37.0 (desde 2.20.74.0**)

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 22 de mayo de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250522"></a>

**Actualizaciones generales de la AMI**

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

------
#### [ Deep Learning Base AMI AL2 ]
+ **Controlador NVIDIA más reciente**: 550.163.01
+ **Actualizaciones de la pila CUDA:**
  + **CUDA predeterminado:** 12.1
  + **Versión de NCCL:** 2.22.3
+ **Instalador de EFA:** 1.38.0
+ AWS PARA **NCCL**: 1.13.2
+ **Núcleo de Linux:** 5.10
+ **GDRCopy: 2.4**

**importante**  
**Actualización del kit de herramientas de contenedor NVIDIA 1.17.4:** el montaje de las bibliotecas compatibles con CUDA ahora está desactivado
**Actualizaciones de EFA de la versión 1.37 a la 1.38:**  
AWS El complemento OFI NCCL ahora se encuentra en/-nccl opt/amazon/ofi
La ubicación anterior /opt//está obsoleta aws-ofi-nccl

------
#### [ Neuron SDK Updates ]
+ **aws-neuronx-dkms.noarch**: 2.20.74.0 (desde el 2.20.28.0)
+ **aws-neuronx-collectives.x86\$164:2.25.65.0\$19858ac9a1-1** (desde el 2.24.59.0\$1838c7fc8b-1)
+ **aws-neuronx-runtime-lib.x86\$164:** 2.25.57.0\$1166c7a468-1 (desde el 2.24.53.0\$1f239092cc-1)
+ **aws-neuronx-tools.x86\$164:** 2.23.9.0 (desde 2.22.61.0)
+ **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.15.12.0 (desde el 0.14.12.0)
+ **aws-neuronx-gpsimd-tools.x86\$164:0.15.1.0\$15d31b6a3f** (desde el 0.14.6.0\$1241eb69f4)
+ **aws-neuronx-k8-plugin.x86\$164:** 2.25.24.0 (desde el 2.24.23.0)
+ **aws-neuronx-k8-scheduler.x86\$164:** 2.25.24.0 (desde el 2.24.23.0)

**Notas de soporte:**
+ Los componentes de la AMI, incluidas las versiones de CUDA, se pueden eliminar o cambiar según la política de soporte del marco.
+ La versión del núcleo está anclada para garantizar la compatibilidad. Los usuarios deben evitar las actualizaciones a menos que sean necesarias para los parches de seguridad.
+ Para instancias de EC2 con varias tarjetas de red, consulte la guía de configuración de EFA para obtener una configuración adecuada.

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 7 de mayo de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250507"></a>

------
#### [ Installed the latest version of AWS Neuron SDK ]
+ **tensorflow-model-server-neuron.x86\$164** 2.8.0.2.3.0.0-0 neurona

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 28 de abril de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250428"></a>

**Mejoras de K8s**
+ Se ha actualizado el controlador NVIDIA de la versión 550.144.03 a la 550.163.01. Esta actualización tiene como objetivo abordar las vulnerabilidades y exposiciones comunes (CVEs) presentes en el [boletín de seguridad de las pantallas de las GPU de NVIDIA de abril de 2025](https://nvidia.custhelp.com/app/answers/detail/a_id/5630).

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

------
#### [ Installed the latest version of AWS Neuron SDK ]
+ **aws-neuronx-dkms.narch**: 2.20.28.0-dkms
+ **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
+ **aws-neuronx-tools.x86\$164:2.18.3.0-1**
+ **aws-neuron-dkms.march: 2.3.26.0-dms**
+ **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
+ **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
+ **aws-neuron-runtime.x86\$164:1.6.24.0-1**
+ **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
+ **aws-neuron-tools.x86\$164:2.1.4,0-1**
+ **aws-neuronx-collectives.x86\$164:2.24.59.0\$1838c7fc8b-1**
+ **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
+ **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.14.12.0-1
+ **aws-neuronx-gpsimd-tools.x86\$164:0.14.6.0\$1241eb69f4-1**
+ **aws-neuronx-k8-plugin.x86\$164:2.24.23.0-1**
+ **aws-neuronx-k8-scheduler.x86\$164**: 2.24.23.0-1
+ **aws-neuronx-runtime-lib.x86\$164:2.24.53.0\$1f239092cc-1**
+ **aws-neuronx-tools.x86\$164:2.22.61.0-1**
+ **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 18 de abril de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250418"></a>

**Actualizaciones generales de la AMI**
+ Nueva SageMaker HyperPod AMI para Amazon EKS 1.32.1.

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

 AMIs Entre ellas se incluyen las siguientes:

------
#### [ Deep Learning EKS AMI 1.32.1 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.32.1
  + Versión de Containerd: 1.7.27
  + Versión de Runc: 1.1.14
  + AWS Autenticador de IAM: 0.6.29
+ **Agente de Amazon SSM:** 3.3.1611.0 
+ **Núcleo de Linux:** 5.10.235
+ **Controlador con software de código abierto de NVIDIA:** 550.163.01
+ **NVIDIA CUDA:** 12.4
+ **Instalador de EFA:** 1.38.0
+ **GDRCopy:** 2.4.1-1
+ **Kit de herramientas de contenedor de NVIDIA**: 1.17.6
+ **AWS OFI NCCL**: 1.13.2
+ **aws-neuronx-tools: 2.18.3.0**
+ **aws-neuronx-runtime-lib: 2.24.53.0**
+ **aws-neuronx-oci-hook:** 2.4.4,0-1
+ **aws-neuronx-dkms:** 2.20.28.0
+ **aws-neuronx-collectives:** 2.24.59.0

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 18 de febrero de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250218"></a>

**Mejoras de K8s**
+ Se ha actualizado el kit de herramientas de contenedores de Nvidia de la versión 1.17.3 a la versión 1.17.4.
+ Se ha solucionado el problema por el que los clientes no podían conectarse a los nodos después de reiniciar.
+ Actualización de la versión del Elastic Fabric Adapter (EFA) de 1.37.0 a 1.38.0.
+ La EFA ahora incluye el complemento AWS OFI NCCL, que se encuentra en el `/opt/amazon/ofi-nccl` directorio en lugar de en la ruta original. `/opt/aws-ofi-nccl/` Si necesita actualizar la variable de entorno `LD_LIBRARY_PATH`, asegúrese de modificar la ruta para que apunte hacia la nueva ubicación `/opt/amazon/ofi-nccl` del complemento OFI NCCL.
+ Se ha eliminado el paquete emacs de estos. DLAMIs Puede instalar emacs desde emac GNU.

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

------
#### [ Installed the latest version of neuron SDK ]
+ **aws-neuronx-dkms.noarch**: 2.19.64.0-dkms @neuron
+ **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1 @neuron
+ **aws-neuronx-tools.x86\$164:** 2.18.3.0-1 @neuron
+ **aws-neuronx-collectives.x86\$164:** 2.23.135.0\$13e70920f2-1 neurona
+ **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1** neurona
+ **aws-neuronx-gpsimd-customop-lib.x86\$164**
+ **aws-neuronx-gpsimd-tools.x86\$164:0.13.2.0\$194ba34927-1 neurona**
+ **aws-neuronx-k8-plugin.x86\$164:** 2.23.45.0-1 neurona
+ **aws-neuronx-k8-scheduler.x86\$164:** 2.23.45.0-1 neurona
+ **aws-neuronx-runtime-lib.x86\$164:2.23.112.0\$19b5179492-1 neurona**
+ **aws-neuronx-tools.x86\$164:2.20.204.0-1** neurona
+ **tensorflow-model-server-neuronx.x86\$164**

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 22 de enero de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250122"></a>

**Actualizaciones generales de la AMI**
+ Nueva SageMaker HyperPod AMI para Amazon EKS 1.31.2.

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

 AMIs Entre ellas se incluyen las siguientes:

------
#### [ Deep Learning EKS AMI 1.31 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.31.2
  + Versión contenedora: 1.7.23
  + Versión de Runc: 1.1.14
  + AWS Autenticador de IAM: 0.6.26
+ **Agente de Amazon SSM: 3.3.987**
+ **Núcleo de Linux:** 5.10.230
+ **Controlador OSS Nvidia**: 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Instalador de EFA**: 1.37.0
+ **GDRCopy: 2.4.1-1**
+ Kit de **herramientas de contenedores Nvidia**: 1.17.3
+ AWS PARA NCCL: **1.13.0**
+ **aws-neuronx-tools: 2.18.3**
+ **aws-neuronx-runtime-lib: 2.23.112.0**
+ **aws-neuronx-oci-hook:** 2.4.4,0-1
+ **aws-neuronx-dkms:** 2.18.20.0
+ **aws-neuronx-collectives:** 2.23.1330

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 21 de diciembre de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241221"></a>

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

 AMIs Entre ellas se incluyen las siguientes:

------
#### [ K8s v1.28 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.28.15
  + Versión contenedora: 1.7.23
  + Versión de Runc: 1.1.14
  + AWS Autenticador de IAM: 0.6.26
+ **Agente de Amazon SSM: 3.3.987**
+ **Núcleo de Linux:** 5.10.228
+ **Controlador OSS NVIDIA**: 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Instalador de EFA**: 1.37.0
+ **GDRCopy: 2.4**
+ **Kit de herramientas de contenedores de NVIDIA: 1.17.3**
+ AWS PARA NCCL: **1.13.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib:** 2.23.112.0
+ **aws-neuronx-oci-hook:** 2.4.4,0-1
+ **aws-neuronx-dkms:** 2.18.20.0
+ **aws-neuronx-collectives:** 2.23.135.0

------
#### [ K8s v1.29 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.29.10
  + Versión contenedora: 1.7.23
  + Versión de Runc: 1.1.14
  + AWS Autenticador de IAM: 0.6.26
+ **Agente de Amazon SSM: 3.3.987**
+ Núcleo de **Linux**: 5.15.0
+ **Controlador OSS Nvidia**: 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Instalador de EFA**: 1.37.0
+ **GDRCopy: 2.4**
+ **Kit de herramientas de contenedores Nvidia: 1.17.3**
+ AWS PARA NCCL: **1.13.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib:** 2.23.112.0
+ **aws-neuronx-oci-hook:** 2.4.4,0-1
+ **aws-neuronx-dkms:** 2.18.20.0
+ **aws-neuronx-collectives:** 2.23.135.0

------
#### [ K8s v1.30 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.30.6
  + Versión contenedora: 1.7.23
  + Versión de Runc: 1.1.14
  + AWS Autenticador de IAM: 0.6.26
+ **Agente de Amazon SSM:** 3.3.987.0
+ **Núcleo de Linux:** 5.10.228
+ **Controlador OSS Nvidia**: 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Instalador de EFA**: 1.37.0
+ **GDRCopy: 2.4**
+ **Kit de herramientas de contenedores Nvidia: 1.17.3**
+ AWS PARA NCCL: **1.13.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib:** 2.23.112.0
+ **aws-neuronx-oci-hook:** 2.4.4,0-1
+ **aws-neuronx-dkms:** 2.18.20.0
+ **aws-neuronx-collectives:** 2.23.135.0

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 13 de diciembre de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241213"></a>

**SageMaker HyperPod Actualización de DLAMI para Amazon EKS**
+ Se ha actualizado el agente SSM a la versión `3.3.1311.0`.

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 24 de noviembre de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241124"></a>

**Actualizaciones generales de la AMI**
+ Publicado en la región `MEL` (Melbourne).
+ Se actualizó el DLAMI SageMaker HyperPod base a las siguientes versiones:
  + Kubernetes: 1/11/2024

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 15 de noviembre de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241115"></a>

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

 AMIs Entre ellas se incluyen las siguientes:

------
#### [ Deep Learning EKS AMI 1.28 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.28.15
  + Versión contenedora: 1.7.23
  + Versión de Runc: 1.1.14
  + AWS Autenticador de IAM: 0.6.26
+ **Agente de Amazon SSM: 3.3.987**
+ **Núcleo de Linux:** 5.10.228
+ **Controlador OSS NVIDIA**: 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Instalador de EFA**: 1.34.0
+ **GDRCopy: 2.4**
+ **Kit de herramientas de contenedores de NVIDIA: 1.17.3**
+ AWS PARA NCCL: **1.11.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib:** 2.22.19.0
+ **aws-neuronx-oci-hook:** 2.4.4,0-1
+ **aws-neuronx-dkms:** 2.18.20.0
+ **aws-neuronx-collectives:** 2.22.33.0

------
#### [ Deep Learning EKS AMI 1.29 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.29.10
  + Versión contenedora: 1.7.23
  + Versión de Runc: 1.1.14
  + AWS Autenticador de IAM: 0.6.26
+ **Agente de Amazon SSM: 3.3.987**
+ **Núcleo de Linux:** 5.10.228
+ **Controlador OSS Nvidia**: 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Instalador de EFA**: 1.34.0
+ **GDRCopy: 2.4**
+ **Kit de herramientas de contenedores Nvidia: 1.17.3**
+ AWS PARA NCCL: **1.11.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib:** 2.22.19.0
+ **aws-neuronx-oci-hook:** 2.4.4,0-1
+ **aws-neuronx-dkms:** 2.18.20.0
+ **aws-neuronx-collectives:** 2.22.33.0

------
#### [ Deep Learning EKS AMI 1.30 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.30.6
  + Versión contenedora: 1.7.23
  + Versión de Runc: 1.1.14
  + AWS Autenticador de IAM: 0.6.26
+ **Agente de Amazon SSM: 3.3.987**
+ **Núcleo de Linux:** 5.10.228
+ **Controlador OSS Nvidia**: 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Instalador de EFA**: 1.34.0
+ **GDRCopy: 2.4**
+ **Kit de herramientas de contenedores Nvidia: 1.17.3**
+ AWS PARA NCCL: **1.11.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib:** 2.22.19.0
+ **aws-neuronx-oci-hook:** 2.4.4,0-1
+ **aws-neuronx-dkms:** 2.18.20.0
+ **aws-neuronx-collectives:** 2.22.33.0

------

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 11 de noviembre de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241111"></a>

**Actualizaciones generales de la AMI**
+  SageMaker HyperPod DLAMI actualizado con las versiones 1.28.13, 1.29.8 y 1.30.4 de Amazon EKS.

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 21 de octubre de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241021"></a>

**Actualizaciones generales de la AMI**
+ Se actualizó el DLAMI SageMaker HyperPod base a las siguientes versiones:
  + Amazon EKS: 1.28.11, 1.29.6 y 1.30.2.

## SageMaker HyperPod Lanzamientos de AMI para Amazon EKS: 10 de septiembre de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20240910"></a>

**SageMaker HyperPod Compatibilidad con DLAMI para Amazon EKS**

 AMIs Entre ellas se incluyen las siguientes:

------
#### [ Deep Learning EKS AMI 1.28 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.28.11
  + Versión de Containerd: 1.7.20
  + Versión de Runc: 1.1.11
  + AWS Autenticador de IAM: 0.6.21
+ **Amazon SSM Agent:** 3.3.380
+ **Kernel de Linux:** 5.10.223
+ **Controlador con software de código abierto de NVIDIA:** 535.183.01
+ **NVIDIA CUDA:** 12.2
+ **Instalador de EFA:** 1.32.0
+ **GDRCopy:** 2.4
+ **Kit de herramientas de contenedor de NVIDIA**: 1.16.1
+ **AWS OFI NCCL**: 1.9.1
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib:** 2.21.41.0
+ **aws-neuronx-oci-hook:** 2.4.4.0-1
+ **aws-neuronx-dkms:** 2.17.17.0
+ **aws-neuronx-collectives:** 2.21.46.0

------
#### [ Deep Learning EKS AMI 1.29 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.29.6
  + Versión de Containerd: 1.7.20
  + Versión de Runc: 1.1.11
  + AWS Autenticador de IAM: 0.6.21
+ **Amazon SSM Agent:** 3.3.380
+ **Kernel de Linux:** 5.10.223
+ **Controlador con software de código abierto de NVIDIA:** 535.183.01
+ **NVIDIA CUDA:** 12.2
+ **Instalador de EFA:** 1.32.0
+ **GDRCopy:** 2.4
+ Kit de **herramientas de contenedor de NVIDIA**: 1.16.1
+ **AWS OFI NCCL**: 1.9.1
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib:** 2.21.41.0
+ **aws-neuronx-oci-hook:** 2.4.4.0-1
+ **aws-neuronx-dkms:** 2.17.17.0
+ **aws-neuronx-collectives:** 2.21.46.0

------
#### [ Deep Learning EKS AMI 1.30 ]
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes 1.30.2
  + Versión de Containerd: 1.7.20
  + Versión de Runc: 1.1.11
  + AWS Autenticador de IAM: 0.6.21
+ **Amazon SSM Agent:** 3.3.380
+ **Kernel de Linux:** 5.10.223
+ **Controlador con software de código abierto de NVIDIA:** 535.183.01
+ **NVIDIA CUDA:** 12.2
+ **Instalador de EFA:** 1.32.0
+ **GDRCopy:** 2.4
+ Kit de **herramientas de contenedor de NVIDIA**: 1.16.1
+ **AWS OFI NCCL**: 1.9.1
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib:** 2.21.41.0
+ **aws-neuronx-oci-hook:** 2.4.4.0-1
+ **aws-neuronx-dkms:** 2.17.17.0
+ **aws-neuronx-collectives:** 2.21.46.0

------

# Versiones de AMI públicas
<a name="sagemaker-hyperpod-release-public-ami"></a>

En las siguientes notas de la versión se hace un seguimiento de las últimas actualizaciones de las versiones SageMaker HyperPod públicas de AMI de Amazon para la orquestación de Amazon EKS. Cada nota de la versión incluye una lista resumida de los paquetes preinstalados o preconfigurados para el soporte de SageMaker HyperPod DLAMIs Amazon EKS. Cada DLAMI se basa AL2023 en una versión específica de Kubernetes y es compatible con ella. Para obtener información sobre las versiones de SageMaker HyperPod funciones de Amazon, consulte[Notas de SageMaker HyperPod lanzamiento de Amazon](sagemaker-hyperpod-release-notes.md).

Esta página se actualiza periódicamente para proporcionar información completa sobre la administración del ciclo de vida de las AMI, incluidas las vulnerabilidades de seguridad, los anuncios de obsolescencia y las recomendaciones de aplicación de parches. Como parte del compromiso de mantener la seguridad y la up-to-date infraestructura, la SageMaker IA monitorea continuamente a todos los HyperPod públicos AMIs para detectar vulnerabilidades críticas mediante flujos de trabajo de escaneo automatizados. Cuando se identifican problemas de seguridad críticos, AMIs quedan obsoletos de forma sistemática con las directrices de migración adecuadas. Las actualizaciones periódicas incluyen el estado de remediación de vulnerabilidades y exposiciones comunes (CVE), los hallazgos de cumplimiento y las acciones recomendadas para garantizar que pueda mantener los HyperPod entornos seguros y, al mismo tiempo, minimizar las interrupciones operativas durante las transiciones de la AMI.

## SageMaker HyperPod lanzamientos públicos de AMI: 4 de agosto de 2025
<a name="sagemaker-hyperpod-release-public-ami-2025-08-04"></a>

Amazon SageMaker HyperPod ahora admite nuevos clústeres públicos AMIs de Amazon EKS. AMIs Entre ellos se incluyen los siguientes:

------
#### [ K8s v1.32 ]

Nombre de AMI: HyperPod EKS 1.32 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.32.3
  + Versión contenedora: 1.7.23
  + Versión Runc: 1.2.6
  + AWS Autenticador de IAM: 0.6.29
+ **Agente de Amazon SSM:** 3.3.2299.0
+ **Núcleo de Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Controlador OSS NVIDIA: 550.163.01**
+ **NVIDIA CUDA:** 12.2
+ **Instalador de EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **Kit de herramientas de contenedores NVIDIA**: 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.narch: 2.22.2.0-dkms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.17.1.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.17.0.0\$1aacc27699-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.27.7.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:2.25.145.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------
#### [ K8s v1.30 ]

Nombre de AMI: HyperPod EKS 1.30 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.30.11
  + Versión de Containerd: 1.7.\$1
  + Versión Runc: 1.2.6
  + AWS Autenticador de IAM: 0.6.28
+ **Agente de Amazon SSM:** 3.3.2299.0
+ **Núcleo de Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Controlador OSS NVIDIA: 550.163.01**
+ **NVIDIA CUDA:** 12.2
+ **Instalador de EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **Kit de herramientas de contenedores NVIDIA**: 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.narch: 2.22.2.0-dkms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.17.1.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.17.0.0\$1aacc27699-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.27.7.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:2.25.145.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------
#### [ K8s v1.31 ]

Nombre de AMI: HyperPod EKS 1.31 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.31.7
  + Versión de Containerd: 1.7.\$1
  + Versión Runc: 1.2.6
  + AWS Autenticador de IAM: 0.6.28
+ **Agente de Amazon SSM:** 3.3.2299.0
+ **Núcleo de Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Controlador OSS NVIDIA: 550.163.01**
+ **NVIDIA CUDA:** 12.2
+ **Instalador de EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **Kit de herramientas de contenedores NVIDIA**: 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.narch: 2.22.2.0-dkms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.17.1.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.17.0.0\$1aacc27699-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.27.7.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:2.25.145.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------
#### [ K8s v1.29 ]

Nombre de AMI: HyperPod EKS 1.29 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.29.15
  + Versión de Containerd: 1.7.\$1
  + Versión Runc: 1.2.6
  + AWS Autenticador de IAM: 0.6.28
+ **Agente de Amazon SSM:** 3.3.2299.0
+ **Núcleo de Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Controlador OSS NVIDIA: 550.163.01**
+ **NVIDIA CUDA:** 12.2
+ **Instalador de EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **Kit de herramientas de contenedores NVIDIA**: 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.narch: 2.22.2.0-dkms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.17.1.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.17.0.0\$1aacc27699-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.27.7.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:2.25.145.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------
#### [ K8s v1.28 ]

Nombre de AMI: HyperPod EKS 1.28 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes de Amazon EKS**
  + Versión de Kubernetes: 1.28.15
  + Versión de Containerd: 1.7.\$1
  + Versión Runc: 1.2.6
  + AWS Autenticador de IAM: 0.6.28
+ **Agente de Amazon SSM:** 3.3.2299.0
+ **Núcleo de Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Controlador OSS NVIDIA: 550.163.01**
+ **NVIDIA CUDA:** 12.2
+ **Instalador de EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **Kit de herramientas de contenedores NVIDIA**: 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Paquetes de Neuron:**
  + **aws-neuronx-dkms.narch: 2.22.2.0-dkms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:2.18.3.0-1**
  + **aws-neuron-dkms.march: 2.3.26.0-dms**
  + **aws-neuron-k8-plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164:1.6.24.0-1**
  + **aws-neuron-runtime-base.x86\$164:** 1.6.21.0-1
  + **aws-neuron-tools.x86\$164:2.1.4,0-1**
  + **aws-neuronx-collectives.x86\$164:2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.17.1.0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0.17.0.0\$1aacc27699-1**
  + **aws-neuronx-k8-plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2.27.7.0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:2.25.145.0-1**
  + **tensorflow-model-server-neuron.x86\$164:2.8.0.2.3.0.0-0**
  + **tensorflow-model-server-neuronx.x86\$164:2.10.1.2.12.2.0-0**

------

# La IA generativa en entornos de ordenadores portátiles SageMaker
<a name="jupyterai"></a>

[Jupyter AI](https://github.com/jupyterlab/jupyter-ai) es una extensión de código abierto que permite JupyterLab integrar capacidades de IA generativa en los cuadernos de Jupyter. Mediante la interfaz del chat de Jupyter AI y los comandos mágicos, los usuarios experimentan con el código generado a partir de instrucciones en lenguaje natural, explican el código existente, formulan preguntas sobre los archivos locales, generan cuadernos completos y mucho más. La extensión conecta los cuadernos de Jupyter con modelos de lenguaje de gran tamaño (LLMs) que los usuarios pueden usar para generar texto, código o imágenes y para hacer preguntas sobre sus propios datos. Jupyter AI es compatible con proveedores de modelos generativos como Anthropic ( AWS y JumpStart Amazon Bedrock) AI21, Cohere y OpenAI.

También puede usar Amazon Q Developer como una solución lista para usar. En lugar de tener que configurar manualmente una conexión a un modelo, puede empezar a utilizar Amazon Q Developer con una configuración mínima. Al habilitar Amazon Q Developer, se convierte en el proveedor de soluciones predeterminado en Jupyter AI. Para obtener más información sobre cómo utilizar Amazon Q Developer, consulte [SageMaker JupyterLab](studio-updated-jl.md).

El paquete de la extensión está incluido en la [versión 1.2 y posteriores](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v1) de [Amazon SageMaker Distribution](https://github.com/aws/sagemaker-distribution). Amazon SageMaker Distribution es un entorno Docker para la ciencia de datos y la computación científica que se utiliza como imagen predeterminada de las instancias de JupyterLab notebook. Los usuarios de diferentes IPython entornos pueden instalar Jupyter AI manualmente.

En esta sección, ofrecemos una descripción general de las capacidades de IA de Jupyter y demostramos cómo configurar los modelos proporcionados por JumpStart Amazon Bedrock desde nuestros portátiles [Studio [JupyterLab](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl.html)](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)Classic. Para obtener más información sobre el proyecto de Jupyter AI, consulte su [documentación](https://jupyter-ai.readthedocs.io/en/latest/). También puede consultar la publicación del blog *[Generative AI in Jupyter](https://blog.jupyter.org/generative-ai-in-jupyter-3f7174824862)* para obtener información general y ejemplos de las capacidades clave de Jupyter AI.

Antes de utilizar la IA de Jupyter e interactuar con los suyos LLMs, asegúrese de cumplir los siguientes requisitos previos:
+ En el caso de los modelos alojados por AWS, debe tener el ARN de su punto de conexión de SageMaker IA o tener acceso a Amazon Bedrock. En el caso de otros proveedores de modelos, debe utilizar la clave de API para autenticar y autorizar las solicitudes al modelo. Jupyter AI es compatible con una amplia gama de proveedores de modelos y modelos de lenguaje. Consulte la lista de los [modelos compatibles](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) para mantenerse actualizado sobre los últimos modelos disponibles. Para obtener información sobre cómo implementar un modelo en JumpStart, consulte [Implementación de un modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-deploy.html) en la JumpStart documentación. Debe solicitar acceso a [Amazon Bedrock](https://aws.amazon.com/bedrock/) para usarlo como proveedor de modelos.
+ Asegúrese de que las bibliotecas de Jupyter AI estén presentes en el entorno. De no ser así, instale el paquete necesario siguiendo las instrucciones que se indican en [Instalación de Jupyter AI](sagemaker-jupyterai-installation.md).
+ Familiarícese con las capacidades de Jupyter AI en [Acceso a las características de Jupyter AI](sagemaker-jupyterai-overview.md).
+ Configure los modelos de destino que desee utilizar siguiendo las instrucciones que se indican en [Configuración del proveedor de modelos](sagemaker-jupyterai-model-configuration.md).

Tras completar los pasos de requisitos previos, puede continuar con [Utilice Jupyter AI en nuestro Studio Classic JupyterLab](sagemaker-jupyterai-use.md).

**Topics**
+ [Instalación de Jupyter AI](sagemaker-jupyterai-installation.md)
+ [Acceso a las características de Jupyter AI](sagemaker-jupyterai-overview.md)
+ [Configuración del proveedor de modelos](sagemaker-jupyterai-model-configuration.md)
+ [Utilice Jupyter AI en nuestro Studio Classic JupyterLab](sagemaker-jupyterai-use.md)

# Instalación de Jupyter AI
<a name="sagemaker-jupyterai-installation"></a>

Para usar Jupyter AI, primero debe instalar el paquete de Jupyter AI. Para los usuarios de [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v1), recomendamos seleccionar la versión 1.2 o posterior de la imagen de SageMaker distribución. No hay que instalar nada más. Los usuarios de JupyterLab in Studio pueden elegir la versión de su Amazon SageMaker Distribution al crear un espacio.

Para los usuarios de otros IPython entornos, la versión del paquete Jupyter AI recomendado depende de la versión JupyterLab que estén utilizando.

La distribución de Jupyter AI consta de dos paquetes.
+ `jupyter_ai`: Este paquete proporciona una JupyterLab extensión y una interfaz de usuario (UI) de chat nativa. Actúa como un asistente de conversación mediante el modelo de lenguaje grande que elija.
+ `jupyter_ai_magics`: Este paquete proporciona los comandos `%ai` mágicos IPython `%%ai` y mágicos con los que puede invocar un modelo de lenguaje grande (LLM) desde las celdas de su cuaderno.

**nota**  
Al instalar `jupyter_ai`, también se instalará `jupyter_ai_magics`. Sin embargo, puede instalarlo de `jupyter_ai_magics` forma independiente sin JupyterLab o. `jupyter_ai` Los comandos `%%ai` mágicos `%ai` funcionan en cualquier entorno de IPython kernel. Si solo instala `jupyter_ai_magics`, no podrá utilizar la interfaz de usuario del chat.

Para los usuarios de JupyterLab 3, en particular los usuarios de Studio Classic, recomendamos instalar la `jupyter-ai` [versión 1.5.x](https://pypi.org/project/jupyter-ai/#history) o cualquier versión 1.x posterior. Sin embargo, recomendamos encarecidamente utilizar Jupyter AI con la versión 4. JupyterLab Es posible que la `jupyter-ai` versión compatible con JupyterLab 3 no permita a los usuarios configurar parámetros adicionales del modelo, como la temperatura, el muestreo top-k y top-p, el número máximo de fichas o la longitud máxima, o los acuerdos de licencia de aceptación por parte del usuario.

Para los usuarios de JupyterLab 4 entornos que no utilizan SageMaker Distribution, recomendamos instalar la `jupyter-ai` [versión 2.5.x o cualquier versión 2.x](https://pypi.org/project/jupyter-ai/#history) posterior.

Consulte las instrucciones de instalación de la sección *Instalación* de la [documentación de Jupyter AI](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#installation-via-pip).

# Acceso a las características de Jupyter AI
<a name="sagemaker-jupyterai-overview"></a>

Puede acceder a las características de Jupyter AI a través de dos métodos distintos: mediante la interfaz del chat o mediante comandos mágicos en los cuadernos.

## A partir del asistente de IA de interfaz de usuario del chat
<a name="sagemaker-jupyterai-overview-chatui"></a>

La interfaz del chat le conecta con Jupyternaut, un agente de conversación que utiliza el modelo de lenguaje que elija. 

Tras iniciar una JupyterLab aplicación instalada con Jupyter AI, puede acceder a la interfaz de chat seleccionando el icono de chat (![\[Icon of a rectangular shape with a curved arrow pointing to the upper right corner.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-chat-ui.png)) en el panel de navegación izquierdo. A los usuarios principiantes se les pide que configuren el modelo. Consulte [Configuración del proveedor de modelos en la interfaz de usuario del chat](sagemaker-jupyterai-model-configuration.md#sagemaker-jupyterai-model-configuration-chatui) para obtener instrucciones sobre la configuración.

**Al utilizar la interfaz de usuario del chat, podrá:**
+ **Responder a las preguntas**: por ejemplo, puede pedir a Jupyternaut que cree una función de Python que añada archivos CSV a un bucket de Amazon S3. Posteriormente, puede perfeccionar la respuesta con una pregunta de seguimiento, como, por ejemplo, añadir un parámetro a la función para elegir la ruta en la que se escriben los archivos. 
+ **Interactúa con los archivos en JupyterLab**: puedes incluir una parte de tu bloc de notas en tu mensaje seleccionándola. A continuación, puede sustituirla por la respuesta sugerida por el modelo o copiarla manualmente en el portapapeles.
+ **Generar cuadernos completos** a partir de peticiones: al empezar la petición con `/generate`, se desencadenará un proceso de generación de cuadernos en segundo plano sin interrumpir el uso de Jupyternaut. Al finalizar el proceso, aparecerá un mensaje con el enlace al nuevo archivo.
+ **Aprender a partir de los archivos locales y formular preguntas sobre ellos**: con el comando `/learn`, puede enseñar al modelo de incrustación que elija sobre los archivos locales y, a continuación, formular preguntas sobre esos archivos mediante el comando `/ask`. Jupyter AI almacena el contenido incrustado en una [base de datos vectorial de FAISS](https://github.com/facebookresearch/faiss) local y, a continuación, utiliza la generación aumentada por recuperación (RAG) para proporcionar respuestas basadas en lo que ha aprendido. Para borrar toda la información previamente aprendida del modelo de incrustación, utilice `/learn -d`.

**nota**  
Amazon Q developer no tiene la capacidad de generar cuadernos desde cero.

Para obtener una lista completa de características e instrucciones detalladas sobre su uso, consulte la documentación sobre la [interfaz del chat de Jupyter AI](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#the-chat-interface). Para obtener más información sobre cómo configurar el acceso a un modelo en Jupyternaut, consulte [Configuración del proveedor de modelos en la interfaz de usuario del chat](sagemaker-jupyterai-model-configuration.md#sagemaker-jupyterai-model-configuration-chatui).

## A partir de las celdas del cuaderno
<a name="sagemaker-jupyterai-overview-magic-commands"></a>

Mediante `%%ai` comandos `%ai` mágicos, puede interactuar con el modelo de lenguaje que prefiera desde las celdas de su cuaderno o desde cualquier interfaz de línea de IPython comandos. El comando `%%ai` aplica las instrucciones a toda la celda, mientras que `%ai` las aplica a la línea específica.

En el siguiente ejemplo se muestra un comando mágico `%%ai` que invoca un modelo de Anthropic Claude para generar un archivo HTML que incluya la imagen de un cuadrado blanco con bordes negro.

```
%%ai anthropic:claude-v1.2 -f html
Create a square using SVG with a black border and white fill.
```

Para obtener más información sobre la sintaxis de cada comando, utilice `%ai help`. Para ver una lista de los proveedores y modelos compatibles con la extensión, ejecute `%ai list`.

Para obtener una lista completa de características e instrucciones detalladas sobre su uso, consulte la documentación sobre los [comandos mágicos](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#the-ai-and-ai-magic-commands) de Jupyter AI. En concreto, puede personalizar el formato de salida del modelo mediante el parámetro `-f` o `--format`, permitir la interpolación de variables en las peticiones, incluidas las variables especiales `In` y `Out`, etc.

Para obtener más información sobre cómo configurar el acceso a un modelo, consulte [Configuración del proveedor de modelos en un cuaderno](sagemaker-jupyterai-model-configuration.md#sagemaker-jupyterai-model-configuration-magic-commands). 

# Configuración del proveedor de modelos
<a name="sagemaker-jupyterai-model-configuration"></a>

**nota**  
En esta sección se da por hecho que el lenguaje y los modelos de incrustación que tiene previsto usar ya están implementados. En el caso de los modelos proporcionados por AWS, ya debe tener el ARN de su punto de conexión de SageMaker IA o acceso a Amazon Bedrock. En el caso de otros proveedores de modelos, debe utilizar la clave de API para autenticar y autorizar las solicitudes al modelo.  
Jupyter AI es compatible con una amplia gama de proveedores de modelos y modelos de lenguaje. Consulte la lista de los [modelos compatibles](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) para mantenerse actualizado sobre los últimos modelos disponibles. Para obtener información sobre cómo implementar un modelo proporcionado por JumpStart, consulte [Implementación de un modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-deploy.html) en la JumpStart documentación. Debe solicitar acceso a [Amazon Bedrock](https://aws.amazon.com/bedrock/) para usarlo como proveedor de modelos.

La configuración de Jupyter AI varía en función de si se utiliza la interfaz de usuario del chat o los comandos mágicos.

## Configuración del proveedor de modelos en la interfaz de usuario del chat
<a name="sagemaker-jupyterai-model-configuration-chatui"></a>

**nota**  
Puede configurar varios modelos LLMs e incrustarlos siguiendo las mismas instrucciones. Sin embargo, debe configurar al menos un **modelo de lenguaje**.

**Configuración de la interfaz de usuario del chat**

1. En JupyterLab, accede a la interfaz de chat seleccionando el icono de chat (![\[Icon of a rectangular shape with a curved arrow pointing to the upper right corner.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-chat-ui.png)) en el panel de navegación izquierdo.

1. Elija el icono de configuración (![\[Gear or cog icon representing settings or configuration options.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-configure-models.png)) de la esquina superior derecha del panel izquierdo. Se abrirá el panel de configuración de Jupyter AI.

1. Complete los campos relacionados con el proveedor de servicios.
   + **Para modelos proporcionados por JumpStart Amazon Bedrock**
     + En la lista desplegable de **modelos de lenguaje**, seleccione `sagemaker-endpoint` los modelos implementados con Amazon Bedrock JumpStart o `bedrock` los modelos gestionados por Amazon Bedrock.
     + Los parámetros varían en función de si el modelo se implementa en SageMaker AI o en Amazon Bedrock.
       + Para los modelos implementados con JumpStart:
         + Introduzca el nombre de su terminal en Nombre del **terminal y, a continuación, el nombre** Región de AWS en el que está desplegado el modelo en el [**nombre de la región**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-region-name). Para recuperar el ARN de los puntos finales de la SageMaker IA, navegue hasta los puntos finales y, a continuación, seleccione **Inferencia [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)** y **puntos finales** en el menú de la izquierda.
         + Pegue el valor de JSON del [**Esquema de solicitud**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-request-schema) adaptado al modelo, así como la [**Ruta de respuesta**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-response-path) correspondiente para analizar el resultado del modelo.
**nota**  
[Puede encontrar el formato de solicitud y respuesta de varios modelos básicos en los siguientes JumpStart cuadernos de ejemplo.](https://github.com/aws/amazon-sagemaker-examples/tree/main/introduction_to_amazon_algorithms/jumpstart-foundation-models) Cada cuaderno lleva el nombre del modelo que muestra.
       + Para los modelos gestionados por Amazon Bedrock: añada el AWS perfil que almacena sus AWS credenciales en el sistema (opcional) y, a continuación, el perfil Región de AWS en el que se implementa el modelo en el [**nombre de la región**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-region-name).
     + (Opcional) Seleccione un [modelo de incrustación](sagemaker-jupyterai-overview.md#sagemaker-jupyterai-embedding-model) al que tenga acceso. Los modelos de incrustación se utilizan para capturar información adicional de los documentos locales, lo que permite que el modelo de generación de texto responda a preguntas dentro del contexto de esos documentos.
     + Seleccione **Guardar cambios** y diríjase al icono de flecha izquierda (![\[Left-pointing arrow icon, typically used for navigation or returning to a previous page.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-return-to-chat.png)) en la esquina superior izquierda del panel de la izquierda. Se abrirá la interfaz del chat de Jupyter AI. Puede empezar a interactuar con el modelo.
   + **En el caso de modelos alojados por proveedores externos**
     + En la lista desplegable **Modelo de lenguaje**, seleccione el ID de proveedor. Puede encontrar los detalles de cada proveedor, incluido el ID, en la [lista de proveedores de modelos](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) de Jupyter AI.
     + (Opcional) Seleccione un [modelo de incrustación](sagemaker-jupyterai-overview.md#sagemaker-jupyterai-embedding-model) al que tenga acceso. Los modelos de incrustación se utilizan para capturar información adicional de los documentos locales, lo que permite que el modelo de generación de texto responda a preguntas dentro del contexto de esos documentos.
     + Inserte las claves de API de los modelos.
     + Seleccione **Guardar cambios** y diríjase al icono de flecha izquierda (![\[Left-pointing arrow icon, typically used for navigation or returning to a previous page.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-return-to-chat.png)) en la esquina superior izquierda del panel de la izquierda. Se abrirá la interfaz del chat de Jupyter AI. Puede empezar a interactuar con el modelo.

La siguiente instantánea ilustra el panel de configuración de la interfaz de usuario del chat configurado para invocar un modelo FLAN-T5-Small proporcionado por IA e implementado en ella. JumpStart SageMaker 

![\[El panel de configuración de la interfaz de usuario de chat está configurado para invocar un modelo FLAN-T5-Small proporcionado por. JumpStart\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/jupyterai/jupyterai-chatui-configuration.png)


### Transferencia de parámetros de modelo adicionales y parámetros personalizados según la solicitud
<a name="sagemaker-jupyterai-configuration-model-parameters"></a>

Es posible que el modelo necesite parámetros adicionales, como, por ejemplo, un atributo personalizado para la aprobación del acuerdo de usuario o ajustes en otros parámetros del modelo, como, por ejemplo, la temperatura o la longitud de respuesta. Recomendamos configurar estos ajustes como una opción de inicio de la JupyterLab aplicación mediante una configuración de ciclo de vida. Para obtener información sobre cómo crear una configuración de ciclo de vida y adjuntarla a su dominio o a un perfil de usuario desde la [consola de SageMaker IA](https://console.aws.amazon.com/sagemaker/), consulte [Crear y asociar una configuración de ciclo](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html) de vida. Puedes elegir tu script de LCC al crear un espacio para tu JupyterLab aplicación.

Utilice el siguiente esquema de JSON para configurar los [parámetros adicionales](sagemaker-jupyterai-use.md#sagemaker-jupyterai-extra-model-params):

```
{
  "AiExtension": {
    "model_parameters": {
      "<provider_id>:<model_id>": { Dictionary of model parameters which is unpacked and passed as-is to the provider.}
      }
    }
  }
}
```

El siguiente script es un ejemplo de un archivo de configuración JSON que puede usar al crear una LCC de JupyterLab aplicaciones para establecer la longitud máxima de un modelo [Jurassic-2 de AI21 Labs implementado](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-jurassic2.html) en Amazon Bedrock. Al aumentar la longitud de la respuesta generada por el modelo, se puede evitar el truncamiento sistemático de la respuesta del modelo.

```
#!/bin/bash
set -eux

mkdir -p /home/sagemaker-user/.jupyter

json='{"AiExtension": {"model_parameters": {"bedrock:ai21.j2-mid-v1": {"model_kwargs": {"maxTokens": 200}}}}}'
# equivalent to %%ai bedrock:ai21.j2-mid-v1 -m {"model_kwargs":{"maxTokens":200}}

# File path
file_path="/home/sagemaker-user/.jupyter/jupyter_jupyter_ai_config.json"

#jupyter --paths

# Write JSON to file
echo "$json" > "$file_path"

# Confirmation message
echo "JSON written to $file_path"

restart-jupyter-server

# Waiting for 30 seconds to make sure the Jupyter Server is up and running
sleep 30
```

El siguiente script es un ejemplo de un archivo de configuración JSON para crear una JupyterLab aplicación LCC que se utiliza para establecer parámetros de modelo adicionales para un [modelo Anthropic Claude](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-claude.html) implementado en Amazon Bedrock.

```
#!/bin/bash
set -eux

mkdir -p /home/sagemaker-user/.jupyter

json='{"AiExtension": {"model_parameters": {"bedrock:anthropic.claude-v2":{"model_kwargs":{"temperature":0.1,"top_p":0.5,"top_k":25
0,"max_tokens_to_sample":2}}}}}'
# equivalent to %%ai bedrock:anthropic.claude-v2 -m {"model_kwargs":{"temperature":0.1,"top_p":0.5,"top_k":250,"max_tokens_to_sample":2000}}

# File path
file_path="/home/sagemaker-user/.jupyter/jupyter_jupyter_ai_config.json"

#jupyter --paths

# Write JSON to file
echo "$json" > "$file_path"

# Confirmation message
echo "JSON written to $file_path"

restart-jupyter-server

# Waiting for 30 seconds to make sure the Jupyter Server is up and running
sleep 30
```

Una vez que haya adjuntado su LCC a su dominio o perfil de usuario, añada su LCC a su espacio al lanzar la aplicación. JupyterLab Para garantizar que la LCC actualice el archivo de configuración, ejecute `more ~/.jupyter/jupyter_jupyter_ai_config.json` en un terminal. El contenido del archivo debe corresponder al contenido del archivo de JSON transferido a la LCC.

## Configuración del proveedor de modelos en un cuaderno
<a name="sagemaker-jupyterai-model-configuration-magic-commands"></a>

**Para invocar un modelo mediante la IA de Jupyter en nuestras libretas Studio Classic JupyterLab usando los comandos y mágicos `%%ai` `%ai`**

1. Instale las bibliotecas cliente específicas del proveedor de modelos en el entorno del cuaderno. Por ejemplo, al utilizar los modelos de OpenAI, es necesario instalar la biblioteca cliente de `openai`. Puede encontrar la lista de bibliotecas cliente necesarias por proveedor en la columna *Paquetes de Python* de la [lista de proveedores de modelos](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) de Jupyter AI.
**nota**  
En el caso de los modelos alojados por AWS, ya `boto3` está instalado en la imagen de SageMaker AI Distribution utilizada por JupyterLab Studio Classic o en cualquier imagen de ciencia de datos utilizada con Studio Classic.

1. 
   + **Para los modelos alojados por AWS**

     Asegúrese de que su función de ejecución tenga permiso para invocar su punto final de SageMaker IA para los modelos proporcionados por Amazon Bedrock JumpStart o de que usted tenga acceso a ellos.
   + **En el caso de modelos alojados por proveedores externos**

     Exporte la clave de la API del proveedor al entorno de cuaderno mediante las variables del entorno. Puede utilizar el siguiente comando mágico. Sustituya la `provider_API_key` del comando por la variable de entorno que se encuentra en la columna *Variable de entorno* de la [lista de proveedores de modelos](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) de Jupyter AI correspondiente al proveedor.

     ```
     %env provider_API_key=your_API_key
     ```

# Utilice Jupyter AI en nuestro Studio Classic JupyterLab
<a name="sagemaker-jupyterai-use"></a>

Puedes usar Jupyter AI en Studio Classic JupyterLab o en Studio Classic invocando modelos de lenguaje desde la interfaz de usuario del chat o desde las celdas del cuaderno. En las siguientes secciones se proporciona información sobre los pasos necesarios para completar esta operación.

## Uso de modelos de lenguaje a partir de la interfaz de usuario del chat
<a name="sagemaker-jupyterai-use-chatui"></a>

Redacte un mensaje en el cuadro de texto de la interfaz de usuario del chat para empezar a interactuar con el modelo. Para borrar el historial de mensajes, utilice el comando `/clear`.

**nota**  
Al borrar el historial de mensajes, no se borrará el contexto del chat con el proveedor del modelo.

## Uso de modelos de lenguaje a partir de las celdas del cuaderno
<a name="sagemaker-jupyterai-use-magic-commands"></a>

Antes de usar los `%ai` comandos `%%ai` y para invocar un modelo de lenguaje, carga la IPython extensión ejecutando el siguiente comando en una celda de un cuaderno JupyterLab o de Studio Classic.

```
%load_ext jupyter_ai_magics
```
+ **Para los modelos alojados por AWS:**
  + Para invocar un modelo implementado en la SageMaker IA, pasa la cadena `sagemaker-endpoint:endpoint-name` al comando `%%ai` mágico con los parámetros necesarios que aparecen a continuación y, a continuación, añade tu mensaje en las siguientes líneas.

    En la siguiente tabla se enumeran los parámetros obligatorios y opcionales al invocar modelos alojados por SageMaker AI o Amazon Bedrock.<a name="sagemaker-jupyterai-jumpstart-inference-params"></a>    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-jupyterai-use.html)

    El siguiente comando invoca un modelo [LLAMA2-7b](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html) hospedado por AI. SageMaker 

    ```
    %%ai sagemaker-endpoint:jumpstart-dft-meta-textgeneration-llama-2-7b -q {"inputs":"<prompt>","parameters":{"max_new_tokens":64,"top_p":0.9,"temperature":0.6,"return_full_text":false}} -n us-east-2 -p [0].generation -m {"endpoint_kwargs":{"CustomAttributes":"accept_eula=true"}} -f text
    Translate English to French:
    sea otter => loutre de mer
    peppermint => menthe poivrée
    plush girafe => girafe peluche
    cheese =>
    ```

    El siguiente ejemplo invoca un modelo FLAN-T5-small hospedado por AI. SageMaker 

    ```
    %%ai sagemaker-endpoint:hf-text2text-flan-t5-small --request-schema={"inputs":"<prompt>","parameters":{"num_return_sequences":4}} --region-name=us-west-2 --response-path=[0]["generated_text"] -f text
    What is the atomic number of Hydrogen?
    ```
  + Para invocar un modelo implementado en Amazon Bedrock, pase la cadena `bedrock:model-name` al comando `%%ai` mágico con cualquier parámetro opcional definido en la lista de [parámetros para invocar modelos alojados en JumpStart Amazon Bedrock](#sagemaker-jupyterai-jumpstart-inference-params) y, a continuación, añada su mensaje en las siguientes líneas.

    El siguiente ejemplo invoca un modelo [Jurassic-2 de AI21 Labs hospedado](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-jurassic2.html) en Amazon Bedrock.

    ```
    %%ai bedrock:ai21.j2-mid-v1 -m {"model_kwargs":{"maxTokens":256}} -f code
    Write a function in python implementing a bubbble sort.
    ```
+ **En el caso de modelos alojados por proveedores externos**

  Para invocar un modelo alojado por proveedores externos, transfiera la cadena `provider-id:model-name` al comando mágico `%%ai` con un [`Output format`](#sagemaker-jupyterai-output-format-params) opcional y, a continuación, añada la petición en las siguientes líneas. Puede encontrar los detalles de cada proveedor, incluido el ID, en la [lista de proveedores de modelos](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) de Jupyter AI.

  El siguiente comando pide a un modelo de Anthropic Claude que genere un archivo HTML con la imagen de un cuadrado blanco con bordes negros.

  ```
  %%ai anthropic:claude-v1.2 -f html
  Create a square using SVG with a black border and white fill.
  ```

# Amazon Q Developer
<a name="studio-updated-amazon-q"></a>

Amazon Q Developer es un asistente conversacional de IA generativa que le ayuda a escribir mejor código. Amazon Q Developer está disponible de la siguiente IDEs manera en Amazon SageMaker Studio:
+ JupyterLab
+ Editor de código, basado en Code-OSS, Visual Studio Code: Open Source

Utilice las siguientes secciones para configurar Amazon Q Developer y utilizarlo en su entorno.

**Topics**
+ [Configuración de Amazon Q Developer para sus usuarios](studio-updated-amazon-q-admin-guide-set-up.md)
+ [Uso de Amazon Q para agilizar sus flujos de trabajo de machine learning](studio-updated-user-guide-use-amazon-q.md)
+ [Personalice Amazon Q Developer en las aplicaciones de Amazon SageMaker Studio](q-customizations.md)

# Configuración de Amazon Q Developer para sus usuarios
<a name="studio-updated-amazon-q-admin-guide-set-up"></a>

Amazon Q Developer es un asistente conversacional de IA generativa. Puede configurar Amazon Q Developer en un dominio nuevo o en uno existente. Use la siguiente información para configurar Amazon Q Developer.

Con Amazon Q Developer, sus usuarios pueden:
+ Reciba step-by-step orientación sobre el uso de las funciones de SageMaker IA de forma independiente o en combinación con otros AWS servicios.
+ Obtenga un código de muestra para comenzar con sus tareas de aprendizaje automático, como la preparación de datos, la capacitación, la inferencia y MLOps.
+ Recibir asistencia para solucionar problemas a fin de depurar y resolver los errores detectados al ejecutar el código.

**nota**  
Amazon Q Developer en Studio no utiliza contenido de los usuarios para mejorar el servicio, independientemente de si se utiliza la suscripción de nivel gratuito o de nivel Pro. Para compartir telemetría del IDE, Amazon Q podría realizar un seguimiento del uso que hacen los usuarios, por ejemplo, del número de preguntas formuladas y de si las recomendaciones se aceptaron o rechazaron. Estos datos de telemetría no incluyen información de identificación personal, como la dirección IP de los usuarios. Para obtener más información sobre la protección de datos y las instrucciones para darse de baja, consulte [Opt out of data sharing in the IDE](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/opt-out-IDE.html).

Puede configurar Amazon Q Developer con una suscripción de nivel gratuito o Pro. El nivel Pro es un servicio de suscripción de pago con límites de uso más altos y otras características. Para obtener más información sobre las diferencias entre los niveles, consulte [Understanding tiers of service for Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-tiers.html).

Para obtener información sobre la suscripción a Amazon Q Developer Pro, consulte [Subscribing to Amazon Q Developer Pro](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-admin-setup-subscribe-general.html).

## Instrucciones de configuración del nivel gratuito de Amazon Q Developer:
<a name="studio-updated-amazon-q-developer-free-tier-set-up"></a>

Para configurar el Nivel gratuito de Amazon Q Developer, utilice el siguiente procedimiento:

**Configuración del nivel gratuito de Amazon Q Developer**

1. Añada la siguiente política a la función de IAM que utilizó para crear su espacio JupyterLab o el de editor de código:

------
#### [ JSON ]

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Effect": "Allow",
   			"Action": [
   				"q:SendMessage"
   			],
   			"Resource": [
   				"*"
   			]
   		},
   		{
   			"Sid": "AmazonQDeveloperPermissions",
   			"Effect": "Allow",
   			"Action": [
   				"codewhisperer:GenerateRecommendations"
   			],
   			"Resource": "*"
   		}
   	]
   }
   ```

------

1. Ve a Amazon SageMaker Studio.

1. Abre tu espacio JupyterLab o el de Code Editor.

1. Vaya a **Lanzador** y seleccione **Terminal**.

1. En JupyterLab, haga lo siguiente:

   1. Especifique `restart-jupyter-server`.

   1. Reinicia el navegador y vuelve a Amazon SageMaker Studio.

## Instrucciones de configuración del nivel Pro de Amazon Q Developer Pro:
<a name="studio-updated-amazon-q-developer-pro-set-up"></a>

**Requisitos previos**  
Para configurar Amazon Q Pro, debe tener:  
Un dominio de Amazon SageMaker AI configurado para su organización con el centro de identidad de IAM configurado como medio de acceso.
Administración de suscripciones de Amazon Q Developer Pro

Si va a actualizar un dominio que ya ha configurado para su organización, tendrá que actualizarlo para usar Amazon Q Developer. Puede usar el dominio Consola de administración de AWS o el AWS Command Line Interface para actualizar un dominio.

Debe usar el ARN de su perfil de Amazon Q Developer. Puede encontrar el ARN de perfil de Q en la página [Q Developer Settings](https://console.aws.amazon.com/amazonq/developer/settings).

Puedes usar el siguiente AWS Command Line Interface comando para actualizar tu dominio:

```
aws --region Región de AWS sagemaker update-domain --domain-id domain-id --domain-settings-for-update "AmazonQSettings={Status=ENABLED,QProfileArn=Q-Profile-ARN}"           
```

También puede usar el siguiente procedimiento para actualizar el dominio en la Consola de administración de AWS.

1. Navega hasta la consola [Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Elija Dominios.

1. Seleccione **Configuraciones de aplicaciones**.

1. Para **Amazon Q Developer for SageMaker AI Applications**, selecciona **Editar**.

1. Seleccione **Activar Amazon Q Developer en este dominio**.

1. Indique el ARN del perfil de Q.

1. Seleccione **Enviar**.

Debe usar el ARN de su perfil de Amazon Q Developer. Puede encontrar el ARN del perfil Q en la página **Datos de la cuenta Amazon Q** de la consola de [Amazon Q Developer](https://console.aws.amazon.com/amazonq/developer).

La **configuración para organizaciones** es una configuración avanzada para el dominio Amazon SageMaker AI que le permite utilizar IAM Identity Center. Para obtener información sobre cómo configurar el dominio y el Centro de identidades de IAM, consulte [Usa una configuración personalizada para Amazon SageMaker AI](onboard-custom.md).

Al configurar Amazon Q Developer en un dominio nuevo, puede utilizar el AWS Command Line Interface comando Consola de administración de AWS o el siguiente desde su máquina local:

```
                    
aws --region Región de AWS sagemaker create-domain --domain-id domain-id --domain-name "example-domain-name" --vpc-id example-vpc-id --subnet-ids example-subnet-ids --auth-mode SSO --default-user-settings "ExecutionRole=arn:aws:iam::111122223333:role/IAM-role",--domain-settings "AmazonQSettings={status=ENABLED,qProfileArn=Q-profile-ARN" --query example-domain-ARN--output text
```

Puedes usar el siguiente AWS CLI comando para deshabilitar Amazon Q Developer:

```
aws --region Región de AWS sagemaker update-domain --domain-id domain-id --domain-settings-for-update "AmazonQSettings={Status=DISABLED,QProfileArn=Q-Profile-ARN}"           
```

Recomendamos que se utilice la versión más reciente de la AWS Command Line Interface. Para obtener información sobre cómo actualizar el AWS CLI, consulte [Instalar o actualizar a la última versión del AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Si tiene que establecer una conexión entre Amazon Q Developer y la VPC, consulte [Creating an interface VPC endpoint for Amazon Q](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/vpc-interface-endpoints.html#vpc-endpoint-create).

**nota**  
Amazon Q Developer presenta las siguientes restricciones:  
No admite espacios compartidos.
Amazon Q Developer detecta si una sugerencia de código puede ser demasiado parecida a un código disponible públicamente. El rastreador de referencias puede marcar las sugerencias con el repositorio URLs y las licencias, o filtrarlas. Esto permite revisar el código al que se hace referencia y su uso antes de adoptarlo. Todas las referencias se registran para que pueda revisarlas más adelante y así asegurarse de que el flujo de código no se vea afectado y que pueda continuar codificando sin interrupciones.  
Para obtener más información sobre las referencias de código, consulte [Uso de referencias de código: Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/code-reference.html) y [AI Coding Assistant: Amazon Q Developer FAQs](https://aws.amazon.com/q/developer/faqs/?refid=255ccf7b-4a76-4dcb-9b07-68709e2b636b#:~:text=Can%20I%20prevent%20Amazon%20Q%20Developer%20from%20recommending%20code%20with%20code%20references%3F).
Amazon Q procesa todos los datos de interacción de los usuarios en la Región de AWS Este de EE. UU. (Norte de Virginia). Para obtener más información sobre cómo Amazon Q procesa los datos y qué Regiones de AWS admite, consulte [Supported Regions for Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/regions.html).
Amazon Q solo funciona en Amazon SageMaker Studio. No es compatible con Amazon SageMaker Studio Classic.
Sí JupyterLab, Amazon Q funciona con la versión 2.0 y superior de SageMaker AI Distribution Images. En Code Editor, Amazon Q funciona con la versión 2.2.1 y superior de SageMaker AI Distribution Images.
Amazon Q Developer JupyterLab trabaja dentro de la extensión Jupyter AI. No se pueden usar otros modelos 3P dentro de la extensión mientras se usa Amazon Q.

## Personalizaciones de Amazon Q en Amazon SageMaker AI
<a name="q-customizations-in-sagemaker"></a>

Si utiliza Amazon Q Developer Pro, tiene la opción de crear *personalizaciones*. Con las personalizaciones, Amazon Q Developer proporciona sugerencias en función del código base de la empresa. Si crea personalizaciones en Amazon Q Developer, estarán disponibles para que las utilice en JupyterLab el editor de código de Amazon SageMaker Studio. Para obtener más información sobre la configuración de las personalizaciones, consulte [Sugerencias de personalización](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/customizations.html) en la *Guía del usuario de Amazon Q Developer*.

# Uso de Amazon Q para agilizar sus flujos de trabajo de machine learning
<a name="studio-updated-user-guide-use-amazon-q"></a>

Amazon Q Developer es su servicio complementario con tecnología de IA para el desarrollo del machine learning. Con Amazon Q Developer, podrá:
+ Reciba step-by-step orientación sobre el uso de las funciones de SageMaker IA de forma independiente o en combinación con otros AWS servicios.
+ Obtenga un código de muestra para comenzar con sus tareas de aprendizaje automático, como la preparación de datos, la capacitación, la inferencia y MLOps.

 Para utilizar Amazon Q Developer, elija la **Q** en la barra de navegación de la izquierda de su entorno JupyterLab o del editor de código.

Si no ve el icono **Q**, su administrador deberá configurárselo. Para obtener más información sobre cómo configurar Amazon Q Developer, consulte [Configuración de Amazon Q Developer para sus usuarios](studio-updated-amazon-q-admin-guide-set-up.md).

Amazon Q proporciona automáticamente sugerencias para ayudarlo a escribir el código. También usted puede pedirle sugerencias a través de la interfaz de chat.

# Personalice Amazon Q Developer en las aplicaciones de Amazon SageMaker Studio
<a name="q-customizations"></a>

Puede personalizar Amazon Q Developer en las aplicaciones Code Editor JupyterLab y Code Editor de Amazon SageMaker Studio. Cuando personaliza Q Developer, proporciona sugerencias y respuestas basadas en ejemplos de su base de código. Si utiliza Amazon Q Developer Pro, puede cargar cualquier personalización que haya creado con ese servicio. 

## Personalice en JupyterLab
<a name="q-customizations-jupyterlab"></a>

En JupyterLab, puedes cargar cualquier personalización que hayas creado con Amazon Q Developer Pro. O bien, en tu JupyterLab espacio, puedes personalizar Q Developer de forma local con los archivos que subas al espacio.

### Cómo usar las personalizaciones que ha creado en Amazon Q Developer Pro
<a name="use-q-customizations-jupyterlab"></a>

Al cargar una personalización, Q Developer proporciona sugerencias basadas en el código base que utilizó para crear la personalización. Además, cuando utiliza el chat en el panel de **Amazon Q**, interactúa con su personalización.

Para obtener más información sobre la configuración de las personalizaciones, consulte [Sugerencias de personalización](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/customizations.html) en la *Guía del usuario de Amazon Q Developer*.

**Cómo cargar la personalización**

Abre tu JupyterLab espacio y completa los siguientes pasos.

1. En la barra de estado situada en la parte inferior de JupyterLab, selecciona **Amazon Q.** Se abre un menú.

1. En el menú, seleccione **Otras características**. La pestaña **Características de Amazon Q** se abre en el área de trabajo principal.

1. En la pestaña **Características de Amazon Q**, en **Seleccionar personalización**, elija su personalización de Q Developer.

1. Interactúe con la personalización de cualquiera de las siguientes formas:
   + Cree un cuaderno y escriba código en él. Mientras lo hace, Q Developer le proporciona automáticamente sugerencias en línea personalizadas en función de la personalización.
   + Para chatear con Q Developer en el panel de **Amazon Q** siga estos pasos:

     1. En la barra lateral izquierda JupyterLab, selecciona el icono de **Jupyter** AI Chat. Se abrirá el panel de **Amazon Q**.

     1. Use el cuadro de chat **Preguntar a Amazon Q** para interactuar con la personalización.

### Para personalizar Amazon Q Developer con los archivos de tu JupyterLab espacio
<a name="customize-q-in-jupyterlab"></a>

En JupyterLab, puedes personalizar Q Developer con archivos que subas a tu espacio. Luego, en el chat del panel de **Amazon Q**, puede usar un comando para preguntar a Q Developer acerca de esos archivos.

Al personalizar Q Developer con los archivos de su espacio, la personalización solo existe en su espacio. No puede cargar la personalización en ningún otro lugar, como en otros espacios o en la consola de Amazon Q Developer.

Puede personalizar Q Developer con archivos incluidos JupyterLab si utiliza Amazon Q Developer Pro o Amazon Q Developer en la capa gratuita.

**Cómo personalizar con sus archivos**

Abre tu JupyterLab espacio y completa los siguientes pasos.

1. Compruebe si su espacio está configurado con el modelo de incrustación requerido. JupyterLab Solo puede personalizar Q Developer si utiliza el modelo de incrustación predeterminado, que es **CodeSage : codesage-small**. Para verificar, haga lo siguiente;

   1. **En la barra lateral izquierda, selecciona el icono de Jupyter JupyterLab AI Chat.** Se abrirá el panel de **Amazon Q**.

   1. En la esquina superior derecha del panel, elija el icono de configuración.

   1. **Para el **modelo de incrustación**, si es necesario, selecciona **CodeSage : codesage-small** y selecciona Guardar cambios.**

   1. En la esquina superior derecha del panel, elija el icono de atrás. 

1. Para cargar los archivos con los que desee personalizar Q Developer, en el panel del **Explorador de archivos**, elija el icono **Cargar archivos**.

1. Después de cargar los archivos, escriba `/learn file path/` en el cuadro de chat **Preguntar a Amazon Q**. Sustituya la *ruta del archivo/* por la ruta a los archivos de su espacio. JupyterLab Cuando Amazon Q termine de procesar los archivos, lo confirmará con un mensaje de chat en el panel de Amazon Q.

1. Para hacer una pregunta a Q Developer sobre los archivos, escriba `/ask` en el cuadro de chat y siga el comando con la pregunta. Amazon Q genera una respuesta basada en los archivos y responde en el chat.

Para obtener más información sobre los comandos `/learn` y `/ask`, por ejemplo, sus opciones y los argumentos admitidos, consulte Información [Learning about local data](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#learning-about-local-data) en la documentación de usuario de Jupyter AI. En esa página se explica cómo usar los comandos con el chatbot Jupyternaut AI. JupyterLaben Amazon SageMaker Studio admite la misma sintaxis de comandos.

## Personalización en el Editor de código
<a name="q-customizations-code-editor"></a>

Si ha creado una personalización en Amazon Q Developer Pro, puede cargarla en el Editor de código. A continuación, cuando Q Developer proporciona sugerencias para su código, las basa en el código base que ha utilizado para crear la personalización. Además, cuando utiliza el chat en el panel de **Amazon Q: chat**, interactúa con su personalización.

**Cómo usar las personalizaciones que ha creado en Amazon Q Developer Pro**

Abra su espacio de Editor de código y complete los pasos siguientes.

1. En el menú del Editor de código, seleccione **Ver** y **Paleta de comandos**.

1. En la paleta de comandos, empiece a escribir **>Amazon Q: Select Customization** y elija esa opción de la lista filtrada de comandos cuando aparezca. La paleta de comandos muestra las personalizaciones de Q Developer.

1. Elija su personalización.

1. Interactúe con la personalización de cualquiera de las siguientes formas:
   + Cree un archivo de Python o un cuaderno de Jupyter y escriba código en él. Mientras lo hace, Q Developer le proporciona automáticamente sugerencias en línea personalizadas en función de la personalización.
   + Para chatear con Q Developer en el panel de **Amazon Q** siga estos pasos:

     1. En la barra lateral izquierda del Editor de código, seleccione el icono de **Amazon Q**. Se abrirá el panel de **Amazon Q: chat**.

     1. Use el cuadro de chat para interactuar con la personalización.

Para obtener más información sobre las capacidades de Q Developer, consulte [Uso de Amazon Q Developer en el IDE](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-in-IDE.html) en la *Guía del usuario de Amazon Q Developer*.

# Descripción general de las aplicaciones de IA de Amazon SageMaker Partner
<a name="partner-apps"></a>

Con Amazon SageMaker Partner AI Apps, los usuarios tienen acceso a aplicaciones de desarrollo generativas de IA y aprendizaje automático (ML) creadas, publicadas y distribuidas por proveedores de aplicaciones líderes del sector. Las aplicaciones de IA de los socios están certificadas para funcionar con IA. SageMaker Con las aplicaciones de IA para socios, los usuarios pueden acelerar y mejorar la forma en que crean soluciones basadas en modelos fundacionales (FM) y modelos clásicos de ML sin comprometer la seguridad de su información confidencial. Los datos permanecen completamente dentro de su configuración de seguridad de confianza y nunca se comparten con terceros.  

## Funcionamiento
<a name="partner-apps-how-works"></a>

Las aplicaciones de IA para socios son pilas de aplicaciones completas que incluyen un clúster de Amazon Elastic Kubernetes Service y una serie de servicios complementarios que pueden incluir Equilibrador de carga de aplicación, Amazon Relational Database Service, buckets de Amazon Simple Storage Service, colas de Amazon Simple Queue Service y cachés de Redis. 

Estas aplicaciones de servicio se pueden compartir entre todos los usuarios de un dominio de SageMaker IA y las aprovisiona un administrador. Tras aprovisionar la aplicación mediante la compra de una suscripción a través de AWS Marketplace, el administrador puede conceder a los usuarios del dominio de SageMaker IA permisos para acceder a la aplicación de IA asociada directamente desde Amazon SageMaker Studio, Amazon SageMaker Unified Studio (versión preliminar) o mediante una URL prefirmada. Para obtener más información sobre cómo lanzar una aplicación desde Studio, consulte [Inicie Amazon SageMaker Studio](studio-updated-launch.md). 

Aplicaciones de IA para socios ofrece las siguientes ventajas a los administradores y usuarios.  
+  Los administradores utilizan la consola de SageMaker IA para explorar, descubrir, seleccionar y aprovisionar las aplicaciones de IA asociadas para que las utilicen sus equipos de ciencia de datos y aprendizaje automático. Una vez implementadas las aplicaciones de IA asociadas, la SageMaker IA las ejecuta en un servicio Cuentas de AWS gestionado. Esto reduce considerablemente la sobrecarga operativa asociada a la creación y el funcionamiento de estas aplicaciones, y contribuye a la seguridad y privacidad de los datos de los clientes. 
+  Los científicos de datos y los desarrolladores de aprendizaje automático pueden acceder a las aplicaciones de IA asociadas desde su entorno de desarrollo de aprendizaje automático en Amazon SageMaker Studio o Amazon SageMaker Unified Studio (versión preliminar). Pueden usar las aplicaciones de IA asociadas para analizar sus datos, experimentos y modelos creados con SageMaker IA. Esto minimiza el cambio de contexto y ayuda a acelerar la creación de modelos fundacionales y la introducción en el mercado de nuevas capacidades de IA generativa. 

## Integración con Servicios de AWS
<a name="partner-apps-integration"></a>

Partner AI Apps utiliza la configuración existente AWS Identity and Access Management (IAM) para la autorización y la autenticación. Como resultado, los usuarios no necesitan proporcionar credenciales independientes para acceder a cada aplicación de IA asociada desde Amazon SageMaker Studio. Para obtener más información sobre las opciones de autorización y autenticación con aplicaciones de IA para socios, consulte [Configuración de aplicaciones de IA para socios](partner-app-onboard.md). 

Las aplicaciones de IA asociadas también se integran Amazon CloudWatch para proporcionar supervisión y gestión operativas. Los clientes también pueden explorar las aplicaciones de IA para socios y obtener información al respecto, como las características, la experiencia de los clientes y los precios, en la Consola de administración de AWS. Para obtener más información Amazon CloudWatch, consulte [Cómo Amazon CloudWatch funciona](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_architecture.html). 

Las aplicaciones de IA asociadas, como Deepchecks, admiten la integración con Amazon Bedrock para habilitar funciones de evaluación basadas en LLM, como las evaluaciones «LLM as a Judge» y las capacidades de anotación automatizadas. Cuando la integración de Amazon Bedrock está habilitada, la aplicación Partner AI utiliza su cuenta de Amazon Bedrock gestionada por el cliente para acceder a los modelos básicos, lo que garantiza que sus datos permanezcan dentro de su configuración de seguridad de confianza. Para obtener más información sobre la configuración de la integración de Amazon Bedrock, consulte[Configurar la integración de Amazon Bedrock](partner-app-onboard.md#partner-app-onboard-admin-bedrock).

## Tipos admitidos
<a name="partner-apps-supported"></a>

Las aplicaciones de IA para socios admiten los siguientes tipos: 
+ Comet 
+  Deepchecks 
+  Fiddler 
+  Lakera Guard 

 Cuando el administrador lanza una aplicación de IA para socios, debe seleccionar la configuración del clúster de instancias con el que se lanza la aplicación de IA para socios. Esta configuración se conoce como el nivel de la aplicación de IA para socios. El nivel de una aplicación de IA para socios puede tener uno de los siguientes valores: 
+  `small` 
+  `medium` 
+  `large` 

 En las siguientes secciones se proporciona información sobre cada uno de los tipos de aplicaciones de IA para socios y detalles sobre los valores de los niveles de la aplicación de IA para socios. 

### Descripción general de Comet
<a name="partner-apps-supported-comet"></a>

 Cometproporciona una plataforma de evaluación de end-to-end modelos para desarrolladores de IA, con evaluaciones de LLM, seguimiento de experimentos y supervisión de la producción. 

 Recomendamos los siguientes niveles de aplicaciones de IA para socios en función de la carga de trabajo: 
+  `small`: se recomienda para un máximo de 5 usuarios y 20 trabajos en ejecución. 
+  `medium`: se recomienda para un máximo de 50 usuarios y 100 trabajos en ejecución. 
+  `large`: se recomienda para un máximo de 500 usuarios y más de 100 trabajos en ejecución. 

**nota**  
SageMaker La IA no permite ver la Comet interfaz de usuario como parte de la salida de un cuaderno Jupyter. 

### Descripción general de Deepchecks
<a name="partner-apps-supported-deepchecks"></a>

Los desarrolladores de aplicaciones de IA y las partes interesadas pueden usar Deepchecks para validar continuamente las aplicaciones basadas en LLM, como las características, las métricas de rendimiento y los posibles problemas a lo largo de todo su ciclo de vida, desde la fase previa a la implementación y la experimentación interna hasta la producción. 

 Recomendamos los siguientes niveles de aplicaciones de IA para socios en función de a velocidad deseada para la carga de trabajo: 
+  `small`: procesa 200 tokens por segundo. 
+  `medium`: procesa 500 tokens por segundo. 
+  `large`: procesa 1300 tokens por segundo. 

### Descripción general de Fiddler
<a name="partner-apps-supported-fiddler"></a>

 La plataforma de observabilidad de IA de Fiddler permite validar, supervisar y analizar los modelos de ML en producción, incluidos los modelos tabulares, de aprendizaje profundo, de visión artificial y de procesamiento de lenguaje natural. 

 Recomendamos los siguientes niveles de aplicaciones de IA para socios en función de a velocidad deseada para la carga de trabajo: 
+  `small`: el procesamiento de 10 millones de eventos en 5 modelos, 100 características y 20 iteraciones dura unos 53 minutos. 
+  `medium`: el procesamiento de 10 millones de eventos en 5 modelos, 100 características y 20 iteraciones dura unos 23 minutos. 
+  `large`: el procesamiento de 10 millones de eventos en 5 modelos, 100 características y 100 iteraciones dura unos 27 minutos. 

### Descripción general de Lakera Guard
<a name="partner-apps-supported-lakera-guard"></a>

 Lakera Guard es un firewall de aplicaciones de IA de baja latencia que protege las aplicaciones de IA generativas frente a las amenazas específicas de la IA generativa. 

 Recomendamos los siguientes niveles de aplicaciones de IA para socios en función de la carga de trabajo: 
+  `small`— Recomendado para un máximo de 20 automatizaciones de procesos robóticos (). RPAs 
+  `medium`— Recomendado para un máximo de 100 RPAs. 
+  `large`— Recomendado para un máximo de 200 personas RPAs. 

# Configuración de aplicaciones de IA para socios
<a name="partner-app-onboard"></a>

 En los siguientes temas se describen los permisos necesarios para empezar a utilizar Amazon SageMaker Partner AI Apps. Los permisos necesarios se dividen en dos partes, según el nivel de permisos del usuario: 
+  **Permisos administrativos**: permisos para los administradores que configuran entornos de científicos de datos y desarrolladores de machine learning (ML).
  + AWS Marketplace
  +  Administración de las aplicaciones de IA para socios 
  +  AWS License Manager 
+  **Permisos de usuario**: permisos para científicos de datos y desarrolladores de machine learning. 
  +  Autorización de usuarios 
  +  Propagación de identidades 
  +  Acceso al SDK 

## Requisitos previos
<a name="partner-app-onboard-prereq"></a>

 Los administradores deben cumplir los siguientes requisitos previos para poder configurar aplicaciones de IA para socios. 
+ (Opcional) Inscríbase en un dominio de SageMaker IA. Se puede acceder a las aplicaciones de IA asociadas directamente desde un dominio de SageMaker IA. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md). 
  + Si utiliza aplicaciones de IA asociadas en un dominio de SageMaker IA en modo solo VPC, los administradores deben crear un punto final con el siguiente formato para conectarse a las aplicaciones de IA asociadas. Para obtener más información sobre el uso de Studio en modo solo de VPC, consulte [Connect Amazon SageMaker Studio de una VPC a recursos externos](studio-updated-and-internet-access.md). 

    ```
    aws.sagemaker.region.partner-app
    ```
+ (Opcional) Si los administradores interactúan con el dominio mediante el AWS CLI, también deben cumplir los siguientes requisitos previos. 

  1. Actualícelo AWS CLI siguiendo los pasos que se indican en [Instalación de la versión actual AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).  

  1. En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html).

## Permisos administrativos
<a name="partner-app-onboard-admin"></a>

 El administrador debe añadir los siguientes permisos para habilitar las aplicaciones de IA asociadas en la SageMaker IA. 
+  Permiso para completar la AWS Marketplace suscripción a las aplicaciones de IA asociadas 
+  Configuración del rol de ejecución de la aplicación de IA para socios 

### AWS Marketplace suscripción a Partner AI Apps
<a name="partner-app-onboard-admin-marketplace"></a>

Los administradores deben completar los siguientes pasos para añadir permisos a. AWS Marketplace Para obtener información sobre el uso AWS Marketplace, consulta [Cómo empezar a usar AWS Marketplace como comprador](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-getting-started.html).

1. Otorgue permisos para AWS Marketplace. Los administradores de Partner AI Apps necesitan estos permisos para comprar suscripciones a Partner AI Apps AWS Marketplace. Para acceder a ella AWS Marketplace, los administradores deben adjuntar la política `AWSMarketplaceManageSubscriptions` gestionada a la función de IAM que utilizan para acceder a la consola de SageMaker IA y comprar la aplicación. Para obtener más información sobre la política `AWSMarketplaceManageSubscriptions` gestionada, consulta [Políticas AWS gestionadas para AWS Marketplace compradores](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-security-iam-awsmanpol.html#security-iam-awsmanpol-awsmarketplacemanagesubscriptions). Para obtener más información acerca de cómo asociar políticas administradas, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html). 

1. Concede permisos para que la SageMaker IA ejecute operaciones en nombre de los administradores utilizando otras Servicios de AWS. Los administradores deben conceder permisos a la SageMaker IA para usar estos servicios y los recursos sobre los que actúan. En la siguiente definición de política se muestra cómo conceder los permisos necesarios de aplicaciones de IA para socios. Estos permisos son necesarios además de los permisos existentes para el rol de administrador. Para obtener más información, consulte [Cómo utilizar las funciones de ejecución de la SageMaker IA](sagemaker-roles.md).

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CreatePartnerApp",
                   "sagemaker:DeletePartnerApp",
                   "sagemaker:UpdatePartnerApp",
                   "sagemaker:DescribePartnerApp",
                   "sagemaker:ListPartnerApps",
                   "sagemaker:CreatePartnerAppPresignedUrl",
                   "sagemaker:CreatePartnerApp",
                   "sagemaker:AddTags",
                   "sagemaker:ListTags",
                   "sagemaker:DeleteTags"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": "arn:aws:iam::*:role/*",
               "Condition": {
                   "StringEquals": {
                        "iam:PassedToService": "sagemaker.amazonaws.com"
                    } 
               }
           }
       ]
   }
   ```

------

### Configuración del rol de ejecución de la aplicación de IA para socios
<a name="partner-app-onboard-admin-role"></a>

1. Las aplicaciones de IA para socios requieren un rol de ejecución para interactuar con los recursos de la Cuenta de AWS. Los administradores pueden crear este rol de ejecución desde la AWS CLI. La aplicación de AI para socios utiliza este rol para completar las acciones relacionadas con la funcionalidad de la aplicación de IA para socios. 

   ```
   aws iam create-role --role-name PartnerAiAppExecutionRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "sagemaker.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }'
   ```

1.  Cree el rol AWS License Manager vinculado a un servicio siguiendo los pasos de [Crear un rol vinculado a un servicio para License Manager](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager-role-core.html#create-slr-core).  

1.  Otorgue permisos para que la aplicación de IA para socios acceda a License Manager desde la AWS CLI. Estos permisos son necesarios para acceder a las licencias de la aplicación de IA para socios. Esto permite a la aplicación de IA para socios verificar el acceso a la licencia de la aplicación de IA para socios.

   ```
   aws iam put-role-policy --role-name PartnerAiAppExecutionRole --policy-name LicenseManagerPolicy --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Action": [
         "license-manager:CheckoutLicense",
         "license-manager:CheckInLicense",
         "license-manager:ExtendLicenseConsumption",
         "license-manager:GetLicense",
         "license-manager:GetLicenseUsage"
       ],
       "Resource": "*"
     }
   }'
   ```

1.  Si la aplicación de IA para socios requiere acceso a un bucket de Amazon S3, añada los permisos de Amazon S3 al rol de ejecución. Para obtener más información, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-policy-actions.html). 

### Configurar la integración de Amazon Bedrock
<a name="partner-app-onboard-admin-bedrock"></a>

Las aplicaciones de IA asociadas, como Deepchecks, admiten la integración con Amazon Bedrock para habilitar funciones de evaluación basadas en LLM. Al configurar una aplicación de IA asociada con el soporte de Amazon Bedrock, los administradores pueden especificar qué modelos básicos y perfiles de inferencia están disponibles para su uso en la aplicación. Si necesita aumentar el límite de cuota para sus modelos Amazon Bedrock, consulte [Solicitar un aumento de las cuotas de Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas-increase.html).

1. Asegúrese de que la función de ejecución de la aplicación Partner AI tenga los permisos de Amazon Bedrock necesarios. Añada los siguientes permisos para habilitar el acceso al modelo Amazon Bedrock:

   ```
   aws iam put-role-policy --role-name PartnerAiAppExecutionRole --policy-name BedrockInferencePolicy --policy-document '{
   	   "Version": "2012-10-17",		 	 	 
   	   "Statement": {
   	     "Effect": "Allow",
   	     "Action": [
   	       "bedrock:InvokeModel",
   	       "bedrock:GetFoundationModel",
   	       "bedrock:GetInferenceProfile"
   	     ],
   	     "Resource": "*"
   	   }
   	 }'
   ```

1. Identifique los modelos de Amazon Bedrock que su organización quiere poner a disposición de la aplicación Partner AI. Puede ver los modelos disponibles en su región mediante la consola Amazon Bedrock. Para obtener información sobre la disponibilidad de los modelos en todas las regiones, consulte [Soporte de modelos por Región de AWS](https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html).

1. (Opcional) Cree perfiles de inferencia gestionados por el cliente para el seguimiento de los costes y la gestión de modelos. Los perfiles de inferencia le permiten realizar un seguimiento del uso de Amazon Bedrock específicamente para la aplicación Partner AI y pueden habilitar la inferencia entre regiones cuando los modelos no están disponibles en su región actual. Para obtener más información, consulte [Uso de perfiles de inferencia en Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles.html).

1. Al crear o actualizar la aplicación Partner AI, especifique los modelos y perfiles de inferencia permitidos mediante la `CreatePartnerApp` API o. `UpdatePartnerApp` La aplicación Partner AI solo podrá acceder a los modelos y perfiles de inferencia que usted configure de forma explícita.

**importante**  
El uso de Amazon Bedrock a través de las aplicaciones de IA asociadas se factura directamente a usted Cuenta de AWS utilizando los precios actuales de Amazon Bedrock. Los costos de infraestructura de la aplicación Partner AI son independientes de los costos de inferencia del modelo Amazon Bedrock.

#### Integración de Deepcheck con Amazon Bedrock
<a name="partner-app-onboard-admin-bedrock-deepchecks"></a>

Deepchecks admite la integración de Amazon Bedrock para las capacidades de evaluación basadas en LLM, que incluyen:
+ El *LLM como juez de evaluaciones*: utilice modelos básicos para evaluar automáticamente los resultados de los modelos en función de la calidad, la relevancia y otros criterios
+ *Anotación automatizada*: genere etiquetas y anotaciones para conjuntos de datos utilizando modelos básicos
+ *Análisis de contenido*: analice los datos de texto para detectar sesgos, toxicidad y otras métricas de calidad mediante las capacidades de LLM

Para obtener información detallada sobre las características y la configuración de Amazon Bedrock de Deepcheck, consulte la documentación de Deepchecks en la aplicación.

## Permisos de usuario
<a name="partner-app-onboard-user"></a>

 Cuando los administradores hayan completado la configuración de los permisos administrativos, deben asegurarse de que los usuarios tengan los permisos necesarios para acceder a las aplicaciones de IA para socios.

1. Otorgue permisos para que la SageMaker IA ejecute operaciones en su nombre utilizando otras. Servicios de AWS Los administradores deben conceder permisos a la SageMaker IA para usar estos servicios y los recursos sobre los que actúan. Los administradores conceden estos permisos a SageMaker AI mediante una función de ejecución de IAM. Para obtener más información sobre los roles de IAM, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). En la siguiente definición de política se muestra cómo conceder los permisos necesarios de aplicaciones de IA para socios. Esta política se puede agregar al rol de ejecución del perfil de usuario.  Para obtener más información, consulte [Cómo utilizar las funciones de ejecución de la SageMaker IA](sagemaker-roles.md). 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribePartnerApp",
                   "sagemaker:ListPartnerApps",
                   "sagemaker:CreatePartnerAppPresignedUrl"
               ],
               "Resource": "arn:aws:sagemaker:*:*:partner-app/app-*"
           }
       ]
   }
   ```

------

1.  (Opcional) Si va a lanzar aplicaciones de IA para socios desde Studio, añada la política de confianza `sts:TagSession` al rol utilizado para lanzar Studio o las aplicaciones de IA para socios directamente de la siguiente manera. De este modo se garantiza que la identidad se pueda propagar correctamente.

   ```
   {
       "Effect": "Allow",
       "Principal": {
           "Service": "sagemaker.amazonaws.com"
       },
       "Action": [
                   "sts:AssumeRole",
                   "sts:TagSession"
                ]
   }
   ```

1.  (Opcional) Si utilizas el SDK de una aplicación de IA asociada para acceder a las funciones de la SageMaker IA, añade el siguiente `CallPartnerAppApi` permiso a la función utilizada para ejecutar el código del SDK. Si ejecuta el código del SDK desde Studio, añada el permiso al rol de ejecución de Studio. Si ejecuta el código desde otro lugar que no sea Studio, añada el permiso al rol de IAM utilizado con el cuaderno. Esto permite al usuario acceder a la funcionalidad de la aplicación de IA para socios desde el SDK de la aplicación de IA para socios. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CallPartnerAppApi"
               ],
               "Resource": [
                   "arn:aws:sagemaker:us-east-1:111122223333:partner-app/app"
               ]
           }
       ]
   }
   ```

------

### Administración de la autorización y autenticación de usuarios
<a name="partner-app-onboard-user-auth"></a>

Para proporcionar acceso a las aplicaciones de IA para socios a los miembros de su equipo, los administradores deben asegurarse de que la identidad de sus usuarios se propague a las aplicaciones de IA para socios. Esta propagación garantiza que los usuarios puedan acceder correctamente a la interfaz de usuario de las aplicaciones de IA para socios y realizar las acciones autorizadas de las aplicaciones de IA para socios. 

 Las aplicaciones de IA para socios admiten los siguientes orígenes de identidades: 
+  AWS IAM Identity Center 
+  Proveedores de identidad externos (IdPs)  
+  Identidad basada en sesiones de IAM 

 En las siguientes secciones se proporciona información sobre los orígenes de las identidades compatibles con las aplicaciones de IA para socios, así como detalles importantes relacionados con ese origen de identidades. 

#### IAM Identity Center
<a name="partner-app-onboard-user-auth-idc"></a>

Si un usuario se autentica en Studio con IAM Identity Center y lanza una aplicación desde Studio, el `UserName` de IAM Identity Center se propaga automáticamente como la identidad de usuario de una aplicación de IA para socios. Este no es el caso si el usuario inicia la aplicación de IA para socios directamente con la API `CreatePartnerAppPresignedUrl`.

#### Proveedores de identidad externos (IdPs)
<a name="partner-app-onboard-user-auth-idps"></a>

Si utilizan SAML para la Cuenta de AWS federación, los administradores tienen dos opciones para transferir la identidad de IdP como identidad de usuario de una aplicación de IA asociada. Para obtener información sobre cómo configurar la Cuenta de AWS federación, consulte [Cómo configurar SAML 2.0 para](https://saml-doc.okta.com/SAML_Docs/How-to-Configure-SAML-2.0-for-Amazon-Web-Service) la federación. Cuenta de AWS   
+ **Etiqueta principal**: los administradores pueden configurar la aplicación IAM Identity Center específica del IDP para que transmita la información de identidad de la sesión de inicio mediante la AWS sesión `PrincipalTag` con el siguiente atributo. `Name` Cuando se usa SAML, la sesión del rol de inicio usa un rol de IAM. Para utilizar la `PrincipalTag`, los administradores deben añadir el permiso `sts:TagSession` a este rol de destino, así como al rol de ejecución de Studio. Para obtener más información sobre `PrincipalTag`, consulte [Configuración de aserciones SAML para la respuesta de autenticación](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html#saml_role-session-tags). 

  ```
  https://aws.amazon.com/SAML/Attributes/PrincipalTag:SageMakerPartnerAppUser
  ```
+ **Nombre de la sesión de inicio**: los administradores pueden propagar el nombre de la sesión de inicio como identidad de la aplicación de IA para socios. Para ello, deben configurar el indicador de activación `EnableIamSessionBasedIdentity` para cada aplicación de IA para socios. Para obtener más información, consulte [`EnableIamSessionBasedIdentity`](#partner-app-onboard-user-iam-session).

#### Identidad basada en sesiones de IAM
<a name="partner-app-onboard-user-auth-iam"></a>

**importante**  
Le recomendamos que no utilice este método para las cuentas de producción. Para las cuentas de producción, es mejor utilizar un proveedor de identidades para aumentar la seguridad.

 SageMaker La IA admite las siguientes opciones de propagación de la identidad cuando se utiliza una identidad de IAM basada en una sesión. Todas las opciones, excepto el uso de una etiqueta de sesión con AWS STS, requieren configurar el indicador de `EnableIamSessionBasedIdentity` suscripción para cada aplicación. Para obtener más información, consulte [`EnableIamSessionBasedIdentity`](#partner-app-onboard-user-iam-session).

Al propagar las identidades, la SageMaker IA verifica si se está utilizando una etiqueta de AWS STS sesión. Si no se utiliza ninguna, SageMaker AI propaga el nombre de usuario o el nombre de sesión de IAM. AWS STS 
+  **AWS STS Etiqueta de sesión**: los administradores pueden configurar una etiqueta de sesión para la `SageMakerPartnerAppUser` sesión de IAM del iniciador. Cuando los administradores lanzan una aplicación de IA asociada mediante la consola de SageMaker IA o la AWS CLI, la etiqueta de `SageMakerPartnerAppUser` sesión se transfiere automáticamente como identidad de usuario de la aplicación de IA asociada. En el siguiente ejemplo se muestra cómo configurar la etiqueta de sesión `SageMakerPartnerAppUser` con la AWS CLI. El valor de la clave se añade como etiqueta de la entidad principal.

  ```
  aws sts assume-role \
      --role-arn arn:aws:iam::account:role/iam-role-used-to-launch-partner-ai-app \
      --role-session-name session_name \
      --tags Key=SageMakerPartnerAppUser,Value=user-name
  ```

   Al dar a los usuarios acceso a una aplicación de IA para socios con `CreatePartnerAppPresignedUrl`, recomendamos verificar el valor de la clave `SageMakerPartnerAppUser`. Esto ayuda a evitar el acceso no deseado a los recursos de la aplicación de IA para socios. La siguiente política de confianza verifica que la etiqueta de sesión coincida exactamente con el usuario de IAM asociado. Los administradores pueden usar cualquier etiqueta de entidad principal para ello. Debe configurarse en el rol que está lanzando Studio o la aplicación de IA para socios.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
              "Effect": "Allow",
              "Action": [
                  "sts:AssumeRole",
                  "sts:TagSession"
              ],
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:root"
              },
              "Condition": {
                  "StringLike": {
                      "aws:RequestTag/SageMakerPartnerAppUser": "prefix${aws:username}"
                  }
              }
          }
      ]
  }
  ```

------
+  **Usuario de IAM autenticado**: el nombre del usuario se propaga automáticamente como usuario de la aplicación de IA para socios. 
+  **AWS STS nombre de sesión**: si no se configura ninguna etiqueta de `SageMakerPartnerAppUser` sesión al utilizarla AWS STS, SageMaker AI devuelve un error cuando los usuarios inician una aplicación de IA asociada. Para evitarlo, los administradores deben configurar el indicador de activación `EnableIamSessionBasedIdentity` para cada aplicación de IA para socios. Para obtener más información, consulte [`EnableIamSessionBasedIdentity`](#partner-app-onboard-user-iam-session).

   Cuando el indicador de activación `EnableIamSessionBasedIdentity` esté activado, utilice la [política de confianza de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname) para asegurarse de que el nombre de la sesión de IAM es o contiene el nombre de usuario de IAM. Esto garantiza que los usuarios no accedan haciéndose pasar por otros usuarios. La siguiente política de confianza verifica que el nombre de la sesión coincida exactamente con el usuario de IAM asociado. Los administradores pueden usar cualquier etiqueta de entidad principal para ello. Debe configurarse en el rol que está lanzando Studio o la aplicación de IA para socios.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:root"
              },
              "Condition": {
                  "StringEquals": {
                      "sts:RoleSessionName": "${aws:username}"
                  }
              }
          }
      ]
  }
  ```

------

  Los administradores también deben añadir la política de confianza `sts:TagSession` al rol que está lanzando Studio o la aplicación de IA para socios. De este modo se garantiza que la identidad se pueda propagar correctamente.

  ```
  {
      "Effect": "Allow",
      "Principal": {
          "Service": "sagemaker.amazonaws.com"
      },
      "Action": [
                  "sts:AssumeRole",
                  "sts:TagSession"
               ]
  }
  ```

 Tras configurar las credenciales, los administradores pueden dar a sus usuarios acceso a Studio o a la aplicación Partner AI AWS CLI mediante llamadas a la `CreatePartnerAppPresignedUrl` API `CreatePresignedDomainUrl` o a la API, respectivamente.

A continuación, los usuarios también pueden iniciar Studio desde la consola de SageMaker IA e iniciar las aplicaciones de IA asociadas desde Studio.

### `EnableIamSessionBasedIdentity`
<a name="partner-app-onboard-user-iam-session"></a>

`EnableIamSessionBasedIdentity` es un indicador de activación. Cuando el `EnableIamSessionBasedIdentity` indicador está activado, SageMaker AI pasa la información de la sesión de IAM como identidad de usuario de la aplicación Partner AI. Para obtener más información sobre AWS STS las sesiones, consulte [Usar credenciales temporales con AWS los recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html).

### Control de acceso
<a name="partner-app-onboard-user-access"></a>

 Para controlar el acceso a las aplicaciones de IA para socios, utilice una política de IAM asociada al rol de ejecución del perfil de usuario. Para lanzar una aplicación de IA asociada directamente desde Studio o mediante la AWS CLI función de ejecución del perfil de usuario debe tener una política que otorgue permisos para la `CreatePartnerAppPresignedUrl` API. Elimine este permiso del rol de ejecución del perfil de usuario para asegurarse de que no pueda iniciar aplicaciones de IA para socios. 

### Usuarios administradores raíz
<a name="partner-app-onboard-user-root"></a>

 Las aplicaciones de IA para socios Comet y Fiddler requieren al menos un usuario administrador raíz. Los usuarios administradores raíz tienen permisos para añadir usuarios normales y administradores y administrar los recursos. Los nombres de usuario proporcionados como usuarios administradores raíz deben coincidir con los nombres de usuario del origen de las identidades. 

 Si bien los usuarios administradores raíz siguen utilizando la SageMaker IA, los usuarios administradores normales no lo están y solo existen dentro de la aplicación de IA asociada hasta que se cierra la aplicación de IA asociada. 

 Los administradores pueden actualizar a los usuarios administradores raíz mediante la llamada a la API `UpdatePartnerApp`. Cuando se actualizan los usuarios administradores raíz, la lista actualizada de usuarios administradores raíz se transfiere a la aplicación de IA para socios. La aplicación de IA para socios se asegura de que todos los nombres de usuario de la lista tengan privilegios de administrador raíz. Si se elimina un usuario administrador raíz de la lista, el usuario seguirá conservando los permisos de administrador normales hasta que:
+ Se elimine al usuario de la aplicación.
+ Otro usuario administrador revoque los permisos de administrador del usuario.

**nota**  
Fiddler no admite la actualización de los usuarios administradores. Solo Comet permite actualizar los usuarios administradores raíz.  

 Para eliminar un usuario administrador raíz, primero debe actualizar la lista de usuarios administradores raíz que utilizan la API `UpdatePartnerApp`. A continuación, elimine o revoque los permisos de administrador a través de la interfaz de usuario de la aplicación de IA para socios.

 Si elimina un usuario administrador raíz de la interfaz de usuario de la aplicación de IA para socios sin actualizar la lista de usuarios administradores raíz con la API `UpdatePartnerApp`, el cambio es temporal. Cuando SageMaker AI envía la siguiente solicitud de actualización de la aplicación Partner AI, SageMaker AI envía la lista de administradores raíz que aún incluye al usuario a la aplicación Partner AI. Esto anula la eliminación realizada desde la interfaz de usuario de la aplicación de IA para socios. 

# Aprovisionamiento de aplicaciones de IA para socios
<a name="partner-apps-provision"></a>

Una vez que los administradores hayan configurado los permisos necesarios, pueden explorar y aprovisionar las aplicaciones de IA de Amazon SageMaker Partner para los usuarios del dominio.

Los administradores pueden ver todas las aplicaciones de IA asociadas disponibles, así como las aplicaciones de IA asociadas que hayan aprovisionado, desde la consola de [Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/). En la página **Aplicaciones de IA para socios**, los administradores pueden ver los detalles sobre el modelo de precios de cada aplicación de IA para socios y ponerlos a disposición de los usuarios. Los administradores pueden hacer que estén disponibles navegando hasta la aplicación de IA asociada para suscribirse AWS Marketplace a esa aplicación de IA asociada.

 Los administradores pueden aprovisionar nuevas aplicaciones desde la página Aplicaciones de IA para socios. También pueden ver las aplicaciones de IA para socios que ya han aprovisionado en la pestaña **Mis aplicaciones**.

**nota**  
Todos los usuarios pueden acceder a las aplicaciones para las que los administradores les concedan los permisos adecuados en una Cuenta de AWS. Las aplicaciones de IA para socios no están restringidas a un dominio o usuario específicos.

## Status
<a name="partner-apps-provision-status"></a>

 Cuando los administradores ven una aplicación de IA para socios que han aprovisionado, también pueden ver el estado de la aplicación con uno de los siguientes valores.
+  **Implementada**: la aplicación está lista para usarse. Los administradores pueden actualizar la configuración de la aplicación y eliminarla.
+ **Error**: se ha producido un problema con la implementación de la aplicación. Los administradores pueden solucionar el problema y volver a configurar la aplicación para implementarla.
+ **No implementada**: se ha suscrito a la aplicación, pero no se ha implementado. Los administradores pueden configurar la aplicación para implementarla.

## Opciones
<a name="partner-apps-provision-options"></a>

 Cuando los administradores configuran una aplicación, pueden decidir las siguientes opciones: 
+  **Nombre de la aplicación**: nombre exclusivo de la aplicación. 
+  **Programación de mantenimiento de aplicaciones**: las aplicaciones de IA para socios se someten a mantenimiento semanalmente. Con esta opción, los administradores eligen el día de la semana y la hora en que se realiza este mantenimiento. 
+  **Propagación de la identidad STS**: utilice esta opción para pasar el nombre de la sesión de IAM del lanzador AWS Security Token Service (AWS STS) como identidad de usuario de la aplicación Partner AI. Para obtener más información, consulte [Configuración de aplicaciones de IA para socios](partner-app-onboard.md). 
+  **Gestión de administradores**: algunas aplicaciones de IA para socios permiten añadir hasta cinco administradores con plenos derechos para administrar la funcionalidad de la aplicación de IA para socios. Esto se aplica solo a Comet y Fiddler. Para obtener más información, consulte [Configuración de aplicaciones de IA para socios](partner-app-onboard.md). 
+  **Rol de ejecución**: rol que utiliza la aplicación de IA para socios para acceder a los recursos y realizar acciones. Para obtener más información, consulte [Configuración de aplicaciones de IA para socios](partner-app-onboard.md). 
+  **Versión de la aplicación**: versión de la aplicación de IA para socios que quieren usar los administradores.  
+  **Selección de nivel**: nivel de implementación de la infraestructura para la aplicación de IA para socios. El tamaño del nivel afecta a la velocidad y a las capacidades de la aplicación. Para obtener más información, consulte [Configuración de aplicaciones de IA para socios](partner-app-onboard.md). 
+  **Política de bucket de Lakera S3**: solo lo requiere la aplicación Lakera-guard para acceder a un bucket de Amazon S3.

# Configura las aplicaciones de IA de Amazon SageMaker Partner SDKs
<a name="partner-apps-sdk"></a>

 En el siguiente tema se describe el proceso necesario para instalar y usar la aplicación específica con SDKs Amazon SageMaker Partner AI Apps. Para instalar y usar SDKs aplicaciones, debe especificar las variables de entorno específicas de las aplicaciones de IA asociadas, de modo que el SDK de la aplicación pueda captar las variables de entorno y activar la autorización. En las siguientes secciones se proporciona información sobre los pasos necesarios para completar esta operación para cada tipo de aplicación compatible. 

## Comet
<a name="partner-apps-sdk-comet"></a>

 Comet ofrece dos productos: 
+  Opik es un marco de evaluación de LLM de origen. 
+  La plataforma de ML de Comet se puede utilizar para realizar un seguimiento, comparar, explicar y optimizar los modelos a lo largo de todo el ciclo de vida de ML. 

Comet admite el uso de dos diferentes en SDKs función del producto con el que se interactúe. Complete el siguiente procedimiento para instalar y usar el Comet o el Opik. SDKs Para obtener más información sobre el SDK de Comet, consulte [Quickstart](https://www.comet.com/docs/v2/guides/quickstart/). Para obtener más información sobre el SDK de Opik, consulte [Open source LLM evaluation framework](https://github.com/comet-ml/opik).

1. Inicie el entorno en el que está utilizando el Comet o el Opik SDKs con las aplicaciones de IA asociadas. Para obtener información sobre el lanzamiento de una JupyterLab aplicación, consulte[Creación de un espacio](studio-updated-jl-user-guide-create-space.md). Para obtener más información sobre cómo lanzar un Editor de código, basado en la aplicación Code-OSS, Visual Studio Code - Open Source, consulte [Inicialización de una aplicación de editor de código en Studio](code-editor-use-studio.md).

1.  Abra un cuaderno de Jupyter o un espacio del Editor de código. 

1.  Desde el entorno de desarrollo, instale las versiones compatibles del SDK de Comet, Opik y SageMaker Python. Para ser compatible: 
   +  La versión del SDK de SageMaker Python debe ser como mínimo`2.237.0`.
   +  La versión del SDK de Comet debe ser la versión más reciente.
   +  La versión del SDK de Opik debe coincidir con la versión utilizada por la aplicación de Opik. Compruebe la versión de Opik utilizada en la interfaz de usuario de la aplicación web de Opik. La excepción es que la versión del SDK de Opik debe ser al menos `1.2.0` si la versión de la aplicación de Opik es `1.1.5`.
**nota**  
SageMaker JupyterLab viene con el SDK de SageMaker Python instalado. Sin embargo, es posible que tengas que actualizar el SDK de SageMaker Python si la versión es anterior a`2.237.0`.

   ```
   %pip install sagemaker>=2.237.0 comet_ml
   
   ##or
   
   %pip install sagemaker>=2.237.0 opik=<compatible-version>
   ```

1.  Configure las siguientes variables de entorno para el ARN del recurso de aplicación. Estas variables de entorno se utilizan para comunicarse con el Comet y el Opik. SDKs Para recuperar estos valores, vaya a la página de detalles de la aplicación en Amazon SageMaker Studio.

   ```
   os.environ['AWS_PARTNER_APP_AUTH'] = 'true'
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   ```

1.  En el caso de la aplicación de Comet, la URL del SDK se incluye automáticamente en el conjunto de claves de API en el siguiente paso. En su lugar, puede configurar la variable de entorno `COMET_URL_OVERRIDE` para que anule manualmente la URL del SDK.

   ```
   os.environ['COMET_URL_OVERRIDE'] = '<comet-url>'
   ```

1.  En el caso de la aplicación de Opik, la URL del SDK se incluye automáticamente en el conjunto de claves de API en el siguiente paso. En su lugar, puede configurar la variable de entorno `OPIK_URL_OVERRIDE` para que anule manualmente la URL del SDK. Para obtener el nombre del espacio de trabajo de Opik, consulte la aplicación de Opik y navegue hasta el espacio de trabajo del usuario.

   ```
   os.environ['OPIK_URL_OVERRIDE'] = '<opik-url>'
   os.environ['OPIK_WORKSPACE'] = '<workspace-name>'
   ```

1.  Defina la variable de entorno que identifica la clave de API para Comet u Opik. Se utiliza para verificar la conexión desde SageMaker la aplicación cuando se SDKs utilizan el Comet y el Opik. Esta clave de API es específica de la aplicación y no la administra. SageMaker Para obtener esta clave, debe iniciar sesión en la aplicación y recuperar la clave de API. La clave de API de Opik es la misma que la clave de API de Comet.

   ```
   os.environ['COMET_API_KEY'] = '<API-key>'
   os.environ["OPIK_API_KEY"] = os.environ["COMET_API_KEY"]
   ```

## Fiddler
<a name="partner-apps-sdk-fiddler"></a>

 Complete el siguiente procedimiento para instalar y utilizar el cliente Python de Fiddler. Para obtener más información sobre el cliente Python de Fiddler, consulte [About Client 3.x](https://docs.fiddler.ai/python-client-3-x/about-client-3x). 

1.  Inicie el entorno de bloc de notas en el que está utilizando el cliente Python de Fiddler con aplicaciones de IA asociadas. Para obtener información sobre el lanzamiento de una JupyterLab aplicación, consulte. [Creación de un espacio](studio-updated-jl-user-guide-create-space.md) Para obtener más información sobre cómo lanzar un Editor de código, basado en la aplicación Code-OSS, Visual Studio Code - Open Source, consulte [Inicialización de una aplicación de editor de código en Studio](code-editor-use-studio.md).

1.  Abra un cuaderno de Jupyter o un espacio del Editor de código. 

1.  Desde el entorno de desarrollo, instale las versiones Fiddler Python Client y SageMaker Python SDK. Para ser compatible: 
   +  La versión del SDK de SageMaker Python debe ser como mínimo`2.237.0`. 
   +  La versión del cliente Fiddler Python debe ser compatible con la versión de Fiddler utilizada en la aplicación. Tras comprobar la versión de Fiddler en la interfaz de usuario, consulte la [Matriz de compatibilidad](https://docs.fiddler.ai/history/compatibility-matrix) de Fiddler para ver la versión del cliente Fiddler Python compatible. 
**nota**  
SageMaker JupyterLab viene con el SDK de SageMaker Python instalado. Sin embargo, es posible que tengas que actualizar el SDK de SageMaker Python si la versión es anterior a`2.237.0`. 

   ```
   %pip install sagemaker>=2.237.0 fiddler-client=<compatible-version>
   ```

1.  Configure las siguientes variables de entorno para el ARN del recurso de aplicación y la URL del SDK. Estas variables de entorno se utilizan para comunicarse con el cliente Fiddler Python. Para recuperar estos valores, vaya a la página de detalles de la aplicación Fiddler en Amazon SageMaker Studio.   

   ```
   os.environ['AWS_PARTNER_APP_AUTH'] = 'true'
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   os.environ['AWS_PARTNER_APP_URL'] = '<partner-app-URL>'
   ```

1.  Establezca la variable de entorno que identifica la clave de API de la aplicación de Fiddler. Se usa para verificar la conexión desde SageMaker la aplicación Fiddler cuando se usa el Cliente Python de Fiddler. Esta clave de API es específica de la aplicación y no la administra. SageMaker Para obtener esta clave, debe iniciar sesión en la aplicación Fiddler y recuperar la clave de API. 

   ```
   os.environ['FIDDLER_KEY'] = '<API-key>'
   ```

## Deepchecks
<a name="partner-apps-sdk-deepchecks"></a>

 Complete el siguiente procedimiento para instalar y utilizar el SDK de Deepchecks Python. 

1.  Inicie el entorno de cuaderno en el que está utilizando el SDK de Deepchecks Python con las aplicaciones de IA para socios. Para obtener información sobre el lanzamiento de una JupyterLab aplicación, consulte. [Creación de un espacio](studio-updated-jl-user-guide-create-space.md) Para obtener más información sobre cómo lanzar un Editor de código, basado en la aplicación Code-OSS, Visual Studio Code - Open Source, consulte [Inicialización de una aplicación de editor de código en Studio](code-editor-use-studio.md).

1.  Abra un cuaderno de Jupyter o un espacio del Editor de código. 

1.  Desde el entorno de desarrollo, instale las versiones compatibles del SDK de Python y del SDK de SageMaker Python de Deepchecks.  Las aplicaciones de IA para socios ejecutan la versión `0.21.15` de Deepchecks. Para ser compatibles: 
   +  La versión del SDK de SageMaker Python debe ser como mínimo`2.237.0`. 
   +  El SDK de Deepchecks Python debe usar la versión secundaria `0.21`. 
**nota**  
SageMaker JupyterLab viene con el SDK de SageMaker Python instalado. Sin embargo, es posible que tengas que actualizar el SDK de SageMaker Python si la versión es anterior a`2.237.0`. 

   ```
   %pip install sagemaker>=2.237.0 deepchecks-llm-client>=0.21,<0.22
   ```

1.  Configure las siguientes variables de entorno para el ARN del recurso de aplicación y la URL del SDK. Estas variables de entorno se utilizan para comunicarse con el SDK de Deepchecks Python. Para recuperar estos valores, vaya a la página de detalles de la aplicación en Amazon SageMaker Studio.   

   ```
   os.environ['AWS_PARTNER_APP_AUTH'] = 'true'
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   os.environ['AWS_PARTNER_APP_URL'] = '<partner-app-URL>'
   ```

1.  Establezca la variable de entorno que identifica la clave de API de la aplicación de Deepchecks. Se usa para verificar la conexión desde SageMaker la aplicación Deepchecks cuando se usa el SDK de Python de Deepchecks. Esta clave de API es específica de la aplicación y no la administra. SageMaker Para obtener esta clave, consulta [Configuración: Instalación del SDK de Python y recuperación de claves de API](https://llmdocs.deepchecks.com/docs/setup-sdk-installation-api-key#generate-an-api-key-via-the-ui). 

   ```
   os.environ['DEEPCHECKS_API_KEY'] = '<API-key>'
   ```

## Lakera
<a name="partner-apps-sdk-lakera"></a>

 Lakera no ofrece ningún SDK. En su lugar, puede interactuar con la API Lakera Guard mediante solicitudes HTTP a los puntos de conexión disponibles en cualquier lenguaje de programación. Para obtener más información, consulte [Lakera Guard API](https://platform.lakera.ai/docs/api). 

 Para usar el SDK de SageMaker Python con Lakera, complete los siguientes pasos: 

1.  Inicie el entorno en el que está utilizando las aplicaciones de IA para socios. Para obtener información sobre cómo lanzar una JupyterLab aplicación, consulte[Creación de un espacio](studio-updated-jl-user-guide-create-space.md). Para obtener más información sobre cómo lanzar un Editor de código, basado en la aplicación Code-OSS, Visual Studio Code - Open Source, consulte [Inicialización de una aplicación de editor de código en Studio](code-editor-use-studio.md).

1.  Abra un cuaderno de Jupyter o un espacio del Editor de código. 

1.  Desde el entorno de desarrollo, instale la versión compatible del SDK de SageMaker Python. La versión del SDK de SageMaker Python debe ser como mínimo `2.237.0` 
**nota**  
SageMaker JupyterLab viene con el SDK de SageMaker Python instalado. Sin embargo, es posible que tengas que actualizar el SDK de SageMaker Python si la versión es anterior a`2.237.0`. 

   ```
   %pip install sagemaker>=2.237.0
   ```

1.  Configure las siguientes variables de entorno para el ARN del recurso de aplicación y la URL del SDK. Para recuperar estos valores, vaya a la página de detalles de la aplicación en Amazon SageMaker Studio. 

   ```
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   os.environ['AWS_PARTNER_APP_URL'] = '<partner-app-URL>'
   ```

# Aplicaciones de IA para socios en Studio
<a name="partner-apps-studio"></a>

 Una vez que el administrador haya añadido los permisos necesarios y los usuarios autorizados, los usuarios podrán ver la aplicación Amazon SageMaker Partner AI en Amazon SageMaker Studio. Desde Studio, los usuarios pueden lanzar aplicaciones cuyo uso haya sido aprobado por su administrador.

## Navegación y selección
<a name="partner-apps-studio-browse"></a>

 Para explorar las aplicaciones de IA para socios disponibles, los usuarios deben ir a Studio. Para obtener más información sobre cómo inicializar Studio, consulte [Inicie Amazon SageMaker Studio](studio-updated-launch.md).

 Una vez que los usuarios hayan iniciado Studio, podrán ver todas las aplicaciones de IA para socios disponibles marcando la sección **Aplicaciones de IA para socios** en el menú de navegación de la izquierda. La página **Aplicaciones de IA para socios** incluye todas las aplicaciones de IA para socios y proporciona información sobre si el administrador las ha implementado. Si no se han implementado las aplicaciones de IA asociadas deseadas, los usuarios pueden ponerse en contacto con el administrador para solicitar que implementen las aplicaciones de IA asociadas para usarlas en el dominio de SageMaker IA.

 Si la aplicación se ha implementado, los usuarios pueden abrir la interfaz de usuario de la aplicación de IA para socios para empezar a utilizarla o ver los detalles de la aplicación de IA para socios.

 Cuando los usuarios visualizan los detalles de la aplicación, ven el valor de lo siguiente. 
+  ARN: es el ARN de recursos de la aplicación de IA para socios.
+  URL del SDK: es la URL de la aplicación de IA asociada que el SDK de la aplicación de IA asociada utiliza para realizar tareas específicas de la aplicación, como el registro de datos de seguimiento de modelos y experimentos desde una JupyterLab libreta en Studio.

Los usuarios pueden usar estos valores para escribir código que utilice el SDK de la aplicación de IA para socios para tareas específicas de la aplicación.

La página de detalles de cada aplicación de IA para socios incluye un cuaderno de ejemplo. Para empezar, los usuarios pueden iniciar el bloc de notas de muestra en un JupyterLab espacio del entorno de Studio.

# Utilice AWS KMS los permisos para las aplicaciones de IA de Amazon SageMaker Partner
<a name="partner-apps-kms"></a>

Puedes proteger tus datos en reposo mediante el cifrado de las aplicaciones de IA de Amazon SageMaker Partner. De forma predeterminada, utiliza el cifrado del lado del servidor con una clave propia SageMaker . SageMaker también admite una opción de cifrado del lado del servidor con una clave KMS administrada por el cliente.

## Cifrado del lado del servidor con claves SageMaker administradas (predeterminado)
<a name="partner-apps-managed-key"></a>

Las aplicaciones de IA asociadas cifran todos los datos en reposo mediante una clave AWS gestionada de forma predeterminada.

## Cifrado del servidor con claves de KMS administradas por el cliente (opcional)
<a name="partner-apps-customer-managed-key"></a>

Las aplicaciones de inteligencia artificial de los socios admiten el uso de una clave simétrica gestionada por el cliente que usted crea, posee y administra para reemplazar la encriptación que ya AWS posee. Como usted tiene el control total de este cifrado, puede realizar dichas tareas como:
+ Establecer y mantener políticas de claves
+ Establecer y mantener concesiones y políticas de IAM
+ Habilitar y deshabilitar políticas de claves
+ Rotar el material criptográfico
+ Adición de etiquetas de 
+ Crear alias de clave
+ Programar la eliminación de claves

Para obtener más información, consulte las [claves administradas por el cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) en la * Guía para desarrolladores de AWS Key Management Service *.

## Cómo utilizan las aplicaciones de IA asociadas las subvenciones en AWS KMS
<a name="partner-apps-grants-cmk"></a>

Las aplicaciones de IA para socios necesitan disponer del permiso para utilizar su clave administrada por el cliente. Cuando crea una aplicación cifrada con una clave gestionada por el cliente, Partner AI Apps crea una subvención en su nombre enviando una CreateGrant solicitud a AWS KMS. Las subvenciones se AWS KMS utilizan para dar a Partner AI Apps acceso a una clave de KMS en la cuenta de un cliente.

Puede revocar el acceso a la concesión o eliminar el acceso del servicio a la clave administrada por el cliente en cualquier momento. Si lo hace, la aplicación de IA para socios no podrá acceder a ninguno de los datos cifrados por la clave administrada por el cliente, lo que afectará a las operaciones que dependen de esos datos. La aplicación no funcionará correctamente y no se podrá recuperar.

## Creación de una clave administrada por el cliente
<a name="partner-apps-create-cmk"></a>

Puede crear una clave simétrica gestionada por el cliente mediante el Consola de administración de AWS o el AWS KMS APIs.

**Para crear una clave simétrica administrada por el cliente**

Siga los pasos de [Creación de claves de KMS de cifrado simétricas](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) en la *Guía para desarrolladores de AWS Key Management Service *.

**Política de claves**

Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de clave. Para obtener más información, consulte [Determinación del acceso a las claves de AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/determining-access.html) en la *Guía para desarrolladores de AWS Key Management Service *.

Para utilizar su clave administrada por el cliente con sus recursos de la aplicación de IA para socios, en la política de claves deben permitirse las siguientes operaciones de API. La entidad principal de estas operaciones depende de si el rol se usa para crear o usar la aplicación. 
+ Creación de la aplicación:
  + `[kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)`
  + [https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 
+ Uso de la aplicación:
  + [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 
  + [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)

A continuación presentamos ejemplos de instrucciones de políticas que puede agregar para las aplicaciones de IA para socios en función de si la persona es un administrador o un usuario. Para obtener más información sobre cómo especificar permisos en una política, consulte [permisos de AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) en la *Guía para desarrolladores de AWS Key Management Service *. Para obtener más información sobre cómo solucionar problemas, consulte [Solución de problemas de acceso a las claves](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) en la *Guía para desarrolladores de AWS Key Management Service *.

**Administrador**

La siguiente instrucción de política se utiliza para el administrador que crea las aplicaciones de IA para socios.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "example-key-policy",
    "Statement": [
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/<admin-role>"
            },
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "sagemaker.us-east-1.amazonaws.com"
                }
            }
        }
    ]
}
```

------

**Servicio**

La siguiente instrucción de política es para el usuario de las aplicaciones de IA para socios.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id":"example-key-policy",
  "Statement":[
    {
      "Effect":"Allow",
      "Principal":{
        "AWS":"arn:aws:iam::111122223333:role/user-role"
      },
      "Action":[
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource":"*",
      "Condition":{
        "StringEquals":{
          "kms:ViaService":"sagemaker.us-east-1.amazonaws.com"
        }
      }
    }
  ]
}
```

------

# Configuración del uso compartido entre cuentas para las aplicaciones de SageMaker IA asociadas a Amazon AI
<a name="partner-app-resource-sharing-ram"></a>

Amazon SageMaker AI se integra con AWS Resource Access Manager (AWS RAM) para permitir el intercambio de recursos. AWS RAM es un servicio que te permite compartir algunos recursos de Amazon SageMaker AI con otros Cuentas de AWS o a través de ellos AWS Organizations. Con AWS RAM, puede compartir los recursos de su propiedad mediante la creación de un *recurso compartido*. Un uso compartido de recursos especifica los recursos que compartir y los consumidores con quienes compartirlos. Los consumidores pueden ser específicos Cuentas de AWS dentro o fuera de su organización AWS Organizations.

Para obtener más información al respecto AWS RAM, consulte la *[Guía AWS RAM del usuario](https://docs.aws.amazon.com/ram/latest/userguide/)*.

En este tema se explica cómo compartir los recursos que le pertenecen y cómo utilizar los recursos que se comparten con usted.

**Topics**
+ [Requisitos previos para compartir una aplicación Amazon SageMaker Partner AI](#partner-app-resource-sharing-ram-prereqs)
+ [Compartir una aplicación de IA de Amazon SageMaker Partner](#partner-app-resource-sharing-share)
+ [Aceptación de una invitación para compartir recursos](#partner-app-resource-sharing-responses)
+ [Identificación de una aplicación de IA Amazon SageMaker Partner compartida](#sharing-identify)
+ [Responsabilidades y permisos de las aplicaciones de IA compartidas de Amazon SageMaker Partner](#sharing-perms)

## Requisitos previos para compartir una aplicación Amazon SageMaker Partner AI
<a name="partner-app-resource-sharing-ram-prereqs"></a>
+ Para compartir una aplicación Amazon SageMaker Partner AI, debes tenerla en tu Cuenta de AWS. Esto significa que el recurso debe asignarse o suministrarse en su cuenta. No puedes compartir una aplicación Amazon SageMaker Partner AI que se haya compartido contigo.
+ Para compartir una aplicación Amazon SageMaker Partner AI con tu organización o unidad organizativa AWS Organizations, debes habilitar el uso compartido con AWS Organizations. Para obtener más información, consulte [Habilitar el uso compartido con AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs) en la *Guía del usuario de AWS RAM *.

## Compartir una aplicación de IA de Amazon SageMaker Partner
<a name="partner-app-resource-sharing-share"></a>

Para compartir una aplicación Amazon SageMaker Partner AI, debes añadirla a un recurso compartido. Un recurso compartido es un recurso de AWS RAM que le permite compartir los recursos a través de Cuentas de AWS. Un recurso compartido especifica los recursos que compartir y los consumidores con quienes se comparten. Cuando compartes una aplicación Amazon SageMaker Partner AI mediante la [consola Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker), la añades a un recurso compartido existente. Para añadir la aplicación Amazon SageMaker Partner AI a un nuevo recurso compartido, primero debe crear el recurso compartido mediante la [AWS RAM consola](https://console.aws.amazon.com/ram).

Puedes compartir una aplicación Amazon SageMaker Partner AI de tu propiedad mediante la consola Amazon SageMaker AI, la AWS RAM consola o la AWS CLI.

**Para compartir una aplicación Amazon SageMaker Partner AI de tu propiedad mediante la consola Amazon SageMaker AI**

1. Inicia sesión en la AWS RAM consola Consola de administración de AWS y ábrela en [https://console.aws.amazon.com/ram/casa](https://console.aws.amazon.com/ram/home).

1. En el panel principal, seleccione **Crear un recurso compartido**.

1. Introduzca un nombre para el recurso compartido que desea crear.

1. En la sección **Recursos**, en **Tipo de recurso**, selecciona **SageMaker AI Partner Apps**. Las aplicaciones para socios que puede compartir aparecen en la tabla.

1. Seleccione las aplicaciones para socios que desee compartir.

1. De forma opcional, puede especificar las etiquetas y, a continuación, elegir **Siguiente**.

1. Especifica Cuentas de AWS con qué quieres compartir las aplicaciones de tus socios.

1. Revise la configuración del recurso compartido y elija **Crear recurso compartido**. Puede que el servicio tarde varios minutos en finalizar la creación del recurso compartido.

**Para compartir una aplicación Amazon SageMaker Partner AI de tu propiedad mediante la AWS RAM consola**  
Consulte [Crear un recurso compartido](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create) en la *Guía del usuario de AWS RAM *.

**Para compartir una aplicación Amazon SageMaker Partner AI de tu propiedad mediante el AWS CLI**  
Utilice el comando [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html).

## Aceptación de una invitación para compartir recursos
<a name="partner-app-resource-sharing-responses"></a>

Cuando el propietario de un recurso configura un recurso compartido, cada consumidor Cuenta de AWS recibe una invitación para unirse al recurso compartido. El consumidor Cuentas de AWS debe aceptar la invitación para acceder a cualquier recurso compartido.

Para obtener más información sobre cómo aceptar una invitación para compartir recursos AWS RAM, consulte [Uso de AWS recursos compartidos](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html) en la *Guía del usuario de AWS Resource Access Manager*.

## Identificación de una aplicación de IA Amazon SageMaker Partner compartida
<a name="sharing-identify"></a>

Los propietarios y los consumidores pueden identificar las aplicaciones de IA compartidas de Amazon SageMaker Partner mediante la consola Amazon SageMaker AI y AWS CLI.

**Para identificar una aplicación Amazon SageMaker Partner AI compartida mediante la consola Amazon SageMaker AI**  
Consulte [Aplicaciones de IA para socios en Studio](partner-apps-studio.md).

**Para identificar una aplicación Amazon SageMaker Partner AI compartida mediante el AWS CLI**  
Utilice el comando [list-partner-apps](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-partner-apps.html). El comando devuelve las aplicaciones de IA de Amazon SageMaker Partner de las que eres propietario y las aplicaciones de IA de Amazon SageMaker Partner que has compartido contigo. `OwnerId`muestra el Cuenta de AWS ID del propietario de la aplicación Amazon SageMaker Partner AI.

## Responsabilidades y permisos de las aplicaciones de IA compartidas de Amazon SageMaker Partner
<a name="sharing-perms"></a>

La cuenta con la que se comparte una aplicación de IA de Amazon SageMaker Partner debe tener la siguiente AWS Identity and Access Management política.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Sid" : "AmazonSageMakerPartnerListAppsPermission",
      "Effect" : "Allow",
      "Action" : "sagemaker:ListPartnerApps",
      "Resource" : "*"
    },
    {
      "Sid" : "AmazonSageMakerPartnerAppsPermission",
      "Effect" : "Allow",
      "Action" : [
        "sagemaker:CreatePartnerAppPresignedUrl",
        "sagemaker:DescribePartnerApp",
        "sagemaker:CallPartnerAppApi"
      ],
      "Condition" : {
        "StringEquals" : {
          "aws:ResourceAccount" : [
                        "App-owner Cuenta de AWS-1", "App-owner Cuenta de AWS-2"]        
        }
      },
      "Resource" : "arn:aws:sagemaker:*:*:partner-app/*"
    }
  ]
}
```

------