Проблемы со структурированным выводом в Ollama GPT-OSS
Не очень приятно.
Модели GPT-OSS от Ollama регулярно сталкиваются с проблемами при работе со структурированным выводом, особенно в сочетании с фреймворками, такими как LangChain, OpenAI SDK, vllm и другими.
Многие пользователи сообщают о неудачах при генерации корректного JSON или других структурированных форматов, галлюцинациях модели относительно элементов формата и несоответствующем или пустом содержимом ответов. Эти проблемы возникают из-за текущих пробелов в совместимости, изменений в формате ответов (например, Harmony) и неполного соблюдения схем вывода как со стороны Ollama, так и сторонних API.
О 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 объемом 80GB (например, NVIDIA H100 или AMD MI300X), а модель gpt-oss-20b — в пределах 16GB памяти. Все оценки проводились с тем же квантованием MXFP4.
Что тут не любить? Поведение структурированного вывода… вот что. В целом, эта проблема очень разочаровывает, особенно потому, что Структурированный вывод работает так хорошо с Ollama и Qwen3.
Частые проблемы
- Модели, такие как gpt-oss:20b, часто не могут генерировать строгий JSON или вывод, соответствующий схеме, с ответами, содержащими дополнительные комментарии или неполные объекты.
- Интеграция с LangChain и OpenAI SDK часто приводит к ошибкам разбора/валидации из-за неструктурированного вывода, делая конвейеры непригодными для использования в производственных средах.
- Формат Harmony в gpt-oss вводит следы рассуждений даже при отсутствии запроса, усложняя разбор схемы по сравнению с другими моделями, такими как Qwen3.
- В vllm механизмы обеспечения структурированного вывода либо отсутствуют, либо устарели, поэтому вывод часто “неуправляемый” и требует ручного разбора.
- Есть сообщения о том, что модель генерирует правильный структурированный вывод, а затем продолжает с нерелевантным содержимым, нарушая работу стандартных парсеров.
Обходные пути и исправления
- Некоторые пользователи предлагают явно указывать схему JSON в запросе и пытаться вручную разбирать вывод модели, иногда используя пре- и пост-разделители.
- Другой подход — запуск слоя постобработки или меньшей LLM для преобразования вывода GPT-OSS в нужную схему, хотя это ресурсоемко.
- Несколько исправлений ошибок и запросов на слияние (PR) постепенно улучшили соответствие формату Harmony, особенно с более новыми версиями Ollama, но полного соответствия предыдущим моделям пока нет.
- При использовании vllm исправление конкретных функций может помочь, но в целом надежное обеспечение схемы на данный момент не поддерживается.
Рекомендации
- Избегайте полного reliance на GPT-OSS для строгого структурированного вывода до полного восстановления совместимости в Ollama и связанных фреймворках.
- В случаях, когда структурированный вывод критически важен, используйте дополнительный разбор или модель, лучше известную своей соответствией схеме.
- Следите за соответствующими проблемами на GitHub (ollama/ollama, langchain-ai/langchain, vllm-project/vllm) для исправлений и обновлений интеграции.
В итоге, GPT-OSS с Ollama в настоящее время испытывает трудности со структурированным выводом, в основном из-за неполного соблюдения форматов, изменений в формате Harmony и отсутствия поддержки в инструментах. Ручные обходные пути могут помочь, но гарантированного успеха нет.
Полезные ссылки
- 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/
Другие статьи об Ollama
- LLMs и структурированный вывод: Ollama, Qwen3 & Python или Go
- Сравнение структурированного вывода среди популярных поставщиков LLM - OpenAI, Gemini, Anthropic, Mistral и AWS Bedrock
- Шпаргалка по Ollama
- Тест: Как Ollama использует производительность и эффективные ядра Intel CPU
- Как Ollama обрабатывает параллельные запросы
- Производительность LLM и PCIe-полосы: ключевые аспекты