Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Modell bereitstellen

Erste Modellbereitstellung

Nachdem Sie ein Modell erstellt (trainiert) haben, müssen Sie das Modell bereitstellen, bevor Sie Online- oder synchrone Aufrufe an das Modell durchführen können.

Sie können die Modellbereitstellung jetzt auch aktualisieren, falls Sie zusätzliche Onlinevorhersagekapazität benötigen.

Web-UI

  1. Wechseln Sie zu dem Tab Test & Use (Test und Nutzung) unterhalb der Titelleiste.
  2. Klicken Sie auf die Schaltfläche Deploy Model (Modell bereitstellen). Dadurch wird ein neues Fenster mit den Bereitstellungsoptionen geöffnet. Grafik: Seite zum Testen und zur Nutzung des Modells
  3. Geben Sie im neu geöffneten Fenster für die Bereitstellungsoption die Anzahl der Knoten an, mit denen die Bereitstellung erfolgen soll. Jeder Knoten kann eine bestimmte Anzahl von Vorhersageabfragen pro Sekunde (queries per second, QPS) unterstützen.

    Ein Knoten ist für die meisten Szenarien mit experimentellem Traffic in der Regel ausreichend.

    Grafik: Pop-up-Menü "Modell bereitstellen"
  4. Wählen Sie Deploy (Bereitstellen) aus, um mit dem Bereitstellen des Modells zu beginnen.

    Modell wird bereitgestellt
  5. Sie erhalten eine E-Mail, sobald die Bereitstellung des Modells abgeschlossen ist.

REST & CMD LINE

Bevor Sie die unten aufgeführten Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • project-id: die ID Ihres GCP-Projekts.
  • model-id: die ID Ihres Modells aus der Antwort beim Erstellen des Modells. Sie ist das letzte Element des Modellnamens. Beispiel:
    • Modellname: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • model id: IOD4412217016962778756

Hinweise zu bestimmten Feldern:

  • nodeCount: die Anzahl der Knoten, auf denen das Modell bereitgestellt werden soll. Der Wert muss zwischen 1 und 100 (beide einschließlich) liegen. Ein Knoten ist eine Abstraktion einer Maschinenressource, die so viele Online-Vorhersageabfragen pro Sekunde (Queries per second, QPS) verarbeiten kann, wie im Modell in qps_per_node angegeben.

HTTP-Methode und URL:

POST https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id:deploy

JSON-Text der Anfrage:

{
  "imageClassificationModelDeploymentMetadata": {
    "nodeCount": 2
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id:deploy

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id:deploy" | Select-Object -Expand Content

Die Ausgabe sieht in etwa so aus: Sie können den Status der Aufgabe anhand der Vorgangs-ID abrufen. Ein Beispiel finden Sie unter Mit lang andauernden Vorgängen arbeiten.

{
  "name": "projects/project-id/locations/us-central1/operations/operation-id",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-08-07T22:00:20.692109Z",
    "updateTime": "2019-08-07T22:00:20.692109Z",
    "deployModelDetails": {}
  }
}

Sie können den Status eines Vorgangs mit der folgenden HTTP-Methode und URL abrufen:

GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/operations/operation-id

Der Status eines abgeschlossenen Vorgangs sieht ungefähr so aus:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-id",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-06-21T16:47:21.704674Z",
    "updateTime": "2019-06-21T17:01:00.802505Z",
    "deployModelDetails": {}
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

Go

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.

import (
	"context"
	"fmt"
	"io"

	automl "cloud.google.com/go/automl/apiv1"
	automlpb "google.golang.org/genproto/googleapis/cloud/automl/v1"
)

// deployModel deploys a model.
func deployModel(w io.Writer, projectID string, location string, modelID string) error {
	// projectID := "my-project-id"
	// location := "us-central1"
	// modelID := "TRL123456789..."

	ctx := context.Background()
	client, err := automl.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %v", err)
	}
	defer client.Close()

	req := &automlpb.DeployModelRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/models/%s", projectID, location, modelID),
	}

	op, err := client.DeployModel(ctx, req)
	if err != nil {
		return fmt.Errorf("DeployModel: %v", err)
	}
	fmt.Fprintf(w, "Processing operation name: %q\n", op.Name())

	if err := op.Wait(ctx); err != nil {
		return fmt.Errorf("Wait: %v", err)
	}

	fmt.Fprintf(w, "Model deployed.\n")

	return nil
}

Java

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.DeployModelRequest;
import com.google.cloud.automl.v1.ModelName;
import com.google.cloud.automl.v1.OperationMetadata;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

class DeployModel {

  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    deployModel(projectId, modelId);
  }

  // Deploy a model for prediction
  static void deployModel(String projectId, String modelId)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // Get the full path of the model.
      ModelName modelFullId = ModelName.of(projectId, "us-central1", modelId);
      DeployModelRequest request =
          DeployModelRequest.newBuilder().setName(modelFullId.toString()).build();
      OperationFuture<Empty, OperationMetadata> future = client.deployModelAsync(request);

      future.get();
      System.out.println("Model deployment finished");
    }
  }
}

