Modelle exportieren

Übersicht

Auf dieser Seite wird gezeigt, wie Sie BigQuery ML-Modelle exportieren. Sie können BigQuery ML-Modelle nach Cloud Storage exportieren und dann für Onlinevorhersagen verwenden oder in Python bearbeiten. So exportieren Sie ein BigQuery ML-Modell:

Sie können die folgenden Modelltypen exportieren:

  • KMEANS
  • LINEAR_REG
  • LOGISTIC_REG
  • MATRIX_FACTORIZATION
  • TENSORFLOW (importierte TensorFlow-Modelle)

Exportmodellformate und Beispiele

Die folgende Tabelle enthält die Exportzielformate für jeden BigQuery ML-Modelltyp sowie ein Beispiel für Dateien, die in den Cloud Storage-Bucket geschrieben werden.

Modelltyp Exportmodellformat Beispiel für exportierte Dateien
KMEANS TensorFlow SavedModel (TF 1.15 oder höher) gcs_bucket/
  assets/
    f1.txt
    f2.txt
  saved_model.pb
  variables/
    variables.data-00-of-01
    variables.index
LINEAR_REGRESSOR
LOGISTIC_REG
MATRIX_FACTORIZATION
TENSORFLOW (importiert) TensorFlow SavedModel Exakt die gleichen Dateien, die beim Importieren des Modells vorhanden waren

Beschränkungen

  • Der Modellexport wird nicht unterstützt, wenn für das Training eines der folgenden Features verwendet wurde:
    • ARRAY-, TIMESTAMP- oder GEOGRAPHY-Featuretypen waren in den Eingabedaten vorhanden.
    • Die BigQuery ML Transform-Klausel wurde für das Feature Engineering verwendet.

BigQuery ML-Modelle exportieren

So exportieren Sie ein Modell:

Console

  1. Rufen Sie in der Cloud Console die BigQuery-Web-UI auf.
    Zur Cloud Console

  2. Maximieren Sie im Navigationsbereich im Abschnitt Ressourcen Ihr Projekt und klicken Sie dann zum Maximieren auf Ihr Dataset. Ermitteln Sie das Modell, das Sie exportieren möchten, und klicken Sie darauf.

  3. Klicken Sie rechts im Fenster auf Modell exportieren.

    Modell exportieren

  4. Gehen Sie im Dialogfeld Modell nach Cloud Storage exportieren so vor:

    • Ermitteln Sie unter Cloud Storage-Speicherort auswählen den Bucket- oder Ordnerstandort, in den Sie das Modell exportieren möchten.
    • Klicken Sie auf Exportieren, um das Modell zu exportieren.

Für einen Exportjob können Sie unter Jobverlauf oben in der Navigation den Status des Jobs prüfen.

Befehlszeile

Führen Sie den Befehl bq extract mit dem Flag --model aus.

Optional: Geben Sie das Flag --location an und legen Sie dafür als Wert Ihren Standort fest.

bq --location=location extract \
--model project_id:dataset.model \
gs://bucket/model_folder

Dabei gilt:

  • location ist der Name Ihres Standorts. Das Flag --location ist optional. Wenn Sie BigQuery z. B. in der Region Tokio verwenden, können Sie für das Flag den Wert asia-northeast1 festlegen. Mit der Datei .bigqueryrc können Sie einen Standardwert für den Standort festlegen.
  • project_id ist die Projekt-ID.
  • dataset ist der Name des Quell-Datasets.
  • model ist das Modell, das Sie exportieren.
  • bucket ist der Name des Cloud Storage-Buckets, in den Sie Daten exportieren. Das BigQuery-Dataset und der Cloud Storage-Bucket müssen sich am selben Standort befinden.
  • model_folder ist der Name des Ordners, in den die exportierten Modelldateien geschrieben werden.

Beispiele:

Der folgende Befehl exportiert mydataset.mymodel im SavedModel-Format von TensorFlow in einen Cloud Storage-Bucket mit dem Namen mymodel_folder.

bq extract --model \
'mydataset.mymodel' \
gs://example-bucket/mymodel_folder

API

Zum Exportieren eines Modells erstellen Sie einen extract-Job und legen dafür die Jobkonfiguration fest.

