一张图串讲dpsk-math-v2的十几种强化学习提分思路

提示:请对照完整高清图片

声明:为突出重点,部分背景知识已略去,同时涵盖的内容也难免有疏漏之处,还望读者理解。

前言

相较于监督微调(SFT),强化学习(RL)更依赖于设计巧妙的思路,许多创新的方法能显著提升模型策略的效果。本文选择以 dpsk-math-v2 的论文进行论述,正是因为它密集地集成了多种强化学习思路,具有很高的借鉴价值。

Block 1:证明生成器的学习

证明生成器(Proof Generator)是整个系统的核心,一个优秀的证明生成器能够针对高难度的数学证明问题(Problem)生成严谨正确的解答(Solution)。像数学题这样可以明确判定对错的问题,非常适合用强化学习来处理。强化学习最大的特点在于,它能仅依靠少量结果奖励信号,“诱导”出完整的解题过程,诸如思维链(CoT)、代码(Code)、规划(Plan)等内容都可以被诱导出来。这些被诱导出的中间过程,即使不直接参与奖励计算,也能提升模型表现。正如早期推理模型的 CoT 部分即使存在各种逻辑、格式或语言上的小问题,其效果也优于完全不使用 CoT。但这一切的前提是,必须有一个能够正确判定结果乃至过程对错的奖励系统

具体到 dpsk-math-v2 所解决的数学证明题,必须同时关注解答的最终结果和整个证明过程的正确性,才能给出准确的奖励信号。这比那些仅通过基于规则(rule-based)的方法就能提供奖励信号的选择题、填空题等要复杂得多。因此,构建一个能够高效产生高质量奖励信号的奖励系统,是最关键的基石

Trick 0:构建一个能高效产生高质量奖励信号的奖励系统,是最根本的提分策略。

我们看到,证明生成器除了生成解答,还会同时生成自我评估报告(Self Evaluation)自我评分(Self Score)。这些自我评价可在评估阶段用于元验证(检查解答与评估报告是否矛盾),从而提升评估准确率,最终通过强化学习提升生成器自身产出解答的准确率。

Trick 1:模型生成的自我评价可用于元验证,从而提升评估准确率,并最终通过强化学习反馈,提高生成器解答的准确率。

更进一步,这些自我评价(特别是自评分)在纯推理阶段,也可以通过非参数学习的方式再次提分。这部分将在 Block 6、7 详述。

Trick 2:模型生成的自我评价可在推理阶段,通过非参数学习提升最终解答的准确率。

负责元验证的模型称为元验证器(Meta-Verifier),直接评价解答准确率的模型称为验证器(Verifier)。尽管在最终设计中二者会被集成到同一个模型,但为分析方便,我们先分别介绍。

Block 2:验证器的学习

需要强调,验证器虽然输出的是结果评分,但它必须同时关注最终结果与整个证明过程的正确性。

通常,要输出评分,最直接的方法是使用 SFT 训练一个奖励模型。而 dpsk-math-v2 采用了强化学习,且奖励信号最初仍来源于人工评分。这种看似“舍近求远”的方法,其优势何在?

这再次回到了强化学习的核心——“诱导”。验证器不仅要输出评分,还可输出对解答的评估报告(Evaluation)。这份报告正是被人工评分“诱导”出来的副产品,类似于半监督学习,本质是为了提升验证器的泛化能力

Trick 3:强化学习可以诱导出难以直接标注的关键信息(如评估报告),从而进一步提升模型准确率。

再进一步,既然数学证明题要求极高的事实验证严谨性,那么验证过程本身也应像一个(元)证明题,不仅结果正确,其推理过程(即评估报告)也应严谨。这让学习过程更接近监督学习。元验证器便可承担此功能。元验证器的引入,是验证器强化学习流程的“二次进化”,可进一步提升其泛化准确性。

Trick 4:验证器生成的评估报告可在评估阶段用于元验证。元验证能进一步提升评分准确率,并最终通过强化学习提升验证器自身的准确率。

这个经过“二次进化”的验证器可称为增强验证器(Enhanced Verifier)

回到 Block 1,证明生成器也需要生成自我评估报告。既然验证器已具备生成报告的能力,为避免重复训练并使生成器能获得该能力,论文采用了一种简洁的方法:直接用验证器的权重来初始化证明生成器

