OpenAIは最近、ユーザーの要望に応えて重要な新機能をリリースしました:APIの構造化出力です。この機能は、大規模言語モデル(LLM)がJSON内容を生成する際の幻覚や不完全な解析などの問題に対処することを目的としています。
新しい構造化出力機能は、モデルが生成する出力が指定されたJSONスキーマに一致することを保証します。これはアプリケーション間の一貫性を維持するために重要であり、開発者から最も要望の高かった機能の一つでした。OpenAIのCEOであるSam Altmanは、このリリースが「多くのユーザーの緊急のニーズに応えるもの」だと述べています。
構造化出力機能の主なポイント:
- GPT-4o-mini、GPT-4o、およびそれらの微調整版で利用可能
- チャット完了API、アシスタントAPI、バッチAPI、および視覚入力と互換性あり
- 開発者がOpenAIモデルをデータスキーマに一致するよう制約可能
- 複雑なデータスキーマに対するモデルの理解を向上
- データスキーマの遵守を確保し、キーの欠落や無効な列挙値を防止
- ステップバイステップの回答生成をサポート
- プロンプトを簡素化し、明確な拒否文を提供
- 既存のOpenAIの安全性ポリシーに従う
OpenAIは、最新のGPT-4oモデルが構造化出力の評価で「100%完璧」なスコアを達成したと主張しています。
同社は、outlines、jsonformer、instructor、guidance、larkライブラリなどのオープンソースプロジェクトからインスピレーションを得たことを認めています。
この機能は重要なニーズに対応していますが、一部の開発者は潜在的な制限を指摘しています:
- スキーマのコンパイルによる最初のトークン生成の遅さ
- APIでのJSONスキーマの受け入れ制限
- Python SDKでの広告された変更の不完全な実装
一部の開発者は、Instructor + Pydanticの組み合わせが、OpenAIや他のLLMソリューションで構造化出力を実現する最も簡単な方法かもしれないと示唆しています。
全体として、OpenAIのAPIにネイティブな構造化出力サポートを導入したことは大きな前進を表していますが、本番環境で広く採用されるまでにはさらなる改良が必要かもしれません。