Erste Schritte mit dem integrierten BERT-Algorithmus

In dieser Anleitung wird gezeigt, wie Sie das BERT-Modell (Bidirectional Encoder Representations from Transformers) in AI Platform Training trainieren.

BERT ist eine Methode zur Sprachdarstellung vor dem Training. Mit "vor dem Training" ist gemeint, dass BERT zuerst mit einer großen Textquelle wie Wikipedia trainiert wird. Anschließend können Sie die Trainingsergebnisse für andere Aufgaben zur natürlichen Sprachverarbeitung (Natural Language Processing, NLP) verwenden, z. B. Beantworten von Fragen und Sentimentanalyse. Mit BERT und AI Platform Training können Sie in etwa 30 Minuten eine Vielzahl von NLP-Modellen trainieren.

Weitere Informationen zu BERT finden Sie in den folgenden Ressourcen:

Ziele

  • Cloud Storage-Bucket erstellen, der die Ausgabe Ihres Modells aufnimmt
  • Trainingsjob ausführen
  • Ausgabeergebnisse überprüfen

Bevor Sie mit dieser Anleitung beginnen, prüfen Sie, ob Ihr Google Cloud-Projekt ordnungsgemäß eingerichtet ist.

Führen Sie die folgenden Schritte aus, um ein GCP-Konto einzurichten, die erforderlichen APIs zu aktivieren und das Google Cloud CLI zu installieren und zu aktivieren.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the AI Platform Training & Prediction and Compute Engine APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the AI Platform Training & Prediction and Compute Engine APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

Daten vorbereiten

Diese Anleitung erfordert keine Vorverarbeitung oder das Herunterladen von Daten. Alle erforderlichen Daten und Modellprüfpunkte sind in öffentlichen Storage-Buckets verfügbar. Wenn Sie an diesem Vorgang interessiert sind, lesen Sie die Cloud TPU-Anleitung, in der das Erstellen dieses Datasets über die Befehlszeile behandelt wird.

Trainingsjob senden

Zum Senden eines Jobs müssen Sie sowohl für das Training als auch den BERT-Algorithmus einige grundlegende Argumente angeben.

Allgemeine Argumente für den Trainingsjob:

Argumente für Trainingsjobs
Argument Beschreibung
job-id Eindeutige ID für den Trainingsjob; anhand dieser ID können Sie nach dem Senden des Trainingsjobs nach Logs zu seinem Status suchen.
job-dir Cloud Storage-Pfad, in dem AI Platform Training nach Abschluss eines erfolgreichen Trainingsjobs die Trainingsdateien speichert.
scale-tier Gibt Maschinentypen für das Training an. Verwenden Sie BASIC, um eine Konfiguration mit nur einer Maschine auszuwählen.
master-image-uri Container Registry-URI zur Angabe des Docker-Containers, der für den Trainingsjob genutzt werden soll. Verwenden Sie den Container für den integrierten BERT-Algorithmus, der zuvor als IMAGE_URI definiert wurde.
region Geben Sie die verfügbare Region an, in der Ihr Trainingsjob ausgeführt werden soll. In dieser Anleitung können Sie die Region us-central1 verwenden.

Spezifische Argumente für das integrierte BERT-Algorithmustraining mit dem bereitgestellten Dataset:

Algorithmusargumente
Argument Wert Beschreibung
mode train_and_eval Geben Sie an, ob Sie das Training optimieren oder das Modell exportieren möchten.
train_dataset_path gs://cloud-tpu-checkpoints/bert/classification/mnli_train.tf_record Cloud Storage-Pfad zu den gespeicherten Trainingsdaten.
eval_dataset_path gs://cloud-tpu-checkpoints/bert/classification/mnli_eval.tf_record Cloud Storage-Pfad zu den gespeicherten Bewertungsdaten.
input_meta_data_path gs://cloud-tpu-checkpoints/bert/classification/mnli_meta_data Cloud Storage-Pfad zum gespeicherten Eingabeschema.
bert_config_file gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16/bert_config.json Cloud Storage-Pfad zur gespeicherten BERT-Konfigurationsdatei.
init_checkpoint gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16/bert_model.ckpt Ausgangspunkt zur Optimierung (in der Regel ein vortrainiertes BERT-Modell)
train_batch_size 32 Batchgröße für das Training.
eval_batch_size 32 Batchgröße für die Bewertung.
learning_rate 2e-5 Lernrate, die vom Adam-Optimierungstool verwendet wird.
num_train_epochs 1 Anzahl der ausgeführten Trainingsphasen (nur im Modus train_and_eval verfügbar)
steps_per_loop 1000 Anzahl der Schritte pro Schleife im Grafikmodus.

Eine ausführliche Liste aller anderen BERT-Algorithmus-Flags finden Sie in der Referenz zum integrierten BERT-Algorithmus.

