Problemi di output strutturato di Ollama GPT-OSS

Non molto bello.

Indice

Ollama’s GPT-OSS models presentano problemi ricorrenti nel gestire l’output strutturato, specialmente quando utilizzati con framework come LangChain, OpenAI SDK, vllm e altri.

Molti utenti segnalano fallimenti nella generazione di JSON valido o di altri formati strutturati, l’illuminazione da parte del modello di elementi di formato e contenuti di risposta inconsistenti o vuoti. Questi problemi derivano da attuali lacune di compatibilità, cambiamenti nei formati di risposta (come Harmony) e dall’assenza di un’applicazione completa degli schemi di output sia da parte di Ollama che da parte di API di terze parti.

llama with the issues

Su GPT-OSS

Questo è un nuovo e molto interessante LLM proveniente da OpenAI. Basta dare un’occhiata a questi parametri:

Modello gpt-oss-120b gpt-oss-20b
Strati 36 24
Parametri Totali 117B 21B
Parametri Attivi Per Token 5,1B 3,6B
Esperti Totali 128 32
Esperti Attivi Per Token 4 4
Lunghezza Contesto 128k 128k

Le note di rilascio dicono (qui e qui):

  • Licenza permissiva Apache 2.0: Costruisci liberamente senza restrizioni di copyleft o rischi di brevetti — ideale per sperimentazioni, personalizzazioni e distribuzione commerciale.
  • Configurabile sforzo di ragionamento: È facile regolare lo sforzo di ragionamento (basso, medio, alto) in base al tuo caso d’uso specifico e alle esigenze di latenza.
  • Catena completa di pensiero: Ottenere completo accesso al processo di ragionamento del modello, facilitando un debug più semplice e aumentando la fiducia nei risultati. Non è destinato a essere mostrato agli utenti finali.
  • Fine-tunable: Personalizza completamente i modelli per il tuo caso d’uso specifico tramite l’addestramento dei parametri.
  • Capacità agentiche: Utilizza le capacità native dei modelli per la chiamata di funzioni, la navigazione web, l’esecuzione di codice Python e Output Strutturati.
  • Quantizzazione MXFP4: I modelli sono stati addestrati post-quantizzati con la quantizzazione MXFP4 dei pesi MoE, permettendo al modello gpt-oss-120b di funzionare su un singolo GPU da 80 GB (come NVIDIA H100 o AMD MI300X) e al modello gpt-oss-20b di funzionare all’interno di 16 GB di memoria. Tutte le valutazioni sono state eseguite con la stessa quantizzazione MXFP4.

Cosa non amare? Il comportamento dell’output strutturato… che è proprio questo. Complessivamente, questo problema è molto deludente, soprattutto perché L’output strutturato funziona così bene con Ollama e Qwen3.

Problemi Comuni

  • Modelli come gpt-oss:20b spesso falliscono nel produrre un JSON rigoroso o un output conforme allo schema, con risposte che spesso contengono commenti extra o oggetti incompleti.
  • L’integrazione con LangChain e OpenAI SDK tende a generare errori di analisi/validazione a causa dell’output non strutturato, rendendo i pipeline non utilizzabili in ambienti di produzione.
  • Il formato Harmony in gpt-oss introduce tracce di ragionamento anche quando non richieste, complicando l’analisi dello schema rispetto ad altri modelli come Qwen3.
  • Con vllm, i meccanismi di applicazione dell’output strutturato sono assenti o deprecati, quindi l’output è spesso “non guidato” e deve essere analizzato manualmente.
  • Ci sono segnalazioni del modello che produce l’output strutturato corretto, quindi prosegue con contenuti non correlati, rompendo i parser standard.

Soluzioni alternative e correzioni

  • Alcuni utenti suggeriscono di specificare esplicitamente lo schema JSON nel prompt e di tentare un’analisi manuale degli output del modello, a volte utilizzando marcatori di inizio e fine.
  • Un altro approccio è eseguire uno strato di post-elaborazione o un LLM più piccolo per riformattare l’output GPT-OSS allo schema desiderato, anche se questo è molto oneroso in termini di risorse.
  • Alcune correzioni e richieste di modifica (PR) hanno migliorato progressivamente la conformità al formato Harmony, specialmente con le nuove release di Ollama, ma non è ancora raggiunta una piena parità con i modelli precedenti.
  • Quando si utilizza vllm, la modifica di funzioni specifiche potrebbe aiutare, ma in generale non è supportata una corretta applicazione dello schema in questo momento.

Consigli

  • Evitare di affidarsi esclusivamente a GPT-OSS per l’output strutturato rigoroso finché non sarà ripristinata la piena compatibilità in Ollama e nei framework downstream.
  • Dove l’output strutturato è critico, utilizzare un ulteriore parsing o un modello noto per la conformità agli schemi.
  • Monitorare le issue pertinenti su GitHub (ollama/ollama, langchain-ai/langchain, vllm-project/vllm) per le correzioni e gli aggiornamenti di integrazione.

In sintesi, GPT-OSS con Ollama attualmente ha difficoltà nell’output strutturato, in gran parte a causa dell’applicazione incompleta del formato, dei cambiamenti nel formato Harmony e del supporto mancante attraverso le catene di strumenti. I workaround manuali potrebbero aiutare, ma un successo costante non è garantito.

Altri articoli su Ollama