从 SVM 到分布对齐:后训练方法的另一个统一视角

关于 Agentic RL 相关的我们之前已经介绍过几篇了:

要说这类任务和普通任务的区别,可能最明显的就是「Step」这一步的处理了。和 LLM 不同,长程 agent 任务(尤其是机器人)经常会有物理意义上的多步,那是真正的 step,而不是多步推理那种多个 token。正是因为这种相对稳定的 step 特性,所以这种类似 “锚点” 的 step 就能给 RL 带来不一样的启示。今天我们就来介绍一个有意思的设计,它通过一个分类器把稀疏的结果奖励转为稠密的过程奖励。

撞名的SVM

方法名叫 SVM,不是机器学习年代支持向量机那个 SVM,此 SVM 全称 Success Visitation Matching,来自 paper Learning Process Rewards via Success Visitation Matching for Efficient RL (arXiv:2606.23640)[4],思路很简单——用一个分类器区分历史成功和失败轨迹,RL 时让策略模仿成功轨迹中的 state-action 分布,同时避免失败轨迹中的分布。因为同时关注成功和失败轨迹的 state-action 分布,因此能够提供是否朝着任务完成方向取得进展的稠密反馈。

具体来说,在每一步,分类器会判断当前的 state-action 是否「更可能」出现在成功轨迹的访问分布中,还是「更可能」出现在失败轨迹的访问分布中,据此给分,引导策略去模仿成功行为,「同时」避免失败行为。

实现起来也简单,对成功轨迹和失败轨迹训练一个二分类判别器,推理时把当前的状态(往往是一张当前状态图)、动作,可能也有时间步,一起丢给模型,让模型输出一个概率值。拿到概率值后,通过下面的式子转为奖励:

rhsvm(s,a):=rout(s)+λclipβ(logw^h+(s,a)w^h(s,a))forclipβ(x):={βsign(x)x>βxxβ(1)r_h^{\mathrm{svm}}(s, a) := r^{\mathrm{out}}(s) + \lambda \cdot \mathrm{clip}_\beta \left( \log \frac{\widehat{w}_h^{+}(s, a)}{\widehat{w}_h^{-}(s, a)} \right) \quad \text{for} \quad \mathrm{clip}_\beta(x) := \begin{cases} \beta \cdot \mathrm{sign}(x) & |x| > \beta \\ x & |x| \leq \beta \end{cases} \tag{1}

两部分,out 中间都是 0,最后成功就是 1,不成功 0,后面的 clip 项其实是一个成功/失败比,分母其实就是 1-分子(二分类),这里指的是 w^h(s,a)=1w^h+(s,a)\widehat{w}_h^{-}(s,a) = 1 - \widehat{w}_h^{+}(s,a)ww 就是这个分类器。

这里取对数是放大对错的惩罚,成功概率高(分子大)时,得到大的正奖励,失败概率高(分子小)时,得到大的负奖励,这比直接用概率值好得多——无论是大小还是方向。

因为不到最后一步不知道成功失败,所以,svm 能成的关键就是:如果我们过去曾访问过某个状态–动作对 (s,a)(s,a),并且从该状态–动作最终成功完成了任务(即 wh+(s,a)>0w_h^{+}(s,a)>0),那么未来再次到达同一个 (s,a)(s,a) 时,我们仍然能够再次成功。

这就又回到了我们开始时提到的「稳定 step」,论文中叫「确定性状态转移」,这是一个关键的环境假设。不过论文后面实验证明,也能有效扩展到现实世界中那些并非严格确定性的环境。

其实稍微放开点来看,任何一个 RM 其实都有可能转换为 dense,无非找到一个合适的「代理」,SVM 是有确定性状态转移,所以代理有了基础,但普通的 LLM 任务就比较困难,不过数学任务貌似也有天然的类似「锚点」,此类方案之前看到过,一时半会想不起来了。

总的来说,因为历史数据表明 (s,a) → 最终成功,那你又来到了 (s,a),你依然可能成功。既然这样,我就可以给一个大点的 reward,这样做并不会导致策略偏离真正目标(因为这些状态本来就是通向成功的)。于是稀疏奖励就变成了稠密奖励,训练效率大大提升。

SVM、DPO与KL

看论文的时候其实有一个很自然的感受——这个方法和 DPO 很像啊,尤其是看到对数比的时候。我们看,SVM 的奖励公式是:

rh(s,a)=logw^h+(s,a)w^h(s,a)=logw^h+(s,a)logw^h(s,a)(2)r_h(s,a) = \log \frac{\widehat{w}_h^{+}(s,a)}{\widehat{w}_h^{-}(s,a)} = \log \widehat{w}_h^{+}(s,a) - \log \widehat{w}_h^{-}(s,a) \tag{2}

其目的是拉高好行为的概率,压低坏行为的概率。DPO 的隐式奖励是:

r(x,y)=βlogπθ(yx)πref(yx)(3)r(x,y) = \beta \log \frac{\pi_\theta(y|x)}{\pi_{ref}(y|x)} \tag{3}

在计算 Loss 时,DPO 比较的是好回答(ywy_w)和坏回答(yly_l)的对数几率差:

logπθ(ywx)πref(ywx)logπθ(ylx)πref(ylx)(4)\log \frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \log \frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)} \tag{4}

