Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

TensorFlow

Modo de foco
TensorFlow - SageMaker IA da Amazon

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

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

Traga seu próprio TensorFlow modelo para a SageMaker IA e execute o trabalho de treinamento com o SageMaker Training Compiler.

TensorFlow Modelos

SageMaker O Training Compiler otimiza automaticamente as cargas de trabalho de treinamento de modelos criadas com base na TensorFlow API nativa ou na API Keras de alto nível.

dica

Para pré-processar seu conjunto de dados de entrada, certifique-se de usar um formato de entrada estática. O formato de entradas dinâmicas pode iniciar a recompilação do modelo e pode aumentar o tempo total de treinamento.

Usando o Keras (recomendado)

Para obter a melhor aceleração do compilador, recomendamos usar modelos que sejam subclasses de Keras ( TensorFlow tf.keras.Model).

Para treinamento em uma única GPU

Não há nenhuma alteração adicional que você precise fazer no script de treinamento.

Sem o Keras

SageMaker O Training Compiler não oferece suporte à execução antecipada em. TensorFlow Portanto, você deve envolver seu modelo e os loops de treinamento com a TensorFlow função decorator (@tf.function) para aproveitar a aceleração do compilador.

SageMaker O Training Compiler executa uma otimização em nível de gráfico e usa o decorador para garantir que suas TensorFlow funções estejam configuradas para serem executadas no modo gráfico.

Para treinamento em uma única GPU

TensorFlow A versão 2.0 ou posterior tem a execução rápida ativada por padrão, então você deve adicionar o @tf.function decorador na frente de cada função usada para construir um modelo. TensorFlow

TensorFlow Modelos com transformadores Hugging Face

TensorFlow os modelos com Hugging Face Transformers são baseados na API tf.keras.Model. TensorFlow O Hugging Face Transformers também fornece classes de modelos pré-treinados TensorFlow para ajudar a reduzir o esforço de configuração de modelos de processamento de linguagem natural (PNL). Depois de criar seu próprio script de treinamento usando a biblioteca Transformers, você pode executar o script de treinamento usando o HuggingFace estimador de SageMaker IA com a classe de configuração do SageMaker Training Compiler, conforme mostrado no tópico anterior em. Execute trabalhos TensorFlow de treinamento com o SageMaker Training Compiler

SageMaker O Training Compiler otimiza automaticamente as cargas de trabalho de treinamento de modelos criadas com base na TensorFlow API nativa ou na API Keras de alto nível, como os modelos de transformadores. TensorFlow

dica

Ao criar uma tokenização para um modelo de PNL com o uso de transformações no seu script de treinamento, certifique-se de usar uma forma de tensor de entrada estática especificando padding='max_length'. Não use padding='longest' porque o preenchimento da sequência mais longa do lote pode alterar a forma do tensor de cada lote de treinamento. A forma dinâmica de entrada pode iniciar a recompilação do modelo e pode aumentar o tempo total de treinamento. Para obter mais informações sobre as opções de preenchimento de tokenização de transformadores, consulte Preenchimento e truncamento na documentação de Transformadores do Hugging Face.

Como usar o Keras

Para obter a melhor aceleração do compilador, recomendamos usar modelos que sejam subclasses de Keras ( TensorFlow tf.keras.Model). Conforme observado na página Quick Tour na documentação do Hugging Face Transformers, você pode usar os modelos como modelos Keras regulares. TensorFlow

Para treinamento em uma única GPU

Não há nenhuma alteração adicional que você precise fazer no script de treinamento.

Para treinamento distribuído

SageMaker A aceleração do Training Compiler funciona de forma transparente para cargas de trabalho com várias GPUs quando o modelo é construído e treinado usando Keras APIs dentro do escopo da chamada. tf.distribute.Strategy.scope()

  1. Escolha a estratégia correta de treinamento distribuído.

    1. Para várias GPUs de nó único, use tf.distribute.MirroredStrategy para configurar a estratégia.

      strategy = tf.distribute.MirroredStrategy()
    2. Para várias GPUs de vários nós, adicione o código a seguir para definir adequadamente a configuração de treinamento TensorFlow distribuído antes de criar a estratégia.

      def set_sm_dist_config(): DEFAULT_PORT = '8890' DEFAULT_CONFIG_FILE = '/opt/ml/input/config/resourceconfig.json' with open(DEFAULT_CONFIG_FILE) as f: config = json.loads(f.read()) current_host = config['current_host'] tf_config = { 'cluster': { 'worker': [] }, 'task': {'type': 'worker', 'index': -1} } for i, host in enumerate(config['hosts']): tf_config['cluster']['worker'].append("%s:%s" % (host, DEFAULT_PORT)) if current_host == host: tf_config['task']['index'] = i os.environ['TF_CONFIG'] = json.dumps(tf_config) set_sm_dist_config()

      Use tf.distribute.MultiWorkerMirroredStrategy para configurar a estratégia.

      strategy = tf.distribute.MultiWorkerMirroredStrategy()
  2. Usando a estratégia de sua escolha, conclua o modelo.

    with strategy.scope(): # create a model and do fit

Sem o Keras

Se você quiser trazer modelos personalizados com loops de treinamento personalizados TensorFlow sem o Keras, envolva o modelo e o loop de treinamento com a TensorFlow função decorator (@tf.function) para aproveitar a aceleração do compilador.

SageMaker O Training Compiler executa uma otimização em nível de gráfico e usa o decorador para garantir que suas TensorFlow funções estejam configuradas para serem executadas no modo gráfico.

Para treinamento em uma única GPU

TensorFlow A versão 2.0 ou posterior tem a execução rápida ativada por padrão, então você deve adicionar o @tf.function decorador na frente de cada função usada para construir um modelo. TensorFlow

Para treinamento distribuído

Além das alterações necessárias para Usar o Keras para treinamento distribuído, você precisa garantir que as funções a serem executadas em cada GPU sejam anotadas com @tf.function, enquanto as funções de comunicação entre GPUs não forem anotadas. O código de treinamento de exemplo deve se parecer com o seguinte:

@tf.function() def compiled_step(inputs, outputs): with tf.GradientTape() as tape: pred=model(inputs, training=True) total_loss=loss_object(outputs, pred)/args.batch_size gradients=tape.gradient(total_loss, model.trainable_variables) return total_loss, pred, gradients def train_step(inputs, outputs): total_loss, pred, gradients=compiled_step(inputs, outputs) if args.weight_decay > 0.: gradients=[g+v*args.weight_decay for g,v in zip(gradients, model.trainable_variables)] optimizer.apply_gradients(zip(gradients, model.trainable_variables)) train_loss.update_state(total_loss) train_accuracy.update_state(outputs, pred) @tf.function() def train_step_dist(inputs, outputs): strategy.run(train_step, args= (inputs, outputs))

Observe que essas instruções podem ser usadas tanto para várias GPUs de nó único quanto para várias GPUs de vários nós.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.