OpenAI は最近、 Predicted Outputsと呼ばれる強力な機能を導入しましたが、これは技術メディアからあまり注目されることなくひっそりと登場しました。これは修正に値する見落としです。OpenAI が開発者アカウントでX についてこれについて言及しているのに気付きましたが、あまり宣伝されていませんでした。これは本当にクールで便利な機能なので、注目を集めることにしました。
予測出力は、特に出力の大部分が事前にわかっている場合に、モデル応答の待ち時間を大幅に短縮します。この機能は、テキスト ドキュメントやコード ファイルを少し変更して再生成するアプリケーションに特に役立ちます。
予測出力を使用すると、開発者は、予想される出力がほぼ予測可能な場合に、チャット完了からの API 応答を高速化できます。チャット完了のprediction
パラメータを使用して予想される応答を予測することにより、モデルは必要な出力をより効率的に生成できます。この機能は現在、最新のgpt-4oおよびgpt-4o-miniモデルで利用できます。
応答のコンテンツの大部分が既にわかっている場合は、その予想されるコンテンツを予測としてモデルに提供できます。モデルはこの予測を使用して応答の生成を迅速化し、待ち時間を短縮してパフォーマンスを向上させます。
マイナーアップデートが必要な JSON 構成ファイルがあるとします。次にそのようなファイルの例を示します。
{ "appName": "MyApp", "version": "1.0.0", "settings": { "enableFeatureX": false, "maxUsers": 100 } }
"enableFeatureX"
true
に更新するとします。ファイル全体を最初から生成する代わりに、元のファイルを予測として提供し、モデルに必要な変更を行うように指示することができます。
import OpenAI from "openai"; const config = ` { "appName": "MyApp", "version": "1.0.0", "settings": { "enableFeatureX": false, "maxUsers": 100 } } `.trim(); const openai = new OpenAI(); const updatePrompt = ` Change "enableFeatureX" to true in the following JSON configuration. Respond only with the updated JSON, without any additional text. `; const completion = await openai.chat.completions.create({ model: "gpt-4o", messages: [ { role: "user", content: updatePrompt }, { role: "user", content: config } ], prediction: { type: "content", content: config } }); // Output the updated configuration console.log(completion.choices[0].message.content);
この例では、モデルは予測を活用して応答時間を最小限に抑え、更新された構成ファイルをすばやく生成します。
ストリーミング応答を必要とするアプリケーションの場合、予測出力によってレイテンシがさらに短縮されます。ストリーミングを使用して前の例を実装する方法は次のとおりです。
import OpenAI from "openai"; const config = `...`; // Original JSON configuration const openai = new OpenAI(); const updatePrompt = `...`; // Prompt as before const completion = await openai.chat.completions.create({ model: "gpt-4o", messages: [ /* ... */ ], prediction: { type: "content", content: config }, stream: true }); for await (const chunk of completion) { process.stdout.write(chunk.choices[0]?.delta?.content || ""); }
本稿執筆時点では、競合他社からこのソリューションに代わるものはありません。OpenAI の予測出力機能は、既知のコンテンツをわずかな変更で再生成する際のレイテンシ削減という特定のニーズに対応する独自の機能であると思われます。
素晴らしいのは、これを使い始めるのにほとんど何も必要ないことです。API リクエストに新しいパラメータを 1 つ追加するだけで使用できます。これにより、開発者は既存のアプリケーションにこの機能を簡単に実装できます。
予測出力には大きな利点がありますが、考慮すべき重要な点がいくつかあります。
rejected_prediction_tokens
監視してコストを管理します。n
(1より大きい値)logprobs
presence_penalty
(0より大きい値)frequency_penalty
(0より大きい値)max_completion_tokens
tools
(関数呼び出しはサポートされていません)
OpenAI の予測出力は、AI アプリケーションにおける一般的な課題である、応答がほぼ予測可能な場合の遅延の削減に対処する画期的な機能です。開発者が予測出力を提供できるようにすることで、応答時間が短縮され、ユーザー エクスペリエンスが向上します。
私の個人的な意見では、OpenAI モデルは Anthropic のモデルほど強力ではありません。ただし、OpenAI は他の分野で多くの優れた、本当に必要なソリューションを生み出しています。予測出力などの機能により、OpenAI は他の AI プロバイダーとは一線を画し、開発者コミュニティの特定のニーズを満たす独自のソリューションを提供しています。