

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.

# Utilice piscinas calientes gestionadas por SageMaker IA
<a name="train-warm-pools-how-to-use"></a>

Puedes usar piscinas calientes gestionadas por SageMaker IA a través del SDK de SageMaker Python, la consola Amazon SageMaker AI o a través del nivel inferior APIs. De forma opcional, los administradores pueden utilizar la clave de condición `sagemaker:KeepAlivePeriod` para restringir aún más los límites de `KeepAlivePeriodInSeconds` para determinados usuarios o grupos.

**Topics**
+ [Uso del SDK de Python para SageMaker IA](#train-warm-pools-how-to-use-python-sdk)
+ [Uso de la consola Amazon SageMaker AI](#train-warm-pools-how-to-use-sagemaker-console)
+ [Usando el nivel bajo SageMaker APIs](#train-warm-pools-how-to-use-low-level-apis)
+ [Clave de condición de IAM](#train-warm-pools-how-to-use-iam-condition-key)

## Uso del SDK de Python para SageMaker IA
<a name="train-warm-pools-how-to-use-python-sdk"></a>

Cree, actualice o termine las piscinas calientes mediante el SDK de SageMaker Python.

**nota**  
Esta función está disponible en el [SDK de Python para SageMaker IA v2.110.0](https://pypi.org/project/sagemaker/2.110.0/) y versiones posteriores.

**Topics**
+ [Creación de un grupo de calentamiento](#train-warm-pools-how-to-use-python-sdk-create)
+ [Actualización de un grupo de calentamiento](#train-warm-pools-how-to-use-python-sdk-update)
+ [Terminar un grupo de calentamiento](#train-warm-pools-how-to-use-python-sdk-terminate)

### Creación de un grupo de calentamiento
<a name="train-warm-pools-how-to-use-python-sdk-create"></a>

Para crear una piscina caliente, utilice el SDK de SageMaker Python para crear un estimador con un `keep_alive_period_in_seconds` valor superior a 0 y llame. `fit()` Cuando se completa el trabajo de entrenamiento, se conserva un grupo de calentamiento. Para obtener más información sobre el entrenamiento de scripts y estimadores, consulte [Entrenar un modelo con el SDK de SageMaker Python](https://sagemaker.readthedocs.io/en/stable/overview.html#train-a-model-with-the-sagemaker-python-sdk). Si su script no crea un grupo de calentamiento, consulte [Creación de un grupo de calentamiento](train-warm-pools.md#train-warm-pools-creation) para posibles explicaciones.

```
import sagemaker
from sagemaker import get_execution_role
from sagemaker.tensorflow import TensorFlow

# Creates a SageMaker AI session and gets execution role
session = sagemaker.Session()
role = get_execution_role()

# Creates an example estimator
estimator = TensorFlow(
    ...
    entry_point={{'my-training-script.py'}},
    source_dir={{'code'}},
    role={{role}},
    model_dir={{'model_dir'}},
    framework_version={{'2.2'}},
    py_version={{'py37'}},
    job_name={{'my-training-job-1'}},
    instance_type={{'ml.g4dn.xlarge'}},
    instance_count={{1}},
    volume_size={{250}},
    hyperparameters={
        "batch-size": {{512}},
        "epochs": {{1}},
        "learning-rate": {{1e-3}},
        "beta_1": {{0.9}},
        "beta_2": {{0.999}},
    },
    keep_alive_period_in_seconds={{1800}},
)

# Starts a SageMaker training job and waits until completion
estimator.fit({{'s3://my_bucket/my_training_data/'}})
```

A continuación, cree un segundo trabajo de entrenamiento coincidente. En este ejemplo, creamos `my-training-job-2`, que tiene todos los atributos necesarios para coincidir con `my-training-job-1`, pero tiene un hiperparámetro diferente para la experimentación. El segundo trabajo de entrenamiento reutiliza el grupo de calentamiento y se inicia más rápido que el primer trabajo de entrenamiento. En el siguiente ejemplo de código se utiliza un estimador de Tensorflow. La función de piscina caliente se puede utilizar con cualquier algoritmo de entrenamiento que se ejecute en Amazon SageMaker AI. Para obtener más información sobre los atributos que deben coincidir, consulte [Emparejar trabajos de entrenamiento](train-warm-pools.md#train-warm-pools-matching-criteria).

```
# Creates an example estimator
estimator = TensorFlow(
    ...
    entry_point={{'my-training-script.py'}},
    source_dir={{'code'}},
    role={{role}},
    model_dir={{'model_dir'}},
    framework_version={{'py37'}},
    py_version={{'pyxy'}},
    job_name={{'my-training-job-2'}},
    instance_type={{'ml.g4dn.xlarge'}},
    instance_count={{1}},
    volume_size={{250}},
    hyperparameters={
        "batch-size": {{512}},
        "epochs": {{2}},
        "learning-rate": {{1e-3}},
        "beta_1": {{0.9}},
        "beta_2": {{0.999}},
    },
    keep_alive_period_in_seconds={{1800}},
)

# Starts a SageMaker training job and waits until completion
estimator.fit({{'s3://my_bucket/my_training_data/'}})
```

Compruebe el estado del grupo de calentamiento en ambos trabajos de entrenamiento para confirmar que el grupo de calentamiento es `Reused` para `my-training-job-1` y `InUse` para `my-training-job-2`.

**nota**  
Los nombres de los trabajos de formación tienen date/time sufijos. Los nombres de los trabajos de entrenamiento del ejemplo `my-training-job-1` y `my-training-job-2` deberían sustituirse por los nombres reales de los trabajos de entrenamiento. Puede utilizar el comando `estimator.latest_training_job.job_name` para obtener el nombre real del trabajo de entrenamiento.

```
session.describe_training_job({{'my-training-job-1'}})
session.describe_training_job({{'my-training-job-2'}})
```

El resultado de `describe_training_job` proporciona todos los detalles sobre un trabajo de entrenamiento determinado. Busque el atributo `WarmPoolStatus` para comprobar la información sobre el grupo de calentamiento de un trabajo de entrenamiento. El resultado debería tener un aspecto similar al siguiente ejemplo:

```
# Warm pool status for training-job-1
...
'WarmPoolStatus': {'Status': 'Reused', 
  'ResourceRetainedBillableTimeInSeconds': 1000,
  'ReusedByName': my-training-job-2}
...

# Warm pool status for training-job-2
... 
'WarmPoolStatus': {'Status': 'InUse'}
...
```

### Actualización de un grupo de calentamiento
<a name="train-warm-pools-how-to-use-python-sdk-update"></a>

Cuando se complete el trabajo de entrenamiento y se encuentre el estado del grupo de calentamiento sea `Available`, podrá actualizar el valor `KeepAlivePeriodInSeconds`.

```
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":{{3600}}})
```

### Terminar un grupo de calentamiento
<a name="train-warm-pools-how-to-use-python-sdk-terminate"></a>

Para terminar manualmente un grupo de calentamiento, establezca el valor `KeepAlivePeriodInSeconds ` en 0.

```
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":0})
```

El grupo de calentamiento termina automáticamente cuando supera el valor `KeepAlivePeriodInSeconds` designado o si hay una actualización de parche para el clúster.

## Uso de la consola Amazon SageMaker AI
<a name="train-warm-pools-how-to-use-sagemaker-console"></a>

A través de la consola, puede crear un grupo de calentamiento, liberar un grupo de calentamiento o comprobar el estado del grupo de calentamiento y el tiempo facturable de trabajos de entrenamiento específicos. También puede ver qué trabajo de entrenamiento coincidente reutilizó un grupo de calentamiento.

1. Abre la [consola Amazon SageMaker AI](https://console.aws.amazon.com/ec2/) y selecciona **Training jobs** en el panel de navegación. Si corresponde, el estado del grupo de calentamiento de cada trabajo de entrenamiento aparece en la columna **Warm pool status (Estado del grupo de calentamiento)** y el tiempo que queda para un grupo de calentamiento activa aparece en la columna **Time left (Tiempo restante)**.

1. Para crear un trabajo de entrenamiento que utilice un grupo de calentamiento desde la consola, seleccione **Create training job (Crear trabajo de entrenamiento)**. A continuación, asegúrese de especificar un valor para el campo **Keep alive period (Período de mantenimiento de vida)** al configurar los recursos del trabajo de entrenamiento. Este valor debe ser un número entero entre 1 y 3600, que representa la duración del tiempo en segundos.

1. Para liberar un grupo de calentamiento de la consola, seleccione un trabajo de entrenamiento específico y elija **Release cluster (Liberar clúster)** en el menú desplegable **Actions (Acciones)**.

1. Para ver más información sobre un grupo de calentamiento, selecciónelo de un trabajo de entrenamiento. En la página de detalles del trabajo, desplácese hacia abajo hasta la sección **Warm pool status (Estadode grupo de calentamiento)** para ver el estado del grupo de calentamiento, el tiempo restante si el estado del grupo de calentamiento es `Available`, los segundos facturables del mismo y el nombre del trabajo de entrenamiento que los reutilizó si su estado es `Reused`.

## Usando el nivel bajo SageMaker APIs
<a name="train-warm-pools-how-to-use-low-level-apis"></a>

Utilice piscinas calientes gestionadas por SageMaker IA con la SageMaker API o la AWS CLI.

### SageMaker API DE IA
<a name="train-warm-pools-how-to-use-low-level-apis-sagemaker"></a>

Configure piscinas calientes gestionadas por SageMaker IA mediante la SageMaker API con los siguientes comandos:
+ [ CreateTrainingJob ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
+ [ UpdateTrainingJob ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html)
+ [ ListTrainingJobs ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrainingJobs.html)
+ [ DescribeTrainingJob ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html)

### AWS CLI
<a name="train-warm-pools-how-to-use-low-level-apis-cli"></a>

Configure piscinas calientes gestionadas por SageMaker IA mediante la AWS CLI con los siguientes comandos:
+ [create-training-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-training-job.html)
+ [update-training-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-training-job.html)
+ [list-training-jobs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/list-training-jobs.html)
+ [describe-training-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/describe-training-job.html)

## Clave de condición de IAM
<a name="train-warm-pools-how-to-use-iam-condition-key"></a>

Los administradores pueden utilizar, de forma opcional, la clave de `sagemaker:KeepAlivePeriod` condición para restringir aún más los `KeepAlivePeriodInSeconds` límites para determinados usuarios o grupos. SageMaker Las piscinas calientes gestionadas por IA están limitadas a un `KeepAlivePeriodInSeconds` valor de 3600 segundos (60 minutos), pero los administradores pueden reducir este límite si es necesario. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnforceKeepAlivePeriodLimit",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateTrainingJob"
            ],
            "Resource": "*",
            "Condition": {
                "NumericLessThanIfExists": {
                    "sagemaker:KeepAlivePeriod": "{{1800}}"
                }
            }
        }
    ]
}
```

------

Para obtener más información, consulte [Claves de condición de Amazon SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-policy-keys) en la *Referencia de autorización de servicio*.