これは現在進行中のシリーズの第4部です. See Parts 1, 2, and 3.
♪これは現在進行中のシリーズの第4部です. See Parts 1, 2, and 3.
AI Principle IV: Use Structured Prompt Outputs
AI 原則 IV: Structured Prompt Outputs久しぶりに、LLM APIsが出たばかりで、誰も彼らと正しく対話する方法を確実に知らなかった時代がありました。 トップの問題の1つは、単一のプロンプト応答から複数の出力を抽出することでした。 LLMsが一貫してJSONを返さなかったとき(しばしば失敗しました)、あなたは最高のプロンプトエンジニアリングオラトリウムを使用してLLMを説得しようとしました。
これらは古代の時代でした。当時、我々は馬に乗り、電気はまだ発明されていなかったので、ろうそくの光でプロンプトを書きました。デバッグプロンプトは、モデルがハイクの代わりにリストを返すことを望んで、長い夜をピルクメントのスロールでくことに費やしたことを意味しました。そして、それが失敗した場合、あなたは深く息を吐き、あなたのキールをインクに浸し、再び試してみる以外の選択肢はありませんでした。
しかし、JSON応答を一貫して返すことができなかったLLM APIは本物であり、多くの問題を引き起こしました。
Benefits
利点なぜ他のフォーマットよりもJSON構造のプロンプト出力を使用するか、またはカスタムフォーマットを発明する方が良いのでしょうか。
Reduced Error Rate
現代のLLMは、要求されたときに有効なJSONを出力するように精巧に調整されています - 非常に複雑な応答でさえ失敗することは稀です. さらに、多くのプラットフォームには、不正にフォーマットされた出力に対するソフトウェアレベルの保護があります. たとえば、OpenAI APIは、構造化された出力の厳格なモードで非JSONを返すときに例外を投げます。
複数の出力変数を返すためにカスタムフォーマットを使用する場合、この細かい調節から利益を得ることはなく、エラー率ははるかに高くなります。
Decoupled Prompts and Code
JSON 出力では、別の出力フィールドを追加することは微妙で、既存のコードを破るべきではありません。これは、コード処理の論理への変更からプロンプトにフィールドを追加することを解約します。
Simplified System
組み込まれたプラットフォームサポートなしで出力フォーマットを使用する実用的な理由はありますか? JSON を使用して応答をフォーマットすることは、あなたとその後のコードの貢献者にとってより容易になります。
When NOT to Use Structured Output
構造化された出力を使用しないときSingle Field Output
あなたのプロンプトが応答として単一のフィールドを出力する場合、JSONを出力する利点はありません。
今日の単一変数応答は明日複雑な応答になる可能性があります。 1 つのフィールド出力プロンプトを複数のフィールド出力プロンプトに変えるのに何時間も費やした後、単一フィールドのみが返される場合でも、既定で JSON を使用しています。
プログラムの論理が複数の出力を必要としない場合でも、追加フィールドを追加するには、迅速なエンジニアリングとデバッグの利点があります。
したがって、プロンプトに単一の出力変数がある場合でも、JSON形式をオプションとして検討してください。
Streaming Response
遅延が重要なアプリケーションでは、LLM ストリーミングエンドポイントが頻繁に使用されます これらは、回答の一部が完全な応答を受け取る前に動作することを可能にします このパターンは JSON でうまく機能しませんので、代わりにシンプルでストリームフレンドリーな形式を使用する必要があります。
たとえば、プロンプトがビデオゲームのキャラクターが行ったアクションとキャラクターが言った言葉を決定する場合、それを「ACTION ÁthaSPEECH_TO_READ」として暗号化して、ストリーミングAPIを使用して反応をストリーミングすることができます。
例の出力:
こんにちは! こんにちは! こんにちは! こんにちは!
WAVE_AT_HERO|Hello, Adventurer! Welcome to my shop.
アクションが受信されるとすぐに、キャラクターは振動し始め、テキストが流入するように出力されます。
Conclusion
結論文明の利点を拒否しないでください - JSON 構造のプロンプト出力を使用してください. 欠点はほとんどありませんが、LLM は有効な JSON 応答を返すために大幅に最適化されていますので、あなたの人生をより容易にします。
あなたがこの投稿を楽しんだ場合は、より多くのシリーズにサブスクリプトしてください。