2024年8月7日、 OpenAIは本日、APIに画期的な機能である構造化出力を導入したことを発表しました。この新機能により、モデル生成の出力が開発者が提供したJSONスキーマに完全に準拠することが保証され、APIの信頼性とアプリケーションの精度が大幅に向上します。以前のJSONスキーマとは異なり、今回の構造化出力はJSONのスキーマ(JSON出力の構造)を定義できるだけでなく、出力が100%正しいことを保証します。同時に、OpenAIは新モデルの価格を値下げしたことを発表しました。入力価格は従来の半分、出力価格は1/3に削減されました。

image.png

技術革新:構造化出力の導入

昨年、OpenAIは開発者がアプリケーションを構築するための強力なツールとしてJSONスキーマを導入しました。しかし、JSONスキーマは有効なJSON出力を生成する可能性を高めましたが、特定のスキーマに準拠することを保証するものではありませんでした。構造化出力の導入は、この限界を克服するためのものであり、モデルの出力を事前に設定されたスキーマに合わせることで、出力データの正確性と一貫性を確保します。

性能向上:評価と比較

OpenAIが複雑なJSONスキーマの追跡評価を行った結果、新しいモデルgpt-4o-2024-08-06は構造化出力において満点の100%という優れた成績を収めた一方、旧モデルgpt-4-0613の得点は40%未満でした。この目覚ましい進歩は、OpenAIの技術における飛躍を示すだけでなく、開発者にとってより高い作業効率とより少ないエラー率をもたらします。

image.png

実用例:構造化出力の使い方

OpenAIのAPIには、2種類の構造化出力が導入されています。

1、関数呼び出し:関数定義で設定することで、構造化出力を使用できます。この機能は、すべてのモデルとそれ以降のバージョンを含む、ツールをサポートするすべてのモデルで使用できます。構造化出力を有効にすると、モデル出力は提供されたツールの定義と一致します。

carbon.png

APIリクエスト設定

carbon (1).png

APIレスポンス

2、パラメータの新オプションresponse_format:開発者は、JSONスキーマjson_schemaをパラメータの新オプションとして提供することで、構造化された方法でユーザーリクエストに応答できます。

carbon (2).png

carbon (3).png

安全とサポート:安全な構造化出力とSDKの更新

安全性は常にOpenAIの最優先事項です。新しい構造化出力機能は既存のセキュリティポリシーに従い、必要に応じてモデルが安全でないリクエストを拒否することを許可します。さらに、OpenAIのPythonとNode SDKが更新され、構造化出力をネイティブサポートすることで、開発プロセスが簡素化されました。

carbon (4).png

多様なユースケース:動的なインターフェースからデータ抽出まで

構造化出力の適用範囲は非常に広く、ユーザーの意図に基づいて動的にユーザーインターフェースを生成すること、最終的な回答とそれを裏付ける推論を分離すること、非構造化データから構造化データを抽出することなどが含まれます。これらのユースケースは、構造化出力のさまざまなシナリオにおける実用性と柔軟性を示しています。

技術原理:制限付きデコードと代替方法

OpenAIは、制限付きデコード技術を採用することで、モデル出力とJSONスキーマの100%の一致を実現しました。この方法は、動的な制約付きデコードによって、各ステップでモデルが有効なトークンしか選択できないようにすることで、エラーの可能性を減らします。

結論

OpenAIの構造化出力機能は、開発者により信頼性が高く、より正確なツールを提供するだけでなく、データ処理とアプリケーション開発における人工知能技術の進歩をさらに促進します。この機能の正式な導入により、より多くの革新的なアプリケーションの誕生が期待されます。