不依赖外部训练数据,大模型如何自己练出推理能力?CPMöbius 提出 Coach–Player 协作式强化学习框架

近年来,大语言模型在数学推理、代码生成、复杂问题求解等任务上不断取得进展。一个重要原因是,模型 post-training 阶段引入了大量高质量推理数据和强化学习信号。

但问题也随之出现:模型越强,继续提升它所需要的数据越难获得。

在数学、代码等场景中,我们可以通过标准答案、单元测试或规则检查来构造奖励信号;但随着模型能力不断提高,高质量、难度合适、覆盖充分的人工数据越来越稀缺,构造成本也越来越高。也就是说,当前推理能力提升仍然在很大程度上受限于人类提供的数据和监督。那么一个很重要的问题就出现了:如果没有外部训练数据,大模型能否通过自主交互,持续提升自己的推理能力?

由社区成员 THUNLP 实验室的研究者提出的 CPMöbius,是一种 Coach–Player 协作式 Data-Free 强化学习框架,此工作已被 ICML 2026 接受。简单来说,就是让一个 Coach 模型根据 Player 当前能力出题,Player 通过解题进行强化学习,而 Coach 则根据 Player 是否真正进步来更新自己的出题策略。论文摘要指出,CPMöbius 在 Coach–Player 协同进化阶段不依赖外部训练数据,并在多个数学推理基准上超过现有无监督强化学习方法。

当前提升大模型推理能力的主流路径,通常包括两步:

SFT,即使用大量高质量推理题目和标准答案,让模型学习解题过程。

RL,即通过可验证奖励、偏好奖励或规则奖励,进一步优化模型输出。

这一路径非常有效,但也存在一个明显瓶颈:它高度依赖外部数据。

对于数学推理来说,高质量题目和解答并不是无限的。对于更复杂的推理场景,人工构造数据不仅成本高,而且很难保证难度分布始终适合模型当前能力。论文也指出,依赖大规模人工构造任务和标签的监督范式,正面临长期可扩展性的挑战。因此,一个新的方向开始受到关注:能不能让模型自己生成训练任务,并通过自主交互完成能力提升?

这就是 Data-Free RL 想解决的问题。

不过,已有 self-play 方法虽然减少了对外部数据的依赖,但也可能出现一个问题:出题方为了「难倒」解题方,可能生成过难、无意义、格式错误或不可学习的任务,导致训练不稳定。论文中也提到,对抗式 self-play 可能会退化为无意义或不可学习的任务生成。

➤ 论文链接

🔗 https://arxiv.org/pdf/2602.02979

➤ 代码链接

🔗 https://github.com/thunlp/CPMobius

CPMöbius 的核心想法:让 Coach 教 Player,而不是难倒 Player

CPMöbius 的核心思想很直观:Coach 的目标不是出最难的题,而是出最能帮助 Player 进步的题。

在这个框架中,有两个相互协作的角色:

Coach 是课程设计者。它负责根据 Player 当前能力,生成一批适合训练的数学推理任务。

Player 是推理学习者。它尝试解决 Coach 生成的任务,并通过强化学习更新自己的推理能力。

关键区别在于,Coach 并不是因为「题目难」而获得奖励,而是因为 Player 在学习这些任务之后真的变强了 才获得奖励。论文将 Coach 和 Player 设计为两个独立但合作的角色:Coach 生成面向 Player 当前能力的 instruction,并根据 Player 表现变化获得奖励;Player 则通过解决 Coach 生成的任务来提升推理能力。这种设计把传统 self-play 中的「对抗式出题」转变成了「教学式出题」。换句话说,CPMöbius 更像一个教练训练运动员的过程:

Coach 观察 Player 当前水平;

Coach 设计适合当前阶段的训练任务;

Player 完成训练并提升能力;

Coach 根据训练效果调整下一轮训练计划。

论文解释,CPMöbius 中的 「Möbius」 正是指这种关系:Coach 与 Player 之间形成一个连续循环,任务生成、能力提升和反馈更新不断连接在一起。

CPMöbius 让 Coach–Player 形「会自我调整」的学习闭环

CPMöbius 的训练过程可以概括为四步。

第一步:Coach 设计训练任务

Coach 首先生成一批候选数学题。为了避免题目过难或过易,CPMöbius 引入了 difficulty-filtered batching,也就是难度过滤机制。

具体来说,Player 会先尝试回答这些候选题。如果某道题太容易,Player 几乎总能答对;如果太难,Player 几乎无法答对。这两类题都不适合作为训练任务。论文中使用一个轻量难度检查机制,保留处于合适难度区间的题目,使任务既有挑战性,又仍然可学习。

第二步:Player 解题并构造伪标签

对于 Coach 生成的每个任务,Player 会进行多次采样,生成多个候选答案。随后,系统通过 majority voting 得到伪标签,并据此构造奖励信号。

