- OpenAIは最近、Predicted Outputs という強力な機能を公開した
- テックメディアでは大きく取り上げられなかったが、十分に注目する価値がある
- この機能はAPIレスポンスの待ち時間を短縮し、あらかじめ予測可能な出力の生成速度を大幅に向上させられる
Predicted Outputsとは何か?
- Chat Completion APIで、主に予測可能な応答がある場合に応答速度を高める機能
prediction パラメータを使って想定される出力をモデルに与え、効率的に結果を生成できる
- 現在は
gpt-4o および gpt-4o-mini モデルでのみサポートされている
Predicted Outputsの動作方式
- すでにコンテンツの大部分が予測可能な場合、そのコンテンツを予測値としてモデルに渡せる
- モデルはこの予測値を使って応答生成を高速化し、性能を向上させる
例: Configurationファイルの更新
- JSON Confファイルを更新する場面でPredicted Outputsを活用できる
- 既存ファイル全体を新たに生成する代わりに、既存ファイルを予測値として渡し、必要な変更だけを依頼する
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
}
});
console.log(completion.choices[0].message.content);
例: ストリーミングとPredicted Outputs
- ストリーミング応答が必要なアプリケーションでは、Predicted Outputsが待ち時間をさらに短縮してくれる
import OpenAI from "openai";
const config = `...`; // 既存のJSON構成ファイル
const openai = new OpenAI();
const updatePrompt = `...`; // 既存のリクエストプロンプト
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 || "");
}
開発者向けのヒント
- 優れているのは、使うためにほとんど何も必要ない点
- 既存のAPIリクエストに新しいパラメータを追加するだけでよい
制約事項
- モデル互換性:
gpt-4o および gpt-4o-mini モデルでのみ利用可能
- コスト: 拒否された予測トークンにも生成トークンと同じコストが課金される。コスト管理のために
rejected_prediction_tokens を監視する必要がある
- サポートされないパラメータ:
n (1より大きい値)
logprobs
presence_penalty (0より大きい値)
frequency_penalty (0より大きい値)
max_completion_tokens
tools (関数呼び出しは不可)
- モダリティの制限: テキストモダリティのみ対応しており、音声の入力および出力はできない
結論
- OpenAIのPredicted Outputsは、AIアプリケーションで一般的に発生する遅延の問題を解決する革新的なツールだ
- 予測可能な出力を提供することで応答時間を短縮し、ユーザー体験を向上させる
1件のコメント
LMQLに似た感じですね