במאמר הזה מוסבר איך להשתמש בכלי האופטימיזציה מבוסס-הנתונים כדי לשפר באופן אוטומטי את הביצועים של ההנחיות, על ידי שיפור ההוראות למערכת עבור קבוצה של הנחיות.
הכלי לביצוע אופטימיזציה מבוססת-נתונים יכול לעזור לכם לשפר את ההנחיות במהירות ובקנה מידה גדול, בלי שתצטרכו לשכתב באופן ידני את הוראות המערכת או הנחיות ספציפיות. האפשרות הזו שימושית במיוחד כשרוצים להשתמש בהנחיות מערכת ובהנחיות שנכתבו למודל אחד עם מודל אחר.
דוגמה לאופטימיזציה של הנחיה
לדוגמה, כדי לבצע אופטימיזציה של הוראות המערכת עבור קבוצה של הנחיות שמפנות למידע הקשרי כדי לענות על שאלות בנושא בישול, אפשר להשתמש בכלי האופטימיזציה מבוסס-הנתונים. כדי להשלים את המשימה הזו, צריך להכין את נתוני הקלט באופן הבא:
הוראות מערכת
You are a professional chef. Your goal is teaching how to cook healthy cooking recipes to your apprentice. Given a question from your apprentice and some context, provide the correct answer to the question. Use the context to return a single and correct answer with some explanation.
תבנית הנחיה
Question: {input_question}
Facts: {input_context}
הנחיות לדוגמה
input_question |
input_context |
|---|---|
| אילו טכניקות בישול של בשר אדום ובשר חזיר מאפשרות להפיק את הטעם והמרקם הטובים ביותר, תוך צמצום היווצרות של תרכובות לא בריאות? | כדי להבטיח בטיחות, צריך לבשל בשר אדום ובשר חזיר לטמפרטורה פנימית של 63 מעלות צלזיוס. השריית בשר במרינדה עם רכיבים חומציים כמו מיץ לימון או חומץ יכולה לעזור לרכך אותו על ידי פירוק סיבי שריר קשים. שיטות בישול בחום גבוה, כמו צלייה על הגריל וטיגון במחבת, יכולות ליצור השחמה וקרמליזציה טעימות, אבל חשוב להימנע מחריכה, שעלולה ליצור תרכובות מזיקות. |
| אילו דרכים יצירתיות יש להוסיף טעם וערך תזונתי לשייקים של חלבון בלי להשתמש בתוספי סוכר או ברכיבים מלאכותיים? | הוספת ירקות עליים כמו תרד או קייל היא דרך מצוינת להגדיל את הערך התזונתי של השייק בלי לשנות את הטעם שלו באופן משמעותי. שימוש בחלב שקדים לא ממותק או במי קוקוס במקום חלב רגיל יכול להוסיף מתיקות עדינה וגם שומנים בריאים או אלקטרוליטים. ידעתם שערבוב יתר של השייק עלול לחמם אותו? כדי לשמור על המיקסר קריר ורענן, מפעילים אותו לפרקי זמן קצרים יותר ומפסיקים אותו מדי פעם אם צריך. |
הוראות מערכת אופטימליות
As a highly skilled chef with a passion for healthy cooking, you love sharing your knowledge with aspiring chefs. Today, a culinary intern approaches you with a question about healthy cooking. Given the intern's question and some facts, provide a clear, concise, and informative answer that will help the intern excel in their culinary journey.
איך האופטימיזציה פועלת
הכלי לשיפור הביצועים מבוסס-הנתונים מקבל את הפרמטרים הבאים:
- מצב אופטימיזציה: מציין מה צריך לעבור אופטימיזציה. הוא יכול להיות אחת מהאפשרויות הבאות:
-
instruction: אופטימיזציה של הוראות המערכת. -
demonstration: בחירת הנחיות לדוגמה להוספה להוראות המערכת כדוגמאות מכמה דוגמאות. -
instruction_and_demo: מבצע את שתי הפעולות שלמעלה.
-
- מדדי הערכה: המדדים שמשמשים את הכלי לאופטימיזציה מבוססת-נתונים כדי לבצע אופטימיזציה של הוראות המערכת ו/או לבחור הנחיות לדוגמה.
- מודל היעד: המודל של Google שעליו מבוסס האופטימיזציה מבוססת-הנתונים, שמשפר את הוראות המערכת ובוחר הנחיות לדוגמה.
כשמריצים את הכלי לאופטימיזציה מבוססת-נתונים, הוא מבצע אופטימיזציה של הוראות המערכת על סמך הבחירות שלכם. הוא עושה זאת על ידי הרצת משימת אימון בהתאמה אישית, שבה הוא מעריך באופן איטרטיבי את ההנחיות לדוגמה וכותב מחדש את הוראות המערכת כדי למצוא את הגרסה שמניבה את ציון ההערכה הטוב ביותר למודל היעד.
בסיום העבודה, הכלי לאופטימיזציה מבוססת-נתונים מפיק את הוראות המערכת שעברו אופטימיזציה, עם ציון ההערכה שלהן.
מדדי הערכה
הכלי לאופטימיזציה מבוססת-נתונים משתמש במדדי הערכה כדי לבצע אופטימיזציה של הוראות המערכת ולבחור הנחיות לדוגמה. אתם יכולים להשתמש במדדי ההערכה הרגילים או להגדיר מדדי הערכה מותאמים אישית משלכם. הערה: כל מדדי ההערכה חייבים להיות כאלה שבהם ציון גבוה יותר מצביע על ביצועים טובים יותר.
אפשר להשתמש בכמה מדדים בו-זמנית. עם זאת, אפשר להשתמש רק במדד מותאם אישית אחד בכל פעם. אם משתמשים במדדים רגילים ובמדדים מותאמים אישית ביחד, רק אחד מהמדדים יכול להיות מדד מותאם אישית. המדדים האחרים חייבים להיות מדדים רגילים.
כדי ללמוד איך מציינים מדדים אחד בכל פעם או בשילוב, אפשר לעיין בקטע EVALUATION_METRIC_PARAMETERS בכרטיסייה SDK במאמר יצירת תבנית הנחיה והוראות מערכת.
מדדי הערכה מותאמים אישית
מדדים מותאמים אישית שימושיים כשמדדים רגילים לא מתאימים לאפליקציה שלכם. שימו לב: הכלי לשיפור הביצועים שמבוסס על נתונים תומך רק במדד מותאם אישית אחד בכל פעם.
מידע נוסף על יצירת מדדים מותאמים אישית זמין במאמר יצירת מדדים מותאמים אישית.
מדדי הערכה רגילים
הכלי לאופטימיזציה מבוססת-נתונים תומך במדדי הערכה מותאמים אישית, ובנוסף במדדי ההערכה הבאים:
| סוג מדד | תרחיש שימוש | מדד | תיאור |
|---|---|---|---|
| מבוסס על מודל | סיכום | summarization_quality |
מתאר את היכולת של המודל לענות על שאלות בהתבסס על גוף טקסט שמשמש כהפניה. |
| מענה לשאלות | question_answering_correctness* |
מתאר את היכולת של המודל לענות על שאלה בצורה נכונה. | |
question_answering_quality |
מתאר את היכולת של המודל לענות על שאלות בהתבסס על גוף טקסט שמשמש כהפניה. | ||
| עקביות | coherence |
מתאר את היכולת של המודל לספק תשובה עקבית ומודד את מידת הרצף הלוגי של הטקסט שנוצר ואת מידת ההיגיון שלו. | |
| בטיחות | safety |
תיאור של רמת הבטיחות של המודל, כלומר, האם התשובה מכילה טקסט לא בטוח. | |
| שליטה בשפה | fluency |
מתאר את רמת השליטה של המודל בשפה. | |
| התבססות על מידע | groundedness |
מתאר את היכולת של המודל לספק מידע שכלול רק בטקסט הקלט או להפנות אליו. | |
| Comet | comet** |
מתאר את היכולת של המודל מבחינת איכות התרגום בהשוואה לתרגום הייחוס. | |
| MetricX | metricx** |
מתאר את היכולת של המודל מבחינת איכות התרגום. | |
| מבוסס על חישוב | שימוש בכלים וקריאה לפונקציות | tool_call_valid* |
מתאר את היכולת של המודל לחזות קריאה תקינה לכלי. |
tool_name_match* |
תיאור היכולת של המודל לחזות קריאה לכלי עם שם הכלי הנכון. נבדקת רק הקריאה הראשונה לכלי. | ||
tool_parameter_key_match* |
מתאר את היכולת של המודל לחזות קריאה לכלי עם שמות הפרמטרים הנכונים. | ||
tool_parameter_kv_match* |
מתאר את היכולת של המודל לחזות קריאה לכלי עם השמות הנכונים של הפרמטרים וערכי המפתח. | ||
| יצירת טקסט כללי | bleu* |
השדה הזה מכיל את התוצאה של אלגוריתם להערכת האיכות של התחזית, שתורגמה משפה טבעית אחת לשפה טבעית אחרת. איכות התחזית נמדדת לפי ההתאמה בין פרמטר של תחזית לבין פרמטר ההתייחסות שלו. | |
exact_match* |
הפונקציה מחשבת אם פרמטר של חיזוי תואם בדיוק לפרמטר של הפניה. | ||
rouge_1* |
הפרמטר הזה משמש להשוואה בין פרמטר החיזוי שצוין לבין פרמטר ייחוס. | ||
rouge_2* |
|||
rouge_l* |
|||
rouge_l_sum* |
* אם רוצים לבצע אופטימיזציה של ההנחיות באמצעות הערכות מבוססות-question_answering_correctness או חישובים, צריך לבצע אחת מהפעולות הבאות:
- מוסיפים משתנה שמייצג את התשובה האמיתית לבקשות לתבנית הבקשה.
אם אין לכם תשובות מסוג אמת קרקע להנחיות, אבל השתמשתם בהנחיות בעבר עם מודל של Google והשגתם את התוצאות הרצויות, אתם יכולים להוסיף את הפרמטר
source_modelלהגדרות במקום להוסיף תשובות מסוג אמת קרקע. כשהפרמטרsource_modelמוגדר, הכלי לאופטימיזציה מבוססת-נתונים מריץ את ההנחיות לדוגמה במודל המקור כדי ליצור בשבילכם את התשובות מסוג אמת קרקע.הפרמטר
source_modelצריך לשמש רק לשדרוג או להעברה של מודל.
** אם רוצים לבצע אופטימיזציה של ההנחיות באמצעות comet או metricx, צריך לספק את הפרמטר translation_source_field_name להגדרה, שמציין את שם השדה המתאים של טקסט המקור בנתונים. בנוסף, הערך של MetricX שונה לטווח שבין 0 (הגרוע ביותר) ל-25 (הטוב ביותר) כדי להתאים למאפיין 'הערך הגדול יותר טוב יותר'.
לפני שמתחילים
כדי לוודא שלחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine יש את ההרשאות הנדרשות לאופטימיזציה של הנחיות, צריך לבקש מהאדמין להקצות לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine את תפקידי ה-IAM הבאים בפרויקט:
- משתמש ב-Agent Platform (
roles/aiplatform.user) - אדמין של אובייקטים באחסון (
roles/storage.objectAdmin) - קורא של Artifact Registry (
roles/artifactregistry.reader) -
אם משתמשים במדדים מותאמים אישית:
- Cloud Run Developer (
roles/run.developer) - Cloud Run Invoker (
roles/run.invoker) - Agent Platform Service Agent (
roles/aiplatform.serviceAgent)
- Cloud Run Developer (
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שהאדמין גם יוכל לתת לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אופטימיזציה של ההנחיות
אפשר לבצע אופטימיזציה להנחיות בדרכים הבאות:
- שימוש בכלי לאופטימיזציה של הנחיות ב-Gemini Enterprise Agent Platform Console
- באמצעות Agent Platform API
- להריץ את ה-notebook של כלי האופטימיזציה להנחיות ב-Agent Platform.
כדי לבצע אופטימיזציה של הנחיות, בוחרים את השיטה שרוצים להשתמש בה ופועלים לפי השלבים שמפורטים בקטעים הבאים:
- יצירת תבנית הנחיה והוראות מערכת
- הכנת הנחיות לדוגמה
- אופציונלי: יצירת מדדים מותאמים אישית
- יצירת הגדרה
- הפעלת משימת אופטימיזציה של הנחיות
- ניתוח התוצאות וביצוע שינויים
יצירת תבנית הנחיה והוראות מערכת
תבניות של הנחיות מגדירות את הפורמט של כל ההנחיות באמצעות משתנים שניתן להחליף. כשמשתמשים בתבנית של הנחיה כדי לבצע אופטימיזציה של הנחיות, המשתנים מוחלפים בנתונים במערך הנתונים של ההנחיה.
משתנים בתבנית של הנחיה צריכים לעמוד בדרישות הבאות:
- חובה להוסיף סוגריים מסולסלים למשתנים
- אסור לכלול רווחים או מקפים
-בשמות של משתנים משתנים שמייצגים קלטים מרובי-אופנים צריכים לכלול את המחרוזת
MIME_TYPEאחרי המשתנה:@@@MIME_TYPE
מחליפים את
MIME_TYPEבסוג MIME של תמונה, סרטון, אודיו או מסמך שנתמך על ידי מודל היעד.
יוצרים תבנית הנחיה והוראות למערכת באחת מהשיטות הבאות:
Notebook
אם רוצים להריץ את הכלי לאופטימיזציה מבוססת-נתונים דרך המחברת, צריך ליצור הוראות למערכת ותבנית הנחיה באופן הבא:
ב-Colab Enterprise, פותחים את מחברת האופטימיזציה של ההנחיות ב-Gemini Enterprise Agent Platform.
מעבר ל-notebook של Gemini Enterprise Agent Platform לאופטימיזציה של הנחיות
בקטע Create a prompt template and system instructions, מבצעים את הפעולות הבאות:
בשדה SYSTEM_INSTRUCTION, מזינים את הוראות המערכת. לדוגמה:
Based on the following images and articles respond to the questions.'\n' Be concise, and answer \"I don't know\" if the response cannot be found in the provided articles or images.
בשדה PROMPT_TEMPLATE, מזינים את תבנית ההנחיה. לדוגמה:
Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}אם רוצים לבצע אופטימיזציה של ההנחיות באמצעות הערכות מבוססות-חישוב או
question_answering_correctness, צריך לבצע אחת מהפעולות הבאות:
מוסיפים את המשתנה
{target}לתבנית ההנחיה כדי לייצג את התשובה האמיתית של ההנחיה. לדוגמה:Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}\n\n Answer: {target}אם אין לכם תשובות מסוג אמת קרקע להנחיות, אבל השתמשתם בהנחיות בעבר עם מודל של Google והשגתם את התוצאות הרצויות, אתם יכולים להוסיף את הפרמטר
source_modelלהגדרות במקום להוסיף תשובות מסוג אמת קרקע. כשהפרמטרsource_modelמוגדר, הכלי לאופטימיזציה מבוססת-נתונים מריץ את ההנחיות לדוגמה במודל המקור כדי ליצור בשבילכם את התשובות מסוג אמת קרקע.
SDK
אם רוצים להריץ את הכלי לאופטימיזציה מבוססת-נתונים דרך ה-SDK בלי להשתמש ב-Notebook, צריך ליצור קובצי טקסט לתבנית ההנחיה ולהוראות המערכת. כדי לעשות את זה:
יוצרים קובץ טקסט להוראות המערכת.
בתיבת הטקסט, מגדירים את ההוראות למערכת. לדוגמה:
Based on the following images and articles respond to the questions.'\n' Be concise, and answer \"I don't know\" if the response cannot be found in the provided articles or images.
יוצרים קובץ טקסט לתבנית ההנחיה.
בקובץ הטקסט, מגדירים תבנית הנחיה שכוללת משתנה אחד או יותר. לדוגמה:
Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}אם רוצים לבצע אופטימיזציה של ההנחיות באמצעות הערכות מבוססות-חישוב או
question_answering_correctness, צריך לבצע אחת מהפעולות הבאות:מוסיפים את המשתנה
{target}לתבנית ההנחיה כדי לייצג את התשובה האמיתית של ההנחיה. לדוגמה:Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}\n\n Answer: {target}אם אין לכם תשובות מסוג אמת קרקע להנחיות, אבל השתמשתם בהנחיות בעבר עם מודל של Google והשגתם את התוצאות הרצויות, אתם יכולים להוסיף את הפרמטר
source_modelלהגדרות במקום להוסיף תשובות מסוג אמת קרקע. כשהפרמטרsource_modelמוגדר, הכלי לאופטימיזציה מבוססת-נתונים מריץ את ההנחיות לדוגמה במודל המקור כדי ליצור בשבילכם את התשובות מסוג אמת קרקע.
הכנת הנחיות לדוגמה
כדי להפיק את התוצאות הטובות ביותר מהכלי לשיפור הביצועים שמבוסס על נתונים, מומלץ להשתמש ב-50 עד 100 הנחיות לדוגמה.
- הכלי יכול להיות יעיל גם עם 5 הנחיות לדוגמה בלבד.
- הדוגמאות הטובות ביותר כוללות מקרים שבהם מודל היעד מפיק ביצועים נמוכים ומקרים שבהם מודל היעד מפיק ביצועים טובים.
ההנחיות לדוגמה מכילות את הנתונים שמחליפים את המשתנים בתבנית ההנחיה. אפשר להשתמש בקובץ JSONL או CSV כדי לאחסן את ההנחיות לדוגמה.
קובץ JSONL
- יוצרים קובץ JSONL.
בקובץ JSONL, מוסיפים את נתוני ההנחיות שמחליפים כל משתנה. לדוגמה:
{"article_1": "The marine life …", "image_1": "gs://path_to_image", "Question": "What are some most effective ways to reduce ocean pollution?", "target": "The articles and images don't answer this question."} {"article_1": "During the year …", "image_1": "gs://path_to_image", "Question": "Who was the president in 2023?", "target": "Joe Biden"}
קובץ CSV
- יוצרים קובץ CSV.
- בשורה הראשונה, מוסיפים את המשתנים מתבנית ההנחיה.
- בשורות הבאות, מוסיפים את הנתונים לדוגמה שמחליפים כל משתנה.
- מעלים את קובץ ה-CSV לקטגוריה של Cloud Storage.
אופציונלי: יצירת מדדים מותאמים אישית
כדי ליצור מדד מותאם אישית:
יוצרים קובץ טקסט בשם
requirements.txt.בקובץ
requirements.txt, מגדירים את הספריות הנדרשות לפונקציית מדד ההערכה המותאם אישית. כל הפונקציות דורשות את חבילתfunctions-framework.לדוגמה, קובץ
requirements.txtשל מדד מותאם אישית שמחשב את ROUGE-L ייראה בערך כך:functions-framework==3.* rouge-score
יוצרים קובץ Python בשם
main.py.כותבים את פונקציית ההערכה המותאמת אישית בקובץ
main.py. הפונקציה צריכה לקבל את הפרמטרים הבאים:- בקשות HTTP POST
- קלט JSON שמכיל את
response, שהוא הפלט מ-LLM, ואתreference, שהוא התשובה האמיתית להנחיה אם היא סופקה במערך הנתונים של ההנחיות.
לדוגמה, קובץ
main.pyשל מדד מותאם אישית שמחשב את ROUGE-L ייראה בערך כך:from typing import Any import json import functions_framework from rouge_score import rouge_scorer # Register an HTTP function with the Functions Framework @functions_framework.http def main(request): request_json = request.get_json(silent=True) if not request_json: raise ValueError('Can not find request json.') """Extract 'response' and 'reference' from the request payload. 'response' represents the model's response, while 'reference' represents the ground truth response.""" response = request_json['response'] reference = request_json['reference'] # Compute ROUGE-L F-measure scorer = rouge_scorer.RougeScorer(['rougeL'], use_stemmer=True) scores = scorer.score(reference, response) final_score = scores['rougeL'].fmeasure # Return the custom score in the response return json.dumps({ # The following key is the CUSTOM_METRIC_NAME that you pass to the job 'custom_accuracy': final_score, # The following key is optional 'explanation': 'ROUGE_L F-measure between reference and response', })פורסים את פונקציית ההערכה המותאמת אישית כפונקציית Cloud Run באמצעות הפעלת הפקודה
gcloud functions deploy:gcloud functions deploy FUNCTION_NAME \ --project PROJECT_ID \ --gen2 \ --memory=2Gb \ --concurrency=6 \ --min-instances 6 \ --region=REGION \ --runtime="python310" \ --source="." \ --entry-point main \ --trigger-http \ --timeout=3600 \ --quiet
מחליפים את מה שכתוב בשדות הבאים:
-
FUNCTION_NAME: השם של מדד ההערכה המותאם אישית. PROJECT_ID: מזהה הפרויקט.-
REGION: האזור שבו רוצים לפרוס את הפונקציה. האזור צריך להיות זהה לאזור שבו משתמשים במודל היעד.
-
יצירת הגדרה
ההגדרה של האופטימיזציה מבוססת-הנתונים מציינת את הפרמטרים שרוצים להגדיר למשימת האופטימיזציה של ההנחיות.
שימו לב: למודלים של Gemma אין ממשקי API מנוהלים ב-Gemini Enterprise Agent Platform. כדי להשתמש במודל Gemma, צריך קודם לפרוס אותו ב-Gemini Enterprise Agent Platform או במחשב המקומי. מידע נוסף על פריסה ב-Gemini Enterprise Agent Platform זמין במאמר בנושא שימוש במודלים פתוחים של Gemma. מידע נוסף על פריסה במחשב המקומי זמין במאמר בנושא הרצת Gemma עם Ollama.
יוצרים הגדרה באחת מהדרכים הבאות:
Notebook
אם רוצים להריץ את הכלי לאופטימיזציה מבוססת-נתונים דרך המחברת, צריך ליצור הגדרה באופן הבא:
ב-Colab Enterprise, פותחים את מחברת האופטימיזציה מבוססת הנתונים.
מעבר ל-notebook של Gemini Enterprise Agent Platform לאופטימיזציה של הנחיות
בקטע Configure project settings (הגדרת הגדרות הפרויקט), מבצעים את הפעולות הבאות:
- בשדה PROJECT_ID, מזינים את מזהה הפרויקט.
- בשדה LOCATION, מזינים את המיקום שבו רוצים להפעיל את הכלי לשיפור הביצועים שמבוסס על נתונים.
- בשדה OUTPUT_PATH, מזינים את ה-URI של דלי Cloud Storage שבו רוצים שהכלי לאופטימיזציה מבוססת-נתונים יכתוב את ההוראות המערכתיות המותאמות ו/או את הדוגמאות המועטות.
לדוגמה,
gs://bucket-name/output-path. - בשדה INPUT_PATH, מזינים את ה-URI של ההנחיות לדוגמה בקטגוריה של Cloud Storage. לדוגמה,
gs://bucket-name/sample-prompts.jsonl.
בקטע Configure optimization settings (הגדרת הגדרות האופטימיזציה), מבצעים את הפעולות הבאות:
- בשדה TARGET_MODEL, מזינים את המודל שעבורו רוצים לבצע אופטימיזציה של ההנחיות.
- בשדה THINKING_BUDGET, מזינים את תקציב החשיבה של מודל היעד שרוצים לבצע אופטימיזציה של ההנחיות שלו. ברירת המחדל היא -1, כלומר לא מתבצעת העמקה במודלים שאינם מודלים של העמקה, ומתבצעת העמקה אוטומטית במודלים של העמקה כמו Gemini-2.5. מידע נוסף על הגדרות תקציב ידניות
- בעמודה OPTIMIZATION_MODE, מזינים את מצב האופטימיזציה שרוצים להשתמש בו. צריך לבחור באחת מהאפשרויות הבאות:
-
instruction: אופטימיזציה של הוראות המערכת. -
demonstration: בוחר הנחיות לדוגמה להוספה להוראות המערכת כדוגמאות ליצירת הנחיות מכמה דוגמאות. -
instruction_and_demo: מבצע את שתי הפעולות שלמעלה.
-
- בשדה EVAL_METRIC, מזינים מדד הערכה שרוצים לבצע אופטימיזציה של ההנחיות עבורו.
- אופציונלי: בשדה SOURCE_MODEL, מזינים את המודל של Google שהמערכת השתמשה בו בעבר להוראות ולהנחיות. כשמגדירים את הפרמטר
source_model, האופטימיזציה מבוססת-הנתונים מריצה את ההנחיות לדוגמה במודל המקור כדי ליצור בשבילכם את התשובות האמיתיות, למדדי הערכה שדורשים תשובות אמיתיות. אם לא הפעלתם בעבר את ההנחיות שלכם עם מודל של Google או שלא השגתם את תוצאות היעד, תוכלו להוסיף להנחיה תשובות של מקורות מהימנים. מידע נוסף זמין בקטע יצירת הנחיה והוראות למערכת במסמך הזה.
אופציונלי: בקטע הגדרת הגדרות מתקדמות של אופטימיזציה, אפשר להוסיף פרמטרים אופציונליים להגדרה.
- בשדה NUM_INST_OPTIMIZATION_STEPS, מזינים את מספר האיטרציות שבהן משתמש הכלי לאופטימיזציה מבוססת-נתונים במצב אופטימיזציה של הוראות. זמן הריצה גדל באופן לינארי ככל שהערך הזה גדל. הערך חייב להיות מספר שלם בין
10ל-20. אם לא מגדירים ערך, ברירת המחדל היא10. - בשדה NUM_DEMO_OPTIMIZATION_STEPS, מזינים את מספר ההדגמות שהכלי לאופטימיזציה מבוססת-נתונים מעריך.
נעשה שימוש במצב אופטימיזציה
demonstrationו-instruction_and_demo. חייב להיות מספר שלם בין10לבין30. אם לא מגדירים את המדיניות, ברירת המחדל היא10. - בשדה NUM_DEMO_PER_PROMPT, מזינים את מספר ההדגמות שנוצרות לכל הנחיה. הערך צריך להיות מספר שלם בין
2לבין מספר ההנחיות הכולל לדוגמה פחות 1. אם לא מגדירים את המדיניות, ברירת המחדל היא3. - בשדה TARGET_MODEL_QPS, מזינים את מספר השאילתות לשנייה (QPS)
שהכלי לשיפור הביצועים מבוסס-הנתונים שולח למודל היעד.
זמן הריצה יורד באופן לינארי ככל שמגדילים את הערך הזה. הערך חייב להיות מספר עשרוני שגדול מ-
3.0או שווה לו, אבל קטן מהמכסה של QPS שיש לכם במודל היעד. אם לא מגדירים את המדיניות, ברירת המחדל היא3.0. - בשדה SOURCE_MODEL_QPS, מזינים את מספר השאילתות לשנייה (QPS) שהכלי לאופטימיזציה מבוססת-נתונים שולח למודל המקור. הערך צריך להיות מספר עשרוני שגדול מ-
3.0או שווה לו, אבל קטן ממכסת ה-QPS שהוגדרה לכם במודל המקור. אם לא מגדירים ערך, ברירת המחדל היא3.0. - בשדה EVAL_QPS, מזינים את מספר השאילתות לשנייה (QPS) שהכלי לשיפור הביצועים מבוסס-הנתונים שולח לשירות ההערכה של AI גנרטיבי או לפונקציית Cloud Run.
- למדדים שמבוססים על מודלים, הערך חייב להיות מספר נקודה צפה שגדול מ-
3.0או שווה לו. אם לא מגדירים את המדיניות, ברירת המחדל היא3.0. - במקרה של מדדים מותאמים אישית, הערך צריך להיות מספר עשרוני שגדול מ-
3.0או שווה לו. הערך הזה קובע את התדירות שבה הכלי האוטומטי לשיפור הביצועים שמבוסס על נתונים קורא לפונקציות Cloud Run של המדד המותאם אישית.
- למדדים שמבוססים על מודלים, הערך חייב להיות מספר נקודה צפה שגדול מ-
- אם רוצים להשתמש ביותר ממדד הערכה אחד, מבצעים את הפעולות הבאות:
- בשדה EVAL_METRIC_1, מזינים מדד הערכה שרוצים להשתמש בו.
- בשדה EVAL_METRIC_1_WEIGHT, מזינים את המשקל שרוצים שמערכת האופטימיזציה מבוססת-הנתונים תשתמש בו כשהיא תפעיל את האופטימיזציה.
- בשדה EVAL_METRIC_2, מזינים מדד הערכה שרוצים להשתמש בו.
- בשדה EVAL_METRIC_2_WEIGHT, מזינים את המשקל שרוצים שמנגנון האופטימיזציה מבוסס-הנתונים ישתמש בו כשהוא יפעיל את האופטימיזציה.
- בשדה EVAL_METRIC_3, אפשר להזין מדד הערכה שרוצים להשתמש בו.
- בשדה EVAL_METRIC_3_WEIGHT, אפשר להזין את המשקל שרוצים שמנגנון האופטימיזציה מבוסס-הנתונים ישתמש בו כשהוא מריץ את האופטימיזציה.
- בשדה METRIC_AGGREGATION_TYPE, מזינים את המשקל שרוצים שמנגנון האופטימיזציה מבוסס-הנתונים ישתמש בו כשהוא מריץ את האופטימיזציה.
- בשדה PLACEHOLDER_TO_VALUE, מזינים את המידע שמחליף את המשתנים בהוראות המערכת. המידע שכלול בתג הזה לא עובר אופטימיזציה על ידי הכלי לאופטימיזציה מבוססת-נתונים.
- בשדה RESPONSE_MIME_TYPE, מזינים את סוג התגובה של MIME שבו משתמש מודל היעד. הערך חייב להיות
text/plainאוapplication/json. אם לא מגדירים את המדיניות, ברירת המחדל היאtext/plain. - בשדה TARGET_LANGUAGE, מזינים את שפת ההוראות של המערכת. אם לא מגדירים שפה, ברירת המחדל היא אנגלית.
SDK
אם רוצים להריץ את הכלי לשיפור הנחיות מבוסס-נתונים באמצעות ה-SDK, צריך ליצור קובץ JSON עם הפרמטרים שרוצים להשתמש בהם כדי לשפר את ההנחיות. לשם כך:
יוצרים קובץ JSON עם הפרמטרים שרוצים להשתמש בהם כדי לבצע אופטימיזציה של ההנחיות. כל קובץ תצורה צריך לכלול את הפרמטרים הבאים. ההגדרה משתנה מעט בין
vertexai.types.PromptOptimizerMethod.OPTIMIZATION_TARGET_GEMINI_NANOלביןvertexai.types.PromptOptimizerMethod.VAPO.VAPO
{ "project": "PROJECT_ID", "system_instruction": "SYSTEM_INSTRUCTION", "prompt_template": "PROMPT_TEMPLATE", "target_model": "TARGET_MODEL", "thinking_budget": "THINKING_BUDGET", EVALUATION_METRIC_PARAMETERS, "optimization_mode": "OPTIMIZATION_MODE", "input_data_path": "SAMPLE_PROMPT_URI", "output_path": "OUTPUT_URI" }GEMINI_NANO
{ "project": "PROJECT_ID", "system_instruction": "SYSTEM_INSTRUCTION", "prompt_template": "PROMPT_TEMPLATE", "target_model": "TARGET_MODEL", "target_model_endpoint_url": "BASE_URL", EVALUATION_METRIC_PARAMETERS, "optimization_mode": "OPTIMIZATION_MODE", "input_data_path": "SAMPLE_PROMPT_URI", "output_path": "OUTPUT_URI" }מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
SYSTEM_INSTRUCTION: ההוראות למערכת שרוצים לבצע אופטימיזציה שלהן. -
PROMPT_TEMPLATE: תבנית ההנחיה. -
TARGET_MODEL: המודל שעבורו רוצים לבצע אופטימיזציה של ההנחיות. לדוגמה,gemma-3n-e4b-it. -
BASE_URL: כתובת ה-URL הבסיסית של המודל שנפרס באופן מקומי. לדוגמה,http://localhost:8000/v1. נדרש להגדרתOPTIMIZATION_TARGET_GEMINI_NANO. אם אתם לא משתמשים במודל שפרוס באופן מקומי, צריך להסיר את השדהtarget_model_endpoint_urlמההגדרות. -
THINKING_BUDGET: תקציב החשיבה של מודל היעד שרוצים לבצע אופטימיזציה של ההנחיות שלו. ברירת המחדל היא -1, כלומר לא מתבצעת חשיבה במודלים שאינם מודלים של חשיבה, וחשיבה אוטומטית במודלים של חשיבה כמו Gemini-2.5. מידע על הגדרות תקציב ידניות זמין במאמר שיקולים. שימו לב שדגמים מסוימים, כמו דגמי Gemma, לא תומכים ב-thinking_budget.
EVALUATION_METRIC_PARAMETERS: הפרמטרים שאתם מציינים תלויים במספר מדדי ההערכה שבהם אתם משתמשים, ובשאלה אם המדדים הם סטנדרטיים או מותאמים אישית:מדד רגיל יחיד
אם אתם משתמשים במדד הערכה סטנדרטי אחד, אתם יכולים להשתמש בפרמטר הבא:
"eval_metric": "EVALUATION_METRIC",
מחליפים את
EVALUATION_METRICבמדד שרוצים לבצע אופטימיזציה של ההנחיות עבורו.מדד מותאם אישית יחיד
אם אתם משתמשים במדד מותאם אישית אחד להערכה, צריך להשתמש בפרמטרים הבאים:
"eval_metric": "custom_metric", "custom_metric_name": "CUSTOM_METRIC_NAME", "custom_metric_cloud_function_name": "FUNCTION_NAME",
מחליפים את מה שכתוב בשדות הבאים:
-
CUSTOM_METRIC_NAME: שם המדד, כפי שמוגדר על ידי המפתח שמתאים ל-final_score. לדוגמה:custom_accuracy. -
FUNCTION_NAME: השם של פונקציית Cloud Run שפרסתם קודם.
מדדים רגילים מרובים
אם אתם משתמשים בכמה מדדי הערכה סטנדרטיים, אתם צריכים להשתמש בפרמטרים הבאים:
"eval_metrics_types": [EVALUATION_METRIC_LIST], "eval_metrics_weights": [EVAL_METRICS_WEIGHTS], "aggregation_type": "METRIC_AGGREGATION_TYPE",
מחליפים את מה שכתוב בשדות הבאים:
-
EVALUATION_METRIC_LIST: רשימה של מדדי הערכה. חייב להיות מערך. לדוגמה,"bleu", "summarization_quality". -
EVAL_METRICS_WEIGHTS: המשקל של כל מדד. הערך חייב להיות מערך באורך זהה ל-EVALUATION_METRIC_LIST. -
METRIC_AGGREGATION_TYPE: סוג הצבירה שמשמש למדדי ההערכה. הערך חייב להיותweighted_sumאוweighted_average. אם לא מגדירים את המדיניות, ברירת המחדל היאweighted_sum.
מדדים רגילים ומותאמים אישית
אם אתם משתמשים בכמה מדדי הערכה שכוללים שילוב של מדד מותאם אישית יחיד ומדד רגיל אחד או יותר, אתם צריכים להשתמש בפרמטרים הבאים:
"eval_metrics_types": ["custom_metric", EVALUATION_METRIC_LIST], "eval_metrics_weights": [EVAL_METRICS_WEIGHTS], "aggregation_type": "METRIC_AGGREGATION_TYPE", "custom_metric_name": "CUSTOM_METRIC_NAME", "custom_metric_cloud_function_name": "FUNCTION_NAME",
מחליפים את מה שכתוב בשדות הבאים:
-
EVALUATION_METRIC_LIST: רשימה של מדדי ההערכה הרגילים. חייב להיות מערך. לדוגמה,"bleu", "summarization_quality". -
EVAL_METRICS_WEIGHTS: המשקל של כל מדד. חייב להיות מערך. -
METRIC_AGGREGATION_TYPE: סוג הצבירה שמשמש למדדי ההערכה. הערך חייב להיותweighted_sumאוweighted_average. אם לא מגדירים את המדיניות, ברירת המחדל היאweighted_sum. -
CUSTOM_METRIC_NAME: שם המדד, כפי שמוגדר על ידי המפתח שמתאים ל-final_score. לדוגמה,custom_accuracy. -
FUNCTION_NAME: השם של פונקציית Cloud Run שפרסתם קודם.
-
OPTIMIZATION_MODE: מצב האופטימיזציה. הערך חייב להיות אחד מהערכים הבאים:-
instruction: אופטימיזציה של הוראות המערכת. -
demonstration: בוחר הנחיות לדוגמה להוספה להוראות המערכת כדוגמאות ליצירת הנחיות מכמה דוגמאות. -
instruction_and_demo: מבצע את שתי הפעולות שלמעלה.
-
SAMPLE_PROMPT_URI: ה-URI של ההנחיות לדוגמה בקטגוריה של Cloud Storage. לדוגמה,gs://bucket-name/sample-prompts.jsonl.
OUTPUT_URI: ה-URI של קטגוריית Cloud Storage שבה רוצים שמייעל ההוראות מבוסס-הנתונים יכתוב את ההוראות המערכתיות המותאמות ו/או את הדוגמאות המועטות. לדוגמה,gs://bucket-name/output-path.
בנוסף, אפשר להוסיף לקובץ ההגדרות כל אחד מהפרמטרים האופציונליים.
הפרמטרים האופציונליים מחולקים ל-5 קטגוריות:
- פרמטרים של תהליך האופטימיזציה. הפרמטרים האלה שולטים בתהליך האופטימיזציה הכולל, כולל משך הזמן שלו ומספר חזרות האופטימיזציה שהוא מבצע, וזה משפיע ישירות על איכות האופטימיזציות.
- פרמטרים של בחירת מודל ומיקום. הפרמטרים האלה מציינים אילו מודלים משמשים את הכלי לאופטימיזציה מבוססת-נתונים ואת המיקומים שבהם המודלים האלה משמשים.
- פרמטרים של זמן האחזור (QPS). הפרמטרים האלה שולטים ב-QPS, ומשפיעים על המהירות של תהליך האופטימיזציה.
- אחר פרמטרים אחרים ששולטים במבנה ובתכנים של ההנחיות.
הצגת פרמטרים אופציונליים
"num_steps": NUM_INST_OPTIMIZATION_STEPS, "num_demo_set_candidates": "NUM_DEMO_OPTIMIZATION_STEPS, "demo_set_size": NUM_DEMO_PER_PROMPT, "target_model_location": "TARGET_MODEL_LOCATION", "source_model": "SOURCE_MODEL", "source_model_location": "SOURCE_MODEL_LOCATION", "target_model_qps": TARGET_MODEL_QPS, "eval_qps": EVAL_QPS, "source_model_qps": SOURCE_MODEL_QPS, "response_mime_type": "RESPONSE_MIME_TYPE", "language": "TARGET_LANGUAGE", "placeholder_to_content": "PLACEHOLDER_TO_CONTENT", "data_limit": DATA_LIMIT
מחליפים את מה שכתוב בשדות הבאים:
פרמטרים של תהליך האופטימיזציה:
-
NUM_INST_OPTIMIZATION_STEPS: מספר האיטרציות שבהן נעשה שימוש באופטימיזציה מבוססת-נתונים במצב אופטימיזציה של הוראות. זמן הריצה גדל באופן לינארי ככל שהערך הזה גדל. הערך חייב להיות מספר שלם בין10ל-20. אם לא מגדירים ערך, ברירת המחדל היא10. -
NUM_DEMO_OPTIMIZATION_STEPS: מספר ההדגמות שהכלי לשיפור הביצועים מבוסס-הנתונים מעריך. בשימוש עם מצב האופטימיזציהdemonstrationו-instruction_and_demo. הערך צריך להיות מספר שלם בין2לבין המספר הכולל של ההנחיות לדוגמה פחות 1. אם לא מגדירים ערך, ברירת המחדל היא10. -
NUM_DEMO_PER_PROMPT: מספר ההדגמות שנוצרות לכל הנחיה. הערך חייב להיות מספר שלם בין3ל-6. אם לא מציינים ערך, ברירת המחדל היא3.
-
בחירת מודל ופרמטרים של מיקום:
-
TARGET_MODEL_LOCATION: המיקום שבו רוצים להריץ את מודל היעד. אם לא מציינים מיקום, ברירת המחדל היאus-central1. -
SOURCE_MODEL: המודל של Google שהיה בשימוש קודם בהנחיות ובשורות ההנחיה של המערכת. כשמגדירים את הפרמטרsource_model, הכלי לאופטימיזציה מבוססת-נתונים מריץ את ההנחיות לדוגמה במודל המקור כדי ליצור את התשובות האמיתיות בשבילכם, למדדי הערכה שנדרשות להם תשובות אמיתיות. אם לא הפעלתם בעבר את ההנחיות שלכם עם מודל של Google או שלא השגתם את תוצאות היעד, אתם יכולים להוסיף להנחיה תשובות של מקורות מהימנים. מידע נוסף זמין בקטע יצירת הנחיה והוראות למערכת במסמך הזה. -
SOURCE_MODEL_LOCATION: המיקום שבו רוצים להריץ את מודל המקור. אם לא מגדירים את המדיניות, ברירת המחדל היאus-central1.
-
פרמטרים של זמן אחזור (QPS):
-
TARGET_MODEL_QPS: מספר השאילתות לשנייה (QPS) שהכלי לאופטימיזציה מבוססת-נתונים שולח למודל היעד. זמן הריצה יורד באופן לינארי ככל שמגדילים את הערך הזה. הערך חייב להיות מספר עשרוני שגדול מ-3.0או שווה לו, אבל קטן ממכסת השאילתות לשנייה שמוגדרת לכם במודל היעד. אם לא מגדירים את המדיניות, ברירת המחדל היא3.0. -
EVAL_QPS: מספר השאילתות לשנייה (QPS) שהכלי לאופטימיזציה מבוססת-הנתונים שולח לשירות ההערכה של AI גנרטיבי או לפונקציית Cloud Run.- למדדים שמבוססים על מודלים, הערך חייב להיות מספר נקודה צפה שגדול מ-
3.0או שווה לו. אם לא מגדירים את המדיניות, ברירת המחדל היא3.0. - במקרה של מדדים מותאמים אישית, הערך צריך להיות מספר עשרוני שגדול מ-
3.0או שווה לו. הערך הזה קובע את התדירות שבה הכלי האוטומטי לשיפור הביצועים שמבוסס על נתונים קורא לפונקציות Cloud Run של המדד המותאם אישית.
- למדדים שמבוססים על מודלים, הערך חייב להיות מספר נקודה צפה שגדול מ-
-
SOURCE_MODEL_QPS: מספר השאילתות לשנייה (QPS) שהכלי לאופטימיזציה מבוססת-נתונים שולח למודל המקור. הערך חייב להיות מספר עשרוני שגדול מ-3.0או שווה לו, אבל קטן ממכסת השאילתות לשנייה שמוגדרת במודל המקור. אם לא מגדירים את המדיניות, ברירת המחדל היא3.0.
-
פרמטרים אחרים:
-
RESPONSE_MIME_TYPE: סוג התגובה של MIME שמשמש את מודל היעד. הערך חייב להיותtext/plainאוapplication/json. אם לא מגדירים את המדיניות, ברירת המחדל היאtext/plain. -
TARGET_LANGUAGE: שפת ההוראות של המערכת. אם לא מציינים שפה, ברירת המחדל היא אנגלית. -
PLACEHOLDER_TO_CONTENT: המידע שמחליף את המשתנים בהוראות המערכת. המידע שכלול בדגל הזה לא עובר אופטימיזציה על ידי הכלי לאופטימיזציה של הנחיות מבוססות-נתונים. -
DATA_LIMIT: כמות הנתונים שמשמשת לאימות. זמן הריצה גדל באופן לינארי בהתאם לערך הזה. חייב להיות מספר שלם בין5לבין100. אם לא מגדירים את המדיניות, ברירת המחדל היא100.
-
הפעלת הכלי לשיפור הנחיות
מריצים את הכלי לאופטימיזציה מבוססת-נתונים באמצעות אחת מהאפשרויות הבאות:
Notebook
כדי להריץ את הכלי לאופטימיזציה מבוססת-נתונים דרך המחברת:
ב-Colab Enterprise, פותחים את מחברת האופטימיזציה של ההנחיות ב-Gemini Enterprise Agent Platform.
בקטע Run prompt optimizer (הפעלת אופטימיזציה של הנחיות), לוחצים על play_circle Run cell (הפעלת תא).
כלי האופטימיזציה מבוסס-הנתונים פועל.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: המיקום שבו רוצים להריץ את הכלי לאופטימיזציה של הנחיות ב-Gemini Enterprise Agent Platform.
- PROJECT_ID: מזהה הפרויקט.
- JOB_NAME: שם למשימת האופטימיזציה של ההנחיות ב-Gemini Enterprise Agent Platform.
- PATH_TO_CONFIG: ה-URI של קובץ התצורה בקטגוריה של Cloud Storage.
לדוגמה,
gs://bucket-name/configuration.json.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs
גוף בקשת JSON:
{
"displayName": "JOB_NAME",
"jobSpec": {
"workerPoolSpecs": [
{
"machineSpec": {
"machineType": "n1-standard-4"
},
"replicaCount": 1,
"containerSpec": {
"imageUri": "us-docker.pkg.dev/vertex-ai-restricted/builtin-algorithm/apd:preview_v1_0",
"args": ["--config=PATH_TO_CONFIG""]
}
}
]
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content
התגובה אמורה להיראות כך:
SDK
מריצים את הכלי לאופטימיזציה מבוססת-נתונים דרך ה-SDK, על ידי הוספת קטעי הקוד הבאים ל-Colab או ל-Notebook.
מחליפים את הפרטים הבאים:
-
LOCATION: המיקום שבו רוצים להריץ את הכלי לאופטימיזציה מבוססת-נתונים. PROJECT_ID: מזהה הפרויקט.-
PROJECT_NUMBER: מספר הפרויקט, שזמין במסוף Google Cloud . -
PATH_TO_CONFIG: ה-URI של קובץ ההגדרות ב-Cloud Storage. לדוגמה,gs://bucket-name/configuration.json.
# Authenticate
from google.colab import auth
auth.authenticate_user(project_id=PROJECT_ID)
# Set the Service Account
SERVICE_ACCOUNT = f"{PROJECT_NUMBER}-compute@developer.gserviceaccount.com"
# Import Agent Platform SDK and Setup
import vertexai
vertexai.init(project=PROJECT_ID, location=LOCATION)
#Create the Agent Platform Client
client = vertexai.Client(project=PROJECT_ID, location=LOCATION)
# Setup the job dictionary
vapo_config = {
'config_path': PATH_TO_CONFIG,
'service_account': SERVICE_ACCOUNT,
'wait_for_completion': True,
}
#Start the Agent Platform Prompt Optimizer
client = client.prompt_optimizer.optimize(method=vertexai.types.PromptOptimizerMethod.VAPO, config=vapo_config)
כדי להשתמש במודל Gemma כמודל היעד, מבצעים את השינויים הבאים:
nano_config = vertexai.types.PromptOptimizerConfig(
config_path="gs://sample-bucket/config_nano.json",
project_number=project_number,
wait_for_completion=True
)
# Simpler version
# nano_config = {
# "config_path": "gs://sample-bucket/config_nano.json",
# "service_account": service_account,
# "wait_for_completion": True
# }
logging.basicConfig(encoding='utf-8', level=logging.INFO, force=True)
client.prompt_optimizer.optimize(
method=vertexai.types.PromptOptimizerMethod.OPTIMIZATION_TARGET_GEMINI_NANO,
config=nano_config
)
אחרי שהאופטימיזציה מסתיימת, בודקים את פריטי הפלט במיקום הפלט שצוין בהגדרות.
ניתוח התוצאות וביצוע איטרציות
אחרי שמריצים את הכלי לשיפור הביצועים שמבוסס על נתונים, בודקים את התקדמות התהליך באחת מהדרכים הבאות:
Notebook
כדי לראות את התוצאות של הכלי לאופטימיזציה מבוססת-נתונים דרך המחברת:
פותחים את מחברת האופטימיזציה של ההנחיות ב-Gemini Enterprise Agent Platform.
בקטע Inspect the results (בדיקת התוצאות), מבצעים את הפעולות הבאות:
בשדה RESULT_PATH, מוסיפים את ה-URI של קטגוריית Cloud Storage שהגדרתם את הכלי לשיפור הביצועים שמבוסס על נתונים כך שיכתוב אליה את התוצאות. לדוגמה,
gs://bucket-name/output-path.לוחצים על play_circle הרצת התא.
המסוף
במסוף Google Cloud , בקטע Agent Platform, עוברים לדף Training pipelines.
לוחצים על הכרטיסייה Custom jobs (משימות בהתאמה אישית). משימת האימון בהתאמה אישית של הכלי לאופטימיזציה מבוססת-נתונים מופיעה ברשימה עם הסטטוס שלה.
כשהעבודה מסתיימת, בודקים את האופטימיזציות באופן הבא:
במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage:
לוחצים על השם של הקטגוריה ב-Cloud Storage.
עוברים לתיקייה עם אותו שם של מצב האופטימיזציה שבו השתמשתם כדי להעריך את ההנחיות,
instructionאוdemonstration. אם השתמשתם במצבinstruction_and_demo, שתי התיקיות יופיעו. התיקייהinstructionמכילה את התוצאות של אופטימיזציית הוראות המערכת, והתיקייהdemonstrationמכילה את התוצאות של אופטימיזצייתdemonstrationוהוראות המערכת שעברו אופטימיזציה.התיקייה מכילה את הקבצים הבאים:
-
config.json: ההגדרה המלאה שבה נעשה שימוש באופטימיזציה של הנחיות ב-Gemini Enterprise Agent Platform. -
templates.json: כל קבוצה של הוראות מערכת או דוגמאות של למידה עם הקשר (few shot) שהכלי לאופטימיזציה מבוססת-נתונים יצר, וציון ההערכה שלהן. -
eval_results.json: התשובה של מודל היעד לכל הנחיה לדוגמה לכל קבוצה של הוראות מערכת שנוצרו או דוגמאות ללמידה עם הקשר מועט וציון ההערכה שלהן. -
optimized_results.json: ההוראות הטובות ביותר למערכת ו/או דוגמאות עם מעט נתונים וציון ההערכה שלהן.
-
כדי לראות את הוראות המערכת שעברו אופטימיזציה, אפשר לעיין בקובץ
optimized_results.json.
שיטות מומלצות
מודלים בתצוגה מקדימה נתמכים רק באזור
global, ומשימה מותאמת אישית ב-Vertex לא תומכת ב-globalכאזור. לכן, אל תשתמשו ב-VAPO כדי לבצע אופטימיזציה של מודלים בתצוגה מקדימה כמודל היעד.במודלים של GA, המשתמשים יכולים לבחור מיקומים ספציפיים לאזור, כמו
us-central1אוeurope-central2במקוםglobal, כדי לעמוד בדרישה של מיקום הנתונים.
המאמרים הבאים
- אפשר לנסות את מחברת ה-SDK של Gemini Enterprise Agent Platform לאופטימיזציה של הנחיות.
- מידע על שיטות מומלצות לאתיקה של בינה מלאכותית ועל מסנני הבטיחות של Agent Platform
- מידע נוסף על אסטרטגיות לכתיבת הנחיות
- אפשר לעיין בדוגמאות להנחיות בגלריית ההנחיות.