כלי האופטימיזציה להנחיות עם מעט דוגמאות עוזר לכם לשפר את הוראות המערכת על ידי ניתוח דוגמאות שבהן התשובה של המודל לא עמדה בציפיות. אתם מספקים דוגמאות ספציפיות להנחיות, לתשובות של המודל ולמשוב על התשובות האלה, וכלי האופטימיזציה משפר את הוראות המערכת. אפשר לספק משוב באחת משתי דרכים: קריטריונים להערכה והערכה שמבוססת על קריטריונים, או תשובות יעד.
כדי לבצע אופטימיזציה באמצעות למידה עם מעט דוגמאות, צריך לספק דוגמאות ב-Pandas DataFrame. האפשרות הזו זמינה דרך Agent Platform SDK.
אופטימיזציה באמצעות הערכה שמבוססת על קריטריונים
השיטה הזו מתאימה לתרחישים שבהם יש לכם קריטריונים להערכה (שנקראים גם קריטריונים למתן ציונים) לכל דוגמה, ורשומה של המקרים שבהם המודל עמד בקריטריונים האלה. ה-DataFrame צריך לכלול את ארבע העמודות הבאות:
-
prompt: ההנחיה המקורית למשתמש. -
model_response: הפלט בפועל שנוצר על ידי המודל. -
rubrics: רשימה של קריטריונים ספציפיים לדוגמה הזו, כייצוג מחרוזת של רשימת מחרוזות. -
rubrics_evaluations: רשימה של ערכים בוליאניים שמציינים אם כל קריטריון הערכה הושג, כייצוג מחרוזתי של רשימת ערכים בוליאניים.
אפשר להשתמש באותם קריטריונים בכל השורות או להתאים אותם לכל דוגמה.
import pandas as pd
import vertexai
from vertexai import types
PROJECT_NAME = "YOUR_PROJECT_NAME"
LOCATION = "YOUR_LOCATION" # e.g. "us-central1"
client = vertexai.Client(project=PROJECT_NAME, location=LOCATION)
system_instructions = "You are an AI assistant skilled in analyzing articles. Your task is to extract key arguments, evaluate evidence quality, identify potential biases, and summarize core findings into a concise, actionable, and objective report. Make sure the response is less than 50 words"
df = pd.DataFrame(
[
{
"prompt": "prompt1",
"model_response": "response1",
"rubrics": "['Response is in English', 'Under 50 words']",
"rubrics_evaluations": "[True, True]",
},
{
"prompt": "prompt2",
"model_response": "response2",
"rubrics": "['Response is in English', 'Under 50 words']",
"rubrics_evaluations": "[True, False]",
},
]
)
config = vertexai.types.OptimizeConfig(
optimization_target=vertexai.types.OptimizeTarget.OPTIMIZATION_TARGET_FEW_SHOT_RUBRICS,
examples_dataframe=df,
)
response = client.prompts.optimize(prompt=system_instructions, config=config)
print(response.parsed_response.suggested_prompt)
אופטימיזציה באמצעות תשובות יעד
אם אין לכם קריטריונים ספציפיים אבל יש לכם תשובה אידיאלית או "תקן זהב" לכל הנחיה, אתם יכולים להשתמש באופטימיזציה שמבוססת על תשובות יעד. הכלי לאופטימיזציה משווה את הפלט של המודל לפלט האידיאלי ומתאים את ההוראות כדי לגשר על הפער.
ה-DataFrame צריך לכלול את שלוש העמודות הבאות:
-
prompt: ההוראה המקורית של המשתמש. -
model_response: הפלט הנוכחי של המודל שצריך לשפר. -
target_response: התגובה האידיאלית שרוצים שהמודל ייצור.
import pandas as pd
import vertexai
from vertexai import types
PROJECT_NAME = "PROJECT"
LOCATION = "YOUR_LOCATION" # e.g. "us-central1"
client = vertexai.Client(project=YOUR_PROJECT_NAME, location=LOCATION)
system_instructions = "You are an AI assistant skilled in analyzing articles. Your task is to extract key arguments, evaluate evidence quality, identify potential biases, and summarize core findings into a concise, actionable, and objective report. Make sure the response is less than 50 words"
df = pd.DataFrame(
{
"prompt": ["prompt1", "prompt2"],
"model_response": ["response1", "response2"],
"target_response": ["target1", "target2"],
}
)
config = vertexai.types.OptimizeConfig(
optimization_target=vertexai.types.OptimizeTarget.OPTIMIZATION_TARGET_FEW_SHOT_TARGET_RESPONSE,
examples_dataframe=df,
)
response = client.prompts.optimize(
prompt=system_instructions,
config=config,
)
print(response.parsed_response.suggested_prompt)