Training mit dem integrierten NCF-Algorithmus

Wenn Sie integrierte Algorithmen für das Training in AI Platform Training verwenden, können Sie Ihr Dataset zum Trainieren eines Modells einreichen, ohne Trainingscode schreiben zu müssen. Auf dieser Seite werden die Funktionsweise und die Verwendung des integrierten NCF-Algorithmus erläutert.

Übersicht

Der integrierte Algorithmus führt nur Training durch:

  1. Training: AI Platform Training führt das Training mit der NCF-Implementierung von TensorFlow aus. Dabei werden das von Ihnen angegebene Dataset und die festgelegten Modellparameter verwendet.

Beschränkungen

Die folgenden Features werden für das Training mit dem integrierten NCF-Algorithmus nicht unterstützt:

  • Automatisierte Datenvorverarbeitung: Bei dieser Version von NCF müssen Eingabedaten in Form von TFRecords für das Training und die Ausgabe vorliegen. Für die automatische Verarbeitung einer nicht formatierten Eingabe ist eine Trainingsanwendung erforderlich.

Unterstützte Maschinentypen

Folgende AI Platform Training-Skalierungsstufen und -Maschinentypen werden unterstützt:

  • Skalierungsstufe BASIC
  • Skalierungsstufe BASIC_GPU
  • Skalierungsstufe BASIC_TPU
  • Skalierungsstufe CUSTOM mit beliebigen von AI Platform Training unterstützten Compute Engine-Maschinentypen
  • Skalierungsstufe CUSTOM mit einem der folgenden Legacy-Maschinentypen:
    • 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 Kerne)

Es wird empfohlen, einen Maschinentyp mit Zugriff auf TPUs oder GPUs zu verwenden.

Eingabedaten formatieren

Prüfen Sie, ob die Eingabe- und Evaluationsdaten in Form von TFRecords vorliegen, bevor Sie das Modell trainieren.

Cloud Storage-Bucket-Berechtigungen prüfen

Speichern Sie Ihre Daten in einem Cloud Storage-Bucket desselben Google Cloud-Projekts, in dem Sie AI Platform Training-Jobs ausführen. Gewähren Sie andernfalls AI Platform Training Zugriff auf den Cloud Storage-Bucket, in dem Ihre Daten gespeichert sind.

NCF-Trainingsjob senden

In diesem Abschnitt wird erläutert, wie Sie einen Trainingsjob mit dem integrierten NCF-Algorithmus senden.

Eine kurze Erläuterung der einzelnen Hyperparameter finden Sie in der Google Cloud Console. Eine ausführlichere Erläuterung finden Sie in der Referenz zum integrierten NFC-Algorithmus.

Console

  1. Rufen Sie in der Cloud Console die Seite für AI Platform Training-Jobs auf:

    Zur Seite AI Platform Training-Jobs

  2. Klicken Sie auf die Schaltfläche Neuer Trainingsjob. Klicken Sie in den darunter angezeigten Optionen auf Integriertes Algorithmustraining.

  3. Wählen Sie auf der Seite Neuen Trainingsjob erstellen NCF aus und klicken Sie auf Weiter.

  4. Weitere Informationen zu allen verfügbaren Parametern finden Sie unter den Links in der Google Cloud Console und in der Referenz zum integrierten NCF-Algorithmus.

gcloud

  1. Legen Sie Umgebungsvariablen für Ihren Job fest:

       # 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}"
    

    Dabei gilt:

    • BUCKET_NAME: Der Name des Cloud Storage-Buckets, in dem Trainingsausgaben gespeichert werden sollen.
    • MODEL_NAME: Ein Name für Ihr Modell, um zu ermitteln, wo Modellartefakte in Ihrem Cloud Storage-Bucket gespeichert werden.
  2. Senden Sie den Trainingsjob mit gcloud ai-platform jobs training submit: Passen Sie dieses allgemeine Beispiel an Ihr Dataset an:

       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. Prüfen Sie den Status Ihres Trainingsjobs. Rufen Sie dazu Logs mit gcloud auf. Weitere Informationen finden Sie unter gcloud ai-platform jobs describe und gcloud ai-platform jobs stream-logs.

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

Weitere Lernressourcen