Accéder au contenu principal
Intelligence artificielle
Grands modèles linguistiques

Que sont les modèles de décision en IA ? Fonctionnement et exemples clés

Les modèles de décision évaluent un ensemble fixe de réponses au lieu de générer du texte. Découvrez leur fonctionnement, comment Jev se positionne, et ce que montrent les tests indépendants.
Vaibhav Mehra's photo
Vaibhav Mehra
Actualisé · 15 min lire

Explorez l'IA

ChatGPTClaudePerplexity

Créez votre compte gratuit

S'entraîner et cursus vos progrès.

Continuer Avec Google
En continuant, vous acceptez nos Conditions d'utilisation, notre Politique de confidentialité et le fait que vos données seront hébergées aux États-Unis.

Imaginez que vous vous asseyez au restaurant et que le serveur vous demande : « Plate ou gazeuse ? ». Vous ne répondez pas avec un paragraphe sur vos préférences d’hydratation ; vous choisissez l’une des deux options proposées.

Maintenant, pensez à la façon dont nous utilisons les grands modèles de langage (LLM) dans la plupart des applications aujourd’hui. On leur pose des questions comme « Ce ticket de support concerne-t-il la facturation, la livraison ou les retours ? » et le modèle nous renvoie une phrase complète, que l’on doit ensuite analyser dans du code. En réalité, il n’y avait que trois réponses possibles, mais nous avons quand même payé pour tout un raisonnement.

C’est précisément l’écart que cette nouvelle catégorie de modèles tente de combler. En septembre 2026, une startup appelée TypeSafe AI a publié Jev, un modèle qui ne génère pas de texte.

À la place, il note un ensemble fixe de réponses et indique la probabilité de chacune. En quelques semaines, OpenAI, Cloudflare, Perplexity et Microsoft ont sorti leurs propres versions, preuve de la vitesse à laquelle le domaine évolue.

Dans cet article, je vous propose de découvrir ce que sont ces modèles de décision en IA, comment ils fonctionnent et d’où vient réellement l’idée (elle est bien plus ancienne que l’engouement actuel ne le laisse penser). Nous verrons aussi ce que montrent les benchmarks indépendants.

Les modèles de décision en bref

  • Un modèle de décision en IA prend une entrée et une liste de réponses autorisées, puis renvoie une probabilité pour chaque réponse au lieu de générer du texte.
  • Comme le modèle évalue toutes les réponses d’un seul coup, TypeSafe indique que Jev répond en 70 à 500 millisecondes, et le résultat peut aller directement dans une instruction if.
  • L’idée n’est pas nouvelle. Des classificateurs zero-shot, des rerankers et des vérificateurs notent des candidats depuis des années ; les sorties de 2026 de TypeSafe, OpenAI, Cloudflare, Perplexity et Microsoft les emballent surtout mieux.
  • Dans les tests indépendants de garde-fous de Red Hat, les modèles de décision n’ont pas donné de réponses plus rapides, moins chères ou meilleures que LLM-as-a-judge, et un petit classificateur entraîné a fait presque aussi bien sur l’injection de prompts.
  • Ils sont particulièrement efficaces comme filtres rapides et peu coûteux autour d’un LLM. Testez leurs probabilités sur vos propres données avant de fixer des seuils.

Qu’est-ce qu’un modèle de décision en IA ?

Un modèle de décision en IA prend une entrée et un ensemble de réponses autorisées et renvoie la probabilité de chaque réponse, sans générer de texte libre.

L’idée clé est que la sortie est déjà structurée.

Vous n’avez jamais à analyser une phrase, car le modèle ne peut renvoyer que l’une des réponses que vous lui avez fournies. Le résultat peut donc aller directement dans une instruction if dans votre code.

J’aime comparer la différence à deux types d’examens.

Un grand modèle de langage passe un examen de dissertation, en écrivant sa réponse mot à mot, tandis qu’un modèle de décision passe un QCM et indique aussi son niveau de certitude pour chaque case (un score de confiance).

Les trois types de questions

Jev et la plupart des alternatives à Jev prennent en charge trois types de questions :

  • Choice : choisir une option dans une liste (Jev accepte jusqu’à 255 options), avec une probabilité pour chacune.
  • Noul : la probabilité qu’une affirmation soit vraie, c’est le nom donné par TypeSafe à une question oui/non.
  • Score : une position sur une échelle ordonnée, comme une grille de 1 à 5.

TypeSafe propose aussi un type expérimental Box pour localiser des éléments dans des images, que je laisserai de côté ici.

Voici un exemple tiré de la documentation officielle de TypeSafe.

Vous pouvez envoyer un state (le texte que vous voulez que le modèle lise) et une map de questions. Pour une question de type choix, chaque option est décrite brièvement dans un champ criteria.

