PALC: Preference Alignment via Logit Calibration¶
会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=0cmuYj3WeG
代码: https://github.com/s4n9hyun/PALC
领域: 对齐RLHF / LLM效率 / 测试时对齐
关键词: 测试时对齐, logit 校准, 表征工程, 瓶颈结构, 偏好优化
一句话总结¶
PALC 给冻结的大模型外挂一个极小的"校准模块",把对齐干预从纠缠的隐空间挪到天然解耦的词表 logit 空间——只把隐状态当只读上下文、生成位置相关的 logit 偏移量加到原始 logit 上,仅增加 0.002%–0.13% 参数、几乎不掉推理速度,就能在测试时实现可调强度的偏好对齐。
研究背景与动机¶
领域现状:让 LLM 对齐人类偏好的主流是训练时对齐(RLHF、DPO 及其参数高效变体)。这类方法效果好,但会把行为"烤死"在权重里,得到的是静态模型,想换对齐目标就得重训。为此学界转向测试时对齐——在推理时动态调整一个冻结模型的行为,无需改参数。
现有痛点:测试时对齐分裂成两条路,各有硬伤。第一条是引导解码(ARGS、GenARM、CARDS 等),用一个外部奖励模型给 LLM 的输出概率打分、引导 token 选择;但这要同时跑两个大模型,推理成本翻倍、延迟飙升(GenARM 延迟 3.17×、ARGS 4.40×)。第二条是表征工程(RepE),直接改冻结 LLM 的内部激活;但隐表征处于叠加态(superposition)——模型用重叠、非正交的方向编码比神经元更多的特征,于是为了控制一个概念去改激活,会连带搞坏不相关的概念,导致连贯性崩塌。
核心矛盾:现有方法被逼着在计算效率和自适应控制之间二选一。引导解码效率差;RepE 内部又有一个"控制困境"——静态方法(CAA、BiPO)用固定 steering 向量,省但不会随上下文变;动态方法(RE-Control)能做位置相关控制,却要在每步生成时做梯度优化,把测试时该省的算力又赔进去了。根子在于:在叠加态的隐空间里做干预,本身就既危险又低效。
本文目标:能不能在不牺牲计算效率的前提下,实现动态、位置相关、强度可调的对齐?
切入角度:作者注意到隐空间之所以麻烦,是因为它纠缠;而模型最后一层的 logit / 词表空间天然是解耦的——每一维唯一对应一个 token,改某个 logit 对其他 token 概率的影响是可预测的 \(\partial p_i/\partial l_j = p_i(\delta_{ij}-p_j)\)。如果只在这层做干预、把隐状态退化成"只读上下文",就能绕开叠加态问题。
核心 idea:用一个轻量瓶颈模块读取隐状态、在词表 logit 空间学习并生成位置相关的校准向量,直接加到原始 logit 上完成偏好对齐——既不碰内部表征,也不挂外部奖励模型。
方法详解¶
整体框架¶
PALC 在一个冻结的基座 LLM(\(\pi_\text{base}\))旁边挂一个轻量校准模块 \(\theta\)。在每个解码步 \(t\),基座模型照常吐出最后一层隐状态 \(h_t \in \mathbb{R}^H\) 和原始 logit \(l_t \in \mathbb{R}^V\)。校准模块只读 \(h_t\) 作为上下文,经过一个瓶颈结构压缩出位置相关的校准向量 \(m_t \in \mathbb{R}^V\),再以一个固定缩放因子 \(\gamma\) 加回到原始 logit 上,得到校准后的 logit \(l'_t = l_t + \gamma \cdot m_t\),最后照常 softmax 采样。整条链路最关键的一点是:\(m_t\) 在计算上依赖 \(h_t\),但不回写、不修改 \(h_t\)——干预的"信息源"(纠缠的隐状态)和干预的"落点"(解耦的 logit)被彻底解耦。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["冻结基座 LLM<br/>输出 h_t 与原始 logit l_t"] -->|h_t 仅作只读上下文| B["词表空间干预<br/>不回写隐状态"]
B --> C["瓶颈式校准模块<br/>压缩 h_t 抽偏好信号"]
C --> D["生成校准向量 m_t (词表维)"]
D --> E["缩放因子 γ 调强度<br/>l'_t = l_t + γ·m_t"]
E --> F["校准后 logit → 采样输出"]
关键设计¶
1. 词表空间干预:把对齐落点从纠缠隐空间挪到解耦 logit
这一条直接针对 RepE 的叠加态痛点。隐状态里多个语义概念共享重叠方向,改一个方向会级联污染别的能力;而词表 logit 空间每一维唯一对应一个 token,是"天然解耦的接口"。PALC 的做法是把隐状态 \(h_t\) 严格当作只读上下文,干预只发生在最终 logit 上。这样做的好处是可解释且可控:对某个 logit \(l_i\) 加一个小量 \(\Delta l_i\),该 token 概率近似变化 \(p_i(1-p_i)\Delta l_i\),其余 token 按各自概率成比例重分配(雅可比 \(\partial p_i/\partial l_j = p_i(\delta_{ij}-p_j)\)),不会出现隐空间那种不可预测的级联崩坏。这也是和 CAA/RE-Control 这类"直接改激活"方法的本质区别——后者要么用静态向量缺乏适应性,要么靠在线梯度优化付出效率代价,而 PALC 在解耦空间里既能动态又安全。
2. 瓶颈式校准模块:用低秩子空间逼出"本质偏好信号"
校准向量的生成走一个瓶颈结构(bottleneck \(B \ll H\)),公式上是先降维再升维:\(z_t = \mathrm{ReLU}(W_\text{down} h_t)\),\(m_t = W_\text{up} z_t\),其中 \(W_\text{down}\in\mathbb{R}^{B\times H}\) 把隐状态压到瓶颈维 \(B\),\(W_\text{up}\in\mathbb{R}^{V\times B}\) 再投到词表维。这个"先压窄再放开"的约束逼着模块只能抽取最本质的偏好信号,从而把参数量压到极致——7B 模型(\(H{=}4096,V{=}32000\))取 \(B{=}256\) 时只要约 9.2M 参数、占基座 0.13%,每 token 复杂度 \(O(B(H+V))\),不到末层投影的 7%。作者还从理论上论证瓶颈诱导了强低秩结构:校准空间 \(\mathcal{C}=\{W_\text{up}W_\text{down}h\}\) 维度至多为 \(B\),而偏好优化会让有效维度 \(d_\text{eff}=(\sum_i\sigma_i)^2/\sum_i\sigma_i^2 \ll B\)(\(\sigma_i\) 为 \(W_\text{up}W_\text{down}\) 的奇异值)——即人类偏好真的集中在出乎意料低维的流形上,这也是为什么极小的模块就够用。
3. 固定缩放因子 γ:一个标量在推理时调对齐强度
PALC 不去学 token 级的复杂自适应权重,而是用一个固定标量 \(\gamma\) 来缩放整条校准向量:\(l'_t = l_t + \gamma\cdot m_t\)。它的价值在于部署灵活性——同一个训练好的校准模块,推理时只改 \(\gamma\) 就能在"保留基座能力"和"强化偏好"之间滑动:\(\gamma<1\) 干预更轻、更像原模型,\(\gamma>1\) 对齐更强。无需任何重训。实验显示在 \(\gamma\in[0.5,3.0]\) 区间性能稳定(55.3%–58.2% 胜率),\(\gamma{=}1.0\) 最优(训练已把校准幅度优化到位),而 \(\gamma{=}10.0\) 会因为偏离基座分布的 KL 过大而崩到 38.7%。这种"简单到只调一个数"的控制,正是它相对动态 RepE 方法的体面之处。
损失函数 / 训练策略¶
PALC 用一个简化的偏好损失端到端训练校准模块,直接拉大"被偏好回答"和"被拒绝回答"的对数似然差:
对数概率只在 prompt 之后的回答部分计算,避免模块去记忆 prompt。它和标准 DPO 有三处关键不同:其一,去掉了与参考模型的 KL 项——因为冻结基座本身就约束了优化空间(校准模块只能加 logit 偏移,无法造成剧烈分布漂移);其二,训练时不需要再维护和前向一个参考模型,显存约省一半、吞吐翻倍;其三,梯度流自然鼓励稀疏校准——只在确有必要处调 logit,多余干预只会增加复杂度而不改善偏好 margin,反而损害泛化,于是模型学会"最小干预"。配置上:在 HH-RLHF 训练集训 1 epoch,batch size 4、梯度累积 4、学习率 \(1\times10^{-5}\)、\(B{=}256\),推理 \(\gamma{=}1.0\)。
实验关键数据¶
主实验¶
基座为 argsearch/llama-7b-sft-float32,全部在 Dahoas/full-hh-rlhf(helpful & harmless 对话偏好对)上训练评测,90/10 切分。评测用 GPT-5 在 helpfulness/harmlessness/relevance/accuracy/insightfulness 五个维度做成对比较,报告 Win+½Tie。下表是 PALC 对各基线的成对胜率:
| PALC vs. | Win (%) ↑ | Tie (%) | Lose (%) ↓ | Win+½Tie (%) ↑ |
|---|---|---|---|---|
| Base Model | 54.67 | 7.00 | 38.33 | 58.17 |
| DPO | 39.33 | 3.67 | 57.00 | 41.17 |
| CAA(静态 steering) | 76.00 | 2.33 | 21.67 | 77.17 |
| RE-Control(在线优化) | 57.67 | 8.00 | 34.33 | 61.67 |
| ARGS(外部奖励模型) | 55.33 | 0.33 | 44.33 | 55.50 |
| BiPO | 45.33 | 7.33 | 47.33 | 49.00 |
| GenARM(7B 奖励模型) | 43.67 | 1.33 | 55.00 | 44.33 |
PALC 大幅赢过静态 RepE 的 CAA(77.17%)、在线优化的 RE-Control(61.67%),与激活空间的 BiPO 近乎打平(49.00%,说明 logit 空间和激活空间捕获的偏好信号相近);对需要全套训练设施的 DPO(41.17%)和双 7B 架构的 GenARM(44.33%)则略逊——作者把这定位为有意的效率换性能,而非全面替代。
效率对比(H100、生成 128 token、10 次平均):
| 方法 | 额外组件 | 时间 (s) ↓ | 相对延迟 ↓ |
|---|---|---|---|
| Base Model | — | 1.79 | 1.00× |
| PALC | 校准模块 (9.2M) | 1.93 | 1.08× |
| BiPO | steering 向量 | 2.19 | 1.22× |
| RE-Control | 价值模型 (33.6M) | 2.32 | 1.30× |
| CAA | steering 向量 | 2.51 | 1.40× |
| GenARM | 自回归奖励模型 (7B) | 5.67 | 3.17× |
| ARGS | 轨迹奖励模型 (7B) | 7.88 | 4.40× |
PALC 仅 9.2M 参数(比 ARGS/GenARM 的 7B 奖励模型少 833×)、只慢 8%,在效率轴上碾压所有依赖外部奖励模型或在线优化的方法。
消融实验¶
| 配置 | Win+½Tie (%) | GPT-5 质量分 | 说明 |
|---|---|---|---|
| \(B{=}16\) | 53.7 | 3.84 | 极端压缩仍可用(仅 0.59M 参数) |
| \(B{=}64\) | 54.7 | 3.96 | 进入性能平台 |
| \(B{=}256\) | 58.2 | 3.96 | 最优瓶颈维 |
| \(B{=}1024\) | 56.5 | 3.91 | 仍稳定,边际收益递减 |
| \(B{=}4096\) | 18.3 | 2.15 | 过度参数化 → 灾难性崩塌 |
| \(\gamma{=}0.5\) | 55.3 | 3.96 | 轻干预 |
| \(\gamma{=}1.0\) | 58.2 | 3.96 | 最优,等于直接用学到的校准 |
| \(\gamma{=}3.0\) | 56.0 | 3.95 | 仍稳定 |
| \(\gamma{=}10.0\) | 38.7 | 3.07 | KL 偏离过大 → 低于基线 |
关键发现¶
- 偏好集中在极低维流形:性能在 \(B{=}256\) 达峰,\(B{=}16\)(仅 0.59M 参数)也有 53.7%,实证了理论里 \(d_\text{eff}\ll B\) 的低秩假设——这是 PALC 能做到极致参数高效的根因。
- 过度压缩反而灾难:\(B{=}4096\) 时胜率暴跌到 18.3%(低于随机)、质量掉到 2.15/10。作者归因为缺乏正则下的瓶颈过大会在训练数据的伪模式上过拟合,学到反而有害的校准——印证了"架构约束本身就是一种必要的正则"。
- \(\gamma\) 不挑值:\([0.5,3.0]\) 区间都稳,给实践者留了无需重训的调节空间,但 \(\gamma{=}10.0\) 会因 KL 失控而崩,与理论预测一致。
亮点与洞察¶
- 换干预空间,而非换更强的模型:把对齐落点从"纠缠的隐空间 / 概率空间"换到"解耦的 logit 空间",一招同时绕开叠加态污染和外部奖励模型的双模型开销——这是全文最"啊哈"的地方,且是第一个系统性探索 learned logit-space 校准的工作。
- 瓶颈即正则:低秩瓶颈不仅压参数,还顺带成了防过拟合的结构约束,\(B{=}4096\) 崩塌的反例把这点讲得很硬。
- 可迁移性:"只读上下文 + 在解耦输出空间做加性干预"这个范式可推广到任何想在测试时控制冻结模型、又怕改内部表征会塌的场景(如安全护栏、风格控制),落点换成对应的输出维度即可。
局限与展望¶
- 实验只在单一基座(llama-7b-sft)+ 单一数据集(HH-RLHF)+ 单一评测器(GPT-5)上验证,跨模型规模(70B)、跨任务、跨偏好维度的泛化性未充分检验。
- 对 DPO/GenARM 仍有明显性能差距,PALC 自我定位是"效率优先的可及替代"而非全面 SOTA;当算力充足、性能至上时不一定划算。
- \(\gamma\) 的最优值会随任务/数据集变化,作者只给出 HH-RLHF 上 \(\gamma{\approx}1.0\) 的默认;自动选 \(\gamma\)、以及把单一 \(\gamma\) 扩展到多偏好维度的独立调强,是自然的延伸方向。
- 校准向量虽然源于隐状态,作者用雅可比论证其在 logit 空间"可控可解释",但偏好因子是否真能对应到 helpfulness/harmlessness 等具体方向,仍主要靠附录分析支撑,存疑处宜以原文为准。
相关工作与启发¶
- vs 引导解码(ARGS / GenARM):它们靠外部奖励模型打分引导 token,需双模型并行、延迟 3–4×;PALC 用基座自身表征生成校准、自洽运行,延迟仅 1.08×,但性能略逊于训了 7B 奖励模型的 GenARM。
- vs 静态 RepE(CAA / BiPO):它们在隐空间加固定 steering 向量,受叠加态拖累且不随上下文变;PALC 在解耦 logit 空间做位置相关校准,对 CAA 胜率高达 77.17%,与 BiPO 打平说明两空间信息量相近但 logit 空间更安全。
- vs 动态 RepE(RE-Control):它每步做梯度优化、延迟 1.30×且仍是隐空间干预;PALC 把"动态性"前置到训练好的模块里,推理只需一次前向,既动态又省,胜率 61.67%。
- vs DPO:DPO 是训练时方法、改基座权重得到静态模型,PALC 损失正是 DPO 去掉参考模型 KL 项的简化版,定位互补——PALC 牺牲部分性能换 99%+ 算力削减,面向资源受限部署。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首个系统性地把对齐干预落到 learned logit 空间,换了对齐的"作用点"而非堆模型。
- 实验充分度: ⭐⭐⭐⭐ 基线、效率、双消融都到位,但只在单基座单数据集单评测器上验证,泛化性待补。
- 写作质量: ⭐⭐⭐⭐⭐ 动机推导(叠加态→解耦空间)清晰,理论与消融互相印证。
- 价值: ⭐⭐⭐⭐ 为资源受限部署提供了极轻量的测试时对齐方案,可迁移性强,但非性能上限。