HiDeepSeekDev
空闲特惠
评测对比评测方法ReproducibilityLM Evaluation Harness

DeepSeek 评测 Harness 方法论:如何避免一份“看起来很准”的错误榜单

从任务版本、Prompt 模板、思考内容清理、采样和失败统计入手,建立可复现、可解释的 DeepSeek 模型对比流程。

同一个模型在两份榜单上差几分,不一定是谁造假。任务 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 错误样本悄悄丢弃,会让剩余样本的分数虚高。

五、比较时一次只改变一个变量

  1. 同一任务、同一 Prompt、同一生成参数下比较不同模型。
  2. 同一模型下单独比较思考开关或 reasoning effort。
  3. 至少重复运行可能受采样影响的小数据集,并报告均值与波动。
  4. 保存原始样本日志,但公开前清理密钥、用户数据和受许可限制的内容。
一张可信榜单首先是一份可审计的实验记录,其次才是一组按大小排列的数字。

参考资料

本文依据以下资料整理,版本与接口信息请以来源页面的现行说明为准。

  1. 01LM Evaluation Harness CLI 文档github.com
  2. 02LM Evaluation Harness 官方仓库github.com
  3. 03DeepSeek-V3 官方评测结果与设置github.com
  4. 04DeepSeek 模型与价格api-docs.deepseek.com
阅读至此返回学习中心