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:
- BERT als Open-Source-Modell: Hochmodernes Training im Voraus für die natürliche Sprachverarbeitung
- BERT: Training vertiefter bidirektionaler Transformer zum Sprachverständnis im Voraus
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.
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
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
- Rufen Sie die Seite AI Platform > Jobs auf:
Klicken Sie oben auf der Seite auf „Neuer Trainingsjob“ und wählen Sie „Integriertes Algorithmustraining“ aus.
BERT als Trainingsalgorithmus auswählen
Klicken Sie auf „Durchsuchen“, um die Trainings- und Bewertungs-Datasets in Ihrem Cloud Storage-Bucket zu markieren und das Ausgabeverzeichnis auszuwählen.
Verwenden Sie auf der nächsten Seite die oben genannten Argumentwerte, um den Trainingsjob zu konfigurieren.
Geben Sie einen Namen für den Trainingsjob ein und verwenden Sie den Maschinentyp
BASIC_TPU
.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
Auf der Seite Jobs sind alle Trainingsjobs aufgelistet. Klicken Sie auf den Namen des gerade gesendeten Trainingsjobs.
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.
Wenn die Jobausführung erfolgreich war, wird oben die Schaltfläche Modell bereitstellen eingeblendet. Klicken Sie auf Modell bereitstellen.
Wählen Sie „Als neues Modell bereitstellen“ aus und geben Sie einen Modellnamen ein. Klicken Sie anschließend auf Bestätigen.
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.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.
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
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.
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] } ] }
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