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

Date: 2025-03-19 · Author: Robert Scales · https://guidetoartificialintelligence.com/fr/apprendre/duree-de-reflexion-modeles-de-raisonnement/

**Answer:** 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.

| Commande | Modèle | Ce qu’elle fait |
|---|---|---|
| `reasoning_effort` : low, medium, high | Série o d’OpenAI, comme o3-mini | Pousse le modèle à raisonner moins ou plus; medium est la valeur par défaut |
| `max_completion_tokens` | Série o d’OpenAI | Plafond strict pour les jetons de raisonnement et la réponse visible réunis |
| `budget_tokens` | Claude 3.7 Sonnet avec la réflexion approfondie | Le 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`.

```python
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.

| Effort | Jetons de raisonnement | Total des jetons de sortie | Coût de sortie par appel | Réponse |
|---|---|---|---|---|
| Low | 600 | 900 | environ 0,004 $ US | Liste correcte, brève vérification |
| Medium | 2 000 | 2 350 | environ 0,010 $ US | Correcte, preuve claire que la liste est complète |
| High | 5 500 | 5 900 | environ 0,026 $ US | Correcte, 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

- OpenAI API specification (openapi.yaml): https://github.com/openai/openai-openapi/blob/ec54f8876168475efa70effa31d4e6cff122c053/openapi.yaml
- API Pricing: https://openai.com/api/pricing/
- Building with extended thinking: https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking
