VFScale: Intrinsic Reasoning through Verifier-Free Test-time Scalable Diffusion Model
核心思想
扩散模型的测试时缩放(test-time scaling)可以让模型在推理时投入更多计算来解决更难的问题——类似人类的”系统 2 思考”。但现有方法依赖外部验证器来评估候选解的质量。
VFScale 的核心洞察:扩散模型的内在能量函数本身就可以作为验证器 → 但需要两个训练改进来确保能量函数的可靠性:
- MRNCL 损失:强制能量值与解的质量单调对应
- KL 正则化:平滑能量景观,避免局部最优
推理时用混合 MCTS(hMCTS)高效搜索 → 6×6 迷宫训练外推至 15×15,成功率 88%。
背景知识
测试时缩放的类比
| 概念 | 语言模型 | 扩散模型 |
|---|---|---|
| 系统 1(快思考) | 直接生成 | 标准去噪 |
| 系统 2(慢思考) | CoT、搜索、多次采样 | 测试时缩放 |
| 验证器 | 奖励模型 | 外部验证器 or 内在能量 |
| 搜索方法 | beam search、MCTS | BoN、MCTS |
为什么扩散模型的能量函数不可直接用
| 问题 | 说明 |
|---|---|
| 能量-质量不一致 | 低能量不一定对应好的解 |
| 局部最优 | 能量景观有很多陷阱 |
| 不区分微小差异 | 接近正确但有小错的解,能量可能与完全错误的解相同 |
方法详解
1. MRNCL 损失(单调回归负对比学习)
目标:确保能量值随解的质量单调递增(质量越差 → 能量越高)。
步骤:
- 从正样本 $x_0$ 生成两个负样本 $x_0^-$、$x_0^{–}$,其中 $|x_0^{–} - x_0|_2 > |x_0^- - x_0|_2$
- 加噪得到 $x_t$、$x_t^-$、$x_t^{–}$
- 对三个点 ${(0, E_t^+), (\ell_{2,0}^-, E_t^-), (\ell_{2,0}^{–}, E_t^{–})}$ 做线性回归,得到斜率 $k_t$ 和截距 $b_t$
- 损失函数:
- $\max(0, \gamma - k_t)$:强制斜率 $k_t \geq \gamma$ → 能量随 L2 距离单调递增
- MSE 项:确保能量值贴合回归线 → 不仅方向对,数值也准
2. KL 正则化
\[\mathcal{L}_{\text{KL}} = \mathbb{E}_{t, p_{\theta,t}(x)}\left[E_{\text{stop-grad}(\theta)}(x)\right] + \mathbb{E}_{t, p_{\theta,t}(x)}\left[\log p_{\theta,t}(x)\right]\]- 第一项:鼓励低能量样本 → 推动分布向高质量解集中
- 第二项:鼓励高熵 → 保持样本多样性,避免模式坍缩
- 在每个去噪步操作(不同于先前工作)
- 使用 k-近邻近似估计熵
3. 总训练目标
\[\mathcal{L}_{\text{total}} = \mathcal{L}_{\text{MSE}} + \mathcal{L}_{\text{Contrast}} + \mathcal{L}_{\text{MRNCL}} + \mathcal{L}_{\text{KL}}\]前两项来自基线能量扩散模型。
4. 混合蒙特卡洛树搜索(hMCTS)
核心思想:噪声大时广搜(BoN),噪声小时深搜(MCTS)。
Phase 1($t = T \to t_s$):Best-of-N 并行搜索
\[x_{t_s} \leftarrow \arg\min_k E_\theta(x_{t_s}^{(k)}), \quad k = 1, \ldots, L\]生成 $L$ 个并行轨迹,保留能量最低的。
Phase 2($t = t_s \to 1$):MCTS 精细搜索
每步运行 $N_r$ 次 rollout:
- 选择(UCB):
- 扩展:生成 $K$ 个子节点(不同高斯噪声采样)
-
模拟:从随机子节点用 DDIM 快速 rollout 到终态 $\hat{x}_0$
-
回传:更新路径上所有节点的价值
动作选择:选 $Q(x_{t-1}^{(k)}) / N(x_{t-1}^{(k)})$ 最高的子节点。
5. 为什么分两阶段
| 阶段 | 噪声级别 | 能量估计质量 | 最优策略 |
|---|---|---|---|
| 早期($T \to t_s$) | 高 | 不可靠 | 并行广搜(BoN)避免过早淘汰 |
| 晚期($t_s \to 1$) | 低 | 可靠 | 深度搜索(MCTS)精细利用 |
实验结果
迷宫任务(6×6 训练 → 15×15 测试)
| 方法 | N=1 | N=41 | N=81 | N=161 |
|---|---|---|---|---|
| 原始 BoN | 6.3% | 7.8% | 10.2% | 10.9% |
| VFScale BoN | 26.6% | 68.8% | 65.6% | 70.3% |
| VFScale hMCTS | 26.6% | 79.7% | 82.0% | 88.3% |
- 原始模型即使 160× 采样也只有 ~11% → 能量不可靠导致搜索无效
- VFScale + hMCTS 达到 88.3% → 2.5× 泛化(6→15 格)
数独任务(31-42 给定数字训练 → 17-34 测试)
| 方法 | N=1 | N=41 | N=81 | N=321 |
|---|---|---|---|---|
| 原始 BoN | 8.6% | 23.4% | 24.2% | 28.1% |
| VFScale BoN | 7.0% | 34.4% | 35.2% | 39.1% |
| VFScale hMCTS | 7.0% | 35.2% | 36.7% | 43.0% |
能量-质量一致性
| 方法 | 一致性得分 |
|---|---|
| 原始 | 0.730 |
| + MRNCL | 0.837 |
| VFScale 完整 | ~0.84+ |
MRNCL 将一致性提升 10+ 个百分点。
消融实验(15×15 迷宫,N=81)
| 配置 | 成功率 |
|---|---|
| 原始 | 10.2% |
| + MRNCL only | 60.2% |
| + KL only | 58.6% |
| + MRNCL + KL | 65.6% |
两个组件互补:MRNCL 保证能量方向,KL 平滑能量景观。
关键设计权衡
单步性能 vs 可扩展性:VFScale 在 N=1 时有时不如基线(26.6% vs 6.3% 看似好,但在某些设定下单步性能下降)→ MRNCL + KL 故意牺牲单步锐度以确保全局可导航性 → 计算越多获益越大。
内在 vs 外部验证器
训练外部验证器(0.99 相关性)反而比内在能量差 30% → 外部验证器无法区分微小质量差异,而内在能量函数与去噪过程深度耦合。
训练成本
| 任务 | 基线 | VFScale |
|---|---|---|
| 迷宫 | 2h | 6h |
| 数独 | 4h | 7h |
训练成本增加 2-3×,但换来巨大的推理能力提升。
个人思考
- “内在能量 > 外部验证器” 是反直觉但深刻的结果:专门训练的验证器(0.99 相关性)竟然不如模型自身的能量函数 → 因为能量函数与去噪过程共享同一表示空间,天然能区分更细微的质量差异。
- MRNCL 的”线性回归强制单调性” 是优雅的设计:不是简单地要求”好 > 坏”(对比学习),而是要求能量值与质量线性对应 → 提供更丰富的梯度信号。
- “故意牺牲单步性能换取可扩展性” 是测试时缩放的核心哲学:类似 o1 可能在简单问题上不如 GPT-4,但在难问题上远超 → 可扩展性 > 单步性能。
- hMCTS 的阶段切换利用了扩散模型的独特性质:高噪声时能量估计不可靠(像在大雾中搜索)→ 广搜不淘汰;低噪声时能量可靠(视野清晰)→ 深搜精确利用。
- 6×6 → 15×15 的 2.5× 泛化说明 VFScale 学到的不是”解 6×6 迷宫”而是通用的搜索和验证策略 → 这种泛化能力是测试时缩放的核心价值。