בדף הזה מוסבר איך לבצע הערכה מבוססת-מודל של זוגות באמצעות AutoSxS, כלי שמריץ את שירות צינור ההערכה. אנחנו מסבירים איך אפשר להשתמש ב-AutoSxS דרך Vertex AI API, Vertex AI SDK ל-Python או Google Cloud המסוף.
AutoSxS
הערכה אוטומטית מקבילה (AutoSxS) היא כלי להערכה מבוססת-מודל של זוגות, שמופעל דרך שירות צינור ההערכה. אפשר להשתמש ב-AutoSxS כדי להעריך את הביצועים של מודלים של AI גנרטיבי במרשם המודלים של Vertex AI או של תחזיות שנוצרו מראש. כך אפשר לתמוך במודלים בסיסיים של Vertex AI, במודלים מכווננים של AI גנרטיבי ובמודלים של שפה של צד שלישי. ב-AutoSxS נעשה שימוש בבוחן אוטומטי כדי להחליט איזה מודל מספק את התשובה הטובה יותר להנחיה. הוא זמין על פי דרישה ומעריך מודלים של שפה עם ביצועים דומים לאלה של מעריכים אנושיים.
הערכת רמת הקושי
במבט מלמעלה, הדיאגרמה מראה איך AutoSxS משווה בין החיזויים של מודל א' ומודל ב' לבין מודל שלישי, הדירוג האוטומטי.
מודלים א' וב' מקבלים הנחיות קלט, וכל מודל יוצר תגובות שנשלחות למעריך האוטומטי. בדומה למעריך אנושי, מעריך אוטומטי הוא מודל שפה שמעריך את איכות התשובות של המודל בהינתן הנחיה מקורית להסקת מסקנות. באמצעות AutoSxS, המדרג האוטומטי משווה את האיכות של שתי תשובות של מודלים בהתאם להוראות ההיסק שלהם, באמצעות קבוצה של קריטריונים. הקריטריונים משמשים כדי לקבוע איזה מודל השיג את הביצועים הכי טובים, על ידי השוואה בין התוצאות של מודל א' לבין התוצאות של מודל ב'. הכלי לדירוג אוטומטי מפיק העדפות תגובה כמדדים מצטברים, ומפיק הסברים להעדפות וציוני מהימנות לכל דוגמה. מידע נוסף זמין בטבלת ההחלטות.
מודלים נתמכים
הכלי AutoSxS תומך בהערכה של כל מודל כשמספקים לו תחזיות שנוצרו מראש. בנוסף, AutoSxS תומך ביצירת תשובות אוטומטית לכל מודל במאגר המודלים של Vertex AI שתומך בחיזוי באצווה ב-Vertex AI.
אם מודל הטקסט שלכם לא נתמך על ידי Vertex AI Model Registry, כלי 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 מקבלת כמה פרמטרים של הנחיה (הודעות, דוגמאות, הקשר), שמרכיבים חלקים מההנחיה. עם זאת, text-bison
יש רק פרמטר הנחיה אחד, בשם prompt, שמכיל את כל ההנחיה.
אנחנו מסבירים איך אפשר לציין באופן גמיש פרמטרים של הנחיות למודל בזמן ההסקה וההערכה. התכונה AutoSxS מאפשרת לכם לקרוא למודלים של שפה עם פרמטרים של פרומפטים מבוססי-תבניות, עם מגוון של קלטים צפויים.
הסקת מסקנות
אם לאף אחד מהמודלים אין תחזיות שנוצרו מראש, AutoSxS משתמש בתחזיות אצווה של Vertex AI כדי ליצור תשובות. צריך לציין את פרמטרי ההנחיה של כל מודל.
ב-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 | ניתן להגדרה על ידי המשתמש? | תיאור | דוגמה |
|---|---|---|---|
| הוראה לדירוג אוטומטי | לא | הוראה מכוילת שמתארת את הקריטריונים שבודק האיכות האוטומטי צריך להשתמש בהם כדי לשפוט את התשובות שניתנו. | בוחרים את התגובה שעונה על השאלה ופועלת לפי ההוראות בצורה הטובה ביותר. |
| הוראה להסקת מסקנות | כן | תיאור של המשימה שכל מודל מועמד צריך לבצע. | עונים על השאלה בצורה מדויקת: מהו החומר הכי קשה? |
| הקשר של ההסקת מסקנות | כן | הקשר נוסף למשימה שמבוצעת. | גם טיטניום וגם יהלום הם חומרים קשים יותר מנחושת, אבל ליהלום יש דירוג קשיות של 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 Model Registry ולעשות שימוש חוזר בתשובות.
ביצוע הערכת מודל
אפשר להעריך מודלים באמצעות API בארכיטקטורת REST, Vertex AI SDK ל-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}). אם מציינים תגובות של מודל ב', אין לספק את הפרמטר הזה. - 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"
}
}
Vertex AI SDK ל-Python
הוראות להתקנה או לעדכון של Vertex AI SDK ל-Python מופיעות במאמר התקנה של Vertex AI SDK ל-Python. מידע נוסף על API בשפת Python מופיע במאמר Vertex AI SDK ל-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, או משתמשים במודל שכבר קיים ב-Vertex AI Model Registry:
כדי להעריך מודל בסיס של Google:
עוברים אל Vertex AI Model Garden ובוחרים מודל שתומך בהערכה זוגית, כמו
text-bison.לוחצים על הערכה.
בתפריט שמופיע, לוחצים על בחירה כדי לבחור גרסת מודל.
אם אין לכם עותק של המודל, יכול להיות שיופיע חלונית שמירת המודל עם בקשה לשמור עותק של המודל במרשם המודלים של Vertex AI. מזינים שם של מודל ולוחצים על שמירה.
יופיע הדף Create Evaluation (יצירת הערכה). בשלב Evaluate Method (שיטת הערכה), בוחרים באפשרות Evaluate this model against another model (הערכת המודל הזה בהשוואה למודל אחר).
לוחצים על Continue.
כדי להעריך מודל קיים במרשם המודלים של Vertex AI:
עוברים לדף מרשם המודלים של Vertex AI:
לוחצים על שם המודל שרוצים להעריך. מוודאים שיש תמיכה בהערכה זוגית של סוג המודל. לדוגמה,
text-bison.בכרטיסייה הערכה, לוחצים על השוואה זה לצד זה.
לוחצים על יצירת הערכה של השוואה צד לצד.
בכל שלב בדף של יצירת ההערכה, מזינים את המידע הנדרש ולוחצים על המשך:
בשלב קבוצת נתונים להערכה, בוחרים יעד להערכה ומודל להשוואה למודל שנבחר. בוחרים מערך נתונים להערכה ומזינים את עמודות המזהים (עמודות התשובות).
בשלב Model settings (הגדרות המודל), מציינים אם רוצים להשתמש בתשובות של המודל שכבר נמצאות במערך הנתונים, או אם רוצים להשתמש ב-Vertex AI Batch Prediction כדי ליצור את התשובות. מציינים את עמודות התשובות לשני המודלים. באפשרות Vertex AI Batch Prediction (חיזוי באצווה ב-Vertex AI), אפשר לציין את פרמטרים של הנחיה למודל הסקת המסקנות.
בשלב הגדרות של כלי ההערכה האוטומטי, מזינים את הפרמטרים של ההנחיה לכלי ההערכה האוטומטי ואת מיקום הפלט של ההערכות.
לוחצים על התחלת ההערכה.
צפייה בתוצאות ההערכה
תוצאות ההערכה מופיעות ב-Vertex AI 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
- איך משפרים מודלים בסיסיים של שפה