Usa piscine calde SageMaker gestite - Amazon SageMaker

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.

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 e versioni successive.

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 . SDK Se lo script non crea un warm pool, consulta Creazione di warm pool per le possibili spiegazioni.

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.

  1. 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.

  2. 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.

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

  4. 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.