במקרה של שירות ההערכה של AI גנרטיבי, מערך נתוני ההערכה כולל בדרך כלל את התשובה של המודל שרוצים להעריך, את נתוני הקלט ששימשו ליצירת התשובה ואולי גם את תשובת האמת.
סכימה של מערך נתונים להערכה
בתרחישי שימוש טיפוסיים במדדים מבוססי-מודל, מערך הנתונים צריך לספק את המידע הבא:
| סוג קלט | תוכן של שדה להזנת קלט |
|---|---|
| הנחיה | קלט של משתמשים למודל או לאפליקציה של AI גנרטיבי. במקרים מסוימים, זהו מאפיין אופציונלי. |
| תשובה | התשובה של מסקנת ה-LLM שרוצים להעריך. |
| baseline_model_response (נדרש למדדים של השוואה בין זוגות) | תשובת ההסקה של ה-LLM הבסיסי שמשמשת להשוואה בין תשובת ה-LLM שלכם לבין ההערכה הזוגית |
אם משתמשים במודול ההערכה של AI גנרטיבי של Vertex AI SDK ל-Python, שירות ההערכה של AI גנרטיבי יכול ליצור באופן אוטומטי את response וbaseline_model_response באמצעות המודל שצוין.
במקרים אחרים של בקשות לבדיקה, יכול להיות שתצטרכו לספק מידע נוסף:
שיחה עם זיכרון
| סוג קלט | תוכן של שדה להזנת קלט |
|---|---|
| היסטוריה | היסטוריית השיחה בין המשתמש לבין המודל לפני התור הנוכחי. |
| הנחיה | קלט של משתמשים למודל או לאפליקציה של AI גנרטיבי בתור הנוכחי. |
| תשובה | תשובת ההסקה של ה-LLM שצריך להעריך, שמבוססת על ההיסטוריה ועל ההנחיה הנוכחית. |
| baseline_model_response (נדרש למדדים של השוואה בין זוגות) | תשובת ההסקה של מודל ה-LLM הבסיסי שמשמשת להשוואה של תשובת ה-LLM שלכם להערכה הזוגית, שמבוססת על ההיסטוריה ועל ההנחיה הנוכחית. |
השוואות מבוססות-מחשוב
מערך הנתונים צריך לספק תשובה ממודל שפה גדול והפניה להשוואה.
| סוג קלט | תוכן של שדה להזנת קלט |
|---|---|
| תשובה | התשובה של מסקנת ה-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()
# Refer 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()
# Refer 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()
# Refer 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()
# Refer 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()
# Refer the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df
שיטות מומלצות
כדאי לפעול לפי השיטות המומלצות הבאות כשמגדירים את מערך הנתונים של ההערכה:
- צריך לספק דוגמאות שמייצגות את סוגי הקלט שהמודלים מעבדים בסביבת הייצור.
- מערך הנתונים צריך לכלול לפחות דוגמה אחת להערכה. כדי להבטיח מדדים מצטברים באיכות גבוהה ותוצאות בעלות מובהקות סטטיסטית, מומלץ להשתמש בכ-100 דוגמאות. הגודל הזה עוזר להגיע לרמת מהימנות גבוהה יותר בתוצאות ההערכה המצטברות, למזער את ההשפעה של חריגים ולהבטיח שמדדי הביצועים משקפים את היכולות האמיתיות של המודל בתרחישים מגוונים. קצב השיפורים באיכות המדדים המצטברים נוטה לרדת כשמספקים יותר מ-400 דוגמאות.
המאמרים הבאים
אפשר לנסות notebook לדוגמה של הערכה.