Problemas de salida estructurada de Ollama GPT-OSS
No muy agradable.
Los modelos GPT-OSS de Ollama tienen problemas recurrentes al manejar salidas estructuradas, especialmente cuando se usan con marcos como LangChain, OpenAI SDK, vllm y otros.
Muchos usuarios reportan fallas al generar JSON válido u otros formatos estructurados, así como la fabricación de elementos de formato por parte del modelo, y contenido de respuesta inconsistente o vacío. Estos problemas surgen de brechas actuales de compatibilidad, cambios en el formato de respuesta (como Harmony) y la aplicación incompleta de esquemas de salida tanto por parte de Ollama como por APIs de terceros.
Sobre GPT-OSS
Este es un nuevo y muy interesante LLM de OpenAI. Solo echa un vistazo a estos parámetros:
Modelo | gpt-oss-120b | gpt-oss-20b |
---|---|---|
Capas | 36 | 24 |
Parámetros totales | 117B | 21B |
Parámetros activos por token | 5.1B | 3.6B |
Total de expertos | 128 | 32 |
Expertos activos por token | 4 | 4 |
Longitud de contexto | 128k | 128k |
Las notas de lanzamiento indican (aquí y aquí):
- Licencia permissiva Apache 2.0: Construye libremente sin restricciones de copyleft ni riesgo de patentes — ideal para experimentar, personalizar y desplegar comercialmente.
- Esfuerzo de razonamiento configurable: Ajusta fácilmente el esfuerzo de razonamiento (bajo, medio, alto) según tus necesidades específicas de uso y latencia.
- Cadena completa de pensamiento: Obten acceso completo al proceso de razonamiento del modelo, facilitando el depurado y aumentando la confianza en las salidas. No está pensado para mostrarse a usuarios finales.
- Ajustable: Personaliza completamente los modelos según tus necesidades específicas mediante el ajuste de parámetros.
- Capacidad agente: Usa las capacidades nativas de los modelos para llamadas de función, navegación web, ejecución de código en Python y Salidas Estructuradas.
- Cuantización MXFP4: Los modelos se entrenaron posteriormente con la cuantización MXFP4 de los pesos MoE, lo que permite que gpt-oss-120b se ejecute en una sola GPU de 80 GB (como NVIDIA H100 o AMD MI300X) y que el modelo gpt-oss-20b se ejecute dentro de 16 GB de memoria. Todos los evaluaciones se realizaron con la misma cuantización MXFP4.
¿Qué no amar? El comportamiento de la salida estructurada… eso es. En general, este problema es muy decepcionante, especialmente porque la salida estructurada funciona muy bien con Ollama y Qwen3.
Problemas Comunes
- Modelos como gpt-oss:20b frecuentemente fallan al producir JSON estricto o salida compatible con el esquema, con respuestas que suelen contener comentarios adicionales u objetos incompletos.
- La integración con LangChain y OpenAI SDK tiende a lanzar errores de análisis/validación debido a la salida no estructurada, lo que hace que las tuberías no sean utilizables en entornos de producción.
- El formato Harmony en gpt-oss introduce rastros de razonamiento incluso cuando no se solicitan, complicando el análisis del esquema en comparación con otros modelos como Qwen3.
- Con vllm, los mecanismos de enfoque en salida estructurada están ausentes o obsoletos, por lo que la salida suele ser “no guiada” y debe parsearse manualmente.
- Hay informes de que el modelo produce la salida estructurada correcta, pero luego continúa con contenido no relacionado, rompiendo los analizadores estándar.
Soluciones alternativas y correcciones
- Algunos usuarios sugieren especificar explícitamente el esquema JSON en el prompt y intentar el análisis manual de las salidas del modelo, a veces usando marcadores de inicio y fin.
- Otra aproximación es ejecutar una capa de postprocesamiento o un LLM más pequeño para reformatear la salida de GPT-OSS al esquema deseado, aunque esto es intensivo en recursos.
- Algunas correcciones de errores y solicitudes de extracción (PRs) han mejorado gradualmente la compatibilidad con el formato Harmony, especialmente con nuevas versiones de Ollama, pero aún no se alcanza una paridad completa con modelos anteriores.
- Cuando se usa vllm, parchear funciones específicas puede ayudar, pero en general, no se admite un enfoque robusto en el esquema en este momento.
Recomendaciones
- Evite depender exclusivamente de GPT-OSS para salidas estructuradas estrictas hasta que se restaure la compatibilidad completa en Ollama y en los marcos descendientes.
- Donde sea crítica la salida estructurada, use un análisis adicional o un modelo mejor conocido por su cumplimiento con el esquema.
- Monitorea los problemas relevantes en GitHub (ollama/ollama, langchain-ai/langchain, vllm-project/vllm) para correcciones e actualizaciones de integración.
En resumen, GPT-OSS con Ollama actualmente tiene dificultades con la salida estructurada, en gran parte debido a la aplicación incompleta del formato, los cambios en el formato Harmony y la falta de soporte en las cadenas de herramientas. Las soluciones manuales pueden ayudar, pero no se garantiza un éxito consistente.
Enlaces útiles
- 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/
Otros artículos de Ollama
- LLMs y salida estructurada: Ollama, Qwen3 y Python o Go
- Comparación de salida estructurada entre proveedores populares de LLM: OpenAI, Gemini, Anthropic, Mistral y AWS Bedrock
- Ollama cheatsheet
- Prueba: Cómo Ollama está usando el rendimiento de los núcleos de CPU de Intel y núcleos eficientes
- Cómo Ollama maneja las solicitudes paralelas
- Rendimiento de LLM y canales PCIe: Consideraciones clave