ストリーミング出力とは
ストリーミング出力(Streaming Output)とは、LLMがテキストを生成する際に、全体の生成完了を待たずに、生成されたトークンを逐次的にリアルタイムで返却する方式です。ユーザーは応答がタイピングのように一文字ずつ表示されるのを確認でき、体感的な待ち時間が大幅に短縮されます。ChatGPTやClaudeなど主要なAIサービスで広く採用されています。
ストリーミングの技術的仕組み
ストリーミング出力は、Server-Sent Events(SSE)やWebSocketを使って実装されます。APIレベルでは、リクエスト時にstream=trueパラメータを指定すると、サーバーはトークンが生成されるたびにイベントを送信します。クライアント側はこれらのイベントを順次受信し、UIにリアルタイムで表示します。通常のHTTPレスポンスとは異なり、コネクションを維持したまま断続的にデータを送信する仕組みです。
ストリーミングの利点と考慮点
ストリーミング出力の最大の利点はユーザー体験の向上です。長い応答でも最初のトークンが表示されるまでの時間(TTFT: Time To First Token)が短く、ユーザーは応答が生成されている過程をリアルタイムで確認できます。一方で、ストリーミングでは応答全体が確定する前にユーザーに表示されるため、途中で内容を修正できないこと、エラーハンドリングが複雑になること、Function Callingとの組み合わせに工夫が必要であることなどの注意点があります。