Entraînement à l'aide de l'algorithme intégré BERT

L'entraînement à l'aide des algorithmes intégrés d'AI Platform Training vous permet d'envoyer votre ensemble de données et d'entraîner un modèle sans avoir à écrire un code d'entraînement. Cette page explique le fonctionnement de l'algorithme BERT intégré et explique comment l'utiliser.

Présentation

Cet algorithme intégré peut effectuer à la fois l'entraînement et l'exportation du modèle :

  1. Entraînement : avec l'ensemble de données et les paramètres de modèle fournis, AI Platform Training exécute la tâche d'entraînement à l'aide de l'implémentation BERT de Tensorflow.
  2. Exportation : à l'aide du point de contrôle initial fourni, génère un modèle sérialisé dans le répertoire de tâche souhaité. Ce modèle peut ensuite être déployé sur AI Platform.

Limites

Les fonctionnalités suivantes ne sont pas compatibles avec l'entraînement à l'aide de l'algorithme BERT intégré :

  • Prétraitement des données automatisé Cette version de BERT nécessite que les données d'entrée soient au format TFRecords pour l'entraînement et la sortie. Une application d'entraînement doit être conçue pour gérer automatiquement les entrées non-formatées.

Types de machines compatibles

Voici les niveaux d'évolutivité et types de machines d'AI Platform Training qui sont compatibles :

  • Niveau d'évolutivité BASIC
  • Niveau d'évolutivité BASIC_TPU
  • Niveau d'évolutivité CUSTOM avec n'importe lequel des types de machine Compute Engine compatible avec AI Platform Training.
  • Niveau d'évolutivité CUSTOM avec n'importe lequel des anciens types de machine suivants :
    • 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 cœurs)

Nous vous recommandons d'utiliser un type de machine ayant accès aux TPU.

Mettre en forme les données d'entrée

Avant d'entraîner le modèle, assurez-vous que les données d'entrée et d'évaluation sont au format TFRecords.

Vérifier les autorisations du bucket Cloud Storage

Pour stocker vos données, utilisez un bucket Cloud Storage dans le projet Google Cloud que vous utilisez pour exécuter les tâches AI Platform Training. Sinon, accordez à AI Platform Training l'accès au bucket Cloud Storage où vos données sont stockées.

Envoyer une tâche d'entraînement BERT

Cette section explique comment envoyer une tâche d'entraînement à l'aide de l'algorithme BERT intégré.

Vous trouverez de brèves explications sur chaque hyperparamètre dans Google Cloud Console, ainsi qu'une explication plus complète dans la documentation de référence sur l'algorithme BERT intégré.

Console

  1. Accédez à la page "Tâches" d'AI Platform Training dans Google Cloud Console :

    Page "Tâches" d'AI Platform Training

  2. Cliquez sur le bouton Nouvelle tâche d'entraînement. Dans les options qui s'affichent en dessous, cliquez sur Entraînement de l'algorithme intégré.

  3. Sur la page Créer une tâche d'entraînement, sélectionnez BERT puis cliquez sur Suivant.

  4. Pour en savoir plus sur tous les paramètres disponibles, suivez les liens présents dans Google Cloud Console, et consultez la documentation de référence sur l'algorithme BERT intégré.

gcloud

  1. Définissez des variables d'environnement pour votre tâche, en remplaçant les éléments entre crochets ([VALUES-IN-BRACKETS]) par vos propres valeurs :

       # 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. Envoyez la tâche d'entraînement à l'aide de gcloud ai-platform jobs training submit. Ajustez cet exemple générique pour qu'il fonctionne avec votre ensemble de données :

       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. Surveillez l'état de votre tâche d'entraînement en consultant les journaux avec gcloud. Reportez-vous aux commandes gcloud ai-platform jobs describe et gcloud ai-platform jobs stream-logs.

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

Autres ressources d'apprentissage