Raisonnement guidé par schéma vs structured outputs pour les LLMs
Traduction automatique Cet article a été traduit automatiquement depuis la version originale en anglais.
Utilisez les structured outputs lorsque votre programme a besoin de champs dont la forme est définie. Ajoutez le raisonnement guidé par schéma (SGR) lorsque le programme ou un reviewer a également besoin d’enregistrements intermédiaires, comme les éléments de preuve issus des sources et une décision proposée. Le SGR utilise les structured outputs pour exprimer ces étapes ; il ne constitue pas une garantie distincte que la réponse est correcte.
Si le consommateur a uniquement besoin d’une catégorie et d’un ID de source, conservez ces champs. N’ajoutez des champs d’analyse que si vous pouvez expliquer comment ils seront vérifiés ou utilisés.
Dernière révision : 2026-09-08.
Rôle de chaque couche
| Couche | Ce qu’elle fournit | Ce qu’elle ne peut pas établir |
|---|---|---|
| JSON formatting prompt | Des instructions pour renvoyer du JSON | Que la réponse respecte un schéma |
| Schema-constrained output | Une réponse qui respecte le schéma pris en charge lorsque la génération s’achève avec succès | Que les valeurs sont exactes |
| SGR schema | Des champs intermédiaires nommés et une décision proposée | Qu’un champ a été correctement dérivé d’un autre |
| Contrôles applicatifs | Des tests sur les éléments de preuve issus des sources, les calculs et les actions autorisées | Les faits que l’application ne vérifie jamais |
La description du SGR par Rinat Abdullin utilise les schémas comme une checklist du travail renvoyé par le modèle. Dans une configuration auto-hébergée, les structured outputs de vLLM peuvent imposer un JSON Schema via un backend de décodage tel que XGrammar. La simple définition d’un modèle Pydantic en Python n’active pas le constrained decoding sur le serveur.
Vérifiez le sous-ensemble de schémas pris en charge par le provider sélectionné ainsi que l’état de complétion. Un refus, une réponse tronquée ou une requête échouée nécessite son propre parcours d’erreur. Le guide de Gemini sur les structured outputs souligne également la limite essentielle : une structure JSON correcte ne garantit pas l’exactitude des valeurs des champs.
Une proposition de remise illustre la différence
Supposons qu’un outil de support puisse proposer une remise maximale de 10 %. Une réponse structurée minimale pourrait contenir discount_percent et customer_message. Si un reviewer interne a besoin d’éléments de preuve, une réponse SGR pourrait également contenir policy_source_id et eligibility_evidence.
Ces champs supplémentaires donnent au reviewer des éléments à examiner. Ils ne rendent pas valide une remise proposée de 15 %. Même un schéma qui limite le pourcentage à 10 ne peut pas prouver que ce client est éligible.
Avant d’utiliser l’offre, le code applicatif doit charger la politique applicable et la fiche client, vérifier l’éligibilité et calculer le montant autorisé. Considérez l’explication du modèle comme une affirmation à vérifier. Si une étape ultérieure du modèle a besoin de faits approuvés, validez-les avant d’effectuer cet appel. L’ordre des champs au sein d’un même objet JSON ne crée pas une étape de validation.
Quand les champs supplémentaires sont justifiés
Le SGR est utile lorsqu’une mauvaise réponse nécessite un diagnostic plus précis. Par exemple, un classifieur de documents peut renvoyer un passage source et une catégorie. Les reviewers peuvent alors distinguer un mauvais choix de passage d’une catégorie incorrecte malgré des éléments de preuve pertinents.
Il est moins utile lorsque chaque résultat reçoit une longue explication que personne ne lit ni n’évalue. Les sorties supplémentaires consomment des tokens, et une explication convaincante peut malgré tout être fausse.
Comparez le petit schéma et le schéma SGR sur les mêmes cas annotés et avec le même modèle. Évaluez séparément la décision finale, l’étayage par la source et la validité des champs. Conservez les champs intermédiaires s’ils améliorent la décision ou rendent la revue suffisamment utile pour justifier la sortie supplémentaire. Ne supposez pas un gain de précision en vous fondant uniquement sur le nom du schéma.
Pour approfondir
- Schema-guided reasoning avec vLLM explique les schémas, XGrammar et les contrôles de politique côté application.
- Schema-guided agent memory applique des enregistrements typés et l’historique des sources à l’état persistant.
- Choix de modèles NER distingue les spans de texte littéraux de l’extraction qui nécessite une inférence.