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à.
Esegui lavori TensorFlow di formazione con SageMaker Training Compiler
Puoi utilizzare qualsiasi SageMaker interfaccia per eseguire un processo di formazione con SageMaker Training Compiler: Amazon SageMaker Studio Classic, AWS SDK for Python (Boto3) Amazon SageMaker Notebook Instances e. AWS Command Line Interface
Argomenti
Usare l' SageMaker SDK Python
Per attivare SageMaker Training Compiler, aggiungi il compiler_config
parametro allo stimatore SageMaker TensorFlow o Hugging Face. Importa la classe TrainingCompilerConfig
e passa un'istanza al parametro compiler_config
. I seguenti esempi di codice mostrano la struttura delle classi di SageMaker estimazione con SageMaker Training Compiler attivato.
Suggerimento
Per iniziare con i modelli predefiniti forniti dalle librerie TensorFlow e Transformers, prova a utilizzare le dimensioni dei batch fornite nella tabella di riferimento all'indirizzo. Modelli testati
Nota
SageMaker Training Compiler for TensorFlow è disponibile tramite gli estimatori del SageMaker TensorFlow
Per informazioni adatte al tuo caso d'uso, consulta una delle seguenti opzioni.
L'elenco seguente è l'insieme minimo di parametri richiesti per eseguire un processo di SageMaker formazione con il compilatore.
Nota
Quando si utilizza lo stimatore SageMaker Hugging Face, è necessario specificare i compiler_config
parametri, transformers_version
tensorflow_version
hyperparameters
, e per abilitare Training Compiler. SageMaker Non è possibile utilizzare image_uri
per specificare manualmente i Deep Learning Containers integrati nel compilatore Addestramento elencati in Framework supportati.
-
entry_point
(str) — Obbligatorio. Specifica il nome del file dello script di addestramento. -
instance_count
(int) — Obbligatorio. Specifica il numero di istanze. -
instance_type
(str) — Obbligatorio. Specifica il tipo di istanza. -
transformers_version
(str) — Richiesto solo quando si utilizza lo stimatore SageMaker Hugging Face. Specificate la versione della libreria Hugging Face Transformers supportata da Training Compiler. SageMaker Per trovare le versioni disponibili, consulta Framework supportati. -
framework_version
otensorflow_version
(str) — Obbligatorio. Specificate la TensorFlow versione supportata da Training Compiler. SageMaker Per trovare le versioni disponibili, consulta Framework supportati.Nota
Quando si utilizza lo SageMaker TensorFlow stimatore, è necessario specificare.
framework_version
Quando si utilizza lo stimatore SageMaker Hugging Face, è necessario specificare entrambi e.
transformers_version
tensorflow_version
-
hyperparameters
(dict) — Facoltativo. Specifica gli iperparametri per il processo di addestramento, ad esempion_gpus
batch_size
, elearning_rate
. Quando abiliti SageMaker Training Compiler, prova batch di dimensioni maggiori e regola il tasso di apprendimento di conseguenza. Per trovare casi di studio sull'uso del compilatore e sulle dimensioni dei batch modificate per migliorare la velocità di addestramento, consulta Modelli testati e SageMaker Taccuini e blog di esempio per Training Compiler. -
compiler_config
(TrainingCompilerConfig oggetto) — Obbligatorio. Includi questo parametro per attivare SageMaker Training Compiler. I seguenti sono parametri per la classeTrainingCompilerConfig
.-
enabled
(bool) — Facoltativo.False
SpecificareTrue
o attivare o disattivare SageMaker Training Compiler. Il valore predefinito èTrue
. -
debug
(bool) — Facoltativo. Per ricevere log di addestramento più dettagliati relativi ai processi di addestramento accelerati dal compilatore, modificalo inTrue
. Tuttavia, la registrazione aggiuntiva potrebbe aumentare il sovraccarico e rallentare il processo di addestramento compilato. Il valore predefinito èFalse
.
-
avvertimento
Se attivi SageMaker Debugger, ciò potrebbe influire sulle prestazioni di Training Compiler. SageMaker Ti consigliamo di disattivare Debugger durante l'esecuzione di SageMaker Training Compiler per assicurarti che non ci sia alcun impatto sulle prestazioni. Per ulteriori informazioni, consulta Considerazioni. Per disattivare le funzionalità del Debugger, aggiungi i seguenti due argomenti all’estimatore:
disable_profiler=True, debugger_hook_config=False
Se il processo di addestramento con il compilatore viene avviato correttamente, durante la fase di inizializzazione del processo vengono ricevuti i seguenti log:
-
Con
TrainingCompilerConfig(debug=False)
Found configuration for Training Compiler Configuring SM Training Compiler...
-
Con
TrainingCompilerConfig(debug=True)
Found configuration for Training Compiler Configuring SM Training Compiler... Training Compiler set to debug mode
Utilizzo dell'SDK SageMaker Python e dell'Extending SageMaker Framework Deep Learning Containers
AWS Deep Learning Containers (DLC) per TensorFlow l'uso, versioni adattate TensorFlow che includono modifiche al framework open source TensorFlow . I SageMaker Framework Deep Learning Containers
Nota
Questa funzionalità di personalizzazione Docker è attualmente disponibile solo per. TensorFlow
Per estendere e personalizzare i SageMaker TensorFlow DLC in base al tuo caso d'uso, usa le seguenti istruzioni.
Crea un Dockerfile.
Usa il seguente modello di Dockerfile per estendere il DLC. SageMaker TensorFlow Devi usare l'immagine SageMaker TensorFlow DLC come immagine di base del tuo contenitore Docker. Per trovare gli URI delle immagini SageMaker TensorFlow DLC, consulta Supported Frameworks.
# SageMaker TensorFlow Deep Learning Container image FROM 763104351884.dkr.ecr.
<aws-region>
.amazonaws.com/tensorflow-training:<image-tag>
ENV PATH="/opt/ml/code:${PATH}" # This environment variable is used by the SageMaker container # to determine user code directory. ENV SAGEMAKER_SUBMIT_DIRECTORY /opt/ml/code # Add more code lines to customize for your use-case ...
Per ulteriori informazioni, consulta Passaggio 2: Creare e caricare gli script di addestramento Dockerfile e Python.
Considerate le seguenti insidie quando estendete i DLC del Framework: SageMaker
-
Non disinstallate o modificate in modo esplicito la versione dei TensorFlow pacchetti nei contenitori. SageMaker In questo modo i TensorFlow pacchetti AWS ottimizzati vengono sovrascritti da TensorFlow pacchetti open source, il che potrebbe comportare un peggioramento delle prestazioni.
-
Fai attenzione ai pacchetti che hanno una TensorFlow versione o un tipo particolare come dipendenza. Questi pacchetti potrebbero disinstallare implicitamente i pacchetti AWS ottimizzati TensorFlow e installare pacchetti open source TensorFlow .
Ad esempio, è noto che le librerie tensorflow/models e tensorflow/texttensorflow/training/docker/<tensorflow-version>/py3/<cuda-version>/Dockerfile.gpu
. Nei Dockerfile, dovresti trovare le righe di codice per reinstallare il TensorFlow binario AWS gestito (specificato nella variabile di TF_URL
ambiente) e altre dipendenze in ordine. La sezione di reinstallazione sarà simile all'esempio seguente:
# tf-models does not respect existing installations of TensorFlow # and always installs open source TensorFlow RUN pip3 install --no-cache-dir -U \ tf-models-official==
x.y.z
RUN pip3 uninstall -y tensorflow tensorflow-gpu \ ; pip3 install --no-cache-dir -U \ ${TF_URL} \ tensorflow-io==x.y.z
\ tensorflow-datasets==x.y.z
Crea e invia a ECR
Per creare e inviare il tuo container Docker ad Amazon ECR, segui le istruzioni nei seguenti link:
Esegui utilizzando SageMaker Python SDK Estimator
Usa lo stimatore del SageMaker TensorFlow framework come al solito. Devi specificare image_uri
per utilizzare il nuovo container ospitato in Amazon ECR.
import sagemaker, boto3 from sagemaker import get_execution_role from sagemaker.tensorflow import TensorFlow, TrainingCompilerConfig account_id = boto3.client('sts').get_caller_identity().get('Account') ecr_repository =
'tf-custom-container-test'
tag =':latest'
region = boto3.session.Session().region_name uri_suffix = 'amazonaws.com' byoc_image_uri = '{}.dkr.ecr.{}.{}/{}'.format( account_id, region, uri_suffix, ecr_repository + tag ) byoc_image_uri # This should return something like # 111122223333.dkr.ecr.us-east-2.amazonaws.com/tf-custom-container-test:latest estimator = TensorFlow( image_uri=image_uri, role=get_execution_role(), base_job_name='tf-custom-container-test-job
', instance_count=1, instance_type='ml.p3.8xlarge
' compiler_config=TrainingCompilerConfig(), disable_profiler=True, debugger_hook_config=False ) # Start training estimator.fit()
Abilita SageMaker Training Compiler utilizzando l'operazione API SageMaker CreateTrainingJob
"AlgorithmSpecification": { "TrainingImage": "
<sagemaker-training-compiler-enabled-dlc-image>
" }, "HyperParameters": { "sagemaker_training_compiler_enabled": "true", "sagemaker_training_compiler_debug_mode": "false" }
Per trovare un elenco completo degli URI delle immagini dei contenitori di deep learning su cui è implementato SageMaker Training Compiler, consulta. Framework supportati