今回の内容
第1話では生成AIアプリケーションのベンチマークとして、GenAI-Perfの出力する各指標について解説しました。
第2話では実際のGenAI-Perfツールの使い方について解説します。
[LLMアプリケーションのベンチマーク測定]
第1話 GenAI-Perfとは?
第2話 GenAI-Perfの使い方
第3話 NVIDIA NIM™とvLLMのベンチマーク測定
GenAI-Perfのオプション
GenAI-Perfには多くのコマンドラインオプションが存在するため、ここでは代表的なオプションについて説明いたします。詳細は、Performance Analyzer->GenAI-Perf->Command Line Optionsを参照ください。
--model <list>
測定対象となるAIモデルを指定します。(LoRAアダプターを使用しない場合は、単一のモデルを指定します。)
--tokenizer <str>
プロンプトやLLM応答のトークン数を算出するためのトーカナイザーをHugging Face Hub上の名前で指定します。例:meta-llama/Meta-Llama-3-8B-Instruct
--service-kind {triton, openai}
推論サーバーがTriton Inference Serverの場合は triton 、OpenAI互換APIを持つサーバーの場合は openai を指定します。
--endpoint-type {chat, completions}
--server-kindにopenaiを指定する場合、エンドポイント形式 chat または completions を指定します。
--url <url>
推論サーバーのURLを指定します。
--concurrency <int>
同時に問い合わせを実行する数を指定します。LLMアプリケーションが同時にサービスするエンドユーザー数に相当します。
--measurement-interval <int>
計測時間をミリ秒単位で指定します。この時間内に完了した問い合わせが各指標算出の対象となります。
--output-tokens-mean <int>
出力トークン数の平均値
--output-tokens-stddev <int>
出力トークン数の標準偏
プロンプトにHugging Faceデータセットを使用する場合に有効なオプション
--input-dataset {openorca, cnn_dailymail}
プロンプトとして、Hugging Faceデータセットを利用する場合、openorca または cnn_dailymail を指定します。このオプションを指定しない場合は、合成データをプロンプトに用います。
--num-prompts <int>
固有のプロンプト数
プロンプトに合成データを使用する場合に有効なオプション
--num-prompts <int>
固有のプロンプト数
--synthetic-input-tokens-mean <int>
トークン数の平均値
--synthetic-input-tokens-stddev <int>
トークン数の標準偏差
--random-seed <int>
乱数生成のシード値
ユーザーが用意したプロンプトを使用する場合
--input-file <path>
JSONファイルを指定します。
GenAI-Perf出力の見かた
GenAI-PerfでNIMのベンチマークを測定した際に出力される結果の見方を解説します。
1列目のTime to First Token、Inter Token Latency、(End-to-End)Request Latencyの3指標はLLMへの問い合わせ毎に算出され、その平均値、最小値、最大値、99パーセンタイル、95パーセンタイル、90パーセンタイル、75パーセンタイル、50パーセンタイル、25パーセンタイルが出力されます。パーセンタイルはデータを小さい順に並べたとき、どこに位置するかを示します。99パーセンタイルは小さい方から99%に位置する値であり、50パーセンタイルは中央値です。
Num Output TokenとNum Input TokenはGenAI-Perfツールを使用する際に想定されるシナリオによってユーザーが設定するパラメータになります。今回はこちらを参考にInput/Outputを200/200として結果を出力しました。
Metric | avg | min | max | p99 | p95 | p90 | p75 | p50 | p25 |
Time To First Token (ns) | 178859359 | 73838932 | 217734212 | 217338545 | 216559510 | 215989391 | 185805802 | 183952658 | 177839897 |
Inter Token Latency (ns) | 28186524 | 26284341 | 30353671 | 30254216 | 29861613 | 29690036 | 29065006 | 27994706 | 27230244 |
Request Latency (ns) | 5344653932 | 5165773417 | 5619168861 | 5619164284 | 5619095892 | 5618754623 | 5540800702 | 5285519846 | 5170483894 |
Num Output Token | 184 | 174 | 191 | 190 | 189 | 188 | 186 | 185 | 183 |
Num Input Token | 200 | 180 | 217 | 216 | 212 | 212 | 207 | 200 | 194 |
Output Token ThroughputとRequest Throughputは測定するたびにそれぞれ1つの値が出力されます。
Metric | Value |
Output Token Throughput (per sec) | 344.74 |
Request Throughput (per sec) | 1.87 |
次回、NVIDIA NIM™とvLLMのベンチマークの測定!
本記事ではGenAI-Perfツールのオプションや出力結果の見方についてご紹介しましたが、いかがでしたでしょうか。
次回はGenAI-Perfツールを使用し、NVIDIA NIM™とvLLMのベンチマークを測定します。
AI導入をご検討の方は、ぜひお問い合わせください
AI導入に向けて、弊社ではハードウェアのNVIDIA GPUカードやGPUワークステーションの選定やサポート、また顔認証、導線分析、骨格検知のアルゴリズム、さらに学習環境構築サービスなどを取り揃えています。お困りの際は、ぜひお問い合わせください。