它们其实都是直接用数据分布的 log\log 差值来充当奖励。

我们继续,论文证明了,由 SVM 过程奖励诱导的策略优化目标,与一种 KL 正则强化学习之间存在密切联系。当令 β\beta \rightarrow \infty 时,rsvmr_{\text{svm}} 将不再进行截断。此时,任意策略 π\pi 所获得的期望 SVM 奖励可以表示为:

Eπ[h=1Hrhsvm(sh,ah)]=J(π)+λh=1HEπ[logw^h+(sh,ah)w^h(sh,ah)]=J(π)+λh=1HEπ[logwhπ(sh,ah)w^h(sh,ah)logwhπ(sh,ah)w^h+(sh,ah)](5)\begin{align*} \mathbb{E}^\pi \left[ \sum_{h=1}^{H} r_h^{\mathrm{svm}}(s_h, a_h) \right] &= \mathcal{J}(\pi) + \lambda \cdot \sum_{h=1}^{H} \mathbb{E}^\pi \left[ \log \frac{\widehat{w}_h^{+}(s_h, a_h)}{\widehat{w}_h^{-}(s_h, a_h)} \right] \\ &= \mathcal{J}(\pi) + \lambda \cdot \sum_{h=1}^{H} \mathbb{E}^\pi \left[ \log \frac{w_h^{\pi}(s_h, a_h)}{\widehat{w}_h^{-}(s_h, a_h)} - \log \frac{w_h^{\pi}(s_h, a_h)}{\widehat{w}_h^{+}(s_h, a_h)} \right] \end{align*} \tag{5}

其中, J(π)\mathcal{J}(\pi) 表示策略 π\pi 的结果奖励,

whπ(s,a)=Pπ[sh=s,  ah=a](6)w_h^{\pi}(s, a) = \mathbb{P}^{\pi}[s_h = s, \; a_h = a] \tag{6}

表示策略 π\pi 在第 hh 个时间步访问状态–动作对 (s,a)(s,a) 的概率,即策略 π\pi 的状态–动作访问分布。

式 5 可以进一步写成 KL 形式:

Eπ[h=1Hrhsvm(sh,ah)]=J(π)+λh=1H[KL(whπw^h)KL(whπw^h+)](7)\mathbb{E}^\pi \left[ \sum_{h=1}^{H} r_h^{\mathrm{svm}}(s_h, a_h) \right] = \mathcal{J}(\pi) + \lambda \cdot \sum_{h=1}^{H} \left[ \mathrm{KL}(w_h^{\pi} \,\|\, \widehat{w}_h^{-}) - \mathrm{KL}(w_h^{\pi} \,\|\, \widehat{w}_h^{+}) \right] \tag{7}

它实际上就是一种访问分布匹配:

  • 减小与成功轨迹访问分布的 KL(让自己的行为越来越像成功轨迹);
  • 增大与失败轨迹访问分布的 KL(让自己的行为越来越不像失败轨迹)。

再次回顾 DPO,RL 目标如下:

maxπθE(x,y)πθ[r(x,y)]βDKL(πθ(yx)πref(yx))(8)\max_{\pi_\theta} \mathbb{E}_{(x,y) \sim \pi_\theta} [r(x,y)] - \beta D_{KL}(\pi_\theta(y|x) \parallel \pi_{ref}(y|x)) \tag{8}

