פורמט ההנחיות ב-Gemma 4

החל מ-Gemma 4, אנחנו משיקים טוקנים חדשים של בקרה. ל-Gemma 3 ומטה, אפשר לעיין במסמך הקודם.

בסעיפים הבאים מפורטים אסימוני הבקרה שבהם משתמשת Gemma 4 ותרחישי השימוש שלהם. חשוב לזכור שאסימוני הבקרה שמורים וספציפיים לטוקנייזר שלנו.

  • טוקן שמציין הוראה למערכת: system
  • טוקן שמציין תור של משתמש: user
  • אסימון שמציין תור של מודל: model
  • טוקן שמציין את תחילת תור בשיחה: <|turn>
  • אסימון שמציין את סוף תור הדיבור: <turn|>

דוגמה לדיאלוג:

<|turn>system
You are a helpful assistant.<turn|>
<|turn>user
Hello.<turn|>

מולטי-מודאליות

טוקן מולטי-מודאלי מטרה
<|image>
<image|>
ציון הטמעות של תמונות
<|audio>
<audio|>
סימון הטמעות של אודיו
<|image|>
<|audio|>
אסימונים מיוחדים של placeholder

אנחנו משתמשים בשני טוקנים מיוחדים של פלייס הולדר (<|image|> ו-<|audio|>) כדי לציין איפה צריך להוסיף טוקנים של תמונות ואודיו. אחרי הטוקניזציה, הטוקנים האלה מוחלפים בהטמעות הרכות בפועל בתוך המודל.

הנה דוגמה לשיחה:

prompt = """<|turn>user
Describe this image: <|image|>

And translate these audio:

a. <|audio|>
b. <|audio|><turn|>
<|turn>model"""

אודיו

אלה מבני ההנחיות לעיבוד אודיו:

  • זיהוי דיבור באודיו (ASR)
Transcribe the following speech segment in {LANGUAGE} into {LANGUAGE} text.

Follow these specific instructions for formatting the answer:
*   Only output the transcription, with no newlines.
*   When transcribing numbers, write the digits, i.e. write 1.7 and not one point seven, and write 3 instead of three.
  • תרגום אוטומטי של דיבור (AST)
Transcribe the following speech segment in {SOURCE_LANGUAGE}, then translate it into {TARGET_LANGUAGE}.
When formatting the answer, first output the transcription in {SOURCE_LANGUAGE}, then one newline, then output the string '{TARGET_LANGUAGE}: ', then the translation in {TARGET_LANGUAGE}.

טוקנים של בקרה על סוכנים ועל חשיבה רציונלית

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

בקשה להפעלת פונקציה

מודל Gemma 4 אומן על שישה טוקנים מיוחדים לניהול מחזור החיים של 'שימוש בכלים'.

זוג טוקנים מטרה
<|tool>
<tool|>
הגדרת כלי
<|tool_call>
<tool_call|>
מציין בקשה של מודל להשתמש בכלי.
<|tool_response>
<tool_response|>
התוצאה של הפעלת הכלי מועברת בחזרה למודל.

התו שמפריד בין ערכי מחרוזות: <|"|>

אסימון יחיד, <|"|>, משמש כתו מפריד לכל ערכי המחרוזות בתוך בלוקים של נתונים מובְנים.

  • מטרה: האסימון הזה מבטיח שכל התווים המיוחדים (כמו {,‏ },‏ , או מרכאות) בתוך מחרוזת יטופלו כטקסט מילולי ולא כחלק מהתחביר הבסיסי של מבנה הנתונים.
  • שימוש: כל המחרוזות המילוליות בהצהרות, בקריאות ובתגובות של הפונקציות צריכות להיות מוקפות בטוקן הזה (למשל, key:<|"|>string value<|"|>).

מצב העמקה

כדי להפעיל את מצב החשיבה, צריך לכלול את אסימון הבקרה <|think|> בהוראה למערכת.

טוקן בקרה מטרה
<|think|> הפעלת מצב חשיבה
<|channel>
<channel|>
מציין תהליך פנימי של מודל.

הנה דוגמה לשיחה:

<|turn>system
<|think|><turn|>
<|turn>user
What is the water formula?<turn|>
<|turn>model
<|channel>thought
...
<channel|>The most common interpretation of "the water formula" refers...<turn|>

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

דוגמה להסקה ולבקשה להפעלת פונקציה

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

  1. פנייה של משתמש: המשתמש שואל שאלה.
  2. הנמקה פנימית: המודל חושב באופן פרטי בערוץ המחשבה.
  3. בקשה לשימוש בכלי: המודל מפסיק את היצירה כדי לבקש שימוש בכלי.
  4. הרצה והוספה: האפליקציה מריצה את הכלי ומצרפת את התשובה.
  5. תשובה סופית: המודל קורא את התשובה ויוצר את התשובה הסופית.