{
  "model": "jev-latest",
  "state": "My running shoes arrived in the wrong size. Can I swap them for a size 10?",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Which team should handle this?",
      "criteria": {
        "returns": "Exchanges, wrong or damaged items",
        "shipping": "Delivery status, delays, lost packages",
        "billing": "Charges, invoices, payment problems"
      }
    }
  }
}

Et voici la réponse correspondante :

{
  "model": "jev-1.13.0",
  "answers": {
    "department": {
      "type": "choice",
      "choice": "returns",
      "confidence": 1.0,
      "probabilities": {
        "shipping": 0.0,
        "returns": 1.0,
        "billing": 0.0
      }
    }
  }
}

Il n’y a aucun texte à analyser.

Vous obtenez l’option choisie, une probabilité pour chaque option, et une valeur de confiance dérivée de la probabilité la plus élevée : une distribution plus plate signifie une confiance plus faible. Dans la documentation, un ticket plus ambigu qui mentionne à la fois une mauvaise pointure et une double facturation répartit la probabilité entre returns (0,61) et billing (0,35), et la confiance tombe à 0,42.

Pourquoi TypeSafe parle de modèle « System One »

TypeSafe décrit Jev comme un « System One Model », en référence au livre de Daniel Kahneman Système 1 / Système 2 : Les deux vitesses de la pensée. Pourquoi ?

Pour faire simple, le Système 1 correspond à un jugement rapide, intuitif ; le Système 2 à un raisonnement lent et pas à pas.

Un modèle de décision vise à être le rapide.

Une réserve toutefois : le Système 1 est aussi celui qui fait des erreurs hâtives, et, à son crédit, la documentation de TypeSafe liste ouvertement là où Jev se trompe. Nous y reviendrons.

Clarifier le terme

Un point m’a dérouté au départ : « modèle de décision » peut déjà désigner d’autres choses. Cela peut renvoyer à :

  • Des tables de décision dans des logiciels de règles métier.
  • Le Decision Transformer en apprentissage par renforcement, qui génère des actions, donc presque l’inverse de notre sujet.
  • Des modèles de choix en économie.

Pour être clair, dans cet article, un « modèle de décision » désigne uniquement cette nouvelle catégorie de modèles apparue fin 2026 qui note des réponses typées au lieu d’écrire du texte.

Comment fonctionne la génération token par token

Avant d’expliquer comment travaillent les modèles de décision, il est utile de voir comment un LLM classique produit sa réponse. La différence en devient plus évidente.

Un grand modèle de langage fonctionne en boucle.

Il convertit notre texte en tokens, prédit une probabilité pour chaque token de son vocabulaire, en choisit un, l’ajoute au texte, puis recommence.

Chaque token supplémentaire dans la réponse implique un nouveau passage avant à travers le modèle.

Schéma d’un LLM générant du texte un token à la fois en boucle

Figure 1 : un LLM a besoin d’un passage avant pour chaque token qu’il écrit. Image originale de l’auteur.

Cette boucle est idéale pour écrire des e-mails, du code ou des explications, mais pour des décisions simples, elle pose quelques problèmes :

  • Vous payez pour générer des mots que vous jetterez.
  • Le modèle peut répondre « Oui, parce que… » alors que vous vouliez juste « oui » ou « non », ce qui casse votre parseur.
  • De petites erreurs peuvent s’accumuler sur une longue sortie.
  • Si vous demandez au LLM sa confiance, le nombre renvoyé reflète souvent mal la réalité, comme le souligne John Berryman (Arcturus Labs) dans son analyse de Jev.

Les modèles de décision cherchent précisément à corriger ces points.

Comment fonctionnent les modèles de décision : noter les sorties

Passons maintenant à la mécanique.

Trois idées méritent d’être comprises :

  1. Un seul passage plutôt qu’une boucle
  2. D’où viennent les probabilités
  3. Ce que signifie « calibré »

Voyons chacune d’elles plus en détail.

Un seul passage au lieu d’une boucle

Un modèle de décision lit votre entrée et les questions et produit un score pour chaque réponse autorisée.

Ces scores sont généralement convertis en probabilités via une fonction softmax. Comme vous pouvez l’imaginer, il n’y a pas de longue boucle, puisqu’il n’y a rien à écrire.

La documentation de TypeSafe précise aussi que les questions d’une même requête sont évaluées en parallèle, de sorte qu’en ajouter a peu d’impact sur le temps de réponse.

C’est la principale source de vitesse, et TypeSafe annonce des réponses typiques de Jev autour de 70 à 500 millisecondes.

Schéma côte à côte d’un LLM générant des tokens et d’un modèle de décision produisant des probabilités en un seul passage

