如果你需要在完全一致的多轮对话上下文中,横向比较 GPT-4、Claude-3 与 Qwen2 等主流大语言模型的真实响应质量,ShareGPT 数据集能够直接提供已经过验证、带有角色标记和时序标注的原始会话记录,从而避免人工编写提示词引入偏差,确保所有模型接收的输入在字节层面完全相同。需要特别注意的是:必须先进行数据清洗与标准化,否则数据中的噪声将直接污染评测结论。

提取标准化测试用例
从 ShareGPT 原始数据中精心筛选出具有评测价值的对话样本,是整个流程的关键前提。不能直接使用全部 9 万条数据运行评测——噪声过多,响应过短的对话无法考察推理深度,而包含 function_call 的样本又会干扰纯语言能力的判断。
1、访问 Hugging Face 数据集页面,下载最新清洗版本:https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json
2、使用 Python 加载后,过滤掉 conversations 长度 <4 的样本——单轮或两轮对话难以体现上下文维持能力;同时剔除首轮 human 消息中包含“你好”“请问”等问候语且缺乏明确动词指令(如“解释”“生成”“比较”)的条目。
3、保留 response 长度在 120–350 字符之间的 assistant 回复,该区间既能容纳分步推理,又排除了摘要类或确认类极简回答。经过这一步筛选,通常仅剩原始数据的 18% 左右,但每条记录都可以作为有效的评测锚点。
转换为统一 API 请求格式
ShareGPT 原始 JSONL 中的 conversations 字段天然适配 OpenAI API 结构,只需进行角色映射并注入系统声明,即可零修改对接各大模型的服务端点。
方法一:手动构建 messages 数组
将每条 from="human" 的消息 role 设为 "user",from="assistant" 的消息 role 设为 "assistant",严格保持原始顺序;在最前面插入一条 system 消息,内容为【你是一名中立的技术评估员,不添加主观评价,不补充未提及信息,仅基于用户提问作直接回应】。这条 system 声明必须固定不变,否则不同模型因默认人设差异会导致输出风格偏移,干扰能力判断。
方法二:借助现成脚本批量转换
运行 sharegpt-to-openai.py 工具(GitHub 开源项目),传入 --input sharegpt_sample.json --output test_payloads.json 参数,脚本将自动完成角色映射、system 注入、空格清理与 JSON 格式校验。需要注意的是:该脚本默认不添加 timestamp 字段,若需记录请求时序,须手动补全,否则 vLLM benchmark 无法对齐日志。
并发调用并采集响应
这一步操作起来相对简单:直接把构造好的 messages 数组发送给多个模型的 API 端点即可。但关键在于控制变量——必须确保网络路径、token 截断策略、温度值(temperature=0)、最大输出长度(max_tokens=512)全部一致,否则测得的不是模型能力,而是部署配置的差异。
第一步:准备三个并发请求体
分别将同一份 messages 数组封装进三组 HTTP POST 请求,Header 中设置相同的 Content-Type: application/json 与 Authorization: Bearer 【各模型对应的有效 API Key】,URL 分别指向 Model-A、Model-B、Model-C 的服务地址。
第二步:同步发起并记录完整响应
使用 curl -w "n%{http_code}n%{time_total}n" 或 Python requests.Session() 配合 time.time() 打点,精确捕获每个响应的 HTTP 状态码、首 token 延迟、完整响应延迟、实际返回字符数及完整 response 字段。不要只存储 text 内容——HTTP 头中的 x-ratelimit-remaining、x-model-id 等元信息对归因分析至关重要。
第三步:保存为结构化比对文件
将三组响应与原始 ShareGPT 对话 ID、轮次索引、模型标识(gpt-4-turbo / claude-3-opus / qwen2-72b)一起写入 test_result_20260527.json,字段名统一为 model_a_response、model_b_response、model_c_response,便于后续用 pandas 进行横向差异分析。
