Vor dem Start der kontinuierlichen Evaluierung

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

  • Trainieren Sie eine Modellversion und stellen Sie sie in AI Platform Prediction zur Evaluierung bereit.
  • Aktivieren Sie die Google Cloud APIs, die für die kontinuierliche Evaluierung 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 Evaluierung unterstützt verschiedene Typen von ML-Modellen:

Modelltypen
Klassifizierung von Bildern 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 Strings ersetzt werden, solange die Strings nicht das Zeichen / enthalten. Sie müssen diese Strings definieren, wenn Sie den Bewertungsjob erstellen.

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

Bildklassifizierung

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 Der Cloud Storage-Bucket sollte sich im selben Google Cloud-Projekt befinden, in dem Sie den Bewertungsjob erstellen, um dafür zu sorgen, dass Data Labeling Service die Berechtigung zum Lesen des Bilds hat.
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": [
    {
      "YOUR_LABEL_KEY": [
        <label (string)>,
        <additional label (string)>,
        ...
      ],
      "YOUR_SCORE_KEY": [
        <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": [
    {
      "YOUR_LABEL_KEY": [
        <label (string)>,
        <additional label (string)>,
        ...
      ],
      "YOUR_SCORE_KEY": [
        <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": [
    {
      "YOUR_LABEL_KEY": [
        <label (string)>,
        <additional label (string)>,
        ...
      ],
      "YOUR_SCORE_KEY": [
        <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 Der Cloud Storage-Bucket sollte sich im selben Google Cloud-Projekt befinden, in dem Sie den Bewertungsjob erstellen, um dafür zu sorgen, dass Data Labeling Service die Berechtigung zum Lesen des Bilds hat.
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>
          },
        },
        ...
      ],
      "YOUR_LABEL_KEY": [
        <label for first box>,
        ...
      ],
      "YOUR_SCORE_KEY": [
        <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 die 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 Google Cloud APIs aktivieren, bevor Sie eine kontinuierliche Evaluierung verwenden können. Bei den folgenden Schritten wird davon ausgegangen, dass Sie die AI Platform Training und Prediction API bereits im selben Projekt aktiviert haben, als Sie in AI Platform Prediction eine Modellversion bereitgestellt haben.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Data Labeling Service and BigQuery APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Data Labeling Service and BigQuery APIs.

    Enable the APIs

Nächste Schritte

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