Modelle bereitstellen

Auf dieser Seite wird beschrieben, wie Sie Ihr Modell in AI Platform bereitstellen, um Vorhersagen zu erhalten.

Um das trainierte Modell in AI Platform bereitzustellen, führen Sie folgende Schritte aus:

  • Laden Sie das gespeicherte Modell in einen Cloud Storage-Bucket hoch.
  • Erstellen Sie eine AI Platform-Modellressource.
  • Erstellen Sie eine AI Platform-Versionsressource und geben Sie den Cloud Storage-Pfad zum gespeicherten Modell an.

Vorbereitung

Nachdem Sie das Modell trainiert haben, müssen Sie einige wichtige Anpassungen vornehmen, bevor Sie es für Vorhersagen in AI Platform bereitstellen.

Wenn Sie sich für die Verwendung einer benutzerdefinierten Vorhersageroutine (Beta) entschieden haben, lesen Sie die Anleitung zu benutzerdefinierten Vorhersageroutinen, um mehr über zusätzliche Artefakte und Code zu erfahren, die Sie in Cloud Storage hochladen müssen, sowie über zusätzliche Parameter, die Sie beim Erstellen einer Version angeben müssen.

Modell in Cloud Storage speichern

In der Regel ist es am einfachsten, einen speziellen Cloud Storage-Bucket in demselben Projekt zu verwenden, das Sie für AI Platform nutzen.

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

Cloud Storage-Bucket einrichten

In diesem Abschnitt erfahren Sie, wie Sie einen neuen Bucket einrichten. Sie können auch einen vorhandenen Bucket verwenden. Wenn er jedoch nicht Teil des zum Ausführen von AI Platform verwendeten Projekts ist, müssen Sie explizit Zugriff auf die AI Platform-Dienstkonten 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"

    Verwenden Sie beispielsweise den Projektnamen mit angehängtem -mlengine:

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    BUCKET_NAME=${PROJECT_ID}-mlengine
  2. Überprüfen Sie den erstellten Bucket-Namen:

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

    Beispielsweise wird mit dem folgenden Code die Umgebungsvariable REGION erstellt und dafür als Wert us-central1 festgelegt:

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

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

    Hinweis: Verwenden Sie dieselbe Region, in der die AI Platform-Jobs ausgeführt werden sollen. Im Beispiel ist us-central1 angegeben, da diese Region im Startleitfaden verwendet wird.

Exportiertes Modell in Cloud Storage hochladen

Führen Sie folgenden Befehl aus, um das gespeicherte Modell in Ihren Bucket in Cloud Storage hochzuladen:

SAVED_MODEL_DIR=$(ls ./your-export-dir-base | tail -1)
gsutil cp -r $SAVED_MODEL_DIR gs://your-bucket

Wenn Sie ein SavedModel aus tf.keras oder einem TensorFlow Estimator exportieren, wird es als Unterverzeichnis eines von Ihnen ausgewählten Basis-Exportverzeichnisses gespeichert und mit einem Zeitstempel versehen, wie beispielsweise your-export-dir-base/1487877383942. In diesem Beispiel wird gezeigt, wie Sie das Verzeichnis mit dem neuesten Zeitstempel hochladen. Wenn Sie Ihr SavedModel auf andere Weise erstellt haben, befindet es sich möglicherweise an einem anderen Speicherort in Ihrem lokalen Dateisystem.

Wenn Sie eine benutzerdefinierte Vorhersageroutine (Beta) bereitstellen, laden Sie alle Modellartefakte in ein Modellverzeichnis in Ihrem Cloud Storage-Bucket hoch.

Wenn Sie weitere Versionen Ihres Modells erstellen, organisieren Sie diese so, dass sich jede in einem eigenen Verzeichnis in Ihrem Cloud Storage-Bucket befindet.

Benutzerdefinierten Code hochladen

Wenn Sie eine benutzerdefinierte Vorhersageroutine bereitstellen, müssen Sie auch das Distributionspaket hochladen, das Ihren benutzerdefinierten Code enthält. Beispiel:

gsutil cp dist/my_custom_code-0.1.tar.gz gs://your-bucket/my_custom_code-0.1.tar.gz

Sie können diesen Tarball in dasselbe Verzeichnis in Cloud Storage hochladen wie Ihre Modelldatei, doch ist dies nicht erforderlich. Sie erhalten eine bessere Organisation, wenn Sie beide getrennt halten, besonders wenn Sie viele Versionen Ihres Modells und Codes bereitstellen.

Modell mit lokalen Vorhersagen testen

