Per avviare un job di monitoraggio, Model Monitoring deve conoscere lo schema del tuo set di dati tabellare 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 i modelli che utilizzano un formato di input standard con coppia chiave-valore.
Per i modelli addestrati personalizzati che non utilizzano un formato di input con coppia chiave-valore, potrebbe essere necessario fornire uno schema durante la creazione del job di monitoraggio.
La generazione dello schema varia a seconda che tu stia attivando il monitoraggio del modello per un endpoint di inferenza online o inferenze batch.
Analisi dello schema per gli endpoint di inferenza online
Per gli endpoint di inferenza online, puoi consentire a Model Monitoring di analizzare automaticamente lo schema o caricare uno schema quando crei un job di monitoraggio.
Analisi automatica dello schema
Dopo aver attivato il rilevamento di disallineamenti o deviazioni per un endpoint online, Model Monitoring può in genere analizzare automaticamente lo schema di input. Per l'analisi automatica dello schema, il monitoraggio dei modelli 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, in cui "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 di funzionalità predefinito a ogni input.
Schemi personalizzati delle istanze
Puoi fornire il tuo schema di input quando crei un job Model Monitoring per garantire che <x0A>Model Monitoring analizzi correttamente gli input del modello.
Questo schema è chiamato schema istanza di analisi. Il file dello schema specifica il formato del payload di input, i nomi di ogni funzionalità e il tipo di ogni funzionalità.
Lo schema deve essere scritto come file YAML nel formato OpenAPI. L'esempio seguente riguarda una richiesta di inferenza
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 tua richiesta di inferenza è in uno dei seguenti formati:object
: coppie chiave-valorearray
: simile a un arraystring
: csv-string
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 nel campo
required
.
Se la richiesta di inferenza è in formato array o stringa CSV, rappresenta le funzionalità mancanti come valori nulli. Ad esempio, considera una richiesta di inferenza con cinque funzionalità:
[feature_a, feature_b, feature_c, feature_d, feature_e]
Se feature_c
consente valori mancanti, una richiesta di esempio in cui manca feature_c
sarebbe: {[1, 2, , 4, 6]}
. La lunghezza dell'elenco è ancora 5, con un valore null
al centro.
Analisi dello schema per le inferenze batch
Per le inferenze batch, puoi consentire al monitoraggio dei modelli di analizzare automaticamente lo schema o caricare uno schema quando crei un job di monitoraggio.
Analisi automatica dello schema
Se non fornisci uno schema durante la creazione del job di monitoraggio, Model Monitoring deduce i tipi di dati delle tue funzionalità e genera lo schema in base ai dati di addestramento.
Model Monitoring deve anche sapere qual è la colonna target, ovvero la funzionalità che viene prevista. La colonna target è esclusa dallo schema e dalla metrica di disallineamento delle funzionalità. Puoi specificare la colonna target durante la creazione di un job di monitoraggio.
Specifica della colonna target
Se non specifichi la colonna di destinazione durante la creazione di un job di monitoraggio, Model Monitoring etichetta l'ultimo nome della funzionalità nei tuoi dati di addestramento come colonna di destinazione.
Ad esempio, Model Monitoring 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 target 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 funzionalità e il tipo di ciascuna funzionalità.
Lo schema deve essere scritto come file YAML con sintassi Open API. L'esempio seguente riguarda una richiesta di inferenza
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 l'asimmetria delle funzionalità in base all'output dell'inferenza batch 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 inferenza con la lunghezza dell'array errata dal calcolo dell'asimmetria delle funzionalità.
Ad esempio, gli array nei seguenti tipi di dati contengono due funzionalità:
Array:
{[[1, 2]]}
"Key"/"Value":
{"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
- Attiva il rilevamento di disallineamento e deviazione per i tuoi modelli.
- Prova il notebook di esempio in Colab o visualizzalo su GitHub.