Prima di iniziare la valutazione continua

Prima di poter utilizzare la valutazione continua, devi fare due cose:

  • Addestra ed esegui il deployment di una versione del modello in AI Platform Prediction per la valutazione
  • Abilita le API Google Cloud necessarie per la valutazione continua

Esegui il deployment di una versione del modello in AI Platform Prediction

AI Platform Data Labeling Service può eseguire la valutazione continua solo sui modelli di machine learning di cui hai eseguito il deployment in AI Platform Prediction. Quando crei un job di valutazione, lo colleghi a un job di AI Platform Prediction versione del modello. A ogni versione del modello può essere associato un solo job di valutazione.

Per un'introduzione all'addestramento di un modello di machine learning e al suo deployment come versione del modello in AI Platform Prediction, consulta la guida introduttiva all'addestramento e alla previsione con Keras.

Requisiti della versione del modello

La valutazione continua supporta diversi tipi di modello di machine learning:

Tipi di modello
Classificazione delle immagini Un modello che prende un'immagine come input e restituisce una o più etichette come output. L'immagine di input può essere fornita come con codifica Base64 immagine o il percorso di un file Cloud Storage.
Classificazione del testo Un modello che prende un testo come input e restituisce una o più etichette come output.
Classificazione generale Un modello che prende come input un array o una stringa arbitraria e restituisce una o più etichette come output.

Data Labeling Service non può assegnare revisori umani per fornire etichette basate su dati empirici reali per la classificazione generale. Se configuri la valutazione continua per un modello di classificazione generale, devi taggare autonomamente le etichette basate su dati empirici reali.
Rilevamento di oggetti immagine Un modello che prende un'immagine come input e restituisce una o più etichette riquadri di delimitazione come output. Questi riquadri di delimitazione prevedono le posizioni degli oggetti nell'immagine.

A seconda dell'attività eseguita dal modello di machine learning, devi addestrarlo in modo che la versione del modello di cui è stato eseguito il deployment accetti l'input di previsione online e generi l'output delle previsioni online in un formato specifico che Google Cloud.

Tieni presente che le specifiche nella sezione successiva estendono il corpo JSON requisiti delle richieste di previsione online e personalizzate al servizio AI Platform Prediction. Al momento, la valutazione continua campiona solo le previsioni online, ma non quelle batch. Scopri le differenze tra online e batch per la previsione.

I campi evidenziati negli esempi indicano i campi richiesti per la valutazione continua. Nella previsione puoi includere campi aggiuntivi di input e output, ma Data Labeling Service li ignora quando assegna a revisori umani per l'etichettatura basata su dati di fatto e per i calcoli e le metriche di valutazione.

Le chiavi dei campi evidenziati (yourDataKey, yourLabelKey, yourScoreKey e yourBoundingBoxKey) può essere sostituito con qualsiasi stringa di tua scelta, purché le stringhe non contengano il carattere /. Devi specificare che cosa sono queste stringhe quando crei il job di valutazione.

La sezione seguente descrive i requisiti dei modelli per ciascun tipo di modello:

Classificazione delle immagini

Formato di input

Il modello deve ricevere le richieste di previsione online nel seguente formato:

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

<image input (string)> può essere uno dei seguenti:

  • Un modello con codifica Base64 dell'immagine.
  • L'URI di un'immagine archiviata in Cloud Storage. Per garantire Data Labeling Service dispone dell'autorizzazione per leggere l'immagine, Il bucket Cloud Storage deve trovarsi nello stesso account Google Cloud progetto in cui stai creando il job di valutazione.
Esempio di codifica Base64

Il seguente esempio mostra il corpo di una richiesta di previsione online con un'immagine codificata in base64:

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

Tieni presente che in questo esempio i dati di input sono nidificati nel campo image_bytes. Se il modello accetta input di previsione come questo, assicurati di specificare struttura nidificata quando crei il job di valutazione.

Esempio di riferimento di Cloud Storage

L'esempio seguente mostra il corpo di una richiesta di previsione online con un riferimento a un'immagine in Cloud Storage:

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

Formato di output

Il modello deve restituire le previsioni online nel seguente formato:

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

L'array di etichette e l'array di punteggi devono avere la stessa lunghezza. Se il tuo modello esegue la classificazione con etichetta singola, devono essere presenti un'etichetta e un voto. Se il modello esegue la classificazione con più etichette, ogni etichetta nel l'array di etichette deve corrispondere al punteggio nello stesso indice nella matrice dei punteggi.

I punteggi sono obbligatori. Rappresentano la confidenza o la probabilità che la macchina di machine learning assegna alle sue previsioni. In genere, i modelli selezionano un'etichetta confrontando il punteggio calcolato per un determinato input con una soglia di classificazione.

Esempio di output della classificazione

L'esempio seguente mostra un corpo della risposta di previsione online per classificazione:

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

Classificazione del testo

Formato di input

Il modello deve ricevere le richieste di previsione online nel seguente formato:

{
  "instances": [
    {
      "yourDataKey": <text input (string)>,
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}
Esempio di inserimento di testo

L'esempio seguente mostra il corpo di una richiesta di previsione online con dati di testo:

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

Formato di output

Il modello deve restituire le previsioni online nel seguente formato:

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

L'array di etichette e l'array di punteggi devono avere la stessa lunghezza. Se il tuo modello esegue la classificazione con etichetta singola, devono essere presenti un'etichetta e un voto. Se il modello esegue la classificazione con più etichette, ogni etichetta nel l'array di etichette deve corrispondere al punteggio nello stesso indice nella matrice dei punteggi.

I punteggi sono obbligatori. Rappresentano l'affidabilità o la probabilità assegnata dal tuo modello di machine learning alle sue previsioni. In genere, i modelli selezionano un'etichetta confrontando il punteggio calcolato per un determinato input con una soglia di classificazione.

Esempio di output della classificazione

L'esempio seguente mostra un corpo della risposta di previsione online per classificazione:

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

Classificazione generale

Formato di input

Il modello deve ricevere richieste di previsione online nel seguente formato:

{
  "instances": [
    {
      "yourDataKey": <input data (string or array)>,
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}
Esempio di input generale

L'esempio seguente mostra il corpo di una richiesta di previsione online con un array di dati di input contenenti stringhe e numeri:

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

Formato di output

Il modello deve restituire le previsioni online nel seguente formato:

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

L'array di etichette e l'array di punteggi devono avere la stessa lunghezza. Se il tuo modello esegue la classificazione con etichetta singola, devono essere presenti un'etichetta e un voto. Se il modello esegue la classificazione con più etichette, ogni etichetta nel l'array di etichette deve corrispondere al punteggio nello stesso indice nella matrice dei punteggi.

I punteggi sono obbligatori. Rappresentano l'affidabilità o la probabilità assegnata dal tuo modello di machine learning alle sue previsioni. Di solito, i modelli selezionano un'etichetta per Confrontando il punteggio calcolato per un determinato input con una classificazione di sicurezza.

Esempio di output della classificazione

L'esempio seguente mostra il corpo di una risposta di previsione online per la classificazione:

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

Rilevamento di oggetti immagine

Formato di input

Il modello deve ricevere le richieste di previsione online nel seguente formato:

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

<image input (string)> può essere:

  • Un'immagine codificata in base64.
  • L'URI di un'immagine archiviata in Cloud Storage. Per assicurarti che il servizio Data Labeling abbia l'autorizzazione a leggere l'immagine, il bucket Cloud Storage deve trovarsi nello stesso progetto Google Cloud in cui stai creando il job di valutazione.
Esempio di codifica Base64

Il seguente esempio mostra il corpo di una richiesta di previsione online con un'immagine codificata in base64:

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

Tieni presente che in questo esempio i dati di input sono nidificati nel campo image_bytes. Se il modello accetta input di previsione come questo, assicurati di specificare struttura nidificata quando crei il job di valutazione.

Esempio di riferimento di Cloud Storage

L'esempio seguente mostra il corpo di una richiesta di previsione online con un riferimento a un'immagine in Cloud Storage:

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

Formato di output

Il modello deve restituire le previsioni online nel seguente formato:

{
  "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>,
      ...
    },
    ...
  ]
}

L'array di caselle delimitanti, l'array di etichette e l'array di punteggi devono avere tutti la stessa lunghezza. Ogni voce nella matrice del riquadro di delimitazione deve essere etichettata da un'etichetta con lo stesso indice nella matrice di etichette e corrispondono a un punteggio in lo stesso indice nella matrice dei punteggi. Ad esempio: yourBoundingBoxKey[0] è etichettato da yourLabelKey[0] e ha punteggio yourScoreKey[0].

I punteggi sono obbligatori. Rappresentano la confidenza o la probabilità che la macchina di machine learning assegna alle sue previsioni. Di solito, i modelli selezionano un'etichetta per Confrontando il punteggio calcolato per un determinato input con una classificazione di sicurezza.

Formato di output alternativo

Se utilizzi la stringa detection_boxes per yourBoundingBoxKey, la stringa detection_classes per yourLabelKey e la stringa detection_scores per yourScoreKey, puoi utilizzare il seguente formato per l'output della previsione anziché il formato standard:

{
  "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>,
      ...
    },
    ...
  ]
}
Esempio di output del rilevamento di oggetti

L'esempio seguente mostra il corpo di una risposta di previsione online per l'oggetto dell'audiodescrizione:

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

Abilita API

Devi abilitare diverse API Google Cloud prima di poter usare la valutazione delle prestazioni. I passaggi seguenti presuppongono che tu abbia già attivato l'API AI Platform Training e AI Platform Prediction nello stesso progetto in cui hai eseguito il deployment di un modello alla versione di AI Platform Prediction.

  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

Passaggi successivi

Leggi la guida alla creazione di un job di valutazione per iniziare a utilizzare la valutazione continua.