Figure 2 : le même ticket, traité par un LLM et par un modèle de décision. Image originale de l’auteur.

D’où viennent les probabilités

Il n’existe pas une unique « architecture de modèle de décision ».

TypeSafe n’a pas publié le fonctionnement interne de Jev, mais il y a grosso modo trois façons d’obtenir ces scores :

  • Lire les probabilités de tokens d’un LLM. Vous listez les réponses comme A, B, C, exécutez le modèle et ne regardez que la probabilité que « A », « B » ou « C » soit le prochain token. John Berryman chez Arcturus Labs a d’abord supposé que Jev était un encodeur avec une tête de sortie dédiée, puis a pointé un post X d’Harsha Gundala répliquant une approche similaire via les probabilités de tokens. Aucune hypothèse n’est confirmée.
  • Ajouter une tête de scoring. Un petit modèle encodeur reçoit une couche de sortie qui note directement chaque option. Le modèle open source Laya utilise ModernBERT ainsi.
  • Utiliser un scoreur séparé. Un second modèle, type reranker ou reward model, évalue chaque candidat.

Peu importe laquelle est employée : les trois aboutissent au même résultat, un nombre par réponse autorisée.

Ce que signifie « calibré »

C’est, selon moi, l’aspect le plus important : prenons un exemple.

Imaginez qu’un modèle affiche « 70 % de probabilité » sur 100 questions différentes. S’il est bien calibré, environ 70 de ces réponses devraient être correctes.

La calibration compte, car des probabilités calibrées permettent de fixer des seuils sûrs dans le code, comme « approuver automatiquement au-dessus de 90 %, sinon envoyer à un humain ».

Si les probabilités ne correspondent pas à la réalité, ces seuils n’ont plus de sens.

Les fournisseurs entraînent ce comportement via des fonctions de perte qui pénalisent l’excès de confiance.

TypeSafe appelle sa méthode Reinforcement Learning for Calibrated Decisions (RLCD), tandis que Cloudflare indique associer entropie croisée et perte de Brier pour ses modèles Clef.

Les modèles de décision ne sont pas une idée nouvelle

Surprise : l’idée de noter des candidats au lieu de les générer existe depuis des années.

À mon avis, les modèles de décision en sont la dernière version, plus pratique, plutôt qu’une invention radicalement nouvelle. Voici les principales familles sur lesquelles ils s’appuient.

Frise des méthodes de scoring de 2019 à 2023 et des modèles de décision sortis en 2026

Figure 3 : le « scorer plutôt que générer » remonte à 2019, et les modèles de décision sont la version 2026. Image originale de l’auteur.

Classificateurs zero-shot

Dès 2019, des modèles comme BART-large-mnli pouvaient déjà classer des textes dans des labels jamais vus à l’entraînement.

Ils y parvenaient en notant des affirmations du type « ce texte parle de facturation » pour chaque label possible.

L’équipe sécurité IA de Red Hat suggère que les modèles de décision ne sont, au fond, que ces classificateurs zero-shot sous un nouveau nom.

Rerankers et cross-encoders

Si vous avez construit un système RAG, vous en avez peut-être utilisé. On commence par récupérer rapidement une short list (par exemple 50 documents), puis un cross-encoder lit la question et chaque document ensemble et attribue à chaque paire un score de pertinence.

Rien n’est généré : les documents sont simplement réordonnés selon leur score.

Reward models et vérificateurs

Ce sont des scoreurs qui évaluent des réponses déjà générées par un LLM.

En 2021, des chercheurs d’OpenAI ont montré qu’ajouter un vérificateur à un modèle apportait un gain en mathématiques niveau primaire équivalent à multiplier la taille du modèle par 30, ce qui est frappant.

Deux ans plus tard, l’article « Let’s Verify Step by Step » a montré que noter chaque étape de raisonnement fonctionne encore mieux que ne noter que la réponse finale.

Best-of-N et generate-then-filter

La version simple consiste à générer plusieurs réponses, à les noter, puis à garder la meilleure. AlphaCode de DeepMind (2022) a poussé l’idée à l’extrême : jusqu’à un million de programmes générés par problème, 99 % écartés grâce à des tests d’exemples, et une dizaine seulement soumis.

Sur des compétitions Codeforces passées (évaluations simulées), il s’est classé en moyenne dans les 54,3 % supérieurs des concurrents humains.

Attention : si l’on pousse trop fort un scoreur imparfait, la qualité finit par chuter, car le générateur exploite les faiblesses du scoreur.

On parle alors d’overoptimization de la récompense.

LLM-as-a-judge

Il s’agit de faire évaluer la sortie d’un modèle par un LLM plus grand.

