Modellbewertungskomponenten nutzen Ground-Truth- und Batch-Vorhersageergebnisse als Eingabe und generieren Bewertungsmesswerte. Ground-Truth-Daten sind von Menschen bestimmte „richtig beschriftete“ Daten und werden in der Regel als Zielfeld im Test-Dataset bereitgestellt, das Sie zum Trainieren des Modells verwendet haben. Weitere Informationen finden Sie unter Modellbewertung in Vertex AI.
Vertex AI bietet die folgenden Komponenten für die Modellbewertung:
Unterstützung für Modelltypen
Die folgende Tabelle enthält die unterstützten Modelltypen für jede Modellbewertungskomponente:
Modellbewertungskomponente | Unterstützte Modelltypen |
---|---|
ModelEvaluationClassificationOp |
|
ModelEvaluationRegressionOp |
|
ModelEvaluationForecastingOp |
|
Zielfeld entfernen
Bei einigen Modelltypen müssen Sie für die Komponente BatchPredictionJob
die Zielspalte (Ground Truth) aus dem Dataset ausschließen.
Segmente für das tabellarische Dataset konfigurieren und formatieren
Ein Segment ist eine Teilmenge von Tabellendaten mit bestimmten Merkmalen. Segmentierte Messwerte bieten detailliertere Bewertungsmesswerte für tabellarische AutoML- und benutzerdefinierte Trainingsklassifizierungsmodelle.
Betrachten Sie beispielsweise ein Dataset über die Adoption von Haustieren, bei dem ein Modell trainiert wird, um vorherzusagen, ob ein Haustier innerhalb einer Woche adoptiert wird. Während es sinnvoll ist, die Messwerte für das gesamte Dataset zu betrachten, sind Sie vielleicht an Messwerten interessiert, die sich auf die Tierart und das Alter des Haustiers beziehen. Mit anderen Worten, Sie sind an der folgenden Teilmenge des Datasets interessiert:
Funktion | Werte |
---|---|
age (in years) |
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 |
species |
„Hund“, „Katze“, „Hase“ |
Diese detaillierte Analyse kann hilfreich sein, um zu ermitteln, wo das Modell am fehleranfälligsten ist oder ob das Modell für kritische Teilmengen der Daten gut funktioniert.
Slices konfigurieren
Erstellen Sie zum Konfigurieren eines Slices eine JSON-Datei mit der folgenden Konfiguration:
{ "FEATURE": { "KIND": { CONFIG } } }
Dabei gilt:
FEATURE ist ein Feature, für das Sie ein Slice erstellen möchten. Beispiel:
age
.KIND ist einer der folgenden Werte:
value
value
erstellt ein einzelnes Segment für einen einzelnen Wert eines Features. Geben Sie CONFIG als Schlüssel/Wert-Paar an, wobei der Schlüsselfloat_value
oderstring_value
ist. Zum Beispiel:"float_value": 1.0
.In der folgenden Beispielkonfiguration wird ein einzelnes Segment erstellt, das Daten mit dem
age
von1
enthält:{ "age": { "value": { "float_value": 1.0 } } }
range
range
erstellt ein einzelnes Slice mit Daten innerhalb eines angegebenen Bereichs. Geben Sie CONFIG als zwei Schlüssel/Wert-Paare an, wobei die Schlüssellow
undhigh
sind.Die folgende Beispielkonfiguration erstellt ein einzelnes Slice mit Daten, wobei
age
ein beliebiger Wert zwischen1
und3
ist:{ "age": { "range": { "low": 1, "high": 3 } } }
all_values
all_values
erstellt ein separates Slice für jedes mögliche Label für das Feature. Geben Sie CONFIG als"value": true
an.In der folgenden Beispielkonfiguration werden drei Slices erstellt, jeweils eines für
"dog"
,"cat"
und"rabbit"
:{ "species": { "all_values": { "value": true } } }
Sie können auch mehrere Features verwenden, um ein oder mehrere Slices zu erstellen.
Die folgende Konfiguration erstellt ein einzelnes Slice, das Daten enthält, bei denen das age
zwischen 1
und 3
liegt und die species
"dog"
ist:
{ "age": { "range": { "low": 1, "high": 3 } }, "species": { "value": { "string_value": "dog" } } }
Bei der folgenden Konfiguration werden mehrere Slices erstellt: eines für jede eindeutige Art im Dataset, wobei das age
1
ist.
{ "species": { "all_values": { "value": true } }, "age": { "value": { "float_value": 1.0 } } }
Die resultierenden Slices enthalten die folgenden Daten aus dem Beispiel-Dataset:
Slice 1:
age:1
undspecies:"dog"
Slice 2:
age:1
undspecies:"cat"
Slice 3:
age:1
undspecies:"rabbit"
Slices formatieren
So formatieren Sie Slices für die Komponente ModelEvaluationClassificationOp
:
Erstellen Sie einen
slicing_spec
. Beispiel: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') ) })
Erstellen Sie eine Liste zum Speichern der Slice-Konfigurationen. Beispiel:
slicing_specs = []
Formatieren Sie jede
slicing_spec
als JSON oder ein Dictionary. Beispiel:slicing_spec_json = json_format.MessageToJson(slicing_spec) slicing_spec_dict = json_format.MessageToDict(slicing_spec)
Kombinieren Sie jede
slicing_spec
in einer Liste. Beispiel:slicing_specs.append(slicing_spec_json)
Übergeben Sie
slicing_specs
als Parameter an die KomponenteModelEvaluationClassificationOp
. Beispiel:ModelEvaluationClassificationOp(slicing_specs=slicing_specs)
Messwertkonfigurations-Slices für Fairness formatieren
Um Ihr Modell auf Fairness zu prüfen, verwenden Sie die folgenden Komponenten:
DetectDataBiasOp
: Gibt Daten-Verzerrungsmesswerte für die Slices zurück, die Sie an die Komponente übergeben.DetectModelBiasOp
: Gibt Modell-Verzerrungsmesswerte für die Slices zurück, die Sie an die Komponente übergeben.
So formatieren Sie Ihre Slices für die Komponenten DetectDataBiasOp
und DetectModelBiasOp
:
Erstellen Sie einen
BiasConfig
. Beispiel: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') ) }))
Erstellen Sie eine Liste zum Speichern der Verzerrungskonfigurationen. Beispiel:
bias_configs = []
Formatieren Sie jede
bias_config
als JSON oder ein Dictionary. Beispiel:bias_config_json = json_format.MessageToJson(bias_config) bias_config_dict = json_format.MessageToDict(bias_config)
Kombinieren Sie jede
bias_config
in einer Liste. Beispiel:bias_configs.append(bias_config_json)
Übergeben Sie
bias_configs
als Parameter an die KomponenteDetectDataBiasOp
oderDetectModelBiasOp
. Beispiel:DetectDataBiasOp(bias_configs=bias_configs) DetectModelBiasOp(bias_configs=bias_configs)
Erforderliche Eingabeparameter
Die erforderlichen Eingabeparameter für Modellbewertungskomponenten variieren je nach Art des Modells, das Sie bewerten.
AutoML-Modelle
Beim Trainieren von AutoML-Modellen verwendet Vertex AI Standardschemas. Einige Eingabeparameter für die Komponenten der Modellbewertung sind nur erforderlich, wenn Sie zum Trainieren Ihres Modells ein nicht-standardmäßiges Schema verwendet haben.
Sie können Schemadateien unter dem folgenden Cloud Storage-Speicherort ansehen und herunterladen:
gs://google-cloud-aiplatform/schema/modelevaluation/
Auf den folgenden Tabs sehen Sie Beispiel-Ausgabedateien für die Batchvorhersage und die erforderlichen Eingabeparameter für jeden Modelltyp:
Tabellarisch
Klassifizierung
Das Standardschema enthält die folgenden Felder:
scores
: Arrayclasses
: Array
Das folgende Beispiel zeigt eine Ausgabedatei für eine Batchvorhersage mit der Zielspalte 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 dieser Tabelle werden die erforderlichen Parameter für die Komponente ModelEvaluationClassificationOp
mit einem tabellarischen Modell beschrieben:
Parameter der Bewertungskomponente | Erforderlich |
---|---|
target_field_name |
Ja |
prediction_label_column |
Nicht erforderlich für Standardschema. Verwenden Sie prediction.classes für nicht-standardmäßige Schemas. |
prediction_score_column |
Nicht erforderlich für Standardschema. Verwenden Sie prediction.scores für nicht-standardmäßige Schemas. |
evaluation_class_labels |
Nicht erforderlich für Standardschema. Verwenden Sie ["0","1"] für nicht-standardmäßige Schemas. |
Regression
Das Standardschema enthält die folgenden Felder:
value
: Gleitkommazahllower_bound
: Gleitkommazahlupper_bound
: Gleitkommazahl
Das folgende Beispiel zeigt eine Ausgabedatei für eine Batchvorhersage mit der Zielspalte 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 dieser Tabelle werden die erforderlichen Parameter für die Komponente ModelEvaluationRegressionOp
mit einem tabellarischen Modell beschrieben:
Parameter der Bewertungskomponente | Erforderlich |
---|---|
target_field_name |
Ja |
prediction_label_column |
Nicht für Regressionsmodelle erforderlich. |
prediction_score_column |
Nicht erforderlich für Standardschema. Verwenden Sie prediction.value für nicht-standardmäßige Schemas. |
evaluation_class_labels |
Nicht für Regressionsmodelle erforderlich. |
Vorhersage
Bei tabellarischen Prognosemodellen müssen Sie die Komponente BatchPredictionJob
für die Zielspalte (Ground Truth) aus dem Dataset ausschließen.
Das Standardschema enthält die folgenden Felder:
id
: StringdisplayNames
: Stringtype
: EnumtimeSegmentStart
: StringtimeSegmentEnd
: Stringconfidence
: Gleitkommazahl
Das folgende Beispiel zeigt eine CSV-Datei mit sale_dollars
als Zielspalte:
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
Die TargetFieldDataRemoverOp
-Komponente entfernt die Zielspalte, bevor die Datei an die BatchPredictionJob
-Komponente gesendet wird:
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
Das folgende Beispiel zeigt eine Ausgabedatei für eine Batchvorhersage ohne die Zielspalte 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 dieser Tabelle werden die erforderlichen Parameter für die Komponente ModelEvaluationForecastingOp
mit einem tabellarischen Modell beschrieben:
Parameter der Bewertungskomponente | Erforderlich |
---|---|
target_field_name |
Ja |
prediction_label_column |
Nicht für die Prognose von Modellen erforderlich. |
prediction_score_column |
Nicht erforderlich für Standardschema. Verwenden Sie "prediction.value" für nicht-standardmäßige Schemas. |
evaluation_class_labels |
Nicht für die Prognose von Modellen erforderlich. |
ground_truth_gcs_source |
Ja: Der Cloud Storage-Link zum ursprünglichen Dataset mit der Zielspalte. |
ground_truth_format |
Ja: das Format des ursprünglichen Datasets. Beispiel: "jsonl" , "csv" oder "bigquery" . |
Text
.Klassifizierung
Bei Textklassifizierungsmodellen müssen Sie bei der Komponente BatchPredictionJob
die Zielspalte (Ground Truth) aus Ihrem Dataset ausschließen. Sie können die Komponente TargetFieldDataRemoverOp
für einen effizienteren Workflow verwenden.
Das Standardschema enthält die folgenden Felder:
ids
: StringarraydisplayName
: Stringarrayconfidence
: Array aus Gleitkommazahlen
Das folgende Beispiel zeigt ein Dataset mit label
als Zielspalte:
{ "content": "gs://kbn-us-central1-test/datasets/text/happy_0.txt", "mimeType": "text/plain", "label": "affection" }
Die TargetFieldDataRemoverOp
-Komponente entfernt die Zielspalte, bevor die Datei an die BatchPredictionJob
-Komponente gesendet wird:
{ "content": "gs://kbn-us-central1-test/datasets/text/happy_0.txt", "mimeType": "text/plain" }
Das folgende Beispiel zeigt eine Ausgabedatei für eine Batchvorhersage ohne die Zielspalte 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 dieser Tabelle werden die erforderlichen Parameter für die Komponente ModelEvaluationClassificationOp
mit einem Textmodell beschrieben:
Parameter der Bewertungskomponente | Erforderlich |
---|---|
target_field_name |
Ja |
prediction_label_column |
Nicht erforderlich für Standardschema. Verwenden Sie "prediction.displayNames" für nicht-standardmäßige Schemas. |
prediction_score_column |
Nicht erforderlich für Standardschema. Verwenden Sie "prediction.confidences" für nicht-standardmäßige Schemas. |
evaluation_class_labels |
Nicht erforderlich für das Standardschema oder wenn prediction_label_column angegeben wird. |
ground_truth_gcs_source |
Ja: Der Cloud Storage-Link zum ursprünglichen Dataset mit der Zielspalte. |
ground_truth_format |
Ja: das Format des ursprünglichen Datasets. Beispiel: "jsonl" , "csv" oder "bigquery" . |
Video
Klassifizierung
Bei Videoklassifizierungsmodellen müssen Sie bei der Komponente BatchPredictionJob
die Zielspalte (Ground Truth) aus Ihrem Dataset ausschließen. Sie können die Komponente TargetFieldDataRemoverOp
für einen effizienteren Workflow verwenden.
Das Standardschema enthält die folgenden Felder:
id
: StringdisplayName
: Stringtype
: EnumtimeSegmentStart
: StringtimeSegmentEnd
: Stringconfidence
: Gleitkommazahl
Das folgende Beispiel zeigt ein Dataset mit ground_truth
als Zielspalte:
{ "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" }
Die TargetFieldDataRemoverOp
-Komponente entfernt die Zielspalte, bevor die Datei an die BatchPredictionJob
-Komponente gesendet wird:
{ "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" }
Das folgende Beispiel zeigt eine Ausgabedatei für eine Batchvorhersage ohne die Zielspalte 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 dieser Tabelle werden die erforderlichen Parameter für die Komponente ModelEvaluationClassificationOp
mit einem Videomodell beschrieben:
Parameter der Bewertungskomponente | Erforderlich |
---|---|
target_field_name |
Ja |
prediction_label_column |
Nicht erforderlich für Standardschema. Verwenden Sie "prediction.displayName" für nicht-standardmäßige Schemas. |
prediction_score_column |
Nicht erforderlich für Standardschema. Verwenden Sie "prediction.confidence" für nicht-standardmäßige Schemas. |
evaluation_class_labels |
Nicht erforderlich, wenn ein Standardschema verwendet wird oder prediction_label_column angegeben wird. |
ground_truth_gcs_source |
Ja: Der Cloud Storage-Link zum ursprünglichen Dataset mit der Zielspalte. |
ground_truth_format |
Ja: das Format des ursprünglichen Datasets. Beispiel: "jsonl" , "csv" oder "bigquery" . |
Benutzerdefinierte Modelle
Bei benutzerdefinierten Modellen müssen Sie für die Komponente BatchPredictionJob
die Zielspalte (Ground Truth) aus dem Dataset ausschließen. Sie können die Komponente TargetFieldDataRemoverOp
für einen effizienteren Workflow verwenden.
Das folgende Beispiel zeigt eine Ausgabedatei für eine Batchvorhersage und die erforderlichen Eingabeparameter für ein benutzerdefiniert trainiertes Tabellenklassifizierungsmodell:
Tabellarisch
Klassifizierung
Das typische Schema umfasst die folgenden Felder:
instance
: Array von Eingabedaten in derselben Reihenfolge wie die Spalten für das Modelltrainings-Dataset.prediction
: Array von Eingabedaten in derselben Reihenfolge wie die Spalten für das Modelltrainings-Dataset.
Das folgende Beispiel zeigt ein CSV-Dataset mit species
als Zielspalte:
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
Die Komponente TargetFieldDataRemoverOp
entfernt die Zielspalte, bevor die Datei an die Batchvorhersagekomponente gesendet wird:
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
Das folgende Beispiel zeigt eine Ausgabedatei für eine Batchvorhersage ohne die Zielspalte 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 dieser Tabelle werden die erforderlichen Parameter für die Komponente ModelEvaluationClassificationOp
mit einem Videomodell beschrieben:
Parameter der Bewertungskomponente | Erforderlich |
---|---|
target_field_name |
Ja |
prediction_label_column |
Muss leer sein. Diese Spalte ist in benutzerdefinierten Modellen nicht vorhanden. |
prediction_score_column |
Nicht für Standardschema erforderlich, wird automatisch für das Format JSONL , CSV oder BIGQUERY festgelegt. |
evaluation_class_labels |
Ja. Muss dieselbe Länge wie das Array der Ausgabevorhersage haben. |
ground_truth_gcs_source |
Ja: Der Cloud Storage-Link zum ursprünglichen Dataset mit der Zielspalte. |
ground_truth_format |
Ja: das Format des ursprünglichen Datasets. Beispiel: "jsonl" , "csv" oder "bigquery" . |
Modellbewertungen ohne von Vertex AI generierte Batchvorhersagen
Sie können eine Modellbewertungs-Pipelinekomponente mit einer Batchvorhersage verwenden, die Sie nicht in Vertex AI generiert haben. Beachten Sie jedoch, dass die Eingabe für die Komponente der Modellbewertungs-Pipeline ein Batchvorhersageverzeichnis sein muss, das Dateien enthält, die den folgenden Präfixen entsprechen:
prediction.results-
explanation.results-
predictions_
API-Referenz
Die Komponentenreferenz finden Sie auf der Referenzseite des Google Cloud Pipeline Components SDK für Modellbewertungskomponenten.
Beispiele für die Verwendung der Modellbewertungskomponenten finden Sie in den Notebooks, die unter Evaluierung erstellen aufgeführt sind.
Versionsverlauf und Versionshinweise
Weitere Informationen zum Versionsverlauf und zu Änderungen am Google Cloud Pipeline Components SDK finden Sie in den Versionshinweisen zum Google Cloud Pipeline Components SDK.