

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 SageMaker Python SDK, do console Amazon SageMaker AI ou do nível inferior. APIs 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 o nível baixo SageMaker APIs](#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 o nível baixo SageMaker APIs
<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 AI
<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*.