Transformer auf Cloud TPU (TF 2.x) trainieren

Transformer ist eine neuronale Netzwerkarchitektur, die Sequenz-zu-Sequenz-Probleme mithilfe von Aufmerksamkeitsmechanismen löst. Im Gegensatz zu herkömmlichen neuronalen Sequenz-zu-Sequenz-Modellen umfasst Transformer keine wiederkehrenden Verbindungen. Der Aufmerksamkeitsmechanismus lernt Abhängigkeiten zwischen Tokens in zwei Sequenzen. Da Aufmerksamkeitsgewichtungen auf alle Tokens in den Sequenzen angewendet werden, kann das Transformer-Modell problemlos Abhängigkeiten über weite Strecken erfassen.

Die gesamte Struktur von Transformer folgt dem Standard-Encoder-Decoder-Muster. Der Codierer verwendet eine Selfattention, um eine Darstellung der Eingabesequenz zu berechnen. Der Decoder generiert die Ausgabesequenz pro Token, wobei die Encoder-Ausgabe und die vorherigen Decode-Tokens als Eingaben ausgegeben werden.

Das Modell wendet auch Einbettungen auf die Eingabe- und Ausgabetokens an und fügt eine konstante Positionscodierung hinzu. Die Positionscodierung fügt Informationen über die Position jedes Tokens hinzu.

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloud verwendet, darunter:

  • Compute Engine
  • Cloud TPU

Sie können mithilfe des Preisrechners die Kosten für Ihre voraussichtliche Nutzung kalkulieren. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

Wenn Sie das Training mit einem TPU Pod-Slice durchführen möchten, lesen Sie dieses Dokument mit Informationen zum Training auf Pod-Slices.

Bevor Sie mit dieser Anleitung beginnen, führen Sie die folgenden Schritte aus, um zu prüfen, ob Ihr Google Cloud-Projekt richtig eingerichtet ist.

  1. Öffnen Sie ein Cloud Shell-Fenster.

    Zu Cloud Shell

  2. Erstellen Sie eine Variable für Ihre Projekt-ID.

    export PROJECT_ID=project-id
    
  3. Konfigurieren Sie das gcloud-Befehlszeilentool für das Projekt, in dem Sie eine Cloud TPU erstellen möchten.

    gcloud config set project ${PROJECT_ID}
    

    Wenn Sie diesen Befehl zum ersten Mal in einer neuen Cloud Shell-VM ausführen, wird die Seite Authorize Cloud Shell angezeigt. Klicken Sie auf Authorize unten auf der Seite, um es gcloud zu erlauben, GCP API-Aufrufe mit Ihren Anmeldedaten durchzuführen.

  4. Erstellen Sie ein Dienstkonto für das Cloud TPU-Projekt.

    gcloud beta services identity create --service tpu.googleapis.com --project $PROJECT_ID
    

    Der Befehl gibt ein Cloud TPU-Dienstkonto im folgenden Format zurück:

    service-PROJECT_NUMBER@cloud-tpu.iam.gserviceaccount.com
    

  5. Erstellen Sie mit dem folgenden Befehl einen Cloud Storage-Bucket:

    gsutil mb -p ${PROJECT_ID} -c standard -l europe-west4 -b on gs://bucket-name
    

    Dieser Cloud Storage-Bucket speichert die Daten, die Sie zum Trainieren Ihres Modells verwenden, und die Trainingsergebnisse. Mit dem in dieser Anleitung verwendeten gcloud-Tool werden Standardberechtigungen für das Cloud TPU-Dienstkonto eingerichtet, das Sie im vorherigen Schritt eingerichtet haben. Wenn Sie detailliertere Berechtigungen benötigen, können Sie die Berechtigungen auf Zugriffsebene anpassen.

  6. Starten Sie mit dem Befehl gcloud eine Compute Engine-VM.

    $ gcloud compute tpus execution-groups create \
     --vm-only \
     --name=transformer-tutorial \
     --zone=europe-west4-a \
     --disk-size=300 \
     --machine-type=n1-standard-8 \
     --tf-version=2.6.0
    

    Beschreibung der Befehls-Flags

    vm-only
    Erstellen Sie nur eine VM. Standardmäßig werden mit dem Befehl gcloud compute tpus execution-groups eine VM und eine Cloud TPU erstellt.
    name
    Der Name der zu erstellenden Cloud TPU.
    zone
    Die Zone, in der Sie die Cloud TPU erstellen möchten.
    disk-size
    Die Größe des Laufwerks in GB der VM, die mit dem Befehl gcloud compute tpus execution-groups erstellt wurde.
    machine-type
    Der Maschinentyp der zu erstellenden Compute Engine-VM.
    tf-version
    Die Version von Tensorflow, die von gcloud compute tpus execution-groups auf der VM installiert wird.

    Weitere Informationen zum Befehl gcloud finden Sie in der gcloud-Referenz.

  7. Die von Ihnen angegebene Konfiguration wird angezeigt. Geben Sie y zum Bestätigen oder n zum Abbrechen ein.

    Wenn der Befehl gcloud compute tpus execution-groups ausgeführt wurde, sollten Sie prüfen, ob die Shell-Eingabeaufforderung von username@projectname zu username@vm-name geändert wurde. Diese Änderung bedeutet, dass Sie jetzt bei Ihrer Compute Engine-VM angemeldet sind.

    gcloud compute ssh transformer-tutorial --zone=europe-west4-a
    

    Führen Sie im weiteren Verlauf dieser Anleitung jeden Befehl, der mit (vm)$ beginnt, in Ihrer Compute Engine-Instanz aus.