这种做法的好处是,即使没有外部标准答案,模型也可以利用多次采样的一致性来构造近似的可验证反馈。

第三步:Player 使用 GRPO 更新

Player 通过 GRPO 进行强化学习更新。GRPO 是一种不依赖 critic 的强化学习方法,适合在多个候选输出之间进行相对优势估计。论文中 Player 使用 Coach 生成的任务和 majority voting 形成的奖励信号进行更新。

第四步:用 Player 的进步奖励 Coach

这是 CPMöbius 最关键的部分。

Player 更新后,会在一个固定验证环境上进行评估。系统会比较 Player 更新前后的表现差异。如果 Player 表现提升,说明 Coach 生成的任务确实有帮助;如果没有提升,说明这些任务的教学价值有限。

因此,Coach 的奖励来自 Player 的能力变化。论文中明确指出,Coach 接收的是一个标量环境反馈信号,用于捕捉 Player 更新后的性能变化;Coach 的优化目标是生成能带来真实学习进步的任务。

这使得 CPMöbius 不只是「模型自己给自己出题」,而是形成了一个更精细的学习机制:

任务是否有价值,不看它是否困难,而看它是否让学习者进步。

实验结果与消融分析:CPMöbius 是否真的带来了稳定提升?

为了验证 CPMöbius 的有效性,论文在多个数学推理 benchmark 上进行了系统实验,包括 AMC、AIME 2024、AIME 2025、Minerva、MATH-500 和 Olympiad-Bench。这些 benchmark 覆盖了不同难度和不同题型的数学推理任务。其中,AMC 被用作训练过程中的 held-out validation environment,用来衡量 Player 在每轮训练前后的能力变化;而其他 benchmark 则更多用于评估模型是否具备更好的泛化能力。换句话说,实验不仅关心模型是否在训练反馈环境上变强,也关心它是否能够迁移到其他更具挑战性的数学推理任务中。

论文选取了四类不同基础能力和训练背景的模型进行实验:Qwen2.5-Math-1.5B、OpenMath-Nemotron-1.5B、OctoThinker-3B-Hybrid-Zero、Qwen2.5-Math-7B-Instruct。

这些模型本身能力差异较大,有的偏基础数学模型,有的经过更强的数学数据训练,也有的已经具备一定 RL 推理能力。这样的设置可以检验 CPMöbius 是否只是对某一类模型有效,还是具有更普遍的适用性。

从主结果来看,CPMöbius 在四个 base model 上都取得了稳定提升。尤其是在 overall average 和 OOD average 两个综合指标上,CPMöbius 通常优于 base model,并且在多个设置下超过了 R-Zero 和 RENT 等unsupervised reasoning training方法以及 self-play reasoning training方法的基线。这些结果说明,CPMöbius 并不是单纯让模型在某个固定验证集上「刷分」,而是在一定程度上帮助模型学到了更可迁移的推理能力。从结果来看,CPMöbius 的优势并不只是「多生成了一些题」,而是在于它改变了任务生成的目标:Coach 不是为了生成更难的题,而是为了生成能让 Player 进步的题。

Player 训练最直观的动态表现

除了最终结果,训练过程中的动态变化也很重要。因为 CPMöbius 的核心机制是:Coach 生成任务,Player 学习任务,然后用 Player 在验证环境上的能力变化反过来奖励 Coach。因此,如果这个闭环真的有效,我们应该能看到一个现象:随着训练推进,Player 在 AMC 2023 验证环境上的表现逐步提升。

从训练动态曲线可以看到,四个 base model 在 CPMöbius 训练过程中都呈现出不同程度的上升趋势。对于 Qwen2.5-Math-1.5B,AMC 2023 avg@10 accuracy 从大约 0.355 稳步提升到 0.39 以上。对于 Qwen2.5-Math-7B-Instruct,准确率也从大约 0.467 提升到 0.50 以上。OpenMath-Nemotron-1.5B 和 OctoThinker-3B-Hybrid-Zero 的曲线虽然有一定波动,但整体也呈现出向上的训练趋势。

这说明,CPMöbius 的提升不是只体现在训练结束后的单点评估上,而是在训练过程中逐渐累积出来的。更重要的是,这一趋势与方法设计是吻合的:Coach 通过 Player 的表现变化获得反馈,而 Player 又通过 Coach 生成的任务继续学习,二者形成持续改进的闭环。

CPMöbius 不是简单让模型「更自信」

值得注意的是,模型在推理任务上的提升,并不一定等价于输出变得更一致。一个模型可能多次生成相同答案,但这个答案未必正确;反过来,答案一致性下降也不一定意味着推理能力下降,它可能说明模型在探索更多不同推理路径。