Une étude de 2023 a montré que GPT-4 était d’accord avec des juges humains plus de 80 % du temps, mais présentait aussi des biais, comme préférer les réponses plus longues ou celles affichées en premier.

Les modèles de décision sont en partie présentés comme une alternative structurée et moins coûteuse à ces juges.

Modèles à énergie et JEPA

Un modèle à énergie attribue une faible « énergie » à une paire entrée–réponse qui s’accorde bien, et une énergie élevée aux paires qui ne collent pas.

Choisir une réponse revient alors à trouver l’énergie la plus basse, c’est-à-dire à noter des candidats.

Yann LeCun défend depuis des années l’idée que générer token par token n’est pas la voie vers une véritable intelligence, et que les approches à énergie et JEPA sont plus prometteuses.

Les modèles de décision phares en 2026

Voyons maintenant les modèles effectivement publiés. Le rythme est très rapide, je vais donc faire court pour chacun.

Jev de TypeSafe

TypeSafe AI est une startup de San Francisco fondée par Diogo Almeida, ex-chercheur chez OpenAI, sortie du bois le 15 septembre 2026 avec Jev et un tour de seed de 40 millions de dollars mené par DCVC.

Jev est une API hébergée. En production, elle prend du texte uniquement ; l’entrée image est expérimentale et nécessite un en-tête d’opt-in. La tarification est basée sur les tokens d’entrée, et les sorties sont gratuites, ce qui se comprend quand la sortie se résume à quelques nombres.

Jev 1.14 a suivi le 14 octobre, bien que l’alias jev-latest pointe toujours vers 1.13.0, la version testée par Red Hat plus loin dans l’article.

Le lancement a fait du bruit. Vercel a indiqué qu’environ 13 % de ses équipes payantes avaient essayé Jev via son AI Gateway dans les 24 premières heures, même s’il était gratuit sur la gateway à ce moment-là.

Decisions API d’OpenAI

OpenAI a annoncé son Decisions API à DevDay le 29 septembre 2026.

Il fonctionne avec des questions définies par l’utilisateur et un ensemble de réponses fixes, et repose sur GPT-6 Luna. Passé en bêta publique le 6 octobre, il accepte aussi les images, que Jev ne supporte qu’expérimentalement.

Clef de Cloudflare

Cloudflare a publié Clef et un Clef-flash plus petit le 1er octobre 2026, avec poids ouverts et hébergement sur Workers AI. Tous deux sont basés sur des modèles Qwen et acceptent des requêtes au format Jev, ce qui permet de rediriger un code écrit pour Jev vers Clef avec très peu de changements.

Autres modèles

Modèle Éditeur Sortie (2026) Accès Détail notable
pplx-decider Perplexity 1er octobre Poids ouverts et API 85,71 % auto-rapportés vs 84,51 % pour Jev sur le panel de 11 benchmarks de Perplexity
Microsoft-Decision-1 Microsoft 9 octobre Foundry preview Un modèle Qwen de 9B post-entraîné
Laya Convai Innovations Septembre Poids ouverts Petit (421 M de paramètres), tourne sur CPU portable ; sa model card le présente comme une base à spécialiser, pas un moteur zero-shot

Ce qui m’a surtout frappé en rassemblant ces éléments, c’est que la plupart des modèles ouverts et big tech ici sont des LLM classiques affinés. Laya fait exception : c’est un encodeur avec une tête de décision. Les entrailles de Jev ne sont pas publiées.

À mon sens, cela conforte l’idée que l’innovation majeure réside dans l’emballage (interface et entraînement à la calibration) plutôt que dans une architecture entièrement nouvelle.

Modèles de décision vs LLM vs classificateurs

Le plus simple pour choisir, c’est de comparer :

Caractéristique LLM Modèle de décision Classificateur affiné LLM + vérificateur
Sortie Texte libre Réponse typée et probabilités Labels fixes Meilleure de plusieurs réponses générées
Besoin de données labellisées Non Non Oui Souvent
Vitesse Secondes Dizaines à centaines de millisecondes Très rapide La plus lente
Réponses hors format Possible Impossible Impossible Dépend du générateur
Explique sa réponse Oui Non Non Oui
Idéal pour Rédaction, code, raisonnement Routage, triage, garde-fous Une tâche fixe à gros volume Maths, code avec tests

Quand utiliser quoi

Ma règle d’or, à gros traits :

  • Réponses bornées et pas de données d’entraînement : un modèle de décision est un excellent choix.
  • Une seule tâche, beaucoup de données labellisées et des contraintes fortes de latence : un classificateur affiné est difficile à battre.
  • Sortie ouverte : utilisez un LLM.
  • Problème difficile avec un moyen peu coûteux de vérifier : LLM + vérificateur.

Je pense que les meilleurs systèmes combinent ces approches.

Je vois bien les modèles de décision agir comme des « portes » rapides autour d’un LLM. Une porte décide :

  • Quel outil appeler.
  • Si une entrée est sûre.
  • Si un résultat nécessite un humain.

Ainsi, le LLM coûteux ne tourne que quand il faut réellement écrire quelque chose.

Ce que montrent les tests indépendants

C’est la section la plus importante, car la plupart des gros chiffres en ligne viennent des éditeurs eux-mêmes. Même TypeSafe reconnaît que ses gains vedettes de coût et de vitesse sont le haut de la fourchette en pratique.

Le benchmark de garde-fous de Red Hat

En octobre 2026, l’équipe sécurité IA de Red Hat a comparé neuf configurations de garde-fous sur deux tâches : détecter l’injection de prompts et détecter du contenu à risque.

DiffusionGemma est un modèle de diffusion texte Gemma servi via vLLM.

Voici les résultats les plus marquants :

Méthode Type Précision injection de prompts Précision sécurité des contenus
deberta-v3-base Classificateur affiné 89,01 % -
granite-guardian-hap-125m Classificateur affiné - 80,27 %
Qwen3.6-35B LLM-as-a-judge 89,31 % 85,47 %
DiffusionGemma Modèle de décision (open) 87,72 % 85,53 %
Jev Modèle de décision 86,35 % 86,20 %
Laya Modèle de décision (open) 85,44 % 57,87 %
BART-large-mnli Classificateur zero-shot (2019) 61,49 % 68,67 %

Jev est arrivé premier sur la sécurité des contenus, devant DiffusionGemma de 0,67 point (le juge Qwen est troisième), et Qwen a pris la tête sur l’injection de prompts.

Ce décalage explique pourquoi Red Hat peut conclure qu’au global les modèles de décision n’ont pas surpassé les LLM juges.

Mais ce que je trouve le plus intéressant, c’est qu’un classificateur de 200 millions de paramètres n’est qu’à 0,3 point sur l’injection de prompts, avec une latence médiane inférieure à 100 ms contre environ 348 pour Jev.

La latence de Jev incluait un aller-retour transatlantique, les tests ayant été lancés depuis le Royaume-Uni tandis que les serveurs de TypeSafe sont aux États-Unis.

Cela n’explique que l’écart face aux modèles locaux sur CPU. Qwen, Nemotron et DiffusionGemma tournaient aussi sur un cluster US, et Qwen restait plus rapide que Jev.

Malgré tout, Red Hat conclut que, dans leurs tests, les modèles de décision n’ont pas fourni de réponses plus rapides, moins chères ou meilleures que LLM-as-a-judge, à l’exception de Laya dont la petite taille est un vrai atout si l’on sait composer avec ses limites.

L’étude « Just Ask Jev »

Un article de recherche d’universitaires, publié sur arXiv en septembre 2026, a testé Jev sur 44 benchmarks d’alignement.

Les résultats sont contrastés de manière intéressante :

  • Jev classe bien les échecs d’alignement au-dessus des non-échecs, avec une AUROC médiane de 0,886 sur les 31 benchmarks compatibles avec une question oui/non générique. L’AUROC mesure la capacité d’un score à placer les positifs au-dessus des négatifs (0,5 = hasard, 1 = parfait).
  • Le coût était d’environ 0,30 $ pour un travail qui coûtait environ 18,96 $ avec des juges LLM, sur les 19 benchmarks évalués via API.
  • La calibration est bonne quand on regroupe tous les benchmarks, mais pas forcément au sein de chacun pris séparément.
  • Garder uniquement la moitié des réponses les plus éloignées de 50 % a fait passer la précision médiane de 0,793 à 0,933.
  • Les auteurs notent des limites : une seule version de Jev, anglais uniquement, petits modèles cibles (2B à 7B), et des labels souvent générés par des scoreurs existants.

Je trouve le point sur la prédiction sélective très utile en pratique.

Il montre qu’un design simple, où le modèle de décision traite les cas faciles et envoie les incertains à un LLM ou à un humain, est une bonne stratégie.

Pratique : construire un modèle de décision à partir d’un petit LLM

Construisons maintenant un modèle de décision nous-mêmes.

Nous allons transformer un petit LLM open source en modèle de décision grâce à l’astuce des probabilités de tokens vue plus haut, puis vérifier si l’on peut faire confiance à ses probabilités.

D’abord, installons les packages (tout peut être exécuté dans un notebook Colab gratuit) :

pip install transformers torch datasets sentence-transformers numpy

Étape 1 : transformer un LLM en scoreur

Nous utiliserons Qwen2.5-0.5B-Instruct, assez petit pour tourner sur CPU.

