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

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 NCF intégré et explique comment l'utiliser.

Présentation

Cet algorithme intégré n'est utilisable que pour l'entraînement :

  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 NCF de Tensorflow.

Limites

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

  • Prétraitement des données automatisé : cette version de NCF 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_GPU
  • 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é d'évolutivité CUSTOM avec l'un des anciens types de machines 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)

Il est recommandé d'utiliser un type de machine ayant accès aux TPU ou à des GPU.

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 NCF

Cette section explique comment envoyer une tâche d'entraînement à l'aide de l'algorithme NCF 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 NCF 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 nouvelle tâche d'entraînement, sélectionnez NCF, 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 NCF intégré.

gcloud

  1. Définissez des variables d'environnement pour votre tâche :

       # 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/ncf:latest'
    
       # Specify the Cloud Storage path to your training input data.
       DATA_DIR='gs://$BUCKET_NAME/ncf_data'
    
       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}"
    

    Remplacez les éléments suivants :

    • BUCKET_NAME : nom du bucket Cloud Storage où vous souhaitez stocker les résultats d'entraînement.
    • MODEL_NAME : nom du modèle, permettant d'identifier où les artefacts de modèle sont stockés dans votre bucket Cloud Storage.
  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 \
          -- \
          --train_dataset_path=${DATA_DIR}/training_cycle_*/* \
          --eval_dataset_path=${DATA_DIR}/eval_data/* \
          --input_meta_data_path=${DATA_DIR}/metadata \
          --learning_rate=3e-5 \
          --train_epochs=3 \
          --eval_batch_size=160000 \
          --learning_rate=0.00382059 \
          --beta1=0.783529 \
          --beta2=0.909003 \
          --epsilon=1.45439e-07 \
          --num_factors=64 \
          --hr_threshold=0.635 \
          --keras_use_ctl=true \
          --layers=256,256,128,64 \
    
  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