Concept animation

Hero diagram

Paper: 2603.02208 Authors: Valentin Lacombe, Valentin Quesnel, Damien Sileo Categories: cs.CL

The Gap

Language models trained on web text learn patterns but struggle with formal reasoning. Prior work tried synthetic data—GSM8K-style math problems, simple logic puzzles, code exercises—but these approaches hit a wall. They either use fixed templates (so models memorize patterns instead of learning reasoning) or generate from narrow distributions (so the data doesn’t cover the reasoning space models need). Projects like DeepMind’s FunSearch and OpenAI’s process supervision showed that verifiable reasoning data helps, but nobody built a unified, scalable generator that spans multiple formal domains with continuous difficulty control and built-in verification.

Problem: LMs reason poorly on formal tasks
   |
   v
Assumption: Verifiable symbolic data during pre-training can teach reasoning
   |
   v
Method: Procedural generator across 5 domains + external solvers + difficulty knobs
   |
   v
Evidence: Pre-training mix improves reasoning, preserves language quality
   |
   v
Conclusion: Scalable symbolic data generation is viable for reasoning-enhanced LMs

The Increment

One sentence: Before, you trained on web text and hoped reasoning emerged; now, you can inject verifiable symbolic reasoning tasks directly into pre-training at scale.

Core Mechanism

Reasoning Core is a procedural generator that creates problems across five formal domains: PDDL planning (move blocks in randomized worlds), first-order logic with equality (prove theorems), context-free grammar tasks (parse or generate strings), causal reasoning (infer from Bayesian networks), and equation systems (solve for variables). Each domain has a randomization engine that samples problem instances, a difficulty parameter you can dial up or down, and an external solver (off-the-shelf tools like Fast Downward for PDDL, Z3 for logic) that both verifies correctness and optionally produces step-by-step reasoning traces.

The data flow is simple: you specify a domain, difficulty level, and whether you want reasoning traces. The generator samples a random problem instance, calls the solver to get the solution and optionally the derivation steps, then formats everything as text. The output is a training example with input (problem statement), output (solution), and optionally intermediate steps (the solver’s reasoning chain). You can generate millions of examples, mix them into your pre-training corpus, and the model learns from ground-truth reasoning instead of just pattern-matching web text.

   Domain Spec + Difficulty
          |
          v
   [ Randomization Engine ]
          |
          v
   Problem Instance -----> [ External Solver ]
          |                       |
          v                       v
   Problem Text            Solution + Trace
          |                       |
          +-------+-------+-------+
                  |
                  v
          Training Example
       (input, output, steps)

Think of Reasoning Core as a flight simulator for formal reasoning. A pilot doesn’t learn by reading flight manuals alone—they need hours in a simulator that generates diverse, realistic scenarios with verifiable outcomes. Here, the randomization engine is the scenario generator (weather conditions, aircraft failures), the difficulty knob is the training progression (start with clear skies, advance to storms), the external solver is the physics engine that enforces real-world constraints, and the reasoning traces are the instructor’s commentary showing correct decision sequences. The model is the trainee pilot, and pre-training is flight school. Instead of hoping the pilot figures out aerodynamics from reading Wikipedia, you put them in the simulator from day one.

Key Concepts

  • Procedural generation with verification: Most synthetic data generators use templates—fill-in-the-blank patterns that produce superficially varied but structurally identical problems. Reasoning Core instead uses randomization engines that sample from the actual problem space (random graph structures for planning, random formulas for logic). Each generated problem is then verified by an external solver, so you know the answer is correct and the problem is solvable. This is like the difference between a multiple-choice test with shuffled options (template) versus generating entirely new math problems and checking them with a calculator (procedural + verification). The former teaches pattern recognition; the latter teaches problem-solving.

  • Continuous difficulty control: Traditional datasets have discrete difficulty levels or none at all. Reasoning Core lets you dial a continuous parameter—for PDDL, it’s the number of objects and goal complexity; for logic, it’s formula depth and quantifier nesting. This enables curriculum learning: start the model on easy problems during early pre-training, gradually increase difficulty as it improves. Imagine teaching a child arithmetic: you don’t jump from 2+2 to calculus. You increase problem complexity as their skills develop. The difficulty knob automates this progression.

  • Solver-derived reasoning traces: When you solve a logic problem by hand, you write intermediate steps: “assume X, apply rule Y, derive Z.” Most training data lacks this. Reasoning Core optionally includes the solver’s derivation—the actual proof steps, planning actions, or equation manipulations. This is like showing your work in math class. The model learns not just what the answer is, but how to get there. During pre-training, this means the model sees correct reasoning chains from the start, not just final answers. During RL fine-tuning, these traces become verifiable reward signals: did the model follow valid reasoning steps?

