レイテンシーの削減
レイテンシーとは、モデルがプロンプトを処理して出力を生成するまでにかかる時間のことです。レイテンシーは、モデルのサイズ、プロンプトの複雑さ、モデルを支える基盤インフラストラクチャーや相互作用のポイントなど、様々な要因の影響を受けます。
まずはモデルやプロンプトの制約なしでうまく機能するプロンプトを設計し、その後でレイテンシー削減の戦略を試すことをお勧めします。早急にレイテンシーを削減しようとすると、最高のパフォーマンスを発見する機会を逃す可能性があります。
レイテンシーの測定方法
レイテンシーについて議論する際、以下のような用語や測定値に遭遇することがあります:
- ベースラインレイテンシー:入力トークンと出力トークンの毎秒処理数を考慮せずに、モデルがプロンプトを処理してレスポンスを生成するまでにかかる時間です。モデルの速度の一般的な目安となります。
- 最初のトークンまでの時間(TTFT):プロンプトが送信されてから、モデルがレスポンスの最初のトークンを生成するまでの時間を測定する指標です。特にストリーミング(後述)を使用して、ユーザーに応答性の高い体験を提供したい場合に重要です。
これらの用語についてより深く理解するには、用語集をご確認ください。
レイテンシーを削減する方法
1. 適切なモデルの選択
レイテンシーを削減する最も直接的な方法の1つは、ユースケースに適したモデルを選択することです。Anthropicは異なる機能とパフォーマンス特性を持つ様々なモデルを提供しています。具体的な要件を考慮し、速度と出力品質の面で最適なモデルを選択してください。モデルの指標について詳しくは、モデル概要ページをご覧ください。
2. プロンプトと出力の長さの最適化
高いパフォーマンスを維持しながら、入力プロンプトと予想される出力の両方のトークン数を最小限に抑えます。モデルが処理・生成するトークンが少ないほど、応答が速くなります。
プロンプトと出力を最適化するためのヒントをご紹介します:
- 明確かつ簡潔に:プロンプトで意図を明確かつ簡潔に伝えることを目指します。不必要な詳細や冗長な情報は避けつつ、Claudeはコンテキストが不足していることを念頭に置き、指示が不明確な場合は意図した論理的飛躍ができない可能性があることを考慮してください。
- より短い応答を要求する:Claudeに直接、簡潔になるよう依頼します。Claude 3ファミリーのモデルは、以前の世代と比べて制御性が向上しています。Claudeが不要な長さの出力を生成する場合は、おしゃべりを抑制するよう依頼してください。
LLMは単語ではなくトークンを数えるため、正確な単語数や単語数制限を指定するよりも、段落数や文章数の制限を指定する方が効果的な戦略です。
- 適切な出力制限の設定:
max_tokens
パラメータを使用して、生成されるレスポンスの最大長に制限を設けます。これによりClaudeが過度に長い出力を生成することを防ぎます。注意:レスポンスが
max_tokens
トークンに達すると、文章や単語の途中でも切り捨てられる可能性があるため、これは大雑把な手法です。後処理が必要になる場合があり、通常は回答が最初に来る多肢選択や短答式の回答に最も適しています。 - temperatureの実験:
temperature
パラメータは出力のランダム性を制御します。低い値(例:0.2)では、より焦点を絞った短い応答が得られる場合があり、高い値(例:0.8)では、より多様だが潜在的に長い出力が得られる可能性があります。
プロンプトの明確さ、出力品質、トークン数の適切なバランスを見つけるには、いくつかの実験が必要かもしれません。
3. ストリーミングの活用
ストリーミングは、完全な出力が完了する前にモデルがレスポンスの送信を開始できる機能です。これにより、ユーザーがモデルの出力をリアルタイムで確認できるため、アプリケーションの体感的な応答性を大幅に向上させることができます。
ストリーミングを有効にすると、モデルの出力を到着次第処理し、ユーザーインターフェースを更新したり、他のタスクを並行して実行したりすることができます。これにより、ユーザー体験が大幅に向上し、アプリケーションがよりインタラクティブで応答性の高いものになります。
ユースケースに合わせたストリーミングの実装方法については、メッセージのストリーミングをご覧ください。