Per avviare un job di monitoraggio, il monitoraggio dei modelli deve conoscere lo schema del set di dati tabulari per analizzare correttamente il payload di input.
Per i modelli AutoML, il monitoraggio dei modelli analizza automaticamente lo schema perché Vertex AI ha già accesso ai tuoi dati di addestramento.
Per i modelli con addestramento personalizzato:
Il monitoraggio dei modelli può analizzare automaticamente gli schemi per i modelli che utilizzano un formato di input con coppia chiave-valore standard.
Per i modelli addestrati personalizzati che non utilizzano un formato di input con coppia chiave-valore, potresti dover fornire uno schema durante la creazione del job di monitoraggio.
La generazione dello schema varia a seconda che tu stia attivando il monitoraggio dei modelli per un endpoint di previsione online o per le previsioni batch.
Analisi dello schema per gli endpoint di previsione online
Per gli endpoint di previsione online, puoi lasciare che il monitoraggio dei modelli analizzi automaticamente lo schema o caricarne uno quando crei un job di monitoraggio.
Analisi automatica dello schema
Dopo aver attivato il rilevamento di disallineamenti o deviazioni per un endpoint online, solitamente il monitoraggio dei modelli può 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 al 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 ogni input.
Schemi delle 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 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 Open API. Il seguente esempio 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-valorearray
: simile ad arraystring
: 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 nel campo
required
.
Se la richiesta di previsione è in formato array o stringa CSV, rappresenta le eventuali funzionalità mancanti come valori null. Ad esempio, considera una richiesta di previsione 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
è: {[1, 2, , 4, 6]}
. La lunghezza dell'elenco è ancora 5, con un valore nullo al centro.
Analisi dello schema per le previsioni batch
Per le previsioni in batch, puoi lasciare che il monitoraggio dei modelli analizzi automaticamente lo schema o caricarne uno quando crei un job di monitoraggio.
Analisi automatica dello schema
Se non fornisci uno schema durante la creazione del job di monitoraggio, il monitoraggio del modello deducono i tipi di dati delle funzionalità e genera lo schema in base ai dati di addestramento.
Il monitoraggio dei modelli deve anche sapere quale caratteristica è la colonna di destinazione, ovvero la funzionalità che viene prevista. La colonna target è esclusa dalla metrica dello schema e del disallineamento delle funzionalità. Puoi specificare la colonna di destinazione 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, il monitoraggio del modello etichetta come colonna di destinazione l'ultimo nome dell'elemento nei dati di addestramento.
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"
Analogamente, il monitoraggio dei modelli 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 funzionalità e il tipo di ogni funzionalità.
Lo schema deve essere scritto come file YAML con sintassi Open API. Il seguente esempio 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
Il monitoraggio dei modelli calcola lo scostamento delle funzionalità in base all'output di previsione batch delle righe JSON. 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 errata dal calcolo dell'asimmetria della funzionalità.
Ad esempio, gli array nei seguenti tipi di dati contengono due elementi:
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.