paint-brush
予測出力: おそらく見逃している OpenAI の機能@iamarsenibragimov
新しい歴史

予測出力: おそらく見逃している OpenAI の機能

iamarsenibragimov4m2024/11/20
Read on Terminal Reader

長すぎる; 読むには

予測出力は、特に出力の大部分が事前にわかっている場合に、モデル応答の待ち時間を大幅に短縮します。この機能は、テキスト ドキュメントやコード ファイルを少し変更して再生成するアプリケーションに特に役立ちます。この機能は、コンテンツを再生成する際の待ち時間短縮という特定のニーズに対応する独自の機能であると思われます。
featured image - 予測出力: おそらく見逃している OpenAI の機能
iamarsenibragimov HackerNoon profile picture
0-item


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 つ追加するだけで使用できます。これにより、開発者は既存のアプリケーションにこの機能を簡単に実装できます。


制限事項

予測出力には大きな利点がありますが、考慮すべき重要な点がいくつかあります。

  • モデルの互換性: gpt-4oおよびgpt-4o-miniモデルのみが予測出力をサポートしています。これらのモデルでのみ利用できるという事実はまったく問題ではないと思います。なぜなら、これらは現在 OpenAI の最高のモデルであり、元の GPT-4 はとにかくこれには遅すぎるからです。
  • 課金への影響: 拒否された予測トークンは、生成されたトークンと同じ料金で課金されます。使用状況データのrejected_prediction_tokens監視してコストを管理します。
  • サポートされていないパラメータ:
    • n (1より大きい値)
    • logprobs
    • presence_penalty (0より大きい値)
    • frequency_penalty (0より大きい値)
    • max_completion_tokens
    • tools (関数呼び出しはサポートされていません)
  • モダリティの制限: テキスト モダリティのみがサポートされます。オーディオ入力と出力は予測出力と互換性がありません。


結論

OpenAI の予測出力は、AI アプリケーションにおける一般的な課題である、応答がほぼ予測可能な場合の遅延の削減に対処する画期的な機能です。開発者が予測出力を提供できるようにすることで、応答時間が短縮され、ユーザー エクスペリエンスが向上します。


私の個人的な意見では、OpenAI モデルは Anthropic のモデルほど強力ではありません。ただし、OpenAI は他の分野で多くの優れた、本当に必要なソリューションを生み出しています。予測出力などの機能により、OpenAI は他の AI プロバイダーとは一線を画し、開発者コミュニティの特定のニーズを満たす独自のソリューションを提供しています。