FlowBalance:模型自己给自己当老师时,怎么防止它"自信地教错"?

上周刷到一篇挺对味的论文。做过 RLVR 训练的人应该都碰到过一个纠结:终端验证器(verifier)给的奖励是可靠的,但一条几千 token 的推理链只有最后一个 0/1 信号,信用分配稀得可怜;而让一个"看过答案"的模型副本给每个 token 打稠密分(on-policy distillation 那一路),又很容易出现一件尴尬事——它对一条最终被验证器判错的轨迹照样信心满满,结果就是模型把自己错误的自信当成下一步的监督信号,越训越偏。

这篇 FlowBalance(arXiv: 2609.03241)给出的回答我觉得很干净:稠密自我指导可以用,但它的方向必须由验证器说了算——答对了才顺着指导走,答错了就把指导反向,没有偏好就关掉。再配上 trajectory balance 把这套"能量"变成一个归一化的完整响应分布来学。在 Qwen3-4B/8B 的数学推理上,它比同族的 FlowRL 再涨 1.67 到 1.98 个点,训练提速 1.43 倍,还避免了直接蒸馏那种回复长度崩掉的问题。

核心摘要:痛点是"自改进内环"太脆——稀疏验证可靠但粗,稠密自指导细但会自我确认。FlowBalance 的方案是:冻结的策略副本带着特权上下文(参考答案)给已采样 token 打分,聚合成轨迹级自我指导增益 \(G_H\),再用组相对优势 \(A\) 的符号给它定方向,合成能量 \(\eta_A A + \beta_G G_H \cdot \mathrm{sgn}(A)\),最后通过 profiled trajectory balance 拟合这个参考策略支撑的 Gibbs 目标。效果是 Qwen3-8B 五基准平均 67.61,超过 GRPO 的 65.49、FlowRL 的 65.85、RLSD 的 64.12;AIME24 验证准确率到 0.5 只需约 100 步(GRPO 约 143 步),400 步内不掉点。我的评价:这不是底层突破,而是把 FlowRL 的分布匹配框架和 OPSD/RLSD 的特权自指导做了一次"权责分明"的工程整合——但整合得相当有理论品味,四个命题都给到了目标分布层面的精确刻画,值得细读。


📖 论文信息

  • 标题:FlowBalance: Verifier-Grounded Self-Improvement from On-Policy Reasoning Experience
  • 作者:Zixun Huang、Kishan Panaganti、Haitao Mi、Leowei Liang(Zixun Huang 为 project lead,前两位共同一作)
  • 机构:Tencent HY LLM Frontier、University of Pennsylvania
  • 日期:2026 年 9 月 3 日
  • 链接:https://arxiv.org/abs/2609.03241 (代码与 blog 已随论文放出)

🎯 问题动机:自改进内环的两个"脆点"

先把这个问题的背景捋清楚。后训练时代,推理模型的核心承诺是:从自己采样出来的经验里变得更好——采几条解、看看哪条对、更新策略、下一轮采得更好。这个内环要学好三件事:把概率移向正确推理、保留有用的备选策略、别把所有质量都磨到一个局部偏好的模板上。

但现实里有两条路都走不顺。

路径一:RLVR(可验证奖励的强化学习)。代表是 GRPO。验证器只给终局 0/1,一条几千 token 的推理链共享一个响应级信号。组相对优势(group-relative advantage)改善了组内比较,但说到底还是"一个分数贴满全程"。FlowRL 这类分布方法把终局证据翻译成完整响应上的概率分布,前进了一步,但纯结果能量没法利用推理路径上的细粒度证据。

路径二:同模型特权自指导。冻结一个当前策略的副本,让它条件在参考答案或任务反馈上,给已采样的每个 token 打分。这是 OPSD、RLSD 那一路的做法。信号稠密、便宜,不需要更大的外部教师模型。但问题是——稠密不等于可信。这个打分的"视角"看到了推理时不可得的信息,它完全可能偏爱一条看起来合理但最终被验证器拒掉的轨迹,或者把推理压缩变短、压制不确定性驱动的探索。盲目跟着这种自信走,就是我开头说的自我确认:模型的错误偏好变成了下一步的监督。

