ざっくり言うと
レイテンシー(Latency)とは、AIに何かを頼んでから、答えを受け取るまでの待ち時間です。値が小さいほど、待たされる時間は短くなります。
ただし、「最初の一言が出るまで」と「最後まで書き終わるまで」は別の数字です。速さの話では、この2つがよく混ざります。
待ち時間の中身は、モデルの計算だけではありません。実際には、いくつもの要素が積み重なっています。
- 通信にかかる時間
- 順番待ちの時間
- 入力の読み込み
- 外部ツールの利用
- 結果の送り返し
この合計が、画面の前で感じる待ち時間です。ですから、速さの数字を見るときは、どこからどこまでを測った値かを確かめてください。起点は送信した瞬間か、終点は最初の一言が出た時点か、それとも最後まで書き終わった時点か。ここが分かるだけで、数字の意味ははっきりします。
イメージ
正確には
待ち時間を分けて測る3つのものさし
| 指標 | 何を測る? |
|---|---|
| TTFT(Time To First Token) | リクエストから、最初の出力トークンを受け取るまで |
| ITL / TPOT | 出力中のトークンとトークンの間隔を平均した値。呼び方や計算方法は資料によって違う |
| End-to-End Latency | リクエストから、応答全体を受け取り終えるまで |
NVIDIAのベンチマーク資料は、ITLをTPOTとも呼ぶと説明しています。TTFTを平均へ含めるかどうかも、ツールによって異なるとしています。
同じ名前の指標でも、中身までそろっているとは限らないわけですね。数字だけでなく、測り方の説明にも目を通しておきましょう。
少しずつ文字が出てくるのは、ストリーミングだからです
AIの返事が、少しずつ書き足されていくのを見たことがありますよね。あれがストリーミングです。応答ができあがるのを待たず、生成された分から順に受け取る方法を指します。
OpenAIとGoogleの開発者向け資料は、いずれもストリーミングで増分の出力を処理する方法を案内しています。
最初の一言が早く目に入るぶん、体感の待ち時間は短くなります。ただし、モデルが最後まで書き終える時間まで必ず短くなるわけではありません。
チャットの製品では、画面側が自動でストリーミング表示することがあります。APIから使う場合は、対応しているところでストリーミングを指定し、途中で届くイベントを受け取る作りが必要です。
待ち時間が長くなる理由
入力が長いと、最初の一言が遅れます
モデルは、書き始める前に、渡された入力を読み込みます。長いプロンプトや、たまった会話履歴があると、そのぶん読み込みに時間がかかります。とくに効いてくるのが、最初の一言までの時間です。
Anthropicも、入力トークン数をTTFTに関わる要因として挙げています。
出力が長いと、書き終わりが遅れます
生成するトークンが増えれば、一般に完了までの時間も長くなります。必要な形式と長さを伝えておくことは、時間と料金の両方を抑える助けになります。
指示文の最後に「3行でまとめて」「箇条書きで5項目まで」とひと言添えてみてください。
モデルと設定でも変わります
速さは、モデルの構造、提供されている環境、推論や思考に使う設定によっても変わります。
「大きいモデルは必ず遅い」「速いモデルは必ず品質が低い」とは限りません。選ぶときは、提供元が出している比較資料と、自分の仕事で試したときの品質を、あわせて見てください。
動かす環境でも変わります
- サーバーの順番待ちと、同時に使っている人の数
- 通信の経路と、選んだリージョン(サーバーの置かれた地域)
- GPUなどのハードウェア
- まとめ処理(バッチ)、キャッシュ、量子化などの最適化
- Web検索、コード実行、外部APIといったツールの呼び出し
同じモデルでも、「短い質問に3行で答える」場合と、「長い資料を検索して詳しい報告書を作る」場合では、必要な処理がまるで違います。モデル名だけを見て、応答時間は決めつけられません。
使う場面
待ち時間を短くするには
どこを短くしたいのかで、打つ手は変わります。
- 最初の一言を早くしたい
要らない入力を削る、近いリージョンを選ぶ、使えるならプロンプトキャッシュを検討する - 書き終わりを早くしたい
必要な出力の形式と長さを伝える - 体感をよくしたい
ストリーミングで、途中から表示する - 大量の処理を速くしたい
まとめ処理(バッチ)とスループットを検討する
注意点
速さを比べるときの注意
スループットも、レイテンシーとは別のものさしです。レイテンシーは1件あたりの待ち時間、スループットは決まった時間に処理できる量です。
まとめて処理するとスループットは上がりますが、1件ごとの待ち時間はかえって増える場合があります。
関連用語
- 推論 — 学習を終えたモデルが、入力から答えを計算する工程
- ストリーミング — できあがりを待たず、書けたところから順に受け取る方法
- トークン — 文章の長さをAIが数えるときの単位
- トークナイザー — 文章をトークンへ区切る仕組み
やってみよう