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 SageMaker gestite
Puoi usare pool caldi SageMaker gestiti tramite SageMaker PythonSDK, la SageMaker console Amazon 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.
Argomenti
Usare SageMaker Python SDK
Crea, aggiorna o termina i pool caldi usando SageMaker PythonSDK.
Nota
Questa funzionalità è disponibile in SageMaker Python SDK v2.110.0
Creazione di un warm pool
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 Train a Model with the Python SageMaker
import sagemaker from sagemaker import get_execution_role from sagemaker.tensorflow import TensorFlow # Creates a SageMaker 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 funzione warm pool può essere utilizzata con qualsiasi algoritmo di allenamento in esecuzione su Amazon SageMaker. Per ulteriori informazioni sugli attributi che devono corrispondere, consulta Processi di addestramento corrispondenti.
# 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 processi di addestramento hanno suffissi di data/ora. 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
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
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 SageMaker console Amazon
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.
-
Apri la SageMaker console Amazon
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. -
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.
-
Per rilasciare un warm pool dalla console, seleziona un processo di addestramento specifico e scegli Rilascia cluster dal menu a discesa Azioni.
-
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
Usa piscine calde SageMaker gestite con SageMaker API o. AWS CLI
SageMaker API
Configura le piscine calde SageMaker gestite utilizzando SageMaker API i seguenti comandi:
AWS CLI
Configurare le piscine calde SageMaker gestite utilizzando AWS CLI i seguenti comandi:
IAMchiave di condizione
Gli amministratori possono opzionalmente utilizzare la chiave di sagemaker:KeepAlivePeriod
condizione per limitare ulteriormente i KeepAlivePeriodInSeconds
limiti per determinati utenti o gruppi. SageMaker le piscine calde gestite sono limitate a un KeepAlivePeriodInSeconds
valore di 3600 secondi (60 minuti), ma gli amministratori possono abbassare questo limite se necessario.
{ "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 nel Service Authorization Reference.