REPRODUCIBLE EVALSHiDeepSeek / Open Infra
$ version + template + seed + samples
AUDITABLE BENCHMARKOPEN SOURCE
评测对比评测方法ReproducibilityLM Evaluation Harness
DeepSeek 评测 Harness 方法论:如何避免一份“看起来很准”的错误榜单
H
HiDeepSeek 编辑部更新于 2026/9/4
阅读大约 9 分钟
同一个模型在两份榜单上差几分,不一定是谁造假。任务 revision、few-shot、Prompt 模板、答案提取、最大输出长度和思考内容处理,只要有一项不同,结果就可能无法直接比较。Harness 的价值是固定流程,而不是替代实验设计。
一、先写评测契约
必须冻结:
- 模型公开名称与底层版本
- Harness 版本 / Git commit
- task、dataset revision 与 split
- chat template、system instruction、few-shot
- temperature、max tokens、seed
- 答案过滤器、指标与聚合方式
- 超时、重试、拒答和空输出的记分规则
官方模型报告中的成绩只能在相近设置下作为比较背景。例如 DeepSeek-V3 报告会同时说明 shot 数、指标和部分生成限制;只抄最终数字而省略设置,会制造错误结论。
二、先看样本,再看总分
正式跑全量前先用少量样本检查输入和输出。Harness 的 --write_out 可查看构造后的 Prompt,--log_samples 可保存模型响应,--show_config 可输出最终配置。
lm-eval run --model local-chat-completions --model_args model=deepseek-v4-pro,base_url=https://api.deepseek.com/chat/completions,num_concurrent=1 --tasks ifeval --apply_chat_template --limit 10 --write_out --show_config --log_samples --output_path ./results/ifeval-smoke
三、处理思考模型的输出边界
思考模型可能在最终答案之前返回推理段。若任务的答案提取器收到整段文本,可能把格式差异误算为能力差异。Harness 支持通过 think_end_token 清理部分本地模型的思考前缀,但前提是服务端确实把对应分隔符放入返回内容。使用 DeepSeek 托管 API 时,应先检查真实响应字段和任务过滤器,不要盲目套用其他模型的 </think>。
四、区分模型失败与基础设施失败
- 模型失败:答案错误、格式不符、拒答或超出任务要求。
- 调用失败:限流、超时、服务端错误、连接中断。
- 评测失败:解析器未提取到答案、任务配置不兼容、依赖版本变化。
报告除主指标外,还应展示完成率、空输出率、重试率、平均延迟和 Token 消耗。把 API 错误样本悄悄丢弃,会让剩余样本的分数虚高。
五、比较时一次只改变一个变量
- 同一任务、同一 Prompt、同一生成参数下比较不同模型。
- 同一模型下单独比较思考开关或 reasoning effort。
- 至少重复运行可能受采样影响的小数据集,并报告均值与波动。
- 保存原始样本日志,但公开前清理密钥、用户数据和受许可限制的内容。
一张可信榜单首先是一份可审计的实验记录,其次才是一组按大小排列的数字。
参考资料
本文按下列官方资料核验。模型能力、价格与接口可能调整,请以最新文档为准。