ShareGPT数据集在vLLM推理测试中的使用:用真实对话数据进行性能基准测试的方法

雪夜

雪夜

2026-05-25

1049人浏览

原创

sharegpt数据集是vllm真实对话场景基准测试的核心输入源,需经下载校验、格式适配、服务测试、多轮子集构造及性能分析五步完成全流程集成。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

sharegpt数据集在vllm推理测试中的使用:用真实对话数据进行性能基准测试的方法

如果您希望在vLLM推理引擎中开展贴近真实用户交互场景的性能基准测试,则ShareGPT数据集可作为核心输入源,提供具备多轮上下文、语义连贯性与自然节奏的真实对话样本。以下是将该数据集集成至vLLM基准测试流程的具体操作路径:

一、下载并校验ShareGPT数据集文件

使用官方清洗版本可避免非法字符、截断会话或格式错乱导致的解析失败,确保测试请求序列结构完整且符合vLLM的JSON输入规范。

1、执行wget命令下载标准JSON文件:wget https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json

2、校验文件完整性:运行jq -r '.conversations | length' ShareGPT_V3_unfiltered_cleaned_split.json | head -n 5,确认每条记录均含非空conversations数组。

3、检查编码格式:使用file -i ShareGPT_V3_unfiltered_cleaned_split.json验证为utf-8编码,排除因BOM或混合编码引发的JSONDecodeError。

二、适配vLLM benchmark_serving脚本的数据格式

vLLM的benchmark_serving.py默认支持sharegpt内置模式,但若使用自定义JSON路径,需确保字段映射与角色标记严格匹配其解析逻辑,否则将触发request parsing failed错误。

1、确认数据中每条样本包含conversations字段,且子项为{"from": "human", "value": "..."} {"from": "gpt", "value": "..."}交替结构。

2、若原始数据使用role而非from字段(如OpenAI格式),需预处理转换:python -c "import json; d=json.load(open('input.json')); [{**x, 'from':x.pop('role'), 'value':x.pop('content')} if 'role' in x else x for y in d for x in y['conversations']]"

3、删除含空字符串、纯空白符或超长单轮(>4096 tokens)的样本,防止benchmark进程因OOM或超时中断。

三、配置并运行在线服务基准测试

该步骤通过模拟并发HTTP请求流,测量vLLM服务端在真实对话负载下的吞吐量、TTFT与端到端延迟等关键工程指标。

1、启动vLLM服务实例,指定模型与端口:vllm serve --model NousResearch/Hermes-3-Llama-3.1-8B --port 8080

php获得文件的mime type类
php获得文件的mime type类

php获得文件的mime type类

下载

2、调用benchmark_serving.py,显式声明dataset参数为json类型并指向本地路径:python benchmarks/benchmark_serving.py --backend vllm --model NousResearch/Hermes-3-Llama-3.1-8B --dataset json --dataset-path ShareGPT_V3_unfiltered_cleaned_split.json --num-prompts 200 --request-rate 5 --host 127.0.0.1 --port 8080

3、验证API路由一致性:确保benchmark请求目标为/v1/chat/completions而非/v1/completions,否则返回404 NOT FOUND;可通过curl手动测试:curl -X POST http://127.0.0.1:8080/v1/chat/completions -H "Content-Type: application/json" -d '{"model":"test","messages":[{"role":"user","content":"hello"}]}'

四、构造高压力多轮对话子集用于KV缓存专项测试

标准ShareGPT全量测试无法暴露长上下文下KV缓存复用效率问题,需人工筛选高轮次、高共享前缀比例的会话段,以压力测试PagedAttention机制的实际表现。

1、提取所有会话中轮数≥6的样本,并计算相邻human消息间n-gram重合率,保留前缀重合度≥0.7的会话ID列表。

2、对每个选定会话,按轮次切片生成独立prompt:第1–3轮合并为context,第4轮human消息作为本次测试prompt,对应gpt回复作为参考输出。

3、将新生成的子集保存为独立JSON文件,字段必须包含prompt(字符串)、response(字符串)、context_length(整型),供benchmark_serving_structured_output.py直接加载。

五、启用性能分析并捕获GPU资源轨迹

添加--profile参数可激活vLLM内部性能探针,在测试过程中同步采集GPU显存占用、CUDA内核耗时及KV缓存页分配统计,辅助定位吞吐瓶颈是否源于显存带宽或计算单元饱和。

1、追加--profile与--output-len 128参数,控制响应长度以隔离生成阶段影响:python benchmarks/benchmark_serving.py --profile --output-len 128 --dataset json --dataset-path ShareGPT_V3_unfiltered_cleaned_split.json --num-prompts 100

2、测试结束后检查当前目录生成的memory_trace.jsongpu_kernels.csv文件,确认是否存在持续高于95%的显存占用峰值或异常长尾kernel延迟。

3、比对不同batch_size下的TTFT变化曲线:当batch_size从1增至8时,TTFT增幅超过150%,表明PagedAttention未有效启用,需核查vLLM版本是否≥0.6.0或是否误启用了disable_sliding_window参数。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

11

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

8

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

10

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

5

10

火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

1

10

火山引擎DNS解析配置步骤
火山引擎DNS解析配置步骤

使用火山引擎DNS解析网站域名时,需要确认域名已完成管理接入,并正确配置服务器IP、CNAME地址或验证记录。本专题整理域名添加、记录类型选择、TTL设置、解析状态检查、备案和访问测试等流程,适合新手搭建网站时参考。

2026.08.04

3

10

火山引擎对象存储使用教程
火山引擎对象存储使用教程

火山引擎对象存储适合用于网站图片、视频文件、备份数据、静态资源和应用附件管理。本专题整理TOS控制台入口、存储桶创建、地域选择、权限设置、文件上传、访问链接生成、CDN加速、费用查看和常见上传或访问失败问题,帮助用户快速掌握对象存储基础操作。

2026.08.04

1

10

火山引擎云服务器使用教程
火山引擎云服务器使用教程

火山引擎云服务器使用教程适合第一次购买、部署和管理云服务器的用户参考。本专题整理控制台入口、实例创建、地域和配置选择、系统镜像设置、安全组放行、远程连接、网站部署、续费计费和常见连接失败问题,帮助用户快速完成云服务器基础使用流程。

2026.08.04

5

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习