ניהול מדדי הערכה

לפני שמתחילים

לפני שמנהלים את מדדי ההערכה, חשוב לוודא שיש לכם את הדברים הבאים:

  • 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()

ניהול מדדים במסוף

  1. במסוף Google Cloud , עוברים לדף Agent Platform > Agents > Evaluation.

    לדף Evaluation

  2. כדי לראות את הרישום, לוחצים על הכרטיסייה Metrics.

  3. כדי ליצור מדד: לוחצים על מדד חדש ובוחרים באפשרות מדד מותאם אישית של LLM או מדד מותאם אישית של קוד.

  4. הגדרת קריטריונים להערכה: כדי להגדיר מדדים של LLM, אפשר להשתמש בלחצנים דוגמה כדי למלא במהירות את ההוראות, הקריטריונים (לדוגמה, בהירות או התלהבות) וציוני הדירוג.

  5. צפייה ועריכה: לוחצים על שם של מדד כדי לראות את ההגדרה שלו במצב קריאה בלבד, או משתמשים בסמל אפשרויות נוספות כדי לשכפל או למחוק את המשאב.

ניהול מדדים באמצעות ה-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
)