בדוגמה הבאה מוצג מודל שמשתמש בכלי מזג אוויר:

<|turn>system
<|think|>You are a helpful assistant.<|tool>declaration:get_current_temperature{...}<tool|><turn|>
<|turn>user
What's the temperature in London?<turn|>
<|turn>model
<|channel>thought
...
<channel|><|tool_call>call:get_current_temperature{location:<|"|>London<|"|>}<tool_call|><|tool_response>

האפליקציה צריכה לנתח את התגובה של המודל כדי לחלץ את שם הפונקציה והארגומנטים, להפעיל את הפונקציה ואז לצרף את tool_calls ואת tool_responses להיסטוריית הצ'אט בתפקיד assistant.

<|turn>model
<|tool_call>call:get_current_weather{location:<|"|>London<|"|>}<tool_call|><|tool_response>response:get_current_weather{temperature:15,weather:<|"|>sunny<|"|>}<tool_response|>

לבסוף, Gemma קוראת את התשובה של הכלי ועונה למשתמש.

The temperature in London is 15 degrees and it is sunny.<turn|>

זוהי היסטוריית הצ'אט המלאה בפורמט JSON לדוגמה הזו:

[
  {
    "role": "system",
    "content": "You are a helpful assistant."
  },
  {
    "role": "user",
    "content": "What's the temperature in London?"
  },
  {
    "role": "assistant",
    "tool_calls": [
      {
        "function": {
          "name": "get_current_weather",
          "arguments": {
            "location": "London"
          }
        }
      }
    ],
    "tool_responses": [
      {
        "name": "get_current_weather",
        "response": {
          "temperature": 15,
          "weather": "sunny"
        }
      }
    ],
    "content": "The temperature in London is 15 degrees and it is sunny."
  }
]

ניהול הקשר של המחשבה בין תורות

ניהול נכון של המחשבות שנוצרות על ידי המודל הוא קריטי לשמירה על הביצועים בשיחות בכמה שלבים.

  • שיחות רגילות עם כמה תפניות: לפני שמעבירים את היסטוריית השיחות בחזרה למודל לתפנית הבאה, צריך להסיר (למחוק) את המחשבות שנוצרו על ידי המודל מהתפנית הקודמת. אם רוצים להשבית את מצב החשיבה באמצע השיחה, אפשר להסיר את טוקן <|think|> כשמסירים את המחשבות הקודמות.
  • קריאה לפונקציה (חריג): אם תור של מודל יחיד כולל קריאות לפונקציה או לכלי, אסור להסיר את המחשבות בין הקריאות לפונקציה.

תהליכי עבודה אג'נטיים ומשימות ארוכות טווח

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

  • סיכום המחשבות: טכניקת היקש מומלצת מאוד היא לחלץ, לסכם ולהזין את המחשבות הקודמות של המודל בחזרה לחלון ההקשר כטקסט רגיל.
  • מגבלות על הפורמט: מכיוון שמודל Gemma 4 לא אומן במפורש עם מחשבות גולמיות שנכללות בהנחיה (מחוץ לתרחיש הספציפי של קריאה לכלי שצוין למעלה), המודל לא מצפה לפורמט ספציפי או מוגדר מראש למחשבות המוזרקות האלה. אתם יכולים לעצב את הסיכום של החשיבה הרציונלית בכל דרך שתתאים הכי טוב לארכיטקטורה הספציפית של הסוכן.

הערות לגבי שילוב

  • מצב פנימי: בדרך כלל משתמשים באסימונים <|channel> ו-<channel|> לעיבוד של שרשרת מחשבות (CoT). באפליקציות רגילות שפונות למשתמשים, התוכן הזה בדרך כלל מוסתר מהמשתמשים.
  • Tool Loop: טוקנים מסוג tool_call ו-tool_response מאפשרים 'לחיצת יד' בין המודל לבין סביבת האפליקציה. האפליקציה מיירטת את tool_call, מריצה את הקוד הבסיסי ומחזירה את התוצאה למודל בתוך האסימונים tool_response.
  • התנהגות המודל: מודלים גדולים יותר (למשל, gemma-4-26B-A4B-it, gemma-4-31B-it) עשויים מדי פעם ליצור ערוץ חשיבה גם כשמצב החשיבה מושבת באופן מפורש. כדי לייצב את התנהגות המודל במקרים קיצוניים כאלה, מומלץ להוסיף טוקן חשיבה ריק להנחיה.

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

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

<|turn>model
<|channel>thought
<channel|>

טיפ: יעילות מחשבה אדפטיבית באמצעות הוראות מערכת

אמנם התכונה 'חשיבה' ב-Gemma 4 נתמכת באופן רשמי כמאפיין בוליאני ON או OFF, אבל למודל יש יכולות חזקות במיוחד של ביצוע הוראות, שמאפשרות לכם לשנות את התנהגות החשיבה שלו באופן דינמי.

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

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