FreshBench:我把 2026 高考数学做成了开源评测基准
这两天我找了一圈,发现一个挺有意思的空白:2026 高考数学试卷已经有很多讨论,但几乎没人把它整理成可复用、可校验、可跑评测的数据集。
所以我顺手做了一个开源项目:
FreshBench: A Time-Stamped Benchmark for Newly Released Tasks
首个数据集是:FreshBench-GaokaoMath-2026。
它不是单纯把题目复制进 Markdown,而是把“刚发布的新题”整理成一个适合大模型和 Agent 评测的基准:有原始 Markdown,有结构化 JSONL,有 JSON Schema,有校验脚本,也有简单的预测评估脚本。
为什么要做这个?
现在做大模型数学评测,最大的问题之一不是“题够不够难”,而是:
这些题模型到底有没有提前见过?
很多经典 Benchmark 已经在互联网上存在多年。模型训练语料、指令微调数据、网页缓存、代码仓库、题库站点,都可能把题目和答案混进去。最后你看到的高分,可能既有推理能力,也有记忆能力,还可能有数据污染。
高考数学这种刚公开、发布时间明确、社会关注度高的题目,正好适合做一类“新题评测”:
- 发布时间相对清楚;
- 题目有标准答案和解题过程;
- 难度覆盖基础题、综合题、证明题;
- 模型如果能稳定解出,至少更接近真实推理;
- 如果不同时间窗口测出来差异明显,也能观察模型对新题的吸收速度。
这就是 FreshBench 想做的事:把“新近发布、来源可追溯、整理时间明确”的任务,变成可持续更新的评测基准。
FreshBench-GaokaoMath-2026 现在有什么?
当前项目里已经整理了一个初始版本:
- 19 道 2026 高考数学题目;
- 19 份对应答案 / 解答记录;
- 题型覆盖单选、多选、填空、解答、计算、证明;
- 每道题保留题号、题型、答案、来源、采集时间、核验状态和标签;
- 数据集状态明确标记为
draft_unverified,不伪装成最终权威版; - 提供 JSON Schema 校验,避免字段混乱和 ID 冲突;
- 提供预测文件格式和简易评估脚本,方便模型跑分。
题型分布大致如下:
- 单选题:8 道
- 多选题:3 道
- 填空题:3 道
- 解答题:1 道
- 计算题:2 道
- 证明题:2 道
项目结构是这样的:
freshbench/
data/gaokao_math_2026/
metadata.json
problems.jsonl
solutions.jsonl
assets/
raw-data/
2026-gaokao-math.md
2026-gaokao-math-questions.md
schemas/
problem.schema.json
solution.schema.json
scripts/
validate_dataset.py
evaluate_predictions.py
examples/
sample_predictions.jsonl
DATASET_CARD.md
CITATION.cff
我比较在意的一点是:它不是“发一份题目”,而是“发一个基准项目”。
题面只是第一步,更重要的是后面的格式约束、版本记录、来源核验、预测提交和评估流程。
数据格式:让模型评测可以真正跑起来
每道题会被整理成一条 JSONL 记录。核心字段包括:
id:稳定题目 ID;dataset:数据集名称;exam/year/subject:考试元信息;question_number:题号;question_type:题型;question:题面;options:选项;answer:标准答案;source:来源信息;collected_at:采集时间;verification_status:核验状态;tags:标签。
模型预测文件也很简单,每行一条:
{"id":"fb-gm2026-national-unified-001","answer":"A","reasoning":"可选的模型推理过程。"}
然后可以用项目里的脚本做基础评估:
git clone https://github.com/ranxi2001/freshbench.git
cd freshbench
python -m pip install -e .
python scripts/validate_dataset.py data/gaokao_math_2026
python scripts/evaluate_predictions.py \
--problems data/gaokao_math_2026/problems.jsonl \
--predictions examples/sample_predictions.jsonl
如果安装了 jsonschema,校验脚本会执行完整 JSON Schema 校验;没安装时,也会检查 JSONL 解析、必填字段、重复 ID 和解答引用关系。
这听起来不复杂,但对一个 Benchmark 来说很关键:格式稳定,别人才能复现实验;字段明确,后续才能持续追加数据。
我希望它解决的不是“刷分”,而是“新题能力观测”
FreshBench 的定位不是再造一个很大的数学题库。
我更想把它做成一个“时间戳基准”:每一批题都有明确发布时间、整理时间、来源核验状态和版本记录。这样它能服务几个具体问题:
flowchart TD
A[新近公开题目] --> B[人工整理与结构化]
B --> C[记录来源和采集时间]
C --> D[Schema 校验]
D --> E[模型 / Agent 作答]
E --> F[答案评估与错误分析]
F --> G[观察真实新题推理能力]
比如:
- 同一个模型,在题目刚发布后表现如何?
- 过几天、几周后再测,分数是否明显提高?
- 联网 Agent 和纯 LLM 的差距在哪里?
- 模型是能完整推理,还是只会猜选择题?
- 不同模型在证明题、计算题、填空题上的错误模式有什么差异?
这些问题,比单纯比较总分更有意思。
尤其是 Agent 评测。高考数学题不只是答案匹配,还涉及读题、图形理解、公式推导、工具使用、长链路计算和自我校验。它天然适合观察 Agent 在真实任务里的失败点。
但我也不想把它包装得太满
当前版本仍然是初始草稿,项目里已经明确写了:draft_unverified。
这意味着:
- 题面和答案还需要逐题核对;
- 公开来源 URL 还需要补充;
- 部分图形题需要更细致地管理图片资源;
- 不同公开来源之间可能存在排版、答案记法或勘误差异;
- 原始考试材料的版权和再分发边界需要尊重。
我不想把一个还在核验中的数据集说成“权威版本”。这对评测没有好处,对开源协作也没有好处。
所以 FreshBench 里每条题目都有 verification_status,当前统一标记为 needs_public_source_verification。这不是缺点,而是我希望项目保持透明的地方:可信评测首先要承认数据还需要被核验。
欢迎一起把它补完整
如果你也关心大模型数学推理、Agent 评测、数据污染、时间戳 Benchmark,欢迎来一起完善:
https://github.com/ranxi2001/freshbench
目前最需要的贡献包括:
- 补充可公开访问、可核验的题目来源;
- 校对题面、公式、选项和答案;
- 修正解析过程里的瑕疵;
- 补充几何图、函数图、统计图等资源文件;
- 跑不同模型的预测结果;
- 提交更好的评估脚本,比如支持数值答案、LaTeX 等价、步骤评分;
- 扩展更多“刚发布”的任务数据集。
我理想中的 FreshBench,不是一个一次性项目,而是一套可以持续增长的新题评测框架:
graph LR
A[高考数学] --> F[FreshBench]
B[竞赛题] --> F
C[新论文任务] --> F
D[真实工具任务] --> F
E[多模态新题] --> F
F --> G[时间戳评测]
F --> H[Agent 能力分析]
F --> I[数据污染研究]
2026 高考数学只是第一步。
结语
大模型评测不缺榜单,但缺少足够干净、足够新、足够可追溯的任务。
FreshBench 想做的事情很朴素:把新发布的真实题目整理好,把时间戳和来源记录清楚,把格式做成别人能复现的样子。
如果这个项目对你有用,欢迎 Star、提 Issue、交 PR,或者直接拿去测你关心的模型。
项目地址:
https://github.com/ranxi2001/freshbench
也欢迎把你的模型结果发出来。我们一起看看,2026 年的新高考数学题,今天的大模型到底会不会做。
因子的半衰期:量化策略真正的慢性失效