Ollama GPT-OSS 구조화된 출력 문제
매우 좋지 않다.
Page content
Ollama의 GPT-OSS 모델은 특히 LangChain, OpenAI SDK, vllm 및 기타 프레임워크와 함께 사용될 때 구조화된 출력을 처리하는 데 반복적인 문제가 있습니다.
많은 사용자들이 유효한 JSON 또는 기타 구조화된 형식을 생성하지 못하는 문제, 모델이 형식 요소를 환상적으로 생성하는 문제, 그리고 일관되지 않거나 빈 응답 내용 등 여러 문제를 보고했습니다. 이러한 문제는 현재 호환성의 격차, 응답 형식의 변화(예: Harmony), 그리고 Ollama와 제3자 API 모두에서 출력 스키마의 완전한 강제 적용이 이루어지지 않기 때문에 발생합니다.
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 라이선스: 코플라이트 제약이나 특허 위험 없이 자유롭게 빌드할 수 있음—실험, 커스터마이징, 상업적 배포에 이상적입니다.
- 조정 가능한 추론 노력: 사용 사례와 지연 시간 요구에 따라 추론 노력(낮음, 중간, 높음)을 쉽게 조정할 수 있습니다.
- 완전한 사고 과정: 모델의 추론 과정에 대한 완전한 접근이 가능하여 디버깅이 더 용이하고 출력에 대한 신뢰도가 높아집니다. 이는 최종 사용자에게 보여주기 위한 것이 아닙니다.
- 미세 조정 가능: 사용 사례에 맞게 파라미터를 미세 조정하여 모델을 완전히 커스터마이징할 수 있습니다.
- 에이전트 기능: 모델의 원生 기능을 활용하여 함수 호출, 웹 브라우징, Python 코드 실행 및 구조화된 출력을 사용할 수 있습니다.
- 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)은 Harmony 형식 준수를 점진적으로 개선했으며, 특히 새 Ollama 릴리스와 함께, 그러나 이전 모델과의 완전한 일치는 아직 달성되지 않았습니다.
- vllm을 사용하는 경우 특정 함수를 패치하는 것이 도움이 될 수 있지만, 일반적으로 강력한 스키마 강제 적용은 현재 지원되지 않습니다.
권장 사항
- Ollama 및 하류 프레임워크에서 전체 호환성이 복원될 때까지 GPT-OSS에만 엄격한 구조화된 출력을 의존하는 것을 피하는 것이 좋습니다.
- 구조화된 출력이 중요한 경우, 추가 파싱 또는 스키마 준수에 더 잘 알려진 모델을 사용하는 것이 좋습니다.
- 관련 GitHub 이슈(ollama/ollama, langchain-ai/langchain, vllm-project/vllm)를 모니터링하여 수정 사항 및 통합 업데이트를 확인하는 것이 좋습니다.
요약하자면, 현재 Ollama와 함께 사용되는 GPT-OSS는 불완전한 형식 강제 적용, 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/