Optional: Geben Sie im Attribut location im Abschnitt jobReference der Jobressource Ihren Standort an.

  1. Erstellen Sie einen Extrahierungsjob, der auf das BigQuery ML-Modell und auf das Cloud Storage-Ziel verweist.

  2. Geben Sie das Quellmodell mithilfe des Konfigurationsobjekts sourceModel an, das die Projekt-ID, die Dataset-ID und die Modell-ID enthält.

  3. Das Attribut destination URI(s) muss vollständig qualifiziert sein und das Format gs://bucket/model_folder haben.

  4. Rufen Sie zur Prüfung des Jobstatus jobs.get(job_id) mit der ID des Jobs auf, die von der ursprünglichen Anfrage zurückgegeben wurde.

    • Wenn status.state = DONE zurückgegeben wird, wurde der Job erfolgreich abgeschlossen.
    • Wenn das Attribut status.errorResult zurückgegeben wird, ist die Anfrage fehlgeschlagen. Das Objekt enthält in diesem Fall Angaben zur Fehlerursache.
    • Wenn status.errorResult nicht zurückgegeben wird, wurde der Job erfolgreich abgeschlossen. Es können aber nichtsdestotrotz einige nicht schwerwiegende Fehler aufgetreten sein. Nicht schwerwiegende Fehler werden im Attribut status.errors des Objekts für den zurückgegebenen Job aufgeführt.

API-Hinweise:

  • Als Best Practice generieren Sie eine nur einmal vorkommende ID und übergeben Sie diese als jobReference.jobId, wenn Sie jobs.insert zum Erstellen eines Ladejobs aufrufen. Diese Vorgehensweise ist weniger anfällig für Netzwerkfehler, da der Client anhand der bekannten Job-ID einen Abruf oder einen neuen Versuch ausführen kann.

  • Das Aufrufen von jobs.insert für eine bestimmte Job-ID ist idempotent. Das bedeutet, dass Sie den Aufruf für eine bestimmte Job-ID beliebig oft wiederholen können. Maximal einer dieser Vorgänge wird erfolgreich sein.

Modellbereitstellung

Sie können das exportierte Modell sowohl in Google Cloud AI Platform als auch lokal bereitstellen.

AI Platform-Bereitstellung

Exportmodellformat Bereitstellung
TensorFlow SavedModel TensorFlow SavedModel bereitstellen (Laufzeitversion 1.15 oder höher)

Lokale Bereitstellung

Exportmodellformat Bereitstellung
TensorFlow SavedModel "SavedModel" ist ein Standardformat, das sich in Tensorflow Serving-Docker-Containern bereitstellen lässt.

Sie können auch die lokale Ausführung von AI Platform-Onlinevorhersagen nutzen.

Ausgabeformat der Vorhersage

In diesem Abschnitt wird das Ausgabeformat für die Vorhersage der exportierten Modelle für jeden Modelltyp dargestellt. Alle exportierten Modelle unterstützen Batchvorhersagen und können mehrere Eingabezeilen gleichzeitig verarbeiten. Beispielsweise gibt es in jedem der folgenden Beispiele für die Ausgabeformate zwei Eingabezeilen.

KMEANS

Ausgabeformat der Vorhersage Ausgabebeispiel

+--------------------+--------------+---------------------+
| CENTROID_DISTANCES | CENTROID_IDS | NEAREST_CENTROID_ID |
+--------------------+--------------+---------------------+
| [FLOAT]            | [INT64]      | INT64               |
+--------------------+--------------+---------------------+
        

+--------------------+--------------+---------------------+
| CENTROID_DISTANCES | CENTROID_IDS | NEAREST_CENTROID_ID |
+--------------------+--------------+---------------------+
| [1.2, 1.3]         | [1, 2]       | [1]                 |
+--------------------+--------------+---------------------+
| [0.4, 0.1]         | [1, 2]       | [2]                 |
+--------------------+--------------+---------------------+
        

LINEAR_REG

Ausgabeformat der Vorhersage Ausgabebeispiel

+-----------------+
| PREDICTED_LABEL |
+-----------------+
| FLOAT           |
+-----------------+
        

+-----------------+
| PREDICTED_LABEL |
+-----------------+
| [1.8]           |
+-----------------+
| [2.46]          |
+-----------------+
       

LOGISTIC_REG

Ausgabeformat der Vorhersage Ausgabebeispiel

+-------------+--------------+-----------------+
| LABEL_PROBS | LABEL_VALUES | PREDICTED_LABEL |
+-------------+--------------+-----------------+
| [FLOAT]     | [STRING]     | STRING          |
+-------------+--------------+-----------------+
        

+-------------+--------------+-----------------+
| LABEL_PROBS | LABEL_VALUES | PREDICTED_LABEL |
+-------------+--------------+-----------------+
| [0.1, 0.9]  | ['a', 'b']   | ['b']           |
+-------------+--------------+-----------------+
| [0.8, 0.2]  | ['a', 'b']   | ['a']           |
+-------------+--------------+-----------------+
        

MATRIX_FACTORIZATION

Hinweis: Derzeit wird nur ein Eingabenutzer unterstützt und die 50 besten Paare (predicted_rating, predicted_item) werden nach predicted_rating in absteigender Reihenfolge sortiert ausgegeben.

Ausgabeformat der Vorhersage Ausgabebeispiel

+--------------------+--------------+
| PREDICTED_RATING | PREDICTED_ITEM |
+------------------+----------------+
| [FLOAT]          | [STRING]       |
+------------------+----------------+
        