Framework Shift

Before (mainstream approach):        After (this paper):

  Web Text Corpus                     Web Text + Symbolic Data
        |                                      |
        v                                      v
  [ Pre-training ]                    [ Pre-training ]
        |                                      |
        v                                      v
  General LM                          Reasoning-Enhanced LM
        |                                      |
        v                                      v
  Fine-tune on reasoning tasks        Fine-tune on reasoning tasks
   (hope it works)                     (already has foundation)

  Data: Fixed, unverified             Data: Generated, verified
  Reasoning: Emergent (maybe)         Reasoning: Explicit training
  Curriculum: None                    Curriculum: Difficulty control

From hoping reasoning emerges from web text to explicitly training it with verifiable symbolic data from the start, the core shift is making reasoning a first-class training objective rather than an accidental byproduct.

Expert Assessment

Problem choice: This is a real gap. The field has known for years that LMs struggle with formal reasoning, and recent work (chain-of-thought, process supervision, AlphaProof) confirms that verifiable reasoning data helps. But nobody built a unified, scalable generator before. The timing is right—models are big enough to benefit from this data, and the infrastructure (external solvers, curriculum learning) is mature. This sits squarely in the “reasoning for LMs” trajectory that’s been heating up since GPT-3.

Method maturity: This is engineering more than insight. The core idea—use procedural generation + external solvers—is straightforward. The contribution is execution: building a clean interface across five diverse domains, making it scalable, and showing it works. There’s no deep algorithmic novelty, but that’s fine. Sometimes the field needs good infrastructure. The difficulty control and reasoning traces are nice touches, but not groundbreaking. A simpler approach might just generate problems without traces and rely on RL, but the authors’ choice to include supervised traces from the start is defensible.

Experimental integrity: The experiments are solid but not exhaustive. They show pre-training mix improves reasoning on held-out symbolic tasks and doesn’t hurt language modeling. Good. They also show GPT-4 struggles on these tasks, which validates difficulty. But I’d want to see more: ablations on trace vs no-trace, curriculum vs random difficulty, and transfer to non-symbolic reasoning (does PDDL training help with real-world planning?). The baselines are fair—they compare to standard pre-training—but there’s no comparison to other synthetic data generators like those used in Minerva or WizardLM. The numbers look reasonable, no obvious red flags, but the evaluation is narrow.

Writing quality: The paper is clear and well-organized, but the related work section is thin. They mention FunSearch and process supervision but don’t deeply engage with the synthetic data generation literature (e.g., Textbooks Are All You Need, Self-Instruct). The method section is good, but the results section could use more analysis—why does mixing symbolic data preserve language quality? What’s the optimal mix ratio? The discussion of limitations is honest (they acknowledge transfer to real-world reasoning is unclear), which I appreciate. If they rewrote the related work to position this more carefully against prior synthetic data efforts, the paper would be stronger.

Verdict: weak accept — Solid infrastructure contribution with clear experiments, but lacks deep insight or comprehensive evaluation to be a strong accept.

Takeaways

If you’re building training data for reasoning-heavy models, steal these ideas:

  1. Pair generation with verification: Don’t just generate synthetic problems—verify them with external tools. This ensures correctness and lets you filter out unsolvable or trivial instances. Use Z3 for logic, SAT solvers for constraints, symbolic math libraries for equations. The verification step is what separates useful synthetic data from noise.

  2. Continuous difficulty as a hyperparameter: Instead of fixed easy/medium/hard buckets, parameterize problem complexity (graph size, formula depth, constraint count) and treat it as a curriculum knob. Start low during early training, ramp up as loss decreases. This is applicable beyond symbolic reasoning—imagine difficulty-controlled code generation (function complexity) or reading comprehension (passage length, inference depth).

  3. Reasoning traces as intermediate supervision: If your domain has a solver or verifier that produces step-by-step derivations, include them in training data. This gives the model explicit examples of valid reasoning chains, not just input-output pairs. Even if you’re doing RL later, having supervised traces early helps bootstrap. This applies to any task where you can programmatically generate correct reasoning steps: proofs, derivations, planning sequences, debugging traces.

The broader lesson: verifiable synthetic data is underutilized. Most projects generate text and hope it’s useful. If your domain has formal structure, exploit it—generate problems, verify solutions, control difficulty, include reasoning steps. This paper shows it’s feasible at scale.

