跳转至

FindStatBench: Evaluating Large Language Models on Combinatorial Code Synthesis

会议: NeurIPS 2026
arXiv: 2607.18260
OpenReview: https://openreview.net/forum?id=9ih6d3ZYp4
领域: LLM评测
关键词: 大语言模型评测, 代码生成, 组合数学, 程序归纳, 执行基准

一句话总结

针对现有代码评测套件缺乏严格离散数学结构归纳测试的空白,本文基于 FindStat 构建了包含 2,329 个任务和 552 万隐藏实例的执行基准 FindStatBench,评测揭示出开源与闭源前沿系统在此任务上高度收敛,且示例过多反而会破坏模型对经典双射实现的知识调用。

研究背景与动机

基于执行的代码生成基准(如 HumanEval、MBPP、APPS 与 LiveCodeBench)在很大程度上主导了当代大语言模型的代码能力评测,其核心关注面试编程题、通用库调用、算法竞赛与防数据污染。与此同时,MATH 和 miniF2F 等数学推理基准主要侧重自然语言链式推导与形式化定理证明。然而,这两类基准均未触及一个兼具数学严密性与精确执行要求的关键互补领域:在离散组合对象(如置换、Dyck 路径、偏序集、杨表和图等)上,仅依据形式化数学描述与极少输入输出示例,编写简短而严格等价的离散映射程序。

在组合数学规则归纳场景下,传统的评测方式存在明显短板。以往很多基准只要模型生成一段语法正确且在两三个测试样例上碰巧通过的启发式代码即可得分,无法甄别模型到底是在浅层拟合输入输出,还是真正诱导出了跨无限组合空间严格保真的符号规则。这种评测维度的缺失,导致学术界无法准确评估前沿大语言模型在严谨离散符号空间内的外推与规则归纳能力。

为填补这一空白,本文基于经典的离散组合数学数据库 FindStat 构建了闭卷执行评测基准 FindStatBench。核心 idea:将离散数学知识库 FindStat 中的统计量与保结构映射转化为带沙箱判题 harness 的独立代码生成任务,通过百万级隐藏组合对象实例的精确执行比对,全面隔离模型代码表象与深层符号程序归纳能力。

方法详解

整体框架

FindStatBench 构建于静态 FindStat 数据库之上,经过分布式爬取、结构化解析、去标识化提示词构建与沙箱执行 harness 组装,将数千个组合数学页面标准化为两类可执行任务家族。评测全程采用严格闭卷单轮协议:每个任务向模型呈现数学定义和至多 5 个公开示例,模型必须在无网络检索、无外部工具、无即时执行反馈、无多数投票的约束下,直接输出定义了 solve(obj) 的纯 Python 函数代码。评测系统将模型代码置于无网络、限制内存与执行时限的隔离子进程沙箱中,在海量隐藏组合对象上运行并进行精确值比对。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["FindStat 静态知识库<br/>统计量与映射数据页面"] --> B["数据清洗与去标识化<br/>构建 Task Bundles"]
    B --> C["提示词生成与示例切分<br/>至多5个公开示例 + 隐藏对象池"]
    C --> D["单轮闭卷代码生成<br/>输出独立 solve(obj) 函数"]
    D --> E["轻量 AST 审计<br/>防作弊检测与语法检查"]
    E --> F["沙箱严格执行比对<br/>整数一致性 / 规范形对象匹配"]

关键设计

1. 统计量与映射双任务家族:涵盖离散标量与保结构映射合成

针对组合对象变换的多样性,基准设立了两大可执行任务家族。第一类为统计量合成(Statistic Synthesis,对象 \(\to\) 整数),模型接收集合名称、数据编码规范、文字数学定义及公开示例,输出返回整数的 solve(obj) 函数;第二类为映射合成(Map Synthesis,对象 \(\to\) 对象),在输入描述中额外注入定义域、陪域元数据及结构属性(如单射性、分次保序性),要求模型计算映射后的目标对象并以规范化字符串输出。两类任务共享相同的标准调用接口与沙箱执行测试集,全面考察从离散数值度量到结构化拓扑变形的归纳能力。

2. 规模化隐藏实例与沙箱判题机制:防拟合作弊与严格真值校验