L’idée est simple : on étiquette les options avec des lettres, on exécute le modèle une fois et on ne regarde que les probabilités de ces lettres comme prochain token.

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "Qwen/Qwen2.5-0.5B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
model.eval()

def option_logits(state, question, options):
    letters = [chr(ord("A") + i) for i in range(len(options))]
    option_text = "\n".join(f"{l}. {o}" for l, o in zip(letters, options))
    messages = [
        {"role": "system", "content": "Answer with a single letter only."},
        {"role": "user", "content": f"{state}\n\nQuestion: {question}\n{option_text}"},
    ]
    prompt = tokenizer.apply_chat_template(
        messages, tokenize=False, add_generation_prompt=True
    )
    inputs = tokenizer(prompt, return_tensors="pt")

    with torch.no_grad():
        next_token_logits = model(**inputs).logits[0, -1].float()

    letter_ids = [tokenizer.encode(l, add_special_tokens=False)[0] for l in letters]
    return next_token_logits[letter_ids]

def decide(state, question, options, temperature=1.0):
    logits = option_logits(state, question, options)
    probs = torch.softmax(logits / temperature, dim=-1)
    return {o: round(p.item(), 3) for o, p in zip(options, probs)}

Remarquez que nous n’appelons jamais generate(). Nous faisons un seul passage avant, conservons les scores de « A », « B », « C », etc., puis ignorons le reste.

print(decide(
    state="My running shoes arrived in the wrong size. Can I swap them for a size 10?",
    question="Which team should handle this?",
    options=["returns", "shipping", "billing"],
))

print(decide(
    state="The app crashes every time I open the settings page.",
    question="Does this message describe a software bug?",
    options=["yes", "no"],
))

Et c’est tout. Nous venons de créer un modèle de décision fonctionnel en une trentaine de lignes.

Une question oui/non n’est qu’un cas particulier de choix à deux options.

Étape 2 : repérer les biais

Voyons maintenant où cette version simple montre ses limites.

Essayez de mélanger l’ordre des options et relancez la même question :

options = ["returns", "shipping", "billing"]
state = "My shoes arrived late and in the wrong size, and I was charged twice."
question = "Which team should handle this?"

print(decide(state, question, options))
print(decide(state, question, list(reversed(options))))

Sur des entrées ambiguës comme celle-ci, on observe souvent un déplacement des probabilités simplement parce que les options ont changé d’ordre.

C’est ce que l’on appelle un biais d’ordre, et TypeSafe mentionne effectivement une tendance vers la première option parmi les faiblesses connues de Jev.

Vous verrez aussi parfois des réponses près de 100 %. Berryman a réalisé un test parlant sur Jev lui-même : en indiquant qu’une pièce tombe sur face 60 % du temps, la question oui/non renvoie 0,58, proche de la vérité.

Mais la question à choix (« pile ou face ? ») renvoie 0,99 pour face, car la probabilité s’effondre sur l’option la plus probable.

Étape 3 : mesurer et corriger la calibration

C’est, selon moi, l’étape que tout le monde devrait exécuter. Nous allons prendre 400 actus du dataset AG News (titre + court descriptif), qui comporte quatre thèmes, et vérifier si nos probabilités collent à la réalité.

import numpy as np
from datasets import load_dataset

data = load_dataset("fancyzhx/ag_news", split="test").shuffle(seed=42).select(range(400))
labels = ["World", "Sports", "Business", "Science and technology"]
question = "What is the topic of this news headline?"

all_logits, targets = [], []
for row in data:
    all_logits.append(option_logits(row["text"], question, labels))
    targets.append(row["label"])

all_logits = torch.stack(all_logits)
targets = torch.tensor(targets)

Ensuite, il nous faut une mesure de calibration. L’Expected Calibration Error (ECE) regroupe les prédictions par tranches de confiance et mesure l’écart entre la confiance moyenne et la précision réelle dans chaque tranche.

À noter : plus bas, c’est mieux.

def expected_calibration_error(probs, targets, n_bins=10):
    confidences, predictions = probs.max(dim=-1)
    correct = (predictions == targets).float()
    bins = np.linspace(0, 1, n_bins + 1)
    ece = 0.0
    for lo, hi in zip(bins[:-1], bins[1:]):
        mask = (confidences > lo) & (confidences <= hi)
        if mask.any():
            gap = abs(correct[mask].mean() - confidences[mask].mean())
            ece += mask.float().mean() * gap
    return float(ece), float(correct.mean())

Voici maintenant l’astuce.

Nous divisons les données en deux, utilisons la première moitié pour trouver une température qui rend les probabilités plus honnêtes, puis testons sur la seconde.

Une température > 1 adoucit des prédictions trop confiantes, tandis qu’une température < 1 accentue des prédictions timorées.

