מעבד

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

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

שימוש במודל חשיבה

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

מודלים נתמכים

רק מודלים של Gemini 2.5 תומכים ביכולת הזו.

  • gemini-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite-preview-06-17

שיטות מומלצות לשימוש במודלים של חשיבה

מומלץ לבדוק את ההנחיה ב-Google AI Studio או ב-Vertex AI Studio, שבהם אפשר לראות את תהליך החשיבה המלא. תוכלו לזהות אזורים שבהם המודל סטה מההנחיה, כדי שתוכלו לשפר את ההנחיות ולקבל תשובות עקביות ומדויקות יותר.

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

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

בנוסף להנחיות, כדאי להשתמש בהמלצות הבאות:

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

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

  • (אם משתמשים ב-Vertex AI Gemini API) חשוב להפעיל את התכונה 'מעקב אחרי AI' במסוף Firebase כדי שתוכלו לעקוב אחרי זמן האחזור של הבקשות שלכם שבהן מופעלת התכונה 'חשיבה'. שימו לב: אסימוני חשיבה עדיין לא מוצגים בלוחות הבקרה של המעקב.

שליטה בתקציב החשיבה

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

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

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

הגדרת תקציב החשיבה

לוחצים על הספק Gemini API כדי לראות בדף הזה תוכן וקוד שספציפיים לספק.

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

בהמשך הסעיף מפורטים ערכי התקציב הנתמכים לשימוש ב-AI.

Swift

מגדירים את תקציב החשיבה ב-GenerationConfig במסגרת יצירת מופע GenerativeModel.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
let generationConfig = GenerationConfig(
  thinkingConfig: ThinkingConfig(thinkingBudget: 1024)
)

// Specify the config as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: generationConfig
)

// ...

Kotlin

מגדירים את ערכי הפרמטרים ב-GenerationConfig כחלק מיצירת מופע של GenerativeModel.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
val generationConfig = generationConfig {
  thinkingConfig = thinkingConfig {
      thinkingBudget = 1024
  }
}

// Specify the config as part of creating the `GenerativeModel` instance
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
  modelName = "GEMINI_MODEL_NAME",
  generationConfig,
)

// ...

Java

מגדירים את ערכי הפרמטרים ב-GenerationConfig כחלק מיצירת מופע של GenerativeModel.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
ThinkingConfig thinkingConfig = new ThinkingConfig.Builder()
    .setThinkingBudget(1024)
    .build();

GenerationConfig generationConfig = GenerationConfig.builder()
    .setThinkingConfig(thinkingConfig)
    .build();

// Specify the config as part of creating the `GenerativeModel` instance
GenerativeModelFutures model = GenerativeModelFutures.from(
        FirebaseAI.getInstance(GenerativeBackend.googleAI())
                .generativeModel(
                  /* modelName */ "<var>GEMINI_MODEL_NAME</var>",
                  /* generationConfig */ generationConfig
                );
);

// ...

Web

מגדירים את ערכי הפרמטרים ב-GenerationConfig כחלק מיצירת מופע של GenerativeModel.


// ...

const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
const generationConfig = {
  thinkingConfig: {
    thinkingBudget: 1024
  }
};

// Specify the config as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, { model: "GEMINI_MODEL_NAME", generationConfig });

// ...

Dart

התמיכה בהגדרת תקציב חשיבה ל-Flutter תגיע בגרסה הבאה.

Unity

התמיכה בהגדרת תקציב חשיבה ל-Unity תהיה זמינה בגרסה הבאה.

ערכי תקציב נתמכים

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

דגם ערך ברירת מחדל הטווח הזמין להגדרת תקציב הערך ש
משבית את החשיבה
ערך ל
הפעלת חשיבה דינמית
ערך מינימלי ערך מקסימלי
Gemini 2.5 Pro 8,192 128 32,768 אי אפשר להשבית את ההגדרה הזו -1
Gemini 2.5 Flash 8,192 1 24,576 0 -1
Gemini 2.5 Flash‑Lite 0
(החשיבה מושבתת כברירת מחדל)
512 24,576 0
(או לא להגדיר תקציב בכלל)
-1

השבתת תהליך העיבוד

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

במקרים כאלה, אתם יכולים להשבית את התכונה 'חשיבה':

  • Gemini 2.5 Pro: אי אפשר להשבית את התכונה 'חשיבה'
  • Gemini 2.5 Flash: הגדרת thinkingBudget עד 0 טוקנים
  • Gemini 2.5 Flash-Lite: התכונה 'חשיבה' מושבתת כברירת מחדל

הפעלת חשיבה דינמית

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

מורכבות המשימה

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

    • "?Where was DeepMind founded"
    • "האם האימייל הזה הוא הזמנה לפגישה או שהוא רק מספק מידע?"
  • משימות בינוניות – נדרש תקציב ברירת המחדל או תקציב נוסף למחשבה
    בקשות נפוצות שמומלץ לעבד אותן בשלבים או להבין אותן לעומק. דוגמאות:

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

    • ‫"Solve problem 1 in AIME 2025: Find the sum of all integer bases b > 9 for which 17b is a divisor of 97b."
    • "כתוב קוד Python לאפליקציית אינטרנט שמציגה נתונים של שוק המניות בזמן אמת, כולל אימות משתמשים. כדאי להפוך אותו ליעיל ככל האפשר".

תמחור וספירה של טוקנים של חשיבה

טוקנים של חשיבה משתמשים באותו תמחור כמו טוקנים של פלט טקסט.

אפשר לקבל את המספר הכולל של טוקנים של חשיבה מהשדה thoughtsTokenCount במאפיין usageMetadata של התשובה:

Swift

// ...

let response = try await model.generateContent("Why is the sky blue?")

if let usageMetadata = response.usageMetadata {
  print("Thoughts Token Count: \(usageMetadata.thoughtsTokenCount)")
}

Kotlin

// ...

val response = model.generateContent("Why is the sky blue?")

response.usageMetadata?.let { usageMetadata ->
    println("Thoughts Token Count: ${usageMetadata.thoughtsTokenCount}")
}

Java

// ...

ListenableFuture<GenerateContentResponse> response =
    model.generateContent("Why is the sky blue?");

Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
    @Override
    public void onSuccess(GenerateContentResponse result) {
        String usageMetadata = result.getUsageMetadata();
        if (usageMetadata != null) {
            System.out.println("Thoughts Token Count: " +
                usageMetadata.getThoughtsTokenCount());
        }
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

Web

// ...

const response = await model.generateContent("Why is the sky blue?");

if (response?.usageMetadata?.thoughtsTokenCount != null) {
    console.log(`Thoughts Token Count: ${response.usageMetadata.thoughtsTokenCount}`);
}

Dart

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

Unity

התמיכה בספירת טוקנים של חשיבה ב-Unity תתווסף בגרסה הבאה.

מידע נוסף על טוקנים זמין במדריך לספירת טוקנים.