Trainings-Dataset generieren

Auf Ihrer Compute Engine-VM:

  1. Erstellen Sie die folgenden Umgebungsvariablen. Ersetzen Sie bucket-name durch den Namen Ihres Buckets.

    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    
    (vm)$ export GCS_DATA_DIR=${STORAGE_BUCKET}/data/transformer
    (vm)$ export PARAM_SET=big
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/transformer/model_${PARAM_SET}
    (vm)$ export PYTHONPATH="$PYTHONPATH:/usr/share/models"
    (vm)$ export DATA_DIR=${HOME}/transformer/data
    (vm)$ export VOCAB_FILE=${DATA_DIR}/vocab.ende.32768
    
  2. Wechseln Sie in das Trainingsverzeichnis:

    (vm)$ cd /usr/share/models/official/nlp/transformer
  3. Richten Sie die folgenden Umgebungsvariablen für das Dataset ein:

    (vm)$ export GCS_DATA_DIR=${STORAGE_BUCKET}/data/transformer
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/transformer/model_${PARAM_SET}
    
  4. Datasets herunterladen und vorbereiten

    (vm)$ python3 data_download.py --data_dir=${DATA_DIR}
    (vm)$ gsutil cp -r ${DATA_DIR} ${GCS_DATA_DIR}
    

    data_download.py lädt die Trainings- und Bewertungs-WMT-Datasets herunter und verarbeitet sie vor. Nachdem die Daten heruntergeladen und extrahiert wurden, werden die Trainingsdaten verwendet, um ein Untertokenvokabular zu generieren. Die Bewertungs- und Trainingsstrings werden tokenisiert und die resultierenden Daten werden fragmentiert, zufällig angeordnet und als TFRecords gespeichert.

    Komprimierte Daten in Höhe von 1,75 GB werden heruntergeladen. Insgesamt belegen die Rohdateien (komprimierte, extrahierte und kombinierte Dateien) 8,4 GB Speicherplatz. Die resultierenden TFRecord- und Vokabulärdateien sind 722 MB groß. Die Ausführung des Skripts dauert etwa 40 Minuten, wobei der Großteil der Zeit für den Download und ca. 15 Minuten für die Vorverarbeitung aufgewendet werden.

Übersetzungsmodell Englisch-Deutsch auf einer einzelnen Cloud TPU trainieren

