Vorhersagen mit scikit-learn-Pipelines

In dieser Anleitung trainieren Sie mit dem Iris-Dataset ein einfaches Modell zur Vorhersage von Blumenarten. Nachdem Sie das Modell lokal trainiert und gespeichert haben, stellen Sie es auf AI Platform Prediction bereit und senden Anfragen, um Onlinevorhersagen zu erhalten.

Sie können scikit-learn-Pipelines in AI Platform Prediction bereitstellen. Bevor Sie das Training mit einem Estimator beginnen, können Sie mit dem Pipelinemodul in scikit-learn mehrere Datentransformationen anwenden. Dies umfasst mehrere Schritte der Datenverarbeitung und bei jedem Schritt werden dieselben Trainingsdaten verwendet.

Überblick

Diese einführende Anleitung beschreibt die folgenden Schritte:

  • scikit-learn-Pipeline zum Trainieren eines Modells mit dem Iris-Dataset verwenden
  • Modell lokal speichern
  • Gespeichertes Modell in Cloud Storage hochladen
  • AI Platform Prediction-Modellressource und -Modellversion erstellen
  • Onlinevorhersagen für zwei Dateninstanzen abrufen

Vorbereitung

Mit den folgenden Schritten richten Sie ein GCP-Konto ein, aktivieren die AI Platform Prediction API und installieren und aktivieren das Cloud SDK.

GCP-Projekt einrichten

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, registrieren Sie sich hier für ein neues Konto.

  2. Wählen Sie in der Cloud Console auf der Projektauswahlseite ein Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Aktivieren Sie die AI Platform Training & Prediction and Compute Engine APIs.

    Aktivieren Sie die APIs

  5. Installieren und initialisieren Sie das Cloud SDK.

Umgebung einrichten

Wählen Sie eine der folgenden Optionen aus, um Ihre Umgebung entweder lokal auf macOS oder in einer Remote-Umgebung in Cloud Shell einzurichten.

Nutzern von macOS wird empfohlen, ihre Umgebung mit der Anleitung auf dem Tab macOS unten einzurichten. Cloud Shell ist unter macOS, Linux und Windows verfügbar. Die entsprechende Anleitung finden Sie auf dem Tab Cloud Shell. Cloud Shell bietet eine schnelle Möglichkeit für den Test von AI Platform Prediction, eignet sich jedoch nicht für fortlaufende Entwicklungsarbeiten.

macOS

  1. Python-Installation prüfen
    Prüfen Sie, ob Python installiert ist, und installieren Sie es bei Bedarf.

    python -V
  2. pip-Installation prüfen
    pip ist der Paketmanager von Python, der in aktuellen Versionen von Python enthalten ist. Prüfen Sie, ob Sie pip bereits installiert haben. Dazu führen Sie pip --version aus. Ist das nicht der Fall, lesen Sie die Anleitung zum Installieren von pip.

    Mit diesem Befehl können Sie ein Upgrade von pip ausführen:

    pip install -U pip

    Weitere Informationen finden Sie in der Dokumentation zu pip.

  3. virtualenv installieren
    virtualenv ist ein Tool, mit dem sich isolierte Python-Umgebungen erstellen lassen. Prüfen Sie, ob Sie virtualenv bereits installiert haben. Dazu führen Sie virtualenv --version aus. Ist das nicht der Fall, installieren Sie virtualenv:

    pip install --user --upgrade virtualenv

    Zur Einrichtung einer isolierten Entwicklungsumgebung für diese Anleitung erstellen Sie in virtualenv eine neue virtuelle Umgebung. Mit diesem Befehl wird beispielsweise eine Umgebung mit dem Namen cmle-env aktiviert:

    virtualenv cmle-env
        source cmle-env/bin/activate
  4. Für diese Anleitung führen Sie die übrigen Befehle in Ihrer virtuellen Umgebung aus.

    Hier finden Sie weitere Informationen zur Verwendung von virtualenv. Zum Beenden von virtualenv führen Sie deactivate aus.

