רכיבי הערכת המודל מקבלים כקלט את אמת הקרקע (ground truth) ואת התוצאות של חיזוי באצווה, ויוצרים מדדי הערכה. נתוני אמת קרקע (ground truth) הם נתונים ש"תויגו בצורה נכונה" על ידי בני אדם, ובדרך כלל הם מסופקים כשדה היעד בקבוצת הנתונים לבדיקה ששימשה לאימון המודל. מידע נוסף מופיע במאמר הערכת מודלים ב-Agent Platform.
ב-Agent Platform יש את הרכיבים הבאים להערכת מודלים:
תמיכה בסוגי מודלים
בטבלה הבאה מוצגים סוגי המודלים שנתמכים בכל רכיב להערכת מודלים:
| רכיב הערכת המודל | סוגי המודלים הנתמכים |
|---|---|
ModelEvaluationClassificationOp |
|
ModelEvaluationRegressionOp |
|
ModelEvaluationForecastingOp |
|
הסרת שדה היעד
בחלק מסוגי המודלים, הרכיב BatchPredictionJob דורש להחריג את עמודת היעד (אמת קרקע) ממערך הנתונים.
הגדרה ועיצוב של פרוסות בקבוצת נתונים בטבלה
פרוסה היא קבוצת משנה של נתונים בטבלה עם מאפיינים מסוימים. מדדים מחולקים לפרוסות מציעים מדדי הערכה מפורטים יותר למודלים של סיווג ב-AutoML Tabular ובאימון בהתאמה אישית.
לדוגמה, נניח שיש לנו קבוצת נתונים של אימוץ חיות מחמד, שבה מודל מאומן לחזות אם חיית מחמד תאומץ תוך שבוע. אפשר להסתכל על המדדים של כל מערך הנתונים, אבל אולי תרצו לראות מדדים שקשורים לסוג ולגיל של חיית המחמד. במילים אחרות, אתם רוצים לקבל את קבוצת המשנה הבאה של קבוצת הנתונים:
| תכונה | ערכים |
|---|---|
age (in years) |
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 |
species |
"כלב", "חתול", "ארנב" |
הניתוח המפורט הזה יכול לעזור לזהות איפה המודל עלול לטעות, או לוודא שהמודל פועל היטב בקבוצות משנה קריטיות של הנתונים.
הגדרת פרוסות
כדי להגדיר פרוסה, יוצרים קובץ JSON עם ההגדרות הבאות:
{
"FEATURE": {
"KIND": {
CONFIG
}
}
}
כאשר:
FEATURE הוא מאפיין שרוצים ליצור בשבילו פלח. לדוגמה,
age.KIND הוא אחד מהבאים:
valuevalueיוצרת פלח אחד על ערך אחד של מאפיין. מציינים את CONFIG כצמד מפתח/ערך, כשהמפתח הואfloat_valueאוstring_value. לדוגמה,"float_value": 1.0.בדוגמה הבאה, ההגדרה יוצרת פלח אחד שמכיל נתונים עם
ageשל1:{ "age": { "value": { "float_value": 1.0 } } }rangeהפונקציה
rangeיוצרת פלח אחד שכולל נתונים בטווח מסוים. מציינים את CONFIG כשני צמדי מפתח/ערך, כשהמפתחות הםlowו-high.בדוגמה הבאה, ההגדרה יוצרת פרוסה אחת שמכילה נתונים שבהם הערך של
ageהוא כל ערך בין1ל-3:{ "age": { "range": { "low": 1, "high": 3 } } }all_valuesall_valuesיוצרת פלח נפרד לכל תווית אפשרית של המאפיין. מציינים את CONFIG בתור"value": true.בדוגמה הבאה, ההגדרה יוצרת שלוש פרוסות – אחת לכל אחד מהערכים
"dog","cat"ו-"rabbit":{ "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, Gemini Enterprise Agent Platform משתמשת בסכימות שמוגדרות כברירת מחדל. חלק מהפרמטרים של הקלט לרכיבי הערכת המודל נדרשים רק אם השתמשתם בסכימה שאינה ברירת המחדל כדי לאמן את המודל.
אפשר לראות ולהוריד קובצי סכימה מהמיקום הבא ב-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: enumtimeSegmentStart: מחרוזתtimeSegmentEnd: מחרוזת-
confidence: מספר ממשי
הקובץ הבא הוא קובץ CSV לדוגמה עם sale_dollars בתור עמודת היעד:
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.
בדוגמה הבאה מוצגים קובץ פלט של חיזוי באצ' ופרמטרים נדרשים של קלט למודל סיווג טבלאי באימון מותאם אישית:
סיווג
הסכימה הטיפוסית כוללת את השדות הבאים:
-
instance: מערך של נתוני קלט באותו סדר כמו העמודות של קבוצת הנתונים לאימון המודל. -
prediction: מערך של נתוני קלט באותו סדר כמו העמודות של קבוצת הנתונים לאימון המודל.
הדוגמה הבאה היא של מערך נתונים ב-CSV עם species בתור עמודת היעד:
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". |
הערכות מודלים בלי חיזויים באצווה שנוצרו על ידי Agent Platform
אתם יכולים להשתמש ברכיב של צינור עיבוד נתונים להערכת מודלים עם חיזוי באצווה שלא יצרתם ב-Agent Platform. עם זאת, שימו לב שהקלט של רכיב צינור עיבוד הנתונים להערכת המודל חייב להיות ספריית חיזוי באצווה שמכילה קבצים שתואמים לתחיליות הבאות:
prediction.results-explanation.results-predictions_
מאמרי העזרה של ה-API
למידע נוסף על הרכיבים, קראו את דף העזר שלGoogle Cloud SDK לרכיבי הערכת מודלים.
ב-Create an evaluation מפורטים ה-notebooks שבהם מוסבר איך להשתמש ברכיבים של Model Evaluation ב-Gemini Enterprise Agent Platform.
היסטוריית גרסאות ונתוני גרסה
למידע נוסף על היסטוריית הגרסאות והשינויים ב- Google Cloud Pipeline Components SDK, קראו את נתוני הגרסה שלGoogle Cloud Pipeline Components SDK.