Führen Sie folgende Befehle auf Ihrer Compute Engine-VM aus:

  1. Führen Sie den folgenden Befehl aus, um die Cloud TPU zu erstellen.

    (vm)$ gcloud compute tpus execution-groups create --tpu-only \
      --accelerator-type=v3-8  \
      --zone=europe-west4-a \
      --tf-version=2.6.0 \
      --name=transformer-tutorial
    

    Beschreibung der Befehls-Flags

    project
    Die ID Ihres GCP-Projekts
    tpu-only
    Erstellen Sie nur eine Cloud TPU. Standardmäßig werden mit dem Befehl gcloud compute tpus execution-groups eine VM und eine Cloud TPU erstellt.
    tpu-size
    Gibt den Typ der Cloud TPU an, z. B. v3-8.
    zone
    Die Zone, in der Sie die Cloud TPU erstellen möchten. Das sollte dieselbe Zone sein, die Sie für die Compute Engine-VM verwendet haben. Beispiel: europe-west4-a.
    tf-version
    Die Version von Tensorflow, die von ctpu auf der VM installiert wird.
    name
    Der Name der zu erstellenden Cloud TPU.

    Die von Ihnen angegebene Konfiguration wird angezeigt. Geben Sie y zum Bestätigen oder n zum Abbrechen ein.

    Sie erhalten folgende Meldung: Operation success; not ssh-ing to Compute Engine VM due to --tpu-only flag. Da Sie die SSH-Schlüsselverteilung bereits abgeschlossen haben, können Sie diese Nachricht ignorieren.

  2. Legen Sie die Cloud TPU-Namensvariable fest. Dies ist entweder ein Name, den Sie mit dem Parameter --name auf gcloud compute tpus execution-groups festgelegt haben, oder der Standardwert, Ihr Nutzername:

    (vm)$ export TPU_NAME=transformer-tutorial
    
  3. Führen Sie das Trainingsskript aus:

    (vm)$ python3 transformer_main.py \
        --tpu=${TPU_NAME} \
        --model_dir=${MODEL_DIR} \
        --data_dir=${GCS_DATA_DIR} \
        --vocab_file=${GCS_DATA_DIR}/vocab.ende.32768 \
        --bleu_source=${GCS_DATA_DIR}/newstest2014.en \
        --bleu_ref=${GCS_DATA_DIR}/newstest2014.de \
        --batch_size=6144 \
        --train_steps=2000 \
        --static_batch=true \
        --use_ctl=true \
        --param_set=big \
        --max_length=64 \
        --decode_batch_size=32 \
        --decode_max_length=97 \
        --padded_decode=true \
        --distribution_strategy=tpu

    Beschreibung der Befehls-Flags

    tpu
    Der Name der Cloud TPU. Dieser wird durch Angabe der Umgebungsvariable (TPU_NAME) festgelegt.
    model_dir
    Der Cloud Storage-Bucket, in dem während des Trainings Prüfpunkte und Zusammenfassungen gespeichert werden. Sie können einen vorhandenen Ordner verwenden, um zuvor generierte Prüfpunkte zu laden, die auf einer TPU mit derselben Größe und TensorFlow-Version erstellt wurden.
    data_dir
    Der Cloud Storage-Pfad der Trainingseingabe. In diesem Beispiel ist er auf das Dataset „fake_imagenet“ festgelegt.
    vocab_file
    Eine Datei, die das zu übersetzende Vokabular enthält.
    bleu_source
    Eine Datei, die Quellsätze für die Übersetzung enthält.
    bleu_ref
    Eine Datei, die die Referenz für die zu übersetzenden Sätze enthält.
    train_steps
    Die Anzahl der Schritte zum Trainieren des Modells. Pro Schritt wird ein Datenbatch verarbeitet. Dies umfasst sowohl einen Vorwärtsdurchlauf als auch eine Rückpropagierung.
    batch_size
    Die Größe des Trainingsbatches.
    static_batch
    Gibt an, ob die Batches im Dataset statische Formen haben.
    use_ctl
    Gibt an, ob das Skript mit einer benutzerdefinierten Trainingsschleife ausgeführt wird.
    param_set
    Der Parameter, der beim Erstellen und Trainieren des Modells verwendet werden soll. Die Parameter definieren die Eingabeform, die Modellkonfiguration und andere Einstellungen.
    max_length
    Die maximale Länge eines Beispiels im Dataset.
    decode_batch_size
    Die globale Batchgröße, die für die automatische Regressor-Decodierung mit Transformer in einer Cloud TPU verwendet wird.
    decode_max_length
    Die maximale Sequenzlänge der Decodierungs-/Bewertungsdaten. Dies wird von der automatischen Regressor-Decodierung mit Transformer auf einer Cloud TPU verwendet, um die Menge des erforderlichen Datenpaddings zu minimieren.
    padded_decode
    Gibt an, ob die automatische Regressor-Decodierung mit Eingabedaten ausgeführt wird, die für decode_max_length aufgefüllt werden. Wenn Tor TPU/XLA-GPU ausgeführt wird, muss dieses Flag aufgrund der erforderlichen statischen Form festgelegt werden.
    distribution_strategy
    Zum Trainieren des ResNet-Modells in einer Cloud TPU legen Sie für distribution_strategy den Wert tpu fest.

