I componenti di valutazione del modello utilizzano dati empirici reali e previsioni batch i risultati come input e generare metriche di valutazione. I dati di fatto sono "etichettato correttamente" determinati da esseri umani e di solito viene fornito come campo target nel set di dati di test utilizzato per addestrare il modello. Per ulteriori informazioni informazioni, consulta Valutazione dei modelli in Vertex AI.
Vertex AI fornisce i seguenti componenti di valutazione del modello:
Supporto dei tipi di modello
La tabella seguente mostra i tipi di modelli supportati per ogni valutazione del modello componente:
Componente di valutazione del modello | Tipi di modelli supportati |
---|---|
ModelEvaluationClassificationOp |
|
ModelEvaluationRegressionOp |
|
ModelEvaluationForecastingOp |
|
Rimuovi il campo di destinazione
Per alcuni tipi di modello, il componente BatchPredictionJob
richiede l'esclusione della colonna target (dati empirici reali) dal set di dati.
Configura e formatta le sezioni per il set di dati tabulare
Una sezione è un sottoinsieme di dati tabulari con caratteristiche specificate. A fette offre metriche di valutazione più granulari per AutoML tabulari e personalizzati di addestramento di modelli di classificazione.
Ad esempio, consideriamo un set di dati di adozione di animali domestici in cui un modello viene addestrato a prevedere se un animale domestico sarà adottato entro una settimana. Sebbene sia utile esaminare per l'intero set di dati, ti potrebbero interessare le metriche relative la specie e l'età degli animali domestici. In altre parole, ti interessa quanto segue: del set di dati:
Funzionalità | Valori |
---|---|
age (in years) |
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 |
species |
"cane", "gatto", "coniglio" |
Questa analisi dettagliata può essere utile per identificare dove il modello potrebbe maggiormente soggetto a errori o assicurare che il modello funzioni bene su aree sottoinsiemi di dati.
Configura sezioni
Per configurare una sezione, crea un file JSON con la seguente configurazione:
{ "FEATURE": { "KIND": { CONFIG } } }
Dove:
FEATURE è una caratteristica per la quale vuoi creare una sezione. Ad esempio,
age
.KIND corrisponde a uno dei seguenti:
value
value
crea una singola sezione in base a un singolo valore di una caratteristica. Specifica CONFIG come coppia chiave-valore in cui la chiave èfloat_value
ostring_value
. Ad esempio,"float_value": 1.0
.La configurazione di esempio seguente crea una singola sezione contenente dati con
age
di1
:{ "age": { "value": { "float_value": 1.0 } } }
range
range
crea una singola sezione che include i dati in un intervallo specificato. Specifica CONFIG come due coppie chiave-valore in cui le chiavi sonolow
ehigh
.La configurazione di esempio seguente crea una singola sezione contenente dati dove
age
è un qualsiasi valore compreso tra1
e3
:{ "age": { "range": { "low": 1, "high": 3 } } }
all_values
all_values
crea una sezione separata per ogni possibile sezione l'etichetta dell'elemento. Specifica CONFIG come"value": true
.La seguente configurazione di esempio crea tre sezioni, una per
"dog"
,"cat"
e"rabbit"
:{ "species": { "all_values": { "value": true } } }
Puoi anche utilizzare più caratteristiche per creare una o più sezioni.
La seguente configurazione crea una singola sezione contenente dati in cui
age
è tra 1
e 3
e species
è "dog"
:
{ "age": { "range": { "low": 1, "high": 3 } }, "species": { "value": { "string_value": "dog" } } }
La seguente configurazione crea più sezioni, una per ogni specie unica
nel set di dati, dove age
è 1
.
{ "species": { "all_values": { "value": true } }, "age": { "value": { "float_value": 1.0 } } }
Le sezioni risultanti contengono i seguenti dati del set di dati di esempio:
Sezione 1:
age:1
especies:"dog"
Sezione 2:
age:1
especies:"cat"
Sezione 3:
age:1
especies:"rabbit"
Formattare le sezioni
Per formattare le sezioni per il componente ModelEvaluationClassificationOp
, procedi nel seguente modo
seguenti:
Crea un
slicing_spec
. Ad esempio:from google.cloud.aiplatform_v1.types.ModelEvaluationSlice.Slice import SliceSpec from google.cloud.aiplatform_v1.types.ModelEvaluationSlice.Slice.SliceSpec import SliceConfig slicing_spec = SliceSpec(configs={ 'feature_a': SliceConfig(SliceSpec.Value(string_value='label_a') ) })
Crea un elenco per archiviare le configurazioni delle sezioni. Ad esempio:
slicing_specs = []
Formatta ogni
slicing_spec
come JSON o come dizionario. Ad esempio:slicing_spec_json = json_format.MessageToJson(slicing_spec) slicing_spec_dict = json_format.MessageToDict(slicing_spec)
Combina ogni
slicing_spec
in un elenco. Ad esempio:slicing_specs.append(slicing_spec_json)
Passa
slicing_specs
come parametro aModelEvaluationClassificationOp
di strumento di authoring. Ad esempio:ModelEvaluationClassificationOp(slicing_specs=slicing_specs)
Sezioni di configurazione delle metriche di equità del formato
Per valutare il tuo modello per l'equità, utilizza i seguenti componenti:
DetectDataBiasOp
: restituisce le metriche di bias dei dati per le sezioni che passi nel componente.DetectModelBiasOp
: restituisce le metriche di bias del modello per la le sezioni passate al componente.
Per formattare le sezioni per DetectDataBiasOp
e DetectModelBiasOp
segui questi passaggi:
Crea un
BiasConfig
. Ad esempio:from google.cloud.aiplatform_v1.types.ModelEvaluation import BiasConfig from google.cloud.aiplatform_v1.types.ModelEvaluationSlice.Slice import SliceSpec from google.cloud.aiplatform_v1.types.ModelEvaluationSlice.Slice.SliceSpec import SliceConfig bias_config = BiasConfig(bias_slices=SliceSpec(configs={ 'feature_a': SliceConfig(SliceSpec.Value(string_value='label_a') ) }))
Crea un elenco per memorizzare le configurazioni di bias. Ad esempio:
bias_configs = []
Formatta ogni
bias_config
come JSON o come dizionario. Ad esempio:bias_config_json = json_format.MessageToJson(bias_config) bias_config_dict = json_format.MessageToDict(bias_config)
Combina ogni
bias_config
in un elenco. Ad esempio:bias_configs.append(bias_config_json)
Passa
bias_configs
come parametro aDetectDataBiasOp
oDetectModelBiasOp
di strumento di authoring. Ad esempio:DetectDataBiasOp(bias_configs=bias_configs) DetectModelBiasOp(bias_configs=bias_configs)
Parametri di input obbligatori
I parametri di input richiesti per i componenti di valutazione del modello variano in base a il tipo di modello che stai valutando.
Modelli AutoML
Durante l'addestramento dei modelli AutoML, Vertex AI utilizza gli schemi predefiniti. Alcuni parametri di input per i componenti di valutazione del modello sono necessari solo se hai utilizzato uno schema non predefinito per addestrare il modello.
Puoi visualizzare e scaricare file di schema dai seguenti file di Cloud Storage
località:
gs://google-cloud-aiplatform/schema/modelevaluation/
Le seguenti schede mostrano i file di output delle previsioni batch di esempio e l'input richiesto parametri per ciascun tipo di modello:
Tabulare
Classificazione
Lo schema predefinito include i seguenti campi:
scores
: arrayclasses
: array
Di seguito è riportato un esempio di file di output di una previsione batch con
la colonna target di male
:
{ "instance": { "male": "1", "age": "49", "heartRate": "67", "education": "medium_high", "totChol": "282", "diaBP": "79", "BPMeds": "0", "currentSmoker": "current_high", "cigsPerDay": "25", "prevalentStroke": "stroke_0", "prevalentHyp": "hyp_0", "TenYearCHD": "FALSE", "diabetes": "0", "sysBP": "134", "BMI": "26.87", "glucose": "78" }, "prediction": { "scores": [0.3666940927505493, 0.6333059072494507], "classes": ["0", "1"] } }
In questa tabella vengono descritti i parametri richiesti per i campi
ModelEvaluationClassificationOp
con un
modello tabulare:
Parametro del componente valutazione | Obbligatorio |
---|---|
target_field_name |
Sì |
prediction_label_column |
Non obbligatorio per lo schema predefinito. Utilizza prediction.classes per gli schemi non predefiniti. |
prediction_score_column |
Non obbligatorio per lo schema predefinito. Utilizza prediction.scores per gli schemi non predefiniti. |
evaluation_class_labels |
Non obbligatorio per lo schema predefinito. Utilizza ["0","1"] per gli schemi non predefiniti. |
Regressione
Lo schema predefinito include i seguenti campi:
value
: numero in virgola mobilelower_bound
: numero in virgola mobileupper_bound
: numero in virgola mobile
Di seguito è riportato un esempio di file di output di una previsione batch con
la colonna target di age
:
{ "instance": { "BPMeds": "0", "diabetes": "0", "diaBP": "65", "cigsPerDay": "45", "prevalentHyp": "hyp_0", "age": "46", "male": "1", "sysBP": "112.5", "glucose": "78", "BMI": "27.48", "TenYearCHD": "FALSE", "totChol": "209", "education": "high", "prevalentStroke": "stroke_0", "heartRate": "75", "currentSmoker": "current_high" }, "prediction": { "value": 44.96103286743164, "lower_bound": 44.61349868774414, "upper_bound": 44.590206146240234 } }
In questa tabella vengono descritti i parametri richiesti per i campi
ModelEvaluationRegressionOp
con un
modello tabulare:
Parametro del componente valutazione | Obbligatorio |
---|---|
target_field_name |
Sì |
prediction_label_column |
Non obbligatorio per i modelli di regressione. |
prediction_score_column |
Non obbligatorio per lo schema predefinito. Utilizza prediction.value per gli schemi non predefiniti. |
evaluation_class_labels |
Non obbligatorio per i modelli di regressione. |
Previsione
Per i modelli di previsione tabulari, lo BatchPredictionJob
richiede l'esclusione della colonna target (dati empirici reali)
dal tuo set di dati.
Lo schema predefinito include i seguenti campi:
id
: stringadisplayNames
: stringatype
: enumtimeSegmentStart
: stringatimeSegmentEnd
: stringaconfidence
: numero in virgola mobile
Di seguito è riportato un esempio di file CSV con
sale_dollars
come colonna di destinazione:
date,store_name,city,zip_code,county,sale_dollars 2020-03-17,Thriftway,,,,774.08999999999992 2020-03-10,Thriftway,,,,1160.67 2020-03-03,Thriftway,,,,2247.24 2020-06-08,New Star / Fort Dodge,,,,753.98 2020-06-01,New Star / Fort Dodge,,,,967.73 2020-01-10,Casey's General Store #1280 / Fort Dodge,,,,1040.92 2020-10-30,KUM & GO #76 / ADAIR,Adair,50002,ADAIR,1387.02
Il componente TargetFieldDataRemoverOp
rimuove il target
colonna prima di inviare il file al server BatchPredictionJob
componente:
date,store_name,city,zip_code,county 2020-03-17,Thriftway,nan,nan,nan 2020-03-10,Thriftway,nan,nan,nan 2020-03-03,Thriftway,nan,nan,nan 2020-06-08,New Star / Fort Dodge,nan,nan,nan 2020-06-01,New Star / Fort Dodge,nan,nan,nan 2020-01-10,Casey's General Store #1280 / Fort Dodge,nan,nan,nan 2020-10-30,KUM & GO #76 / ADAIR,Adair,50002.0,ADAIR
Di seguito è riportato un esempio di file di output di una previsione batch senza
la colonna target di sale_dollars
:
{ "instance": { "content": "gs://kbn-us-central1-test/datasets/text/happy_11556.txt", "mimeType":"text/plain" }, "prediction": { "ids": ["7903916851837534208","3292230833410146304","986387824196452352","2139309328803299328","5598073842623840256","6750995347230687232","4559431178561519616"], "displayNames": ["affection","bonding","achievement","exercise","nature","enjoy_the_moment","leisure"], "confidences": [0.99483216,0.005162797,4.1117933E-6,3.9997E-7,2.4624453E-7,1.9969502E-7,1.16997434E-7] } }
In questa tabella vengono descritti i parametri richiesti per i campi
ModelEvaluationForecastingOp
con un
modello tabulare:
Parametro del componente valutazione | Obbligatorio |
---|---|
target_field_name |
Sì |
prediction_label_column |
Non obbligatorio per i modelli di previsione. |
prediction_score_column |
Non obbligatorio per lo schema predefinito. Utilizza "prediction.value" per gli schemi non predefiniti. |
evaluation_class_labels |
Non obbligatorio per i modelli di previsione. |
ground_truth_gcs_source |
Sì: il collegamento di Cloud Storage al set di dati originale con la colonna di destinazione. |
ground_truth_format |
Sì: il formato del set di dati originale. Ad esempio:
"jsonl" , "csv" o "bigquery" . |
Testo
Classificazione
Per i modelli di classificazione del testo, BatchPredictionJob
richiede l'esclusione della colonna target (dati empirici reali)
dal tuo set di dati. Puoi usare TargetFieldDataRemoverOp
per un flusso di lavoro più efficiente.
Lo schema predefinito include i seguenti campi:
ids
: array di stringhedisplayName
: array di stringheconfidence
: array di numeri in virgola mobile
Di seguito è riportato un esempio di set di dati con
label
come colonna di destinazione:
{ "content": "gs://kbn-us-central1-test/datasets/text/happy_0.txt", "mimeType": "text/plain", "label": "affection" }
Il componente TargetFieldDataRemoverOp
rimuove il target
colonna prima di inviare il file al server BatchPredictionJob
componente:
{ "content": "gs://kbn-us-central1-test/datasets/text/happy_0.txt", "mimeType": "text/plain" }
Di seguito è riportato un esempio di file di output di una previsione batch senza
la colonna target di label
:
{ "instance": { "content": "gs://kbn-us-central1-test/datasets/text/happy_11556.txt", "mimeType":"text/plain" }, "prediction": { "ids": ["7903916851837534208","3292230833410146304","986387824196452352","2139309328803299328","5598073842623840256","6750995347230687232","4559431178561519616"], "displayNames": ["affection","bonding","achievement","exercise","nature","enjoy_the_moment","leisure"], "confidences": [0.99483216,0.005162797,4.1117933E-6,3.9997E-7,2.4624453E-7,1.9969502E-7,1.16997434E-7] } }
In questa tabella vengono descritti i parametri richiesti per i campi
ModelEvaluationClassificationOp
con un
modello di testo:
Parametro del componente valutazione | Obbligatorio |
---|---|
target_field_name |
Sì |
prediction_label_column |
Non obbligatorio per lo schema predefinito. Utilizza "prediction.displayNames" per gli schemi non predefiniti. |
prediction_score_column |
Non obbligatorio per lo schema predefinito. Utilizza "prediction.confidences" per gli schemi non predefiniti. |
evaluation_class_labels |
Non obbligatorio per lo schema predefinito o quando
prediction_label_column fornito. |
ground_truth_gcs_source |
Sì: il collegamento di Cloud Storage al set di dati originale con la colonna di destinazione. |
ground_truth_format |
Sì: il formato del set di dati originale. Ad esempio:
"jsonl" , "csv" o "bigquery" . |
Video
Classificazione
Per i modelli di classificazione dei video, BatchPredictionJob
richiede l'esclusione della colonna target (dati empirici reali)
dal tuo set di dati. Puoi usare TargetFieldDataRemoverOp
per un flusso di lavoro più efficiente.
Lo schema predefinito include i seguenti campi:
id
: stringadisplayName
: stringatype
: enumtimeSegmentStart
: stringatimeSegmentEnd
: stringaconfidence
: numero in virgola mobile
Di seguito è riportato un esempio di set di dati con
ground_truth
come colonna di destinazione:
{ "content": "gs://automl-video-demo-data/hmdb51/Aerial_Cartwheel_Tutorial_By_Jujimufu_cartwheel_f_nm_np1_ri_med_0.avi", "ground_truth": "cartwheel", "timeSegmentStart": "0.0", "timeSegmentEnd": "inf" }
Il componente TargetFieldDataRemoverOp
rimuove il target
colonna prima di inviare il file al server BatchPredictionJob
componente:
{ "content": "gs://automl-video-demo-data/hmdb51/Aerial_Cartwheel_Tutorial_By_Jujimufu_cartwheel_f_nm_np1_ri_med_0.avi", "timeSegmentStart": "0.0", "timeSegmentEnd": "inf" }
Di seguito è riportato un esempio di file di output di una previsione batch senza
la colonna target di label
:
{ "instance": { "content": "gs://automl-video-demo-data/hmdb51/20_Marine_Corps_Pull_Ups___JimmyDShea_pullup_f_cm_np1_ba_bad_3.avi" "mimeType": "video/avi", "timeSegmentStart": "0.0", "timeSegmentEnd": "inf" }, "prediction": [ { "id":"5015420640832782336", "displayName":"pullup", "type":"segment-classification", "timeSegmentStart":"0s", "timeSegmentEnd":"2.600s", "confidence":0.98152995 }, { "id":"2709577631619088384", "displayName":"cartwheel", "type":"segment-classification", "timeSegmentStart":"0s", "timeSegmentEnd":"2.600s", "confidence":0.0047166348 }, { "id":"403734622405394432", "displayName":"golf", "type":"segment-classification", "timeSegmentStart":"0s", "timeSegmentEnd":"2.600s", "confidence":0.0046260506 }, { "id":"1556656127012241408", "displayName":"ride_horse", "type":"segment-classification", "timeSegmentStart":"0s", "timeSegmentEnd":"2.600s", "confidence":0.004590442 }, { "id":"7321263650046476288", "displayName":"kick_ball", "type":"segment-classification", "timeSegmentStart":"0s", "timeSegmentEnd":"2.600s", "confidence":0.004536863 } ] }
In questa tabella vengono descritti i parametri richiesti per i campi
ModelEvaluationClassificationOp
con un
modello video:
Parametro del componente valutazione | Obbligatorio |
---|---|
target_field_name |
Sì |
prediction_label_column |
Non obbligatorio per lo schema predefinito. Utilizza "prediction.displayName" per gli schemi non predefiniti. |
prediction_score_column |
Non obbligatorio per lo schema predefinito. Utilizza "prediction.confidence" per gli schemi non predefiniti. |
evaluation_class_labels |
Non obbligatorio quando viene utilizzato uno schema predefinito o quando
prediction_label_column fornito. |
ground_truth_gcs_source |
Sì: il collegamento di Cloud Storage al set di dati originale con la colonna di destinazione. |
ground_truth_format |
Sì: il formato del set di dati originale. Ad esempio:
"jsonl" , "csv" o "bigquery" . |
Modelli con addestramento personalizzato
Per i modelli con addestramento personalizzato, il componente BatchPredictionJob
richiede l'esclusione della colonna target (dati empirici reali) dal set di dati. Tu
puoi utilizzare il componente TargetFieldDataRemoverOp
per avere
un flusso di lavoro efficiente.
L'esempio seguente mostra un file di output di una previsione batch e i parametri di input richiesti per un modello di classificazione tabulare con addestramento personalizzato:
Tabulare
Classificazione
Lo schema tipico include i seguenti campi:
instance
: array di dati di input nello stesso ordine delle colonne del set di dati per l'addestramento del modello.prediction
: array di dati di input nello stesso ordine delle colonne del set di dati per l'addestramento del modello.
Di seguito è riportato un esempio di set di dati CSV con
species
come colonna di destinazione:
petal_length,petal_width,sepal_length,sepal_width,species 6.4,2.8,5.6,2.2,2 5.0,2.3,3.3,1.0,1 4.9,2.5,4.5,1.7,2 4.9,3.1,1.5,0.1,0
Il componente TargetFieldDataRemoverOp
rimuove il target
prima di inviare il file al componente della previsione batch:
petal_length,petal_width,sepal_length,sepal_width 6.4,2.8,5.6,2.2 5.0,2.3,3.3,1.0 4.9,2.5,4.5,1.7 4.9,3.1,1.5,0.1
Di seguito è riportato un esempio di file di output di una previsione batch senza
la colonna target di species
:
{ "instance": [5.6, 2.5, 3.9, 1.1], "prediction": [0.0005816521588712931, 0.9989032745361328, 0.0005150380893610418] } { "instance": [5.0, 3.6, 1.4, 0.2], "prediction": [0.999255359172821, 0.000527293945197016, 0.00021737271163146943] } { "instance": [6.0, 2.9, 4.5, 1.5], "prediction": [0.00025063654175028205, 0.9994204044342041, 0.00032893591560423374] }
In questa tabella vengono descritti i parametri richiesti per i campi
ModelEvaluationClassificationOp
con un
modello video:
Parametro del componente valutazione | Obbligatorio |
---|---|
target_field_name |
Sì |
prediction_label_column |
Il campo deve essere vuoto. questa colonna non esiste nei modelli con addestramento personalizzato. |
prediction_score_column |
Non obbligatorio per lo schema predefinito. viene impostato automaticamente per i formati JSONL , CSV o BIGQUERY . |
evaluation_class_labels |
Sì. Deve avere la stessa lunghezza dell'array di previsione di output. |
ground_truth_gcs_source |
Sì: il collegamento di Cloud Storage al set di dati originale con la colonna di destinazione. |
ground_truth_format |
Sì: il formato del set di dati originale. Ad esempio:
"jsonl" , "csv" o "bigquery" . |
Valutazioni di modelli senza previsioni batch generate da Vertex AI
Puoi utilizzare un componente della pipeline di valutazione del modello con una previsione batch che non hai generato in Vertex AI. Tuttavia, tieni presente che l'input per il componente della pipeline di valutazione del modello deve essere una directory di previsione batch contenenti file con i seguenti prefissi:
prediction.results-
explanation.results-
predictions_
Riferimento API
Per informazioni sui componenti, consulta Pagina di riferimento dell'SDK dei componenti della pipeline di Google Cloud per i componenti di valutazione del modello.
Per esempi di come utilizzare i componenti di valutazione del modello, consulta i blocchi note elencato in Creare una valutazione.
Cronologia delle versioni e note di rilascio
Per saperne di più sulla cronologia delle versioni e sulle modifiche all'SDK dei componenti della pipeline di Google Cloud, consulta le note di rilascio dell'SDK per i componenti della pipeline di Google Cloud.