如何使用TensorRT-LLM进行高效大语言模型性能测试:完整指南

发布时间:2026/6/30 9:08:57

如何使用TensorRT-LLM进行高效大语言模型性能测试:完整指南 如何使用TensorRT-LLM进行高效大语言模型性能测试完整指南【免费下载链接】TensorRT-LLMTensorRT-LLM provides users with an easy-to-use Python API to define Large Language Models (LLMs) and build TensorRT engines that contain state-of-the-art optimizations to perform inference efficiently on NVIDIA GPUs. TensorRT-LLM also contains components to create Python and C runtimes that execute those TensorRT engines.项目地址: https://gitcode.com/GitHub_Trending/te/TensorRT-LLMTensorRT-LLM是一款强大的工具提供了简单易用的Python API来定义大型语言模型(LLMs)并构建TensorRT引擎包含最先进的优化技术可在NVIDIA GPU上高效执行推理。本文将详细介绍如何使用TensorRT-LLM进行全面的性能测试帮助你轻松评估和优化模型性能。性能测试前的准备工作在开始性能测试之前确保GPU配置正确以获得一致且可重现的结果。这些设置有助于最大化GPU利用率消除性能波动并确保准确测量的最佳条件。persistence mode配置启用persistence mode以保持一致的GPU状态sudo nvidia-smi -pm 1GPU时钟管理允许GPU根据工作负载和温度动态调整时钟速度sudo nvidia-smi -rgc设置电源限制首先查询最大电源限制nvidia-smi -q -d POWER然后将GPU配置为以最大电源限制运行sudo nvidia-smi -pl max_power_limitBoost设置查询可用的boost级别sudo nvidia-smi boost-slider -l如果支持使用可用级别之一启用boost滑块以获得最佳性能sudo nvidia-smi boost-slider --vboost max_boost_sliderTensorRT-LLM基准测试工具介绍TensorRT LLM提供了trtllm-bench命令行工具这是一个打包的基准测试实用程序旨在让用户更轻松地重现官方发布的性能概述。trtllm-bench提供以下功能一种简化的方式为各种模型和平台构建用于基准测试的优化引擎完全的Python工作流用于基准测试能够基准测试TensorRT LLM中的各种流程和功能此外TensorRT LLM还通过trtllm-serve命令提供OpenAI兼容的API支持以下端点/v1/models/v1/completions/v1/chat/completions吞吐量基准测试支持的网络和量化模式trtllm-bench能够运行任何TensorRT LLM支持的网络但以下是经过广泛验证的网络列表meta-llama/Llama-2-7b-hfmeta-llama/Llama-2-70b-hftiiuae/falcon-180BEleutherAI/gpt-j-6bmeta-llama/Meta-Llama-3-8Bmeta-llama/Llama-3.1-8Bmeta-llama/Meta-Llama-3-70Bmeta-llama/Llama-3.1-70Bmeta-llama/Llama-3.1-405Bmistralai/Mixtral-8x7B-v0.1mistralai/Mistral-7B-v0.1meta-llama/Llama-3.1-8B-Instructmeta-llama/Llama-3.1-70B-Instructmeta-llama/Llama-3.1-405B-Instructmistralai/Mixtral-8x7B-v0.1-Instructtrtllm-bench支持以下量化模式None不应用量化FP8NVFP4准备数据集吞吐量基准测试使用固定的JSON模式来指定请求。模式定义如下键必需类型描述task_idYString请求的唯一标识符promptN*String生成请求的输入文本input_idsY*List[Integer]构成请求提示的token ID列表output_tokensYInteger此请求生成的token数量*指定prompt或input_ids是必需的。但是不能同时定义提示和token IDinput_ids。如果指定input_ids则在生成请求时忽略prompt条目。要准备合成数据集可以使用benchmarks/cpp目录中提供的脚本。例如为meta-llama/Llama-3.1-8B生成1000个请求的合成数据集ISL/OSL为128/128trtllm-bench --model meta-llama/Llama-3.1-8B prepare-dataset --output /tmp/synthetic_128_128.txt token-norm-dist --input-mean 128 --output-mean 128 --input-stdev 0 --output-stdev 0 --num-requests 1000使用PyTorch工作流运行基准测试要基准测试PyTorch后端tensorrt_llm._torch使用以下命令和之前步骤生成的数据集trtllm-bench --model meta-llama/Llama-3.1-8B \ --model_path /Ckpt/Path/To/Llama-3.1-8B \ throughput \ --dataset /tmp/synthetic_128_128.txt \ --backend pytorch示例输出 PyTorch backend Model: meta-llama/Llama-3.1-8B Model Path: /Ckpt/Path/To/Llama-3.1-8B TensorRT LLM Version: 0.17.0 Dtype: bfloat16 KV Cache Dtype: None Quantization: FP8 WORLD RUNTIME INFORMATION TP Size: 1 PP Size: 1 Max Runtime Batch Size: 2048 Max Runtime Tokens: 4096 Scheduling Policy: Guaranteed No Evict KV Memory Percentage: 90.00% Issue Rate (req/sec): 7.6753E14 PERFORMANCE OVERVIEW Number of requests: 3000 Average Input Length (tokens): 128.0000 Average Output Length (tokens): 128.0000 Token Throughput (tokens/sec): 20685.5510 Request Throughput (req/sec): 161.6059 Total Latency (ms): 18563.6825启用流传输时还将记录首token时间TTFT和token间延迟ITL指标trtllm-bench --model meta-llama/Llama-3.1-8B \ --model_path /Ckpt/Path/To/Llama-3.1-8B \ throughput \ --dataset /tmp/synthetic_128_128.txt \ --backend pytorch或者用户可以基准测试低延迟模式trtllm-bench --model meta-llama/Llama-3.1-8B \ --model_path /Ckpt/Path/To/Llama-3.1-8B \ latency \ --dataset /tmp/synthetic_128_128.txt \ --backend pytorch性能测试结果分析Falcon-180B在H200上的性能表现上图显示了Falcon-180B模型在单个H200 GPU上的性能表现。测试使用了两种不同的输入序列长度/输出序列长度配置128/128和128/2048。结果显示在128/128配置下吞吐量达到约800 tokens/s而在128/2048配置下约为670 tokens/s。这表明输入和输出序列长度对模型性能有显著影响较长的输出序列会降低整体吞吐量。Llama-2 70B吞吐量与延迟关系这张图表展示了Llama-2 70B模型的吞吐量tokens/s与每个输出token的时间ms之间的关系。绿色线条表示启用XQA优化技术的情况黑色线条表示禁用XQA的情况。可以看出启用XQA后在相同的吞吐量下每个输出token的时间显著减少特别是在高吞吐量区域这表明XQA技术能有效提高模型效率。TPS/GPU与TTFT性能权衡左侧图表显示了不同平衡策略下每GPU的吞吐量TPS/GPU与每用户吞吐量TPS/用户的关系。右侧图表展示了首token时间TTFT与每用户吞吐量的关系。这些Pareto曲线表明在性能优化中存在权衡提高吞吐量可能会增加延迟而减少延迟可能会降低吞吐量。不同的平衡策略如T050 BW10、T020 BW10等在这种权衡中表现出不同的特性可根据具体应用需求选择合适的策略。多模态模型的性能测试TensorRT-LLM还支持多模态模型的性能测试。以下是使用Qwen2-VL-2B-Instruct模型进行多模态性能测试的步骤准备多模态数据集trtllm-bench \ --model Qwen/Qwen2-VL-2B-Instruct \ prepare-dataset \ --output mm_data.jsonl \ real-dataset --dataset-name lmms-lab/MMMU \ --dataset-split test \ --dataset-image-key image \ --dataset-prompt-key question \ --num-requests 10 \ --output-len-dist 128,5运行多模态模型基准测试trtllm-bench --model Qwen/Qwen2-VL-2B-Instruct \ throughput \ --dataset mm_data.jsonl \ --backend pytorch \ --num_requests 10 \ --max_batch_size 4 \ --modality image在线服务基准测试TensorRT LLM提供通过trtllm-serve命令的OpenAI兼容API以及tensorrt_llm.serve.scripts.benchmark_serving包来基准测试在线服务器。此外AIPerf也是一个全面的基准测试工具可以测量由trtllm-serve启动的OpenAI兼容服务器的性能。要基准测试OpenAI兼容的trtllm-serve请参考使用trtllm-serve运行基准测试部分。总结TensorRT-LLM提供了全面的性能测试工具和方法帮助用户评估和优化大语言模型在NVIDIA GPU上的推理性能。通过trtllm-bench工具用户可以轻松进行吞吐量和延迟测试分析不同模型配置和输入条件下的性能表现。本文介绍的性能测试流程和最佳实践将帮助你充分利用TensorRT-LLM的强大功能实现高效的模型部署和服务。无论你是研究人员、开发人员还是系统管理员掌握TensorRT-LLM的性能测试方法都将有助于你构建更高效、响应更快的AI应用。开始使用TensorRT-LLM进行性能测试释放你的大语言模型的全部潜力【免费下载链接】TensorRT-LLMTensorRT-LLM provides users with an easy-to-use Python API to define Large Language Models (LLMs) and build TensorRT engines that contain state-of-the-art optimizations to perform inference efficiently on NVIDIA GPUs. TensorRT-LLM also contains components to create Python and C runtimes that execute those TensorRT engines.项目地址: https://gitcode.com/GitHub_Trending/te/TensorRT-LLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