为彻底避免模型通过硬编码输入输出字典或记忆公开样例蒙混过关,基准强制要求每个入选任务至少包含 10 个有效样本对,将约 30% 且至多 5 个样本公开作为提示词少样本演示,其余海量数据全部作为隐藏测试实例(全库共计 552 万隐藏实例)。评测执行器在安全隔离的子进程沙箱内运行模型代码,设定单个实例 2 秒超时、256 MB 内存上限,屏蔽文件系统与网络访问,并提供仅包含标准数学与迭代工具库(math, itertools, collections)的基础环境。在评分判定上,统计量要求数值绝对匹配,映射任务则引入规范化对比,有效防止伪算法渗透。

3. 轻量 AST 静态安全审计:防御硬编码查表与非法注入

在沙箱执行之前,基准内置轻量抽象语法树(AST)静态扫描流水线,专项审计生成代码中的作弊行为。AST 检查器会自动探测代码是否包含巨型字面量字典查找表(Large Literal Tables)、是否基于公开示例字符串硬编码分支匹配、是否存在异常高频的字符串模板拼接,以及是否试图导入 sys、os 或 socket 等违规系统模块。凡触发安全拦截的代码立即判定零分,从而确保评测纯粹反映算法逻辑推演与模型自身的符号归纳能力。

实验关键数据

主实验

论文对 4 款闭源商用模型(Claude Sonnet 4.6、GPT-5.4-mini、Claude Haiku 4.5、Gemini 2.5 Flash)与 7 款开源模型(涵盖 gpt-oss 系列、Qwen3 系列、DeepSeek-V3.1、Llama-3.3 等)在全量 2,329 个任务与 5.52M 隐藏实例上进行了严格零反馈基准评测。

模型 模型类型 任务准确率 (%) 实例准确率 (%) 统计量实例准确率 (%) 映射实例准确率 (%) 映射/统计比例
Claude Sonnet 4.6 闭源商用 49.29 56.04 65.82 50.79 0.77
GPT-5.4-mini 闭源商用 48.35 52.03 66.15 44.44 0.67
Claude Haiku 4.5 闭源商用 38.30 47.35 57.22 42.04 0.73
Gemini 2.5 Flash 闭源商用 32.33 39.51 46.97 35.50 0.76
gpt-oss-120b 开源权重 49.25 55.13 64.02 50.34 0.79
gpt-oss-20b 开源权重 43.84 51.27 57.89 47.71 0.82
Qwen3-235B-A22B-Instruct 开源权重 37.78 46.43 57.18 40.65 0.71
Qwen3-Coder-480B-A35B-Instruct 开源权重 34.82 39.90 53.04 32.84 0.62
DeepSeek-V3.1 开源权重 31.13 39.16 48.74 34.00 0.70
Llama-3.3-70B-Instruct-Turbo 开源权重 24.52 32.47 42.97 26.83 0.62
Qwen2.5-7B-Instruct-Turbo 开源权重 12.75 21.15 27.02 17.99 0.67

消融实验

论文在子集上系统研究了公开示例数量(\(n \in \{0, 1, 3, 5\}\))对归纳合成效果的影响,揭示出统计量任务与映射任务完全截然相反的演变趋势。

示例数配置 \(n\) 任务准确率 (%) 全局实例准确率 (%) 统计量实例准确率 (%) 映射实例准确率 (%) 说明
\(n = 0\) (零示例) 35.18 63.12 50.38 70.84 映射表现最佳,直接触发规范算法生成
\(n = 1\) 40.20 53.69 58.63 50.69 统计量提升显著,映射断崖下跌
\(n = 3\) 39.20 49.95 58.68 44.65 映射精度继续下降
\(n = 5\) (默认配置) 38.69 49.05 58.20 43.50 映射精度比零示例降低 27.34 pp

