Проблемы структурированного вывода в 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.

llama with the issues

О 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.

Полезные ссылки

Другие статьи об Ollama