Sie können das Modell für lokale Vorhersagen mit gcloud bereitstellen. Durch diesen optionalen Schritt lässt sich das Modell vor dem Bereitstellen auf AI Platform überprüfen und dadurch Zeit sparen. Mit der in Cloud Storage hochgeladenen Modelldatei können Sie Onlinevorhersagen lokal ausführen und eine Vorschau der Ergebnisse abrufen, die der AI Platform-Vorhersageserver zurückgeben würde.

Verwenden Sie eine lokale Vorhersage mit einer kleinen Teilmenge Ihrer Testdaten, damit Sie Diskrepanzen zwischen Trainings- und Bereitstellungsfunktionen beheben können. Wenn beispielsweise die Daten, die Sie mit Ihrer Vorhersageanfrage senden, nicht mit dem übereinstimmen, was Ihr Modell erwartet, können Sie dies herausfinden, bevor Kosten für Onlinevorhersageanfragen in der Cloud anfallen.

Weitere Informationen zur Verwendung von gcloud ai-platform local predict.

  1. Falls noch nicht geschehen, legen Sie Umgebungsvariablen für das Cloud Storage-Verzeichnis, das das Modell enthält ("gs://your-bucket/"), und für den Namen der Eingabedatei und das Framework fest:

    MODEL_DIR="gs://your-bucket/"
    INPUT_FILE="input.json"
    FRAMEWORK="TENSORFLOW"
    
  2. Senden Sie die Vorhersageanfrage:

    gcloud ai-platform local predict --model-dir=$MODEL_DIR \
        --json-instances $INPUT_FILE \
        --framework $FRAMEWORK
    

Modelle und Versionen bereitstellen

AI Platform organisiert Ihre trainierten Modelle nach Modell- und Versionsressourcen. Ein AI Platform-Modell ist ein Container für die Versionen Ihres Modells für maschinelles Lernen.

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

Modellressource erstellen

AI Platform verwendet Modellressourcen zur Organisierung verschiedener Versionen Ihres Modells.

Konsole

  1. Öffnen Sie die Seite der AI Platform-Modelle in der GCP Console.

    Zur Seite "Modelle" in der GCP Console

  2. Erstellen Sie gegebenenfalls das Modell, dem Sie eine neue Version hinzufügen möchten:

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

    2. Geben Sie in das Feld Modellname einen Namen für Ihr Modell ein. Geben Sie optional in das Feld Beschreibung eine Beschreibung für das Modell ein.

    3. Klicken Sie auf Erstellen.

    4. Achten Sie darauf, dass Sie sich wieder auf der Seite Modelle befinden und das neue Modell in der Liste angezeigt wird.

gcloud

Erstellen Sie eine Modellressource für Ihre Modellversionen und geben Sie den gewünschten Namen für das Modell ohne die Klammern ein:

    gcloud ai-platform models create "[YOUR-MODEL-NAME]"

REST API

  1. Formatieren Sie die Anfrage, indem Sie das Modellobjekt in den Anfragetext einfügen. Sie müssen mindestens den Namen für das Modell angeben. Geben Sie den gewünschten Namen für das Modell ohne die Klammern ein:

      {"name": "[YOUR-MODEL-NAME]" }
    
  2. Senden Sie den REST API-Aufruf an den folgenden Pfad und ersetzen Sie [VALUES_IN_BRACKETS] dabei durch die entsprechenden Werte:

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

    Hier sehen Sie ein Beispiel für eine Anfrage mit cURL:

      curl -X POST -H "Content-Type: application/json" \
        -d '{"name": "[YOUR-MODEL-NAME]"}' \
        -H "Authorization: Bearer `gcloud auth print-access-token`" \
        "https://ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models"
    

    Die Ausgabe sollte etwa so aussehen:

      {
        "name": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]",
        "regions": [
          "us-central1"
        ]
      }
    

Weitere Informationen finden Sie in der AI Platform Model API.

Modellversionen erstellen