Cloud Shell

  1. Öffnen Sie die Google Cloud Console.

    Google Cloud Console

  2. Klicken Sie oben auf Cloud Shell aktivieren.

    Grafik: Google Cloud Shell aktivieren

    In einem neuen Frame im unteren Teil der Console wird eine Cloud Shell-Sitzung geöffnet und darin eine Eingabeaufforderung angezeigt. Die Initialisierung der Shell-Sitzung kann einige Sekunden dauern.

    Grafik: Cloud Shell-Sitzung

    Die Cloud Shell-Sitzung kann jetzt verwendet werden.

  3. Konfigurieren Sie das gcloud-Befehlszeilentool so, dass es Ihr ausgewähltes Projekt verwendet.

        gcloud config set project [selected-project-id]

    Dabei ist [selected-project-id] Ihre Projekt-ID. Sie wird ohne die Klammern eingegeben.

Google Cloud SDK-Komponenten prüfen

So prüfen Sie, ob die Google Cloud SDK-Komponenten installiert sind:

  1. Listen Sie Ihre Modelle auf:

    gcloud ai-platform models list
  2. Wenn Sie noch keine Modelle erstellt haben, gibt der Befehl eine leere Liste zurück:

    Listed 0 items.

    Nach dem Erstellen von Modellen können Sie sie mit diesem Befehl auflisten.

  3. Wenn Sie gcloud schon installiert haben, aktualisieren Sie gcloud:

    gcloud components update

Frameworks installieren

macOS

Führen Sie in Ihrer virtuellen Umgebung den folgenden Befehl aus, um die Versionen von scikit-learn und pandas zu installieren, die in der Laufzeitversion 1.15 von AI Platform Prediction verwendet werden:

    (cmle-env)$ pip install scikit-learn==0.20.2 pandas==0.24.0

Durch die Angabe von Versionsnummern im vorherigen Befehl sorgen Sie dafür, dass die Abhängigkeiten in Ihrer virtuellen Umgebung mit den Abhängigkeiten in der Laufzeitversion übereinstimmen. Dies verhindert unerwartetes Verhalten, wenn Ihr Code in AI Platform Prediction ausgeführt wird.

Weitere Informationen, Hinweise zu weiteren Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in den Installationsanleitungen für die einzelnen Frameworks:

Cloud Shell

Führen Sie den folgenden Befehl aus, um scikit-learn und pandas zu installieren:

pip install --user scikit-learn pandas
    

Weitere Informationen, Hinweise zu weiteren Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in den Installationsanleitungen für die einzelnen Frameworks:

Modell trainieren und exportieren

Sie können Pipeline-Objekte mit der Version von joblib in scikit-learn oder pickle exportieren, genauso wie Sie scikit-learn-Estimators exportieren. Im folgenden Beispiel wird eine Pipeline eingerichtet, die ein RandomForestClassifier zum Trainieren eines Modells im Iris-Dataset verwendet.

joblib

Richten Sie die Pipeline ein, trainieren Sie das Modell und verwenden Sie joblib, um das Objekt Pipeline zu exportieren:

from sklearn import datasets
    from sklearn import svm
    from sklearn.feature_selection import SelectKBest
    from sklearn.feature_selection import chi2
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.pipeline import Pipeline

    from sklearn.externals import joblib

    # Load the Iris dataset
    iris = datasets.load_iris()

    # Set up a pipeline with a feature selection preprocessor that
    # selects the top 2 features to use.
    # The pipeline then uses a RandomForestClassifier to train the model.

    pipeline = Pipeline([
          ('feature_selection', SelectKBest(chi2, k=2)),
          ('classification', RandomForestClassifier())
        ])

    pipeline.fit(iris.data, iris.target)

    # Export the classifier to a file
    joblib.dump(pipeline, 'model.joblib')
    

pickle

Richten Sie die Pipeline ein, trainieren Sie das Modell und verwenden Sie pickle, um das Objekt Pipeline zu exportieren:

from sklearn import datasets
    from sklearn import svm
    from sklearn.feature_selection import SelectKBest
    from sklearn.feature_selection import chi2
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.pipeline import Pipeline

    import pickle

    # Load the Iris dataset
    iris = datasets.load_iris()

    # Set up a pipeline with a feature selection preprocessor that
    # selects the top 2 features to use.
    # The pipeline then uses a RandomForestClassifier to train the model.

    pipeline = Pipeline([
          ('feature_selection', SelectKBest(chi2, k=2)),
          ('classification', RandomForestClassifier())
        ])

    pipeline.fit(iris.data, iris.target)

    # Export the classifier to a file
    with open('model.pkl', 'wb') as model_file:
      pickle.dump(pipeline, model_file)
    

Anforderungen an die Benennung von Modelldateien

Je nach verwendeter Mediathek muss die gespeicherte Modelldatei, die Sie in Cloud Storage hochladen, entweder den Namen model.pkl oder model.joblib tragen. Diese Einschränkung sorgt dafür, dass AI Platform Prediction zur Modellrekonstruktion beim Importieren das gleiche Muster verwendet, das auch beim Exportieren verwendet wurde.

Zum Export des Modells verwendete Mediathek Korrekter Modellname
pickle model.pkl
sklearn.externals.joblib model.joblib

Organisieren Sie bei zukünftigen Iterationen Ihres Modells den Cloud Storage-Bucket so, dass jedes neue Modell ein eigenes Verzeichnis hat.

Modell in Cloud Storage speichern

Für diese Anleitung ist es am einfachsten, wenn Sie einen dedizierten Cloud Storage-Bucket in demselben Projekt wie AI Platform Prediction verwenden.

Wenn Sie einen Bucket in einem anderen Projekt verwenden, müssen Sie dafür sorgen, dass das AI Platform Prediction-Dienstkonto auf das Modell in Cloud Storage zugreifen kann. Ohne die entsprechenden Berechtigungen schlägt die Anfrage zum Erstellen einer AI Platform Prediction-Modellversion fehl. Weitere Informationen zum Gewähren von Berechtigungen für Cloud Storage finden Sie hier.

Cloud Storage-Bucket einrichten

In diesem Abschnitt erfahren Sie, wie Sie einen neuen Bucket erstellen. Sie können auch einen vorhandenen Bucket verwenden. Er muss sich aber in der Region befinden, in der Sie AI Platform-Jobs ausführen. Hinzu kommt: Wenn der Bucket nicht zu dem Projekt gehört, das Sie für die Ausführung von AI Platform Prediction verwenden, müssen Sie den AI Platform Prediction-Dienstkonten explizit Zugriff gewähren.

  1. Geben Sie einen Namen für den neuen Bucket an. Der Name muss sich von allen anderen Bucket-Namen in Cloud Storage unterscheiden:

        BUCKET_NAME="your_bucket_name"

    Beispielsweise verwenden Sie den Projektnamen mit angehängtem -aiplatform:

        PROJECT_ID=$(gcloud config list project --format "value(core.project)")
        BUCKET_NAME=${PROJECT_ID}-aiplatform
  2. Prüfen Sie den erstellten Bucketnamen.

    echo $BUCKET_NAME
  3. Wählen Sie eine Region für den Bucket aus und legen Sie eine Umgebungsvariable REGION fest.

    Verwenden Sie die Region, in der Sie auch AI Platform Prediction-Jobs ausführen möchten. Hier finden Sie die verfügbaren Regionen für AI Platform Prediction-Dienste.

    Mit diesem Code wird beispielsweise REGION erstellt und auf us-central1 festgelegt:

    REGION=us-central1
  4. Erstellen Sie den neuen Bucket:

    gsutil mb -l $REGION gs://$BUCKET_NAME

Exportierte Modelldatei in Cloud Storage hochladen

Führen Sie den folgenden Befehl aus, um die gespeicherte Pipeline-Datei in den Bucket in Cloud Storage hochzuladen:

gsutil cp ./model.joblib gs://$BUCKET_NAME/model.joblib
    

Sie können für mehrere Modelldateien denselben Cloud Storage-Bucket verwenden. Jede Modelldatei muss sich aber innerhalb des Buckets in einem eigenen Verzeichnis befinden.