因此,论文进一步观察了训练过程中的 Answer Consistency。从图中可以看到,不同模型的 answer consistency 曲线并不完全一致:例如,Qwen2.5-Math-1.5B 的 answer consistency 从约 0.53 逐步下降到约 0.46;OpenMath-Nemotron-1.5B 也整体呈下降趋势;而 OctoThinker-3B-Hybrid-Zero 在前期下降后又逐渐回升;Qwen2.5-Math-7B-Instruct 则呈现波动状态,并没有单调上升。

这一现象很有意思。它说明 CPMöbius 的性能提升并不是简单来自「模型输出更一致」或「模型变得更保守」。如果只是提高 answer consistency,模型可能只是更频繁地输出同一种答案,而不一定真正提升推理能力。

相反,结合前面的 AMC accuracy 曲线可以看到:即使 answer consistency 在部分模型上下降,AMC 验证准确率仍然在提升。这表明 CPMöbius 更可能是在改善模型的推理质量,而不是单纯提高答案重复率。

换句话说,CPMöbius 带来的不是一种简单的 confidence calibration,而是通过 Coach–Player 交互,让 Player 在更有价值的训练任务上获得了实际能力提升。

哪些组件真正关键?

CPMöbius 的三个核心问题:1. Coach 是否需要动态学习?2. Coach 是否需要具备基本出题能力?3. 生成任务是否需要控制难度?

1. Coach 必须动态更新

如果移除 Coach Update,Coach 就会退化成一个相对静态的任务生成器。它无法根据 Player 的能力变化调整任务,也就很难形成真正的课程学习过程。

消融结果显示,在 Qwen2.5-Math-1.5B 上,完整 CPMöbius 的 average 为 28.8,OOD average 为 26.8;去掉 Coach Update 后,average 降到 25.3,OOD average 降到 23.1。这说明 Coach 的价值不只是「会出题」,而是能够根据 Player 的学习效果不断调整出题策略。也就是说,CPMöbius 的核心并不是静态合成数据,而是动态的 teacher-student interaction。

2. Coach Warm-up 能帮助系统更稳定地启动

论文中还分析了 Coach Warm-up 的作用。直观来说,如果 Coach 一开始完全不会生成高质量数学题,那么后续训练很容易陷入低质量任务循环。

例如,Coach 可能生成格式不规范的问题、缺乏明确答案的问题,或者生成与数学推理能力提升关系不大的任务。这样一来,Player 即使进行强化学习,也很难获得有效训练信号。消融结果显示,去掉 Coach Warm-up 后,Qwen2.5-Math-1.5B 上的 average 降到 23.7,OOD average 降到 21.2,相比完整 CPMöbius 有明显下降。这说明,虽然 CPMöbius 强调 data-free co-evolution,但在进入协同进化之前,让 Coach 具备基本的任务生成能力仍然很重要。换句话说,Coach 不需要依赖外部数据持续训练,但它至少需要有一个足够好的起点,才能进入有效的自我改进循环。

3. Instruction Filter 保证任务处于「可学习区间」

第三个关键组件是 Instruction Filter,也可以理解为任务难度过滤机制。

在 CPMöbius 中,并不是 Coach 生成的所有任务都会直接用于训练 Player。系统会通过 Player 的初步解题表现来判断任务难度。如果一个任务太简单,Player 几乎总能答对,那么它对训练帮助有限;如果一个任务太难,Player 几乎完全无法解决,那么它也无法提供有效学习信号。

真正有价值的任务,往往处于中间区域:有挑战,但仍然可以学习。消融结果显示,去掉 Instruction Filter 后,Qwen2.5-Math-1.5B 上的 average 降到 24.9,OOD average 降到 22.5。这说明难度控制对于 data-free 训练尤其重要。因为在没有人工数据筛选的情况下,模型自己生成的任务质量和难度可能非常不稳定。如果不加过滤,训练数据中会混入大量过易、过难或无效样本,最终影响 Player 的学习效率。

总结

我们习惯了让模型自己生成数据,想当然认为:只要题目足够多、足够难,学生模型就会变强。但 CPMöbius 给出的答案是:未必。难题不自动等于有效训练,生成更多题也不自动等于更会推理。真正重要的不是 Coach 能不能「难倒」 Player,而是:它出的题,是否刚好落在 Player 当前能学习的位置? 它提供的训练信号,是否真的能带来能力提升? 它能不能根据 Player 的进步,不断调整下一轮课程?

而这,也许正是 CPMöbius 最有价值的地方:它没有把 data-free reasoning training 简化成「让模型自己造题」,而是进一步追问,为什么有些任务能让模型进步,为什么有些任务只是看起来更难。它提醒我们,未来大模型的自我提升,可能不只是关于「生成更多数据」,而是关于如何设计一种更好的学习关系:让 Coach 不只是更强,而是更会教;让 Player 不只是做更多题,而是真的学会推理。