Prima di iniziare la valutazione continua

Prima di poter utilizzare la valutazione continua, devi eseguire due operazioni:

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

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

AI Platform Data Labeling Service può eseguire una 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 una versione del modello di AI Platform Prediction. A ogni versione del modello è possibile collegare 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 alle previsioni con Keras.

Requisiti della versione del modello

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

Tipi di modello
Classificazione di 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 immagine con codifica Base64 o come percorso di un file Cloud Storage.
classificazione del testo Un modello che accetta testo come input e restituisce una o più etichette come output.
Classificazione generale Un modello che prende una stringa o un array arbitrario come input e restituisce una o più etichette come output.

Il Data Labeling Service non può assegnare revisori 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 personalmente le etichette basate su dati empirici reali.
Rilevamento di oggetti immagine Un modello che prende un'immagine come input e restituisce uno o più riquadri di delimitazione etichettati come output. Questi riquadri di delimitazione prevedono la posizione 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 produca output di previsione online in un formato specifico supportato dalla valutazione continua.

Tieni presente che le specifiche nella sezione successiva estendono i requisiti corporei JSON delle richieste e delle risposte di previsione online ad AI Platform Prediction. Al momento, la valutazione continua campiona solo le previsioni online, non le previsioni batch. Scopri le differenze tra la previsione online e batch.

I campi evidenziati negli esempi indicano i campi obbligatori per la valutazione continua. Puoi includere campi aggiuntivi nell'input e nell'output di previsione, ma Data Labeling Service li ignora quando assegna il tuo input ai revisori per l'etichettatura basata su dati empirici reali e quando calcola le metriche di valutazione.

Le chiavi dei campi evidenziati (yourDataKey, yourLabelKey, yourScoreKey e yourBoundingBoxKey) possono essere sostituite con qualsiasi stringa di tua scelta, a patto che le stringhe non contengano il carattere /. Devi specificare quali sono queste stringhe quando crei il job di valutazione.

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

Classificazione delle immagini

Formato di input

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

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

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

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

L'esempio seguente mostra il corpo della richiesta di previsione online con un'immagine con codifica Base64:

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

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

Esempio di riferimento di Cloud Storage

L'esempio seguente mostra il corpo della 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 modello esegue la classificazione di una singola etichetta, devono esserci un'etichetta e un punteggio. Se il modello esegue una classificazione con più etichette, ogni etichetta nell'array di etichette deve corrispondere al punteggio nello stesso indice nell'array di punteggio.

I punteggi sono obbligatori. Rappresentano l'affidabilità o la probabilità che il modello 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 di classificazione

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

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

Classificazione del testo

Formato di input

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

{
  "instances": [
    {
      "yourDataKey": <text input (string)>,
      <optional additional key>: <any JSON data type>,
      ...
    },
    ...
  ]
}
Esempio di input 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 modello esegue la classificazione di una singola etichetta, devono esserci un'etichetta e un punteggio. Se il modello esegue una classificazione con più etichette, ogni etichetta nell'array di etichette deve corrispondere al punteggio nello stesso indice nell'array di punteggio.

I punteggi sono obbligatori. Rappresentano l'affidabilità o la probabilità che il modello 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 di classificazione

L'esempio seguente mostra un corpo di risposta alla previsione online per la 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 contenente 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 modello esegue la classificazione di una singola etichetta, devono esserci un'etichetta e un punteggio. Se il modello esegue una classificazione con più etichette, ogni etichetta nell'array di etichette deve corrispondere al punteggio nello stesso indice nell'array di punteggio.

I punteggi sono obbligatori. Rappresentano l'affidabilità o la probabilità che il modello 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 di classificazione

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

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

Rilevamento di oggetti immagine

Formato di input

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

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

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

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

L'esempio seguente mostra il corpo della richiesta di previsione online con un'immagine con codifica Base64:

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

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

Esempio di riferimento di Cloud Storage

L'esempio seguente mostra il corpo della 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 riquadri di delimitazione, l'array di etichette e l'array di punteggi devono avere tutti la stessa lunghezza. Ogni voce nell'array del riquadro di delimitazione deve essere etichettata con un'etichetta nello stesso indice nell'array di etichette e corrispondere a un punteggio nello stesso indice nella matrice del punteggio. Ad esempio, yourBoundingBoxKey[0] è etichettato da yourLabelKey[0] e ha punteggio yourScoreKey[0].

I punteggi sono obbligatori. Rappresentano l'affidabilità o la probabilità che il modello 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.

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 un corpo di risposta della previsione online per il rilevamento di oggetti:

{
  "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 utilizzare la valutazione continua. I passaggi seguenti presuppongono che tu abbia già abilitato l'API AI Platform Training and Prediction nello stesso progetto quando hai eseguito il deployment di una versione del modello in AI Platform Prediction.

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Abilita le API Data Labeling Service and BigQuery.

    Abilita le API

  5. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Abilita le API Data Labeling Service and BigQuery.

    Abilita le API

Passaggi successivi

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