说实话,这两个痛点在真实工程里都存在,不是伪命题。我自己调 reasoning RL 的时候就观察过后者:蒸馏类目标加上去,前几步指标涨得飞快,然后回复长度肉眼可见地塌,多样性跟着完蛋。论文 Table 1 里 OPSD 在 Qwen3-8B 上平均只有 41.16,比 GRPO 低了 24 个点,某种程度上就是这种失败模式的极端呈现。

于是作者把问题重新表述成一个分布问题:

给定 on-policy 推理经验、稀疏但可靠的验证结果、稠密但可能出错的自我指导——下一个策略应该学习一个什么样的归一化响应分布?

注意这个表述的转换:不再问"用哪个 loss 优化",而是问"学哪个分布"。这是 FlowBalance 和 GRPO/RLSD 家族的根本分野。


🧠 方法核心:符号门控 + 轨迹平衡

一句话讲清核心 idea:自我指导负责提供细粒度证据,验证器负责决定这个证据的方向,trajectory balance 负责把合成能量变成归一化分布

FlowBalance 的验证器锚定自改进循环

图 1:FlowBalance 五步循环——(1) 当前策略采样 on-policy 轨迹组;(2) 验证器给出稀疏可靠的结果奖励并计算组相对优势;(3) 冻结的特权事后视角给已采样 token 打稠密分,聚合成轨迹级增益 \(G_i\);(4) 符号门控:成功轨迹顺着指导、失败轨迹反转指导;(5) 用 profiled trajectory balance 把能量 \(E_i = \eta_A A_i + \beta_G G_i \cdot \mathrm{sgn}(A_i)\) 内化成归一化目标分布。这个图把整条流水线画得很清楚,建议对照着读。

特权事后视角的稠密打分

每个训练 prompt \(x\) 配一个仅训练期可见的上下文 \(c\)(比如参考解)。同一个冻结快照扮演两个角色:

  • Rollout 视角 \(\pi_{\text{roll}}(\cdot \mid s_t) = \pi_{\theta^-}(\cdot \mid x, y_{<t})\):不看 \(c\),负责生成响应;
  • 事后视角 \(\pi_H(\cdot \mid s_t, c) = \pi_{\theta^-}(\cdot \mid x, c, y_{<t})\):响应采完之后,看着 \(c\) 给同样的 token 重新打分。

注意两个细节:事后视角不重新生成任何轨迹,也不回传梯度。它只是一个"事后诸葛亮"式的评分器。部署时策略既看不到 \(c\) 也接触不到这个视角。

对每个 token 算裁剪后的 log 概率增益,再沿轨迹平均,得到轨迹级自我指导增益:

\[\delta_t^{H}(y;x,c) = \mathrm{clip}\left(\log\pi_H(y_t \mid s_t, c) - \log\pi_{\text{ref}}(y_t \mid s_t), -B, B\right)\]
\[G_H(y \mid x, c) = \frac{1}{T}\sum_{t=1}^{T}\delta_t^{H}(y;x,c)\]

\(G_H\) 的直觉是:看过答案的"我"比没看答案的初始模型,在这条轨迹上平均自信了多少。它是在策略自己的 on-policy 经验上算出来的特征,零额外采样成本。

符号门控:让验证器给指导定方向

这是全文我最喜欢的一个设计。FlowBalance 的轨迹能量:

\[E_{\text{FlowBalance}}(y \mid x, c) = \eta_A A(y) + \beta_G G_H(y \mid x, c)\,\mathrm{sgn}(A(y))\]

三种情况:

  • \(A(y) \gt 0\)(组内偏好这条):正的 \(G_H\) 叠加进去,强化已验证的成功;
  • \(A(y) \lt 0\)(被拒):正的 \(G_H\)反转——它越自信,越被往下压,自我确认的路被堵死;
  • \(A(y) = 0\)(组内无偏好):稠密分支直接关闭。

你想想看这个设计的妙处:它没有把稠密信号当成一个独立的 imitation loss 加进 RL 目标(RLSD 的思路),也没有无条件蒸馏(OPSD 的思路),而是把它变成一个受验证器节制的方向性特征。看起来只是个符号函数,但命题 4 给了它精确刻画:对一个已验证成功 \(y_+\) 和一个被拒响应 \(y_-\),相比不加门控的指导,符号门控把两者的目标概率比乘上了一个精确因子:

\[\frac{p^{\star}_{\text{gated}}(y_+)}{p^{\star}_{\text{gated}}(y_-)} = \frac{p^{\star}_{\text{ungated}}(y_+)}{p^{\star}_{\text{ungated}}(y_-)} \exp\left(\frac{2\beta_G G_H(y_- \mid x, c)}{\tau}\right)\]

也就是说,失败轨迹上的假阳性自信,被精确地转化成了偏向正确响应的概率比修正。模型自己骗不了自己——这是这个式子最值钱的地方。

Trajectory balance:从能量到归一化分布

能量定好之后,目标是参考策略支撑的 Gibbs 分布:

\[p^{\star}(y \mid x, c) \propto \pi_{\text{ref}}(y \mid x)\exp\left(\frac{E(y \mid x, c)}{\tau}\right)\]

然后走 GFlowNet 那一系的 trajectory balance。完整轨迹平衡方程:

\[\tau\log Z(x,c) + \tau\log\frac{\pi_\theta(y \mid x)}{\pi_{\text{ref}}(y \mid x)} - E(y \mid x, c) = 0\]

主 loss 就是对组内每条轨迹的 TB 残差取平方期望。关键在配分函数怎么处理:FlowRL 用一个 prompt 条件的学习估计器,而 FlowBalance 直接从 rollout 组里 profile 出来——每条响应隐含一个 \(\widehat{\log Z}_i\),取组内平均:

\[\widehat{\log Z}(x,c) = \frac{1}{N}\sum_{i=1}^{N}\left(\frac{E(y^{(i)} \mid x,c)}{\tau} - \log\frac{\pi_\theta(y^{(i)} \mid x)}{\pi_{\text{ref}}(y^{(i)} \mid x)}\right)\]

这个估计的梯度也是 stop 掉的。为什么要 profile 而不是学习?作者的命题 1 给了回答:这个"麻烦参数"只吸收组内公共的偏移量,\(N-1\) 个独立的组内概率对比方向全部保留。rollout 组的全部相对证据都被用上了,没有塌缩成单一比较。在 \(N=32\) 的合成诊断里,profile 全对比的局部高斯参数风险只有"每组一对比"估计器的 2.92%——大约 1/34 的风险。

顺带一提,论文还给了 subtrajectory balance 的版本(对任意区间 \(i{:}j\) 定义残差),可以在长响应上提供更稠密的拟合目标,不过主实验用的是完整轨迹版本。

四个理论保证,一句话版

论文第 4 节给了四个命题,都是关于目标分布的性质(作者很诚实地声明这不是任意神经优化器的全局收敛保证):

命题 内容 直觉
命题 1 Profiled TB 保留全部组内对比 \(\log Z\) 只吃掉公共偏移,\(N-1\) 个对比方向全保留
命题 2 最小改变自更新 在达到同等复合能量的所有组分布里,FlowBalance 目标是离参考策略 reverse-KL 位移唯一最小
命题 3 验证器单调控制目标奖励 \(\partial \mathbb{E}_{p^\star}[R]/\partial \eta_A = \mathrm{Var}_{p^\star}(R)/(\tau(\sigma_R+\epsilon)) \geq 0\),调大验证器权重不会降低目标期望奖励
命题 4 结果校准修正假阳性指导 就是上面那个 \(\exp(2\beta_G G_H(y_-)/\tau)\) 因子

命题 2 的合成诊断数字挺能说明问题:一个达到相同能量的全支撑替代方案需要 reverse KL 0.973,而 FlowBalance 的指数倾斜只要 0.273——替代方案离参考远了 3.6 倍。保守,但不浪费信息。这个组合挺难得的。


📊 实验:数字说话

主实验:两个 backbone 上都是最强平均

训练加速曲线

图 2(a):训练加速。Qwen3-8B 上 FlowBalance 约 100 步达到 0.5 的 AIME24 验证准确率,GRPO 要约 143 步,快 1.43 倍。蓝色实线是平滑趋势,浅色线是逐步测量值。

所有方法在每个 backbone 内共享训练 prompt、rollout 组大小、验证器、长度上限、checkpoint 节奏和评测脚本,主表是 step 180、五个种子的均值 ± 样本标准差。AIME24 用 Pass@16,其余四个基准用 Pass@1。