其实就是,模型不仅要拿高奖励(rr),而且生成的文本分布 πθ\pi_\theta 不能偏离基座模型 πref\pi_{ref} 太远。DPO 从这个目标出发,证明了最优策略 π\pi^* 和隐式奖励 rr 之间存在一个严格的代数对应关系

r(x,y)=βlogπ(yx)πref(yx)+βlogZ(x)(9)r(x,y) = \beta \log \frac{\pi^*(y|x)}{\pi_{ref}(y|x)} + \beta \log Z(x) \tag{9}

进一步得到 DPO 的目标:

LDPO(πθ;πref)=E(x,yw,yl)D[logσ(βlogπθ(ywx)πref(ywx)βlogπθ(ylx)πref(ylx))](10)\mathcal{L}_{\mathrm{DPO}}(\pi_\theta; \pi_{\mathrm{ref}}) = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma \left( \beta \log \frac{\pi_\theta(y_w \mid x)}{\pi_{\mathrm{ref}}(y_w \mid x)} - \beta \log \frac{\pi_\theta(y_l \mid x)}{\pi_{\mathrm{ref}}(y_l \mid x)} \right) \right] \tag{10}

所以,你看,其实本质上就是用「两个分布之间 KL 散度决定的相对势能」来代替「难以计算的那个隐式奖励」。从这个角度看,SVM、DPO 在结构上是极其相似的,只是作用的分布空间不同。

那公式 10 能不能也写成 KL 形式呢?直觉上应该可以,但严格来说不行——因为这里多了一个 sigmoid。直观来看,SVM 能直接预测当前状况的「好坏」——分类器对每个 (s,a)(s,a) 显式打分,所以 log-ratio 随手可算、在策略下取期望就是干净的 KL 差(公式 7);而 DPO 的 π\pi^* 从头到尾没被显式计算过,你手里只有「A 比 B 好」这种偏好对,不能对单个 yy 打绝对分,只能对 (yw,yl)(y_w, y_l) 打相对分。Bradley-Terry 模型 P(ywyl)=σ(Δr)P(y_w \succ y_l) = \sigma(\Delta r) 就是这个「间接推断」的工具,sigmoid 由此引入,KL 的闭式结构也随之被打破。

不过,如果把公式 9 代回公式 8,KL 就出来了:

maxπθ  Eπθ[r(x,y)]βDKL(πθπref)=βEπθ ⁣[logπ(yx)πref(yx)logπθ(yx)πref(yx)]+βlogZ(x)=βEπθ ⁣[logπ(yx)πθ(yx)]+βlogZ(x)=βDKL(πθπ)+βlogZ(x)(11)\begin{align*} &\max_{\pi_\theta} \; \mathbb{E}_{\pi_\theta}[r(x,y)] - \beta \, D_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}}) \\ &= \beta \, \mathbb{E}_{\pi_\theta}\!\left[\log \frac{\pi^*(y|x)}{\pi_{\text{ref}}(y|x)} - \log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)}\right] + \beta \log Z(x) \\ &= \beta \, \mathbb{E}_{\pi_\theta}\!\left[\log \frac{\pi^*(y|x)}{\pi_\theta(y|x)}\right] + \beta \log Z(x) \\ &= -\beta \, D_{\text{KL}}(\pi_\theta \| \pi^*) + \beta \log Z(x) \end{align*} \tag{11}

第二步到第三步,πref\pi_{\text{ref}} 约掉了;Z(x)Z(x) 不依赖 πθ\pi_\theta,所以 DPO 的优化目标本质上就是 minπθDKL(πθπ)\min_{\pi_\theta} D_{\text{KL}}(\pi_\theta \| \pi^*)——公式 10 是对它的经验近似。

抽象一层:对数密度比奖励

进一步看,SVM 和 DPO 其实共享同一个范式——给定正负两个锚分布,用对数密度比充当奖励。我们将这一模式抽象出来。

给定评估单元 zz、正锚分布 d+d^+(想靠近的)、负锚分布 dd^-(想远离的),定义奖励:

r(z)=logd+(z)d(z)(12)r(z) = \log \frac{d^+(z)}{d^-(z)} \tag{12}

对任意策略 π\pi 取期望,恒等展开一步:

Eπ[r(z)]=DKL(πd)DKL(πd+)(13)\mathbb{E}_\pi[r(z)] = D_{\text{KL}}(\pi \| d^-) - D_{\text{KL}}(\pi \| d^+) \tag{13}

