SortieAnalyse · Sur le radarHabr AI→ original

MiniJev lit les logits et accélère la classification des requêtes d'un facteur 5,4

Lorsqu'on attend d'un LLM qu'il choisisse parmi des options prédéfinies, générer du JSON ne fait que perdre du temps. MiniJev prend les logits du premier token de la réponse, compare les étiquettes A, B, C et renvoie des probabilités sans génération séquentielle. Sur Qwen 2.5 1.5B dans Colab, le prototype a traité une requête en 0,196 seconde contre 1,051 seconde pour le JSON, et la calibration sur SST-2 a ramené l'ECE de 6,8 % à 2,5 % sans modifier la précision.

Traité par IA depuis Habr AI ; édité par Hamidun News
MiniJev lit les logits et accélère la classification des requêtes d'un facteur 5,4
Source : Habr AI. Collage: Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Source primaireHabr AI ↗
Rédacteur en chef
Chiffre clé #1L'approche convient au routage, aux indicateurs de risque et aux notations sur une échelle.
Chiffre clé #2Les probabilités doivent être calibrées sur des données issues de votre propre environnement de production.
Chiffre clé #3Le choix est limité aux options définies, mais cela ne garantit pas une décision correcte.

Lorsqu'un modèle doit choisir un service d'assistance, attribuer un niveau d'urgence ou répondre « oui » ou « non », il n'a pas besoin d'une réponse textuelle complète. Pourtant, un pipeline LLM classique le force quand même à générer du JSON séquentiellement : accolades, clés, guillemets et valeurs. Chaque nouveau token attend le précédent, alors que la décision est souvent déjà visible dans la distribution de probabilités après le traitement du prompt.

L'auteur du prototype MiniJev propose de lire cette décision directement dans les logits, c'est-à-dire les nombres que le modèle calcule avant de choisir le token suivant. Cette approche rappelle l'interface Jev de TypeSafe AI, mais ne cherche pas à reproduire le modèle lui-même : l'expérience utilise un Qwen 2.5 1.5B Instruct standard, sans fine-tuning. Le tout s'exécute sur un Nvidia T4 gratuit dans Google Colab.

Comment obtenir une décision sans générer de texte

Imaginons la demande suivante : « Mon paiement a été débité deux fois, remboursez-moi un des prélèvements ». Le système pose trois questions au modèle : le client est-il en colère, quel service doit prendre en charge la demande et quel est son degré d'urgence. Pour chaque question, les options sont énumérées à l'avance et désignées par les lettres A, B, C, etc.

Après une seule passe, le modèle dispose déjà des logits du premier token possible de la réponse. MiniJev ne conserve que les logits des lettres autorisées, applique un softmax et obtient une distribution de probabilités. Pour le service, cela peut donner : billing — 99,99 %, support technique — 0,005 %, ventes — 0,001 %. Aucune accolade ni aucun nom de champ n'a besoin d'être généré.

Le code tient compte de deux subtilités pratiques. Premièrement, le tokenizer peut encoder différemment une lettre précédée ou non d'une espace ; les probabilités des tokens simples valides sont donc regroupées. Deuxièmement, le modèle préfère parfois le premier ou le dernier choix, indépendamment du sens. Pour contrer ce biais, les options sont permutées de manière circulaire, puis leurs log-probabilités sont moyennées. Le coût : des prompts et des calculs supplémentaires, surtout lorsque les options sont nombreuses.

La vitesse est au rendez-vous, les probabilités fiables viennent après

Sur une requête de test, le temps médian de MiniJev a été de 0,1959 seconde. La génération d'un JSON équivalent a pris 1,0514 seconde, soit environ 5,4 fois plus. C'est un repère utile, mais pas un résultat universel : la mesure a été réalisée sur un seul modèle, un seul GPU et un seul type de requête. De plus, la comparaison dépend du batching, de la longueur du JSON et du nombre de permutations des options.

Les probabilités brutes ne peuvent pas être interprétées automatiquement comme un niveau de confiance réel. Le modèle a été entraîné à prédire le token suivant, pas à indiquer la fréquence de ses réussites. L'auteur a vérifié la calibration sur 600 exemples de SST-2 : 200 ont servi à régler le Platt scaling, 400 au test. La précision est restée à 92,7 %, tandis que l'erreur de calibration attendue (ECE) est passée de 6,8 % à 2,5 %. Le résultat est encourageant, mais il porte sur un seul jeu de données et un seul découpage.

Cas d'usage

Cette approche convient au routage des demandes, aux indicateurs de modération, à la détection d'intention, au choix de la prochaine action d'un agent et aux notations sur une échelle fixe. Elle garantit que la réponse restera dans la liste définie, mais pas qu'elle soit exacte : le modèle peut choisir avec assurance une mauvaise option.

La conclusion pratique est simple. Si l'ensemble des réponses est connu à l'avance, testez d'abord la lecture des logits plutôt que la génération de texte structuré. Rassemblez ensuite au moins quelques centaines d'exemples annotés issus de votre environnement, calibrez les probabilités et mesurez non seulement la latence, mais aussi la précision, l'ECE et le coût des permutations supplémentaires. Pour les réponses ouvertes et les explications complexes, cette technique ne convient pas : la génération y reste nécessaire.

Dossier

Questions clés sur cet article

Comment obtenir une décision sans générer de texte?

Imaginons la demande suivante : « Mon paiement a été débité deux fois, remboursez-moi un des prélèvements ». Le système pose trois questions au modèle : le client est-il en colère, quel service doit prendre en charge la demande et quel est son degré d'urgence. Pour chaque question, les options sont énumérées à l'avance et désignées par les lettres A, B, C, etc. Après une seule passe, le modèle dispose déjà des logits du premier token possible de la réponse.

Que sait-on sur La vitesse est au rendez-vous, les probabilités fiables viennent après ?

Sur une requête de test, le temps médian de MiniJev a été de 0,1959 seconde. La génération d'un JSON équivalent a pris 1,0514 seconde, soit environ 5,4 fois plus. C'est un repère utile, mais pas un résultat universel : la mesure a été réalisée sur un seul modèle, un seul GPU et un seul type de requête. De plus, la comparaison dépend du batching, de la longueur du JSON et du nombre de permutations des options.

Que sait-on sur Cas d'usage ?

Cette approche convient au routage des demandes, aux indicateurs de modération, à la détection d'intention, au choix de la prochaine action d'un agent et aux notations sur une échelle fixe. Elle garantit que la réponse restera dans la liste définie, mais pas qu'elle soit exacte : le modèle peut choisir avec assurance une mauvaise option. La conclusion pratique est simple. Si l'ensemble des réponses est connu à l'avance, testez d'abord la lecture des logits plutôt que la génération de texte structuré.

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
Qu'en pensez-vous ?
Chargement des commentaires…