Standardmäßig wird das Modell alle 2000 Schritte ausgewertet. Zum Trainieren einer Konvergenz müssen Sie train_steps auf 200.000 ändern. Sie können die Anzahl der Trainingsschritte erhöhen oder angeben, wie oft Bewertungen ausgeführt werden sollen, indem Sie die folgenden Parameter festlegen:

  • --train_steps: Legt die Gesamtzahl der auszuführenden Trainingsschritte fest.
  • --steps_between_evals: Anzahl der Trainingsschritte, die zwischen den Bewertungen ausgeführt werden sollen.

Das Training und die Bewertung auf einer v3-8-Cloud TPU dauern etwa sieben Minuten. Wenn das Training und die Bewertung abgeschlossen sind, wird eine Meldung wie die folgende angezeigt:

INFO:tensorflow:Writing to file /tmp/tmpf2gn8vpa
I1125 21:22:30.734232 140328028010240 translate.py:182] Writing to file /tmp/tmpf2gn8vpa
I1125 21:22:42.785628 140328028010240 transformer_main.py:121] Bleu score (uncased): 0.01125154594774358
I1125 21:22:42.786558 140328028010240 transformer_main.py:122] Bleu score (cased): 0.01123994225054048

Berechnet den BLEU-Score während der Modellbewertung

Verwenden Sie diese Flags, um den BLEU-Score zu berechnen, wenn das Modell bewertet wird:

  • --bleu_source: Pfad zur Datei mit dem zu übersetzenden Text.
  • --bleu_ref: Pfad zur Datei mit der Referenzübersetzung.

Von hier aus können Sie entweder diese Anleitung abschließen und Ihre GCP-Ressourcen bereinigen oder sich die Ausführung des Modells auf einem Cloud TPU Pod genauer ansehen.

Modell mit Cloud TPU Pods skalieren

