レイテンシは、モデルがプロンプトを処理して出力を生成し終えるまでの時間です。モデルの大きさ、プロンプトの複雑さ、支えているインフラなど複数の要因で変わります。Anthropic 公式ドキュメントの「Reducing latency」は、これを下げるための手立てを 3 つに整理しています。本記事はその内容を日本語で解説します。
レイテンシとは何を指すか
公式ドキュメントの定義では、レイテンシとはモデルがプロンプトを処理して出力を生成するのにかかる時間です。これはモデルのサイズ、プロンプトの複雑さ、モデルとやり取りの接点を支えるインフラなど、さまざまな要因の影響を受けます。
ここで押さえておきたいのは、レイテンシが「1 つの数字」ではないという点です。次の節で見るとおり、測り方が 2 つあり、どちらを縮めたいのかで打つ手が変わります。
測り方: ベースラインとTTFT
公式は 2 つの用語を挙げています。
- ベースラインレイテンシ(Baseline latency) — 入出力の毎秒トークン数を考慮せずに、モデルがプロンプトを処理して応答を生成するのにかかった時間。モデルの速さの全体像をつかむための指標です。
- 最初のトークンまでの時間(TTFT: Time to first token) — プロンプトを送ってから、応答の最初のトークンが生成されるまでの時間。ストリーミングを使っていて、ユーザーに反応の良い体験を提供したい場合にとくに関係します。
この区別が実務上効きます。応答全体が出そろうまでの時間を縮めたいのか、それとも「反応が返ってきた」とユーザーが感じるまでの時間を縮めたいのかで、次に述べる 3 つの手立てのうちどれを優先すべきかが決まります。
1 モデルを選び直す
もっとも直接的な方法が、用途に合ったモデルを選ぶことです。Anthropic は性能特性の異なる複数のモデルを提供しているので、速度と出力品質の兼ね合いで要件に合うものを選びます。
速度が重要なアプリケーションについて、公式が名指ししているのは Claude Haiku 4.5 です。高い知性を保ちながら、最も速い応答時間を提供するモデルとして挙げられています。
message = client.messages.create(
model="claude-haiku-4-5",
max_tokens=100,
messages=[
{
"role": "user",
"content": "Summarize this customer feedback in 2 sentences: [feedback text]",
}
],
)
公式のサンプルは cURL、Anthropic CLI、Python、TypeScript、C#、Go、Java、PHP、Ruby の各言語で用意されています。上は Python の例です。
2 プロンプトと出力の長さを削る
入力プロンプトと想定される出力のトークン数を、性能を保てる範囲で最小化します。モデルが処理し生成するトークンが少ないほど、応答は速くなります。公式が挙げているコツは次のとおりです。
- 明確に、しかし簡潔に — 意図を明確かつ簡潔に伝える。不要な詳細や重複した情報は削る。ただし Claude は自分のユースケースの文脈を持っていないので、指示が不明瞭だと意図した推論をしてくれない可能性がある、という点は忘れないこと。
- 短い応答を明示的に求める — 冗長な出力が返ってくるなら、簡潔にするよう直接指示する。
- 出力の上限を設定する —
max_tokensパラメータで生成長に上限を設ける。 - temperature を試す —
temperatureは出力のランダム性を制御します。低い値(たとえば 0.2)は焦点の定まった短めの応答につながることがあり、高い値(たとえば 0.8)は多様だが長くなりうる出力になります。
ここには注意点が 2 つあります。1 つは長さの指定のしかたで、LLM は単語ではなくトークンを数えているため、正確な単語数や単語数の上限を指定するのは有効な戦略ではありません。段落数や文の数で指定するほうが効きます。
もう 1 つは max_tokens の性質です。応答が上限に達すると、文の途中や単語の途中で打ち切られます。後処理が必要になりうる大まかな手法であり、答えが冒頭に来る選択式や短答形式に向いています。
公式も述べているとおり、プロンプトの明確さ、出力品質、トークン数の 3 つのバランスを取るには実験が要ります。
3 ストリーミングで返す
ストリーミングは、出力がすべて完成する前にモデルが応答を返し始める機能です。ユーザーがモデルの出力をリアルタイムで見られるようになるため、アプリケーションの体感的な応答性が大きく改善します。
ストリーミングを有効にすると、届いた端から出力を処理して UI を更新したり、他の処理を並行して走らせたりできます。
ここで前の節の TTFT が効いてきます。ストリーミングは生成が終わるまでの合計時間を縮めるものではありません。縮むのは最初の反応が返るまでの時間で、待たされている感覚のほうを解消する手立てです。裏を返せば、バッチ処理のように人が画面を見ていない用途では、ストリーミングを入れても得られるものはありません。
先に最適化しないという原則
公式ドキュメントは、手法の説明に入る前に注記を置いています。まずモデルやプロンプトの制約を課さずにうまく動くプロンプトを設計し、そのあとでレイテンシ削減の戦略を試すほうが常に良いという内容です。理由も明記されていて、早すぎる段階でレイテンシを下げようとすると、最高の性能がどういうものなのかを知る機会を失いかねないからです。
これは順序の話です。速いモデルと短いプロンプトから始めると、品質が足りないときに「モデルのせいなのか、プロンプトのせいなのか、削りすぎたせいなのか」が切り分けられなくなります。上限の性能を先に見てから、どこまで削れるかを測るほうが判断がつきます。
出典と注記
本記事は Anthropic 公式ドキュメントの「Reducing latency」ページ(2026年8月31日時点)に基づく非公式の日本語解説です。推奨モデルやパラメータの扱いは更新される場合があるため、実装前に公式ドキュメントで最新をご確認ください。
関連するトピックとして、当サイトには「メッセージのストリーミング」「Claude モデルの選び方」「プロンプトキャッシュ」「コストを抑える」の各記事があります。レイテンシとコストは削る対象が重なるので、あわせて読むと判断しやすくなります。