Les modèles Gemini 2.5 peuvent utiliser un "processus de réflexion" interne qui améliore considérablement leurs capacités de raisonnement et de planification en plusieurs étapes, ce qui les rend très efficaces pour les tâches complexes telles que le codage, les mathématiques avancées et l'analyse de données.
Vous pouvez configurer la quantité de réflexion qu'un modèle peut effectuer à l'aide d'un budget de réflexion. Cette configuration est particulièrement importante si la réduction de la latence ou des coûts est une priorité. Consultez également la comparaison des difficultés des tâches pour déterminer dans quelle mesure un modèle peut avoir besoin de ses capacités de réflexion.
Utiliser un modèle de réflexion
Utilisez un modèle de réflexion comme vous le feriez pour n'importe quel autre modèle Gemini (initialisez le fournisseur Gemini API de votre choix, créez une instance GenerativeModel
, etc.).
Ces modèles peuvent être utilisés pour des tâches de génération de texte ou de code, comme la génération de résultats structurés ou l'analyse d'entrées multimodales (comme des images, des vidéos, de l'audio ou des PDF).
Vous pouvez même utiliser des modèles de réflexion lorsque vous diffusez la sortie.
Modèles compatibles
Seuls les modèles Gemini 2.5 sont compatibles avec cette fonctionnalité.
gemini-2.5-pro
gemini-2.5-flash
gemini-2.5-flash-lite-preview-06-17
Bonnes pratiques pour utiliser les modèles à raisonnement
Nous vous recommandons de tester votre requête dans Google AI Studio ou Vertex AI Studio, où vous pourrez consulter l'intégralité du processus de réflexion. Vous pouvez identifier les domaines dans lesquels le modèle a pu s'égarer afin d'affiner vos requêtes pour obtenir des réponses plus cohérentes et précises.
Commencez par une requête générale décrivant le résultat souhaité, puis observez la réflexion initiale du modèle sur la manière dont il détermine sa réponse. Si la réponse ne correspond pas à vos attentes, aidez le modèle à générer une meilleure réponse en utilisant l'une des techniques de requête suivantes :
- Fournir des instructions détaillées
- Fournissez plusieurs exemples de paires d'entrée-sortie.
- Donne des conseils sur la façon de formuler et de mettre en forme les résultats et les réponses.
- Fournir des étapes de validation spécifiques
En plus des requêtes, pensez à utiliser les recommandations suivantes :
Définissez des instructions système, qui sont comme un "préambule" que vous ajoutez avant que le modèle ne soit exposé à d'autres instructions provenant de la requête ou de l'utilisateur final. Elles vous permettent d'orienter le comportement du modèle en fonction de vos besoins et de vos cas d'utilisation spécifiques.
Définissez un budget de réflexion pour configurer le niveau de réflexion du modèle. Si vous définissez un budget faible, le modèle ne "suranalysera" pas sa réponse. Si vous définissez un budget élevé, le modèle peut réfléchir davantage si nécessaire. Définir un budget de réflexion permet également de réserver une plus grande partie de la limite totale de jetons de sortie pour la réponse proprement dite.
(si vous utilisez Vertex AI Gemini API) Assurez-vous d'activer la surveillance de l'IA dans la console Firebase pour pouvoir surveiller la latence de vos requêtes pour lesquelles la réflexion est activée. Notez que les jetons de réflexion ne sont pas encore affichés dans les tableaux de bord de surveillance.
Contrôler le budget de réflexion
Pour contrôler le niveau de réflexion du modèle lors de la génération de sa réponse, vous pouvez spécifier le nombre de jetons de budget de réflexion qu'il est autorisé à utiliser.
Vous pouvez définir manuellement le budget de réflexion dans les situations où vous avez besoin de plus ou moins de jetons que le budget de réflexion par défaut. Vous trouverez des conseils plus détaillés sur la complexité des tâches et les budgets suggérés plus loin dans cette section. Voici quelques conseils généraux :
- Définissez un budget de réflexion faible si la latence est importante ou pour les tâches moins complexes.
- Définissez un budget de réflexion élevé pour les tâches plus complexes.
Définir le budget de réflexion
Cliquez sur votre fournisseur Gemini API pour afficher le contenu et le code spécifiques à ce fournisseur sur cette page. |
Définissez le budget de réflexion dans un GenerationConfig
lors de la création de l'instance GenerativeModel
. La configuration est conservée pendant toute la durée de vie de l'instance. Si vous souhaitez utiliser des budgets de réflexion différents pour différentes requêtes, créez des instances GenerativeModel
configurées avec chaque budget.
Vous trouverez plus d'informations sur les valeurs de budget de réflexion acceptées plus loin dans cette section.
Swift
Définissez le budget de réflexion dans un GenerationConfig
lors de la création d'une instance 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
Définissez les valeurs des paramètres dans un GenerationConfig
lorsque vous créez une instance 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
Définissez les valeurs des paramètres dans un GenerationConfig
lorsque vous créez une instance 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
Définissez les valeurs des paramètres dans un GenerationConfig
lorsque vous créez une instance 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
La possibilité de définir un budget de réflexion pour Flutter sera disponible dans la prochaine version.
Unity
La possibilité de définir un budget de réflexion pour Unity sera disponible dans la prochaine version.
Valeurs de budget de réflexion acceptées
Le tableau suivant répertorie les valeurs de budget de réflexion que vous pouvez définir pour chaque modèle en configurant le thinkingBudget
du modèle.
Modèle | Valeur par défaut | Plage disponible pour le budget de réflexion |
Valeur pour désactiver la réflexion |
Valeur permettant d' activer la pensée dynamique |
|
---|---|---|---|---|---|
Valeur minimale | Valeur maximale | ||||
Gemini 2.5 Pro | 8,192 |
128 |
32,768 |
ne peut pas être désactivé | -1 |
Gemini 2.5 Flash | 8,192 |
1 |
24,576 |
0 |
-1 |
Gemini 2.5 Flash‑Lite | 0 (la réflexion est désactivée par défaut) |
512 |
24,576 |
0 (ou ne configurez pas du tout le budget de réflexion) |
-1 |
Désactiver la réflexion
Pour certaines tâches plus simples, la capacité de réflexion n'est pas nécessaire et l'inférence traditionnelle est suffisante. Si la réduction de la latence est une priorité, vous ne voudrez peut-être pas que le modèle prenne plus de temps que nécessaire pour générer une réponse.
Dans ces situations, vous pouvez désactiver la réflexion :
- Gemini 2.5 Pro : la fonctionnalité de réflexion ne peut pas être désactivée
- Gemini 2.5 Flash : définissez
thinkingBudget
sur0
jetons. - Gemini 2.5 Flash-Lite : la réflexion est désactivée par défaut.
Activer la pensée dynamique
Vous pouvez laisser le modèle décider quand et combien il réfléchit (appelé réflexion dynamique) en définissant thinkingBudget
sur -1
. Le modèle peut utiliser autant de jetons qu'il le juge approprié, jusqu'à la valeur maximale de jetons indiquée ci-dessus.
Complexité de la tâche
Tâches faciles : la réflexion peut être désactivée
Requêtes simples ne nécessitant pas de raisonnement complexe, comme la récupération de faits ou la classification. Exemples :- "Où DeepMind a-t-elle été fondée ?"
- "Cet e-mail demande-t-il une réunion ou fournit-il simplement des informations ?"
Tâches moyennes : budget par défaut ou budget de réflexion supplémentaire nécessaire
Demandes courantes qui bénéficient d'un traitement étape par étape ou d'une compréhension plus approfondie. Exemples :- "Crée une analogie entre la photosynthèse et le fait de grandir."
- "Compare et oppose les voitures électriques et les voitures hybrides."
Tâches difficiles : un budget de réflexion maximal peut être nécessaire
Défis vraiment complexes, comme la résolution de problèmes mathématiques complexes ou de tâches de codage. Ces types de tâches exigent du modèle qu'il mobilise toutes ses capacités de raisonnement et de planification, ce qui implique souvent de nombreuses étapes internes avant de fournir une réponse. Exemples :- "Résous le problème 1 de l'AIME 2025 : trouve la somme de toutes les bases entières b > 9 pour lesquelles 17b est un diviseur de 97b."
- "Écris du code Python pour une application Web qui visualise les données boursières en temps réel, y compris l'authentification des utilisateurs. Rends-le aussi efficace que possible."
Tarification et comptabilisation des jetons de réflexion
Les jetons de réflexion utilisent les mêmes tarifs que les jetons de sortie de texte.
Vous pouvez obtenir le nombre total de jetons de réflexion à partir du champ thoughtsTokenCount
dans l'attribut usageMetadata
de la réponse :
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
La prise en charge du comptage des jetons de réflexion pour Flutter sera disponible dans la prochaine version.
Unity
La prise en charge du comptage des jetons de réflexion pour Unity sera disponible dans la prochaine version.
Pour en savoir plus sur les jetons, consultez le guide sur le comptage des jetons.