Modèles et laboratoires

Comment les modèles de raisonnement décident-ils combien de temps réfléchir?

· Par Robert Scales · 4 min de lecture

Réponse courte

C’est le modèle lui-même qui décide, jeton par jeton, quand il a assez raisonné; une question difficile reçoit donc généralement une chaîne de pensée cachée plus longue qu’une question facile. Vous ne pouvez pas en fixer la longueur exacte, mais vous pouvez l’orienter : o3-mini d’OpenAI accepte un réglage d’effort de raisonnement faible, moyen ou élevé, Claude 3.7 Sonnet accepte un budget de réflexion en jetons, et les deux vous permettent de plafonner le total pour qu’une longue réflexion ne fasse pas gonfler votre facture.

Un modèle de raisonnement écrit une chaîne de pensée privée avant de donner sa réponse : il décompose le problème en étapes, essaie une approche, la vérifie et recommence parfois. Cette réflexion est faite de jetons, les mêmes petits morceaux de texte qui composent la réponse visible. Le modèle produit un jeton à la fois, et à chaque point, il choisit en pratique s’il continue de raisonner ou s’il commence la réponse. C’est pourquoi il n’y a pas de temps de réflexion fixe. Une question d’arithmétique simple peut prendre une poignée de jetons de raisonnement; une énigme logique coriace peut en prendre des milliers.

La longueur de la réflexion est donc décidée par le modèle, en fonction du problème. Ce que vous contrôlez, comme utilisateur ou comme développeur, c’est la pression exercée sur cette décision et un plafond strict.

Les commandes à votre disposition

OpenAI et Anthropic offrent des boutons de réglage différents pour cela.

CommandeModèleCe qu’elle fait
reasoning_effort : low, medium, highSérie o d’OpenAI, comme o3-miniPousse le modèle à raisonner moins ou plus; medium est la valeur par défaut
max_completion_tokensSérie o d’OpenAIPlafond strict pour les jetons de raisonnement et la réponse visible réunis
budget_tokensClaude 3.7 Sonnet avec la réflexion approfondieLe maximum de jetons que Claude peut consacrer à réfléchir; doit être inférieur à max_tokens; minimum de 1 024

Deux détails comptent. D’abord, ce sont des limites et des indications, pas des cibles. La documentation d’Anthropic note que Claude peut ne pas utiliser tout son budget, surtout avec des budgets de plus de 32 000 jetons. Ensuite, la réflexion coûte de l’argent même si vous ne la voyez pas. OpenAI compte les jetons de raisonnement dans le total de la réponse pour la facturation et pour la limite de la fenêtre de contexte, et Anthropic facture les jetons de réflexion comme des jetons de sortie.

Un test commenté avec o3-mini

La meilleure façon de comprendre l’effort, c’est de le mesurer sur vos propres questions. Ce court script utilise la bibliothèque Python officielle openai pour envoyer la même question aux trois niveaux et afficher combien de jetons de raisonnement chacun a utilisés. Il a besoin d’une clé d’API dans la variable d’environnement OPENAI_API_KEY.

from openai import OpenAI

client = OpenAI()

QUESTION = (
    "Une boulangerie vend des muffins en boîtes de 4 et de 6. "
    "Énumère toutes les façons d'acheter exactement 38 muffins, et explique comment tu sais que la liste est complète."
)

for effort in ["low", "medium", "high"]:
    response = client.chat.completions.create(
        model="o3-mini",
        reasoning_effort=effort,
        max_completion_tokens=20000,
        messages=[{"role": "user", "content": QUESTION}],
    )
    usage = response.usage
    reasoning = usage.completion_tokens_details.reasoning_tokens
    print(f"{effort:>6} : {reasoning} jetons de raisonnement, "
          f"{usage.completion_tokens} jetons de réponse au total")
    print(response.choices[0].message.content[:300], "\n")

