Ollama GPT-OSS 構造化された出力の問題

あまり良くない。

目次

OllamaのGPT-OSSモデルは、LangChainやOpenAI SDK、vllmなどのフレームワークと使用する際に、構造化された出力を処理する際に繰り返し問題が発生しています。

多くのユーザーが、有効なJSONやその他の構造化された形式を生成する際の失敗、モデルによるフォーマット要素の幻覚、不一貫したまたは空の応答内容などの問題を報告しています。これらの問題は、現在の互換性のギャップ、応答フォーマットの変更(例:Harmony)、そしてOllamaとサードパーティのAPIによる出力スキーマの完全な強制が不十分であることに起因しています。ランタイム、スループット、ベンチマークについてのより広い背景情報については、LLMパフォーマンス: ベンチマーク、ボトルネック & 最適化を参照してください。

llama with the issues

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フォーマットの変更、およびツールチェーン全体にわたるサポートの欠如により、構造化された出力に苦労しています。手動での対処法は助けになるかもしれませんが、一貫した成功は保証されません。 LLMランタイム、メモリの割り当て、パフォーマンス調整についてさらに詳しく知りたい場合は、LLMパフォーマンス: ベンチマーク、ボトルネック & 最適化を参照してください。

有用なリンク

その他のOllama記事