优化目标变成了对比 KL 对齐:拉近 d+d^+,推远 dd^-

SVM DPO
单元 zz (sh,ah)(s_h, a_h),逐步 yy,整条回答
正锚 d+d^+ 成功轨迹访问分布 w^+\widehat{w}^+ 隐式最优策略 π\pi^*
负锚 dd^- 失败轨迹访问分布 w^\widehat{w}^- 参考策略 πref\pi_{\text{ref}}
奖励 logw^+w^\log \frac{\widehat{w}^+}{\widehat{w}^-} βlogππref\beta \log \frac{\pi^*}{\pi_{\text{ref}}}
对比 KL 公式 (7):两项都显式保留 β[DKL(πθπref)DKL(πθπ)]\beta[D_{\text{KL}}(\pi_\theta | \pi_{\text{ref}}) - D_{\text{KL}}(\pi_\theta | \pi^*)]

这里有一个有趣的结构差异:把 DPO 的对比 KL 代回公式 8 的完整目标(奖励 - KL 惩罚),DKL(πθπref)D_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}}) 恰好与惩罚项对消,整个目标坍缩为:

maxβDKL(πθπ)(14)\max -\beta \, D_{\text{KL}}(\pi_\theta \| \pi^*) \tag{14}

推力和拉力合为一力。SVM 没有这种对消(pair 对),推和拉始终显式共存——这正是 SVM 能提供「同时模仿成功、同时远离失败」这种双向稠密信号的结构原因。

直观来看,SVM 是直接预测当前状况的「好坏」,推和拉是显式的,而 DPO 没办法直接看,只能借助 pair 数据「隐式」展示好坏。

其实很多算法都能放到这个框架下面,可以说,只要你的奖励能写成两个分布的对数比,就能自动获得对比 KL 对齐的结构——区别只在于 d+d^+dd^- 从哪来、zz 的粒度是什么。

再抽象一层:分布对齐

既然 DPO 和 SVM 都能放进对数密度比奖励的框架,那 RLHF(PPO 版本)和 SFT 呢?

先看 RLHF。它的目标就是公式 8:

maxπθEπθ[r(x,y)]βDKL(πθπref)\max_{\pi_\theta} \mathbb{E}_{\pi_\theta}[r(x,y)] - \beta \, D_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}})

前面已经证明这等价于 minDKL(πθπ)\min D_{\text{KL}}(\pi_\theta \| \pi^*)(公式 11)。区别只是实现路径:RLHF 先训一个显式奖励模型 rϕr_\phi,再用 PPO 采样优化;DPO 跳过奖励模型,直接用偏好对。目标函数一模一样,优化方式不同。

再看 SFT。它的目标是:

LSFT=E(x,y)D[logπθ(yx)]=DKL(pdataπθ)+const(15)\mathcal{L}_{\text{SFT}} = -\mathbb{E}_{(x,y) \sim \mathcal{D}}[\log \pi_\theta(y|x)] = D_{\text{KL}}(p_{\text{data}} \| \pi_\theta) + \text{const} \tag{15}

这里只有一个正锚 d+=pdatad^+ = p_{\text{data}},没有负锚,纯拉无推。而且 KL 方向也不一样——期望在 pdatap_{\text{data}} 下取(前向 KL),不是在 πθ\pi_\theta 下取(反向 KL)。我们放到一起看:

方法 d+d^+ dd^- KL 方向 实现路径
SFT pdatap_{\text{data}} 前向 DKL(d+π)D_{\text{KL}}(d^+ | \pi) 极大似然
RLHF π\pi^* πref\pi_{\text{ref}}(惩罚项) 反向 DKL(ππ)D_{\text{KL}}(\pi | \pi^*) 显式 rϕr_\phi + PPO
DPO π\pi^* πref\pi_{\text{ref}}(对消) 反向 DKL(ππ)D_{\text{KL}}(\pi | \pi^*) 偏好对
SVM w^+\widehat{w}^+ w^\widehat{w}^- 反向 显式分类器

它们全都是分布对齐(一句废话)——让策略分布去匹配某个目标分布。区别体现在三个轴:锚的数量(一个还是两个)、KL 方向(前向还是反向)、锚的可观测性(显式还是隐式)。