Trick 5:用任务A(如验证)训练好的模型权重去初始化任务B(如生成)的模型,能简便地将关联任务的能力集成到单一模型中,使模型更紧凑高效。

Block 3:元验证器的学习

元验证器同样采用人工评估信号,同样使用强化学习而非监督学习,同样会诱导出一份“元评估报告”。

这里有一个问题:既然验证器能生成评估报告,为何证明生成器还需要生成自我评估?如果验证器与元验证器级联使用,元验证器直接使用验证器的报告理论上也可行,但缺点是耗时且 token 利用率低。将验证与元验证两个关联任务集成到同一个模型中,一次输出评分与元评分,不仅能缩短时间,还可能因任务相近而产生正向协同效应,这是在综合权衡后更优的方案。

Trick 6:将关联任务(验证与元验证)集成到同一个模型中,可同时完成两个任务,使模型更紧凑,可能产生更丰富的多样性,并支持可持续迭代,综合提升泛化效果。

Block 4:增强验证器的进一步学习

Block 2 提到,验证器强化学习的奖励最初依赖人工标注,这限制了其性能上限。因此,需要一种能降低人工成本的方案,即基于验证器自身推理(Inference)能力的提分策略。

最简单的方法是多数投票。对一个解答,用验证器生成多个评分,若全为1则认为其真实评分为1,免去人工标注;其余情况再交予人工。

Trick 7:多数投票往往能直接带来性能提升。

此外,我们还有元验证器,可进行二阶多数投票。具体而言,对每个评分为0或0.5的结果,用元验证器生成多个元评分。若多数元评分为1,则认可该评分的元评分为1。若某个低评分获得了至少K个元评分1(一阶多数投票),则认可该低分为解答的真实评分,从而免去人工标注。

Trick 8:基于元验证的二阶多数投票能够进一步提升评分准确率。

请注意,这里直接提升的是验证器的评分质量,而非生成器。

论文指出,最终的自动化评估方案完全取代了人工标注。也就是说,回顾 Block 2,最终是靠验证器的一阶多数投票和元验证器的二阶多数投票,共同取代了人工标注环节

论文未明确说明元验证器是否需要持续的新标注数据来学习。笔者认为可能需要,但所需量级很小。元验证器学习难度低于验证器,却能在多个环节以“杠杆”方式显著提升整体效果,功不可没。

Trick 9:在多个环节充分利用元验证,可以显著提分。

那么,Block 1 中生成器的奖励系统是否也可用一阶、二阶投票来提升奖励质量,进而直接提升生成器?理论上可以,但缺点是耗时且资源占用大。此外,新产生的高质量评分数据如果只用于训练生成器,而不训练验证器,也是一种浪费。这再次印证了 Trick 0 的重要性:一个“高效”的高质量奖励系统是关键。

Block 5:验证器 Checkpoint 的产出

到目前为止,尚未说明验证器的初始化策略。一般而言,可直接采用上一轮的验证器进行初始化。但论文中提到的方法,是通过拒绝采样(Rejection Sampling)单独训练一个同时具备生成与验证能力的模型,并将其作为初始化权重。笔者推测,这是因为验证器后续需用于初始化生成器,它自身也需要具备一定的生成能力,以确保良好的能力迁移。而若直接用生成器的权重初始化验证器,又可能导致严重的灾难性遗忘。因此,采用拒绝采样进行微调,旨在让模型在获得新能力的同时,尽量保留原有能力。

Trick 10:拒绝采样微调有助于在多任务学习中缓解模型的灾难性遗忘。

Block 6:推理阶段——用非参数学习模仿策略梯度提升

模型训练完成后,在推理阶段进行效果优化(Test-Time Scaling)也有诸多技巧。dpsk-math-v2 并未采用复杂的智能体组装结构,而是利用生成器能同时输出自我评估和自评分的特性,设计了一个紧凑的方案。其核心是证明改进(Proof Refinement):将生成器的输出再次输入给自身,让其输出改进后的证明与自评分,如此循环。这无需策略梯度提升(参数学习),而是直接利用大模型对问题和解法的理解进行策略改进(非参数学习),从而提升效果。

