הכנת מערך נתונים להערכה

במקרה של שירות ההערכה של AI גנרטיבי, מערך נתוני ההערכה כולל בדרך כלל את התשובה של המודל שרוצים להעריך, את נתוני הקלט ששימשו ליצירת התשובה ואולי גם את תשובת האמת.

סכימה של מערך נתונים להערכה

בתרחישי שימוש טיפוסיים במדדים מבוססי-מודל, מערך הנתונים צריך לספק את המידע הבא:

סוג קלט התוכן בשדה להזנת קלט
הנחיה קלט של משתמשים למודל AI גנרטיבי או לאפליקציה. במקרים מסוימים, זהו שדה אופציונלי.
תשובה התשובה של מסקנת ה-LLM שרוצים להעריך.
baseline_model_response (נדרש למדדים של השוואה בין זוגות) תשובת ההסקה של מודל ה-LLM הבסיסי להשוואה מול response בהערכה זוגית.

אם משתמשים במודול Gen AI Evaluation של Vertex AI SDK ל-Python, שירות ההערכה של Gen AI יכול ליצור באופן אוטומטי את response ו-baseline_model_response באמצעות המודל שצוין.

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

שיחה רב-שלבית או צ'אט

סוג קלט התוכן בשדה להזנת קלט
היסטוריה היסטוריית השיחה בין המשתמש לבין המודל לפני התור הנוכחי.
הנחיה קלט של משתמש למודל או לאפליקציה של AI גנרטיבי בתור הנוכחי.
תשובה תשובת ההסקה של ה-LLM שצריך להעריך, שמבוססת על ההיסטוריה ועל ההנחיה הנוכחית.
baseline_model_response (נדרש למדדים של השוואה בין זוגות) תשובת ההסקה של מודל ה-LLM הבסיסי להשוואה מול response בהערכה זוגית, שמבוססת על ההיסטוריה ועל ההנחיה הנוכחית.

מדדים מבוססי-חישוב

מערך הנתונים צריך לספק תגובה ממודל שפה גדול והפניה להשוואה.

סוג קלט התוכן בשדה להזנת קלט
תשובה התשובה של מסקנת ה-LLM שרוצים להעריך.
הפניה התשובה האמיתית שאליה משווים את התשובה של מודל ה-LLM.

מדדי תרגום

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

סוג קלט התוכן בשדה להזנת קלט
מקור טקסט המקור בשפה המקורית שממנה תורגם התחזית.
תשובה התשובה של מסקנת ה-LLM שרוצים להעריך.
הפניה התשובה האמיתית שאליה משווים את התשובה של מודל ה-LLM. השפה של התשובה תהיה זהה לשפה של השאלה.

בהתאם לתרחישי השימוש, יכול להיות שתרצו גם לפרק את ההנחיה למשתמש לחלקים קטנים, כמו instruction ו-context, ולחבר אותם כדי להסיק מסקנות על ידי מתן תבנית הנחיה. במקרה הצורך, אפשר לספק גם את המידע על ההפניה או על האמת הבסיסית:

סוג קלט התוכן בשדה להזנת קלט
הוראה חלק מההנחיה שהמשתמש מזין. זה מתייחס להוראת ההסקה שנשלחת למודל שפה גדול (LLM). לדוגמה: "תקצר את הטקסט הבא" היא הוראה.
context קלט משתמש למודל או לאפליקציה של AI גנרטיבי בתור הנוכחי.
הפניה התשובה האמיתית שאליה משווים את התשובה של מודל ה-LLM.

הנתונים שנדרשים להזנת מערך נתוני ההערכה צריכים להיות עקביים עם המדדים שלכם. לפרטים נוספים על התאמה אישית של המדדים, אפשר לעיין במאמרים הגדרת מדדי הערכה והפעלת הערכה. לפרטים נוספים על הכללת נתוני הפניה במדדים מבוססי-מודל, אפשר לעיין במאמר התאמת תבנית של הנחיית מדד לנתוני הקלט.

ייבוא מערך נתונים להערכה

אפשר לייבא את קבוצת הנתונים בפורמטים הבאים:

  • קובץ JSONL או CSV שמאוחסן ב-Cloud Storage

  • טבלה ב-BigQuery

  • Pandas DataFrame

דוגמאות למערכי נתונים להערכה

בקטע הזה מוצגות דוגמאות לקבוצות נתונים בפורמט Pandas Dataframe. שימו לב: כאן מוצגות רק כמה רשומות נתונים כדוגמה, ובדרך כלל מערכי נתונים להערכה כוללים 100 נקודות נתונים או יותר. בקטע שיטות מומלצות מפורטות שיטות מומלצות להכנת מערך נתונים.

מדדים מבוססי-מודל ברמת הנקודה

זו דוגמה לתרחיש סיכום שממחיש מערך נתונים לדוגמה למדדים מבוססי-מודל ברמת הנקודה:

prompts = [
    # Example 1
    (
        "Summarize the text in one sentence: As part of a comprehensive"
        " initiative to tackle urban congestion and foster sustainable urban"
        " living, a major city has revealed ambitious plans for an extensive"
        " overhaul of its public transportation system. The project aims not"
        " only to improve the efficiency and reliability of public transit but"
        " also to reduce the city's carbon footprint and promote eco-friendly"
        " commuting options. City officials anticipate that this strategic"
        " investment will enhance accessibility for residents and visitors"
        " alike, ushering in a new era of efficient, environmentally conscious"
        " urban transportation."
    ),
    # Example 2
    (
        "Summarize the text such that a five-year-old can understand: A team of"
        " archaeologists has unearthed ancient artifacts shedding light on a"
        " previously unknown civilization. The findings challenge existing"
        " historical narratives and provide valuable insights into human"
        " history."
    ),
]

responses = [
    # Example 1
    (
        "A major city is revamping its public transportation system to fight"
        " congestion, reduce emissions, and make getting around greener and"
        " easier."
    ),
    # Example 2
    (
        "Some people who dig for old things found some very special tools and"
        " objects that tell us about people who lived a long, long time ago!"
        " What they found is like a new puzzle piece that helps us understand"
        " how people used to live."
    ),
]

eval_dataset_df = pd.DataFrame({
    "prompt": prompts,
    "response": responses,
})

# Define the eval dataset
eval_dataset = types.common.EvaluationDataset()

# Reference the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df

מדדים מבוססי-מודל להשוואה בין שני פריטים

בדוגמה הבאה מוצג מקרה של מענה על שאלות עם גישה לספר, כדי להדגים מערך נתונים לדוגמה של מדדים מבוססי-מודל להשוואה בין זוגות.

prompts = [
    # Example 1
    (
        "Based on the context provided, 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."
    ),
    # Example 2
    (
        "Based on the context provided, 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."
    ),
]

responses = [
    # Example 1
    "Diamond is the hardest material. It is harder than steel or titanium.",
    # Example 2
    "Francis Ford Coppola directed The Godfather.",
]

baseline_model_responses = [
    # Example 1
    "Steel is the hardest material.",
    # Example 2
    "John Smith.",
]

eval_dataset_df = pd.DataFrame(
  {
    "prompt":  prompts,
    "response":  responses,
    "baseline_model_response": baseline_model_responses,
  }
)

# Define the eval dataset
eval_dataset = types.common.EvaluationDataset()

# Reference the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df

מדדים מבוססי-חישוב

למדדים מבוססי-חישוב, בדרך כלל נדרש reference.

eval_dataset_df = pd.DataFrame({
  "response": ["The Roman Senate was filled with exuberance due to Pompey's defeat in Asia."],
  "reference": ["The Roman Senate was filled with exuberance due to successes against Catiline."],
})

# Define the eval dataset
eval_dataset = types.common.EvaluationDataset()

# Reference the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df

מדדים של שימוש בכלי (בקשה להפעלת פונקציה)

בדוגמה הבאה מוצגים נתוני קלט למדדים של שימוש בכלים שמבוססים על חישוב:

json_responses = ["""{
    "content": "",
    "tool_calls":[{
      "name":"get_movie_info",
      "arguments": {"movie":"Mission Impossible", "time": "today 7:30PM"}
    }]
  }"""]

json_references = ["""{
    "content": "",
    "tool_calls":[{
      "name":"book_tickets",
      "arguments":{"movie":"Mission Impossible", "time": "today 7:30PM"}
      }]
  }"""]

eval_dataset_df = pd.DataFrame({
    "response": json_responses,
    "reference": json_references,
})

# Define the eval dataset
eval_dataset = types.common.EvaluationDataset()

# Reference the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df

תרחישי שימוש בתרגום

בדוגמה הבאה מוצגים נתוני קלט למדדי תרגום:

  source = [
      "Dem Feuer konnte Einhalt geboten werden",
      "Schulen und Kindergärten wurden eröffnet.",
  ]

  response = [
      "The fire could be stopped",
      "Schools and kindergartens were open",
  ]

  reference = [
      "They were able to control the fire.",
      "Schools and kindergartens opened",
  ]

  eval_dataset_df = pd.DataFrame({
      "source": source,
      "response": response,
      "reference": reference,
  })

  # Define the eval dataset
  eval_dataset = types.common.EvaluationDataset()

  # Reference the pandas dataframe
  eval_dataset.eval_dataset_df=eval_dataset_df

שיטות מומלצות

כדאי לפעול לפי השיטות המומלצות הבאות כשמגדירים את מערך הנתונים של ההערכה:

  • לספק דוגמאות שמייצגות את סוגי הקלט שהמודלים מעבדים בסביבת הייצור.
  • מערך הנתונים צריך לכלול לפחות דוגמה אחת להערכה. כדי להבטיח מדדים מצטברים באיכות גבוהה ותוצאות בעלות מובהקות סטטיסטית, מומלץ להשתמש בכ-100 דוגמאות. הגודל הזה עוזר להגיע לרמת סמך גבוהה יותר בתוצאות המשוקללות של ההערכה, למזער את ההשפעה של חריגים ולהבטיח שמדדי הביצועים משקפים את היכולות האמיתיות של המודל בתרחישים שונים. קצב השיפורים באיכות המדדים המצטברים נוטה לרדת כשמספקים יותר מ-400 דוגמאות.

המאמרים הבאים