模型 方法 AIME24@16 HMMT25@1 Minerva@1 MATH500@1 Olympiad@1 Avg.
Qwen3-4B GRPO 78.00 26.67 51.18 92.04 63.68 62.31
OPSD 65.33 14.67 47.28 87.56 55.76 54.12
RLSD 73.33 21.33 50.29 91.44 61.36 59.55
FlowRL 75.33 30.67 51.99 92.84 65.25 63.22
FlowBalance 80.00 32.00 50.51 93.28 65.49 64.26
Qwen3-8B GRPO 85.33 31.33 52.87 93.16 64.78 65.49
OPSD 48.67 4.00 38.46 74.56 40.09 41.16
RLSD 82.67 28.00 52.94 93.44 63.56 64.12
FlowRL 86.67 30.67 52.79 92.92 66.20 65.85
FlowBalance 89.33 34.67 53.68 93.52 66.85 67.61

几个值得说的点。

OPSD 崩得非常难看。8B 上平均 41.16,HMMT25 只有 4.00。作者的解释是:模仿"看过解的特权教师"会压制认识层面的不确定性表达、把推理压短,削弱探索和自我纠错。这个失败案例反过来佐证了符号门控的必要性——同样的特权信息,用法不对就是毒药。

和 FlowRL 的比较是全文最干净的对照。两者同属 trajectory balance 家族,唯一差别是能量里有没有校准过的自我指导。4B 上核心四基准平均涨 1.67 个点,8B 上涨 1.98 个点。涨幅不算爆炸,但要知道这是在已经把"响应级信号→分布"这步做好了的强 baseline 上再榨出来的。

AIME24 Pass@16 的涨幅最大(8B 上 89.33 对 FlowRL 的 86.67、GRPO 的 85.33)。Pass@16 考察的是"多条采样里有没有对的",FlowBalance 把概率质量摊到多条正确轨迹上的设计正好对这个胃口。而 MATH500、OlympiadBench 这些小但一致的涨幅说明它不是拿 Pass@1 换 Pass@16。

训练动态:快、稳、不塌

训练稳定性曲线

图 2(b):400 步长训稳定性。FlowBalance 到顶后一直稳在峰值附近(约 0.55-0.57),GRPO 在约 step 180 之后急剧退化到 0.2 左右。说实话看到 GRPO 这条曲线我愣了一下——180 步后基本雪崩,这个对比相当残酷。

响应长度对比

图 2(c):响应长度。直接 OPSD(绿)在前几十步内从 7000+ token 塌到 1500 左右,而 FlowBalance(蓝)稳定在 4000 token 上下的长推理轨迹。这就是"grounded"和"ungrounded"自指导最直观的分水岭。

三条曲线合起来支持了一个窄但扎实的论断:在固定任务分布的内环里,验证器锚定的自指导加速了更新、稳定了训练、并且避免了无锚定局部模仿的捷径行为。作者也很克制,明说"更长不代表因果上更好,这只是相关失败模式的诊断"。

消融:两个系数各管一件事

默认配置 \(\eta_A=15\)\(\beta_G=1\),在 Qwen3-8B 上做一维扫描:

\(\eta_A\) 5 10 15
Avg. 65.65 65.41 67.61
\(\beta_G\) 1 2 3
Avg. 67.61 66.48 65.95

两个观察。其一,验证器权重加到 15 是明显更优的(+2 个点),说明"锚"本身值这个钱。其二,把 \(\beta_G\) 从 1 加到 3 反而掉点——AIME24 从 89.33 掉到 86.00,HMMT25 从 34.67 掉到 30.00。这正是全文的核心论点的消融证据:收益来自"校准过的"自我指导,不是把稠密信号调得更强。指导越猛,假阳性越多,符号门控能修正方向但修不了强度带来的噪声。

多样性:不止一个解题模板

准确率高如果只是把一个成功模板磨尖,那意义有限。作者用 GPT-5.5 当 judge,抽取 AIME24 每条正确轨迹的数学表示和工具、按核心策略聚类,算 Simpson 多样性 \(D_{\text{Simpson}} = 1 - \sum_k p_k^2\)(两条随机正确轨迹属于不同策略的概率)。

结果:FlowBalance 0.2194,GRPO 0.1017,RLSD 0.1456。翻倍还多。

