Vor dem Start der kontinuierlichen Evaluierung

Bevor Sie die kontinuierliche Bewertung verwenden können, müssen Sie zwei Dinge tun:

  • Trainieren Sie eine Modellversion und stellen Sie sie in AI Platform Prediction zur Bewertung bereit.
  • Aktivieren Sie die Google Cloud Platform-APIs, die für eine kontinuierliche Bewertung erforderlich sind.

Modellversion in AI Platform Prediction bereitstellen

Der AI Platform Data Labeling Service kann kontinuierliche Bewertungen nur für ML-Modelle vornehmen, die Sie in AI Platform Prediction bereitgestellt haben. Wenn Sie einen Bewertungsjob erstellen, hängen Sie ihn an eine AI Platform Prediction-Modellversion an. An eine Modellversion kann nur ein Bewertungsjob angehängt werden.

Lesen Sie sich zur Einführung in das Trainieren eines ML-Modells und die Bereitstellung als Modellversion in AI Platform Prediction den Startleitfaden für das Training und die Vorhersage mit Keras durch.

Anforderungen für Modellversionen

Die kontinuierliche Bewertung unterstützt verschiedene Typen von ML-Modellen:

Modelltypen
Klassifizierung von Images Ein Modell, das ein Bild als Eingabe verwendet und ein oder mehrere Labels als Ausgabe zurückgibt. Das Eingabebild kann als base64-codiertes Bild oder als Pfad zu einer Cloud Storage-Datei bereitgestellt werden.
Textklassifizierung Ein Modell, das Text als Eingabe verwendet und ein oder mehrere Labels als Ausgabe zurückgibt.
Allgemeine Klassifizierung Ein Modell, das ein beliebiges Array oder einen beliebigen String als Eingabe verwendet und ein oder mehrere Labels als Ausgabe zurückgibt.

Der Data Labeling Service kann keine Prüfer beauftragen, Ground-Truth-Labels für eine allgemeine Klassifizierung zu erstellen. Wenn Sie die kontinuierliche Bewertung für ein allgemeines Klassifizierungsmodell einrichten, müssen Sie die Ground-Truth-Labels selbst hinzufügen.
Objekterkennung in Bildern Ein Modell, das ein Bild als Eingabe verwendet und ein oder mehrere Begrenzungsrahmen mit Labels als Ausgabe zurückgibt. Mit diesen Begrenzungsrahmen werden die Positionen der Objekte im Bild vorhergesagt.

Je nachdem, welche Aufgabe Ihr ML-Modell erfüllt, müssen Sie es trainieren, damit die bereitgestellte Modellversion die Onlinevorhersageeingabe akzeptiert und eine Onlinevorhersage in einem bestimmten Format erstellt, das von der kontinuierlichen Bewertung unterstützt wird.

Die Spezifikationen des nächsten Abschnitts dehnen die Anforderungen für JSON-Text von Onlinevorhersageanfragen und -antworten auf AI Platform Prediction aus. Bei der kontinuierlichen Bewertung werden momentan nur Beispiele aus Onlinevorhersagen und nicht aus Batch-Vorhersagen entnommen. Weitere Informationen zu den Unterschieden zwischen Online- und Batch-Vorhersage

Die markierten Felder in den Beispielen kennzeichnen die Felder, die für die kontinuierliche Auswertung erforderlich sind. Sie können zusätzliche Felder in die Eingabe und Ausgabe Ihrer Vorhersage einfügen. Sie werden allerdings vom Data Labeling Service ignoriert, wenn Prüfer beauftragt werden, Ihrer Eingabe Ground-Truth-Labels hinzuzufügen, und wenn Bewertungsmesswerte berechnet werden.

Die Schlüssel der markierten Felder (yourDataKey, yourLabelKey, yourScoreKey und yourBoundingBoxKey) können durch beliebige, von Ihnen ausgewählte Strings ersetzt werden. Sie dürfen allerdings nicht das Zeichen / enthalten. Sie müssen diese Strings definieren, wenn Sie den Bewertungsjob erstellen.

Im folgenden Abschnitt werden die Modellanforderungen für die einzelnen Modelltypen beschrieben:

Klassifizierung von Images

Eingabeformat

