网易首页 > 网易号 > 正文 申请入驻

用AIPerf对大语言模型推理进行规模化基准测试

0
分享至


你正在系统上部署一个模型。服务启动了,提示词也得到了响应。现在有个难题:这速度到底够不够快?

你的第一反应可能是发送curl命令、手写一个asyncio脚本,或者随手写一个一次性的负载生成器。这些做法都存在同样的问题:单进程性能有限、Python的GIL限制了并发能力,或者测出来的数据只是和你自己搭建的参照物比较而来。无论哪种方式,你最终得到的结果都难以完全信任,而且配套的工具一旦需求变化就得重写。

你真正需要的是一个负载客户端:既能让真实服务器达到饱和而不成为瓶颈本身,又能产出可直接使用的结果,配置时间只需五分钟而不是五小时。这正是英伟达AIPerf要解决的问题。

AIPerf有何不同

AIPerf是GenAI-Perf的官方继任者,是一次从零开始的重写。这些设计选择,源自大规模运行大语言模型基准测试所积累的经验教训:

与旧架构彻底切割。AIPerf不再像GenAI-Perf那样构建在Perf Analyzer之上。这是一次彻底的架构革新,也正因如此AIPerf才能实现如此规模的扩展能力。如果你正在迁移现有工作流,迁移指南涵盖了关键的差异点。

客户端本身不该成为瓶颈。包括GenAI-Perf在内的大多数基准测试工具都采用单进程架构,在真实并发或请求速率下会受限于GIL。AIPerf是一个多进程系统:工作进程负责生成负载,独立的记录处理服务负责处理结果,所有环节通过ZMQ协调。这种结构能够避免AIPerf自身成为客户端侧的瓶颈,从而实现更准确的服务器基准测试。

覆盖你实际运行的各种工作负载。AIPerf支持15种以上的端点类型:聊天、响应、NIM排序、图像生成等等——同时还支持ShareGPT等公开数据集,以及来自Mooncake、Baseten、WEKA(AgentX)等平台的流量回放格式。无论你是要做一次快速的合成压测,还是要回放捕获到的生产流量,都不需要更换工具。

负载形态由你自己掌控。AIPerf支持恒定、泊松和伽马到达模式,并可调节突发程度,支持并发数与请求速率的渐进爬升,还支持包括vLLM/SGLang范围比率的合成分布,用于处理可变的输入序列长度/输出序列长度。你掌控的不仅是负载的量,还有负载的形态。

你的第一次基准测试:在vLLM上进行合成ISL/OSL测试

在本次演示中,我们将使用通过vLLM部署的Qwen3-0.6B模型。这个模型选择是刻意为之:它小到可以在单张GPU上运行,速度也足够快,无需长时间等待即可迭代。这里的重点不是专门针对Qwen3-0.6B做基准测试,而是建立起整套测量流程。一旦掌握了这个流程,换成其他模型或端点只需改动一个参数即可。

启动服务器

拉取并启动vLLM,同时启用推理解析器:

docker pull vllm/vllm-openai:latest

docker run --gpus all -p 8000:8000 -e HF_TOKEN vllm/vllm-openai:latest \\

--model Qwen/Qwen3-0.6B \\

--reasoning-parser qwen3 \\

--host 0.0.0.0 --port 8000

安装AIPerf

我们可以使用uv安装一个集中版本:

uv tool install aiperf

或者创建虚拟环境:

uv venv venv

source venv/bin/activate

uv pip install aiperf

有一点平台注意事项:在aarch64架构上,crick依赖以源码形式发布,需要C编译工具链(Debian/Ubuntu上是build-essential,RHEL上是Development Tools)。如果安装卡在这个包上,原因就在这里。

运行基准测试

服务器启动、AIPerf安装完成后,我们现在可以运行第一次性能测试:

aiperf profile \\

--model Qwen/Qwen3-0.6B \\

--endpoint-type chat \\

--streaming \\

--url localhost:8000 \\

--synthetic-input-tokens-mean 128 \\

--synthetic-input-tokens-stddev 0 \\

--output-tokens-mean 128 \\

--output-tokens-stddev 0 \\

--extra-inputs min_tokens:128 \\

--extra-inputs ignore_eos:true

这里有几个参数发挥的作用比表面看起来更大:

--synthetic-input-tokens-stddev 0 和 --output-tokens-stddev 0 将工作负载固定为每个请求恰好128个输入Token和128个输出Token。这重现了一种常用的静态基准测试方式,即保持请求长度和输出长度恒定。