Eingabe für die Vorhersage formatieren

gcloud

Erstellen Sie eine input.json-Datei mit je einer Eingabeinstanz in einer separaten Zeile:

[6.8,  2.8,  4.8,  1.4]
    [6.0,  3.4,  4.5,  1.6]
    

Das Format der Eingabeinstanzen muss den Anforderungen Ihres Modells entsprechen. In diesem Beispiel benötigt das Iris-Modell vier Funktionen. Ihre Eingabe muss also eine Matrix in der Form (num_instances, 4) sein.

REST API

Erstellen Sie eine input.json-Datei, die als einfache Liste aus Gleitkommazahlen formatiert ist, und in der sich jede Eingabeinstanz in einer separaten Zeile befindet:

{
      "instances": [

        [6.8,  2.8,  4.8,  1.4],
        [6.0,  3.4,  4.5,  1.6]

      ]
    }
    

Das Format der Eingabeinstanzen muss den Anforderungen Ihres Modells entsprechen. In diesem Beispiel benötigt das Iris-Modell vier Funktionen. Ihre Eingabe muss also eine Matrix in der Form (num_instances, 4) sein.

Weitere Informationen finden Sie unter Eingabe für Onlinevorhersagen formatieren.

Modell mit lokalen Vorhersagen testen

Mit dem Befehl gcloud ai-platform local predict können Sie testen, wie das Modell Vorhersagen durchführt, bevor Sie es für AI Platform Prediction bereitstellen. Der Befehl verwendet für Vorhersagen Abhängigkeiten in Ihrer lokalen Umgebung und gibt Ergebnisse im selben Format zurück, das gcloud ai-platform predict für Onlinevorhersagen verwendet. Wenn Sie Vorhersagen in Ihrer lokalen Umgebung testen, können Sie Fehler erkennen und somit Kosten in Verbindung mit Anfragen für Onlinevorhersagen vermeiden.

Geben Sie für das Argument --model-dir ein Verzeichnis an, das Ihr exportiertes Modell für maschinelles Lernen enthält und sich entweder auf Ihrem lokalen Computer oder in Cloud Storage befindet. Für das Argument --framework geben Sie tensorflow, scikit-learn oder xgboost an. Sie können den Befehl gcloud ai-platform local predict nicht mit einer benutzerdefinierten Vorhersageroutine verwenden.

Dieses Beispiel zeigt, wie lokale Vorhersagen durchgeführt werden:

gcloud ai-platform local predict --model-dir local-or-cloud-storage-path-to-model-directory/ \
      --json-instances local-path-to-prediction-input.json \
      --framework name-of-framework
    

Modelle und Versionen 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 ML-Modells.

Zum Bereitstellen eines Modells legen Sie eine Modellressource in AI Platform Prediction an, erstellen eine Version dieses Modells und verknüpfen dann die Modellversion mit der in Cloud Storage gespeicherten Modelldatei.

Modellressource erstellen

AI Platform Prediction verwendet Modellressourcen, um verschiedene Versionen Ihres Modells zu organisieren.

Konsole

  1. Öffnen Sie in der Cloud Console unter "AI Platform" die Seite "Modelle":

    "Modelle" in der Cloud Console öffnen

  2. Klicken Sie oben auf der Seite Modelle auf die Schaltfläche Neues Modell. Dadurch gelangen Sie auf die Seite Modell erstellen.

  3. Geben Sie im Feld Modellname einen eindeutigen Namen für Ihr Modell ein. Wählen Sie mithilfe der Drop-down-Liste Region einen Speicherort für Ihre Vorhersageknoten aus.

  4. Klicken Sie auf Erstellen.

  5. Vergewissern Sie sich, dass Sie wieder zur Seite Modelle zurückgekehrt sind und Ihr neues Modell in der Liste angezeigt wird.

gcloud

