אתם יכולים להעריך את הביצועים של מודלים בסיסיים ושל מודלים מכווננים של AI גנרטיבי ב-Vertex AI. המודלים מוערכים באמצעות קבוצה של מדדים ביחס למערך נתונים להערכה שאתם מספקים. בדף הזה מוסבר איך פועל שירות צינורות ההערכה לביצוע הערכה של מודלים שמבוססת על חישובים, איך ליצור ולעצב את מערך נתוני ההערכה ואיך לבצע את ההערכה באמצעות מסוף Google Cloud , Vertex AI API או Vertex AI SDK ל-Python.
איך פועלת הערכת מודלים שמבוססת על חישובים
כדי להעריך את הביצועים של מודל, קודם יוצרים קבוצת נתונים להערכה שמכילה זוגות של הנחיות ונתוני אמת. בכל זוג, ההנחיה היא הקלט שרוצים להעריך, והתשובה הנכונה היא התשובה האידיאלית להנחיה הזו. במהלך ההערכה, ההנחיה בכל זוג במערך נתוני ההערכה מועברת למודל כדי ליצור פלט. הפלט שנוצר על ידי המודל והאמת הבסיסית ממערך נתוני ההערכה משמשים לחישוב מדדי ההערכה.
סוג המדדים שמשמשים להערכה תלוי במשימה שאתם מעריכים. בטבלה הבאה מוצגות המשימות הנתמכות והמדדים שמשמשים להערכת כל משימה:
| משימה | מדד |
|---|---|
| סיווג | מיקרו F1, מאקרו F1, F1 לכל סיווג |
| סיכום | ROUGE-L |
| מענה לשאלות | התאמה מדויקת |
| יצירת טקסט | BLEU, ROUGE-L |
מודלים נתמכים
אפשר לבצע הערכה של המודלים הבאים:
text-bison: גרסאות בסיסיות וגרסאות שעברו התאמה.Gemini: כל המשימות חוץ מסיווג.
הכנת מערך נתונים להערכה
מערך נתוני ההערכה שמשמש להערכת המודל כולל צמדים של הנחיות ונתוני אמת שמתאימים למשימה שרוצים להעריך. מערך הנתונים צריך לכלול לפחות צמד אחד של הנחיה ונתוני אמת בסיסיים, ולפחות 10 צמדים כדי לקבל מדדים משמעותיים. ככל שתספקו יותר דוגמאות, כך התוצאות יהיו משמעותיות יותר.
פורמט מערך הנתונים
מערך הנתונים להערכה צריך להיות בפורמט JSON Lines (JSONL), שבו כל שורה מכילה הנחיה אחת וזוג של נתוני אמת שצוינו בשדות input_text ו-output_text, בהתאמה. השדה input_text מכיל את ההנחיה שרוצים להעריך, והשדה output_text מכיל את התשובה האידיאלית להנחיה.
האורך המקסימלי של טוקן עבור input_text הוא 8,192, והאורך המקסימלי של טוקן עבור output_text הוא 1,024.
העלאת מערך נתונים להערכה ל-Cloud Storage
אתם יכולים ליצור קטגוריה חדשה ב-Cloud Storage או להשתמש בקטגוריה קיימת כדי לאחסן את קובץ קבוצת הנתונים. הקטגוריה צריכה להיות באותו אזור שבו נמצא המודל.
אחרי שהקטגוריה מוכנה, מעלים את קובץ מערך הנתונים לקטגוריה.
ביצוע הערכת מודל
אפשר להעריך מודלים באמצעות ה-API בארכיטקטורת REST או מסוף Google Cloud .
REST
כדי ליצור משימת הערכת מודל, שולחים בקשת POST באמצעות השיטה pipelineJobs.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: Google Cloud הפרויקט שבו מורכבים רכיבי צינור העיבוד.
- PIPELINEJOB_DISPLAYNAME: שם מוצג ל-pipelineJob.
- LOCATION: האזור שבו יופעלו רכיבי צינור עיבוד הנתונים.
בשלב הזה יש תמיכה רק ב-
us-central1. - DATASET_URI: ה-URI של מערך הנתונים להשוואה ב-Cloud Storage. אפשר לציין URI אחד או יותר. הפרמטר הזה תומך בתווים כלליים לחיפוש. מידע נוסף על הפרמטר הזה זמין במאמר בנושא InputConfig.
- OUTPUT_DIR: ה-URI של Cloud Storage שבו יישמר פלט ההערכה.
- MODEL_NAME: מציינים מודל של בעל תוכן דיגיטלי או משאב של מודל שעבר התאמה אישית באופן הבא:
- מודל בעל התוכן הדיגיטלי:
publishers/google/models/MODEL@MODEL_VERSIONלדוגמה:
publishers/google/models/text-bison@002 - מודל שעבר התאמה:
projects/PROJECT_NUMBER/locations/LOCATION/models/ENDPOINT_IDלדוגמה:
projects/123456789012/locations/us-central1/models/1234567890123456789
משימת ההערכה לא משפיעה על פריסות קיימות של המודל או על המשאבים שלהן.
- מודל בעל התוכן הדיגיטלי:
- EVALUATION_TASK: המשימה שרוצים להעריך את המודל לגביה. משימת ההערכה מחשבת קבוצה של מדדים שרלוונטיים למשימה הספציפית הזו. הערכים הקבילים כוללים את האפשרויות הבאות:
summarizationquestion-answeringtext-generationclassification
- INSTANCES_FORMAT: הפורמט של מערך הנתונים.
בשלב הזה יש תמיכה רק ב-
jsonl. מידע נוסף על הפרמטר הזה זמין במאמר בנושא InputConfig. - PREDICTIONS_FORMAT: הפורמט של
פלט ההערכה. בשלב הזה יש תמיכה רק ב-
jsonl. מידע נוסף על הפרמטר הזה זמין במאמר בנושא InputConfig. - MACHINE_TYPE: (אופציונלי) סוג המכונה להרצת עבודת ההערכה. ערך ברירת המחדל הוא
e2-highmem-16. רשימה של סוגי המכונות הנתמכים זמינה במאמר סוגי מכונות. - SERVICE_ACCOUNT: (אופציונלי) חשבון השירות שישמש להפעלת משימת ההערכה. במאמר הגדרת חשבון שירות עם הרשאות גרנולריות מוסבר איך יוצרים חשבון שירות בהתאמה אישית. אם לא צוין סוכן, ייעשה שימוש בסוכן של שירות קוד בהתאמה אישית ב-Vertex AI.
- NETWORK: (אופציונלי) השם המוגדר במלואו של רשת Compute Engine שאליה רוצים לבצע קישור בין רשתות שכנות (peering) של משימת ההערכה. הפורמט של שם הרשת הוא
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME. אם מציינים את השדה הזה, צריך להגדיר קישור בין רשתות שכנות ב-VPC ל-Vertex AI. אם לא מציינים רשת, עבודת ההערכה לא תהיה בעלת קישור עמיתים לאף רשת. - KEY_NAME: (אופציונלי) השם של מפתח ההצפנה בניהול הלקוח (CMEK). אם מוגדר, המשאבים שנוצרו על ידי עבודת ההערכה מוצפנים באמצעות מפתח ההצפנה שסופק. הפורמט של שם המפתח הוא
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY. המפתח צריך להיות באותו אזור שבו נמצאת משימת ההערכה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs
גוף בקשת JSON:
{
"displayName": "PIPELINEJOB_DISPLAYNAME",
"runtimeConfig": {
"gcsOutputDirectory": "gs://OUTPUT_DIR",
"parameterValues": {
"project": "PROJECT_ID",
"location": "LOCATION",
"batch_predict_gcs_source_uris": ["gs://DATASET_URI"],
"batch_predict_gcs_destination_output_uri": "gs://OUTPUT_DIR",
"model_name": "MODEL_NAME",
"evaluation_task": "EVALUATION_TASK",
"batch_predict_instances_format": "INSTANCES_FORMAT",
"batch_predict_predictions_format: "PREDICTIONS_FORMAT",
"machine_type": "MACHINE_TYPE",
"service_account": "SERVICE_ACCOUNT",
"network": "NETWORK",
"encryption_spec_key_name": "KEY_NAME"
}
},
"templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1"
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
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"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו: שימו לב שהערך pipelineSpec
קוצר כדי לחסוך במקום.
דוגמה לפקודת curl
PROJECT_ID=myproject
REGION=us-central1
MODEL_NAME=publishers/google/models/text-bison@002
TEST_DATASET_URI=gs://my-gcs-bucket-uri/dataset.jsonl
OUTPUT_DIR=gs://my-gcs-bucket-uri/output
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs" -d \
$'{
"displayName": "evaluation-llm-text-generation-pipeline",
"runtimeConfig": {
"gcsOutputDirectory": "'${OUTPUT_DIR}'",
"parameterValues": {
"project": "'${PROJECT_ID}'",
"location": "'${REGION}'",
"batch_predict_gcs_source_uris": ["'${TEST_DATASET_URI}'"],
"batch_predict_gcs_destination_output_uri": "'${OUTPUT_DIR}'",
"model_name": "'${MODEL_NAME}'",
}
},
"templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1"
}'
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
המסוף
כדי ליצור משימת הערכת מודל באמצעות Google Cloud המסוף:
- נכנסים לדף מרשם המודלים של Vertex AI במסוף Google Cloud .
- לוחצים על שם המודל שרוצים להעריך.
- בכרטיסייה הערכה, לוחצים על יצירת הערכה ומגדירים אותה כך:
- יעד: בוחרים את המשימה שרוצים להעריך.
- עמודת יעד או שדה יעד: (סיווג בלבד) מזינים את עמודת היעד לחיזוי. לדוגמה:
ground_truth. - נתיב המקור: מזינים או בוחרים את ה-URI של מערך הנתונים של ההערכה.
- פורמט פלט: מזינים את הפורמט של פלט ההערכה.
בשלב הזה יש תמיכה רק ב-
jsonl. - נתיב Cloud Storage: מזינים או בוחרים את ה-URI לאחסון הפלט של ההערכה.
- שמות כיתות: (סיווג בלבד) מזינים את רשימת שמות הכיתות האפשריים.
- מספר צמתי מחשוב: מזינים את מספר צמתי המחשוב להרצת משימת ההערכה.
- Machine type (סוג המכונה): בוחרים סוג מכונה לשימוש בהרצת משימת ההערכה.
- לוחצים על התחלת ההערכה.
צפייה בתוצאות ההערכה
תוצאות ההערכה נמצאות בספריית הפלט של Cloud Storage שציינתם כשיצרתם את משימת ההערכה. שם הקובץ הוא evaluation_metrics.json.
בנוסף, אפשר לראות את תוצאות ההערכה של מודלים שעברו התאמה במסוף Google Cloud :
בקטע Vertex AI במסוף Google Cloud , עוברים לדף מרשם המודלים של Vertex AI.
לוחצים על שם המודל כדי לראות את מדדי ההערכה שלו.
בכרטיסייה Evaluate (הערכה), לוחצים על השם של ההרצה של ההערכה שרוצים לראות.
המאמרים הבאים
- מידע על הערכה של AI גנרטיבי
- מידע על הערכה אונליין באמצעות Gen AI Evaluation Service
- איך משפרים מודל בסיסי