--extra-inputs min_tokens:128 和 --extra-inputs ignore_eos:true 强制模型确实生成128个Token,而不是提前停止。如果没有这两个参数,输出Token数量只是一个建议值——模型会在自然完成时就停止,这可能远远达不到你设定的目标输出序列长度。这样一来,吞吐量数据会比实际应有的水平偏低,而且在多次运行之间也无法复现。

--streaming如果你想测量首Token时间和Token间延迟,这个参数是必须的。没有流式输出,服务器会先攒完整个响应再发送,这样就没有首Token或解码Token事件可供测量。

你将看到什么

我们会在下一节讲解如何解读这些数据。目前,先注意下图2所示输出的形态:按百分位划分的延迟、以每秒Token数衡量的吞吐量,以及请求级别的统计数据,全部集中呈现在一处。这就是你后续对比一切结果的基线。

解读数据:AIPerf呈现的内容

一次运行完成后,AIPerf会在控制台打印指标表格,并将完整结果写入CSV和JSON文件。以下是你将看到的内容。

核心四项指标:

首Token时间(TTFT)——从请求发出到收到第一个Token所经过的时间。这是交互式应用场景中最主要的延迟信号。

Token间延迟(ITL)——生成过程中连续Token之间的时间间隔。即使首Token时间看起来正常,较高的Token间延迟也意味着解码阶段存在困难。

请求延迟——完整响应的端到端耗时,将预填充和解码成本合并为一个数值。

输出Token吞吐量——所有并发请求中每秒生成的Token数,这是产能规划中最主要的吞吐量信号。

关于这些指标以及AIPerf报告的其他所有指标的完整定义,请参阅指标参考文档。

获取全貌。以上每项指标都会按百分位(p25、p50、p75、p90、p95、p99)分解报告,并附带最小值、最大值、平均值和标准差。这些分解数据很重要,因为它们能揭示长尾分布:一台平均首Token时间健康、但p99却是异常值的服务器,看起来整体表现不错,但一到生产环境就会出问题。

核心四项之外。如果配备了DCGM或pynvml,AIPerf还会将GPU功耗、利用率和显存占用一并纳入同一份运行输出中。要将延迟突增与显存压力事件关联起来,不需要单独再做一次分析,遥测数据已经就在那里。

进一步探索:配置流量模式

在完成一次静态基准测试后,我们可以开始探索更为动态的场景。上一节展示的是极其固定的流量模式,但真实的推理流量并不遵循静态模式。为了用不那么刻板的场景做基准测试,我们可以利用AIPerf的一些合成工作负载调节参数,为请求引入变化性。

aiperf profile \\

--model Qwen/Qwen3-0.6B \\

--endpoint-type chat \\

--streaming \\

--url localhost:8000 \\

--request-rate 10 \\

--arrival-pattern poisson \\

--synthetic-input-tokens-mean 512 \\

--synthetic-input-tokens-stddev 128 \\

--output-tokens-mean 128 \\

--output-tokens-stddev 32 \\

--random-seed 42 \\

--request-count 200

与上面的静态基准测试相比,有几处变化。

--arrival-pattern poisson 配合 --request-rate 10 表示请求以平均每秒10个的速率到达,到达间隔时间按指数分布抽取。此时服务器经历的是突发和间隙交替,而不是单一用户流,这更接近真实流量下排队现象的实际情况。

--synthetic-input-tokens-stddev 128 在512 Token均值周围引入了方差,产生长短不一的提示词组合。服务器在预填充阶段必须处理长度可变的提示词,而不是完全一致的提示词。

--output-tokens-stddev 32 在输出端加入了方差。注意这次命令中去掉了min_tokens和ignore_eos。在静态基准测试中,这两个参数将输出固定为恰好128个Token,以保持基线的纯净;而这里我们特意放开这个限制,让输出分布可以自然变化。

--random-seed 42 使泊松到达时间和合成长度抽样结果可复现。重新运行这条命令会产生完全相同的请求序列。

--streaming 依然是必需的。没有流式输出,服务器会先攒完整个响应再发送,也就没有首Token或解码Token事件可供测量。

观察这次运行得到的大语言模型指标,其分布明显比静态基线更为宽泛——这符合预期,因为更多请求同时争夺GPU资源,且各请求的预填充长度不尽相同。

