Como treinar usando o algoritmo BERT integrado

O treinamento com algoritmos integrados no AI Platform Training permite enviar o conjunto de dados e treinar um modelo sem a necessidade de escrever código de treinamento. Nesta página, você verá como funciona o algoritmo integrado do BERT e como usá-lo.

Visão geral

Esse algoritmo integrado pode realizar treinamento e exportação de modelos:

  1. Treinamento: com o conjunto de dados e os parâmetros do modelo fornecidos por você, o AI Platform Training executa o treinamento usando o Implementação do BERT do TensorFlow.
  2. Como exportar: usando o checkpoint inicial fornecido, produza um modelo serializado no diretório de job desejado. Esse modelo pode então ser implantado no AI Platform.

Limitações

Os recursos a seguir não são compatíveis com o treinamento com o algoritmo integrado BERT:

  • Pré-processamento automático de dados: essa versão do BERT requer que os dados de entrada estejam na forma de TFRecords para treinamento e saída. Um aplicativo de treinamento precisa ser feito para gerenciar automaticamente a entrada não formatada.

Tipos de máquina compatíveis

Os níveis de escalonamento e tipos de máquina do AI Platform Training a seguir são compatíveis:

  • ScaleTier BASIC
  • ScaleTier BASIC_TPU
  • CUSTOMNível de escalonamento PERSONALIZADO com qualquer um dos tipos de máquina do Compute Engine compatíveis com o AI Platform Training.
  • CUSTOMNível de escalonamento PERSONALIZADO com qualquer um dos tipos de máquina legados a seguir:
    • standard
    • large_model
    • complex_model_s
    • complex_model_m
    • complex_model_l
    • standard_gpu
    • standard_p100
    • standard_v100
    • large_model_v100
    • complex_model_m_gpu
    • complex_model_l_gpu
    • complex_model_m_p100
    • complex_model_m_v100
    • complex_model_l_v100
    • TPU_V2 (8 núcleos)

Recomendamos o uso de um tipo de máquina com acesso a TPUs.

Formatar dados de entrada

Verifique se os dados de entrada e avaliação estão na forma de TFRecords antes do treinamento do modelo.

Verificar as permissões do bucket do Cloud Storage

Para armazenar seus dados, use um bucket do Cloud Storage no mesmo projeto do Google Cloud usado para executar jobs do AI Platform Training. Caso contrário, conceda acesso do AI Platform Training ao bucket do Cloud Storage em que os dados estão armazenados.

Enviar um job de treinamento do BERT

Nesta seção, explicamos como enviar um job de treinamento usando o algoritmo BERT integrado.

Você encontra explicações breves de cada hiperparâmetro no Console do Google Cloud e uma explicação mais abrangente na referência do algoritmo BERT integrado.

Console

  1. Acesse a página "Jobs" do AI Platform Training no Console do Google Cloud:

    Página "Jobs" do AI Platform Training

  2. Clique no botão Novo job de treinamento. Nas opções exibidas abaixo, clique em Treinamento de algoritmo integrado.

  3. Na página Criar um novo job de treinamento, selecione BERT e clique em Avançar.

  4. Para saber mais sobre todos os parâmetros disponíveis, siga os links no Console do Google Cloud e consulte a referência integrada do BERT para obter mais detalhes.

gcloud

  1. Defina variáveis de ambiente para o job, preenchendo o [VALUES-IN-BRACKETS] com seus próprios valores:

       # Specify the name of the Cloud Storage bucket where you want your
       # training outputs to be stored, and the Docker container for
       # your built-in algorithm selection.
       BUCKET_NAME='BUCKET_NAME'
       IMAGE_URI='gcr.io/cloud-ml-algos/bert:latest'
    
       DATE="$(date '+%Y%m%d_%H%M%S')"
       MODEL_NAME='MODEL_NAME'
       JOB_ID="${MODEL_NAME}_${DATE}"
    
       JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
       BERT_BASE_DIR='gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16'
       MODEL_DIR='${STORAGE_BUCKET}/bert-output'
       GLUE_DIR='gs://cloud-tpu-checkpoints/bert/classification'
       TASK='mnli'
    
  2. Envie o job de treinamento usando gcloud ai-platform jobs training submit. Ajuste este exemplo genérico para trabalhar com seu conjunto de dados:

       gcloud ai-platform jobs submit training $JOB_ID \
          --master-image-uri=$IMAGE_URI --scale-tier=BASIC_TPU --job-dir=$JOB_DIR \
          -- \
          --mode='train_and_eval' \
          --input_meta_data_path=${GLUE_DIR}/${TASK}_meta_data \
          --train_data_path=${GLUE_DIR}/${TASK}_train.tf_record \
          --eval_data_path=${GLUE_DIR}/${TASK}_eval.tf_record \
          --bert_config_file=${BERT_BASE_DIR}/bert_config.json \
          --init_checkpoint=${BERT_BASE_DIR}/bert_model.ckpt \
          --train_batch_size=32 \
          --eval_batch_size=32 \
          --learning_rate=2e-5 \
          --num_train_epochs=1 \
          --steps_per_loop=1000
    
  3. Monitore o status do job de treinamento exibindo os registros com gcloud. Consulte gcloud ai-platform jobs describe e gcloud ai-platform jobs stream-logs.

       gcloud ai-platform jobs describe ${JOB_ID}
       gcloud ai-platform jobs stream-logs ${JOB_ID}
    

Mais recursos de aprendizado