Node.js

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const modelId = 'YOUR_MODEL_ID';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function deployModel() {
  // Construct request
  const request = {
    name: client.modelPath(projectId, location, modelId),
  };

  const [operation] = await client.deployModel(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();
  console.log(`Model deployment finished. ${response}`);
}

deployModel();

Python

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# model_id = "YOUR_MODEL_ID"

client = automl.AutoMlClient()
# Get the full path of the model.
model_full_id = client.model_path(project_id, "us-central1", model_id)
response = client.deploy_model(name=model_full_id)

print(f"Model deployment finished. {response.result()}")

Weitere Sprachen

C# : Bitte folgen Sie C#-Einrichtungsanleitung auf der Seite "Clientbibliotheken" ansehen. AutoML Vision-Referenzdokumentation für .NET.

PHP : Bitte folgen Sie PHP-Einrichtungsanleitung auf der Seite "Clientbibliotheken" ansehen.AutoML Vision-Referenzdokumentation für PHP

Ruby : Bitte folgen Sie Anleitung zum Einrichten von Ruby auf der Seite "Clientbibliotheken" ansehen.AutoML Vision-Referenzdokumentation für Ruby

Knotenzahl eines Modells aktualisieren

Sobald ein bereitgestelltes Modell trainiert ist, können Sie die Anzahl der Knoten aktualisieren, auf denen das Modell bereitgestellt wird. So können Sie auf die spezifische Menge an Traffic reagieren. Das ist zum Beispiel nützlich, wenn Sie eine höhere Anzahl von Abfragen pro Sekunde als erwartet erhalten.

Sie können die Anzahl der Knoten ändern, ohne erst das Modell zurücksetzen zu müssen. Wenn Sie die Bereitstellung aktualisieren, ändert sich die Knotenanzahl, ohne dass der bereitgestellte Vorhersage-Traffic unterbrochen wird.

Web-UI

  1. Öffnen Sie Vision Dashboard und wählen Sie in der linken Navigationsleiste den Tab Modelle mit dem Glühbirnensymbol aus, um die verfügbaren Modelle aufzurufen.

    Wenn Sie die Modelle für ein anderes Projekt ansehen möchten, wählen Sie das Projekt in der Drop-down-Liste rechts oben in der Titelleiste aus.

  2. Wählen Sie das trainierte Modell aus, das bereitgestellt wurde.
  3. Wählen Sie den Tab Test und Nutzung direkt unter der Titelleiste aus.
  4. Oben auf der Seite wird in einem Feld eine Nachricht mit dem Text "Ihr Modell wurde bereitgestellt und ist für Online-Vorhersageanfragen verfügbar" angezeigt. Wählen Sie neben dem Text die Option Deployment aktualisieren aus.

    Abbildung der Schaltfläche &quot;Update deployment&quot; (Bereitstellung aktualisieren)
  5. Wählen Sie im angezeigten Fenster Deployment aktualisieren aus der Liste die neue Knotennummer aus, auf der das Modell bereitgestellt werden soll. Mit den Knotennummern wird die Anzahl der geschätzten Vorhersageabfragen pro Sekunde angegeben. Abbildung des Pop-up-Fensters &quot;Deployment aktualisieren&quot;
  6. Wenn Sie eine neue Knotennummer aus der Liste ausgewählt haben, wählen Sie Deployment aktualisieren aus, um die Knotennummer zu aktualisieren, auf der das Modell bereitgestellt wird.

    Fenster &quot;Deployment aktualisieren&quot; nach Auswahl einer neuen Knotennummer
  7. Es wird wieder das Fenster Test und Nutzung aufgerufen, in dem jetzt das Textfeld "Modell wird bereitgestellt" angezeigt wird. Modell wird bereitgestellt
  8. Wenn Ihr Modell erfolgreich auf der neuen Knotennummer bereitgestellt wurde, erhalten Sie eine E-Mail an die mit Ihrem Projekt verknüpfte Adresse.

REST UND BEFEHLSZEILE

Zur Änderung der Knotennummer des bereitgestellten Modells wird die gleiche Methode verwendet, die Sie für das anfängliche Deployment eines Modells verwenden.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: die ID Ihres GCP-Projekts.
  • model-id: die ID Ihres Modells aus der Antwort beim Erstellen des Modells. Sie ist das letzte Element des Modellnamens. Beispiel:
    • Modellname: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • model id: IOD4412217016962778756

Hinweise zu bestimmten Feldern:

  • nodeCount: die Anzahl der Knoten, auf denen das Modell bereitgestellt werden soll. Der Wert muss zwischen 1 und 100 (beide einschließlich) liegen. Ein Knoten ist eine Abstraktion einer Maschinenressource, die so viele Online-Vorhersageabfragen pro Sekunde (Queries per second, QPS) verarbeiten kann, wie im Modell in qps_per_node angegeben.

HTTP-Methode und URL:

POST https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id:deploy

JSON-Text der Anfrage:

{
  "imageClassificationModelDeploymentMetadata": {
    "nodeCount": 2
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id:deploy

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id:deploy" | Select-Object -Expand Content

Die Ausgabe sieht in etwa so aus: Sie können den Status der Aufgabe anhand der Vorgangs-ID abrufen. Ein Beispiel finden Sie unter Mit lang andauernden Vorgängen arbeiten.

{
  "name": "projects/project-id/locations/us-central1/operations/operation-id",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-08-07T22:00:20.692109Z",
    "updateTime": "2019-08-07T22:00:20.692109Z",
    "deployModelDetails": {}
  }
}

Sie können den Status eines Vorgangs mit der folgenden HTTP-Methode und URL abrufen:

GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/operations/operation-id

Der Status eines abgeschlossenen Vorgangs sieht ungefähr so aus:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-id",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-06-21T16:47:21.704674Z",
    "updateTime": "2019-06-21T17:01:00.802505Z",
    "deployModelDetails": {}
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

Go

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.

import (
	"context"
	"fmt"
	"io"

	automl "cloud.google.com/go/automl/apiv1"
	automlpb "google.golang.org/genproto/googleapis/cloud/automl/v1"
)

// visionClassificationDeployModelWithNodeCount deploys a model with node count.
func visionClassificationDeployModelWithNodeCount(w io.Writer, projectID string, location string, modelID string) error {
	// projectID := "my-project-id"
	// location := "us-central1"
	// modelID := "ICN123456789..."

	ctx := context.Background()
	client, err := automl.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %v", err)
	}
	defer client.Close()

	req := &automlpb.DeployModelRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/models/%s", projectID, location, modelID),
		ModelDeploymentMetadata: &automlpb.DeployModelRequest_ImageClassificationModelDeploymentMetadata{
			ImageClassificationModelDeploymentMetadata: &automlpb.ImageClassificationModelDeploymentMetadata{
				NodeCount: 2,
			},
		},
	}

	op, err := client.DeployModel(ctx, req)
	if err != nil {
		return fmt.Errorf("DeployModel: %v", err)
	}
	fmt.Fprintf(w, "Processing operation name: %q\n", op.Name())

	if err := op.Wait(ctx); err != nil {
		return fmt.Errorf("Wait: %v", err)
	}

	fmt.Fprintf(w, "Model deployed.\n")

	return nil
}