观察下图4中的图表,可以看到泊松命令行引入的请求速率大致围绕每秒10个请求波动,但并不完全精确等于该值。这种到达速率模拟了请求到达时间的抖动,而恒定模式则保证固定为每秒10个请求。

在下图5中可以看到,请求长度围绕512 Token均值存在波动,输入序列长度的范围在154到818个Token之间。

对比两次运行的首Token时间可以发现,泊松运行的分布明显更为分散。更多请求同时争夺GPU资源,预填充长度各不相同,预填充和解码操作也相互重叠。而单并发场景是一种理想化情形,一次只处理一个请求,能呈现最低的首Token时间,但代价是牺牲了吞吐量。

在上图6中可以看到,单用户运行的首Token时间波动性远小于泊松实验中变化更多的工作负载。

还有更多值得探索的内容

本次演示只涵盖了基础用法,但AIPerf同样为更复杂的场景而设计。

同一个工具可以处理多节点Kubernetes部署、KV缓存复用预热机制、生产流量回放、前缀合成、自定义数据集,以及跨并发级别的扫描配置。

如果你正在进行大规模分布式推理,请参阅《英伟达Dynamo 1.0如何支撑生产级多节点推理》。

AIPerf代码库中的教程是最快的入门方式。AIPerf代码库及文档是了解新功能和参与贡献的权威参考。

致谢

AIPerf是英伟达与外部贡献者共同协作的成果。特别感谢:Loki Ravi、Dan Ferguson和Sheng Moua(来自AWS)持续的合作、跨公司验证以及推动AIPerf标准化的努力;Aaron Batilo(来自Coreweave)贡献了Weights & Biases导出器、接受长度的推测解码数据集,并加固了并发情况下的扫描/额度调度可靠性;Shounak Ray(来自Baseten)为Baseten流量回放提供了忠实支持;Michael Feil(来自Baseten)实现了更快的流量加载以及会话亲和性头部支持;Cristian Lopez(来自Pinterest)在DAG基准测试方法论上进行了密切合作。我们也感谢Ben Hamm在AIPerf设计、规划和实施过程中提供的产品指导。

Q&A

Q1:AIPerf是什么?它主要用来做什么?

A:AIPerf是英伟达推出的大语言模型推理基准测试工具,是GenAI-Perf的官方继任者。它采用多进程架构,能够在不成为客户端瓶颈的前提下对推理服务器进行准确的性能测试,支持15种以上端点类型和多种流量模式配置。

Q2:AIPerf和GenAI-Perf有什么区别?

A:AIPerf是从零开始重写的工具,不再依赖Perf Analyzer,实现了架构上的彻底革新。它采用多进程系统,工作进程与记录处理服务分离并通过ZMQ协调,从而避免了GenAI-Perf存在的单进程GIL限制问题,能更好地支撑大规模并发测试。

Q3:使用AIPerf做基准测试需要注意哪些关键参数?

A:需要注意streaming参数以测量首Token时间和Token间延迟;min_tokens和ignore_eos参数可确保输出Token数量达到目标值;arrival-pattern和request-rate参数可控制请求到达模式,模拟真实流量的突发和波动特性。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
涉黄!闲鱼要关了

涉黄!闲鱼要关了

财经三分钟pro
2026-09-21 13:44:49
男子不慎跌落撞到下体,阴茎持续勃起3天无法消退,医生:这类情况应尽早就医

男子不慎跌落撞到下体,阴茎持续勃起3天无法消退,医生:这类情况应尽早就医

南方都市报
2026-09-20 13:38:18
2027将会是中华人民共和国全党、全军、全国各族人民重要的一年

2027将会是中华人民共和国全党、全军、全国各族人民重要的一年

知法而形
2026-09-21 10:34:23
广州警方开展净化社会面系列警务行动!抓获40名在逃人员

广州警方开展净化社会面系列警务行动!抓获40名在逃人员

南方都市报
2026-09-21 21:46:10
广东省人大常委会党组成员覃伟中被查,上月刚辞任深圳市市长

广东省人大常委会党组成员覃伟中被查,上月刚辞任深圳市市长

界面新闻
2026-09-21 17:40:15
彻底打脸!张本智和亚运会上狂言碾压国乒,结果被现实狠狠上一课

彻底打脸!张本智和亚运会上狂言碾压国乒,结果被现实狠狠上一课

错过美好
2026-09-21 13:41:56
贾国龙发声:西贝教训惨痛,恳请监管部门进一步厘清高流量网络账号的言论边界