Ersetzen Sie im folgenden Befehl MODEL_NAME durch den gewünschten Namen für Ihr Modell. Ersetzen Sie REGION durch die Region, in der die Vorhersageknoten ausgeführt werden sollen. Sie müssen eine Region auswählen, die Onlinevorhersagen unterstützt.

gcloud ai-platform models create MODEL_NAME \
      --regions REGION
    

REST API

  1. Formatieren Sie die Anfrage dadurch, dass Sie das Modellobjekt in den Anfragetext einfügen. Geben Sie mindestens einen Namen für Ihr Modell an und ersetzen Sie MODEL_NAME in den folgenden Beispielen. Geben Sie eine Region an und ersetzen Sie REGION durch eine Region, die Onlinevorhersagen unterstützt.

    {
          "name": "MODEL_NAME",
          "regions": ["REGION"]
        }
        
  2. Senden Sie den REST API-Aufruf an den folgenden Pfad und ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID:

    POST https://ml.googleapis.com/v1/projects/PROJECT_ID/models/
        

    Sie können beispielsweise die folgende Anfrage mit cURL stellen:

    curl -X POST -H "Content-Type: application/json" \
          -d '{"name": "MODEL_NAME", "regions": ["REGION"]}' \
          -H "Authorization: Bearer `gcloud auth print-access-token`" \
          "https://ml.googleapis.com/v1/projects/PROJECT_ID/models"
        

    Die API gibt in etwa folgende Antwort zurück:

    {
          "name": "projects/PROJECT_ID/models/MODEL_NAME",
          "regions": [
            "REGION"
          ]
        }
        

Weitere Informationen finden Sie in der API für AI Platform Prediction-Modelle.

Modellversionen erstellen

Sie können jetzt mit dem trainierten und bereits in Cloud Storage hochgeladenen Modell eine Modellversion erstellen. Dabei geben Sie diese Parameter an:

  • name: Muss innerhalb des AI Platform Prediction-Modells einmalig sein.
  • deploymentUri: Der Pfad zu Ihrem Modellverzeichnis in Cloud Storage.

    • Wenn Sie ein TensorFlow-Modell bereitstellen, ist es ein SavedModel-Verzeichnis.
    • Wenn Sie ein scikit-learn- oder XGBoost-Modell bereitstellen, ist es das Verzeichnis, in dem sich die Datei model.joblib, model.pkl oder model.bst befindet.
    • Wenn Sie eine benutzerdefinierte Vorhersageroutine bereitstellen, ist dies das Verzeichnis, in dem sich alle Modellartefakte befinden. Die Gesamtgröße dieses Verzeichnisses darf maximal 500 MB betragen.
  • framework: TENSORFLOW, SCIKIT_LEARN oder XGBOOST.

  • runtimeVersion: Eine Laufzeitversion entsprechend den Abhängigkeiten, die Ihr Modell benötigt. Wenn Sie ein scikit-learn-Modell oder ein XGBoost-Modell bereitstellen, muss dies mindestens Version 1.4 sein.

  • pythonVersion: Muss auf "3.5" (für Laufzeitversionen 1.4 bis 1.14) oder "3.7" festgelegt sein (für Laufzeitversionen 1.15 und höher), um mit von Python 3 exportierten Modelldateien kompatibel zu sein. Kann bei Laufzeitversion 1.15 oder früher auch auf "2.7" festgelegt werden.

  • machineType (optional): Der Typ der virtuellen Maschine, den AI Platform Prediction für die Knoten verwendet, die Vorhersagen bereitstellen. Hier finden Sie weitere Informationen zu Maschinentypen. Standardmäßig wird mls1-c1-m2 verwendet, wenn nichts anderes festgelegt wird.

Weitere Informationen zu diesen Parametern finden Sie in der AI Platform Training und Prediction API für eine Versionsressource.

Beachten Sie die kompletten Details für jede Laufzeitversion.

