בדף הזה מוסבר איך לבצע הערכה מבוססת-מודל של זוגות באמצעות AutoSxS, כלי שמריץ את שירות צינור ההערכה. במאמר הזה מוסבר איך להשתמש ב-AutoSxS באמצעות Agent Platform API, Agent Platform SDK for Python או מסוף Google Cloud .
AutoSxS
הערכה אוטומטית מקבילה (AutoSxS) היא כלי להערכה מבוססת-מודל של זוגות, שפועל דרך שירות צינור ההערכה. אפשר להשתמש ב-AutoSxS כדי להעריך את הביצועים של מודלים של AI גנרטיבי ב-Gemini Enterprise Agent Platform Model Registry או של תחזיות שנוצרו מראש. כך אפשר לתמוך במודלים בסיסיים של Gemini Enterprise Agent Platform, במודלים של AI גנרטיבי שעברו כוונון ובמודלים של שפה של צד שלישי. ב-AutoSxS נעשה שימוש בבוחן אוטומטי כדי להחליט איזה מודל מספק את התשובה הטובה יותר להנחיה. הוא זמין לפי דרישה ומעריך מודלים של שפה עם ביצועים דומים לאלה של מעריכים אנושיים.
הבודק האוטומטי
בצורה כללית, התרשים מראה איך AutoSxS משווה את התחזיות של מודל א' ומודל ב' למודל שלישי, הדירוג האוטומטי.
מודל A ומודל B מקבלים הנחיות קלט, וכל מודל יוצר תשובות שנשלחות למעריך האוטומטי. בדומה למעריך אנושי, מעריך אוטומטי הוא מודל שפה שמעריך את איכות התשובות של המודל בהינתן הנחיית הסקה מקורית. באמצעות AutoSxS, המדרג האוטומטי משווה את האיכות של שתי תשובות של מודלים בהתאם להוראות ההסקה שניתנו להם, באמצעות קבוצה של קריטריונים. הקריטריונים משמשים כדי לקבוע איזה מודל השיג את הביצועים הכי טובים, על ידי השוואה בין התוצאות של מודל א' לבין התוצאות של מודל ב'. הכלי לדירוג אוטומטי מפיק העדפות תגובה כמדדים מצטברים, ומפיק הסברים להעדפות וציוני מהימנות לכל דוגמה. מידע נוסף זמין בטבלת השיפוט.
מודלים נתמכים
הכלי AutoSxS תומך בהערכה של כל מודל כשמספקים לו תחזיות שנוצרו מראש. AutoSxS תומך גם ביצירת תשובות אוטומטית לכל מודל ב-Gemini Enterprise Agent Platform Model Registry שתומך בחיזוי אצווה ב-Gemini Enterprise Agent Platform.
אם מודל הטקסט שלכם לא נתמך על ידי מאגר המודלים של פלטפורמת הסוכנים של Gemini Enterprise, כלי AutoSxS מקבל גם תחזיות שנוצרו מראש ומאוחסנות כ-JSONL ב-Cloud Storage או בטבלת BigQuery. למידע על תמחור, אפשר לעיין במאמר בנושא יצירת טקסט.
משימות וקריטריונים נתמכים
הכלי AutoSxS תומך בהערכת מודלים למשימות של סיכום ומענה לשאלות. קריטריוני ההערכה מוגדרים מראש לכל משימה, מה שהופך את הערכת השפה לאובייקטיבית יותר ומשפר את איכות התשובות.
הקריטריונים מפורטים לפי משימה.
סיכום
המשימה summarization מוגבלת ל-4,096 טוקנים של קלט.
רשימת קריטריוני ההערכה של summarization:
| קריטריונים | |
|---|---|
| 1. פועל לפי ההוראות | באיזו מידה התשובה של המודל מעידה על הבנה של ההוראה שבהנחיה? |
| 2. Grounded | האם התשובה כוללת רק מידע מהקשר של ההיסק וההוראה להיסק? |
| 3. מקיף | באיזו מידה המודל מתעד פרטים חשובים בסיכום? |
| 4. תקציר | האם הסיכום מפורט מדי? האם היא כוללת שפה ציורית? האם הוא תמציתי מדי? |
תשובה לשאלה
למשימה question_answering יש מגבלה של 4,096 טוקנים לקלט.
רשימת קריטריוני ההערכה של question_answering:
| קריטריונים | |
|---|---|
| 1. התשובה לשאלה מלאה | התשובה מתייחסת לשאלה באופן מלא. |
| 2. Grounded | האם התשובה כוללת רק מידע מההקשר של ההוראה ומהוראת ההיסק? |
| 3. רלוונטיות | האם תוכן התשובה קשור לשאלה? |
| 4. מקיף | באיזו מידה המודל כולל פרטים חשובים בשאלה? |
הכנת מערך נתונים להערכה עבור AutoSxS
בקטע הזה מפורטים הנתונים שצריך לספק במערך הנתונים של הערכת AutoSxS, ומוצגות שיטות מומלצות ליצירת מערך הנתונים. הדוגמאות צריכות לשקף קלט מהעולם האמיתי שהמודלים שלכם עשויים להיתקל בו בסביבת הייצור, ולהמחיש בצורה הטובה ביותר את ההתנהגות של המודלים הפעילים שלכם.
פורמט מערך הנתונים
AutoSxS מקבל מערך נתונים יחיד להערכה עם סכימה גמישה. מערך הנתונים יכול להיות טבלה ב-BigQuery או מאוחסן כ-JSON Lines ב-Cloud Storage.
כל שורה בקבוצת הנתונים של ההערכה מייצגת דוגמה אחת, והעמודות הן אחת מהאפשרויות הבאות:
- עמודות של מזהים: משמשות לזיהוי של כל דוגמה ייחודית.
- עמודות נתונים: משמשות למילוי תבניות של הנחיות. פרמטרים של הנחיות
- תחזיות שנוצרו מראש: תחזיות שנוצרו על ידי אותו מודל באמצעות אותה הנחיה. שימוש בחיזויים שנוצרו מראש חוסך זמן ומשאבים.
- העדפות אנושיות מסוג אמת קרקע (ground truth): משמשות להשוואה בין AutoSxS לבין נתוני ההעדפות מסוג אמת קרקע שלכם, כשמספקים תחזיות שנוצרו מראש לשני המודלים.
זוהי דוגמה למערך נתונים של הערכה שבו context ו-question הן עמודות נתונים, ו-model_b_response מכילה תחזיות שנוצרו מראש.
context |
question |
model_b_response |
|---|---|---|
| יש אנשים שחושבים שפלדה או טיטניום הם החומרים הכי קשים, אבל למעשה יהלום הוא החומר הכי קשה. | מהו החומר הכי קשה? | יהלום הוא החומר הכי קשה. הוא קשה יותר מפלדה או מטיטניום. |
מידע נוסף על הפעלת AutoSxS זמין במאמר ביצוע הערכה של מודל. פרטים על אורך הטוקן מופיעים במאמר בנושא משימות נתמכות וקריטריונים. הוראות להעלאת נתונים ל-Cloud Storage מופיעות במאמר העלאת מערך נתוני הערכה ל-Cloud Storage.
פרמטרים של הנחיות
הרבה מודלים של שפה מקבלים פרמטרים של הנחיה כקלט במקום מחרוזת הנחיה אחת. לדוגמה, chat-bison מקבל כמה פרמטרים של הנחיה (messages, examples, context), שמרכיבים חלקים מההנחיה. עם זאת, text-bison
יש רק פרמטר הנחיה אחד, בשם prompt, שמכיל את כל ההנחיה.
אנחנו מסבירים איך אפשר לציין באופן גמיש פרמטרים של הנחיות למודל בזמן ההסקה וההערכה. התכונה AutoSxS מאפשרת לכם להפעיל מודלים של שפה עם פרמטרים שונים של פרומפטים באמצעות תבניות.
הסקת מסקנות
אם לאף אחד מהמודלים אין תחזיות שנוצרו מראש, AutoSxS משתמש בתחזיות אצווה של פלטפורמת הסוכנים של Gemini Enterprise כדי ליצור תשובות. צריך לציין את פרמטרי ההנחיה של כל מודל.
ב-AutoSxS, אפשר לספק עמודה אחת במערך נתוני ההערכה כפרמטר של הנחיה.
{'some_parameter': {'column': 'my_column'}}
אפשרות נוספת היא להגדיר תבניות באמצעות עמודות ממערך הנתונים של ההערכה כמשתנים, כדי לציין פרמטרים של הנחיה:
{'some_parameter': {'template': 'Summarize the following: {{ my_column }}.'}}
כשמספקים פרמטרים של הנחיה למודל לצורך הסקה, המשתמשים יכולים להשתמש במילת המפתח המוגנת default_instruction כארגומנט של תבנית, שמוחלף בהוראת ההסקה שמוגדרת כברירת מחדל למשימה הנתונה:
model_prompt_parameters = {
'prompt': {'template': '{{ default_instruction }}: {{ context }}'},
}
אם יוצרים חיזויים, צריך לספק פרמטרים של הנחיית המודל ועמודת פלט. דוגמאות:
Gemini
במודלים של Gemini, המפתחות של פרמטרים להנחיות למודל הם contents (נדרש) ו-system_instruction (אופציונלי), בהתאם לסכימת גוף הבקשה של Gemini.
model_a_prompt_parameters={
'contents': {
'column': 'context'
},
'system_instruction': {'template': '{{ default_instruction }}'},
},
text-bison
לדוגמה, text-bison משתמש ב'הנחיה' לקלט וב'תוכן' לפלט. כך עושים את זה:
- מזהים את הקלטים והפלטים שדרושים למודלים שנבדקים.
- מגדירים את הקלטים כפרמטרים של הנחיית המודל.
- העברת הפלט לעמודת התשובות.
model_a_prompt_parameters={
'prompt': {
'template': {
'Answer the following question from the point of view of a college professor: {{ context }}\n{{ question }}'
},
},
},
response_column_a='content', # Column in Model A response.
response_column_b='model_b_response', # Column in eval dataset.
הערכה
כמו שצריך לספק פרמטרים להנחיה כדי להסיק מסקנות, צריך לספק פרמטרים להנחיה גם כדי לבצע הערכה. הפרמטרים הבאים נדרשים כדי להשתמש ב-autorater:
| פרמטר הנחיה של Autorater | ניתן להגדרה על ידי המשתמש? | תיאור | דוגמה |
|---|---|---|---|
| הוראה למעריך האוטומטי | לא | הוראה מכוילת שמתארת את הקריטריונים שבודק התשובות האוטומטי צריך להשתמש בהם כדי לשפוט את התשובות שניתנו. | בוחרים את התגובה שעונה על השאלה ופועלת לפי ההוראות בצורה הטובה ביותר. |
| הוראה בנושא הסקה | כן | תיאור של המשימה שכל מודל מועמד צריך לבצע. | עונים על השאלה בצורה מדויקת: מהו החומר הכי קשה? |
| הקשר של ההסקה | כן | הקשר נוסף למשימה שמבצעים. | גם טיטניום וגם יהלום קשים יותר מנחושת, אבל ליהלום יש דירוג קשיות של 98, ולטיטניום יש דירוג של 36. דירוג גבוה יותר מציין קשיות גבוהה יותר. |
| תשובות | לא1 | זוג תשובות להערכה, אחת מכל מודל מועמד. | יהלום |
1 אפשר להגדיר את פרמטר ההנחיה רק באמצעות תגובות שנוצרו מראש.
קוד לדוגמה עם הפרמטרים:
autorater_prompt_parameters={
'inference_instruction': {
'template': 'Answer the following question from the point of view of a college professor: {{ question }}.'
},
'inference_context': {
'column': 'context'
}
}
יכול להיות שלמודלים א' וב' יהיו הוראות הקשר וההסקה בפורמט שונה, גם אם מספקים להם את אותו מידע. כלומר, המערכת לדירוג אוטומטי מקבלת הקשר והוראה נפרדים אבל יחידים להסקת מסקנות.
דוגמה לקבוצת נתונים להערכה
בקטע הזה מופיעה דוגמה למערך נתונים להערכת משימות של שאלות ותשובות, כולל תחזיות שנוצרו מראש עבור מודל ב'. בדוגמה הזו, AutoSxS מבצע הסקה רק עבור מודל A. אנחנו מספקים עמודה id כדי להבדיל בין דוגמאות עם אותה שאלה והקשר.
{
"id": 1,
"question": "What is the hardest material?",
"context": "Some might think that steel is the hardest material, or even titanium. However, diamond is actually the hardest material.",
"model_b_response": "Diamond is the hardest material. It is harder than steel or titanium."
}
{
"id": 2,
"question": "What is the highest mountain in the world?",
"context": "K2 and Everest are the two tallest mountains, with K2 being just over 28k feet and Everest being 29k feet tall.",
"model_b_response": "Mount Everest is the tallest mountain, with a height of 29k feet."
}
{
"id": 3,
"question": "Who directed The Godfather?",
"context": "Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The Godfather, and the latter directed it as well.",
"model_b_response": "Francis Ford Coppola directed The Godfather."
}
{
"id": 4,
"question": "Who directed The Godfather?",
"context": "Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The Godfather, and the latter directed it as well.",
"model_b_response": "John Smith."
}
שיטות מומלצות
כדאי לפעול לפי השיטות המומלצות הבאות כשמגדירים את מערך הנתונים להערכה:
- לספק דוגמאות שמייצגות את סוגי הקלט שהמודלים מעבדים בסביבת הייצור.
- מערך הנתונים צריך לכלול לפחות דוגמה אחת להערכה. מומלץ להשתמש בכ-100 דוגמאות כדי להבטיח מדדים מצטברים באיכות גבוהה. קצב השיפורים באיכות המדדים המצטברים נוטה לרדת כשמספקים יותר מ-400 דוגמאות.
- במאמר עיצוב הנחיות טקסט מוסבר איך לכתוב הנחיות.
- אם אתם משתמשים בתחזיות שנוצרו מראש עבור אחד מהמודלים, צריך לכלול את התחזיות שנוצרו מראש בעמודה של קבוצת הנתונים של הבדיקה. הצגת חיזויים שנוצרו מראש היא שימושית, כי היא מאפשרת להשוות את הפלט של מודלים שלא נמצאים במאגר המודלים של Vertex, ומאפשרת לעשות שימוש חוזר בתשובות.
ביצוע הערכת מודל
אפשר להעריך מודלים באמצעות REST API, Agent Platform SDK for Python אוGoogle Cloud המסוף.
משתמשים בתחביר הזה כדי לציין את הנתיב למודל:
- מודל בעל התוכן הדיגיטלי:
publishers/PUBLISHER/models/MODELדוגמה:publishers/google/models/text-bison מודל שעבר התאמה:
projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL@VERSIONדוגמה:projects/123456789012/locations/us-central1/models/1234567890123456789
REST
כדי ליצור משימת הערכת מודל, שולחים בקשת POST באמצעות השיטה pipelineJobs.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PIPELINEJOB_DISPLAYNAME : השם המוצג של
pipelineJob. - PROJECT_ID : Google Cloud הפרויקט שמריץ את רכיבי הצינור.
- LOCATION : האזור שבו יופעלו רכיבי צינור עיבוד הנתונים. יש תמיכה ב-
us-central1. - OUTPUT_DIR : ה-URI של Cloud Storage שבו מאוחסן פלט ההערכה.
- EVALUATION_DATASET : טבלה ב-BigQuery או רשימה מופרדת בפסיקים של נתיבים ב-Cloud Storage למערך נתונים בפורמט JSONL שמכיל דוגמאות להערכה.
- TASK : משימת הערכה, שיכולה להיות אחת מהאפשרויות הבאות:
[summarization, question_answering]. - ID_COLUMNS : עמודות שמבחינות בין דוגמאות ייחודיות של הערכה.
- AUTORATER_PROMPT_PARAMETERS : פרמטרים של הנחיה לדירוג אוטומטי שממופים לעמודות או לתבניות. הפרמטרים הצפויים הם:
inference_instruction(פרטים על אופן ביצוע המשימה) ו-inference_context(תוכן שאליו מתייחסים כדי לבצע את המשימה). לדוגמה,{'inference_context': {'column': 'my_prompt'}}משתמש בעמודה `my_prompt` של מערך הנתונים של ההערכה בשביל ההקשר של הכלי לדירוג אוטומטי. - RESPONSE_COLUMN_A : שם העמודה בנתוני ההערכה שמכילה תחזיות מוגדרות מראש, או שם העמודה בפלט של מודל א' שמכילה תחזיות. אם לא מציינים ערך, המערכת תנסה להסיק את שם העמודה הנכון של פלט המודל.
- RESPONSE_COLUMN_B : השם של עמודה במערך נתוני ההערכה שמכילה תחזיות מוגדרות מראש, או השם של עמודה בפלט של מודל ב' שמכילה תחזיות. אם לא מציינים ערך, המערכת תנסה להסיק את שם העמודה הנכון של פלט המודל.
- MODEL_A (אופציונלי): שם משאב מלא של מודל (
projects/{project}/locations/{location}/models/{model}@{version}) או שם משאב של מודל של בעל תוכן דיגיטלי (publishers/{publisher}/models/{model}). אם מציינים תגובות של מודל א', אין צורך לספק את הפרמטר הזה. - MODEL_B (אופציונלי): שם משאב מלא של מודל (
projects/{project}/locations/{location}/models/{model}@{version}) או שם משאב של מודל של בעל תוכן דיגיטלי (publishers/{publisher}/models/{model}). אם מציינים תגובות של מודל B, אין לספק את הפרמטר הזה. - MODEL_A_PROMPT_PARAMETERS (אופציונלי): פרמטרים של תבנית ההנחיה של מודל א' שממופים לעמודות או לתבניות. אם התשובות של מודל א' מוגדרות מראש, אין צורך לספק את הפרמטר הזה. דוגמה:
{'prompt': {'column': 'my_prompt'}}משתמש בעמודהmy_promptשל מערך נתוני ההערכה עבור פרמטר ההנחיה שנקראprompt. - MODEL_B_PROMPT_PARAMETERS (אופציונלי): פרמטרים של תבנית ההנחיה של מודל ב' שממופים לעמודות או לתבניות. אם התשובות של מודל ב' מוגדרות מראש, אין צורך לספק את הפרמטר הזה. דוגמה:
{'prompt': {'column': 'my_prompt'}}משתמש בעמודהmy_promptשל מערך נתוני ההערכה עבור פרמטר ההנחיה שנקראprompt. - JUDGMENTS_FORMAT
(אופציונלי): הפורמט של פסיקות שייכתבו. יכול להיות
jsonl(ברירת מחדל),jsonאוbigquery. - BIGQUERY_DESTINATION_PREFIX: טבלה ב-BigQuery שאליה ייכתבו השיפוטים אם הפורמט שצוין הוא
bigquery.
תוכן בקשת JSON
{
"displayName": "PIPELINEJOB_DISPLAYNAME",
"runtimeConfig": {
"gcsOutputDirectory": "gs://OUTPUT_DIR",
"parameterValues": {
"evaluation_dataset": "EVALUATION_DATASET",
"id_columns": ["ID_COLUMNS"],
"task": "TASK",
"autorater_prompt_parameters": AUTORATER_PROMPT_PARAMETERS,
"response_column_a": "RESPONSE_COLUMN_A",
"response_column_b": "RESPONSE_COLUMN_B",
"model_a": "MODEL_A",
"model_a_prompt_parameters": MODEL_A_PROMPT_PARAMETERS,
"model_b": "MODEL_B",
"model_b_prompt_parameters": MODEL_B_PROMPT_PARAMETERS,
"judgments_format": "JUDGMENTS_FORMAT",
"bigquery_destination_prefix":BIGQUERY_DESTINATION_PREFIX,
},
},
"templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default"
}
משתמשים בטופס curl כדי לשלוח את הבקשה.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs"
תשובה
"state": "PIPELINE_STATE_PENDING",
"labels": {
"vertex-ai-pipelines-run-billing-id": "1234567890123456789"
},
"runtimeConfig": {
"gcsOutputDirectory": "gs://my-evaluation-bucket/output",
"parameterValues": {
"evaluation_dataset": "gs://my-evaluation-bucket/output/data.json",
"id_columns": [
"context"
],
"task": "question_answering",
"autorater_prompt_parameters": {
"inference_instruction": {
"template": "Answer the following question: {{ question }} }."
},
"inference_context": {
"column": "context"
}
},
"response_column_a": "",
"response_column_b": "response_b",
"model_a": "publishers/google/models/text-bison@002",
"model_a_prompt_parameters": {
"prompt": {
"template": "Answer the following question from the point of view of a college professor: {{ question }}\n{{ context }} }"
}
},
"model_b": "",
"model_b_prompt_parameters": {}
}
},
"serviceAccount": "123456789012-compute@developer.gserviceaccount.com",
"templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default",
"templateMetadata": {
"version": "sha256:7366b784205551ed28f2c076e841c0dbeec4111b6df16743fc5605daa2da8f8a"
}
}
Agent Platform SDK ל-Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Agent Platform SDK ל-Python. מידע נוסף על Python API מופיע במאמר Agent Platform SDK for Python API.
מידע נוסף על פרמטרים של צינורות זמין במאמרי העזרה בנושא רכיבי צינורות של Google Cloud.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PIPELINEJOB_DISPLAYNAME : השם המוצג של
pipelineJob. - PROJECT_ID : Google Cloud הפרויקט שמריץ את רכיבי הצינור.
- LOCATION : האזור שבו יופעלו רכיבי צינור עיבוד הנתונים. יש תמיכה ב-
us-central1. - OUTPUT_DIR : ה-URI של Cloud Storage שבו מאוחסן פלט ההערכה.
- EVALUATION_DATASET : טבלה ב-BigQuery או רשימה מופרדת בפסיקים של נתיבים ב-Cloud Storage למערך נתונים בפורמט JSONL שמכיל דוגמאות להערכה.
- TASK : משימת הערכה, שיכולה להיות אחת מהאפשרויות הבאות:
[summarization, question_answering]. - ID_COLUMNS : עמודות שמבחינות בין דוגמאות ייחודיות של הערכה.
- AUTORATER_PROMPT_PARAMETERS : פרמטרים של הנחיה לדירוג אוטומטי שממופים לעמודות או לתבניות. הפרמטרים הצפויים הם:
inference_instruction(פרטים על אופן ביצוע המשימה) ו-inference_context(תוכן שאליו מתייחסים כדי לבצע את המשימה). לדוגמה,{'inference_context': {'column': 'my_prompt'}}משתמש בעמודה `my_prompt` של מערך הנתונים של ההערכה בשביל ההקשר של הכלי לדירוג אוטומטי. - RESPONSE_COLUMN_A : שם העמודה בנתוני ההערכה שמכילה תחזיות מוגדרות מראש, או שם העמודה בפלט של מודל א' שמכילה תחזיות. אם לא מציינים ערך, המערכת תנסה להסיק את שם העמודה הנכון של פלט המודל.
- RESPONSE_COLUMN_B : השם של עמודה במערך נתוני ההערכה שמכילה תחזיות מוגדרות מראש, או השם של עמודה בפלט של מודל ב' שמכילה תחזיות. אם לא מציינים ערך, המערכת תנסה להסיק את שם העמודה הנכון של פלט המודל.
- MODEL_A (אופציונלי): שם משאב מלא של מודל (
projects/{project}/locations/{location}/models/{model}@{version}) או שם משאב של מודל של בעל תוכן דיגיטלי (publishers/{publisher}/models/{model}). אם מציינים תגובות של מודל א', אין צורך לספק את הפרמטר הזה. - MODEL_B (אופציונלי): שם משאב מלא של מודל (
projects/{project}/locations/{location}/models/{model}@{version}) או שם משאב של מודל של בעל תוכן דיגיטלי (publishers/{publisher}/models/{model}). אם מציינים תגובות של מודל B, אין לספק את הפרמטר הזה. - MODEL_A_PROMPT_PARAMETERS (אופציונלי): פרמטרים של תבנית ההנחיה של מודל א' שממופים לעמודות או לתבניות. אם התשובות של מודל א' מוגדרות מראש, אין צורך לספק את הפרמטר הזה. דוגמה:
{'prompt': {'column': 'my_prompt'}}משתמש בעמודהmy_promptשל מערך נתוני ההערכה עבור פרמטר ההנחיה שנקראprompt. - MODEL_B_PROMPT_PARAMETERS (אופציונלי): פרמטרים של תבנית ההנחיה של מודל ב' שממופים לעמודות או לתבניות. אם התשובות של מודל ב' מוגדרות מראש, אין צורך לספק את הפרמטר הזה. דוגמה:
{'prompt': {'column': 'my_prompt'}}משתמש בעמודהmy_promptשל מערך נתוני ההערכה עבור פרמטר ההנחיה שנקראprompt. - JUDGMENTS_FORMAT
(אופציונלי): הפורמט של פסיקות שייכתבו. יכול להיות
jsonl(ברירת מחדל),jsonאוbigquery. - BIGQUERY_DESTINATION_PREFIX: טבלה ב-BigQuery שאליה ייכתבו השיפוטים אם הפורמט שצוין הוא
bigquery.
import os
from google.cloud import aiplatform
parameters = {
'evaluation_dataset': 'EVALUATION_DATASET',
'id_columns': ['ID_COLUMNS'],
'task': 'TASK',
'autorater_prompt_parameters': AUTORATER_PROMPT_PARAMETERS,
'response_column_a': 'RESPONSE_COLUMN_A',
'response_column_b': 'RESPONSE_COLUMN_B',
'model_a': 'MODEL_A',
'model_a_prompt_parameters': MODEL_A_PROMPT_PARAMETERS,
'model_b': 'MODEL_B',
'model_b_prompt_parameters': MODEL_B_PROMPT_PARAMETERS,
'judgments_format': 'JUDGMENTS_FORMAT',
'bigquery_destination_prefix':
BIGQUERY_DESTINATION_PREFIX,
}
aiplatform.init(project='PROJECT_ID', location='LOCATION', staging_bucket='gs://OUTPUT_DIR')
aiplatform.PipelineJob(
display_name='PIPELINEJOB_DISPLAYNAME',
pipeline_root=os.path.join('gs://OUTPUT_DIR', 'PIPELINEJOB_DISPLAYNAME'),
template_path=(
'https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default'),
parameter_values=parameters,
).run()
המסוף
כדי ליצור משימת הערכה של מודל השוואתי באמצעות מסוף Google Cloud :
מתחילים עם מודל בסיסי של Google או משתמשים במודל שכבר קיים במאגר המודלים של Gemini Enterprise Agent Platform:
כדי להעריך מודל בסיס של Google:
עוברים אל Model Garden ב-Gemini Enterprise Agent Platform ובוחרים מודל שתומך בהשוואה בין זוגות, כמו
text-bison.לוחצים על הערכה.
בתפריט שמופיע, לוחצים על בחירה כדי לבחור גרסה של מודל.
אם עדיין אין לכם עותק של המודל, יכול להיות שיופיע חלונית עם האפשרות שמירת המודל, שבה תתבקשו לשמור עותק של המודל במאגר המודלים של פלטפורמת הסוכנים של Gemini Enterprise. מזינים שם של מודל ולוחצים על שמירה.
יופיע הדף Create Evaluation (יצירת הערכה). בשלב Evaluate Method (שיטת הערכה), בוחרים באפשרות Evaluate this model against another model (הערכת המודל הזה בהשוואה למודל אחר).
לוחצים על Continue.
כדי להעריך מודל קיים במאגר המודלים של Gemini Enterprise Agent Platform:
עוברים לדף Gemini Enterprise Agent Platform Model Registry:
לוחצים על שם המודל שרוצים להעריך. מוודאים שיש תמיכה בהערכה זוגית של סוג המודל. לדוגמה,
text-bison.בכרטיסייה הערכה, לוחצים על השוואה זה לצד זה.
לוחצים על יצירת הערכה של SxS.
בכל שלב בדף של יצירת ההערכה, מזינים את המידע הנדרש ולוחצים על המשך:
בשלב קבוצת נתונים להערכה, בוחרים יעד להערכה ומודל להשוואה למודל שנבחר. בוחרים מערך נתונים להערכה ומזינים את עמודות המזהים (עמודות התשובות).
בשלב Model settings (הגדרות המודל), מציינים אם רוצים להשתמש בתשובות של המודל שכבר נמצאות במערך הנתונים, או אם רוצים להשתמש ב-Gemini Enterprise Agent Platform Batch Prediction (חיזוי אצווה בפלטפורמת הסוכנים של Gemini Enterprise) כדי ליצור את התשובות. מציינים את עמודות התשובות לשני המודלים. באפשרות Gemini Enterprise Agent Platform Batch Prediction (חיזוי אצווה ב-Gemini Enterprise Agent Platform), אפשר לציין את הפרמטרים של ההנחיה למודל ההסקה.
בשלב הגדרות של כלי ההערכה האוטומטי, מזינים את הפרמטרים של ההנחיה לכלי ההערכה האוטומטי ואת מיקום הפלט של ההערכות.
לוחצים על התחלת ההערכה.
צפייה בתוצאות ההערכה
אפשר למצוא את תוצאות ההערכה ב-Agent Platform Pipelines. לשם כך, צריך לבדוק את הארטיפקטים הבאים שנוצרו על ידי צינור הנתונים AutoSxS:
- טבלת השיפוטים נוצרת על ידי בורר AutoSxS.
- מדדים נצברים נוצרים על ידי רכיב המדדים של AutoSxS.
- מדדים של התאמה להעדפות אנושיות מופקים על ידי רכיב המדדים AutoSxS.
פסקי דין
הכלי AutoSxS מפיק שיפוטים (מדדים ברמת הדוגמה) שעוזרים למשתמשים להבין את ביצועי המודל ברמת הדוגמה. השיפוטים כוללים את הפרטים הבאים:
- הנחיות להסקת מסקנות
- תשובות מהמודל
- החלטות של מערכת דירוג אוטומטית
- הסברים על הסיווג
- ציוני מהימנות
אפשר לכתוב את ההחלטות ב-Cloud Storage בפורמט JSONL או בטבלה ב-BigQuery עם העמודות הבאות:
| עמודה | תיאור |
|---|---|
| עמודות של מזהים | עמודות שמבחינות בין דוגמאות ייחודיות של הערכה. |
inference_instruction |
ההוראה ששימשה ליצירת תשובות המודל. |
inference_context |
ההקשר ששימש ליצירת תשובות לדוגמה. |
response_a |
התשובה של מודל א', בהינתן הוראות והקשר להסקת מסקנות. |
response_b |
התשובה של מודל ב', בהינתן הוראת הסקה והקשר. |
choice |
המודל עם התשובה הטובה יותר. הערכים האפשריים הם Model A, Model B או Error. Error מציין ששגיאה מנעה מהמערכת האוטומטית לקבוע איזו תשובה הייתה הכי טובה – של מודל א' או של מודל ב'. |
confidence |
ציון בין 0 ל-1, שמציין את רמת הביטחון של מערכת הדירוג האוטומטית בבחירה שלה. |
explanation |
הסיבה לבחירה של מערכת הדירוג האוטומטית. |
מדדים מצטברים
AutoSxS מחשב מדדים מצטברים (שיעור הניצחון) באמצעות טבלת השיפוט. אם לא מסופקים נתונים על העדפות של בני אדם, המערכת יוצרת את המדדים המצטברים הבאים:
| מדד | תיאור |
|---|---|
| שיעור הזכייה של מודל AutoRater A | אחוז הפעמים שבהן המדרג האוטומטי קבע שהתשובה של מודל א' הייתה טובה יותר. |
| שיעור הזכייה של מודל B של AutoRater | אחוז הפעמים שבהן המדרג האוטומטי קבע שהתשובה של מודל ב' הייתה טובה יותר. |
כדי להבין טוב יותר את שיעור הזכייה, כדאי לעיין בתוצאות לפי שורה ובהסברים של הכלי לדירוג אוטומטי כדי לבדוק אם התוצאות וההסברים תואמים לציפיות שלכם.
מדדים להתאמה להעדפות אנושיות
אם מספקים נתונים של העדפות אנושיות, AutoSxS מפיק את המדדים הבאים:
| מדד | תיאור | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| שיעור הזכייה של מודל AutoRater A | אחוז הפעמים שבהן המדרג האוטומטי קבע שהתשובה של מודל א' הייתה טובה יותר. | ||||||||||||||
| שיעור הזכייה של מודל B של AutoRater | אחוז הפעמים שבהן המדרג האוטומטי קבע שהתשובה של מודל ב' הייתה טובה יותר. | ||||||||||||||
| שיעור הזכייה של מודל A של העדפות אנושיות | אחוז הפעמים שבהן בני אדם קבעו שהתשובה של מודל א' הייתה טובה יותר. | ||||||||||||||
| שיעור הזכייה של מודל B בהעדפה אנושית | אחוז הפעמים שבהן אנשים החליטו שהתשובה של מודל ב' הייתה טובה יותר. | ||||||||||||||
| TP | מספר הדוגמאות שבהן גם המדרג האוטומטי וגם ההעדפות האנושיות הצביעו על כך שהתשובה של מודל א' הייתה טובה יותר. | ||||||||||||||
| FP | מספר הדוגמאות שבהן המערכת האוטומטית בחרה במודל א' כתשובה טובה יותר, אבל ההעדפה האנושית הייתה שמודל ב' נתן תשובה טובה יותר. | ||||||||||||||
| TN | מספר הדוגמאות שבהן גם המדרג האוטומטי וגם ההעדפות האנושיות היו שהתשובה של מודל ב' הייתה טובה יותר. | ||||||||||||||
| FN | מספר הדוגמאות שבהן המערכת האוטומטית לבדיקת איכות בחרה במודל ב' כתשובה טובה יותר, אבל ההעדפה האנושית הייתה שהתשובה של מודל א' הייתה טובה יותר. | ||||||||||||||
| דיוק | אחוז הזמן שבו הסיווג האוטומטי תאם לסיווגים של מדרגים אנושיים. | ||||||||||||||
| Precision | אחוז הזמן שבו גם המדרג האוטומטי וגם בודקים אנושיים חשבו שהתשובה של מודל א' הייתה טובה יותר, מתוך כל המקרים שבהם המדרג האוטומטי חשב שהתשובה של מודל א' הייתה טובה יותר. | ||||||||||||||
| Recall | אחוז המקרים שבהם גם המדרג האוטומטי וגם בודקים אנושיים חשבו שהתשובה של מודל א' הייתה טובה יותר, מתוך כל המקרים שבהם בודקים אנושיים חשבו שהתשובה של מודל א' הייתה טובה יותר. | ||||||||||||||
| F1 | הממוצע ההרמוני של הדיוק וההחזרה. | ||||||||||||||
| קאפה של כהן | מדד להסכמה בין המדרג האוטומטי לבין המדרגים האנושיים, שמתחשב בסיכוי להסכמה אקראית. כהן מציע את הפרשנות הבאה:
|
תרחישי שימוש ב-AutoSxS
ריכזנו כאן שלושה תרחישים לדוגמה שיעזרו לכם להבין איך להשתמש ב-AutoSxS.
השוואה בין מודלים
הערכה של מודל צד ראשון (1p) שעבר התאמה בהשוואה למודל צד ראשון (1p) להשוואה.
אפשר לציין שההסקה תפעל בשני המודלים בו-זמנית.
בדוגמת הקוד הזו מוערך מודל שעבר כוונון מתוך Vertex Model Registry בהשוואה למודל ייחוס מאותו מרשם.
# Evaluation dataset schema:
# my_question: str
# my_context: str
parameters = {
'evaluation_dataset': DATASET,
'id_columns': ['my_context'],
'task': 'question_answering',
'autorater_prompt_parameters': {
'inference_instruction': {'column': 'my_question'},
'inference_context': {'column': 'my_context'},
},
'model_a': 'publishers/google/models/text-bison@002',
'model_a_prompt_parameters': {QUESTION: {'template': '{{my_question}}\nCONTEXT: {{my_context}}'}},
'response_column_a': 'content',
'model_b': 'projects/abc/locations/abc/models/tuned_bison',
'model_b_prompt_parameters': {'prompt': {'template': '{{my_context}}\n{{my_question}}'}},
'response_column_b': 'content',
}
השוואה בין תחזיות
הערכה של מודל צד שלישי (3p) שעבר התאמה בהשוואה למודל צד שלישי (3p) להשוואה.
אפשר לדלג על ההסקה על ידי אספקת תשובות של המודל ישירות.
בדוגמת הקוד הזו מתבצעת הערכה של מודל צד שלישי שעבר התאמה, בהשוואה למודל צד שלישי להשוואה.
# Evaluation dataset schema:
# my_question: str
# my_context: str
# response_b: str
parameters = {
'evaluation_dataset': DATASET,
'id_columns': ['my_context'],
'task': 'question_answering',
'autorater_prompt_parameters':
'inference_instruction': {'column': 'my_question'},
'inference_context': {'column': 'my_context'},
},
'response_column_a': 'content',
'response_column_b': 'response_b',
}
בדיקת היישור
כל המשימות הנתמכות נמדדו באמצעות נתונים של בודקים אנושיים כדי לוודא שהתשובות של מערכת הדירוג האוטומטית תואמות להעדפות אנושיות. אם רוצים להשוות את AutoSxS לתרחישים לדוגמה שלכם, אפשר לספק נתונים של העדפות אנושיות ישירות ל-AutoSxS, והוא יפיק נתונים סטטיסטיים מצטברים של התאמה.
כדי לבדוק את ההתאמה למערך נתונים של העדפות אנושיות, אפשר לציין את שתי התוצאות (תוצאות החיזוי) בכלי לדירוג אוטומטי. אפשר גם לספק את תוצאות ההסקה.
בדוגמת הקוד הזו אפשר לוודא שהתוצאות וההסברים של הכלי לדירוג אוטומטי תואמים לציפיות שלכם.
# Evaluation dataset schema:
# my_question: str
# my_context: str
# response_a: str
# response_b: str
# actual: str
parameters = {
'evaluation_dataset': DATASET,
'id_columns': ['my_context'],
'task': 'question_answering',
'autorater_prompt_parameters': {
'inference_instruction': {'column': 'my_question'},
'inference_context': {'column': 'my_context'},
},
'response_column_a': 'response_a',
'response_column_b': 'response_b',
'human_preference_column': 'actual',
}
המאמרים הבאים
- מידע על הערכה של AI גנרטיבי
- מידע על הערכה אונליין באמצעות Gen AI Evaluation Service
- איך משפרים מודלים בסיסיים של שפה