L’objet usage de chaque réponse indique les jetons de réponse, dont reasoning_tokens, la partie consacrée à la réflexion. Pour convertir cela en argent, multipliez par le prix de sortie : o3-mini coûte 4,40 $ US par million de jetons de sortie dans la liste de prix d’OpenAI ce mois-ci.

Voici le genre de résultat auquel vous attendre. Ces chiffres sont donnés à titre d’illustration, ils n’ont pas été mesurés; lancez le script pour obtenir les vôtres.

EffortJetons de raisonnementTotal des jetons de sortieCoût de sortie par appelRéponse
Low600900environ 0,004 $ USListe correcte, brève vérification
Medium2 0002 350environ 0,010 $ USCorrecte, preuve claire que la liste est complète
High5 5005 900environ 0,026 $ USCorrecte, même preuve, plus de contre-vérifications

La tendance qu’illustre le tableau est courante : low est le moins cher et le plus rapide, medium ajoute du soin, et high coûte le plus cher pour peu de gain sur une question aussi facile. Sur un problème vraiment difficile, l’écart de qualité entre low et high peut être beaucoup plus grand.

À essayer : lancez le script sur trois de vos propres questions : une simple, une moyenne et une que vous savez difficile. Comparez les jetons de raisonnement pour chaque niveau d’effort. Si l’effort élevé n’améliore jamais la réponse pour votre type de question, vous avez trouvé une économie facile.

Fixer un plafond raisonnable

Fixez toujours un plafond, mais laissez de la marge. Comme max_completion_tokens couvre à la fois la réflexion et la réponse visible, un plafond serré sur un problème difficile peut être épuisé par le raisonnement et tronquer la réponse. Avec Claude, Anthropic suggère de commencer au budget minimum et de l’augmenter par paliers jusqu’à ce que la qualité cesse de s’améliorer, et recommande le traitement par lots pour les budgets de plus de 32 000 jetons, afin d’éviter les délais d’expiration.

Que change le « reasoning effort »?

Il change la quantité de réflexion que le modèle est encouragé à faire avant de répondre, et donc trois choses que vous pouvez sentir : la vitesse, le coût et, sur les problèmes difficiles, l’exactitude. La spécification d’OpenAI le dit clairement : réduire l’effort peut donner des réponses plus rapides et consacrer moins de jetons au raisonnement.

Il ne change pas le modèle. o3-mini à effort élevé reste o3-mini, avec les mêmes connaissances et les mêmes limites. L’effort ne peut pas fournir des faits que le modèle n’a pas; pour cela, vous devez donner du contexte dans le prompt ou utiliser un outil comme la recherche.

Utilisez un effort faible pour le travail routinier : classer des messages, faire des calculs simples, de petites corrections de code, tout ce dont vous vérifierez le résultat de toute façon. Gardez l’effort moyen, la valeur par défaut, pour la plupart des questions qui demandent un peu de soin. Réservez l’effort élevé aux problèmes où une mauvaise réponse coûte cher, comme les mathématiques complexes, la logique à plusieurs étapes ou du code délicat, et confirmez par vos propres tests qu’il aide vraiment. Comme le réglage est un seul paramètre, vous pouvez le choisir requête par requête, en envoyant la plupart des requêtes à low ou à medium et en réservant high aux questions qui le méritent.

Sources

  1. OpenAI API specification (openapi.yaml) — OpenAI (GitHub), 11 mars 2025
  2. API Pricing — OpenAI, 12 mars 2025
  3. Building with extended thinking — Anthropic (documentation), 16 mars 2025

Recevez gratuitement le Guide de l’intelligence artificielle

Abonnez-vous à l’infolettre hebdomadaire et recevez le guide gratuit : ce qui a changé en IA cette semaine, une leçon, un prompt à essayer. Désabonnement en un clic.

Ce que nous faisons de votre adresse

Retour en haut

Affichage

Vos choix sont enregistrés dans ce navigateur seulement. Aucune donnée n’est transmise.

Taille du texte
100 %
Couleurs
Lecture
Autres réglages
Déclaration d’accessibilité