大模型数学能力评测怎么设计任务和评分标准才靠谱
大模型数学能力评测的关键不在于跑一遍公开榜单,而在于把题目来源、答案格式、评分规则和重复次数固定下来,再用同一套样本去测不同模型。
如果你只是看厂商宣传的分数,很容易被题目泄漏、格式宽松或抽样偏差带偏。
下面按设计流程讲清楚每一步该怎么做。
先明确评测目标与题目范围
评测前先回答一个问题:你关心的是最终答案正确率,还是解题过程合理性?
两者评分方式不同。
- 如果只关心答案,题目应覆盖算术、代数、几何、概率统计等类型,并准备标准答案。
- 如果关心过程,需要额外定义步骤完整性、逻辑连贯性等评分项,但主观性更强,建议多人交叉评分。
题目来源建议优先选择公开可追溯的题库,例如 GSM8K、MATH 等常见数学评测集,并记录题目版本和抽样方式。
不要自己临时编题却不留记录,否则后续无法复现。
固定输入格式与答案抽取规则
同一个模型在不同提示词下表现差异很大。
评测时应统一提示模板,例如要求模型“先写出推理过程,最后一行以‘答案:’开头给出最终结果”。
这样便于脚本自动抽取答案。
答案格式要提前约定:
- 数值答案保留几位小数、是否允许分数形式;
- 选择题只输出选项字母;
- 多步应用题要求最终结果带单位。
如果模型输出不符合格式,不能直接判错,应记录为“格式异常”并单独统计。
格式异常率高说明提示词或模型遵循能力有问题,需要在报告中说明。
评分标准要可执行、可复查
评分规则建议分成三档:
- 正确:最终答案与标准答案完全一致,或按约定容差判定一致。
- 部分正确:答案形式不同但数学等价,例如 0.5 与 1/2,可人工确认后标记。
- 错误:答案不一致或未给出最终答案。
对于推理过程评分,可以设置“步骤完整且逻辑正确”“步骤有跳跃但结论正确”“过程错误导致结论错误”等档位。
无论哪种方式,都要保留模型原始输出,方便后续抽查。
一个常见误区是只用正则表达式抓最后一个数字。
遇到分数、根号、单位或中文数字时容易误判。
建议先人工标注一小批样本校准抽取脚本,再批量执行。
执行评测与结果记录
执行时保持环境一致:同一温度参数、同一最大输出长度、同一系统提示词。
每个模型至少跑一遍完整题目集,条件允许时重复 2 到 3 次,观察稳定性。
结果记录至少包含:模型名称、题目编号、原始输出、抽取答案、判定结果、耗时。
可以用简单表格或 CSV 保存:
model,question_id,raw_output,extracted_answer,label,latency_ms
model-a,q001,"答案:12",12,correct,1830
如果使用 API 调用,注意记录调用时间和模型版本标识,避免版本更新后无法追溯。
避坑与结果解读
评测中最容易踩的坑有三个:题目泄漏、提示词偏袒和抽样偏差。
题目泄漏指模型训练数据已包含评测题,分数虚高;
提示词偏袒指某个模型恰好适配了某种格式;
抽样偏差指题目难度分布不均衡。
解读结果时不要只报一个总分。
建议按题型拆分正确率,并单独列出格式异常率。
如果两个模型总分接近,看它们在哪些题型上差异明显,比看单一数字更有意义。
最后提醒:大模型数学能力评测的结果只对当前题目集和当前提示条件有效,不能直接推广到所有数学任务。
换一批题或换一种提示模板,排名可能变化。
把评测条件写清楚,比追求一个“权威分数”更实用。