Problèmes de sortie structurée d'Ollama GPT-OSS

Peu agréable.

Sommaire

Les modèles GPT-OSS d’Ollama rencontrent régulièrement des problèmes pour gérer les sorties structurées, surtout lorsqu’ils sont utilisés avec des cadres comme LangChain, OpenAI SDK, vllm et d’autres.

Beaucoup d’utilisateurs signalent des échecs pour générer du JSON valide ou d’autres formats structurés, des hallucinations de format par le modèle, ainsi que du contenu de réponse incohérent ou vide. Ces problèmes proviennent des écarts actuels de compatibilité, des changements de format de réponse (comme Harmony), et de l’application incomplète des schémas de sortie à la fois par Ollama et par les API tierces.

llama with the issues

À propos de GPT-OSS

Il s’agit d’un nouveau très intéressant LLM d’OpenAI. Regardez simplement ces paramètres :

Modèle gpt-oss-120b gpt-oss-20b
Couches 36 24
Paramètres totaux 117B 21B
Paramètres actifs par token 5,1B 3,6B
Total d’experts 128 32
Experts actifs par token 4 4
Longueur du contexte 128k 128k

Les notes de publication indiquent (ici et ici) :

  • Licence permissive Apache 2.0 : Construisez librement sans restrictions de copyleft ou risque de brevet — idéale pour l’expérimentation, la personnalisation et le déploiement commercial.
  • Effort de raisonnement configurable : Ajustez facilement l’effort de raisonnement (faible, moyen, élevé) en fonction de votre cas d’utilisation spécifique et de vos besoins en latence.
  • Chaîne complète de pensée : Accédez entièrement au processus de raisonnement du modèle, facilitant le débogage et augmentant la confiance dans les sorties. Ce n’est pas destiné à être affiché aux utilisateurs finaux.
  • Personnalisable : Personnalisez pleinement les modèles à votre cas d’utilisation spécifique grâce à l’ajustement des paramètres.
  • Capacités agentic : Utilisez les capacités natives des modèles pour l’appel de fonctions, la navigation sur le web, l’exécution de code Python et les Sorties Structurées.
  • Quantification MXFP4 : Les modèles ont été post-entraînés avec la quantification MXFP4 des poids MoE, permettant au modèle gpt-oss-120b de fonctionner sur une seule carte graphique de 80 Go (comme NVIDIA H100 ou AMD MI300X) et au modèle gpt-oss-20b de fonctionner dans 16 Go de mémoire. Tous les tests ont été effectués avec la même quantification MXFP4.

Qu’y a-t-il à ne pas aimer ? Le comportement des sorties structurées… c’est cela. Dans l’ensemble, ce problème est très décevant, surtout parce que les Sorties Structurées fonctionnent si bien avec Ollama et Qwen3.

Problèmes courants

  • Des modèles comme gpt-oss:20b échouent fréquemment à produire un JSON strict ou une sortie conforme au schéma, les réponses contenant souvent des commentaires supplémentaires ou des objets incomplets.
  • L’intégration avec LangChain et OpenAI SDK tend à générer des erreurs de parsing/validation en raison de la sortie non structurée, rendant les pipelines inutilisables dans les environnements de production.
  • Le format Harmony dans gpt-oss introduit des traces de raisonnement même lorsqu’elles ne sont pas demandées, compliquant le parsing du schéma par rapport à d’autres modèles tels que Qwen3.
  • Avec vllm, les mécanismes de mise en œuvre des sorties structurées sont soit absents soit obsolètes, donc la sortie est fréquemment “non guidée” et doit être analysée manuellement.
  • Il y a des rapports selon lesquels le modèle produit la sortie structurée correcte, puis continue avec du contenu non lié, brisant les parseurs standards.

Contournements et solutions

  • Certains utilisateurs suggèrent de spécifier explicitement le schéma JSON dans la demande et d’essayer le parsing manuel des sorties du modèle, parfois en utilisant des marqueurs de début et de fin.
  • Une autre approche consiste à exécuter une couche de post-traitement ou un petit LLM pour reformater la sortie GPT-OSS au schéma souhaité, bien que cela soit coûteux en ressources.
  • Quelques correctifs et demandes de tirage (PRs) ont amélioré progressivement la conformité au format Harmony, en particulier avec les nouvelles versions d’Ollama, mais une parité complète avec les modèles précédents n’est pas encore atteinte.
  • Lors de l’utilisation de vllm, le patching de fonctions spécifiques peut aider, mais en général, une mise en œuvre robuste des schémas n’est pas actuellement prise en charge.

Recommandations

  • Évitez de vous reposer uniquement sur GPT-OSS pour les sorties structurées strictes jusqu’à ce que la compatibilité totale soit restaurée dans Ollama et les cadres en aval.
  • Lorsque les sorties structurées sont critiques, utilisez un parsing supplémentaire ou un modèle mieux connu pour la conformité aux schémas.
  • Suivez les problèmes pertinents sur GitHub (ollama/ollama, langchain-ai/langchain, vllm-project/vllm) pour les correctifs et les mises à jour d’intégration.

En résumé, GPT-OSS avec Ollama a actuellement des difficultés avec les sorties structurées, principalement en raison de l’application incomplète des formats, des changements de format Harmony et du manque de prise en charge à travers les outils. Des contournements manuels peuvent aider, mais une réussite constante n’est pas garantie.

Liens utiles

Autres articles sur Ollama