Console

  1. Wählen Sie auf der Seite Modelle den Namen der Modellressource aus, die Sie zur Erstellung Ihrer Version verwenden möchten. Dadurch gelangen Sie auf die Seite Modelldetails.

    "Modelle" in der Cloud Console öffnen

  2. Klicken Sie oben auf der Seite Modelldetails auf die Schaltfläche Neue Version. Dadurch gelangen Sie auf die Seite Version erstellen.

  3. Geben Sie den Versionsnamen in das Feld Name ein. Geben Sie optional eine Beschreibung für Ihre Version in das Feld Beschreibung ein.

  4. Geben Sie die Informationen über das Training Ihres Modells in den entsprechenden Drop-down-Menüs ein:

  5. Wählen Sie optional einen Maschinentyp für die Onlinevorhersage aus. Der Standardwert in diesem Feld ist "Single-Core-CPU".

  6. Geben Sie im Feld Modell-URI den Standort des Cloud Storage-Buckets ein, in den Sie Ihre Modelldatei hochgeladen haben. Mit der Schaltfläche Durchsuchen können Sie nach dem entsprechenden Pfad suchen.

    Achten Sie darauf, dass Sie den Pfad zu dem Verzeichnis angeben, das die Datei enthält, und nicht den Pfad zur Modelldatei selbst. Verwenden Sie z. B. gs://your_bucket_name/model-dir/ statt gs://your_bucket_name/model-dir/saved_model.pb oder gs://your_bucket_name/model-dir/model.pkl.

  7. Zum Bereitstellen der Onlinevorhersage wählen Sie eine Skalierungsoption aus:

    • Wenn Sie "Automatische Skalierung" auswählen, wird das optionale Feld Mindestanzahl von Knoten angezeigt. Geben Sie hier die Mindestanzahl der Knoten ein, die auch dann jederzeit aktiv bleiben sollen, wenn der Dienst herunterskaliert wurde. Der Standardwert in diesem Feld ist 0.

    • Wenn Sie "Manuelle Skalierung" auswählen, geben Sie die Anzahl der Knoten ein, die ständig ausgeführt werden sollen.

      Weitere Informationen finden Sie unter Vorhersagekosten.

  8. Zum Erstellen Ihrer Modellversion klicken Sie auf Speichern.

gcloud

  1. Legen Sie Umgebungsvariablen für den Pfad zum Cloud Storage-Verzeichnis mit der Modellbinärdatei sowie für den Versionsnamen, den Modellnamen und das von Ihnen gewählte Framework fest.

    Wenn Sie eine Version mit dem gcloud-Tool erstellen, geben Sie den Framework-Namen in Großbuchstaben mit Unterstrichen (z. B. SCIKIT_LEARN) oder in Kleinbuchstaben mit Bindestrichen (z. B. scikit-learn) an. Beide Optionen führen zu identischem Verhalten.

    Ersetzen Sie [VALUES_IN_BRACKETS] dabei durch die entsprechenden Werte:

    MODEL_DIR="gs://your_bucket_name/"
        VERSION_NAME="[YOUR-VERSION-NAME]"
        MODEL_NAME="[YOUR-MODEL-NAME]"
        FRAMEWORK="[YOUR-FRAMEWORK_NAME]"
        

  2. Erstellen Sie die Version:

    gcloud ai-platform versions create $VERSION_NAME \
          --model $MODEL_NAME \
          --origin $MODEL_DIR \
          --runtime-version=1.15 \
          --framework $FRAMEWORK \
          --python-version=3.7
        

    Das Erstellen der Version dauert einige Minuten. Wenn sie fertig ist, sollten Sie die folgende Ausgabe sehen:

    Creating version (this might take a few minutes)......done.

  3. Rufen Sie Informationen über Ihre neue Version ab:

    gcloud ai-platform versions describe $VERSION_NAME \
          --model $MODEL_NAME
        

    Die Ausgabe sollte etwa so aussehen:

    createTime: '2018-02-28T16:30:45Z'
        deploymentUri: gs://your_bucket_name
        framework: [YOUR-FRAMEWORK-NAME]
        machineType: mls1-c1-m2
        name: projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME]
        pythonVersion: '3.7'
        runtimeVersion: '1.15'
        state: READY