Trick 11:具备生成自我评估和自评分能力的大模型,可以在推理时模仿强化学习的策略梯度提升过程。

Block 7:推理阶段——用非参数学习模仿完整强化学习

既然能模仿策略梯度提升,能否进一步模仿完整的强化学习?答案是肯定的。该方法借鉴了束搜索(Beam Search)的思想:

  1. 对每个问题,维护64个候选解答及其评分。
  2. 每次迭代,从所有叶子节点中挑选评分最高的64个回答(利用,Exploitation)进行“下钻”(即证明改进)。
  3. 为提升评分准确性,对每个解答会生成64份不同的自我评估和自评分,取其平均分(类似二阶多数投票)作为最终评分。
  4. 为提升探索(Exploration)多样性,为每个被选中的高分解答,随机抽取其对应的8份低分评估报告,输入给模型进行证明改进。

这里没有采用蒙特卡洛树搜索(MCTS)是因为每个解法本质都是最终叶子节点,不是中间节点。这理论上应该是一个无限状态宽度的多臂机,所以但凡对某个节点有评分,就不会被之后的步骤的得分修改了,也就不需要MCTS的反向传播过程。

另外,这里有一个精妙之处:通常LLM强化学习通过直接调高模型的“温度”(temperature)来增加探索的随机性。而此处是将“温度”加在验证环节,通过生成多样化的评估报告,再有针对性地挑选出“问题最多”的报告,来间接丰富策略改进的多样性。这将过于随机的“温度”不确定性,提炼为有针对性的评估反馈,提升了采样优质解法的效率。评估报告的多样性,既提升了自评分的准确性,也提升了采样的质量,一举两得

Trick 12:在推理过程中采用束搜索(Beam Search)策略可以提分。

Trick 13:通过生成多样化的自我评估报告,可以提升采样本身的质量。

如此迭代16轮,或当64份评估均给出满分时,输出最终解答。

回顾 Block 1,这种在推理阶段提升采样质量的非参数学习策略,是否也可用于 Block 1 的参数学习?新产生的解答是否可以给 Block 4 使用?而且 Block 4 的二阶多数投票本身就会对同一解答产生多份评估报告,是否可以直接“一鱼两吃”,用于 Block 1 的采样?这些都是值得尝试的思路。

小结

dpsk-math-v2 的强化学习策略非常丰富,有人形象地称之为“左脚踩右脚”。当然,比喻总是跛脚的。如果非要做一个比喻,笔者更倾向于用“衡水中学式应试培养体系”来类比:

  • 证明生成器是做题家(学生)。
  • 验证器是阅卷老师。
  • 元验证器是阅卷组长(主任)。
  • 做题家通过阅卷老师的评分来提升成绩(Block 1)。阅卷老师和组长的评分质量至关重要(Trick 0)。他们共同评分能给出更高质量的评价(Trick 1)。
  • 阅卷老师自身评分能力也需要通过参考答案(Trick 3)和组长的复核(Trick 4)来训练提升(Block 2)。
  • 组长则参照对阅卷老师评分的考评报告来自我训练(Block 3)。
  • 做题家在培训前,会到阅卷组实习,学习评分思路,以便在考场上逆向应用评分标准(Trick 5)。阅卷老师也会接受与组长相同的训练,以提升能力(Trick 6)。
  • 对于疑难解答,通过阅卷老师会议投票(一阶投票,Trick 7)和组长会议投票(二阶投票,Trick 8)来产出权威评分。确认后的新解答会下发学习(Block 4)。组长在多个环节作用关键(Trick 9)。
  • 阅卷老师在每轮培训前(Block 5),会以做题家身份做题培养手感,并复习旧知识(Trick 10)。
  • 考场上,做题家会在草稿纸上逆向阅卷标准,反复优化自己的解题过程(Trick 2, Trick 11),即 Block 6 的证明改进。
  • 当时间充裕时(Block 7),做题家会尝试多种思路进行探索(Trick 12),并扮演不同风格的阅卷老师来自查(Trick 13),最终交出满意答卷。



Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • LLM强化学习中KL正则到底能不能去掉?
  • 一张表串讲LLM-RL中KL散度正则的正确与错误用法
  • 一图串讲GRPO十几种主流变体算法