NVIDIA Triton推理服务器GenAI-Perf性能测试工具详解
概述
GenAI-Perf是NVIDIA Triton推理服务器生态中的一款专业性能测试工具,专门用于评估生成式AI模型在推理服务器上的性能表现。该工具能够精确测量大语言模型(LLM)等生成式AI模型的关键性能指标,为系统优化和容量规划提供数据支持。
核心功能
1. 多维度性能指标测量
GenAI-Perf能够测量以下关键性能指标:
- 首令牌响应时间(Time to First Token):从发送请求到收到第一个响应令牌的时间
- 令牌间延迟(Inter Token Latency):生成连续令牌之间的平均延迟
- 请求总延迟(Request Latency):从发送请求到收到完整响应的时间
- 输出序列长度(Output Sequence Length):模型生成的令牌数量
- 输入序列长度(Input Sequence Length):输入提示的令牌数量
- 输出令牌吞吐量(Output Token Throughput):每秒生成的令牌数量
- 请求吞吐量(Request Throughput):每秒处理的请求数量
2. 多种模型支持
工具支持测试多种类型的生成式AI模型:
- 大语言模型(LLM)
- 视觉语言模型(Vision Language Models)
- 嵌入模型(Embedding Models)
- 排序模型(Ranking Models)
- 多LoRA适配器(Multiple LoRA Adapters)
安装指南
推荐安装方式
建议使用Triton Server SDK容器进行安装:
export RELEASE="24.06" # 示例版本号
docker run -it --net=host --gpus=all nvcr.io/nvidia/tritonserver:${RELEASE}-py3-sdk
源码安装方式
对于需要自定义安装的用户,可以按照以下步骤从源码安装:
- 先安装Perf Analyzer依赖:
pip install tritonclient
apt update && apt install -y --no-install-recommends libb64-0d libcurl4
- 然后安装GenAI-Perf:
git clone https://github.com/triton-inference-server/perf_analyzer.git
cd perf_analyzer
pip install -e genai-perf
快速入门
1. 启动GPT-2模型服务
首先需要启动一个GPT-2模型服务:
docker run -ti --gpus all --network=host --shm-size=1g \
-v /tmp:/tmp -v ${HOME}/models:/root/models \
nvcr.io/nvidia/tritonserver:24.05-trtllm-python-py3
# 安装Triton CLI并启动服务
pip install triton-cli
triton remove -m all
triton import -m gpt2 --backend tensorrtllm
triton start
2. 运行性能测试
在另一个终端中运行性能测试:
genai-perf profile \
-m gpt2 \
--service-kind triton \
--backend tensorrtllm \
--num-prompts 100 \
--synthetic-input-tokens-mean 200 \
--output-tokens-mean 100 \
--streaming \
--concurrency 1
3. 结果解读
测试完成后会输出类似以下结果:
LLM Metrics
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┓
┃ Statistic ┃ avg ┃ min ┃ max ┃ p99 ┃ p90 ┃ p75 ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━┩
│ Time to first token (ms) │ 11.70 │ 9.88 │ 17.21 │ 14.35 │ 12.01 │ 11.87 │
│ Inter token latency (ms) │ 1.46 │ 1.08 │ 1.89 │ 1.87 │ 1.62 │ 1.52 │
│ Request latency (ms) │ 161.24 │ 153.45 │ 200.74 │ 200.66 │ 179.43 │ 162.23 │
│ Output sequence length │ 103.39 │ 95.00 │ 134.00 │ 120.08 │ 107.30 │ 105.00 │
│ Input sequence length │ 200.01 │ 200.00 │ 201.00 │ 200.13 │ 200.00 │ 200.00 │
└──────────────────────────┴────────┴────────┴────────┴────────┴────────┴────────┘
Output token throughput (per sec): 635.61
Request throughput (per sec): 6.15
高级功能
1. 可视化分析
通过添加--generate-plots
参数可以生成性能可视化图表:
genai-perf profile -m gpt2 --generate-plots
生成的图表包括:
- 首令牌时间分析
- 请求延迟分析
- 首令牌时间与输入序列长度关系
- 令牌间延迟与令牌位置关系
- 输入输出序列长度关系
2. 多测试结果对比
使用compare
子命令可以对比多次测试结果:
genai-perf compare --files profile1.json profile2.json
对比结果会生成在compare
目录下,包含配置文件和多种对比图表。
输入数据配置
GenAI-Perf支持三种输入数据来源:
-
合成数据:自动生成测试提示
- 控制参数:
--num-prompts
,--synthetic-input-tokens-mean
,--synthetic-input-tokens-stddev
- 控制参数:
-
HuggingFace数据集:使用真实数据集
- 支持数据集:
openorca
,cnn_dailymail
- 控制参数:
--input-dataset
,--num-prompts
- 支持数据集:
-
自定义文件:使用JSON格式的自定义提示文件
- 控制参数:
--input-file
- 控制参数:
性能优化建议
- 并发设置:通过
--concurrency
参数调整并发请求数,找到系统最佳负载点 - 输出长度控制:使用
--output-tokens-mean
和--output-tokens-stddev
控制输出长度,模拟真实场景 - 流式处理:对于长文本生成,启用
--streaming
参数测试流式响应性能 - 确定性测试:添加
--output-tokens-mean-deterministic
参数提高测试可重复性
注意事项
- GenAI-Perf目前处于早期发布阶段,命令行选项和功能可能会随着版本更新而变化
- 测试前确保推理服务器已正确启动并加载目标模型
- 对于准确测试,建议测试持续时间足够长以获得稳定结果
- 不同模型类型(LLM、Embedding等)可能需要不同的测试参数配置
通过合理配置GenAI-Perf工具,开发者可以全面评估生成式AI模型在Triton推理服务器上的性能表现,为生产环境部署提供可靠的数据支持。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考