Raisonnement guidé par schéma et 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 structure est définie. Ajoutez le raisonnement guidé par schéma (SGR) lorsque le programme ou une personne chargée de la revue 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 |
|---|---|---|
| Prompt de formatage JSON | Des instructions pour renvoyer du JSON | Que la réponse respecte un schéma |
| Sortie contrainte par un schéma | 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 |
| Schéma SGR | 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 liste de contrôle 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 fournisseur sélectionné ainsi que l’état de la génération. Un refus, une réponse tronquée ou une requête échouée nécessite son propre traitement 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 une personne chargée de la revue 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 à la personne chargée de la revue 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 intermédiaires sont utiles
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 personnes chargées de la revue 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 d’exactitude en vous fondant uniquement sur le nom du schéma.
Pour approfondir
- Raisonnement guidé par schéma avec vLLM explique les schémas, XGrammar et les contrôles de politique côté application.
- Mémoire d’agent guidée par schéma applique des enregistrements typés et l’historique des sources à l’état persistant.
- Choix de modèles NER distingue les passages de texte littéraux de l’extraction qui nécessite une inférence.