案例研究很能说明这种多样性是"数学表示"层面的,不是措辞差异。AIME24 第 23 题(等腰四面体内切球),GRPO 走的是标准的 Cayley–Menger 行列式路线;FlowBalance 的轨迹则注意到 \(41=4^2+5^2\)\(80=4^2+8^2\)\(89=5^2+8^2\),把四面体嵌进一个 \(4\times5\times8\) 的隐藏长方体,用标量三重积直接出体积。两条路用的是完全不同的数学对象。

当然,要泼点冷水:这是单 checkpoint、单 seed、LLM 评判的诊断,不是多种子人类研究。作者自己也在 limitations 里承认了。作为定性证据够用,作为分布级保证还差得远。

可靠性-强度图谱:什么时候该信自我指导

自我指导的可靠性-强度图谱

图 6:合成可靠性扫描。横轴是自我指导的可靠性 \(q\)(合成插值参数),纵轴是指导强度 \(\beta_G/\tau\)。左图是相对纯奖励整形的已验证成功质量增益——可靠性低于约 0.4 进入"对抗区"(蓝色,指导起反作用),高于 0.4 进入"有用区"(红色);中图是成功模态间的 Simpson 多样性,白线是纯奖励水平;右图是离参考策略的 reverse KL 代价。核心信息:只有当自我指导足够可靠时才值得加大强度,这和 \(\beta_G\) 消融的结论互为印证。

这个合成诊断把"什么时候该信稠密指导"画成了一张二维地图,挺实用的工程参考。不过注意作者自己标注了:可靠性参数是合成插值,不是经验校准估计——别把它当成实际训练里的调参曲线。


🤔 我的判断

这篇论文最值钱的地方:把"特权自指导"这个 2026 年上半年的热门方向(OPSD、RLSD、β-OPSD 一大家子)里最核心的隐患——自我确认——用一个符号函数干净利落地处理了,而且给到了精确的概率比修正刻画(命题 4)。另一个漂亮处是它把策略更新的对象从"局部优化信号"换成了"显式归一化的分布",跟 FlowRL 的对照实验把贡献归因锁得很死。

它的真实定位:工程整合 + 目标分布层面的理论刻画,不是底层突破。Trajectory balance 是 GFlowNet/FlowRL 的,特权自指导是 OPSD/RLSD 的,符号门控是新的但谈不上复杂。它的价值在于这三者拼起来之后权责分明、各有理论保证,且实验对照设计得干净(同 backbone 内全共享配置、五种子、和 FlowRL 的同族对照)。

几个让我皱眉的地方

  • rollout 组大小、最大响应长度这些关键训练配置在 Table 5 里标的是 "pending release"——都挂 arXiv 了还没填,复现的人要等代码。这点不太厚道。
  • AIME24@16 的 80.00 ± 0.00(4B FlowBalance)和 86.67 ± 0.00(8B FlowRL)这种零方差,说明 Pass@16 在这个规模上已经快饱和,头部几名的差距有一部分被天花板压缩了。
  • 多样性诊断是单 seed 的 LLM 评判,且 judge 是 GPT-5.5——用强模型当裁判去区分"策略"和"措辞",本身就有循环论证的风险。
  • 所有理论都是目标分布层面的性质,不覆盖优化动力学。GRPO 在 180 步后雪崩而 FlowBalance 稳如老狗这个现象很有说服力,但它归因于"分布更新更保守"还是"能量构造更稳",论文没有进一步拆开。

工程启发:如果你正在做 reasoning RL 并且想引入特权自指导,这篇论文给了两条可以直接拿走的原则——一是稠密信号的方向必须由可验证结果定(别无条件蒸馏),二是稠密信号应该进"能量/分布"而不是进"独立 imitation loss"。哪怕不实现完整的 trajectory balance,光是"优势符号门控 + 响应级增益"这两条也可以嫁接到现有 GRPO 管线里试试。

遗留的更大问题:FlowBalance 刻意把任务分布固定,只做"经验→策略"的内环。但真正的自进化系统还需要外环去生成和筛选新任务(论文提到 R-Few 这类 Challenger–Solver 系统)。内环的分布更新配上外环的课程演化,会不会互相放大漂移?这是下一步值得盯的方向。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我