Ollama GPT-OSS 구조화된 출력 문제
매우 좋지 않다.
Ollama의 GPT-OSS 모델은 특히 LangChain, OpenAI SDK, vllm과 같은 프레임워크와 함께 사용될 때 구조화된 출력을 처리하는 데 반복적으로 문제가 발생합니다.
많은 사용자들이 유효한 JSON 또는 기타 구조화된 형식을 생성하지 못하거나, 형식 요소를 환상적으로 생성하거나, 일관성 없거나 빈 응답 내용을 보고하고 있습니다. 이러한 문제는 현재 호환성 격차, 응답 형식 변경(예: Harmony), 그리고 Ollama 및 제3자 API가 출력 스키마를 완전히 강제하지 않기 때문에 발생합니다. 런타임, 처리량, 벤치마크에 대한 보다 넓은 맥락을 원하시면 LLM 성능: 벤치마크, 병목 현상 및 최적화를 참조하세요.

GPT-OSS 소개
이것은 OpenAI에서 새롭게 발표한 매우 흥미로운 LLM입니다. 이 모델의 파라미터를 살펴보세요:
| 모델 | gpt-oss-120b | gpt-oss-20b |
|---|---|---|
| 레이어 | 36 | 24 |
| 총 파라미터 | 117B | 21B |
| 토큰당 활성 파라미터 | 5.1B | 3.6B |
| 총 전문가 | 128 | 32 |
| 토큰당 활성 전문가 | 4 | 4 |
| 맥락 길이 | 128k | 128k |
릴리스 노트에서는 (여기 및 여기) 다음과 같은 내용을 언급하고 있습니다:
- 허가 Apache 2.0 라이선스: 코필트 레스트리션 또는 특허 위험 없이 자유롭게 빌드할 수 있음—실험, 커스터마이징, 상업적 배포에 이상적입니다.
- 구성 가능한 추론 노력: 사용 사례 및 지연 시간 요구에 따라 추론 노력(낮음, 중간, 높음)을 쉽게 조정할 수 있습니다.
- 전체 사고 과정: 모델의 추론 과정에 완전한 접근을 제공하여 디버깅을 더 쉽게 하고 출력에 대한 신뢰도를 높입니다. 사용자에게 보여주기 위한 것이 아니며, 사용자에게 보여주기 위한 것이 아닙니다.
- 세밀한 조정 가능: 사용 사례에 맞게 파라미터 세밀한 조정을 통해 모델을 완전히 커스터마이징할 수 있습니다.
- 에이전트 기능: 모델의 네이티브 기능을 통해 함수 호출, 웹 브라우징, 파이썬 코드 실행, 구조화된 출력을 사용할 수 있습니다.
- MXFP4 양자화: 모델은 MXFP4 양자화로 MoE 가중치를 사후 훈련하여 gpt-oss-120b는 단일 80GB GPU(예: NVIDIA H100 또는 AMD MI300X)에서 실행되고, gpt-oss-20b 모델은 16GB 메모리 내에서 실행됩니다. 모든 평가에는 동일한 MXFP4 양자화가 사용되었습니다.
구조화된 출력의 행동… 이것이 바로 좋아하지 않는 점입니다. 전체적으로 이 문제는 매우 실망스럽습니다, 특히 구조화된 출력이 Ollama와 Qwen3와 함께 매우 잘 작동함을 고려할 때 더욱 그렇습니다.
일반적인 문제
- gpt-oss:20b와 같은 모델은 엄격한 JSON 또는 스키마에 맞는 출력을 자주 생성하지 못하며, 응답에는 일반적으로 추가 설명이나 불완전한 객체가 포함됩니다.
- LangChain 및 OpenAI SDK와의 통합은 비구조화된 출력으로 인해 파싱/검증 오류를 발생시키는 경향이 있으며, 이는 생산 환경에서 파이프라인을 사용할 수 없게 만듭니다.
- gpt-oss의 Harmony 형식은 요청되지 않아도 추론 추적을 추가하는 경향이 있으며, Qwen3과 같은 다른 모델에 비해 스키마 파싱이 복잡해집니다.
- vllm을 사용할 경우, 구조화된 출력 강제 메커니즘은 누락되거나 폐기되었으며, 출력은 자주 “무지침” 상태이며 수동적으로 파싱되어야 합니다.
- 모델이 올바른 구조화된 출력을 생성한 후 관련 없는 내용으로 이어지는 경우가 보고되며, 표준 파서가 깨지는 문제가 발생합니다.
대안 및 수정 방법
- 일부 사용자는 프롬프트에 JSON 스키마를 명시적으로 지정하고 모델 출력을 수동적으로 파싱하는 방법을 제안하며, 때로는 전후 분할 마커를 사용하여 수행합니다.
- 또 다른 접근 방법은 GPT-OSS 출력을 원하는 스키마로 다시 형식화하기 위해 사후 처리 레이어 또는 작은 LLM을 실행하는 것입니다. 그러나 이 방법은 자원 소모가 큽니다.
- 몇 가지 버그 수정 및 풀 리퀘스트(PR)가 하모니 형식 준수를 점진적으로 개선했으며, 특히 새 Ollama 릴리스와 함께, 그러나 이전 모델과의 완전한 동일성은 아직 달성되지 않았습니다.
- vllm을 사용하는 경우 특정 기능을 패치하는 것이 도움이 될 수 있지만, 일반적으로 강력한 스키마 강제는 현재 지원되지 않습니다.
권장 사항
- Ollama 및 하류 프레임워크에서 전체 호환성이 복구될 때까지 GPT-OSS에만 엄격한 구조화된 출력에 의존하지 마세요.
- 구조화된 출력이 필수적인 경우, 추가 파싱 또는 스키마 준수에 잘 알려진 모델을 사용하세요.
- 관련 GitHub 이슈(ollama/ollama, langchain-ai/langchain, vllm-project/vllm)에서 수정 및 통합 업데이트를 모니터링하세요.
요약하자면, 현재 Ollama와 함께 사용되는 GPT-OSS는 불완전한 형식 강제, 하모니 형식 변경, 도구 체인에 대한 지원 부족으로 인해 구조화된 출력에 어려움을 겪고 있습니다. 수동 대안은 도움이 될 수 있지만, 일관된 성공은 보장되지 않습니다. LLM 런타임, 메모리 할당 및 성능 조정에 대한 더 많은 정보는 LLM 성능: 벤치마크, 병목 현상 및 최적화를 참조하세요.
유용한 링크
- 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/