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 de treinamento do TensorFlow com o SageMaker Training Compiler
Você pode usar qualquer uma das interfaces do SageMaker AI para executar uma tarefa de treinamento com o SageMaker Training Compiler: Amazon SageMaker Studio Classic, instâncias de caderno do Amazon SageMaker, AWS SDK para Python (Boto3) e AWS Command Line Interface.
Tópicos
Usando o SageMaker Python SDK
Para ativar o SageMaker Training Compiler, adicione o parâmetro compiler_config aos estimadores do TensorFlow ou Hugging Face do SageMaker AI. 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 de classes de estimadores do SageMaker AI com o SageMaker Training Compiler ativado.
dica
Para começar com modelos pré-construídos fornecidos pelo TensorFlow e bibliotecas de Transformadores, tente usar os tamanhos de lote fornecidos na tabela de referência em Modelos testados.
nota
O SageMaker Training Compiler para TensorFlow está disponível por meio dos estimadores de framework 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 treinamento do SageMaker com o compilador.
nota
Ao usar o estimador Hugging Face do SageMaker AI, você deve especificar os parâmetros transformers_version, tensorflow_version, hyperparameters e compiler_config para habilitar o SageMaker Training Compiler. 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): obrigatório somente quando usar o estimador Hugging Face do SageMaker AI. Especifique a versão da biblioteca Hugging Face Transformers compatível com o SageMaker Training Compiler. Para encontrar as versões disponíveis, consulte Estruturas compatíveis. -
framework_versionoutensorflow_version(str): Obrigatório. Especifique a versão do TensorFlow compatível com o SageMaker Training Compiler. Para encontrar as versões disponíveis, consulte Estruturas compatíveis.nota
Ao usar o estimador TensorFlow do SageMaker AI, você deve especificar
framework_version.Ao usar o estimador Hugging Face do SageMaker AI, você deve especificar
transformers_versionetensorflow_version. -
hyperparameters(dict): Opcional. Especifique hiperparâmetros para o trabalho de treinamenton_gpus,batch_sizee.learning_rateAo ativar o SageMaker Training Compiler, experimente lotes maiores e ajuste a taxa de aprendizado adequadamente. 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 Exemplos de cadernos e blogs do training compiler do SageMaker. -
compiler_config(objeto TrainingCompilerConfig): Obrigatório. Inclua esse parâmetro para ativar o SageMaker Training Compiler. Veja a seguir os parâmetros para a classeTrainingCompilerConfig.-
enabled(bool): Opcional. EspecifiqueTrueouFalsepara ativar ou desativar 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, ele poderá afetar o desempenho do SageMaker Training Compiler. Recomendamos que desative o Depurador ao executar o SageMaker Training Compiler para garantir que não haja impacto no desempenho. Para ter 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
Usar o SageMaker AI Python SDK e estender os contêineres de deep learning do framework do SageMaker AI
Os Contêineres de Aprendizado Profundo AWS (DLC) para TensorFlow usam versões adaptadas do TensorFlow que incluem alterações no framework de código aberto do TensorFlow. Os contêineres de deep learning do framework do SageMaker AI
nota
Atualmente, esse atributo de personalização do Docker está disponível apenas para o TensorFlow.
Para estender e personalizar os DLCs do TensorFlow do SageMaker AI para seu caso de uso, use as instruções a seguir.
Crie um Dockerfile.
Use o modelo do Dockerfile a seguir para estender o DLC do TensorFlow do SageMaker AI. Você deve usar a imagem de DLC do TensorFlow do SageMaker AI como imagem base do seu contêiner do Docker. Para encontrar os URIs de imagem do DLC do TensorFlow do SageMaker AI, consulte Frameworks compatíveis.
# 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 os DLCs do framework do SageMaker AI:
-
Não desinstale nem altere explicitamente a versão dos pacotes do TensorFlow nos contêineres do SageMaker AI. Isso faz com que os pacotes AWS otimizados do TensorFlow sejam substituídos por pacotes do TensorFlow de código aberto, o que pode resultar na degradação do desempenho.
-
Cuidado com os pacotes que têm uma versão ou um tipo específico do TensorFlow como dependência. Esses pacotes podem desinstalar implicitamente o TensorFlow AWS otimizado e instalar pacotes TensorFlow de código aberto.
Por exemplo, há um problema conhecido de que as bibliotecas tensorflow/modelostensorflow/training/docker/<tensorflow-version>/py3/<cuda-version>/Dockerfile.gpu. Nos Dockerfiles, você deve encontrar as linhas de código para reinstalar o binário TensorFlow gerenciado da AWS (especificado para a variável de ambiente TF_URL) 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.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
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 Estimador do SageMaker Python SDK
Use o estimador de framework TensorFlow do SageMaker AI 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()
Habilitar o SageMaker Training Compiler usando a operação de API CreateTrainingJob do SageMaker AI
As opções de configuração do SageMaker Training Compiler devem ser especificadas por meio dos campos AlgorithmSpecification e HyperParameters na sintaxe da solicitação para a operação CreateTrainingJob da 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 URIs de imagens de contêiner de aprendizado profundo que têm o SageMaker Training Compiler implementado, consulte Estruturas compatíveis.