calib_logits, test_logits = all_logits[:200], all_logits[200:]
calib_targets, test_targets = targets[:200], targets[200:]

def nll(temperature):
    probs = torch.softmax(calib_logits / temperature, dim=-1)
    picked = probs[torch.arange(len(calib_targets)), calib_targets]
    return -torch.log(picked + 1e-12).mean().item()

temperatures = [float(t) for t in np.linspace(0.5, 5.0, 46)]
best_t = min(temperatures, key=nll)

before = expected_calibration_error(torch.softmax(test_logits, dim=-1), test_targets)
after = expected_calibration_error(torch.softmax(test_logits / best_t, dim=-1), test_targets)

print(f"Best temperature: {best_t:.2f}")
print(f"Before: ECE={before[0]:.3f}, accuracy={before[1]:.3f}")
print(f"After:  ECE={after[0]:.3f}, accuracy={after[1]:.3f}")

La précision ne change pas, car diviser par une température ne modifie pas l’option la mieux classée.

Seule la confiance change.

Vos chiffres exacts varieront selon l’exécution, mais l’ECE sur la moitié test devrait généralement baisser. Avec seulement 200 exemples, l’estimation reste bruitée, donc ne surinterprétez pas de petits écarts.

La leçon est simple : qu’un modèle soit calibré sur les données de quelqu’un d’autre ne garantit pas qu’il le soit sur les vôtres.

Étape 4 : noter des candidats avec un cross-encoder

Pour montrer à quel point l’idée « noter, ne pas générer » est répandue, voici le même principe dans un contexte RAG.

Un cross-encoder note chaque passage par rapport à une question et on se contente de trier :

from sentence_transformers import CrossEncoder

reranker = CrossEncoder("cross-encoder/ms-marco-MiniLM-L6-v2")

query = "How do I get a refund for a double charge?"
passages = [
    "Our app supports dark mode on all devices.",
    "If you were charged twice, contact billing and we will refund the duplicate payment.",
    "Refunds are processed within five business days.",
    "You can change your password from the settings page.",
]

for result in reranker.rank(query, passages):
    print(round(float(result["score"]), 3), passages[result["corpus_id"]])

Là encore, rien n’est généré : le modèle attribue simplement un score à chaque candidat.

Cas d’usage des modèles de décision

Voici les cas d’usage les plus fréquents :

Cas d’usage Comment un modèle de décision aide
Routage d’agents Décide quel outil ou sous-agent doit prendre la main.
Garde-fous Détecte une injection de prompt ou un contenu à risque avant le LLM.
Triage support Oriente les tickets par équipe, sujet et urgence.
Intake documentaire Répond à une checklist fixe de questions sur chaque document.
Recherche et RAG Reclasse les passages récupérés par pertinence.
Crédit et fraude Évalue le risque, même si les décisions concernant des personnes doivent rester revues par un humain.
Robotique Pourrait servir de couche rapide entre un planificateur LLM lent et le contrôle moteur bas niveau, mais cela reste spéculatif.

La robotique est, personnellement, l’idée qui m’enthousiasme le plus.

Berryman suggère qu’un modèle comme Jev pourrait s’intercaler entre un LLM lent, qui planifie à haut niveau, et les modèles cinématiques qui déplacent les articulations d’un robot.

À noter toutefois que la célèbre démo Doom de TypeSafe alimentait Jev avec de la télémétrie texte plutôt que des images brutes.

Limites des modèles de décision

Les modèles de décision sont utiles, mais ne les surestimons pas.

Voici les principales limites à garder à l’esprit :

  • Ils ne peuvent choisir que dans votre liste. Si la bonne réponse n’y figure pas, le modèle ne peut pas l’inventer ; TypeSafe recommande donc d’ajouter une option « autre » ou une question oui/non complémentaire pour vérifier si quelque chose convient vraiment.
  • Être confiant et avoir tort reste avoir tort. L’absence de réponses hors format ne signifie pas absence d’erreurs.
  • La calibration ne se transfère pas automatiquement. Testez vos seuils sur un petit échantillon labellisé de vos propres données.
  • Les prompts ne se transfèrent pas toujours. Red Hat a constaté qu’un prompt optimisé pour Laya augmentait sa précision de près de 18 points, mais rendait Jev environ 3,7 points moins bon.
  • Pas d’explication. Les décisions sont plus difficiles à auditer ; journalisez vos entrées et gardez un LLM pour les cas qui nécessitent une justification.
  • Points faibles connus. La doc de TypeSafe liste les maths, les dates, un long contexte hors sujet, le texte adversarial et un biais vers la première option.

Conclusion

