☰
深入解析 ReSA 项目中的 Minerva 数学评测数据:源自 MIT OCW 的定量推理基准与完整评测管线
2026/10/11 3:42:50 网站建设 项目流程
  • 人工智能
  • 大模型
  • 预训练
  • 深度学习
  • NLP
  • 计算机视觉
  • 多模态
  • 语音

【免费下载链接】unilm

Large-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities

项目地址:https://gitcode.com/GitHub_Trending/un/unilm
点击查看免费下载

导读

本文聚焦 ReSA(Rectified Sparse Attention) 项目中minerva_math评测数据集的来源、数据结构与消费方式。该数据集位于 ReSA/math_data/minerva_math/,其 README 明确指出数据源自 MIT OpenCourseWare,并引用了 Minerva 论文《Solving Quantitative Reasoning Problems with Language Models》。阅读本文后,你将掌握该数据集的字段格式、课程构成、在 ReSA 数学评测体系中的定位,以及从数据加载、Prompt 构造到答案抽取与准确率统计的完整调用链。

Minerva 数据集的来源:MIT OpenCourseWare 与定量推理评测

ReSA/math_data/minerva_math/README.md 的全文只有两行,但信息量并不小:

MIT OpenCourseWare: - Solving Quantitative Reasoning Problems with Language Models. https://openreview.net/forum?id=IFXTZERXdM7

它点明了两件事:

  1. 数据出处:minerva_math的题目来自 MIT OpenCourseWare(MIT OCW),即麻省理工学院公开课程中真实布置的作业题与考题;
  2. 评测范式出处:评测方式沿用《Solving Quantitative Reasoning Problems with Language Models》(即 Google 的 Minerva 论文,发布于 OpenReview)中提出的定量推理评测设定——要求模型面对大学水平的数学、物理、化学、经济等学科题目,输出带有\boxed{}标记的最终答案。

因此,minerva_math在本仓库中是一份大学级跨学科定量推理(quantitative reasoning)基准,与 Gaokao2023En、OlympiadBench、AIME24、AMC23 等一起构成 ReSA 的长上下文数学推理评测矩阵。这一点可以从 ReSA/llm/eval_math.py 的默认评测列表得到印证:

data_names = "minerva_math,gaokao2023en,olympiadbench,aime24,amc23" # data_names = "gsm8k,math,svamp,asdiv,mawps,carp_en,tabmwp,minerva_math,gaokao2023en,olympiadbench,college_math,aime24,amc23"

在 ReSA/README.md 的数学推理任务性能对比表中,Minerva 列与 Gaokao2023En、OlympiadBench、AIME24、AMC23 并列,且在 R1-Qwen-Distill 1.5B / 7B 两个规模下均统计了 Dense、Sparse、ReSA 三种解码方式下的准确率与平均生成长度(1.5B 下 Avg Length 6390.8,7B 下 4018.7),是检验 ReSA 在超长推理链场景下保持近无损质量的关键数据集之一。

数据文件与字段结构:test.jsonl 逐行剖析

minerva_math目录下除 README 外只有一个数据文件:ReSA/math_data/minerva_math/test.jsonl,共 272 行(每条 JSON 一行)。每一行包含 4 个字段:

字段类型说明
problemstr题目文本,通常内嵌 LaTeX 公式(如$6.5 \mathrm{~m}$)
solutionstr官方参考答案,以 LaTeX 撰写,最终答案用\boxed{...}包裹
typestr题目来源课程,如Introduction to Astronomy (8.282J Spring 2006)
idxint样例编号,从 0 开始且与行序一致(已排序)

以下面这条真实样例(idx=0)为例:

{"problem": "Each of the two Magellan telescopes has a diameter of $6.5 \\mathrm{~m}$. In one configuration the effective focal length is $72 \\mathrm{~m}$. Find the diameter of the image of a planet (in $\\mathrm{cm}$ ) at this focus if the angular diameter of the planet at the time of the observation is $45^{\\prime \\prime}$.", "solution": "Start with:\n\\[\ns=\\alpha f \\text {, }\n\\]\nwhere $s$ is the diameter of the image, $f$ the focal length, and $\\alpha$ the angular diameter of the planet. For the values given in the problem:\n\\[\ns=\\frac{45}{3600} \\frac{\\pi}{180} 7200=\\boxed{1.6} \\mathrm{~cm}\n\\]", "type": "Introduction to Astronomy (8.282J Spring 2006)", "idx": 0}

课程分布

统计整个文件可得 272 条数据覆盖 9 门 MIT 课程(数字为条数):

  • Introduction to Solid State Chemistry (3.091 Fall 2010):97
  • Introduction to Astronomy (8.282J Spring 2006):53
  • Differential Equations (18.03 Spring 2010):48
  • Dynamics and Control (2.003 Spring 2005):26
  • Principles of Microeconomics (14.01 Fall 2011):18
  • Relativity (8.033 Fall 2006):11
  • Physical Chemistry (5.61 Fall 2017):11
  • Ecology I (1.018J Fall 2009):5
  • Information and Entropy (6.050J Spring 2008):3

从样本内容看,这些题目涵盖天文(望远镜分辨率、视差、星等、多普勒红移)、物理(玻尔模型、斯涅尔定律、流体静力学平衡)、微分方程、微观经济学、信息熵等学科,数学符号密度高、推导链条长,且不少题目包含 "Preamble/Subproblem" 多步结构,天然适合检验模型在长序列生成 + 数学推导条件下的推理质量。

答案格式特点

272 条solution全部包含\boxed{...}包裹的最终答案,个别条目还带The final answer is ... I hope it is correct.的表述(如 idx=5 中的\boxed{np.arcsin(10/13)})。这一格式约定直接影响评测代码的答案抽取逻辑(见下文),也是 Minerva 论文所定义的"答案必须放入 boxed"范式的直接体现。

评测管线:minerva_math 如何被 ReSA 消费

1. 数据加载与对齐

评测入口 ReSA/llm/eval_math.py 通过load_data(data_name, 'test', '../math_data')读取ReSA/math_data/{data_name}/test.jsonl,并做两件事:

  • 若首条样例缺少idx字段,则按行序补写idx;
  • 按idx排序去重。

随后prepare_data按--limit截取样本(本地脚本默认 512),并将输出文件命名为{checkpoint_dir 的 basename}_{save_feature}.jsonl,例如DeepSeek-R1-Distill-Qwen-1.5B_resa_0.1_32_local.jsonl,存放在{output_folder}/{data_name}/下。

2. 题目解析与 Ground Truth 抽取

ReSA/llm/utils/math_utils.py 的parse_question对minerva_math走通用分支:按question → problem → Question → input的优先级取出题干文本。

Ground Truth 的抽取在 ReSA/llm/utils/math_utils.py 的parse_ground_truth中完成,minerva_math与math走同一分支:

if data_name in ["math", "minerva_math"]: gt_cot = example["solution"] gt_ans = extract_answer(gt_cot, data_name)

即把solution字段作为官方 CoT(gt_cot),并调用extract_answer从其中提取\boxed{}内的答案作为标准答案(gt)。

3. Prompt 构造:R1 模板与 few-shot 示例

ReSA/llm/utils/math_utils.py 的construct_prompt依据args.prompt_type选择模板。由于 ReSA/llm/eval_math.py 检测到 DeepSeek-R1-Distill 检查点时会强制prompt_type = 'r1',实际生效的是 ReSA/llm/utils/math_utils.py 中的模板:

"r1": ( "Please reason step by step, and put your final answer within \\boxed{{}}. {input}\n\n<think>\n", "{output}", "\n\n", ),

当num_shots > 0时,load_prompt会从 ReSA/llm/utils/math_utils.py 定义的examples["minerva_math"]中取前 N 条官方示例拼入 prompt(默认num_shots = 0,即 zero-shot 直答)。

4. 模型生成与 ReSA 稀疏解码接入

生成阶段 ReSA/llm/eval_math.py 先调用create_kv_cache(来自 ReSA/llm/arch/model.py)创建 KV 缓存,再通过model._model_generate执行生成,并把 ReSA 的两个核心参数传入生成过程:

  • --resa_rec_freq(整流频率):每隔多少步做一次 dense forward 刷新 KV cache;
  • --resa_sparse_ratio(稀疏比例):block-sparse 注意力保留的 KV 比例。

这是 ReSA 论文方法(block-sparse 注意力 + 周期性 dense 整流)在数学评测上的实际落地参数。

5. 答案抽取与归一化:处理 boxed 与特殊格式

模型输出在 ReSA/llm/utils/math_utils.py 的extract_answer中按优先级抽取答案,其中针对 Minerva 风格的专门处理包括:

  • 命中"final answer is $...$. I hope"模式时,截取$...$内的内容(ReSA/llm/utils/math_utils.py);
  • 命中boxed时,用栈匹配取出\boxed{...}花括号内的内容;
  • 兜底策略:取文本中最后一个数字。

抽取结果随后交给strip_string做 LaTeX 字符串归一化。值得注意的是,ReSA/llm/utils/math_utils.py 中STRIP_EXCEPTIONS = ["carp_en", "minerva_math"],即minerva_math在归一化时跳过单位(unit)剥离——因为天文/物理类答案本身携带单位语义(如cm、ergs/s),不能当作噪声删除。同时math_equal支持数值等值(含容差is_close)与符号表达式等值(通过 sympy/latex2sympy 体系)两种判定路径,保证1.6与\frac{45}{3600}\frac{\pi}{180}7200这类等价答案能正确判对。

实战:在本地复现 Minerva 数据集的 ReSA 评测

步骤 1:准备预训练模型

参考 ReSA/README.md 的指引,用 huggingface-cli 下载模型到本地目录:

huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B \ --local-dir /path/to/pretrained/ \ --local-dir-use-symlinks False

步骤 2:运行数学评测

ReSA/scripts/local_eval_math.sh 提供了开箱即用的评测脚本,其中已包含 minerva_math 所需的全部参数:

export TORCH_IND_SYM_NODE_NO_SYMPY=1 cd llm/ torchrun --nproc_per_node=1 --nnodes=1 --master_port=29388 eval.py \ --limit 512 --batch_size 4 \ --checkpoint_dir /path/to/DeepSeek-R1-Distill-Qwen-1.5B --downstream_task math \ --save_feature resa_0.1_32 \ --output_folder /path/to/result/ \ --resa_rec_freq 32 \ --resa_sparse_ratio 0.1

需要替换的参数:

  • --checkpoint_dir:改为实际预训练模型路径;
  • --output_folder:改为结果保存目录;
  • --save_feature:本次实验的配置标识,会拼入输出文件名(如..._resa_0.1_32_local.jsonl);
  • --resa_rec_freq/--resa_sparse_ratio:ReSA 整流频率与稀疏比例,可按需调整。

脚本执行后会在{output_folder}/minerva_math/下生成按 idx 命名的结果文件。评测过程中 ReSA/llm/eval_math.py 会以save_freq=128为粒度分批生成并增量落盘,中断后可自动续跑(跳过已完成的 idx)。由于minerva_math的 R1 生成长度设为 16384,且 ReSA/llm/eval_math.py 将max_seq_len上限设为 32768,这正好覆盖了 ReSA README 表格中观测到的 6390.8 平均生成长度,也解释了为什么该数据集适合检验 ReSA 在超长解码场景下的近无损能力。

步骤 3:收集并统计结果

先安装评测依赖:

bash scripts/setup_math_eval.sh

然后运行结果收集脚本 ReSA/scripts/math_eval_result.sh:

bash scripts/math_eval_result.sh /path/to/output/ file_name

其中file_name为结果文件名(不含目录),例如DeepSeek-R1-Distill-Qwen-1.5B_resa_0.1_32_local.jsonl。脚本内部对minerva_math等任务逐个调用 ReSA/scripts/math_eval_result_length.py,该脚本会:

  1. 用LlamaTokenizerFast统计每条回答的 token 长度;
  2. 以 2048 为阈值分别统计短/长回答的准确率与条数;
  3. 调用 ReSA/scripts/math_utils.py 中的evaluate对每条样本计算 acc;
  4. 输出各任务总 acc、阈值分段 acc 与平均长度,便于与 ReSA README 中 Dense/Sparse/ReSA 三列进行对比。

至此,"数据 → 生成 → 抽取 → 统计" 的闭环全部打通,你可以用同一套流程复现 ReSA 论文中 Minerva 一列的数值,或在调整--resa_rec_freq、--resa_sparse_ratio后对比 ReSA 配置对大学级定量推理准确率的影响。

小结

minerva_math是 ReSA 数学评测矩阵中唯一以 MIT OpenCourseWare 真实考题为来源的跨学科大学级数据集,其 272 条样本覆盖 9 门课程、全部携带\boxed{}答案标记,并通过 ReSA/llm/eval_math.py 与 ReSA/llm/utils/math_utils.py 中的解析、prompt 构造、答案抽取与归一化逻辑无缝接入 ReSA 稀疏解码评测。理解这份数据集的字段约定与消费路径,是复现 ReSA 数学推理实验、进一步调优整流频率与稀疏比例的基础。

  • 人工智能
  • 大模型
  • 预训练
  • 深度学习
  • NLP
  • 计算机视觉
  • 多模态
  • 语音

【免费下载链接】unilm

Large-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities

项目地址:https://gitcode.com/GitHub_Trending/un/unilm
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询