Semi-Supervised Preference Optimization with Limited Feedback¶
会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=ghwxbTx7do
代码: https://github.com/MLAI-Yonsei/SSPO
领域: 对齐RLHF
关键词: 偏好优化, 半监督学习, 伪标注, 奖励阈值, 数据效率
一句话总结¶
SSPO 把偏好优化重述成一个概率分类问题,从少量成对偏好标签中学到一个能可靠分开"赢/输"回答的奖励阈值,再用这个阈值给海量无配对样本(如 SFT 数据)打伪标签,配合课程式调度联合训练——只用 1% 的 UltraFeedback 就能稳定超过用 10% 数据训练的强基线。
研究背景与动机¶
领域现状:偏好优化(PO)是让 LLM 对齐人类价值的核心手段。从 RLHF、DPO 到 SimPO、ORPO、KTO,主流路线都依赖成对的偏好数据 \((x, y_w, y_l)\)——给定一个 prompt,标注者要从两个回答里挑出更优的那个。
现有痛点:这种成对标注极其昂贵,平均每条比较要花 5–10 分钟、$10–30 美元,专家标注在医疗、商业等专业领域更是瓶颈。为了省钱,已有工作转向合成反馈或用 LLM 自动标注,但这些做法缺乏可验证的 ground truth,质量难保证。
核心矛盾:一边是成对偏好标签稀缺且昂贵,另一边是大量现成的 SFT 数据(问答对、领域语料)虽然富含隐式偏好(连贯的思路、合适的语气),却因为没有显式偏好标签而被 PO 直接丢弃。用合成数据/自标注又会陷入"模型用自己的偏见标自己"的反馈回环,放大错误。
本文目标:在只有少量成对标签 + 大量无配对样本的设定下,把无配对数据里的隐式偏好真正用起来,既省标注成本又不牺牲对齐质量。作者把这个问题正式定义为半监督偏好优化(SSPO)。
切入角度:作者观察到,当奖励函数在少量成对数据上训练后,赢回答和输回答的奖励值会自然形成一个可分离的间隔。既然如此,是否存在一个奖励阈值,能以高概率把两类分开?如果存在,就能拿它给无标签数据打伪标签。
核心 idea:把偏好学习重述为概率二分类,理论上证明存在一个最优奖励阈值 \(\delta^*\),再用核密度估计在实践中求出这个阈值,给无配对数据做有理论保证的伪标注,最后用课程调度把成对与伪标注数据联合优化。
方法详解¶
整体框架¶
SSPO 的核心思路是:先用少量成对数据训练奖励函数 → 在奖励空间里找一个能分开赢/输的阈值 → 用阈值给海量无配对数据打伪标签 → 课程式联合训练策略模型。
奖励函数沿用 SimPO 的无参考形式 \(r_\theta(x, y) = \frac{\beta}{|y|}\log \pi_\theta(y\mid x)\),把语言模型自己的长度归一化对数似然当奖励,因此不需要额外的奖励模型或参考模型。成对数据 \(D_L\) 提供可靠监督,让赢回答的奖励稳定高于输回答;由此在赢/输奖励分布之间出现一个间隔,SSPO 用核密度估计在这个间隔里定位一个最小化贝叶斯风险的阈值 \(\hat\delta\)。对无配对数据 \(D_U\) 里的每个回答,只要其奖励超过 \(\hat\delta\) 就打伪标签 \(\tilde s = 1\)(赢),否则 \(\tilde s = 0\)(输)。最终训练目标是成对损失与伪标注损失的加权和,权重 \(\gamma'\) 随训练自适应衰减,实现"先学可靠的成对数据、再逐步倚重无配对数据"的课程。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["少量成对数据 D_L<br/>(x, y_w, y_l)"] --> B["偏好优化即概率分类<br/>SimPO 奖励 r_θ + Theorem 1"]
C["海量无配对数据 D_U<br/>(x_u, y_u)"] --> D["贝叶斯风险阈值伪标注<br/>KDE 估阈值 δ̂ + EMA 稳定"]
B --> D
D -->|"r_θ(x_u,y_u) > δ̂ ? 赢 : 输"| E["伪标签 s̃"]
B --> F["课程式自适应调度<br/>L = γ'·R_DL + (1-γ')·R_DU"]
E --> F
F --> G["对齐后的策略模型 π_θ"]
关键设计¶
1. 把偏好优化重述为概率分类,并证明最优阈值存在
SSPO 要给无配对数据打伪标签,前提是"奖励能不能可靠区分赢/输"这件事有理论依据,而不是拍脑袋设阈值。作者先把偏好学习重新建模为一个贝叶斯最优分类问题:定义偏好分类器 \(f_\theta(x, y, y') \to [0,1]\) 输出 \(y\) 优于 \(y'\) 的置信度,用 Bradley-Terry 形式 \(f_\theta = \sigma(r_\theta(x,y) - r_\theta(x,y'))\cdot P(s{=}1) + \sigma(r_\theta(x,y') - r_\theta(x,y))\cdot P(s{=}0)\) 把奖励差映射成偏好概率。对成对数据,由于标注总是 \(s = 1\),风险函数恰好退化为标准的偏好优化目标 \(\mathbb{E}_{D_L}[-\log\sigma(r_\theta(x, y_w) - r_\theta(x, y_l))]\)——这说明这套分类视角和现有 PO 是自洽的。
在此基础上,作者把"找阈值"形式化为最小化误分类风险 \(R(\delta) = P(s{=}1)\int_{-\infty}^{\delta} p(r\mid s{=}1)\,dr + P(s{=}0)\int_{\delta}^{\infty} p(r\mid s{=}0)\,dr\),它度量赢/输奖励分布的重叠面积。定理 1 证明:当赢、输奖励都服从均值满足 \(\mu_w > \mu_l\) 的次高斯分布时,对任意 \(\alpha \in (0,1)\) 存在最优阈值 \(\delta^*\) 落在区间 \([\mu_l + t_1, \mu_w - t_2]\) 内,使 \(P(\max_i r_\theta(x^{(i)}, y_l^{(i)}) \le \delta^* \le \min_j r_\theta(x^{(j)}, y_w^{(j)})) \ge 1 - \alpha\)。也就是说,只要奖励模型学出了足够间隔,就一定存在一个阈值以高概率把两类干净分开——这给伪标注提供了统计学上的合法性,而不是启发式过滤。
2. 基于贝叶斯风险阈值的伪标注
定理 1 只保证 \(\delta^*\) 存在,但它依赖未知的真实均值 \(\mu_w, \mu_l\),实践中算不出来。SSPO 的解法是:用核密度估计(KDE)从成对数据里估计赢、输回答的奖励密度 \(\hat p_w(r)\)、\(\hat p_l(r)\)(高斯核,带宽 \(h\)),然后数值搜索使估计贝叶斯风险 \(\hat R(\delta)\) 最小的 \(\hat\delta = \arg\min_\delta \hat R(\delta)\)。
有了这个实践阈值,SSPO 给每个无配对回答打伪标签 \(\tilde s_k = \mathbb{I}\{r_\theta(x_u^{(k)}, y_u^{(k)}) > \hat\delta\}\),并定义无配对数据的风险 \(R_{D_U}(f_\theta) = \frac{1}{n_U}\sum_k \ell(f_\theta, \tilde s_k)\cdot P_{D_U}(s {=} \tilde s_k)\)。这里有个巧妙处理:无配对样本只有单个回答、没有对照,作者引入一个虚拟对照 \(y_b\)——其奖励恰好落在决策边界上,于是单样本也能套进第一点里的偏好分类器框架。先验 \(P_{D_U}(s{=}1)\) 固定为 0.5,代表对无配对数据中赢回答比例的初始信念。由于奖励分布在训练中会漂移,阈值 \(\hat\delta\) 还用 EMA(指数滑动平均) 稳定,避免边界因为奖励非平稳而抖动或崩塌。和直接卡个固定分数的启发式过滤相比,这套阈值是从奖励分布、以最小误分类风险为目标推导出来的,更稳健。
3. 课程式自适应调度
把成对损失和伪标注损失简单等权相加是有风险的:训练早期奖励函数还没学好,赢/输分布重叠严重,此时的伪标签噪声很大,若过早倚重它们会放大错误(confirmation bias)。SSPO 用一个自适应系数 \(\gamma'\) 实现课程学习:\(L(f_\theta) = \gamma' \cdot R_{D_L}(f_\theta) + (1-\gamma')\cdot R_{D_U}(f_\theta)\),其中 \(\gamma' = \max\{\gamma_{\min}, \gamma_0 \cdot \exp(-\lambda\tau)\}\),初值 \(\gamma_0 = 1\)、随训练步 \(\tau\) 指数衰减,下界 \(\gamma_{\min} = n_L/(n_L + n_U)\) 取成对数据的占比。
效果是:开始时模型几乎只看可靠的成对数据,把它当锚点学到干净的偏好模式;随着奖励函数变好、间隔变清晰,伪标注无配对数据的权重逐渐上升并最终主导优化。这正好契合"模型先学干净模式、后才过拟合噪声"的早期学习现象——在伪标签最不可信的早期给它最低权重,在它最可信的后期才放手用,从而既吃到大规模无配对数据的红利,又不被早期噪声带偏。
损失函数 / 训练策略¶
最终目标即第三点的加权损失 \(L(f_\theta) = \gamma' R_{D_L} + (1-\gamma') R_{D_U}\)。奖励采用 SimPO 形式(含缩放系数 \(\beta\) 和奖励间隔 \(\Delta\)),无需参考模型。阈值 \(\hat\delta\) 每步由 KDE 重估并以 EMA 平滑。无配对先验默认 0.5。训练以已在 UltraChat 上微调好的现成模型为初始权重。
实验关键数据¶
主实验¶
真实数据上以 UltraFeedback 作为成对数据,分别用 1%(\(n_L{=}611\))和 10%(\(n_L{=}6{,}113\))模拟数据稀缺,无配对数据取 10% 的 UltraChat-200k(\(n_U{=}20{,}786\))。评测用 AlpacaEval2.0(LC 长度控制胜率、WR 原始胜率)与 MT-Bench,GPT-4-Turbo 当裁判。
| 数据集 / 骨干 | 设置 | 指标 | SSPO | 最强基线 | 说明 |
|---|---|---|---|---|---|
| UltraFeedback / Mistral-7B | 1% | LC | 26.7 | 18.2 (SPA) | 1% 即超所有 1% 基线 |
| UltraFeedback / Mistral-7B | 1% vs 基线 10% | LC | 26.7 | 19.1 (SPA, 10%) | 1% 数据超基线 10% |
| UltraFeedback / Mistral-7B | 10% | LC | 30.0 | 19.1 (SPA) | 全面领先 |
| UltraFeedback / Phi-2 | 1% | LC / WR | 7.2 / 4.1 | 4.3 / 2.6 | 小模型同样领先 |
| UltraFeedback / Llama3-8B | 10% | LC / WR | 20.7 / 20.8 | 16.7 / 18.2 (KTO) | 领先 KTO |
跨域实验(医疗 UltraMedical-Preference、商业 DSP Business)上,Llama3 系骨干的 LC 在各数据规模下都打败最强基线,验证了 SSPO 在专业领域同样有效。
消融实验¶
| 配置 | 关键指标(Mistral, 10% UF, LC/WR) | 说明 |
|---|---|---|
| Full(自适应调度 ✓) | 30.0 / 20.7 | 完整模型 |
| 固定 \(\gamma'{=}0.5\) | 29.3 / 19.8 | 去掉调度仍强于基线,但掉点 |
| 固定 \(\gamma'{=}0.1\) | 27.5 / 18.1 | 过早倚重无配对数据,掉得更多 |
| 先验 0.5 | 30.0 / 20.7 | 最佳默认 |
| 先验 0.1 / 0.9 | 25.6 / 25.7 (LC) | 过于自信的先验过拟合噪声伪标签 |
玩具实验(GPT-2-small 当奖励模型,最短词为优)显示:noise-free 下 \(n_L{=}100\) 时 SSPO 达 0.960 准确率(SimPO 仅 0.817);即便 50% 标签噪声,SSPO 在 \(n_L{=}10\) 时仍有 0.757,远超 DPO/SimPO 的 ~0.59,证明对标签噪声的鲁棒性。
关键发现¶
- 自适应调度贡献关键:去掉后即使固定 \(\gamma'\) 也仍强于基线,但固定值越偏向无配对数据(0.1)掉点越多——说明"先成对后无配对"的课程顺序是吃满无配对红利的前提。
- 先验 0.5 最稳:偏离中性(0.1/0.9)会让模型过拟合噪声伪标签;但即便最差先验,SSPO 仍显著超基线,说明方法整体很耐用。
- 数据效率惊人:Mistral 在 1% UltraFeedback 上即超过所有用 10% 数据训练的基线,把成对标注需求压缩约一个数量级。
- 奖励分布演化可视化:训练早期赢/输分布大量重叠时调度器优先靠成对损失当锚点,间隔拉开后 KDE+EMA 阈值稳定跟踪最优边界,避免确认偏误与奖励非平稳带来的崩塌。
亮点与洞察¶
- 把"找阈值"上升为有定理保证的问题:大多数伪标注方法靠经验卡阈值,SSPO 用次高斯假设证明最优阈值存在、再用 KDE 求贝叶斯风险最小点,让伪标注从启发式变成有统计依据的操作——这是最让人"啊哈"的地方。
- 虚拟对照 \(y_b\) 的技巧:单个无配对回答本来没法做成对比较,引入一个落在决策边界上的假想对手,就把单样本无缝接入了成对分类器框架,复用同一套 \(f_\theta\)。
- 课程调度对接早期学习理论:用 \(\gamma'\) 指数衰减让模型"早期信成对、后期信伪标签",正好规避了自训练最怕的确认偏误,这个调度思路可迁移到任何 pseudo-labeling 的半监督场景。
- 无参考奖励降本:沿用 SimPO 的长度归一化似然当奖励,省掉参考模型与奖励模型,整套方法的额外开销主要只在 KDE 估阈值。
局限与展望¶
- 依赖奖励分布的可分性假设:定理 1 建立在赢/输奖励次高斯且 \(\mu_w > \mu_l\) 上。若成对数据太少或太脏,奖励分布迟迟不分开,阈值就不可靠,伪标签会带噪。
- 固定先验是简化:\(P_{D_U}(s{=}1)\) 全程固定为 0.5,假设无配对数据里赢/输大致各半;当无配对数据本身质量偏高或偏低、真实比例远离 0.5 时,这个假设可能不成立(实验也显示偏离 0.5 会掉点)。
- 伪标签是硬阈值:超过 \(\hat\delta\) 即判赢、否则判输,边界附近的样本被强行二分,没有利用置信度做软加权,边界模糊区可能引入误标。
- 改进思路:可以让先验随训练自适应、或对靠近阈值的样本做置信度软标签 / 丢弃;也可探索把 KDE 阈值与具体领域的奖励尺度解耦。
相关工作与启发¶
- vs DPO / SimPO / ORPO / KTO:这些标准 PO 只用成对标签、直接丢掉无配对数据,数据效率受限;SSPO 复用 SimPO 奖励但额外把无配对数据通过阈值伪标注用起来,在 1% 数据下大幅反超。
- vs SSRM(半监督奖励建模):SSRM 也在半监督设定下用自训练做奖励建模,但 SSPO 的差异在于给伪标注一个最优阈值存在性定理 + 贝叶斯风险最小化的求解,理论更扎实,且直接优化策略而非单独奖励模型。
- vs SPA(Spread Preference Annotation):SPA 靠反复用改进后的偏好模型自标注来渐进对齐,计算开销大且可能放大错误;SSPO 不做迭代自标注,一次性用 KDE 阈值打伪标签 + 课程调度,更稳更省,实验中在多数设置下超过 SPA。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 把偏好优化重述为概率分类并给伪标注阈值一个存在性定理,半监督 PO 这一设定本身也少见。
- 实验充分度: ⭐⭐⭐⭐ 覆盖玩具+真实、3 个骨干、通用+医疗+商业三域、含先验与调度消融,但多为 GPT 裁判的胜率类指标。
- 写作质量: ⭐⭐⭐⭐ 理论与实践衔接清晰,图示直观,理论假设的实际成立性可再多讨论。
- 价值: ⭐⭐⭐⭐⭐ 把成对标注需求压缩约一个数量级,对成本敏感的专业领域对齐很实用。