Ihr Modell muss Onlinevorhersageanfragen im folgenden Format erhalten:

{
  "instances": [
    {
      "yourDataKey": <image input (string)>,
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}

<image input (string)> kann Folgendes sein:

  • Ein base64-codiertes Bild
  • Der URI eines in Cloud Storage gespeicherten Bilds Damit der Data Labeling Service berechtigt ist, das Bild zu lesen, sollte sich der Cloud Storage-Bucket im selben GCP-Projekt befinden, in dem Sie den Bewertungsjob erstellen.
Base64-codiertes Beispiel

Das folgende Beispiel zeigt den Text einer Onlinevorhersageanfrage mit einem base64-codierten Bild:

{
  "instances": [
    {
      "image_bytes": {
        "b64": "iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAhUlEQVR4AWOAgZeONnHvHcXiGJDBqyDTXa+dVC888oy51F9+eRdY8NdWwYz/RyT//znEsAjEt277+syt5VMJw989DM/+H2MI/L8tVBQk4d38xcWp7ctLhi97ZCZ0rXV6yLA4b6dH59sjTq3fnji1fp4AsWS5j7PXstRg+/b3gU7N351AQgA8+jkf43sjaQAAAABJRU5ErkJggg=="
      }
    }
  ]
}

Die Eingabedaten sind in diesem Beispiel im Feld image_bytes verschachtelt. Wenn Ihr Modell solche Vorhersageeingaben akzeptiert, müssen Sie die verschachtelte Struktur bei der Erstellung des Bewertungsjobs angeben.

Beispiel für Cloud Storage-Verweis

Das folgende Beispiel zeigt den Text einer Onlinevorhersageanfrage mit einem Verweis auf ein Bild in Cloud Storage:

{
  "instances": [
    {
      "image_path": "gs://cloud-samples-data/datalabeling/image/flower_1.jpeg"
    }
  ]
}

Ausgabeformat

Ihr Modell muss Onlinevorhersagen im folgenden Format zurückgeben:

{
  "predictions": [
    {
      "yourLabelKey": [
        <label (string)>,
        <additional label (string)>,
        ...
      ],
      "yourScoreKey": [
        <score (number)>,
        <additional score (number)>,
        ...
      ],
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}

Das Array der Labels und das Array der Punktzahlen müssen dieselbe Länge haben. Wenn Ihr Modell einzelne Label klassifiziert, müssen ein Label und eine Punktzahl vorhanden sein. Werden mehrere Label klassifiziert, muss jedes Label im Labelarray der Punktzahl desselben Index im Punktzahlarray entsprechen.

Punktzahlen sind erforderlich. Sie stehen für die Wahrscheinlichkeit, die Ihr ML-Modell seinen Vorhersagen zuordnet. In der Regel wählen Modelle ein Label aus, indem sie die Punktzahl, die für eine bestimmte Eingabe berechnet wurde, mit einem Klassifizierungsschwellenwert vergleichen.

Beispiel für eine Klassifizierungsausgabe

Das folgende Beispiel zeigt den Text einer Onlinevorhersageantwort für die Klassifizierung:

{
  "predictions": [
    {
      "sentiments": [
        "happy"
      ],
      "confidence": [
        "0.8"
      ]
    }
  ]
}

Textklassifizierung

Eingabeformat

Ihr Modell muss Onlinevorhersageanfragen im folgenden Format erhalten:

{
  "instances": [
    {
      "yourDataKey": <text input (string)>,
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}
Beispiel für eine Texteingabe

Das folgende Beispiel zeigt den Text einer Onlinevorhersageanfrage mit Textdaten:

{
  "instances": [
    {
      "text": "If music be the food of love, play on;"
    }
  ]
}

Ausgabeformat

Ihr Modell muss Onlinevorhersagen im folgenden Format zurückgeben:

{
  "predictions": [
    {
      "yourLabelKey": [
        <label (string)>,
        <additional label (string)>,
        ...
      ],
      "yourScoreKey": [
        <score (number)>,
        <additional score (number)>,
        ...
      ],
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}

Das Array der Labels und das Array der Punktzahlen müssen dieselbe Länge haben. Wenn Ihr Modell einzelne Label klassifiziert, müssen ein Label und eine Punktzahl vorhanden sein. Werden mehrere Label klassifiziert, muss jedes Label im Labelarray der Punktzahl desselben Index im Punktzahlarray entsprechen.

Punktzahlen sind erforderlich. Sie stehen für die Wahrscheinlichkeit, die Ihr ML-Modell seinen Vorhersagen zuordnet. In der Regel wählen Modelle ein Label aus, indem sie die Punktzahl, die für eine bestimmte Eingabe berechnet wurde, mit einem Klassifizierungsschwellenwert vergleichen.

Beispiel für eine Klassifizierungsausgabe

Das folgende Beispiel zeigt den Text einer Onlinevorhersageantwort für die Klassifizierung:

{
  "predictions": [
    {
      "sentiments": [
        "happy"
      ],
      "confidence": [
        "0.8"
      ]
    }
  ]
}

Allgemeine Klassifizierung

Eingabeformat

Ihr Modell muss Onlinevorhersageanfragen im folgenden Format erhalten:

{
  "instances": [
    {
      "yourDataKey": <input data (string or array)>,
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}
Beispiel für allgemeine Eingabe

Das folgende Beispiel zeigt den Text einer Onlinevorhersageanfrage mit einem Array von Eingabedaten, das Strings und Zahlen enthält:

{
  "instances": [
    {
      "weather": [
        "sunny",
        72,
        0.22
      ]
    }
  ]
}

Ausgabeformat

Ihr Modell muss Onlinevorhersagen im folgenden Format zurückgeben:

{
  "predictions": [
    {
      "yourLabelKey": [
        <label (string)>,
        <additional label (string)>,
        ...
      ],
      "yourScoreKey": [
        <score (number)>,
        <additional score (number)>,
        ...
      ],
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}

Das Array der Labels und das Array der Punktzahlen müssen dieselbe Länge haben. Wenn Ihr Modell einzelne Label klassifiziert, müssen ein Label und eine Punktzahl vorhanden sein. Werden mehrere Label klassifiziert, muss jedes Label im Labelarray der Punktzahl desselben Index im Punktzahlarray entsprechen.

Punktzahlen sind erforderlich. Sie stehen für die Wahrscheinlichkeit, die Ihr ML-Modell seinen Vorhersagen zuordnet. In der Regel wählen Modelle ein Label aus, indem sie die Punktzahl, die für eine bestimmte Eingabe berechnet wurde, mit einem Klassifizierungsschwellenwert vergleichen.

Beispiel für eine Klassifizierungsausgabe

Das folgende Beispiel zeigt den Text einer Onlinevorhersageantwort für die Klassifizierung:

{
  "predictions": [
    {
      "sentiments": [
        "happy"
      ],
      "confidence": [
        "0.8"
      ]
    }
  ]
}

Objekterkennung in Bildern

Eingabeformat

Ihr Modell muss Onlinevorhersageanfragen im folgenden Format erhalten:

{
  "instances": [
    {
      "yourDataKey": <image input (string)>,
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}

<image input (string)> kann Folgendes sein:

  • Ein base64-codiertes Bild
  • Der URI eines in Cloud Storage gespeicherten Bilds Damit der Data Labeling Service berechtigt ist, das Bild zu lesen, sollte sich der Cloud Storage-Bucket im selben GCP-Projekt befinden, in dem Sie den Bewertungsjob erstellen.
Base64-codiertes Beispiel

Das folgende Beispiel zeigt den Text einer Onlinevorhersageanfrage mit einem base64-codierten Bild:

{
  "instances": [
    {
      "image_bytes": {
        "b64": "iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAhUlEQVR4AWOAgZeONnHvHcXiGJDBqyDTXa+dVC888oy51F9+eRdY8NdWwYz/RyT//znEsAjEt277+syt5VMJw989DM/+H2MI/L8tVBQk4d38xcWp7ctLhi97ZCZ0rXV6yLA4b6dH59sjTq3fnji1fp4AsWS5j7PXstRg+/b3gU7N351AQgA8+jkf43sjaQAAAABJRU5ErkJggg=="
      }
    }
  ]
}

Die Eingabedaten sind in diesem Beispiel im Feld image_bytes verschachtelt. Wenn Ihr Modell solche Vorhersageeingaben akzeptiert, müssen Sie die verschachtelte Struktur bei der Erstellung des Bewertungsjobs angeben.

Beispiel für Cloud Storage-Verweis

Das folgende Beispiel zeigt den Text einer Onlinevorhersageanfrage mit einem Verweis auf ein Bild in Cloud Storage:

{
  "instances": [
    {
      "image_path": "gs://cloud-samples-data/datalabeling/image/flower_1.jpeg"
    }
  ]
}

Ausgabeformat

Ihr Modell muss Onlinevorhersagen im folgenden Format zurückgeben:

{
  "predictions": [
    {
      "yourBoundingBoxKey": [
        {
          "top_left": {
            "x": <left coordinate for first box>,
            "y": <top coordinate for first box>
          },
          "bottom_right": {
            "x": <right coordinate for first box>,
            "y": <bottom coordinate for first box>
          },
        },
        ...
      ],
      "yourLabelKey": [
        <label for first box>,
        ...
      ],
      "yourScoreKey": [
        <score for first box,
        ...
      ],
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}

Das Array mit Begrenzungsrahmen, das Array mit Labels und das Array mit Punktzahlen müssen alle gleich lang sein. Jeder Eintrag im Array mit Begrenzungsrahmen muss mit einem Label desselben Index im Labelarray gekennzeichnet sein und einer Punktzahl desselben Index im Punktzahlarray entsprechen. Beispiel: yourBoundingBoxKey[0] ist mit yourLabelKey[0] gekennzeichnet und hat die Punktzahl yourScoreKey[0].

Punktzahlen sind erforderlich. Sie stehen für die Wahrscheinlichkeit, die Ihr ML-Modell seinen Vorhersagen zuordnet. In der Regel wählen Modelle ein Label aus, indem sie die Punktzahl, die für eine bestimmte Eingabe berechnet wurde, mit einem Klassifizierungsschwellenwert vergleichen.

Alternatives Ausgabeformat

Wenn Sie den String detection_boxes für yourBoundingBoxKey, den String detection_classes für yourLabelKey und den String detection_scores für yourScoreKey verwenden, können Sie anstelle des Standardformats das folgende Format für Ihre Vorhersageausgabe verwenden:

{
  "predictions": [
    {
      "detection_boxes": [
        {
          "x_min": <left coordinate for first box>,
          "y_min": <top coordinate for first box>,
          "x_max": <right coordinate for first box>,
          "y_max": <bottom coordinate for first box>
        },
        ...
      ],
      "detection_classes": [
        <label for first box>,
        ...
      ],
      "detection_scores": [
        <score for first box,
        ...
      ],
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}
Beispiel für die Ausgabe der Objekterkennung

Das folgende Beispiel zeigt den Text einer Onlinevorhersageantwort für die Objekterkennung:

{
  "predictions": [
    {
      "bird_locations": [
        {
          "top_left": {
            "x": 53,
            "y": 22
          },
          "bottom_right": {
            "x": 98,
            "y": 150
          }
        }
      ],
      "species": [
        "rufous hummingbird"
      ],
      "probability": [
        0.77
      ]
    }
  ]
}

APIs aktivieren

Sie müssen mehrere GCP-APIs aktivieren, bevor Sie die kontinuierliche Bewertung verwenden können. Bei den folgenden Schritten wird davon ausgegangen, dass Sie die AI Platform Training and Prediction API bereits im selben Projekt aktiviert haben, als Sie in AI Platform Prediction eine Modellversion bereitgestellt haben.

  1. Melden Sie sich in 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 GCP Console auf der Projektauswahlseite ein GCP-Projekt aus oder erstellen Sie ein Projekt.

    Zur Projektauswahl

  3. Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Platform-Projekt aktiviert ist. So bestätigen Sie die Abrechnung für Ihr Projekt.

  4. Aktivieren Sie die Data Labeling Service and BigQueryerforderlichen APIs.

    APIs aktivieren

Weitere Informationen

Lesen Sie den Leitfaden zum Erstellen eines Bewertungsjobs, damit Sie die kontinuierliche Bewertung verwenden können.

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

Feedback geben zu...