мышление

Модели Gemini 2.5 могут использовать внутренний «мыслительный процесс», который значительно улучшает их способности к рассуждению и многоэтапному планированию, что делает их крайне эффективными для решения таких сложных задач, как кодирование, высшая математика и анализ данных.

Вы можете настроить объём мыслительных процессов модели, используя бюджет мышления . Эта настройка особенно важна, если приоритетом является сокращение задержек или затрат. Также проанализируйте сравнение сложности задач , чтобы определить, насколько необходимый объём мыслительных процессов модели.

Используйте модель мышления

Используйте модель мышления так же, как и любую другую модель Gemini (инициализируйте выбранного поставщика API Gemini , создайте экземпляр 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 , где вы сможете увидеть весь процесс мышления. Вы сможете выявить области, в которых модель могла сбиться с пути, и усовершенствовать подсказки для получения более последовательных и точных ответов.

Начните с общей подсказки, описывающей желаемый результат, и понаблюдайте за первоначальными мыслями модели о том, как она определяет свой ответ. Если ответ не соответствует ожидаемому, помогите модели сгенерировать более точный ответ, используя любой из следующих методов подсказки :

  • Предоставьте пошаговые инструкции
  • Приведите несколько примеров пар вход-выход
  • Дать указания по формулировке и форматированию выходных данных и ответов.
  • Предоставьте конкретные шаги проверки

В дополнение к подсказкам рассмотрите возможность использования следующих рекомендаций:

  • Задайте системные инструкции , которые представляют собой своего рода «преамбулу», добавляемую перед тем, как модель получит дальнейшие инструкции от командной строки или конечного пользователя. Они позволяют управлять поведением модели в соответствии с вашими конкретными потребностями и вариантами использования.

  • Задайте бюджет на обдумывание , чтобы настроить объём обдумывания, который может выполнить модель. Если установить низкий бюджет, модель не будет «передумывать» при ответе. Если установить высокий бюджет, модель сможет думать больше при необходимости. Задание бюджета на обдумывание также резервирует большую часть общего лимита вывода токенов для фактического ответа.

  • (при использовании API Vertex AI Gemini ) Обязательно включите мониторинг ИИ в консоли Firebase , чтобы отслеживать задержку запросов с включённым режимом «мышления». Обратите внимание, что токены «мышления» пока не отображаются на панелях мониторинга.

Контролируйте бюджет мышления

Чтобы контролировать объем мыслительных операций, который может выполнить модель для генерации своего ответа, вы можете указать количество токенов бюджета мышления , которые ей разрешено использовать.

Вы можете вручную задать бюджет для размышлений в ситуациях, когда вам может потребоваться больше или меньше токенов, чем задано по умолчанию. Более подробные рекомендации по сложности задач и рекомендуемым бюджетам см. далее в этом разделе. Вот несколько общих рекомендаций:

  • Установите небольшой бюджет на размышления, если задержка важна или если вы выполняете менее сложные задачи.
  • Установите высокий бюджет для более сложных задач

Установите бюджет мышления

Щелкните своего поставщика API Gemini , чтобы просмотреть специфичный для этого поставщика контент и код на этой странице.

Задайте бюджет мышления в GenerationConfig при создании экземпляра GenerativeModel . Конфигурация сохраняется на протяжении всего жизненного цикла экземпляра. Если вы хотите использовать разные бюджеты мышления для разных запросов, создайте экземпляры GenerativeModel с настроенным для каждого бюджета.

Подробнее о значениях бюджета поддерживаемого мышления читайте далее в этом разделе.

Быстрый

Установите бюджет мышления в 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

Задайте значения параметров в GenerationConfig как часть создания экземпляра GenerativeModel .


// ...

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

final generationConfig = GenerationConfig(
  // ...
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  config: generationConfig,
);

// ...

Единство

Поддержка настройки продуманного бюджета для Unity появится в следующей версии.

Поддерживаемые значения бюджета мышления

В следующей таблице перечислены значения бюджета мышления, которые можно задать для каждой модели, настроив thinkingBudget модели .

Модель Значение по умолчанию Доступный диапазон для размышлений о бюджете Значение для
отключить мышление
Значение для
включить динамическое мышление
Минимальное значение Максимальное значение
Джемини 2.5 Про 8,192 128 32,768 не может быть выключен -1
Близнецы 2.5 Флэш 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 . Модель может использовать столько токенов, сколько сочтет нужным, вплоть до максимального значения токена, указанного выше.

Сложность задачи

  • Легкие задачи — мышление можно отключить
    Простые запросы, не требующие сложных рассуждений, например, поиск фактов или классификация. Примеры:

    • «Где была основана компания DeepMind?»
    • «Это электронное письмо с просьбой о встрече или просто с информацией?»
  • Средние задачи — требуется бюджет по умолчанию или дополнительный бюджет на обдумывание
    Распространенные запросы, которые требуют пошаговой обработки или более глубокого понимания. Примеры:

    • «Проведите аналогию между фотосинтезом и взрослением».
    • «Сравните и сопоставьте электромобили и гибридные автомобили».
  • Сложные задачи — может потребоваться максимальный бюджет для размышлений
    По-настоящему сложные задачи, такие как решение сложных математических задач или задач программирования. Такие задачи требуют от модели полного задействования её возможностей рассуждения и планирования, часто требуя множества внутренних этапов, прежде чем будет выдан ответ. Примеры:

    • Решите задачу 1 в AIME 2025: найдите сумму всех целых чисел с основаниями b > 9, для которых 17b является делителем 97b.
    • «Напишите код Python для веб-приложения, которое визуализирует данные фондового рынка в режиме реального времени, включая аутентификацию пользователей. Сделайте его максимально эффективным».

Оценка и подсчет токенов мышления

Токены мышления используют ту же цену , что и токены текстового вывода.

Общее количество токенов мышления можно получить из поля thoughtsTokenCount в атрибуте usageMetadata ответа:

Быстрый

// ...

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

// ...

final response = await model.generateContent(
  Content.text("Why is the sky blue?"),
]);

if (response?.usageMetadata case final usageMetadata?) {
  print("Thoughts Token Count: ${usageMetadata.thoughtsTokenCount}");
}

Единство

Поддержка подсчета токенов мышления для Unity появится в следующей версии.

Дополнительную информацию о токенах можно найти в руководстве по подсчету токенов .