Java

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.DeployModelRequest;
import com.google.cloud.automl.v1.ImageClassificationModelDeploymentMetadata;
import com.google.cloud.automl.v1.ModelName;
import com.google.cloud.automl.v1.OperationMetadata;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

class VisionClassificationDeployModelNodeCount {

  static void visionClassificationDeployModelNodeCount()
      throws InterruptedException, ExecutionException, IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    visionClassificationDeployModelNodeCount(projectId, modelId);
  }

  // Deploy a model for prediction with a specified node count (can be used to redeploy a model)
  static void visionClassificationDeployModelNodeCount(String projectId, String modelId)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // Get the full path of the model.
      ModelName modelFullId = ModelName.of(projectId, "us-central1", modelId);
      ImageClassificationModelDeploymentMetadata metadata =
          ImageClassificationModelDeploymentMetadata.newBuilder().setNodeCount(2).build();
      DeployModelRequest request =
          DeployModelRequest.newBuilder()
              .setName(modelFullId.toString())
              .setImageClassificationModelDeploymentMetadata(metadata)
              .build();
      OperationFuture<Empty, OperationMetadata> future = client.deployModelAsync(request);

      future.get();
      System.out.println("Model deployment finished");
    }
  }
}

Node.js

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const modelId = 'YOUR_MODEL_ID';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function deployModelWithNodeCount() {
  // Construct request
  const request = {
    name: client.modelPath(projectId, location, modelId),
    imageClassificationModelDeploymentMetadata: {
      nodeCount: 2,
    },
  };

  const [operation] = await client.deployModel(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();
  console.log(`Model deployment finished. ${response}`);
}

deployModelWithNodeCount();

Python

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# model_id = "YOUR_MODEL_ID"

client = automl.AutoMlClient()
# Get the full path of the model.
model_full_id = client.model_path(project_id, "us-central1", model_id)

# node count determines the number of nodes to deploy the model on.
# https://cloud.google.com/automl/docs/reference/rpc/google.cloud.automl.v1#imageclassificationmodeldeploymentmetadata
metadata = automl.ImageClassificationModelDeploymentMetadata(node_count=2)

request = automl.DeployModelRequest(
    name=model_full_id, image_classification_model_deployment_metadata=metadata
)
response = client.deploy_model(request=request)

print("Model deployment finished. {}".format(response.result()))

Weitere Sprachen

C# : Bitte folgen Sie C#-Einrichtungsanleitung auf der Seite "Clientbibliotheken" ansehen. AutoML Vision-Referenzdokumentation für .NET.

PHP : Bitte folgen Sie PHP-Einrichtungsanleitung auf der Seite "Clientbibliotheken" ansehen.AutoML Vision-Referenzdokumentation für PHP

Ruby : Bitte folgen Sie Anleitung zum Einrichten von Ruby auf der Seite "Clientbibliotheken" ansehen.AutoML Vision-Referenzdokumentation für Ruby