+--------------------+--------------+
| PREDICTED_RATING | PREDICTED_ITEM |
+------------------+----------------+
| [5.5, 1.7]       | ['A', 'B']     |
+------------------+----------------+
| [7.2, 2.7]       | ['B', 'A']     |
+------------------+----------------+
        

TENSORFLOW (importiert)

Ausgabeformat der Vorhersage
Entspricht dem importierten Modell

Erforderliche Berechtigungen

Zum Exportieren eines BigQuery ML-Modells nach Cloud Storage benötigen Sie Berechtigungen für den Zugriff auf das BigQuery ML-Modell, für das Ausführen eines Exportjobs und für das Schreiben der Daten in den Cloud Storage-Bucket.

BigQuery-Berechtigungen

  • Zum Exportieren des Modells sind mindestens Berechtigungen vom Typ bigquery.models.export erforderlich. Die folgenden vordefinierten Cloud IAM-Rollen enthalten diese Berechtigungen vom Typ bigquery.models.export:

    • bigquery.dataViewer
    • bigquery.dataOwner
    • bigquery.dataEditor
    • bigquery.admin
  • Zum Ausführen eines Exportjobs benötigen Sie Berechtigungen vom Typ bigquery.jobs.create. Die folgenden vordefinierten Cloud IAM-Rollen enthalten diese Berechtigungen vom Typ bigquery.jobs.create:

    • bigquery.user
    • bigquery.jobUser
    • bigquery.admin

Cloud Storage-Berechtigungen

  • Zum Schreiben von Daten in einen vorhandenen Cloud Storage-Bucket benötigen Sie Berechtigungen vom Typ storage.objects.create. Die folgenden vordefinierten Cloud IAM-Rollen enthalten diese Berechtigungen vom Typ storage.objects.create:

    • storage.objectCreator
    • storage.objectAdmin
    • storage.admin

Unter Zugriffssteuerung erfahren Sie mehr über IAM-Rollen und -Berechtigungen in BigQuery ML. Weitere Informationen zu Rollen auf Dataset-Ebene finden Sie in der BigQuery-Dokumentation unter Einfache Rollen für Datasets.

Überlegungen zum Standort

Bei der Auswahl eines Speicherorts für Ihre Daten sollten Sie Folgendes beachten:

  • Platzieren Sie die Cloud Storage-Buckets zum Exportieren von Daten am selben Standort.
    • Wenn Sie Daten exportieren, muss sich der regionale oder multiregionale Cloud Storage-Bucket am selben Standort wie das BigQuery ML-Dataset befinden. Wenn Ihr BigQuery ML-Dataset zum Beispiel im multiregionalen Standort "EU" liegt, muss sich der Cloud Storage-Bucket mit den Daten, die Sie exportieren, an einem regionalen oder multiregionalen Standort in der EU befinden.
    • Wenn Ihr Dataset an einem regionalen Standort gespeichert ist, muss der Cloud Storage-Bucket ein regionaler Bucket am selben Standort sein. Wenn sich Ihr Dataset zum Beispiel in der Region "Tokio" befindet, muss der Cloud Storage-Bucket ein regionaler Bucket in Tokio sein.
    • Ausnahme: Wenn sich Ihr Dataset am multiregionalen Standort "US" befindet, können Sie Daten in einen Cloud Storage-Bucket exportieren, der sich an einem beliebigen regionalen oder multiregionalen Standort befindet.
  • Entwickeln Sie einen Plan zur Datenverwaltung:
    • Wenn Sie eine regionale Speicherressource wie ein BigQuery ML-Dataset oder einen Cloud Storage-Bucket auswählen, müssen Sie einen Plan für die geografische Verwaltung Ihrer Daten erstellen.

Weitere Informationen zu Cloud Storage-Standorten finden Sie unter Bucket-Standorte in der Cloud Storage-Dokumentation.

BigQuery-Daten zwischen Standorten verschieben

Der Standort eines Datasets lässt sich nach seiner Erstellung nicht mehr ändern. Sie können aber eine Kopie des Datasets anlegen.

Kontingentrichtlinie

Weitere Informationen zum Exportieren von Jobkontingenten finden Sie auf der Seite "Kontingente und Limits" unter Exportjobs.

Preise

Für das Exportieren von BigQuery ML-Modellen fallen keine Kosten an. Exporte unterliegen aber den Kontingenten und Limits von BigQuery. Weitere Informationen zu den Preisen von BigQuery finden Sie auf der Seite BigQuery-Preise.

Nachdem die Daten exportiert wurden, wird das Speichern der Daten in Cloud Storage in Rechnung gestellt. Weitere Informationen zu den Preisen von Cloud Storage erhalten Sie auf der Seite Cloud Storage – Preise.

Weitere Informationen