Problemi di output strutturato di Ollama GPT-OSS
Non molto bello.
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.
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.
Link utili
- https://www.reddit.com/r/MachineLearning/comments/1n37qnu/d_ollamagptoss20b_cant_seem_to_generate/
- https://github.com/vllm-project/vllm/issues/23120
- https://github.com/ollama/ollama/issues/11691
- https://huggingface.co/openai/gpt-oss-20b/discussions/111
- https://github.com/langchain-ai/langchain/issues/33116
- https://ollama.com/library/gpt-oss
- https://openai.com/index/introducing-gpt-oss/
Altri articoli su Ollama
- LLMs e Output Strutturato: Ollama, Qwen3 e Python o Go
- Confronto dell’output strutturato tra i principali fornitori di LLM - OpenAI, Gemini, Anthropic, Mistral e AWS Bedrock
- Ollama cheatsheet
- Test: Come Ollama utilizza le prestazioni del processore Intel e i core efficienti
- Come Ollama gestisce le richieste parallele
- Prestazioni degli LLM e canali PCIe: Considerazioni chiave