לפני שמתחילים
לפני שמנהלים את מדדי ההערכה, חשוב לוודא שיש לכם את הדברים הבאים:
- Google Cloud פרויקט שבו מופעל Agent Platform API.
- (אופציונלי) אם משתמשים ב-Agent Platform SDK, מאתחלים את הלקוח כמו שמתואר במאמר הערכת הסוכנים.
מאגר המדדים מאפשר להגדיר, לאחסן ולנהל הגדרות לשימוש חוזר כדי להעריך את הסוכנים. במקום להגדיר קריטריונים לכל הרצת בדיקה, אפשר לשמור מדדים סטנדרטיים – כמו קריטריון הערכה מותאם אישית שמבוסס על LLM לבטיחות או פונקציית Python לדיוק ההרצה – ולהחיל אותם באופן עקבי על הערכות אופליין ועל מערכות ניטור אונליין רציפות.
סוגי מדדים
Agent Platform תומך בשלושה סוגים של מדדים במרשם:
- מדדים מוגדרים מראש: מדדים מנוהלים שסופקו על ידי Google, כולל דירוגים רב-שלביים של בודקים עבור הצלחת משימה, איכות השימוש בכלי והתאמה למסלול.
- מדדים מותאמים אישית של LLM: קריטריונים בשפה טבעית שבהם 'שופט LLM' מעריך את התשובה של הסוכן על סמך הקריטריונים הספציפיים וסולמות הדירוג שלכם.
- מדדי קוד בהתאמה אישית: פונקציות Python שמאמתות באופן פרוגרמטי את התנהגות הסוכן, למשל בדיקה של פורמט פלט ספציפי או אימות של תגובה לכלי.
בנוסף למדדים מנוהלים שסופקו על ידי Google, אתם יכולים להשתמש במדדים מותאמים אישית שרשמתם לצורך הערכה.
מדדים מוגדרים מראש
Agent Platform מספק קבוצה של מדדים מוגדרים מראש להערכת סוכנים. Google מנהלת את המדדים האלה, והם כוללים מימדים נפוצים להערכה של אינטראקציות עם סוכנים, גם כאלה שמתבצעות בתור אחד וגם כאלה שמתבצעות בכמה תורות.
אפשר לגשת למדדים מוגדרים מראש ב-SDK באמצעות
types.RubricMetric.METRIC_NAME. פרטים מלאים על כל המדדים המנוהלים שמבוססים על קריטריונים, כולל דרישות קלט ופורמטים של פלט, מופיעים במאמר פרטים על מדדים מנוהלים שמבוססים על קריטריונים.
מדדים של סוכנים בשיחה אחת
המדדים הבאים משמשים להערכת אינטראקציה יחידה עם סוכן (הנחיה אחת ותגובה אחת, עם קריאות אפשריות לכלים בין לבין):
| מדד | סוג | SDK accessor | תיאור |
|---|---|---|---|
| איכות התשובה הסופית של הנציג | קריטריונים להערכה שמותאמים לכל תלמיד | types.RubricMetric.FINAL_RESPONSE_QUALITY |
הערכה מקיפה שיוצרת באופן אוטומטי קריטריונים להערכה על סמך ההגדרות של הסוכן (הוראות מערכת והצהרות על כלים) וההנחיה של המשתמש. |
| הזיות של סוכן | קריטריון הערכה סטטי | types.RubricMetric.HALLUCINATION |
בודק את נכונות העובדות על ידי חלוקת התשובה לטענות בסיסיות ואימות כל טענה על סמך השימוש בכלי מאירועים ביניים. |
| איכות השימוש בכלי העזר של הנציג | קריטריון הערכה דינמי | types.RubricMetric.TOOL_USE_QUALITY |
הערכה של בחירת הכלים המתאימים, השימוש הנכון בפרמטרים והקפדה על רצף הפעולות שצוין. |
| בטיחות | קריטריון הערכה סטטי | types.RubricMetric.SAFETY |
המודל מעריך אם התשובה מפרה את מדיניות הבטיחות, כולל פרטים אישיים מזהים ונתונים דמוגרפיים, דברי שטנה, תוכן מסוכן, הטרדה או תוכן מיני בוטה. הפונקציה מחזירה 1 אם המיקום בטוח ו-0 אם הוא לא בטוח. |
מדדים של סוכנים רב-שלביים
המדדים הבאים משמשים להערכת שיחות רב-שלביות עם סוכן. הם מנתחים את ההקשר המלא של השיחה כדי להעריך את הביצועים הכוללים של הסוכן בכמה תורות:
| מדד | סוג | SDK accessor | תיאור |
|---|---|---|---|
| הצלחת משימה מרובת שלבים של סוכן | קריטריון הערכה דינמי | types.RubricMetric.MULTI_TURN_TASK_SUCCESS |
הערכה אם הסוכן השיג את המטרה או המטרות של השיחה. המדד הזה לא מתייחס לנקודת השוואה, והוא מתמקד באם הושג היעד ולא איך הוא הושג. |
| איכות השימוש בכלי של סוכן רב-שלבי | קריטריון הערכה דינמי | types.RubricMetric.MULTI_TURN_TOOL_USE_QUALITY |
הפונקציה מעריכה את האיכות של קריאות לפונקציות שבוצעו במהלך שיחה רב-שלבית. הערכה אם הסוכן קרא לכלים הנכונים עם ארגומנטים נכונים בזמן הנכון. |
| איכות המסלול של סוכן רב-שלבי | קריטריונים להערכה שמותאמים לכל תלמיד | types.RubricMetric.MULTI_TURN_TRAJECTORY_QUALITY |
הפונקציה מעריכה את המסלול הכולל של השיחה. בניגוד למדד 'הצלחת המשימה', המדד הזה מעריך איך הסוכן השיג את היעד – האם נתיב הנימוקים היה הגיוני ויעיל. |
שימוש במדדים שהוגדרו מראש ב-SDK
from vertexai import evals, types
# Run an evaluation with predefined metrics
result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[
types.RubricMetric.FINAL_RESPONSE_QUALITY,
types.RubricMetric.TOOL_USE_QUALITY,
types.RubricMetric.HALLUCINATION,
types.RubricMetric.SAFETY,
],
)
# Visualize results in Colab
result.show()
ניהול מדדים במסוף
במסוף Google Cloud , עוברים לדף Agent Platform > Agents > Evaluation.
כדי לראות את הרישום, לוחצים על הכרטיסייה Metrics.
כדי ליצור מדד: לוחצים על מדד חדש ובוחרים באפשרות מדד מותאם אישית של LLM או מדד מותאם אישית של קוד.
הגדרת קריטריונים להערכה: כדי להגדיר מדדים של LLM, אפשר להשתמש בלחצנים דוגמה כדי למלא במהירות את ההוראות, הקריטריונים (לדוגמה, בהירות או התלהבות) וציוני הדירוג.
צפייה ועריכה: לוחצים על שם של מדד כדי לראות את ההגדרה שלו במצב קריאה בלבד, או משתמשים בסמל אפשרויות נוספות more_vert כדי לשכפל או למחוק את המשאב.
ניהול מדדים באמצעות ה-SDK
אפשר לרשום מדדים ולהשתמש בהם באופן פרוגרמטי באמצעות Agent Platform SDK.
רישום של מדד מותאם אישית של מודל LLM
from vertexai import evals, types
# Define a metric with a specific rubric
tone_check_metric = types.LLMMetric(
name="tone_check",
prompt_template="Analyze the tone of the response ...",
result_parsing_function="""
import json, re
def parse_results(responses):
response = json.loads(responses[0])
return {"score": response.get("score", 0.0),
"explanation": response.get("explanation", "default explanation")}
"""
)
# Register the custom metric
tone_check_metric_path = client.evals.create_evaluation_metric(
metric=tone_check_metric
)
רישום של מדד מותאם אישית של קוד
from vertexai import evals, types
# Define a metric with custom python code
accuracy_metric_code = """
def evaluate(instance: dict) -> float:
agent_data = instance.get('agent_eval_data', {})
turns = agent_data.get('turns', [])
for turn in turns:
...
"""
accuracy_metric = types.CodeExecutionMetric(
name="multi_turn_accuracy",
custom_function=accuracy_metric_code
)
# Register the custom metric
accuracy_metric_path = client.evals.create_evaluation_metric(
metric=accuracy_metric
)