为什么重要
GSM-Symbolic 是近两年对「数学刷分」最有杀伤力的一次证伪。它的做法很朴素:把 GSM8K 的小学应用题抽象成符号模板,然后只改数字、实体名、无关子句,批量生成同一道题的许多版本。
结论是:同一道题换个数字,模型准确率可以掉 几个百分点到十几个百分点;而在题面里塞一句跟解题无关的话(比如「小红还养了一只狗」),性能下降幅度更大。这说明大量模型做的不是「读题 → 建模 → 求解」,而是在匹配训练时见过的题面模式——数字一变、噪声一加,模式就断了。
对做数据的人,这条的意义在于:数学题的数据增强不能只做「同题换数」,那样做出来的题会让模型更依赖表面模式而不是推理结构。真正有效的增强应该改变问题的结构(增删约束、改变求解路径),这正是 GSM-Symbolic 变体子集在做的事。
构建方式
- 从 GSM8K 测试集中人工挑选题目,抽象成带占位符的符号模板(变量、常量、运算关系)
- 对每个模板套多组不同的数字与实体名,生成成百上千道同构题
- 构造三个变体子集:
- GSM-Symbolic:标准同构题,只改数字与名字
- GSM-Symbolic-Minus:删掉一个求解必需的条件,正确的行为应该是「指出信息不足」
- GSM-NoOp:在题面里插入一句与求解无关的子句
- 用答案精确匹配评分,不依赖中间步骤
任务示例
原题(GSM8K 风格):
小明有 5 个苹果,又买了 3 个,送给小红 2 个,还剩几个?
GSM-Symbolic 变体(只换数字/实体):
图书馆原有 47 本书,新购入 19 本,借出 28 本,还剩几本?
GSM-NoOp 变体(注入无关信息):
图书馆原有 47 本书,馆长养了 3 只猫。新购入 19 本,借出 28 本,还剩几本?
正确模型应该在两种变体上都给出 38;在 GSM-Symbolic-Minus 这类缺条件的题上应当拒绝作答而非硬算。
最新进展
- 论文给出的核心观察是:模型在 GSM-Symbolic 上的表现与 GSM8K 存在系统性落差,且题面噪声带来的下降远大于数字变化
- 「缺条件时应拒答」这一条被后来的工作接过去,发展成一类专门的「信息不足检测」评测
- 该模板化方法也被复用到其他数据集上,成为检验「刷分是否真实」的通用手段
关键发现
- 性能对数字敏感:同一结构换数字就有波动,说明推理链不稳定
- 噪声敏感度高于数字敏感度:塞一句无关话比换数字杀伤更大
- 缺条件不拒答:模型倾向于硬编一个答案,而不是承认信息不足——这是幻觉的一种结构性来源
- 启示:数学训练数据应做「结构性扰动增强」,而不是单纯的同义改写或换数复制