Trainingsjob ausführen

  1. Rufen Sie die Seite AI Platform > Jobs auf:

AI Platform > Seite Jobs

  1. Klicken Sie oben auf der Seite auf „Neuer Trainingsjob“ und wählen Sie „Integriertes Algorithmustraining“ aus.

  2. BERT als Trainingsalgorithmus auswählen

  3. Klicken Sie auf „Durchsuchen“, um die Trainings- und Bewertungs-Datasets in Ihrem Cloud Storage-Bucket zu markieren und das Ausgabeverzeichnis auszuwählen.

  4. Verwenden Sie auf der nächsten Seite die oben genannten Argumentwerte, um den Trainingsjob zu konfigurieren.

  5. Geben Sie einen Namen für den Trainingsjob ein und verwenden Sie den Maschinentyp BASIC_TPU.

  6. Klicken Sie auf „Senden“, um den Job zu starten.

Struktur des Jobverzeichnisses

Nach erfolgreicher Ausführung eines Trainingsjobs erstellt AI Platform Training ein trainiertes Modell sowie einige andere Artefakte in Ihrem Cloud Storage-Bucket. Ihr JOB_DIR hat folgende Verzeichnisstruktur:

  • model/ (TensorFlow SavedModel-Verzeichnis)
    • saved_model.pb
    • assets/
    • variables/
  • summaries/ (Logging aus Training und Bewertung)
    • eval/
    • train/
  • Verschiedene Prüfpunktdateien (beim Training erstellt und verwendet)
    • checkpoint
    • ctl_checkpoint-1.data-00000-of-00002
    • ctl_checkpoint-1.index

Prüfen Sie, ob die Verzeichnisstruktur in Ihrem JOB_DIR mit der in der vorherigen Liste beschriebenen Struktur übereinstimmt:

gcloud storage ls -a $JOB_DIR/*

Trainiertes Modell bereitstellen

AI Platform Prediction verwaltet Ihre trainierten Modelle mithilfe von Modell- und Versionsressourcen. Ein AI Platform Prediction-Modell ist ein Container für die Versionen Ihres Modells für maschinelles Lernen.

Zum Bereitstellen eines Modells erstellen Sie eine Modellressource in AI Platform Prediction und erstellen eine Version dieses Modells. Mit dem Modell und der Version fordern Sie anschließend Onlinevorhersagen an.

Weitere Informationen dazu, wie Sie Modelle in AI Platform Prediction bereitstellen

Console

  1. Auf der Seite Jobs sind alle Trainingsjobs aufgelistet. Klicken Sie auf den Namen des gerade gesendeten Trainingsjobs.

  2. Auf der Seite Jobdetails sehen Sie den allgemeinen Fortschritt Ihres Jobs. Sie können auch auf Logs ansehen klicken, um eine detailliertere Ansicht des Fortschritts aufzurufen.

  3. Wenn die Jobausführung erfolgreich war, wird oben die Schaltfläche Modell bereitstellen eingeblendet. Klicken Sie auf Modell bereitstellen.

  4. Wählen Sie „Als neues Modell bereitstellen“ aus und geben Sie einen Modellnamen ein. Klicken Sie anschließend auf Bestätigen.

  5. Geben Sie auf der Seite Version erstellen einen Versionsnamen wie v1 ein und übernehmen Sie für alle anderen Felder die Standardeinstellungen. Klicken Sie auf Speichern.

  6. Auf der Seite Modelldetails wird der Versionsname angezeigt. Es dauert einige Minuten, bis die Version erstellt ist. Wenn die Version fertig ist, wird neben dem Versionsnamen ein Häkchen angezeigt.

  7. Klicken Sie auf den Versionsnamen (v1), um die Seite Versionsdetails aufzurufen. Im nächsten Schritt dieser Anleitung senden Sie eine Vorhersageanfrage.

Onlinevorhersagen abrufen

Wenn Sie Vorhersagen anfordern, müssen Sie die Eingabedaten im JSON-Format auf eine Weise formatieren, die das Modell erwartet. In aktuellen BERT-Modellen werden Eingaben nicht automatisch vorverarbeitet.

Console

  1. Auf der Seite Versionsdetails für v1, der gerade erstellten Version, können Sie eine Beispielvorhersageanfrage senden.

    Wählen Sie den Tab Test und Nutzung aus.

  2. Kopieren Sie das folgende Beispiel in das Eingabefeld:

      {
        "instances": [
          {
            "input_mask": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            "input_type_ids":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            "input_word_ids": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
            }
          ]
        }
    
  3. Klicken Sie auf Test.

    Warten Sie, bis der Vorhersagevektor zurückgegeben wird.

Nächste Schritte

In dieser Anleitung haben Sie das BERT-Modell mithilfe eines Beispiel-Datasets trainiert. In den meisten Fällen können die Ergebnisse dieses Trainings nicht für Inferenzen verwendet werden. 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 TPU 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