

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Usa piscine calde gestite dall' SageMaker IA
<a name="train-warm-pools-how-to-use"></a>

Puoi usare pool caldi gestiti dall' SageMaker intelligenza artificiale tramite l'SDK SageMaker Python, la console Amazon SageMaker AI o tramite il livello basso. APIs Gli amministratori possono, in via opzionale, utilizzare la chiave di condizione `sagemaker:KeepAlivePeriod` per limitare ulteriormente i limiti `KeepAlivePeriodInSeconds` per determinati utenti o gruppi.

**Topics**
+ [Utilizzo dell' SageMaker SDK AI Python](#train-warm-pools-how-to-use-python-sdk)
+ [Utilizzo della console Amazon SageMaker AI](#train-warm-pools-how-to-use-sagemaker-console)
+ [Utilizzo del livello basso SageMaker APIs](#train-warm-pools-how-to-use-low-level-apis)
+ [Chiave di condizione IAM](#train-warm-pools-how-to-use-iam-condition-key)

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

Crea, aggiorna o termina i pool caldi utilizzando SageMaker Python SDK.

**Nota**  
Questa funzionalità è disponibile in SageMaker AI [Python SDK v2.110.0](https://pypi.org/project/sagemaker/2.110.0/) e versioni successive.

**Topics**
+ [Creazione di un warm pool](#train-warm-pools-how-to-use-python-sdk-create)
+ [Aggiornamento di un warm pool](#train-warm-pools-how-to-use-python-sdk-update)
+ [Terminazione di un warm pool](#train-warm-pools-how-to-use-python-sdk-terminate)

### Creazione di un warm pool
<a name="train-warm-pools-how-to-use-python-sdk-create"></a>

Per creare un pool caldo, usa SageMaker Python SDK per creare uno stimatore con un `keep_alive_period_in_seconds` valore maggiore di 0 e chiama. `fit()` Al termine del processo di addestramento viene mantenuto un warm pool. Per ulteriori informazioni sugli script di addestramento e sugli stimatori, consulta [Addestrare un modello con Python SDK SageMaker ](https://sagemaker.readthedocs.io/en/stable/overview.html#train-a-model-with-the-sagemaker-python-sdk). Se lo script non crea un warm pool, consulta [Creazione di warm pool](train-warm-pools.md#train-warm-pools-creation) per le possibili spiegazioni.

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

Quindi, crea un secondo processo di addestramento corrispondente. In questo esempio, creiamo `my-training-job-2`, che ha tutti gli attributi necessari a cui abbinare `my-training-job-1`, ma ha un iperparametro diverso per la sperimentazione. Il secondo processo di addestramento riutilizza il warm pool e si avvia più velocemente del primo processo di addestramento. Il seguente codice di esempio utilizza uno strumento di valutazione Tensorflow. La funzionalità warm pool può essere utilizzata con qualsiasi algoritmo di addestramento eseguito su Amazon SageMaker AI. Per ulteriori informazioni sugli attributi che devono corrispondere, consulta [Processi di addestramento corrispondenti](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/'}})
```

Controlla lo stato del warm pool di entrambi i processi di addestramento per confermare che il warm pool è `Reused` per `my-training-job-1` e `InUse` per `my-training-job-2`.

**Nota**  
I nomi dei lavori di formazione hanno dei date/time suffissi. I nomi dei processi di addestramento di esempio `my-training-job-1` e `my-training-job-2` devono essere sostituiti con i nomi dei processi di addestramento effettivi. È possibile utilizzare il comando `estimator.latest_training_job.job_name` per recuperare il nome effettivo del processo di addestramento.

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

Il risultato di `describe_training_job` fornisce tutti i dettagli su un determinato processo di addestramento. Trova l'attributo `WarmPoolStatus` per controllare le informazioni sul warm pool di un processo di addestramento. L'aspetto dell'output dovrebbe essere simile all’esempio seguente:

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

### Aggiornamento di un warm pool
<a name="train-warm-pools-how-to-use-python-sdk-update"></a>

Quando il processo di addestramento è completo e lo stato del warm pool è `Available`, puoi aggiornare il valore `KeepAlivePeriodInSeconds`.

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

### Terminazione di un warm pool
<a name="train-warm-pools-how-to-use-python-sdk-terminate"></a>

Per terminare manualmente un warm pool, imposta il valore `KeepAlivePeriodInSeconds ` su 0.

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

Il warm pool si interrompe automaticamente quando supera il valore `KeepAlivePeriodInSeconds` designato o se è disponibile un aggiornamento della patch per il cluster.

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

Tramite la console, puoi creare un warm pool, rilasciare un warm pool o controllare lo stato del warm pool e il tempo fatturabile di specifici processi di addestramento. Puoi anche vedere quale processo di addestramento corrispondente ha riutilizzato un warm pool.

1. Apri la [console Amazon SageMaker AI](https://console.aws.amazon.com/ec2/) e scegli **Training jobs** dal pannello di navigazione. Se applicabile, lo stato del warm pool di ogni processo di addestramento è visibile nella colonna **Stato del warm pool** e il tempo rimasto per un warm pool attivo è visibile nella colonna **Tempo rimasto**.

1. Per creare un processo di addestramento che utilizzi un warm pool dalla console, scegli **Crea processo di addestramento**. Quindi, assicurati di specificare un valore per il campo **Periodo keep alive** durante la configurazione delle risorse per i processi di addestramento. Questo valore deve essere un numero intero compreso tra 1 e 3600, che rappresenta la durata del tempo in secondi.

1. Per rilasciare un warm pool dalla console, seleziona un processo di addestramento specifico e scegli **Rilascia cluster** dal menu a discesa **Azioni**.

1. Per visualizzare ulteriori informazioni su un warm pool, scegli il nome del processo di addestramento. Nella pagina dei dettagli del processo, scorri verso il basso fino alla sezione **Stato del warm pool** per trovare lo stato del warm pool, il tempo rimasto se lo stato del warm pool è `Available`, i secondi fatturabili del warm pool e il nome del processo di addestramento che ha riutilizzato il warm pool, se il suo stato è `Reused`.

## Utilizzo del livello basso SageMaker APIs
<a name="train-warm-pools-how-to-use-low-level-apis"></a>

Usa pool caldi gestiti dall' SageMaker intelligenza artificiale con l' SageMaker API o la AWS CLI.

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

Configura le piscine calde gestite dall' SageMaker IA utilizzando l' SageMaker API con i seguenti comandi:
+ [ 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>

Configura le piscine calde gestite dall' SageMaker IA utilizzando la AWS CLI con i seguenti comandi:
+ [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)

## Chiave di condizione IAM
<a name="train-warm-pools-how-to-use-iam-condition-key"></a>

Gli amministratori possono opzionalmente utilizzare la chiave di `sagemaker:KeepAlivePeriod` condizione per limitare ulteriormente i `KeepAlivePeriodInSeconds` limiti per determinati utenti o gruppi. SageMaker I pool caldi gestiti dall'IA sono limitati a un `KeepAlivePeriodInSeconds` valore di 3600 secondi (60 minuti), ma gli amministratori possono abbassare questo limite se necessario. 

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

****  

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

------

Per ulteriori informazioni, consulta [Condition keys for Amazon SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-policy-keys) nel *Service Authorization Reference*.