Addestramento con l'impiego dell'algoritmo BERT integrato

L'addestramento con algoritmi integrati su AI Platform Training ti consente di inviare il set di dati e addestra un modello senza scrivere codice di addestramento. Questa pagina spiega come funziona l'algoritmo BERT integrato e come utilizzarlo.

Panoramica

Questo algoritmo integrato può eseguire sia l'addestramento sia l'esportazione del modello:

  1. Addestramento: utilizzando il set di dati e i parametri del modello che hai fornito, l'addestramento di AI Platform utilizza l'implementazione di BERT di TensorFlow.
  2. Esportazione: utilizzando il checkpoint iniziale fornito, genera un modello serializzato la directory del job desiderata. È quindi possibile eseguire il deployment del modello in AI Platform.

Limitazioni

Le seguenti funzionalità non sono supportate per l'addestramento con la Algoritmo BERT:

  • Pre-elaborazione automatica dei dati Questa versione di BERT richiede che i dati di input siano TFRecord sia per l'addestramento che per l'output. È necessario effettuare un'applicazione di addestramento gestire automaticamente l'input senza formattazione.

Tipi di macchine supportati

I seguenti livelli di scalabilità e tipi di macchine di AI Platform Training sono supportati:

  • BASIC livello di scalabilità
  • BASIC_TPU livello di scalabilità
  • CUSTOM con uno dei tipi di macchine Compute Engine supportati da AI Platform Training.
  • Livello di scalabilità CUSTOM con uno dei seguenti tipi di macchine legacy:
    • 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 core)

Ti consigliamo di utilizzare un tipo di macchina con accesso alle TPU.

Formattare i dati di input

Prima di addestrare il modello, assicurati che i dati di input e di valutazione siano sotto forma di TFRecord.

Controlla le autorizzazioni del bucket Cloud Storage

Per archiviare i dati, utilizza un bucket Cloud Storage nello stesso progetto Google Cloud che utilizzi per eseguire i job di AI Platform Training. In caso contrario, concedi l'accesso ad AI Platform Training al bucket Cloud Storage in cui sono archiviati i tuoi dati.

Invia un job di addestramento BERT

Questa sezione spiega come inviare un job di addestramento utilizzando l'algoritmo BERT integrato.

Puoi trovare brevi spiegazioni di ciascun iperparametro nella console Google Cloud e una spiegazione più completa nel documento di riferimento per l'algoritmo BERT integrato.

Console

  1. Vai alla pagina dei job di addestramento su AI Platform nella console Google Cloud:

    Pagina Lavori di AI Platform Training

  2. Fai clic sul pulsante Nuovo job di addestramento. Dalle opzioni visualizzate di seguito, fai clic su Addestramento con algoritmi integrati.

  3. Nella pagina Crea un nuovo job di addestramento, seleziona BERT e fai clic su Avanti.

  4. Per scoprire di più su tutti i parametri disponibili, segui i link in alla console Google Cloud e consulta le Riferimento BERT integrato per ulteriori dettagli.

gcloud

  1. Imposta le variabili di ambiente per il job, completando [VALUES-IN-BRACKETS] con i tuoi valori:

       # 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. Invia il job di addestramento utilizzando gcloud ai-platform jobs training submit Modifica questo esempio generico in modo che funzioni con il tuo set di dati:

       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. Monitora lo stato del job di addestramento visualizzando i log con gcloud. Consulta 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}
    

Ulteriori risorse di apprendimento