关键发现

  • 开源与闭源前沿收敛且成本逆转:最强开源模型 gpt-oss-120b(实例准确率 55.13%)与闭源顶流 Claude Sonnet 4.6(56.04%)差距不足 1 个百分点,且任务准确率基本持平(49.25% vs 49.29%)。但在批处理成本上,gpt-oss-120b 仅需 \(2.83,仅为 Sonnet 4.6(\)21.96)的八分之一。
  • 示例引发经典双射逆向退化:在经典命名的双射映射(如共轭划分、Foata 轮换分解)上,0 示例时模型能调出完美的典范数学算法实现(隐藏实例准确率 100%),而在给出 5 个复杂示例后,模型反而转入脆弱的从样例拟合模式,加入错误的切片与早退逻辑,导致实例准确率直接归零,甚至无法通过给定的公开样例。
  • 隐藏思维链预算吞噬代码输出:具有长推理能力的模型(如 gpt-oss 系列与 GPT-5.4-mini)在生成过程中常因隐式思维链占满 token 预算(触发 length 截断)而未能输出最终可执行代码。GPT-5.4-mini 在扩展至 6,400 token 预算重试后,挽回了 567 个任务的可执行程序。
  • 结构化维度的极端分化:集合划分(Set partitions)与二叉树(Binary trees)在所有模型上准确率均低于 6%,形成全行业通用的符号结构盲区;而平面划分(Plane partitions)与整数拆分则普遍高达 70%~96%。

亮点与洞察

  • 多模型 Oracle 上限与单模型采样等价性:11 个系统组成的联合最优 Oracle 仅比单个最优模型高出约 10 个百分点,而对单个中等模型(Qwen3-235B)进行 5 次独立采样(pass@5)便可斩获 +9.9 pp 的收益,达到与跨机构 11 模型联合同等的天花板,证明提升主要源于低概率幸运解的召回。
  • 单轮自修复显著提升开源表现:针对公开示例未通过的任务进行单轮错误反思与自修复,中端模型 Qwen3-235B 任务准确率提升约 5 pp;而在 gpt-oss-120b 上进行单轮自修复后,其实例准确率升至 59.05%,全面反超最强闭源模型 Claude Sonnet 4.6。
  • 领域通用模型优于代码微调模型:同属 Qwen3 家族,通用模型 Qwen3-235B 相比代码特化模型 Qwen3-Coder-480B 实例准确率高出 6.5 pp,证明组合符号归纳高度依赖通用离散数学推理底座,单纯代码语料注入反而削弱了抽象数学概念建模。

局限与展望

  • 评测协议局限于单轮闭卷生成:主基准坚持严格单轮无工具环境,未涵盖交互式代码调试器、REPL 循环、求解器辅助(如 Z3/SageMath)等现代程序合成常见范式。
  • 公开数学语料的潜在数据泄露风险:尽管去除了 FindStat 特定的 URL 和编号标识符,其背后的经典数学定义与 OEIS/FindStat 原始表述依然是公开网络语料的一部分,无法完全规避预训练阶段的记忆效应。
  • 映射对象规范形匹配可能存在保守误判:映射任务依赖规范形字符串完全一致判定,极少数数学上完全等价但输出格式非规范的对象可能被判题系统判为未通过。

相关工作与启发

  • vs HumanEval / MBPP: 后者主要考察通用 Python 语法、字符串处理与基础面试算法,而 FindStatBench 关注离散数学对象(图、偏序、分划)的精确符号性质与深层不变性变换,更具数学严密性。
  • vs LiveCodeBench / CodeContests: 后者偏向 ACM 竞赛型算法设计与数据结构优化,题干长且侧重渐近时空复杂度优化;FindStatBench 则着眼于短小、精炼且具有严格代数/组合意义的数学映射函数归纳。
  • vs MATH / miniF2F: 后者侧重自然语言链式证明或形式化交互式证明助手(Lean/Isabelle)代码,评测无法直接对离散输入执行海量实例化验证,FindStatBench 则提供了全自动百万级输入输出沙箱执行闭环。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次将专业组合数学数据库 FindStat 转化为百万实例规模的代码执行归纳基准,视角独特。
  • 实验充分度: ⭐⭐⭐⭐⭐ 覆盖 11 款主流闭源与开源前沿大模型,消融实验涵盖示例数、自修复、思维链预算与多模型采样上限。
  • 写作质量: ⭐⭐⭐⭐⭐ 论点极其鲜明,实验现象揭示深刻,对提示词退化与推理预算问题的剖析极具启发性。
  • 价值: ⭐⭐⭐⭐⭐ 为符号计算、AI for Math 以及代码生成大模型在严谨数学规则归纳维度的评估建立了标杆。