贾国龙发声:西贝教训惨痛,恳请监管部门进一步厘清高流量网络账号的言论边界

南方都市报
2026-09-21 13:48:27
柬埔寨“8号电诈园区”内部曝光:墙上挂中文标语“请不要假装很努力,结果不会陪你演戏”,办公住宿餐饮俱全,道路装监控……

柬埔寨“8号电诈园区”内部曝光:墙上挂中文标语“请不要假装很努力,结果不会陪你演戏”,办公住宿餐饮俱全,道路装监控……

扬子晚报
2026-09-21 15:16:30
41岁港男星自曝有大量性伴侣:我不想浪费时间撒谎

41岁港男星自曝有大量性伴侣:我不想浪费时间撒谎

生活观察员啊
2026-09-21 00:31:05
这条“流氓”新闻,引起公愤了!

这条“流氓”新闻,引起公愤了!

胖胖说他不胖
2026-09-21 11:55:20
敬一丹曾爆料:主持揭露东莞特殊服务节目时,她与导演发生争执

敬一丹曾爆料:主持揭露东莞特殊服务节目时,她与导演发生争执

言过于诚
2026-09-21 10:04:14
外交部:中方将于9月25日在纽约联合国总部举行全球发展倡议5周年高级别对话会

外交部:中方将于9月25日在纽约联合国总部举行全球发展倡议5周年高级别对话会

上观新闻
2026-09-21 16:01:00
中国女排战胜泰国,向队史的第10座亚运会冠军奖杯发起冲击

中国女排战胜泰国,向队史的第10座亚运会冠军奖杯发起冲击

澎湃新闻
2026-09-21 18:44:07
10岁男孩跳河轻生溺亡,曾被班主任多次掌掴罚站,检方:证据不足、事实不清,对教师谭某某不予批捕;男孩家属:唯一诉求是追究老师刑责

10岁男孩跳河轻生溺亡,曾被班主任多次掌掴罚站,检方:证据不足、事实不清,对教师谭某某不予批捕;男孩家属:唯一诉求是追究老师刑责

蓬勃新闻
2026-09-20 22:55:29
网传又一家外资工厂撤出中国,千人面临失业...

网传又一家外资工厂撤出中国,千人面临失业...

慧翔百科
2026-09-21 17:30:43
13分钟3-0完胜!张本智和:要让日本国歌3次响起 回报日本民众支持

13分钟3-0完胜!张本智和:要让日本国歌3次响起 回报日本民众支持

风过乡
2026-09-21 08:35:09
杭州电梯女子诬告猥亵后续:女当事人再起号,发声诉苦,闺蜜力挺:她一直活在痛苦中

杭州电梯女子诬告猥亵后续:女当事人再起号,发声诉苦,闺蜜力挺:她一直活在痛苦中

李晚书
2026-09-21 09:46:34
俄方对华天然气报价250至260美元,在国际市场上贵不贵?

俄方对华天然气报价250至260美元,在国际市场上贵不贵?

李博世财经
2026-09-21 14:01:47
假流水、假合同,央视起底明码标价的骗保灰色产业链

假流水、假合同,央视起底明码标价的骗保灰色产业链

澎湃新闻
2026-09-20 23:14:49
最后一棒超燃反超!中国队4×200自由泳接力夺金,创全新亚洲纪录

最后一棒超燃反超!中国队4×200自由泳接力夺金,创全新亚洲纪录

全景体育V
2026-09-21 17:39:01
2026-09-21 22:23:00
至顶科技 incentive-icons
至顶科技
科技产业媒体与 AI 产业服务机构
22015文章数 49731关注度
往期回顾 全部

科技要闻

吃AI红利的凡人,年薪10万美元,每天3万步

头条要闻

经历惊魂79天赴泰失联男子获救回国 身上新旧伤疤交错

头条要闻

经历惊魂79天赴泰失联男子获救回国 身上新旧伤疤交错

体育要闻

跟着华裔天才重仓AI,勇士旧将成资本大佬

娱乐要闻

张佳宁穿搭宽松小腹微凸 引发怀孕猜测

财经要闻

酒鬼酒经销商半年跑了40%

汽车要闻

家越07成精了:豆包上车 有事您言语一句就成

态度原创

家居
旅游
艺术
本地
公开课

家居要闻

2026建博会(广州) 公装联探展交流活动

旅游要闻

山海同心 鲁甘情深 山东广电乐享银龄旅游巡演再出发!

艺术要闻

16位画家的23幅写实静物

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版