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
Importante
Avviso di deprecazione: SageMaker Training Compiler non è supportato in Python SDK v3. SageMaker Se attualmente stai utilizzando Training Compiler, continua a utilizzare Python SDK v2. SageMaker Per i nuovi progetti, considera l'utilizzo della classe unificata con i framework supportatiModelTrainer. Consulta la documentazione di SageMaker Python SDK per indicazioni sulla migrazione.
Puoi utilizzare qualsiasi interfaccia SageMaker AI per eseguire un lavoro di formazione con SageMaker Training Compiler: Amazon SageMaker Studio Classic, istanze Amazon SageMaker Notebook e. AWS SDK per Python (Boto3) AWS Command Line Interface
Argomenti
Usare l'SDK Python SageMaker
Per attivare SageMaker Training Compiler, aggiungi il compiler_config parametro allo stimatore SageMaker AI 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 stimatori SageMaker AI con SageMaker Training Compiler attivato.
Suggerimento
Per iniziare con i modelli predefiniti forniti dalle librerie Transformers 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 stimatori del framework SageMaker AI TensorFlow
Per informazioni adatte al tuo caso d'uso, consulta una delle seguenti opzioni.
L'elenco seguente è il set minimo di parametri necessari per eseguire un processo di SageMaker formazione con il compilatore.
Nota
Quando si utilizza lo stimatore SageMaker AI Hugging Face, è necessario specificare i compiler_config parametritransformers_version, tensorflow_versionhyperparameters, 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 AI Hugging Face. Specifica la versione della libreria Hugging Face Transformers supportata da Training Compiler. SageMaker Per trovare le versioni disponibili, consulta Framework supportati. -
framework_versionotensorflow_version(str) — Obbligatorio. Specifica la TensorFlow versione supportata da Training Compiler. SageMaker Per trovare le versioni disponibili, consulta Framework supportati.Nota
Quando si utilizza lo TensorFlow stimatore SageMaker AI, è necessario specificare.
framework_versionQuando si utilizza lo stimatore SageMaker AI Hugging Face, è necessario specificare sia che.
transformers_versiontensorflow_version -
hyperparameters(dict) — Facoltativo. Specifica gli iperparametri per il processo di addestramento, ad esempion_gpusbatch_size, elearning_rate. Quando abiliti SageMaker Training Compiler, prova batch di dimensioni maggiori e regola la velocità 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 di 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. SpecificaTrueoFalseper 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
L'attivazione di SageMaker Debugger potrebbe influire sulle prestazioni di SageMaker Training Compiler. Ti consigliamo di disattivare Debugger durante l'esecuzione di SageMaker Training Compiler per assicurarti che non vi sia alcun impatto sulle prestazioni. Per ulteriori informazioni, consulta Considerazioni. Per disattivare le funzionalità di Debugger, aggiungi i seguenti due argomenti allo strumento di valutazione:
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 di SageMaker AI Python SDK ed SageMaker Extending AI Framework Deep Learning Containers
AWS Le versioni adattate all' TensorFlow uso dei TensorFlow Deep Learning Containers (DLC) includono modifiche al framework open source. TensorFlow Gli SageMaker AI Framework Deep Learning Containers
Nota
Questa funzionalità di personalizzazione di Docker è attualmente disponibile solo per. TensorFlow
Per estendere e personalizzare i TensorFlow DLC SageMaker AI in base al tuo caso d'uso, utilizza le seguenti istruzioni.
Crea un Dockerfile.
Usa il seguente modello di Dockerfile per estendere il DLC AI. SageMaker TensorFlow È necessario utilizzare l'immagine SageMaker AI TensorFlow DLC come immagine base del contenitore Docker. Per trovare gli URI delle immagini SageMaker AI TensorFlow DLC, consulta Supported Frameworks. https://docs.aws.amazon.com/sagemaker/latest/dg/training-compiler-support.html#training-compiler-supported-frameworks
# SageMaker AI 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 AI 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 Fase 2: creare e caricare gli script di addestramento Dockerfile e Python.
Quando estendi i DLC di AI Framework, considera le seguenti insidie: SageMaker
-
Non disinstallate o modificate esplicitamente la versione dei TensorFlow pacchetti nei contenitori AI. SageMaker In questo modo, i TensorFlow pacchetti AWS ottimizzati vengono sovrascritti dai 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, c'è un problema noto per cui le tensorflow/text tensorflow/training/docker/<tensorflow-version>/py3/<cuda-version>/Dockerfile.gpu. Nei Dockerfiles, dovresti trovare le righe di codice per reinstallare il TensorFlow binario AWS gestito (specificato nella variabile di TF_URL ambiente) e le 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.zRUN 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 usando Python SDK Estimator SageMaker
Usa lo stimatore del TensorFlow framework SageMaker AI 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 il SageMaker Training Compiler utilizzando l'operazione SageMaker AI API CreateTrainingJob
SageMaker Le opzioni di configurazione del Training Compiler devono essere specificate tramite il HyperParameters campo AlgorithmSpecification and nella sintassi della richiesta per il funzionamento dell'CreateTrainingJobAPI.
"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 di immagini dei contenitori di deep learning in cui è implementato SageMaker Training Compiler, consulta. Framework supportati