Les modèles de décision en IA reprennent une idée très ancienne : noter des candidats plutôt que générer des réponses, et la rendent nettement plus simple à utiliser.

Vous n’avez pas besoin de données d’entraînement ; vous recevez des réponses typées, et vous pouvez poser plusieurs questions à la fois.

Selon moi, c’est cet « emballage » qui constitue la vraie innovation.

Je m’attends à voir les modèles de décision se placer autour des LLM comme des filtres rapides et économiques qui gèrent les décisions simples, et ne font tourner le modèle coûteux que lorsque quelque chose doit réellement être rédigé.

FAQ sur les modèles de décision

Qu’est-ce qu’un modèle de décision en IA&nbsp;?

C’est un modèle qui répond à des questions de type oui/non, choix multiple ou échelle de score avec une probabilité pour chaque réponse autorisée, sans générer de texte libre.

Jev est-il un grand modèle de langage&nbsp;?

TypeSafe répond non, car Jev ne génère pas de texte. Cependant, plusieurs modèles de décision concurrents sont des LLM affinés, et certains analystes soupçonnent que Jev fonctionne de manière similaire sous le capot.

Les modèles de décision peuvent-ils halluciner&nbsp;?

Ils ne peuvent pas renvoyer une réponse en dehors de la liste fournie. Ils peuvent toutefois choisir avec assurance la mauvaise option.

Dois-je utiliser un modèle de décision ou un classificateur affiné&nbsp;?

Un classificateur affiné l’emporte souvent sur une tâche fixe quand vous avez des données labellisées. Un modèle de décision est plus adapté si vous n’avez pas de données ou si vos questions évoluent souvent.

Quel est le lien entre modèles de décision et reward models&nbsp;?

Ce sont tous deux des scoreurs : les reward models évaluent un texte déjà généré par un LLM, tandis que les modèles de décision évaluent des réponses que nous définissons à l’avance.


Vaibhav Mehra's photo
Author
Vaibhav Mehra
LinkedIn
Sujets
Intelligence artificielle
Grands modèles linguistiques

Les meilleurs cours DataCamp

Cursus

Associate AI Engineer pour développeurs

26 h
Apprenez à intégrer l'IA dans des applications logicielles en utilisant des API et des bibliothèques open source. Commencez dès aujourd'hui votre parcours pour devenir AI Engineer !
Voir les détailsCommencer Le Cours

Créez votre compte gratuit

S'entraîner et cursus vos progrès.

Continuer Avec Google
En continuant, vous acceptez nos Conditions d'utilisation, notre Politique de confidentialité et le fait que vos données seront hébergées aux États-Unis.
Voir plus
Contenus associés

blog

Types d'agents d'intelligence artificielle : Comprendre leurs rôles, leurs structures et leurs applications

Découvrez les principaux types d'agents d'intelligence artificielle, comment ils interagissent avec les environnements et comment ils sont utilisés dans les différents secteurs d'activité. Comprendre les agents réflexes simples, les agents basés sur un modèle, les agents basés sur un but, les agents basés sur l'utilité, les agents d'apprentissage, etc.

blog

ROI de l'IA en 2026 : pourquoi les compétences des équipes déterminent le retour sur investissement

Seuls 21 % des dirigeants font état d'un retour sur investissement « significatif » de leurs investissements dans l'IA.
Lynn Heidmann's photo

Lynn Heidmann

blog

Comprendre les TPU et les GPU dans l'IA : Un guide complet

L'essor du développement de l'intelligence artificielle (IA) a entraîné une augmentation notable de la demande en matière de calcul, d'où la nécessité de disposer de solutions matérielles robustes. Les unités de traitement graphique (GPU) et les unités de traitement tensoriel (TPU) sont devenues des technologies essentielles pour répondre à ces demandes.
Kurtis Pykes 's photo

Kurtis Pykes

9 min

blog

Architecture de l'entrepôt de données : Tendances, outils et techniques

Apprenez l'essentiel de l'architecture d'un entrepôt de données, des composants clés aux meilleures pratiques, pour construire un système de données évolutif et efficace !
Kurtis Pykes 's photo

Kurtis Pykes

15 min

Tutoriel

API DeepSeek : guide avec exemples et calculs de coûts

Apprenez à utiliser l'API DeepSeek : choix des modèles, gestion des paramètres, optimisation des coûts, mise en cache du contexte et optimisation du chain-of-thought.
Dr Ana Rojo-Echeburúa's photo

Dr Ana Rojo-Echeburúa

12 min

cursor ai code editor

Tutoriel

Cursor AI : Un guide avec 10 exemples pratiques

Apprenez à installer Cursor AI sur Windows, macOS et Linux, et découvrez comment l'utiliser à travers 10 cas d'utilisation différents.
Voir plus