论文: 2603.02208 作者: Valentin Lacombe, Valentin Quesnel, Damien Sileo 分类: cs.CL

缺口

在网络文本上训练的语言模型学会了模式,但在形式化推理上表现糟糕。 先前的工作尝试过合成数据——GSM8K风格的数学题、简单逻辑谜题、代码练习——但这些方法碰了壁。 它们要么使用固定模板(模型记住模式而非学习推理),要么从狭窄分布生成(数据覆盖不了模型需要的推理空间)。 DeepMind的FunSearch和OpenAI的过程监督等项目表明可验证推理数据有帮助,但没人构建过统一的、可扩展的生成器,能跨多个形式化领域、带连续难度控制和内置验证。

问题: 语言模型在形式化任务上推理能力差
   |
   v
假设: 预训练期间的可验证符号数据能教会推理
   |
   v
方法: 跨5个领域的程序化生成器 + 外部求解器 + 难度旋钮
   |
   v
证据: 预训练混合提升推理,保持语言质量
   |
   v
结论: 可扩展的符号数据生成对推理增强型语言模型可行

增量

一句话: 以前你在网络文本上训练并期待推理能力涌现; 现在你可以在预训练阶段大规模直接注入可验证的符号推理任务。

核心机制

Reasoning Core是一个程序化生成器,跨五个形式化领域创建问题:PDDL规划(在随机世界中移动方块)、带等式的一阶逻辑(证明定理)、上下文无关文法任务(解析或生成字符串)、因果推理(从贝叶斯网络推断)、方程组(求解变量)。 每个领域都有一个随机化引擎来采样问题实例,一个可以调高调低的难度参数,以及一个外部求解器(现成工具,如用于PDDL的Fast Downward、用于逻辑的Z3),既验证正确性又可选地生成逐步推理轨迹。

数据流很简单:你指定领域、难度级别、是否需要推理轨迹。 生成器采样一个随机问题实例,调用求解器获取解答和可选的推导步骤,然后将所有内容格式化为文本。 输出是一个训练样本,包含输入(问题陈述)、输出(解答)、可选的中间步骤(求解器的推理链)。 你可以生成数百万个样本,混入预训练语料库,模型从真实推理中学习,而不只是对网络文本做模式匹配。

   领域规格 + 难度
          |
          v
   [ 随机化引擎 ]
          |
          v
   问题实例 -----> [ 外部求解器 ]
          |                |
          v                v
   问题文本        解答 + 轨迹
          |                |
          +-------+--------+
                  |
                  v
          训练样本
    (输入, 输出, 步骤)

把Reasoning Core想象成形式化推理的飞行模拟器。 飞行员不能只靠读飞行手册学习——他们需要在模拟器中训练数小时,模拟器生成多样的、真实的场景并有可验证的结果。 这里,随机化引擎是场景生成器(天气状况、飞机故障),难度旋钮是训练进度(从晴空开始,进阶到暴风雨),外部求解器是强制执行现实世界约束的物理引擎,推理轨迹是教练的解说,展示正确的决策序列。 模型是受训飞行员,预训练是飞行学校。 与其期待飞行员从阅读维基百科中搞懂空气动力学,不如从第一天就把他们放进模拟器。

关键概念

  • 带验证的程序化生成: 大多数合成数据生成器使用模板——填空模式,产生表面多样但结构相同的问题。 Reasoning Core改用随机化引擎从实际问题空间采样(规划用随机图结构,逻辑用随机公式)。 每个生成的问题随后由外部求解器验证,所以你知道答案正确且问题可解。 这就像选择题打乱选项(模板)与生成全新数学题并用计算器检查(程序化+验证)的区别。 前者教模式识别; 后者教解决问题。

  • 连续难度控制: 传统数据集有离散难度级别或根本没有。 Reasoning Core让你调节一个连续参数——对PDDL是对象数量和目标复杂度; 对逻辑是公式深度和量词嵌套。 这支持课程学习:在早期预训练时让模型做简单问题,随着它进步逐渐增加难度。 想象教孩子算术:你不会从2+2跳到微积分。 你随着他们技能发展增加问题复杂度。 难度旋钮自动化了这个进程。

  • 求解器派生的推理轨迹: 当你手工解逻辑题时,你写中间步骤:“假设X,应用规则Y,推导Z。” 大多数训练数据缺这个。 Reasoning Core可选地包含求解器的推导——实际的证明步骤、规划动作或方程操作。 这就像数学课上展示你的解题过程。 模型不仅学到答案是什么,还学到如何得到答案。 在预训练期间,这意味着模型从一开始就看到正确的推理链,而不只是最终答案。 在强化学习微调期间,这些轨迹成为可验证的奖励信号:模型是否遵循了有效的推理步骤?

