13 ポイント 投稿者 xguru 2024-11-22 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
woung717 2024-11-23

LMQLに似た感じですね