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 su AI Platform Prediction per la valutazione
  • Abilita le API Google Cloud necessarie per la valutazione continua

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

AI Platform Data Labeling Service può eseguire una valutazione continua solo sul machine learning di cui hai eseguito il deployment 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 collegato un solo job di valutazione.

Per un'introduzione all'addestramento di un modello di machine learning e al suo deployment di modello in AI Platform Prediction, utilizza il guida per l'addestramento e la 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 come output.
Classificazione generale Un modello che prende come input un array o una stringa arbitraria e restituisce una o più etichette come output.

Il servizio di etichettatura dati non può assegnare revisori per fornire etichette basate su dati empirici reali per la classificazione generale. Se configuri valutazione continua per un modello di classificazione generale, tagga te stesso con 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 la posizione oggetti presenti 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; non previsioni batch di esempio. Scopri le differenze tra online e batch per la previsione.

I campi evidenziati negli esempi indicano i campi obbligatori per: 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 cosa queste stringhe sono il tuo job di valutazione.

La seguente sezione 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>,
      ...
    },
    ...
  ]
}

<image input (string)> può essere:

  • 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

L'esempio seguente mostra il corpo di una 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 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 le tue esegue la classificazione con una singola etichetta, devono esistere punteggio. 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. Di solito, i modelli selezionano un'etichetta per Confrontando il punteggio calcolato per un determinato input con una classificazione di sicurezza.

Esempio di output di 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 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 le tue esegue la classificazione con una singola etichetta, devono esistere punteggio. 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. Di solito, i modelli selezionano un'etichetta per Confrontando il punteggio calcolato per un determinato input con una classificazione di sicurezza.

Esempio di output di 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 generico

L'esempio seguente mostra il corpo di una richiesta di previsione online con un array di dati di input che contengono 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 le tue esegue la classificazione con una singola etichetta, devono esistere punteggio. 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. Di solito, i modelli selezionano un'etichetta per Confrontando il punteggio calcolato per un determinato input con una classificazione di sicurezza.

Esempio di output di classificazione

L'esempio seguente mostra un corpo della risposta di previsione online per 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>,
      ...
    },
    ...
  ]
}

<image input (string)> può essere:

  • 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

L'esempio seguente mostra il corpo di una 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 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 dei riquadri di delimitazione, delle etichette e dei punteggi devono tutte hanno 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, il valore la stringa detection_classes per yourLabelKey e la stringa detection_scores per yourScoreKey, puoi utilizzare quanto segue 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 Prediction nello stesso progetto in cui hai eseguito il deployment di un modello alla versione di 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  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. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  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.