

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Use piscinas quentes gerenciadas por SageMaker IA
<a name="train-warm-pools-how-to-use"></a>

Você pode usar pools quentes gerenciados por SageMaker IA por meio do SDK do SageMaker Python, do console Amazon SageMaker AI ou das APIs de baixo nível. Opcionalmente, os administradores podem usar a chave de condição `sagemaker:KeepAlivePeriod` para restringir ainda mais os limites `KeepAlivePeriodInSeconds` de determinados usuários ou grupos.

**Topics**
+ [Usando o SageMaker SDK AI Python](#train-warm-pools-how-to-use-python-sdk)
+ [Usando o console Amazon SageMaker AI](#train-warm-pools-how-to-use-sagemaker-console)
+ [Usando as APIs de baixo nível SageMaker](#train-warm-pools-how-to-use-low-level-apis)
+ [Chave de condição do IAM](#train-warm-pools-how-to-use-iam-condition-key)

## Usando o SageMaker SDK AI Python
<a name="train-warm-pools-how-to-use-python-sdk"></a>

Crie, atualize ou encerre pools quentes usando o SDK do SageMaker Python.

**nota**  
Esse recurso está disponível no SageMaker AI [Python SDK v2.110.0](https://pypi.org/project/sagemaker/2.110.0/) e versões posteriores.

**Topics**
+ [Criar um grupo de grupo de aquecimento](#train-warm-pools-how-to-use-python-sdk-create)
+ [Atualizar um grupo de aquecimento](#train-warm-pools-how-to-use-python-sdk-update)
+ [Encerrar um grupo de aquecimento](#train-warm-pools-how-to-use-python-sdk-terminate)

### Criar um grupo de grupo de aquecimento
<a name="train-warm-pools-how-to-use-python-sdk-create"></a>

Para criar um pool aquecido, use o SDK do SageMaker Python para criar um estimador com um `keep_alive_period_in_seconds` valor maior que 0 e chame. `fit()` Quando o trabalho de treinamento é concluído, um grupo de aquecimento é retido. Para obter mais informações sobre scripts de treinamento e estimadores, consulte [Treinar um modelo com o SDK do Python SageMaker ](https://sagemaker.readthedocs.io/en/stable/overview.html#train-a-model-with-the-sagemaker-python-sdk). Se o seu script não criar um grupo de aquecimento, consulte [Criação de grupo de aquecimento](train-warm-pools.md#train-warm-pools-creation) para possíveis explicações.

```
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/'}})
```

Em seguida, crie um segundo trabalho de treinamento correspondente. Neste exemplo, criamos `my-training-job-2`, que tem todos os atributos necessários para combinar `my-training-job-1`, mas tem um hiperparâmetro diferente para experimentação. O segundo trabalho de treinamento reutiliza o pool quente e inicia mais rápido do que o primeiro trabalho de treinamento. O exemplo de código a seguir usa um estimador do Tensorflow. O recurso de piscina aquecida pode ser usado com qualquer algoritmo de treinamento executado na Amazon SageMaker AI. Para obter mais informações sobre quais atributos precisam corresponder, consulte [Combinar os trabalhos de treinamento](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/'}})
```

Verifique o status do grupo de aquecimento de ambos os trabalhos de treinamento para confirmar se o grupo de aquecimento é `Reused` para `my-training-job-1` e `InUse` para `my-training-job-2`.

**nota**  
Os nomes dos cargos de treinamento têm date/time sufixos. Os exemplos de nomes `my-training-job-1` de trabalhos de treinamento `my-training-job-2` devem ser substituídos pelos nomes reais dos trabalhos de treinamento. Você pode usar o comando `estimator.latest_training_job.job_name` para buscar o nome real do trabalho de treinamento.

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

O resultado de `describe_training_job` fornece todos os detalhes sobre um determinado trabalho de treinamento. Encontre o atributo `WarmPoolStatus` para verificar as informações sobre o grupo de aquecimento de um trabalho de treinamento. Sua saída deve ser semelhante ao seguinte exemplo:

```
# 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'}
...
```

### Atualizar um grupo de aquecimento
<a name="train-warm-pools-how-to-use-python-sdk-update"></a>

Quando o trabalho de treinamento estiver concluído e o status do grupo de aquecimento for `Available`, você poderá atualizar o valor `KeepAlivePeriodInSeconds`.

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

### Encerrar um grupo de aquecimento
<a name="train-warm-pools-how-to-use-python-sdk-terminate"></a>

Para encerrar manualmente um grupo de aquecimento, defina o valor `KeepAlivePeriodInSeconds ` como 0.

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

O grupo de aquecimento é encerrado automaticamente quando excede o valor `KeepAlivePeriodInSeconds` designado ou se houver uma atualização de patch para o cluster.

## Usando o console Amazon SageMaker AI
<a name="train-warm-pools-how-to-use-sagemaker-console"></a>

Por meio do console, você pode criar um ponto quente, liberar um ponto quente ou verificar o status do ponto quente e o tempo faturável de trabalhos de treinamento específicos. Você também pode ver qual trabalho de treinamento correspondente reutilizou um ponto quente.

1. Abra o [console do Amazon SageMaker AI](https://console.aws.amazon.com/ec2/) e escolha **Tarefas de treinamento** no painel de navegação. Se aplicável, o status do ponto quente de cada trabalho de treinamento é visível na coluna **Status do ponto quente** e o tempo restante para um ponto quente ativo é visível na coluna **Tempo restante**.

1. Para criar um trabalho de treinamento que use um ponto quente do console, escolha **Criar trabalho de treinamento**. Em seguida, não se esqueça de especificar um valor para o campo **Período de manutenção** ao configurar seus recursos de trabalho de treinamento. Esse valor deve ser um número inteiro entre 1 e 3600, o que representa o período de tempo em segundos.

1. Para liberar um grupo de aquecimento do console, selecione um trabalho de treinamento específico e escolha **Liberar cluster** no menu suspenso **Ações**.

1. Para ver mais informações sobre um grupo de aquecimento, escolha um nome do trabalho de treinamento. Na página de detalhes do trabalho, desça até a seção **Status do pool quente** para encontrar o status do grupo de aquecimento, o tempo restante se o status do ponto quente for `Available`, os segundos faturáveis do grupo de aquecimento e o nome do trabalho de treinamento que reutilizou o grupo de aquecimento se o status do grupo de aquecimento for `Reused`.

## Usando as APIs de baixo nível SageMaker
<a name="train-warm-pools-how-to-use-low-level-apis"></a>

Use pools quentes gerenciados por SageMaker IA com a SageMaker API ou a AWS CLI.

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

Configure pools quentes gerenciados por SageMaker IA usando a SageMaker API com os seguintes 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 pools quentes gerenciados por SageMaker IA usando a AWS CLI com os seguintes 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)

## Chave de condição do IAM
<a name="train-warm-pools-how-to-use-iam-condition-key"></a>

Opcionalmente, os administradores podem usar a chave de `sagemaker:KeepAlivePeriod` condição para restringir ainda mais os `KeepAlivePeriodInSeconds` limites de determinados usuários ou grupos. SageMaker Os pools quentes gerenciados por IA estão limitados a um `KeepAlivePeriodInSeconds` valor de 3600 segundos (60 minutos), mas os administradores podem reduzir esse limite, se necessário. 

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

****  

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

------

Para obter mais informações, consulte [Chaves de condição para Amazon SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-policy-keys) na *Referência de autorização de serviço*.