Sie können schneller Ergebnisse erzielen, wenn Sie Ihr Modell mit Cloud TPU Pods skalieren. Das vollständig unterstützte Transformer-Modell kann mit den folgenden Pod-Slices verwendet werden:

  • v2-32
  • v3-32
  1. Löschen Sie die Cloud TPU-Ressource, die Sie zum Trainieren des Modells auf einem einzelnen Gerät erstellt haben.

    (vm)$ gcloud compute tpus execution-groups delete transformer-tutorial \
      --zone=europe-west4-a \
      --tpu-only
  2. Führen Sie den Befehl gcloud compute tpus execution-groups mit dem Parameter accelerator-type aus, um den Pod-Slice anzugeben, den Sie verwenden möchten. Der folgende Befehl verwendet beispielsweise einen v3-32-Pod-Slice.

    (vm)$ gcloud compute tpus execution-groups create --name=transformer-tutorial \
      --accelerator-type=v2-32  \
      --zone=europe-west4-a \
      --tf-version=2.6.0 \
      --tpu-only
    

    Beschreibung der Befehls-Flags

    name
    Der Name der zu erstellenden Cloud TPU.
    accelerator-type
    Der Typ der zu erstellenden Cloud TPU.
    zone
    Die Zone, in der Sie die Cloud TPU erstellen möchten.
    tf-version
    Die Version von Tensorflow, die von gcloud auf der VM installiert wird.
    tpu-only
    Erstellen Sie nur eine Cloud TPU. Standardmäßig werden mit dem Befehl gcloud eine VM und eine Cloud TPU erstellt.
    gcloud compute ssh transformer-tutorial --zone=europe-west4-a
    
  3. Exportieren Sie den TPU-Namen:

    (vm)$ export TPU_NAME=transformer-tutorial
    
  4. Exportieren Sie die Modellverzeichnisvariable:

    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/transformer/model_${PARAM_SET}_pod
    
  5. Wechseln Sie in das Trainingsverzeichnis:

    (vm)$ cd /usr/share/models/official/nlp/transformer
    
  6. Führen Sie das Pod-Trainingsskript aus:

    (vm)$ python3 transformer_main.py \
         --tpu=${TPU_NAME} \
         --model_dir=${MODEL_DIR} \
         --data_dir=${GCS_DATA_DIR} \
         --vocab_file=${GCS_DATA_DIR}/vocab.ende.32768 \
         --bleu_source=${GCS_DATA_DIR}/newstest2014.en \
         --bleu_ref=${GCS_DATA_DIR}/newstest2014.de \
         --batch_size=24576 \
         --train_steps=2000 \
         --static_batch=true \
         --use_ctl=true \
         --param_set=big \
         --max_length=64 \
         --decode_batch_size=32 \
         --decode_max_length=97 \
         --padded_decode=true \
         --steps_between_evals=2000 \
         --distribution_strategy=tpu
    

    Beschreibung der Befehls-Flags

    tpu
    Der Name der Cloud TPU. Dieser wird durch Angabe der Umgebungsvariable (TPU_NAME) festgelegt.
    model_dir
    Der Cloud Storage-Bucket, in dem während des Trainings Prüfpunkte und Zusammenfassungen gespeichert werden. Sie können einen vorhandenen Ordner verwenden, um zuvor generierte Prüfpunkte zu laden, die auf einer TPU mit derselben Größe und TensorFlow-Version erstellt wurden.
    data_dir
    Der Cloud Storage-Pfad der Trainingseingabe. In diesem Beispiel ist er auf das Dataset "fake_imagenet" festgelegt.
    vocab_file
    Eine Datei, die das zu übersetzende Vokabular enthält.
    bleu_source
    Eine Datei, die Quellsätze für die Übersetzung enthält.
    bleu_ref
    Eine Datei, die die Referenz für die zu übersetzenden Sätze enthält.
    batch_size
    Die Größe des Trainingsbatches.
    train_steps
    Die Anzahl der Schritte zum Trainieren des Modells. Pro Schritt wird ein Datenbatch verarbeitet. Dies umfasst sowohl einen Vorwärtsdurchlauf als auch eine Rückpropagierung.
    static_batch
    Gibt an, ob die Batches im Dataset statische Formen haben.
    use_ctl
    Gibt an, ob das Skript mit einer benutzerdefinierten Trainingsschleife ausgeführt wird.
    param_set
    Der Parameter, der beim Erstellen und Trainieren des Modells verwendet werden soll. Die Parameter definieren die Eingabeform, die Modellkonfiguration und andere Einstellungen.
    max_length
    Die maximale Länge eines Beispiels im Dataset.
    decode_batch_size
    Die globale Batchgröße, die für die automatische Regressor-Decodierung mit Transformer in einer Cloud TPU verwendet wird.
    decode_max_length
    Die maximale Sequenzlänge der Decodierungs-/Bewertungsdaten. Dies wird von der automatischen Regressor-Decodierung mit Transformer auf einer Cloud TPU verwendet, um die Menge des erforderlichen Datenpaddings zu minimieren.
    padded_decode
    Gibt an, ob die automatische Regressor-Decodierung mit Eingabedaten ausgeführt wird, die für decode_max_length aufgefüllt werden. Wenn Tor TPU/XLA-GPU ausgeführt wird, muss dieses Flag aufgrund der erforderlichen statischen Form festgelegt werden.
    steps_between_evals
    Die Anzahl der zwischen den Bewertungen auszuführenden Trainingsschritte.
    distribution_strategy
    Zum Trainieren des ResNet-Modells in einer Cloud TPU legen Sie für distribution_strategy den Wert tpu fest.

Dieses Trainingsskript wird für 2.000 Schritte trainiert und alle 2.000 Schritte ausgewertet. Dieses spezielle Training und diese Bewertung dauern auf einem v2-32-Cloud TPU-Pod etwa acht Minuten.