框架转变

之前(主流方法):                之后(本文方法):

  网络文本语料                    网络文本 + 符号数据
        |                                |
        v                                v
  [ 预训练 ]                        [ 预训练 ]
        |                                |
        v                                v
  通用语言模型                      推理增强型语言模型
        |                                |
        v                                v
  在推理任务上微调                  在推理任务上微调
   (希望有效)                        (已有基础)

  数据: 固定、未验证                数据: 生成、已验证
  推理: 涌现(也许)                  推理: 显式训练
  课程: 无                          课程: 难度控制

从期待推理从网络文本中涌现,到从一开始就用可验证符号数据显式训练推理,核心转变是让推理成为一等训练目标,而非意外副产品

专家评审

选题眼光: 这是真缺口。 该领域多年来都知道语言模型在形式化推理上挣扎,近期工作(思维链、过程监督、AlphaProof)证实可验证推理数据有帮助。 但之前没人构建过统一的、可扩展的生成器。 时机合适——模型已经大到能从这类数据中受益,基础设施(外部求解器、课程学习)已经成熟。 这正处于自GPT-3以来持续升温的”语言模型推理”轨迹上。

方法成熟度: 这更多是工程而非洞见。 核心想法——使用程序化生成+外部求解器——很直接。 贡献在于执行:跨五个不同领域构建干净接口,使其可扩展,并展示有效。 没有深刻的算法创新,但这没关系。 有时该领域需要的就是好基础设施。 难度控制和推理轨迹是不错的点缀,但不算突破性。 更简单的方法可能只生成问题不带轨迹并依赖强化学习,但作者选择从一开始就包含监督轨迹是站得住脚的。

实验诚意: 实验扎实但不够详尽。 他们展示了预训练混合在保留符号任务上提升推理且不损害语言建模。 很好。 他们还展示GPT-4在这些任务上挣扎,验证了难度。 但我想看更多:带轨迹vs不带轨迹的消融、课程vs随机难度、迁移到非符号推理(PDDL训练是否帮助现实世界规划?)。 基线公平——他们与标准预训练比较——但没有与其他合成数据生成器(如Minerva或WizardLM中使用的)比较。 数字看起来合理,没有明显危险信号,但评估范围窄。

写作功力: 论文清晰且组织良好,但相关工作部分单薄。 他们提到FunSearch和过程监督,但没有深入讨论合成数据生成文献(如Textbooks Are All You Need、Self-Instruct)。 方法部分不错,但结果部分需要更多分析——为什么混合符号数据保持语言质量? 最优混合比例是多少? 对局限性的讨论是诚实的(他们承认迁移到现实世界推理尚不清楚),我欣赏这点。 如果他们重写相关工作,更仔细地将此工作定位于先前的合成数据努力,论文会更强。

判决: 弱接收 — 扎实的基础设施贡献,实验清晰,但缺乏深刻洞见或全面评估,达不到强接收。

要点总结

如果你在为推理密集型模型构建训练数据,偷走这些想法:

  1. 将生成与验证配对: 不要只生成合成问题——用外部工具验证它们。 这确保正确性并让你过滤掉无解或平凡的实例。 对逻辑用Z3,对约束用SAT求解器,对方程用符号数学库。 验证步骤是将有用合成数据与噪声区分开的关键。

  2. 连续难度作为超参数: 与其固定的简单/中等/困难桶,不如参数化问题复杂度(图大小、公式深度、约束数量)并将其视为课程旋钮。 在早期训练时从低开始,随着损失下降而提升。 这适用于符号推理之外——想象难度可控的代码生成(函数复杂度)或阅读理解(段落长度、推理深度)。

  3. 推理轨迹作为中间监督: 如果你的领域有求解器或验证器能产生逐步推导,将它们包含在训练数据中。 这给模型提供有效推理链的显式示例,而不只是输入-输出对。 即使你后续做强化学习,早期有监督轨迹有助于引导。 这适用于任何你能程序化生成正确推理步骤的任务:证明、推导、规划序列、调试轨迹。

更广泛的教训:可验证合成数据未被充分利用。 大多数项目生成文本并希望它有用。 如果你的领域有形式化结构,利用它——生成问题、验证解答、控制难度、包含推理步骤。 这篇论文表明这在规模上是可行的。