As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Execute trabalhos TensorFlow de treinamento com o SageMaker Training Compiler
Você pode usar qualquer uma das interfaces de SageMaker IA para executar um trabalho de treinamento com o SageMaker Training Compiler: Amazon SageMaker Studio Classic, Amazon SageMaker Notebook Instances e. AWS SDK for Python (Boto3) AWS Command Line Interface
Tópicos
Usando o SDK do SageMaker Python
Para ativar o SageMaker Training Compiler, adicione o compiler_config
parâmetro ao estimador SageMaker AI TensorFlow ou Hugging Face. Importe a classe TrainingCompilerConfig
e passe uma instância dela para o parâmetro compiler_config
. Os exemplos de código a seguir mostram a estrutura das classes de estimadores de SageMaker IA com o SageMaker Training Compiler ativado.
dica
Para começar com os modelos pré-construídos fornecidos pelas bibliotecas TensorFlow e Transformers, tente usar os tamanhos de lote fornecidos na tabela de referência em. Modelos testados
nota
SageMaker O Training Compiler for TensorFlow está disponível por meio dos estimadores da SageMaker estrutura AI TensorFlow
Para obter informações adequadas ao seu caso de uso, consulte uma das opções a seguir.
A lista a seguir é o conjunto mínimo de parâmetros necessários para executar um trabalho de SageMaker treinamento com o compilador.
nota
Ao usar o estimador SageMaker AI Hugging Face, você deve especificar os parâmetros,,hyperparameters
, e compiler_config
para ativar o transformers_version
Training tensorflow_version
Compiler. SageMaker Você não pode usar image_uri
para especificar manualmente os contêineres de aprendizado profundo integrados ao Training Compiler que estão listados em Estruturas compatíveis.
-
entry_point
(str): Obrigatório. Especifique o nome do arquivo do seu script de treinamento. -
instance_count
(int): Obrigatório. Especifique o número de instâncias. -
instance_type
(str): Obrigatório. Especifique o tipo de instância. -
transformers_version
(str) — Exigido somente ao usar o estimador SageMaker AI Hugging Face. Especifique a versão da biblioteca Hugging Face Transformers suportada pelo Training Compiler. SageMaker Para encontrar as versões disponíveis, consulte Estruturas compatíveis. -
framework_version
outensorflow_version
(str): Obrigatório. Especifique a TensorFlow versão compatível com o SageMaker Training Compiler. Para encontrar as versões disponíveis, consulte Estruturas compatíveis.nota
Ao usar o TensorFlow estimador de SageMaker IA, você deve especificar.
framework_version
Ao usar o estimador SageMaker AI Hugging Face, você deve especificar e.
transformers_version
tensorflow_version
-
hyperparameters
(dict): Opcional. Especifique hiperparâmetros para o trabalho de treinamenton_gpus
,batch_size
e.learning_rate
Ao ativar o SageMaker Training Compiler, experimente lotes maiores e ajuste a taxa de aprendizado de acordo. Para encontrar estudos de caso sobre o uso do compilador e tamanhos de lote ajustados para melhorar a velocidade de treinamento, consulte Modelos testados e SageMaker Exemplos de notebooks e blogs de compilador de treinamento. -
compiler_config
(TrainingCompilerConfig objeto) — Obrigatório. Inclua esse parâmetro para ativar o SageMaker Training Compiler. Veja a seguir os parâmetros para a classeTrainingCompilerConfig
.-
enabled
(bool): Opcional. EspecifiqueTrue
ouFalse
ative ou desative o SageMaker Training Compiler. O valor padrão éTrue
. -
debug
(bool): Opcional. Para receber logs de treinamento mais detalhados de seus trabalhos de treinamento acelerados por compilador, altere-os paraTrue
. No entanto, o registro adicional pode aumentar a sobrecarga e retardar o trabalho de treinamento compilado. O valor padrão éFalse
.
-
Atenção
Se você ativar o SageMaker Debugger, isso poderá afetar o desempenho do SageMaker Training Compiler. Recomendamos que você desative o Debugger ao executar o SageMaker Training Compiler para garantir que não haja impacto no desempenho. Para obter mais informações, consulte Considerações. Para desativar as funcionalidades do Depurador, adicione os dois argumentos a seguir ao estimador.
disable_profiler=True, debugger_hook_config=False
Se o trabalho de treinamento com o compilador for iniciado com êxito, você receberá os seguintes logs durante a fase de inicialização do trabalho:
-
Com
TrainingCompilerConfig(debug=False)
Found configuration for Training Compiler Configuring SM Training Compiler...
-
Com
TrainingCompilerConfig(debug=True)
Found configuration for Training Compiler Configuring SM Training Compiler... Training Compiler set to debug mode
Usando o SDK SageMaker AI Python e estendendo os contêineres de Deep Learning do SageMaker AI Framework
AWS Deep Learning Containers (DLC) para TensorFlow uso em versões adaptadas TensorFlow que incluem mudanças na estrutura de código aberto TensorFlow . Os SageMaker AI Framework Deep Learning Containers
nota
Atualmente, esse recurso de personalização do Docker está disponível apenas para. TensorFlow
Para estender e personalizar a SageMaker IA TensorFlow DLCs para seu caso de uso, use as instruções a seguir.
Crie um Dockerfile.
Use o modelo Dockerfile a seguir para estender o DLC SageMaker AI TensorFlow . Você deve usar a imagem SageMaker AI TensorFlow DLC como imagem base do seu contêiner Docker. Para encontrar a imagem do TensorFlow DLC SageMaker AI URIs, consulte Estruturas suportadas.
# 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 ...
Para mais informações, consulte Etapa 2: Como criar e fazer upload dos scripts de treinamento do Dockerfile e do Python.
Considere as seguintes armadilhas ao estender o SageMaker AI Framework: DLCs
-
Não desinstale nem altere explicitamente a versão dos TensorFlow pacotes nos contêineres de SageMaker IA. Isso faz com que os TensorFlow pacotes AWS otimizados sejam substituídos por TensorFlow pacotes de código aberto, o que pode resultar na degradação do desempenho.
-
Cuidado com os pacotes que têm uma TensorFlow versão ou um sabor específico como dependência. Esses pacotes podem desinstalar implicitamente os pacotes AWS otimizados TensorFlow e instalar pacotes de código aberto TensorFlow .
Por exemplo, há um problema conhecido de que as bibliotecas tensorflow/models e tensorflow/texttensorflow/training/docker/<tensorflow-version>/py3/<cuda-version>/Dockerfile.gpu
. Nos Dockerfiles, você deve encontrar as linhas de código para reinstalar o TensorFlow binário AWS gerenciado (especificado para a variável de TF_URL
ambiente) e outras dependências em ordem. A seção de Reinstalar deve se parecer com o seguinte exemplo:
# 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
Compile e envie para o ECR
Para compilar e enviar seu contêiner do Docker para o Amazon ECR, siga as instruções nos links a seguir.
Execute usando o SageMaker Python SDK Estimator
Use o estimador da TensorFlow estrutura de SageMaker IA como de costume. Você deve especificar image_uri
para usar o novo contêiner que você hospedou no 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()
Ativar o compilador de SageMaker treinamento usando a operação da CreateTrainingJob
API SageMaker AI
SageMaker As opções de configuração do Training Compiler devem ser especificadas por meio do HyperParameters
campo AlgorithmSpecification
e na sintaxe da solicitação para a operação da CreateTrainingJob
API
"AlgorithmSpecification": { "TrainingImage": "
<sagemaker-training-compiler-enabled-dlc-image>
" }, "HyperParameters": { "sagemaker_training_compiler_enabled": "true", "sagemaker_training_compiler_debug_mode": "false" }
Para encontrar uma lista completa de imagens de contêiner de aprendizado profundo URIs que têm o SageMaker Training Compiler implementado, consulteEstruturas compatíveis.