Zum Trainieren einer Konvergenz müssen Sie train_steps auf 200.000 ändern. Sie können die Anzahl der Trainingsschritte erhöhen oder angeben, wie oft Bewertungen ausgeführt werden sollen, indem Sie die folgenden Parameter festlegen:

  • --train_steps: Legt die Gesamtzahl der auszuführenden Trainingsschritte fest.
  • --steps_between_evals: Anzahl der Trainingsschritte, die zwischen den Bewertungen ausgeführt werden sollen.

Wenn das Training und die Bewertung abgeschlossen sind, wird eine Meldung wie die folgende angezeigt:

0509 00:27:59.984464 140553148962624 translate.py:184] Writing to file /tmp/tmp_rk3m8jp
I0509 00:28:11.189308 140553148962624 transformer_main.py:119] Bleu score (uncased): 1.3239131309092045
I0509 00:28:11.189623 140553148962624 transformer_main.py:120] Bleu score (cased): 1.2855342589318752

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

1. Trennen Sie die Verbindung zur Compute Engine-Instanz, sofern noch nicht geschehen:
  (vm)$ exit
  

Die Eingabeaufforderung sollte nun username@projectname lauten und angeben, dass Sie sich in Cloud Shell befinden.

  1. Verwenden Sie in Cloud Shell den folgenden Befehl, um Ihre Compute Engine-VM und Cloud TPU zu löschen:

    $ gcloud compute tpus execution-groups delete transformer-tutorial \
      --zone=europe-west4-a
    
  2. Prüfen Sie, ob die Ressourcen gelöscht wurden. Führen Sie dazu gcloud compute tpus execution-groups list aus. Der Löschvorgang kann einige Minuten dauern. Eine Antwort wie die folgende gibt an, dass Ihre Instanzen erfolgreich gelöscht wurden.

    $ gcloud compute tpus execution-groups list \
     --zone=europe-west4-a
    

    Sie sollten eine leere Liste der TPUs sehen, die in etwa so aussieht:

       NAME             STATUS
    
  3. Löschen Sie Ihren Cloud Storage-Bucket wie unten gezeigt mit gsutil. Ersetzen Sie bucket-name durch den Namen des Cloud Storage-Buckets.

    $ gsutil rm -r gs://bucket-name
    

Nächste Schritte

In dieser Anleitung haben Sie das Transformer-Modell mit einem Beispiel-Dataset trainiert. Die Ergebnisse dieses Trainings sind in den meisten Fällen nicht für die Inferenz verwendbar. Wenn Sie ein Modell für die Inferenz verwenden möchten, können Sie die Daten in einem öffentlich verfügbaren Dataset oder in Ihrem eigenen Dataset trainieren. Für Modelle, die auf Cloud TPUs trainiert wurden, müssen Datasets das Format TFRecord haben.

Sie können das Beispiel für das Dataset-Konvertierungstool verwenden, um ein Bildklassifizierungs-Dataset in das TFRecord-Format zu konvertieren. Wenn Sie kein Bildklassifizierungsmodell verwenden, müssen Sie das Dataset selbst in das TFRecords-Format konvertieren. Weitere Informationen finden Sie unter TFRecord und tf.Example.

Hyperparameter-Feinabstimmung

Sie können die Hyperparameter des Modells optimieren, um die Leistung des Modells mit Ihrem Dataset zu verbessern. Informationen zu Hyperparametern, die für alle TPU-unterstützten Modelle üblich sind, finden Sie auf GitHub. Informationen zu modellspezifischen Hyperparametern finden Sie im Quellcode für die einzelnen Modelle. Weitere Informationen zur Hyperparameter-Abstimmung finden Sie unter Übersicht über Hyperparameter-Abstimmung, Hyperparameter-Abstimmungsdienst und Hyperparameter abstimmen.

Inferenz

Sobald Ihr Modell trainiert ist, können Sie es für Inferenz (auch als Vorhersage bezeichnet) verwenden. AI Platform ist eine cloudbasierte Lösung, mit der Sie Modelle für maschinelles Lernen entwickeln, trainieren und bereitstellen können. Sobald ein Modell bereitgestellt wurde, können Sie den AI Platform Prediction-Dienst verwenden.