Jetzt können Sie mit dem trainierten und zuvor in Cloud Storage hochgeladenen Modell eine Modellversion erstellen. Geben Sie dabei die folgenden Parameter an:

  • name: Muss innerhalb des AI Platform-Modells eindeutig sein.
  • deploymentUri: Der Pfad zu Ihrem SavedModel-Verzeichnis in Cloud Storage. Dies ist häufig ein Verzeichnis mit Zeitstempel wie gs://your_bucket_name/job_20190321/export/1553208972357/

    Wenn Sie eine benutzerdefinierte Vorhersageroutine bereitstellen, können Sie auch das Modellverzeichnis mit allen Modellartefakten verwenden.

  • framework: TENSORFLOW. Lassen Sie diesen Parameter weg, wenn Sie eine benutzerdefinierte Vorhersageroutine bereitstellen.

  • runtimeVersion: Eine Laufzeitversion auf Basis der Version von TensorFlow und anderen Abhängigkeiten, die Ihr Modell benötigt. Wenn Sie eine benutzerdefinierte Vorhersageroutine bereitstellen, muss dies mindestens Version 1.4 sein.

  • packageUris (optional): Eine Liste der Pfade zu Ihren benutzerdefinierten Distributionspaketen (.tar.gz-Dateien) in Cloud Storage. Geben Sie diesen Parameter nur an, wenn Sie eine benutzerdefinierte Vorhersageroutine (Beta) bereitstellen.

  • predictionClass (optional): Der Name Ihrer Predictor-Klasse im Format module_name.class_name. Geben Sie diesen Parameter nur an, wenn Sie eine benutzerdefinierte Vorhersageroutine (Beta) bereitstellen.

  • pythonVersion: muss auf "3.5" gesetzt sein, um mit anhand von Python 3 exportierten Modelldateien kompatibel zu sein. Ist nichts festgelegt, wird standardmäßig "2.7" eingestellt.

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

Hier finden Sie die vollständigen Details für jede Laufzeitversion.

Console

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

    Zur Seite "Modelle" in der GCP Console

  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 in das Feld Name den Versionsnamen ein. Geben Sie optional in das Feld Beschreibung eine Beschreibung für die Version ein.

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

    • Wählen Sie die zum Training Ihres Modells verwendete Python-Version aus.
    • Wählen Sie das Framework und die Framework-Version aus.
    • Wählen Sie die ML-Laufzeitversion aus. Weitere Informationen zu AI Platform-Laufzeitversionen finden Sie hier.
  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 die Modelldatei hochgeladen haben. Mit der Schaltfläche Durchsuchen finden Sie den richtigen Pfad.

    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 beispielsweise "gs://your_bucket_name/model-dir/" und nicht "gs://your_bucket_name/model-dir/model.pkl".

  7. Wählen Sie eine Skalierungsoption zum Bereitstellen der Onlinevorhersage 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 Ihre Framework-Auswahl fest.

    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="TENSORFLOW"
    

    Für eine benutzerdefinierte Vorhersageroutine (Beta) lassen Sie die FRAMEWORK-Variable weg und legen zusätzliche Variablen mit dem Pfad zu Ihrem benutzerdefinierten Code-Tarball und dem Namen Ihrer Predictor-Klasse fest:

    MODEL_DIR="gs://your_bucket_name/"
    VERSION_NAME="[YOUR-VERSION-NAME]"
    MODEL_NAME="[YOUR-MODEL-NAME]"
    CUSTOM_CODE_PATH="gs://your_bucket_name/my_custom_code-0.1.tar.gz"
    PREDICTOR_CLASS="[MODULE_NAME].[CLASS_NAME]"
    
  2. Erstellen Sie die Version:

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

    Für eine benutzerdefinierte Vorhersageroutine (Beta) verwenden Sie die gcloud beta-Komponente, lassen das --framework-Flag weg und setzen die --package-uris- und --prediction-class-Flags:

    gcloud components install beta
    
    gcloud beta ai-platform versions create $VERSION_NAME \
      --model $MODEL_NAME \
      --origin $MODEL_DIR \
      --runtime-version=1.13 \
      --python-version=3.5
      --package-uris=$CUSTOM_CODE_PATH
      --prediction-class=$PREDICTOR_CLASS
    

    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: TENSORFLOW
    machineType: mls1-highmem-1
    name: projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME]
    pythonVersion: '3.5'
    runtimeVersion: '1.13'
    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.13"
        "framework": "TENSORFLOW"
        "pythonVersion": "3.5"
      }
    
  2. Senden Sie den REST API-Aufruf an den folgenden Pfad und ersetzen Sie [VALUES_IN_BRACKETS] dabei durch die entsprechenden Werte:

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

    Hier sehen Sie ein Beispiel für eine Anfrage mit cURL:

        curl -X POST -H "Content-Type: application/json" \
          -d '{"name": "[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name/", "runtimeVersion": "1.13", "framework": "TENSORFLOW", "pythonVersion": "3.5"}' \
          -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.13",
            "framework": "TENSORFLOW",
            "machineType": "mls1-highmem-1",
            "pythonVersion": "3.5"
          }
        }
      }
    

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

AI Platform für TensorFlow