Ollama GPT-OSS 構造化出力の問題
あまり良くない。
目次
OllamaのGPT-OSSモデルは、特にLangChainやOpenAI SDK、vllmなどのフレームワークと併用する際、構造化された出力の処理に繰り返し問題を抱えています。
多くのユーザーが、有効なJSONやその他の構造化されたフォーマットを生成する際の失敗、フォーマット要素のモデルによる幻覚、および不一貫性や空の応答内容などの問題を報告しています。これらの問題は、現在の互換性のギャップ、応答フォーマットの変更(例:Harmony)、およびOllamaとサードパーティの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/