REST API

  1. Formatieren Sie Ihren Anfragetext so, dass das Versionsobjekt enthalten ist. In diesem Beispiel werden name, deploymentUri, runtimeVersion und framework der Version angegeben. Ersetzen Sie [VALUES_IN_BRACKETS] dabei durch die entsprechenden Werte:

      {
            "name": "[YOUR-VERSION-NAME]",
            "deploymentUri": "gs://your_bucket_name/"
            "runtimeVersion": "1.15"
            "framework": "[YOUR_FRAMEWORK_NAME]"
            "pythonVersion": "3.7"
          }
        
  2. Senden Sie den REST API-Aufruf an den folgenden Pfad und ersetzen Sie [VALUES_IN_BRACKETS] durch die entsprechenden Werte:

      POST https://ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions
        

    Sie können beispielsweise die folgende Anfrage mit cURL stellen:

        curl -X POST -H "Content-Type: application/json" \
              -d '{"name": "[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name/", "runtimeVersion": "1.15", "framework": "[YOUR_FRAMEWORK_NAME]", "pythonVersion": "3.7"}' \
              -H "Authorization: Bearer `gcloud auth print-access-token`" \
              "https://ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions"
        

    Das Erstellen der Version dauert einige Minuten. Wenn sie fertig ist, sollte die Ausgabe in etwa so aussehen:

      {
            "name": "projects/[YOUR-PROJECT-ID]/operations/create_[YOUR-MODEL-NAME]_[YOUR-VERSION-NAME]-[TIMESTAMP]",
            "metadata": {
              "@type": "type.googleapis.com/google.cloud.ml.v1.OperationMetadata",
              "createTime": "2018-07-07T02:51:50Z",
              "operationType": "CREATE_VERSION",
              "modelName": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]",
              "version": {
                "name": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME]",
                "deploymentUri": "gs://your_bucket_name",
                "createTime": "2018-07-07T02:51:49Z",
                "runtimeVersion": "1.15",
                "framework": "[YOUR_FRAMEWORK_NAME]",
                "machineType": "mls1-c1-m2",
                "pythonVersion": "3.7"
              }
            }
          }
        

Anfrage für Onlinevorhersage senden

Nachdem Sie erfolgreich eine Version erstellt haben, startet AI Platform Prediction einen neuen Server, der Vorhersageanfragen ausführen kann.

gcloud

  1. Legen Sie Umgebungsvariablen für Ihren Modellnamen, den Versionsnamen und den Namen Ihrer Eingabedatei fest:

    MODEL_NAME="pipeline"
        VERSION_NAME="v1"
        INPUT_FILE="input.json"
        
  2. Senden Sie die Vorhersageanfrage:

    gcloud ai-platform predict --model $MODEL_NAME --version \
          $VERSION_NAME --json-instances $INPUT_FILE
        

Python

In diesem Beispiel wird angenommen, dass Sie mit der Google Cloud-Clientbibliothek für Python vertraut sind. Wenn das nicht der Fall ist, lesen Sie das Thema Python-Clientbibliothek verwenden.

import googleapiclient.discovery

    def predict_json(project, model, instances, version=None):
        """Send json data to a deployed model for prediction.
        Args:
            project (str): project where the AI Platform Prediction Model is deployed.
            model (str): model name.
            instances ([[float]]): List of input instances, where each input
               instance is a list of floats.
            version: str, version of the model to target.
        Returns:
            Mapping[str: any]: dictionary of prediction results defined by the
                model.
        """
        # Create the AI Platform Prediction service object.
        # To authenticate set the environment variable
        # GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>
        service = googleapiclient.discovery.build('ml', 'v1')
        name = 'projects/{}/models/{}'.format(project, model)

        if version is not None:
            name += '/versions/{}'.format(version)

        response = service.projects().predict(
            name=name,
            body={'instances': instances}
        ).execute()

        if 'error' in response:
            raise RuntimeError(response['error'])

        return response['predictions']
    

Weitere Informationen zu Vorhersageeingabeparametern finden Sie unter der AI Platform Prediction API für Vorhersageeingaben

Nächste Schritte