Qu’est-ce qui amène le même LLM local à renvoyer des schémas JSON incohérents ?

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

Le même LLM local renvoie des schémas incohérents lorsque son prompt effectif ou ses contraintes de décodage changent, ou lorsque l'échantillonnage non contraint sélectionne différentes structures qui semblent valides.

Un fichier de modèle peut rester identique tandis que le serveur modifie les modèles de conversation, les prompts système, les définitions d'outils, les versions de schéma, les graines d'échantillonnage, la troncature du contexte ou la prise en charge des grammaires. Les demandes JSON reposant uniquement sur le prompt restent probabilistes : les clés facultatives, les types, l'imbrication et le texte supplémentaire peuvent varier. Même une sortie contrainte peut différer sémantiquement lorsque le schéma autorise plusieurs formes ou que l'environnement d'exécution utilise silencieusement un mécanisme de repli.

Les différences de prompt et de contexte modifient le contrat demandé

Les modèles de conversation entourent les messages de jetons propres au modèle, et les frameworks d'outils peuvent injecter des descriptions de fonctions ou des exemples. La réduction du contexte peut supprimer le schéma ou une correction précédente, tandis que les modifications du registre des schémas changent les champs obligatoires et facultatifs.

Une analyse en production des garanties des sorties structurées distingue la mise en forme reposant uniquement sur le prompt, le mode JSON et la sortie contrainte par grammaire. La signature est une variation structurelle qui suit le modèle de conversation, le contexte ou la version du schéma, plutôt que les poids du modèle. Cette distinction reste visible lors des tests domestiques ultérieurs.

Consignez le prompt sérialisé exact et le hash du schéma. Deux requêtes de l'interface qui semblent identiques ne constituent pas des essais contrôlés lorsque les messages masqués, l'ordre des outils ou l'historique diffèrent. Le résultat intermédiaire doit rester inspectable avant toute automatisation.

L'échantillonnage libre et les modes JSON faibles n'imposent pas un schéma unique

La température, top-p, la graine et l'exécution parallèle influencent le choix des jetons. Un mode JSON valide peut garantir les accolades et les guillemets tout en autorisant des clés manquantes, une imbrication différente, des types incorrects ou des champs inattendus. Cette limite doit être mesurée séparément dans des conditions d'utilisation réalistes.

Le benchmark de génération contrainte par schéma évalue les décodeurs contraints sur des schémas réels et distingue la couverture, l'efficacité et la qualité des sorties. Sa conception montre pourquoi la réussite de l'analyse syntaxique est moins exigeante que la conformité exacte au schéma. La conséquence pratique apparaît lorsque plusieurs sources se disputent un contexte limité.

Si plusieurs exécutions sont toutes analysables mais se valident selon des formes différentes, le décodeur est insuffisamment contraint ou le schéma autorise des variantes. Si les sorties ne peuvent pas être analysées, l'arrêt ou la troncature peut en être la cause initiale. Cette dépendance doit rester explicite dans l'interface finale.

Les mécanismes de repli, les mots-clés non pris en charge et les couches de correction modifient la sortie

Un moteur local peut ne pas prendre en charge tous les mots-clés JSON Schema, tous les tokeniseurs, tous les schémas récursifs ou tous les formats d'appel d'outils. Certains wrappers utilisent un prompt de repli, corrigent un texte invalide ou réessaient avec un autre modèle sans exposer le chemin suivi. Le résultat doit donc être vérifié par rapport aux éléments de preuve d'origine.

Le système de décodage contraint par grammaire compile les grammaires en masques de jetons pour générer efficacement des sorties structurées. Ce mécanisme dépend d'un état correct du tokeniseur et de la grammaire ; la couverture non prise en charge doit être détectée plutôt que supposée. Cette distinction reste visible lors des tests domestiques ultérieurs.

La limite de défaillance se situe dans la variation des valeurs de champs au sein d'un même schéma valide. La cohérence structurelle ne garantit ni l'exactitude sémantique ni un contenu déterministe. Diagnostiquez séparément la forme du schéma et la véracité des valeurs. Le résultat intermédiaire doit rester inspectable avant toute automatisation.

Figez et identifiez par empreinte l'ensemble du chemin de génération JSON

Pour chaque exécution, consignez la somme de contrôle du modèle, la quantification, la version de l'environnement d'exécution, le modèle de conversation, le hash du prompt sérialisé, le hash du schéma, le rapport des mots-clés pris en charge, la clé du cache de grammaire, les valeurs d'échantillonnage, la graine, la troncature du contexte, la raison de l'arrêt, le résultat de la validation, la tentative de correction, le modèle de repli et la forme finale de l'objet.

Utilisez le JSON structuré local comme limite de capacité attendue. Rejouez une matrice de schémas avec des graines fixes et variables, puis utilisez délibérément un mot-clé non pris en charge et un contexte tronqué afin de vérifier que les défaillances sont explicites. Cette limite doit être mesurée séparément dans des conditions d'utilisation réalistes.

Exigez un décodage contraint associé à une validation déterministe lorsque la forme du schéma constitue un contrat. Refusez les mécanismes de repli silencieux, versionnez les schémas et conservez les contrôles sémantiques après l'analyse ; un objet parfaitement cohérent peut tout de même contenir la mauvaise action domestique. La conséquence pratique apparaît lorsque plusieurs sources se disputent un contexte limité.

Centre Tech & IA

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.