모델 평가 구성요소는 정답과 일괄 예측 결과를 입력으로 사용하고 평가 측정항목을 생성합니다. 정답 데이터는 사람이 결정한 대로 '올바르게 라벨이 지정'된 데이터이며 일반적으로 모델을 학습시키는 데 사용한 테스트 데이터 세트의 타겟 필드로 제공됩니다. 자세한 내용은 Vertex AI의 모델 평가를 참조하세요.
Vertex AI는 다음과 같은 모델 평가 구성요소를 제공합니다.
모델 유형 지원
다음 표에서는 각 모델 평가 구성요소에 지원되는 모델 유형을 보여줍니다.
모델 평가 구성요소 | 지원되는 모델 유형 |
---|---|
ModelEvaluationClassificationOp |
|
ModelEvaluationRegressionOp |
|
ModelEvaluationForecastingOp |
|
대상 필드 삭제
일부 모델 유형의 경우 BatchPredictionJob
구성요소를 사용하려면 데이터 세트에서 타겟 열(정답)을 제외해야 합니다.
테이블 형식 데이터 세트의 슬라이스 구성 및 형식 지정
슬라이스는 지정된 특성이 있는 테이블 형식 데이터의 하위 집합입니다. 슬라이스 측정항목은 AutoML 테이블 형식 및 커스텀 학습 분류 모델에 보다 세부적인 평가 측정항목을 제공합니다.
예를 들어 일주일 내로 반려동물을 입양할지 여부를 예측하도록 모델을 학습시킨 애완동물 입양 데이터 세트를 살펴보겠습니다. 전체 데이터 세트의 측정항목을 살펴보는 것이 유용하지만 반려동물의 종과 나이와 관련된 측정항목에 관심이 있을 수 있습니다. 즉, 다음 데이터 세트 하위 집합에 관심이 있습니다.
특성 | 값 |
---|---|
age (in years) |
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 |
species |
"dog", "cat", "rabbit" |
이러한 세분화된 분석은 모델이 오류 발생 가능성이 가장 높은 위치를 식별하거나 중요한 데이터 하위 집합에서 모델이 잘 작동하는지 확인하는 데 유용할 수 있습니다.
슬라이스 구성
슬라이스를 구성하려면 다음 구성을 사용하여 JSON 파일을 만듭니다.
{ "FEATURE": { "KIND": { CONFIG } } }
각 항목의 의미는 다음과 같습니다.
FEATURE는 슬라이스를 만들 특성입니다. 예를 들면
age
입니다.KIND는 다음 중 하나입니다.
value
value
는 특성의 단일 값에 대한 단일 슬라이스를 만듭니다. 키가float_value
또는string_value
인 키-값 쌍으로 CONFIG를 지정합니다. 예를 들면"float_value": 1.0
입니다.다음 구성 예시에서는
1
의age
를 포함하는 단일 슬라이스 포함 데이터를 만듭니다.{ "age": { "value": { "float_value": 1.0 } } }
range
range
는 지정된 범위 내의 데이터를 포함하는 단일 슬라이스를 만듭니다. 키가low
및high
인 두 개의 키-값 쌍으로 CONFIG를 지정합니다.다음 예시 구성은
age
가1
과3
사이의 값인 단일 슬라이스를 만듭니다.{ "age": { "range": { "low": 1, "high": 3 } } }
all_values
all_values
는 특성의 가능한 각 라벨별로 슬라이스를 만듭니다. CONFIG를"value": true
로 지정합니다.다음 구성 예시에서는
"dog"
,"cat"
,"rabbit"
에 각각 하나씩 3개의 슬라이스를 만듭니다.{ "species": { "all_values": { "value": true } } }
여러 특성을 사용하여 슬라이스를 하나 이상 만들 수도 있습니다.
다음 구성에서는 age
가 1
과 3
사이이고 species
가 "dog"
인 단일 슬라이스 포함 데이터를 만듭니다.
{ "age": { "range": { "low": 1, "high": 3 } }, "species": { "value": { "string_value": "dog" } } }
다음 구성에서는 데이터 세트의 각 고유 종마다 하나씩 여러 개의 슬라이스를 만듭니다. 여기서 age
는 1
입니다.
{ "species": { "all_values": { "value": true } }, "age": { "value": { "float_value": 1.0 } } }
결과 슬라이스에는 예시 데이터 세트의 다음 데이터가 포함됩니다.
슬라이스 1:
age:1
및species:"dog"
슬라이스 2:
age:1
및species:"cat"
슬라이스 3:
age:1
및species:"rabbit"
슬라이스 형식 지정
ModelEvaluationClassificationOp
구성요소의 슬라이스 형식을 지정하려면 다음을 수행합니다.
slicing_spec
를 만듭니다. 예를 들면 다음과 같습니다.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') ) })
슬라이스 구성을 저장할 목록을 만듭니다. 예를 들면 다음과 같습니다.
slicing_specs = []
각
slicing_spec
의 형식을 JSON 또는 사전으로 지정합니다. 예를 들면 다음과 같습니다.slicing_spec_json = json_format.MessageToJson(slicing_spec) slicing_spec_dict = json_format.MessageToDict(slicing_spec)
각
slicing_spec
를 목록으로 결합합니다. 예를 들면 다음과 같습니다.slicing_specs.append(slicing_spec_json)
slicing_specs
를 매개변수로ModelEvaluationClassificationOp
구성요소에 전달합니다. 예를 들면 다음과 같습니다.ModelEvaluationClassificationOp(slicing_specs=slicing_specs)
공정성 측정항목 구성 슬라이스의 형식 지정
모델의 공정성을 평가하려면 다음 구성요소를 사용하세요.
DetectDataBiasOp
: 구성요소에 전달되는 슬라이스에 대한 데이터 편향 측정항목을 반환합니다.DetectModelBiasOp
: 구성요소에 전달되는 슬라이스에 대한 모델 편향 측정항목을 반환합니다.
DetectDataBiasOp
및 DetectModelBiasOp
구성요소의 슬라이스 형식을 지정하려면 다음을 수행합니다.
BiasConfig
를 만듭니다. 예를 들면 다음과 같습니다.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') ) }))
편향 구성을 저장할 목록을 만듭니다. 예를 들면 다음과 같습니다.
bias_configs = []
각
bias_config
의 형식을 JSON 또는 사전으로 지정합니다. 예를 들면 다음과 같습니다.bias_config_json = json_format.MessageToJson(bias_config) bias_config_dict = json_format.MessageToDict(bias_config)
각
bias_config
를 목록으로 결합합니다. 예를 들면 다음과 같습니다.bias_configs.append(bias_config_json)
bias_configs
를 매개변수로DetectDataBiasOp
또는DetectModelBiasOp
구성요소에 전달합니다. 예를 들면 다음과 같습니다.DetectDataBiasOp(bias_configs=bias_configs) DetectModelBiasOp(bias_configs=bias_configs)
필수 입력 매개변수
모델 평가 구성요소의 필수 입력 매개변수는 평가하는 모델 유형에 따라 다릅니다.
AutoML 모델
AutoML 모델을 학습시킬 때 Vertex AI는 기본 스키마를 사용합니다. 모델 평가 구성요소의 일부 입력 매개변수는 기본이 아닌 스키마를 사용하여 모델을 학습시키는 경우에만 필요합니다.
다음 Cloud Storage 위치에서 스키마 파일을 보고 다운로드할 수 있습니다.
gs://google-cloud-aiplatform/schema/modelevaluation/
다음 탭에서는 일괄 예측 출력 파일의 예시와 각 모델 유형의 필수 입력 매개변수를 보여줍니다.
테이블 형식
분류
기본 스키마에는 다음 필드가 포함됩니다.
scores
: 배열classes
: 배열
다음은 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"] } }
다음 표에서는 테이블 형식 모델을 사용하는 ModelEvaluationClassificationOp
구성요소에 필요한 매개변수를 설명합니다.
평가 구성요소 매개변수 | 필수 |
---|---|
target_field_name |
예 |
prediction_label_column |
기본 스키마에서는 필요하지 않습니다. 기본이 아닌 스키마에는 prediction.classes 을 사용합니다. |
prediction_score_column |
기본 스키마에서는 필요하지 않습니다. 기본이 아닌 스키마에는 prediction.scores 을 사용합니다. |
evaluation_class_labels |
기본 스키마에서는 필요하지 않습니다. 기본이 아닌 스키마에는 ["0","1"] 를 사용합니다. |
회귀
기본 스키마에는 다음 필드가 포함됩니다.
value
: 부동 소수점lower_bound
: 부동 소수점upper_bound
: 부동 소수점
다음은 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 } }
다음 표에서는 테이블 형식 모델을 사용하는 ModelEvaluationRegressionOp
구성요소에 필요한 매개변수를 설명합니다.
평가 구성요소 매개변수 | 필수 |
---|---|
target_field_name |
예 |
prediction_label_column |
회귀 모델에서는 필요하지 않습니다. |
prediction_score_column |
기본 스키마에서는 필요하지 않습니다. 기본이 아닌 스키마에는 prediction.value 를 사용합니다. |
evaluation_class_labels |
회귀 모델에서는 필요하지 않습니다. |
예측
테이블 형식 예측 모델의 경우 BatchPredictionJob
구성요소를 사용하려면 데이터 세트에서 대상 열(정답)을 제외해야 합니다.
기본 스키마에는 다음 필드가 포함됩니다.
id
: 문자열displayNames
: 문자열type
: 열거형timeSegmentStart
: 문자열timeSegmentEnd
: 문자열confidence
: 부동 소수점
다음은 sale_dollars
가 타겟 열로 포함된 CSV 파일의 예시입니다.
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
TargetFieldDataRemoverOp
구성요소는 파일을 BatchPredictionJob
구성요소로 보내기 전에 타겟 열을 삭제합니다.
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
다음은 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] } }
다음 표에서는 테이블 형식 모델을 사용하는 ModelEvaluationForecastingOp
구성요소에 필요한 매개변수를 설명합니다.
평가 구성요소 매개변수 | 필수 |
---|---|
target_field_name |
예 |
prediction_label_column |
예측 모델에서는 필요하지 않습니다. |
prediction_score_column |
기본 스키마에서는 필요하지 않습니다. 기본이 아닌 스키마에는 "prediction.value" 을 사용합니다. |
evaluation_class_labels |
예측 모델에서는 필요하지 않습니다. |
ground_truth_gcs_source |
예: 타겟 열이 있는 원본 데이터 세트에 대한 Cloud Storage 링크 |
ground_truth_format |
예: 원본 데이터 세트의 형식. 예를 들면 "jsonl" , "csv" 또는 "bigquery" 입니다. |
텍스트
분류
텍스트 분류 모델의 경우 BatchPredictionJob
구성요소를 사용하려면 데이터 세트에서 타겟 열(정답)을 제외해야 합니다. 더욱 효율적인 워크플로를 위해 TargetFieldDataRemoverOp
구성요소를 사용할 수 있습니다.
기본 스키마에는 다음 필드가 포함됩니다.
ids
: 문자열 배열displayName
: 문자열 배열confidence
: 부동 소수점 배열
다음은 label
이 타겟 열로 포함된 데이터 세트의 예시입니다.
{ "content": "gs://kbn-us-central1-test/datasets/text/happy_0.txt", "mimeType": "text/plain", "label": "affection" }
TargetFieldDataRemoverOp
구성요소는 파일을 BatchPredictionJob
구성요소로 보내기 전에 타겟 열을 삭제합니다.
{ "content": "gs://kbn-us-central1-test/datasets/text/happy_0.txt", "mimeType": "text/plain" }
다음은 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] } }
다음 표에서는 텍스트 모델을 사용하는 ModelEvaluationClassificationOp
구성요소에 필요한 매개변수를 설명합니다.
평가 구성요소 매개변수 | 필수 |
---|---|
target_field_name |
예 |
prediction_label_column |
기본 스키마에서는 필요하지 않습니다. 기본이 아닌 스키마에는 "prediction.displayNames" 을 사용합니다. |
prediction_score_column |
기본 스키마에서는 필요하지 않습니다. 기본이 아닌 스키마에는 "prediction.confidences" 를 사용합니다. |
evaluation_class_labels |
기본 스키마에 또는 prediction_label_column 를 제공할 때에는 필요하지 않습니다. |
ground_truth_gcs_source |
예: 타겟 열이 있는 원본 데이터 세트에 대한 Cloud Storage 링크 |
ground_truth_format |
예: 원본 데이터 세트의 형식. 예를 들면 "jsonl" , "csv" 또는 "bigquery" 입니다. |
동영상
분류
동영상 분류 모델의 경우 BatchPredictionJob
구성요소를 사용하려면 데이터 세트에서 타겟 열(정답)을 제외해야 합니다. 더욱 효율적인 워크플로를 위해 TargetFieldDataRemoverOp
구성요소를 사용할 수 있습니다.
기본 스키마에는 다음 필드가 포함됩니다.
id
: 문자열displayName
: 문자열type
: 열거형timeSegmentStart
: 문자열timeSegmentEnd
: 문자열confidence
: 부동 소수점
다음은 ground_truth
이 타겟 열로 포함된 데이터 세트의 예시입니다.
{ "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" }
TargetFieldDataRemoverOp
구성요소는 파일을 BatchPredictionJob
구성요소로 보내기 전에 타겟 열을 삭제합니다.
{ "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" }
다음은 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 } ] }
다음 표에서는 동영상 모델을 사용하는 ModelEvaluationClassificationOp
구성요소에 필요한 매개변수를 설명합니다.
평가 구성요소 매개변수 | 필수 |
---|---|
target_field_name |
예 |
prediction_label_column |
기본 스키마에서는 필요하지 않습니다. 기본이 아닌 스키마에는 "prediction.displayName" 을 사용합니다. |
prediction_score_column |
기본 스키마에서는 필요하지 않습니다. 기본이 아닌 스키마에는 "prediction.confidence" 를 사용합니다. |
evaluation_class_labels |
기본 스키마가 사용되거나 prediction_label_column 이 제공되는 경우에는 필요하지 않습니다. |
ground_truth_gcs_source |
예: 타겟 열이 있는 원본 데이터 세트에 대한 Cloud Storage 링크 |
ground_truth_format |
예: 원본 데이터 세트의 형식. 예를 들면 "jsonl" , "csv" 또는 "bigquery" 입니다. |
커스텀 학습 모델
커스텀 학습 모델의 경우 BatchPredictionJob
구성요소를 사용하려면 데이터 세트에서 타겟 열(정답)을 제외해야 합니다. 더욱 효율적인 워크플로를 위해 TargetFieldDataRemoverOp
구성요소를 사용할 수 있습니다.
다음 예시에서는 커스텀 학습 테이블 형식 분류 모델의 일괄 예측 출력 파일과 필수 입력 매개변수를 보여줍니다.
테이블 형식
분류
일반적인 스키마에는 다음 필드가 포함됩니다.
instance
: 모델 학습 데이터 세트 열과 순서가 동일한 입력 데이터 배열prediction
: 모델 학습 데이터 세트 열과 순서가 동일한 입력 데이터 배열
다음은 species
가 타겟 열로 포함된 CSV 데이터 세트의 예시입니다.
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
TargetFieldDataRemoverOp
구성요소는 파일을 일괄 예측 구성요소로 보내기 전에 타겟 열을 삭제합니다.
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
다음은 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] }
다음 표에서는 동영상 모델을 사용하는 ModelEvaluationClassificationOp
구성요소에 필요한 매개변수를 설명합니다.
평가 구성요소 매개변수 | 필수 |
---|---|
target_field_name |
예 |
prediction_label_column |
비어 있어야 합니다. 이 열은 커스텀 학습 모델에 존재하지 않습니다. |
prediction_score_column |
기본 스키마에는 필요하지 않지만 JSONL , CSV 또는 BIGQUERY 형식에는 자동으로 설정됩니다. |
evaluation_class_labels |
예. 출력 예측 배열과 길이가 같아야 합니다. |
ground_truth_gcs_source |
예: 타겟 열이 있는 원본 데이터 세트에 대한 Cloud Storage 링크 |
ground_truth_format |
예: 원본 데이터 세트의 형식. 예를 들면 "jsonl" , "csv" 또는 "bigquery" 입니다. |
Vertex AI 생성 일괄 예측이 없는 모델 평가
Vertex AI에서 생성하지 않은 일괄 예측에 모델 평가 파이프라인 구성요소를 사용할 수 있습니다. 하지만 모델 평가 파이프라인 구성요소 입력은 다음 프리픽스와 일치하는 파일이 포함된 일괄 예측 디렉터리여야 합니다.
prediction.results-
explanation.results-
predictions_
API 참조
구성요소 참조는 모델 평가 구성요소에 대한 Google Cloud 파이프라인 구성요소 SDK 참조 페이지를 확인하세요.
모델 평가 구성요소를 사용하는 방법의 예시는 평가 작성에 나열된 노트북을 참조하세요.
버전 기록 및 출시 노트
Google Cloud 파이프라인 구성요소 SDK의 버전 기록 및 변경사항을 자세히 알아보려면 Google Cloud 파이프라인 구성요소 SDK 출시 노트를 참조하세요.