Problemi di Output Strutturato di Ollama GPT-OSS

Non molto bello.

Indice

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

Molti utenti segnalano fallimenti nel generare JSON valido o altri formati strutturati, l’illuminazione (hallucinazione) del modello riguardo agli elementi del 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 parziale di applicazione degli schemi di output da parte di Ollama e di API di terze parti. Per un contesto più ampio sui runtimes, throughput e benchmark, vedere LLM Performance: Benchmarks, Bottlenecks & Optimization.

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 del 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 deployment commerciali.
  • Configurabile sforzo di ragionamento: Regola facilmente lo sforzo di ragionamento (basso, medio, alto) in base al tuo caso specifico e alle tue esigenze di latenza.
  • Catena completa di pensiero: Otteni completo accesso al processo di ragionamento del modello, facilitando il debug e aumentando la fiducia nei risultati. Non è destinato a essere mostrato agli utenti finali.
  • Fine-tunabile: Personalizza completamente i modelli per il tuo caso specifico tramite fine-tuning dei parametri.
  • Capacità agentiche: Utilizza le capacità native dei modelli per chiamate a funzioni, navigazione web, esecuzione di codice Python e Output Strutturati.
  • Quantizzazione MXFP4: I modelli sono stati post-addestrati 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. Nel complesso, 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 parsing/validation a causa dell’output non strutturato, rendendo i pipeline inutilizzabili in ambienti di produzione.
  • Il formato Harmony in gpt-oss introduce tracce di ragionamento anche quando non richieste, complicando il parsing degli schemi 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 che il modello produca l’output strutturato corretto, quindi continui 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 parsing manuale degli output del modello, talvolta 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 (PRs) hanno migliorato progressivamente la conformità al formato Harmony, specialmente con le nuove release di Ollama, ma non è ancora stato raggiunto un pieno allineamento con i modelli precedenti.
  • Quando si utilizza vllm, l’applicazione di patch a funzioni specifiche potrebbe aiutare, ma in generale, non è supportata una rigorosa applicazione degli schemi in questo momento.

Consigli

  • Evitare di affidarsi esclusivamente a GPT-OSS per l’output strutturato rigoroso fino a quando 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 rilevanti su GitHub (ollama/ollama, langchain-ai/langchain, vllm-project/vllm) per aggiornamenti e correzioni.

In sintesi, GPT-OSS con Ollama attualmente fatica nell’output strutturato, in gran parte a causa dell’applicazione incompleta del formato, dei cambiamenti nel formato Harmony e del supporto mancante attraverso le toolchain. I workaround manuali potrebbero aiutare, ma il successo costante non è garantito. Per ulteriori informazioni sui runtimes degli LLM, sull’allocazione della memoria e sull’ottimizzazione delle prestazioni, controllare LLM Performance: Benchmarks, Bottlenecks & Optimization.

Altri articoli su Ollama