サイト内検索

LLMアプリケーションのベンチマーク測定 第1話 GenAI-Perfとは?

はじめに

大人数での利用が想定されるLLMのアプリケーションでは、ユーザーエクスペリエンスや運用コストに大きく関わる「応答性」と「スループット」が重要とされます。
LLMアプリケーションの運用コストは、ユーザーの興味を引き付けることができる応答性を保ちながら、同時に処理できる問い合わせ数をどの位に設定するか、つまりユーザーエクスペリエンスとのトレードオフになります。そのため、応答性とスループットが関心の対象となります。
本連載では全3話に渡って、NVIDIA NIM™推奨のベンチマークツールGenAI-Perfを実際に使用した結果と、出力される各指標について解説します。
コストに焦点を当てますので、LLMアプリケーションの出力品質(精度)については対象外とします。
 
第1話である本記事ではベンチマーク測定ツールであるGenAI-Perfの出力指標について説明します。
 
[LLMアプリケーションのベンチマーク測定]
第1話 GenAI-Perfとは?
第2話 GenAI-Perfの使い方
第3話 NVIDIA NIMとvLLMのベンチマーク測定

GenAI-Perfとは?

GenAI-Perfは推論サーバー上で動作する生成AIモデルのスループットと遅延を計測するためのコマンドラインツールであり、Tritonクライアントライブラリーの一部として提供されています。推論サーバーのAPIはOpenAI互換APIが想定されています。NVIDIA NIM向けベンチマークツールとしてNVIDIA社から推奨されています。

GenAI-Perfが想定するLLMアプリケーションのシナリオ

GenAI-PerfはLLMアプリケーションが以下のシナリオで動作することを想定して、スループットの遅延を測定します。

  1. LLMアプリケーションのユーザーが問い合わせ(クエリ)を発行します。(問い合わせにはユーザーが作成したプロンプトが含まれます。)
  2. 推論サーバーがそれを受信して、ジョブの待ち行列キューに入れます。
  3. LLMモデルがプロンプトを処理します。
  4. LLMモデルはユーザーに向け、トークン単位に応答を出力します。(ストリーミング形式の応答)

GenAI-Perfが出力する指標

指標(メトリックス)

  • Time to First Token (TTFT)
  • End-to-End Request Latency (e2e_latency)
  • Inter-Token Latency (ITL)
  • Total system Throughput : Tokens Per Second (TPS)
  • Requests Per Second (RPS)
GenAI-Perfが出力する指標

Time to First Token (TTFT)

Time to First Token(TTFT)は、LLMへ問い合わせを行ってから、最初の出力トークンが返ってくるまでの時間です。LLMからの返信にトークンが含まれていない場合は除外します。(LLMからの最初の返信にトークンが含まれておらず、2番目の返信からトークンが含まれていた場合は、問い合わせから2番目の返信までの時間が、TTFT値となります。)
ストリーミング出力するLLMを利用したアプリケーションでは、通常、トークンを受信する度に、それをユーザーへ表示するので、TTFTが、ユーザーにとって待ち時間となります。
TTFTには、LLMサーバーがリクエストキューを満たす時間やネットワーク遅延を含んでいることに注意してください。また、問い合わせのプロンプトが長いほど、TTFTも長くなります。これは、LLMのアテンション機構がキーバリューキャッシュを生成するために、プロンプトすべてを必要とするからです。

Time to First Token (TTFT)

End-to-End Request Latency (e2e_latency)

End-to-End Request Latency(e2e_latency)は、ユーザーがLLMへ問い合わせを行ってから、LLMからすべての出力トークンが返るまでの時間です。e2e_latencyには、LLMサーバーのキューイング機構やバッチ編成機構に関わる時間、ネットワーク遅延が含まれることに注意してください。

  

ユーザーが最初のトークンを受信してから、最後のトークンを受信するまでの時間をGeneration_timeとすると、e2e_latencyは以下のように表現することが可能です。

e2e_latency = TTFT + Generation_time

End-to-End Request Latency (e2e_latency)

Inter-Token Latency (ITL)

Inter-Token Latency(ITL)は連続した出力トークン間の時間を平均したものです。Time Per Output Token(TPOT)と呼ばれることもあります。
同じITLという名前の指標であっても、ベンチマークツールによって、最初のトークンまでの時間(TTFT)を含めるかどうかなどの差異が存在します。GenAI-Perfでは、TTFTを含めず、以下のとおり定義されます。

ITL = (e2e_latency - TTFT) / (Total_output_tokens - 1)

Inter-Token Latency (ITL)

Total system Throughput : Tokens Per Second (TPS)

Tokens Per Second(TPS)は1秒当たりの出力トークン数です。GPU計算リソースに余裕がある状態では、LLMサーバーへ問い合わせが増加するのに応じて、TPSも増加します。TPSの厳密な定義は以下のとおりです。

  • Li:i番目の問い合わせに対するe2e_latency
  • T_start:GenAI-Perfによるベンチマーク開始時刻
  • Tx:最初の問い合わせを行った時刻
  • Ty:最後の問い合わせに対する最後の応答を受信した時刻
  • T_end:GenAI-Perfによるベンチマーク終了時刻

TPS = Total_output_tokens / (Ty - Tx)

注:TPSを算出する際に、ウォーミングアップ及びクールダウンのための問い合わせは含みません。

Total system Throughput : Tokens Per Second (TPS)

Requests Per Second (RPS)

Requests Per Second(RPS)は1秒間に完了した問い合わせ数です。

RPS = total_completed_requests / (Ty - Tx)

次回、GenAI-Perfの使い方を徹底解説!

本記事ではGenAI-Perfが出力する各指標についてご紹介しましたが、いかがでしたでしょうか。

次回はGenAI-Perfの使い方について解説します。

AI導入をご検討の方は、ぜひお問い合わせください

AI導入に向けて、弊社ではハードウェアのNVIDIA GPUカードやGPUワークステーションの選定やサポート、また顔認証、導線分析、骨格検知のアルゴリズム、さらに学習環境構築サービスなどを取り揃えています。お困りの際は、ぜひお問い合わせください。