Проблемы структурированного вывода в Ollama GPT-OSS
Не очень приятно.
Модели GPT-OSS от Ollama (https://www.glukhov.org/ru/llm-performance/ollama/ollama-gpt-oss-structured-output-issues/ “Ollama GPT-OSS”) постоянно сталкиваются с проблемами при работе со структурированным выводом, особенно при использовании с фреймворками вроде LangChain, OpenAI SDK, vllm и другими.
Многие пользователи сообщают о неудачах при генерации корректного JSON или других структурированных форматов, галлюцинациях модели относительно элементов формата и несоответствующем или пустом содержимом ответов. Эти проблемы возникают из-за текущих пробелов в совместимости, изменений в формате ответов (например, Harmony) и неполного соблюдения схем вывода как со стороны Ollama, так и сторонних API. Для более широкого контекста о времени выполнения, пропускной способности и бенчмарках см. LLM Performance: Benchmarks, Bottlenecks & Optimization.

О GPT-OSS
Это новая очень интересная LLM от OpenAI. Просто посмотрите на эти параметры:
| Модель | gpt-oss-120b | gpt-oss-20b |
|---|---|---|
| Слои | 36 | 24 |
| Общее количество параметров | 117B | 21B |
| Активные параметры на токен | 5.1B | 3.6B |
| Общее количество экспертов | 128 | 32 |
| Активные эксперты на токен | 4 | 4 |
| Длина контекста | 128k | 128k |
Примечания к выпуску (здесь и здесь):
- Лицензия Apache 2.0: свободно создавайте без ограничений copyleft или риска патентов — идеально для экспериментов, настройки и коммерческого развертывания.
- Настраиваемая сложность рассуждений: легко регулируйте сложность рассуждений (низкая, средняя, высокая) в зависимости от вашего конкретного случая использования и требований к задержке.
- Полная цепочка рассуждений: полный доступ к процессу рассуждений модели, что облегчает отладку и повышает доверие к выводам. Она не предназначена для показа конечным пользователям.
- Возможность тонкой настройки: полностью настройте модели под ваш конкретный случай использования через тонкую настройку параметров.
- Агентские возможности: используйте нативные возможности моделей для вызова функций, веб-серфинга, выполнения Python-кода и структурированного вывода.
- Квантование MXFP4: модели были дополнительно обучены с квантованием MXFP4 весов MoE, что позволяет gpt-oss-120b работать на одном GPU с 80 ГБ (например, NVIDIA H100 или AMD MI300X), а модель gpt-oss-20b — в пределах 16 ГБ памяти. Все оценки проводились с тем же квантованием MXFP4.
Что тут не любить? Поведение структурированного вывода… вот что. В целом, эта проблема очень разочаровывает, особенно потому, что Структурированный вывод работает так хорошо с Ollama и Qwen3.
Распространенные проблемы
- Модели вроде gpt-oss:20b часто не могут генерировать строгий JSON или соответствующий схеме вывод, при этом ответы часто содержат дополнительные комментарии или неполные объекты.
- Интеграция с LangChain и OpenAI SDK часто приводит к ошибкам разбора/валидации из-за неструктурированного вывода, что делает конвейеры непригодными для использования в производственных средах.
- Формат Harmony в gpt-oss вводит следы рассуждений даже когда они не запрашиваются, что усложняет разбор схемы по сравнению с другими моделями, такими как Qwen3.
- При использовании vllm механизмы обеспечения структурированного вывода либо отсутствуют, либо устарели, поэтому вывод часто бывает “неуправляемым” и требует ручного разбора.
- Есть сообщения о том, что модель генерирует правильный структурированный вывод, а затем продолжает с нерелевантным содержимым, что нарушает работу стандартных парсеров.
Обходные пути и исправления
- Некоторые пользователи предлагают явно указывать схему JSON в запросе и пытаться вручную разбирать вывод модели, иногда используя пре- и пост-разделители.
- Другой подход — запуск слоя постобработки или меньшей LLM для преобразования вывода GPT-OSS в нужную схему, хотя это ресурсоемко.
- Несколько исправлений ошибок и пулл-реквестов (PR) постепенно улучшили соответствие формату Harmony, особенно с более новыми версиями Ollama, но полного соответствия предыдущим моделям пока нет.
- При использовании vllm исправление конкретных функций может помочь, но в целом надежное обеспечение схемы на данный момент не поддерживается.
Рекомендации
- Не полагайтесь исключительно на GPT-OSS для строгого структурированного вывода до тех пор, пока полная совместимость не будет восстановлена в Ollama и связанных фреймворках.
- В случаях, когда структурированный вывод критически важен, используйте дополнительный разбор или модель, лучше известную своей соответствией схеме.
- Следите за соответствующими вопросами на GitHub (ollama/ollama, langchain-ai/langchain, vllm-project/vllm) для исправлений и обновлений интеграции.
В итоге, GPT-OSS с Ollama в настоящее время испытывает трудности со структурированным выводом, в основном из-за неполного соблюдения форматов, изменений в формате Harmony и недостаточной поддержки в инструментальных цепочках. Ручные обходные пути могут помочь, но гарантированного успеха нет. Для получения дополнительной информации о времени выполнения LLM, распределении памяти и настройке производительности см. LLM Performance: Benchmarks, Bottlenecks & Optimization.
Полезные ссылки
- 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/