最后,关于 KL 方向的差异值得多说一句。前向 KL(SFT)是 mode-covering:pdatap_{\text{data}} 有概率的地方 πθ\pi_\theta 也必须有概率,倾向覆盖所有模式;反向 KL(RL/DPO)是 mode-seeking:πθ\pi_\theta 有概率的地方 π\pi^* 也应该有概率,倾向集中到最优模式。这解释了一个常见观察——SFT 出来的模型更「保守」(什么都会一点),RL/DPO 出来的模型更「锐利」(在好的方向上更强,但可能丢掉多样性)。说到这里又忽然想到了我们在《LLM 强化的“炼金术”:主流开源模型的 RL 优化策略赏析 | 长琴[5]》中提到的 MiniLLM[6] 中的蒸馏,基本上一个意思有没有。

这个 KL 方向的差异还能解释更多东西。在《你可能没那么懂 SFT:SFT 与 RL 的爱恨纠葛 | 长琴[7]》中我们详细分析过 SFT 与 RL 的关系,其中有几个结论与本文的框架直接呼应:

  • RL’s Razor:遗忘程度由 DKL(π0π)D_{\text{KL}}(\pi_0 \| \pi) 决定,on-policy RL 隐式偏向 KL 更小的解,SFT 可以收敛到离 base 任意远的分布。这恰好对应我们表格中的 KL 方向差异——反向 KL(RL/DPO)是 mode-seeking,天然留在 base 附近;前向 KL(SFT)是 mode-covering,没有这个约束,所以能漂得很远。
  • HPT 的统一梯度视角:HPT 从梯度形式证明 SFT 和 RL 是同一 policy gradient 估计器的不同配置——参考策略 πref\pi_{\text{ref}} 和优势函数 A^\hat{A} 的取值不同而已。这和我们从目标函数层面得出的结论(都是分布对齐)互为印证:一个看梯度,一个看目标,殊途同归。
  • GFT 的 SFT=RL 分析:GFT 证明 SFT 的隐式优势是 A^SFT=πβ/πθ\hat{A}_{\text{SFT}} = \pi_\beta / \pi_\theta,当 πθ\pi_\theta 对陌生 token 概率极低时,权重 1/πθ1/\pi_\theta 爆炸,引发梯度不稳定和熵崩溃。用我们的框架看,这正是「只有 d+d^+ 没有 dd^-」的退化代价:没有负锚提供「什么该避免」的信号,所有优化压力都集中在拉高 d+d^+ 上,低概率 token 被暴力拽上去时自然不稳定。

小结

本文从 Agentic RL 的优化算法 SVM 出发,展示如何利用环境相对稳定的「锚」来提供密集过程奖励,进而联想到 DPO,并从中抽象出对数密度比奖励(公式 12-13)这个统一形式。再进一步,把 RLHF 和 SFT 也纳入,发现所有这些方法本质上都是分布对齐——差异仅在锚的数量、KL 方向、以及锚的可观测性。这个视角也与我们此前对 SFT 与 RL 关系的分析(HPT 统一梯度、RL’s Razor 遗忘定律、GFT 的 SFT=RL)高度吻合。

Reference

[1] GiGPO:双层级优势函数驱动的Agent强化学习新范式 | 长琴: https://yam.gift/2025/07/25/NLP/LLM-Training/2025-07-25-GiGPO/
[2] COPO:基于认知模式的 Step-Level Agentic RL 优化 | 长琴: https://yam.gift/2026/04/23/NLP/LLM-Training/2026-04-23-COPO/
[3] GAGPO:如果把GiGPO拉回PPO+GAE | 长琴: https://yam.gift/2026/05/18/NLP/LLM-Training/2026-05-18-GAGPO/
[4] Learning Process Rewards via Success Visitation Matching for Efficient RL (arXiv:2606.23640): https://arxiv.org/abs/2606.23640
[5] LLM 强化的“炼金术”:主流开源模型的 RL 优化策略赏析 | 长琴: https://yam.gift/2026/01/14/NLP/LLM-Training/2026-01-14-Open-LLM-RL-ShowCase/
[6] MiniLLM: https://arxiv.org/abs/2306.08543
[7] 你可能没那么懂 SFT:SFT 与 RL 的爱恨纠葛 | 长琴: https://yam.gift/2026/06/01/NLP/LLM-Training/2026-06-01-SFT-vs-RL/