Fornisci schemi a Vertex AI Model Monitoring

Per avviare un job di monitoraggio, Model Monitoring deve conoscere lo schema del set di dati tabulare per analizzare correttamente il payload di input.

  • Per i modelli AutoML, Model Monitoring analizza automaticamente lo schema perché Vertex AI ha già accesso ai tuoi dati di addestramento.

  • Per i modelli con addestramento personalizzato:

    • Model Monitoring può analizzare automaticamente gli schemi per modelli che usano un formato di input di coppie chiave-valore standard.

    • Per i modelli con addestramento personalizzato che non utilizzano un formato di input di coppie chiave-valore, potresti dover fornire uno schema quando crei il job di monitoraggio.

    La generazione di schemi varia a seconda che tu stia abilitando il monitoraggio dei modelli per un endpoint di previsione online o per previsioni batch.

Analisi di schemi per gli endpoint di previsione online

Per gli endpoint di previsione online, puoi consentire al monitoraggio dei modelli di analizzare automaticamente lo schema o di caricarlo quando crei un job di monitoraggio.

Analisi automatica dello schema

Dopo aver abilitato il rilevamento del disallineamento o delle deviazioni per un endpoint online, in genere il monitoraggio dei modelli è in grado di analizzare automaticamente lo schema di input. Per l'analisi automatica dello schema, Model Monitoring analizza le prime 1000 richieste di input per determinare lo schema.

L'analisi automatica dello schema funziona meglio quando le richieste di input sono formattate come coppie chiave-valore, dove "key" è il nome della funzionalità e "value" è il valore della funzionalità. Ad esempio:

"key":"value"
{"TenYearCHD":"0", "glucose":"5.4", "heartRate":"1", "age":"30",
"prevalentStroke":"0", "gender":"f", "ethnicity":"latin american"}

Se gli input non sono in formato "key":"value", il monitoraggio dei modelli tenta di identificare il tipo di dati di ogni funzionalità e assegna automaticamente un nome predefinito per ciascuna funzionalità.

Schemi di istanze personalizzate

Puoi fornire il tuo schema di input quando crei un job di monitoraggio dei modelli per garantire che il monitoraggio dei modelli analizzi correttamente gli input del modello.

Questo schema è chiamato schema dell'istanza di analisi. Il file di schema specifica il formato del payload di input, i nomi di ogni caratteristica e il tipo di ogni caratteristica.

Lo schema deve essere scritto come file YAML nel formato API aperta. L'esempio seguente riguarda una richiesta di previsione con il formato object:

type: object
properties:
  age:
    type: string
  BMI:
    type: number
  TenYearCHD:
    type: string
  cigsPerDay:
    type: array
    items:
      type: string
  BPMeds:
    type: string
required:
- age
- BMI
- TenYearCHD
- cigsPerDay
- BPMeds
  • type indica se la richiesta di previsione è in uno dei seguenti formati:

    • object: coppie chiave-valore
    • array: tipo array
    • string: stringa-csv
  • properties indica il tipo di ogni singola funzionalità.

  • Se la richiesta è in formato array o stringa csv, specifica l'ordine in cui le funzionalità sono elencate in ogni richiesta sotto il campo required.

Se la richiesta di previsione è in formato array o stringa csv, rappresenta eventuali caratteristiche mancanti come valori null. Prendi in considerazione, ad esempio, una richiesta di previsione con cinque caratteristiche:

[feature_a, feature_b, feature_c, feature_d, feature_e]

Se feature_c consente valori mancanti, una richiesta di esempio mancante feature_c sarebbe: {[1, 2, , 4, 6]}. La lunghezza dell'elenco è sempre 5, con un valore nullo al centro.

Analisi dello schema per le previsioni batch

Per le previsioni batch, puoi consentire al monitoraggio dei modelli di analizzare automaticamente lo schema o di caricare uno schema quando crei un job di monitoraggio.

Analisi automatica dello schema

Se non fornisci uno schema durante il monitoraggio della creazione dei job, Model Monitoring deduce i tipi di dati delle tue funzionalità e genera lo schema in base ai tuoi dati di addestramento.

Model Monitoring deve inoltre sapere quale caratteristica è la colonna di destinazione, ovvero la caratteristica prevista. La colonna target è esclusa dalla metrica di disallineamento delle caratteristiche e dello schema. Puoi specificare la colonna di destinazione durante la creazione di un job di monitoraggio.

Specifica della colonna di destinazione

Se non specifichi la colonna di destinazione durante la creazione di un job di monitoraggio, il monitoraggio dei modelli etichetta l'ultimo nome della funzionalità nei dati di addestramento come colonna di destinazione.

Ad esempio, il monitoraggio dei modelli etichetta column_c in questi dati di addestramento CSV come colonna di destinazione perché column_c si trova alla fine della prima riga:

column_a, column_b, column_d, column_c
1,"a", 2, "c"
2,"b", 342, "d"

Allo stesso modo, Model Monitoring etichetta column_c in questo file JSONL come colonna di destinazione perché column_c si trova alla fine della prima riga:

{"column_a": 1, "column_b": "a", "column_d": 2, "column_c": "c" }
{"column_a": 2, "column_b": "b", "column_c": "d",  "column_d": 342}

In entrambi gli esempi, lo schema finale contiene solo column_a, column_b e column_d.

Custom schemas (Schemi personalizzati)

Lo schema personalizzato specifica il formato del payload di input, i nomi di ogni caratteristica e il tipo di ciascuna.

Lo schema deve essere scritto come un file YAML con sintassi API aperta. L'esempio seguente riguarda una richiesta di previsione con il formato object:

type: object
properties:
  age:
    type: string
  BMI:
    type: number
  TenYearCHD:
    type: string
  cigsPerDay:
    type: array
    items:
      type: string
  BPMeds:
    type: string
required:
- age
- BMI
- TenYearCHD
- cigsPerDay
- BPMeds

Model Monitoring calcola il disallineamento delle funzionalità in base all'output di previsione batch di JSON Lines. Se il tipo di dati contiene un array, la lunghezza dell'array nei dati di input deve essere uguale al numero di caratteristiche specificate nel file YAML. In caso contrario, il monitoraggio dei modelli esclude l'istanza di previsione con la lunghezza dell'array non corretta dal calcolo del disallineamento delle caratteristiche.

Ad esempio, gli array nei seguenti tipi di dati contengono due caratteristiche:

  • Array: {[[1, 2]]}

  • "Chiave"/"Valore": {"key": 0, "values": [[1, 2]]}

Lo schema corrispondente deve specificare anche due funzionalità:

type: object
properties:
  name:
    type: string
  age:
    type: number
required:
- name
- age

Passaggi successivi