בדף הזה מוסבר איך להריץ הערכות למודלים וליישומים של שפה גנרטיבית באמצעות שירות ההערכה של AI גנרטיבי.
לפני שמתחילים
התקנה של Vertex AI SDK
כדי להתקין את מודול ההערכה של Gen AI מ-Vertex AI SDK ל-Python, מריצים את הפקודה הבאה:
!pip install -q google-cloud-aiplatform[evaluation]
מידע נוסף זמין במאמר בנושא התקנת Vertex AI SDK ל-Python.
אימות של Vertex AI SDK
אחרי שמתקינים את Vertex AI SDK ל-Python, צריך לבצע אימות. בנושאים הבאים מוסבר איך לבצע אימות באמצעות Vertex AI SDK אם אתם עובדים באופן מקומי או ב-Colaboratory:
אם אתם מפתחים באופן מקומי, אתם צריכים להגדיר את Application Default Credentials (ADC) בסביבה המקומית:
מתקינים את ה-CLI של Google Cloud ומאתחלים אותו באמצעות הפקודה הבאה:
gcloud initיצירת פרטי כניסה לאימות מקומי בחשבון Google:
gcloud auth application-default loginמסך התחברות יוצג לפניכם. אחרי שנכנסים, פרטי הכניסה נשמרים בקובץ פרטי הכניסה המקומי שמשמש את ADC. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
אם אתם עובדים ב-Colaboratory, מריצים את הפקודה הבאה בתא Colab כדי לבצע אימות:
from google.colab import auth auth.authenticate_user()הפקודה הזו פותחת חלון שבו אפשר להשלים את האימות.
הסבר על חשבונות שירות
חשבון השירות משמש את שירות ההערכה של AI גנרטיבי כדי לקבל תחזיות מ-Gemini API ב-Vertex AI למדדים של הערכה מבוססת-מודל. חשבון השירות הזה מוקצה באופן אוטומטי בבקשה הראשונה לשירות ההערכה של AI גנרטיבי.
| שם | תיאור | כתובת האימייל | תפקיד |
|---|---|---|---|
| סוכן שירות ההערכה המהירה של Vertex AI | חשבון השירות שמשמש לקבלת תחזיות להערכה מבוססת-מודל. | service-PROJECT_NUMBER@gcp-sa-vertex-eval.iam.gserviceaccount.com |
roles/aiplatform.rapidevalServiceAgent |
ההרשאות שמשויכות לסוכן השירות של ההערכה המהירה הן:
| תפקיד | הרשאות |
|---|---|
| סוכן שירות ההערכה המהירה של Vertex AI (roles/aiplatform.rapidevalServiceAgent) | aiplatform.endpoints.predict |
הרצת ההערכה
שירות ההערכה של ה-AI הגנרטיבי משתמש בתהליך הבא שמבוסס על לקוח כדי להריץ הערכות:
run_inference(): יצירת תשובות מהמודל עבור קבוצה נתונה של הנחיות.
evaluate(): חישוב מדדים של Compute בתגובות שנוצרו.
eval_dataset = client.evals.run_inference(
model="gemini-2.5-flash",
src="gs://vertex-evaluation-llm-dataset-us-central1/genai_eval_sdk/test_prompts.jsonl",
)
eval_dataset.show()
eval_result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[
types.RubricMetric.TEXT_QUALITY,
types.RubricMetric.QUESTION_ANSWERING_QUALITY,
types.Metric(name='bleu'),
types.Metric(name='rouge_1'),
]
)
eval_result.show()
כדי לנתח את הביצועים של כמה מודלים או מערכות AI בהערכה אחת, צריך ליצור תשובה לכל מועמד ולהעביר אותן ברשימה לשיטה evaluate():
inference_result_1 = client.evals.run_inference(
model="gemini-2.0-flash",
src=prompts_df,
)
inference_result_2 = client.evals.run_inference(
model="gemini-2.5-flash",
src=prompts_df,
)
# Compare the responses against each other
comparison_result = client.evals.evaluate(
dataset=[inference_result_1, inference_result_2],
metrics=[
types.RubricMetric.TEXT_QUALITY,
types.RubricMetric.INSTRUCTION_FOLLOWING,
]
)
comparison_result.show()
בדיקה של קריטריונים שנוצרו להערכה או שימוש חוזר בהם
כדי ליצור מראש קריטריונים דינמיים ולבדוק אותם לפני ההערכה, או כדי לעשות שימוש חוזר בקריטריונים שנוצרו בעבר, משתמשים בקוד הבא:
# Step 1. Generate rubrics
# Rubrics would be saved in a group named "general_quality_rubrics".
data_with_rubrics = client.evals.generate_rubrics(
src=prompts_df,
rubric_group_name="general_quality_rubrics",
predefined_spec_name=types.RubricMetric.GENERAL_QUALITY,
)
# Step 2. Run Inference
eval_dataset = client.evals.run_inference(
model=inference_model,
src=data_with_rubrics,
)
# Step 3. Evaluate with provided rubrics
# The group of rubric named "general_quality_rubrics" will be used for evaluation.
eval_result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[types.RubricMetric.GENERAL_QUALITY(
rubric_group_name="general_quality_rubrics",
)],
)
generate_rubrics(): יצירת קריטריונים להערכה עם תהליך עבודה מוגדר מראש שמשויך למדד.
run_inference(): יצירת תשובות מהמודל עבור קבוצה נתונה של הנחיות.
evaluate(): אימות התשובות על סמך קריטריונים שסופקו.
הערכה אסינכרונית בקנה מידה גדול
למערכי נתונים גדולים, שירות ההערכה של ה-AI הגנרטיבי מספק שיטת הערכה אסינכרונית של אצווה שפועלת לאורך זמן. האפשרות הזו מתאימה לתרחישים שבהם לא נדרשות תוצאות מיידיות ורוצים להפחית עומס החישוב.
השיטה batch_evaluate() מחזירה אובייקט פעולה שאפשר לדגום כדי לעקוב אחרי ההתקדמות שלו. הפרמטרים תואמים לשיטה evaluate().
GCS_DEST_BUCKET = "gs://your-gcs-bucket/batch_eval_results/"
inference_result_saved = client.evals.run_inference(
model="gemini-2.5-flash",
src=prompts_df,
config={'dest': GCS_DEST_BUCKET}
)
print(f"Eval dataset uploaded to: {inference_result_saved.gcs_source}")
batch_eval_job = client.evals.batch_evaluate(
dataset = inference_result_saved,
metrics = [
types.RubricMetric.FLUENCY,
types.RubricMetric.COHERENCE,
types.Metric(name='rouge_1'),
types.Metric(name='bleu'),
],
dest=GCS_DEST_BUCKET
)
הערכת מודלים של צד שלישי
אתם יכולים להשתמש בשירות להערכת AI גנרטיבי כדי להעריך ולהשוות בין מודלים מספקים כמו OpenAI. לשם כך, צריך להעביר את מחרוזת שם המודל לשיטה run_inference. שירות ההערכה של AI גנרטיבי משתמש בספרייה litellm כדי לקרוא לממשק API של המודל.
חשוב להגדיר את מפתח ה-API הנדרש כמשתנה סביבה (למשל OPENAI_API_KEY):
import os
# Set your third-party model API key
os.environ['OPENAI_API_KEY'] = 'YOUR_OPENAI_API_KEY'
# Run inference on an OpenAI model
gpt_response = client.evals.run_inference(
model='gpt-4o',
src=prompt_df
)
# You can now evaluate the responses
eval_result = client.evals.evaluate(
dataset=gpt_response,
metrics=[types.RubricMetric.TEXT_QUALITY]
)
eval_result.show()