跳转至

Learning to Solve Complex Problems via Dataset Decomposition

会议: NeurIPS 2025
arXiv: 2602.20296
代码: 无
领域: LLM推理 / 数学推理
关键词: 数据集分解, 课程学习, 数学推理, 子问题生成, 技能图谱

一句话总结

提出Decomp方法,利用教师模型将复杂数学题按推理步骤递归分解为更简单的子问题,构建概念依赖图量化难度,再按从易到难的课程顺序训练学生模型——Qwen2.5-1.5B在MATH-500上达51.6%(超MuggleMath用147K数据的50.4%),Qwen3-4B在AIME2025仅用385样本达16.7%(超Qwen2.5-72B的15%)。

研究背景与动机

  1. 领域现状:训练小模型做数学推理的常见做法是在"问题+完整解答"的数据集上SFT。数据增强方法(MetaMath改写问题、MuggleMath多解答采样)可以扩充数据量。
  2. 现有痛点:(a)直接SFT不模拟人类"先学基础再学高级"的学习过程,小数据集容易过拟合(实验发现SFT on AIME2024甚至降低AIME2025性能);(b)传统课程学习仅在数据集内按难度排序,但数据集可能缺乏覆盖基础技能的简单例子;(c)数据增强通常只做同难度的改写,不产生显著更简单的子问题。
  3. 核心矛盾:复杂推理需要组合多个基础技能,但训练数据通常只包含完整的复杂问题,模型无法独立习得每个基础技能。
  4. 本文要解决什么:如何从复杂问题中自动生成覆盖各级难度的子问题,并量化难度以构建有效课程?
  5. 切入角度:利用多步推理解答的结构——每一步推理本身就是一个更简单的子问题,可递归分解。
  6. 核心idea:递归分解推理步骤→为每步生成独立子问题→构建概念依赖图量化难度→按从易到难训练。

方法详解

整体框架

输入:数学问题数据集 \(\mathcal{D}_{raw} = \{(q, cot, a)\}\)。Decomp分三步:(1)用教师模型(GPT-4o)递归分解每个问题为子问题树;(2)提取概念标签构建跨数据集的概念依赖图,量化每个子问题难度;(3)按难度分桶进行课程学习SFT。输出:通过课程训练的学生模型。

关键设计

  1. 递归问题分解(Recursive Problem Decomposition)
  2. 做什么:将复杂问题的每个推理步骤转化为独立的子问题,可递归应用。
  3. 核心思路:给定解答 \(cot\),让教师模型分割为 \(\leq k\) 个推理步骤 \([s_1, \ldots, s_k]\)。每步 \(s_i\) 提取概念标签 \(t_i\)(如"GCD"、"平方根"),生成独立子问题 \(q_i\),教师给出解答 \(cot_i\) 和答案 \(a_i\)。验证:让教师不看原题上下文再解一次,用符号验证器检查答案一致性。通过验证后对 \(cot_i\) 递归分解,直至达到最大深度 \(D\)
  4. 设计动机:每一步推理本身定义了一个更简单的问题。递归分解确保覆盖从最基础("3^3是多少?")到原始难度的完整技能谱。验证步骤确保生成的子问题有正确答案。

  5. 概念依赖图与难度量化

  6. 做什么:跨数据集构建概念间的前置关系图,量化每个子问题的难度。
  7. 核心思路:将所有子问题的概念标签组成有向无环图(DAG),如果概念 \(t_c\)\(t_p\) 的子问题的标签,则 \(t_p \rightarrow t_c\)。用嵌入聚类合并同义标签("GCD"="最大公约数")。难度分数 = \(\alpha_1 \cdot SC(s)\)(结构复杂度:子问题数量)\(+ \alpha_2 \cdot CD(s)\)(概念深度:标签在DAG中的深度)。
  8. 设计动机:只看推理步数不够("1+1+...+1"步骤多但概念简单),只看概念深度不够(同一概念可以有不同复杂度的应用)。双维度组合更准确。

  9. 课程学习训练

  10. 做什么:按难度从低到高分桶,依次训练。
  11. 核心思路:将分解后的数据集按难度分位数分为 \(K\) 个桶 \(\mathcal{D}'_1, \ldots, \mathcal{D}'_K\),模型从 \(\mathcal{D}'_1\) 开始训练到 \(\mathcal{D}'_K\),每阶段使用早停。总训练预算与baseline对齐(compute-matched)。
  12. 设计动机:相同数据下,课程顺序在AIME上相对随机顺序提升25.6%,说明训练顺序对小数据集学习效率至关重要。

训练策略

  • 学生模型:Qwen2.5-1.5B / Qwen3-4B-Base
  • 训练5 epochs,batch size 16,lr \(10^{-5}\),余弦退火
  • bfloat16 精度,AdamW优化器
  • 评估温度0(贪心解码)

实验关键数据

主实验

模型/方法 训练数据量 MATH-500 AIME2025
Qwen2.5-1.5B Base - 47.2 -
SFT (MATH full) 7500 47.6 -
SFT-MetaMATH-Aug 2638 37.2 -
SFT-MuggleMath 147787 50.4 -
Decomp (Ours) 4500 50.8 -
Decomp + Curriculum 4500 51.6 -
Qwen3-4B SFT (AIME24) 30 - 3.3
SFT-MetaMATH-Aug 114 - 4.4
Decomp + Curriculum 385 - 16.7
Qwen2.5-72B-Instruct - - 15.0

代码生成(HumanEval)

方法 pass@1
Qwen2.5-1.5B-Instruct Base 34.15
SFT 35.37
Decomp (Ours) 42.68

关键发现

  • 数据分解远优于同量级数据增强:Decomp用4500样本超过MuggleMath用147K样本(50.8 vs 50.4),说明"技能分解"比"数量堆积"更有效。
  • 课程顺序有显著影响:同样的分解数据,课程顺序在AIME上提升3.4%(25.6%相对提升),在MATH上提升0.8%。
  • 小模型可超大模型:Qwen3-4B+Decomp(16.7%)超越Qwen2.5-72B-Instruct(15.0%)在AIME2025上,仅用385样本。
  • 直接SFT可能降低性能:在AIME2024上SFT后在AIME2025上仅3.3%,低于基座模型10.0%——典型的小数据过拟合。
  • 方法可迁移到代码:在HumanEval上Decomp也有7.3%的绝对提升。

亮点与洞察

  • 推理步骤=子问题:简单但深刻的洞察——多步推理解答中的每一步本身就定义了一个更简单但有意义的独立问题。递归应用可以生成完整的技能梯度。
  • 概念依赖图的副产品价值:构建的DAG不仅用于难度量化,还可以作为数据集"地图"——了解覆盖了哪些技能、缺少哪些技能、不同数据集之间的关系。
  • 极端样本效率:385个分解样本在AIME2025上击败72B模型,证明了"质量>数量"和"结构化训练>暴力SFT"。

局限性 / 可改进方向

  • 依赖强教师模型(GPT-4o),分解质量受教师能力限制。
  • 验证步骤只检查最终答案一致性,不验证推理过程的正确性。
  • 概念标签的质量和聚类参数 \(\delta\) 需要调优。
  • 仅在数学和代码上验证,自然语言推理等领域的适用性未测试。
  • 课程阶段数 \(K\) 的选择是超参数,未做充分消融。

相关工作与启发

  • vs MetaMath: MetaMath做同难度改写(改述、逆向推理),Decomp做跨难度分解,效果差距显著(37.2 vs 50.8 on MATH-500)。
  • vs S1: S1用1000个精选样本在32B模型上取得好结果,但不泛化到AIME2025(13.3);Decomp用4B模型+385样本达16.7。
  • vs TinyStories: 理念相似——合成简单数据教小模型基础能力——但Decomp是从真实复杂数据自动分解而非完全合成。

评分

  • 新颖性: ⭐⭐⭐⭐ 递归分解+概念图的组合新颖,但课程学习本身不新
  • 实验充分度: ⭐⭐⭐⭐ 数学+代码跨域验证,但数据集和模型规模有限
  • 写作质量: ⭐⭐⭐⭐ 方法描述清晰,案例研究直观
  • 价值: ⭐⭐⭐⭐⭐ 极高的样本效率对小模型训练有重要实用价值