X-Enhanced Contrastive Decoding Strategies for Large Language Models
Notations
以下是与 LLMs 推理相关的通用符号表示:
- : 当前解码时间步
- : token 词汇表
- : 输入序列
- : 候选 next token
- : 当前时间步 选择的 token
- : 当前时间步 之前已生成的输出序列
- : 给定上文(即:输入序列和已生成的输出序列)的 next token 在 softmax 归一化前的 logits 分数
- : 给定上文(即:输入序列和已生成的输出序列)的 next token 在 softmax 归一化后的条件概率
- : 解码的优化目标分数,可直接作为 Beam Search 的优化目标,也可 softmax 归一化后作为采样的概率分布
以下是与 LLMs 对比解码相关的符号表示,后文初次使用时具体说明:
- : 专家模型(expert LM)的条件概率
- : 业余模型(amateur LM)的条件概率
- : 专家模型 softmax 归一化前的 logits 分数
- : 业余模型 softmax 归一化前的 logits 分数
- : 自适应合理性约束(APC)过滤后的有效候选 token 集合
- : 控制 APC 约束强度的超参数
- : 控制对比强度的超参数
Preliminary: Regular Decoding Strategies
Greedy Search 在每个时间步 从词汇表 中选择条件概率最高的 token,公式如下:
该确定性方法虽然计算高效,但由于仅考虑当前局部最优 token,可能无法得到全局最优序列。为缓解该局限性,Top- Sampling 通过限制候选集大小引入随机性,在每个时间步 仅从概率最高的 个 token 中采样,公式如下:
另一类方法称为 Beam Search,在每个时间步 都维护概率最高的 (beam width) 个候选序列,最终选择概率最高的生成响应。在时间步 ,对每个已生成的序列 ,计算扩展 token 后的序列得分:
其中, 是 时刻得分最高的 个句子集合, 是序列 的优化目标,通常定义为累计对数概率。接着,选择 时刻得分最高的 个序列,更新集合 :
Vanilla Contrastive Decoding
对比解码(Contrastive Decoding)的思想最初源于 [1] 这一工作,要点归纳如下:
- 目的:提高开放性任务的文本质量,包括:提高多样性、流畅性、连贯性,减少重复性等
- 动机:语言模型(Language Models, LMs)的许多失效模式(如重复性、不连贯性)在小规模的 LMs 中比较大的 LMs 中更常见,可以利用二者的差异来弱化此类输出
- 专家模型(Expert LM):一个参数规模较大的 LM,具有更强的语言生成能力
- 业余模型(Amateur LM):一个参数规模较小的 LM,更易出现重复、不连贯等问题
- 方法:
- 计算 large expert LM 与 small amateur LM 的对数概率之差,作为 Beam Search 的优化目标(Vanilla Beam Search 的优化目标定义为累计对数概率)
- 为了确保生成的文本在专家模型下仍然合理,引入自适应合理性约束(Adaptive Plausibility Constraint, APC),限制候选词范围,仅保留在专家模型下概率足够高的词
APC 的公式如下:
其中:
- : APC 过滤后的有效候选 token 集合
- : 专家模型的 next token 条件概率
- : 当前时间步专家模型中概率最高 token 的概率值
- : 控制约束程度的超参数
APC 通过每个时间步动态自适应计算 这一相对比例,过滤了专家模型中概率较小的候选词。而对于保留下来的概率较高的候选词(即: 中的 token),需要进一步计算专家业余模型的对数概率之差。最终,给出 Beam Search 的优化目标:
原论文中,使用 Beam Search 来进行解码。事实上,这里的 可以进一步 softmax 归一化得到概率分布,使用 sampling-based 方法进行采样解码。
下图展示了对比解码的核心思路:

图中的专家业余模型分别为 GPT-2 XL 与 GPT-2 small。给定同一输入 prompt,两个模型分别计算 next token 的概率分布,再计算对比解码的分数。首先人工分析我们期待的模型输出,由于输入 prompt 已经给出了 Obama 出生的地区,显然我们不想让模型重复输出这一已知信息。
- 如果直接采取 Greedy Search,模型将陷入无限重复,文本生成质量较差;
- 如果采取 Nucleus Sampling,模型给出了错误答案 Washington, D.C;
- 如果采取对比解码,模型将输出 Obama 的出生年份 1961,这一续写既准确又多样。
我们归纳对比解码的两个核心组件:一个是 APC,另一个是优化目标的定义。后续的大量工作,也是针对这两个组件进行改进。一个典型的工作是 [2],该工作将对比解码扩展至推理任务中,我们重点关注其对于 [1:1] 的改进。
为了统一本文的符号表示,对公式的表示不一定遵循原论文,这会导致原论文图表中出现的公式,与本文正文出现的公式表示不一致。
首先,是 APC 的简化,公式如下:
其中, 表示专家模型预测词汇 softmax 归一化前的 logits 分数, 仍然是控制约束程度的超参数。上式与原始对比解码通过归一化后的概率分布给出的形式实际上等价,这里不给出详细的证明。接着,对保留下来的较高概率 token 计算专家业余模型的 logits 之差:
此处引入 用于调控对比强度:
- 当 时,不进行对比
- 当 时,退化成原始对比解码 [1:2] 的形式
下图给出了专家模型的错误地预测了 next token 为 “pounds”,而专家业余模型对比后,正确预测了 next token,提高了推理任务的准确性。

后续的大量工作都是基于 [1:3][2:1] 进行改进,我们不妨将这两个工作均称为 Vanilla Contrastive Decoding。在后续介绍时,我们也会给出 compare & contrast
Faithfulness-Enhanced Contrastive Decoding
CAD: Context-Aware Decoding[3]

如上图所示,红蓝色框分别表示有无上下文时的解码:
- 当无上下文时,模型根据过时的先验知识,错误地判断 Argentina 只赢得两届世界杯;
- 当有上下文时,上下文与先验知识发生冲突,虽然正解 Three 的 预测 logit 变高,但仍然小于错解 Two。
CAD 通过对比有无上下文的预测,放大对上下文的关注,抑制错误先验知识的影响,从而使得正解 Three 的 logit 最高。归纳 CAD 的要点如下:
- 动机:在 NLG 中,LMs 主要依赖两种知识:1)先验知识:预训练阶段学习到的隐式知识,存储于模型参数中;2)上下文知识:输入的用户查询或文档提供的新信息。然而,当前的 LMs 在生成时可能过度依赖先验知识,而对输入上下文中的新信息关注不足,尤其是在上下文知识与先验知识存在冲突时。
- 方法:对比有无上下文时的预测 logits 并进行调整,具体来说:
- 如果某一 token 在有上下文时比无上下文时的 logits 提高很多,则相对更易被采样
- 如果某一 token 主要依赖先验知识(即上下文对它的影响不大),则相对更难被采样
对比解码优化目标定义如下:
其中, 表示为查询的文档, 用于控制对比强度。当 时,退化为标准采样。
对比 [2:2],可以看到优化目标定义形式非常相似,区别在于去除了 APC 这一组件。
Factuality-Enhanced Contrastive Decoding
ICD: Induce-then-Contrast Decoding[4]

如上图所示,ICD 的核心思想在于:
- 诱导幻觉:利用非事实样本直接微调原始模型,从中诱导出一个 " 事实性较弱 " 的幻觉模型(Weak LLM),使其更倾向于产生幻觉
- 对比解码:将诱导出的幻觉模型的输出作为 " 惩罚项 ",与原始模型的输出进行对比,从而抑制幻觉内容的生成,增强原始模型高事实性的预测。
对于微调的细节我们不做讨论,我们重点关注对比解码这一核心思想。对比解码优化目标定义如下:
其中, 分别为原始(专家)模型与幻觉(业余)模型的概率分布, 用于控制对比强度。此外,采取 APC 限制候选词范围:
对比 [2:3],APC 形式完全一致,区别在于优化目标中,对比强度 系数的调整。
DoLa: Decoding by Contrasting Layers[5]
过去对模型可解释性的相关研究表明,Transformer LMs 的较早层(较低层)更多地编码 “lower-level” 信息(e.g., POS tags),较晚层(较高层)则更多地编码 " 语义 " 信息。可通过对比较晚层和较早层的输出差异,来增强模型生成内容的事实性。

上图展示了 LLM 自底向上逐层融入事实信息的过程。具体来说,对 LLaMA-7B 的所有中间层都应用 early exit,即为所有中间层的隐藏态都添加 LM 预测头,从而得到每一层的 next token probability。由图可知,“Seattle” 在每层的概率都维持在较高水平,可能由于这是个在语法上合理的答案;而正解 “Olympia” 的概率随着 LLM 事实知识的逐层增加而逐渐增大。因此,对比不同层的预测可能揭示出正确答案。随之而来的问题是,如何选择对比层?
假设模型共有 层 transformer decoder layer (i.e., multi-head attention layer + feed-forward network layer),第 层是 embedding layer。DoLa 选定最顶部的第 层作为 mature layer (对应于对比解码中的 expert layer),接着从 层中选择一个 premature layer (对应于对比解码中的 amateur layer) 进行对比。假设最终选定的 premature layer 为第 层 ,则最终的 next token score 如下:
此外,采取与对比解码类似的 APC:
在每个解码步,premature layer 通过动态比较最顶层(第 层)与候选层( 层)的 Jensen-Shannon Divergence (JSD) 而确定。JSD 是一种衡量两个概率分布之间差异的距离指标,DoLa 希望选定的 premature layer 的预测分布与最顶层的差异最大,也就是 JSD 最大。如果某层的输出与最顶层差异很大,可能说明从该层到最顶层,模型的预测发生了显著调整。这种调整可能意味着模型在后续层中加入了新的信息,修正了之前的预测。因此,为了放大该层之后涌现出的知识,DoLa 选择与最顶层间 JSD 最大的 premature layer:
其中, 为候选 premature layer 集合。
下图展现了每个解码步对 premature layer 的 token-wise 动态选择。

回忆一开始提及的过去对可解释性研究:较早层更多地编码 “lower-level” 信息,较晚层更多地编码 " 语义 " 信息。这一结论可以通过 DoLa 对顶层与其他层间 JSD 的分析来印证,如下图所示。
上图是最顶层(32nd layer)与其他偶数层间的 JSD,列名是每个解码步实际采样的 token。由图可知,年份 “1986”,人名实体 “Wole Soyinka” 这种事实性较强的 token,通常 premature layer(对应于与顶层间 JSD 最大,图中表现为颜色最深)位置较高;而与输入重复的词 “first Nigerian”, “Nobel Prize”,以及功能性词 “was”, “the”, “to”, “in” 等,通常 premature layer 位置较低。
LOL: LOwer Layer Matters[6]
待续
END: cross-layer Entropy eNhanced Decoding[7]
待续
Safety-Enhanced Contrastive Decoding
SafeDecoding: Safety-Aware Decoding[8]

SafeDecoding 与 ICD[4:1] 类似,都是先构造对比模型,再对比新模型与原始模型的 next token 概率分布进行解码。区别在于前者构造的是专家模型(安全模型),而后者构造的是业余模型(幻觉模型)。如上图所示,SafeDecoding 分为两个阶段:
- 训练阶段:构建专家模型
- 查询收集:收集 36 个有害查询,涵盖 18 个有害类别。这些查询应被任何与人类价值对齐的 LLM 所拒绝。
- 响应生成与筛选:使用原始模型对这些有害查询生成响应,然后通过 GPT-4 过滤,保留那些有效拒绝有害查询的响应,构建微调数据集。
- 模型微调:使用参数高效微调方法(e.g., LoRA)对原始模型进行微调,得到专家模型,使其更擅长识别和拒绝恶意用户输入。
- 推理阶段:构建新的 token 分布
- 构造样本空间:在每个解码步,分别通过原始模型和专家模型得到 top-k 的 token 集合,取二者交集作为新的样本空间,平衡原始模型的有用性与专家模型的安全性。
- 定义概率函数:基于原始模型和专家模型的概率分布,构造新的概率函数,放大对齐人类价值的 token 概率,抑制符合攻击者目标的 token 概率。
- 采样生成响应:根据新构造的概率分布采样 next token,生成对输入查询的响应。
在推理阶段,样本空间的构造公式如下:
其中:
- , : 在当前解码时间步,原始模型与专家模型输出的 top 个最可能 token 的集合。
- : 原始模型与专家模型 top token 集合之交,平衡原始模型的有用性与专家模型的安全性
- : 调节样本空间 token 数量的超参数。过小的样本空间限制了 token 候选数量,减少了多样性,可能降低有用性
其核心目标在于找到最小的 ,使得原始模型和专家模型的 top token 的交集 的大小 至少为 ,来定义样本空间 。换句话说:
- 最终等于某个 ,而这个 是通过调整 得到的。
- 从小到大递增,直到 ,然后取满足条件的最小 对应的 。
具体步骤如下:
- 从 开始,计算 ,得到 。如果 ,则 ,停止。
- 如果 ,则 ,计算 ,检查 。
- 重复此过程,直到找到最小的 使得 。
该过程类似于对比解码的 APC,APC 的目的在于确保生成的文本在专家模型下仍然合理,而 SafeDecoding 为了确保在原始模型与专家模型都合理。最后,便是类似对比解码的过程:
其中, 用于调节对比强度。这里的 实际上是原始模型,但为了与对比解码符号保持一致,我们仍然采用 。
ROSE: Reverse prOmpt contraStive dEcoding[9]
ROSE 的对比解码优化目标如下:
其中, 用于控制对比强度, 为安全的系统提示, 为精心设计的反向系统提示(Reverse System Prompts)。ROSE 的核心在于反向提示 的设计,以下是提出的几种设计变体:
- Rand-Words (Rand): 直接让第三方 LLMs 随机替换原提示 的词汇
- Opposite-Replace (Replace): 替换关键的正面词汇为相应的反面词汇
- Manual-Reverse (Manual): 人工手动重写(或第三方 LLMs 重写)原提示 ,使其更流畅易懂
ACD: Adversarial Contrastive Decoding[10]
待续
Comparison and Contrast
前文详细介绍了多种基于对比解码思想的改进策略,它们分别从不同角度(如提升忠实性、事实性、安全性等)对 Vanilla Contrastive Decoding 进行了扩展和优化。为了更清晰地展现这些方法之间的异同,本节将从多个维度对它们进行归纳和比较。
在下方的表格中,我们总结了本文讨论的各种对比解码策略的关键特性。各列含义如下:
- Method: 对比解码策略的名称
- Enhancement Focus: 该方法主要致力于提升生成文本的哪方面质量或能力(例如:事实性、安全性、推理能力、通用文本质量等)。
- APC Presence: 该方法是否采用了 APC
- Contrast Formulation: 对比解码中优化目标的数学基础,即该分数是基于(对数)概率还是基于 logits 等
- Contrast Level: 对比的层次。可能是不同模型间的对比(Inter-Model),也可能是在单个模型内部通过改变输入、内部状态(如不同层)或提示进行的对比(Intra-Model)。
- Expert Component: 在对比解码中充当 " 专家 " 角色的组件(模型/层)。通常,这是希望其特性得到增强或保留的组件
- Amateur Component: 在对比解码中充当 " 业余 " 角色的组件。通常,这是希望其不期望特性得到抑制的组件
- Training Free: 该方法本身是否需要对 LM 进行额外的训练或微调
具体表格如下:
Method | Enhancement Focus | APC Presence | Contrast Formulation | Contrast Level | Expert Component | Amateur Component | Training Free |
---|---|---|---|---|---|---|---|
Vanilla CD [1:4] | General Abilities (coherence, fluency, diversity) | Yes | Log-probability | Inter-Model | Larger LM | Smaller LM | Yes |
CD for Reasoning [2:4] | Reasoning Ability | Yes | Logits | Inter-Model | Larger LM | Smaller LM | Yes |
CAD [3:1] | Faithfulness | No | Logits | Intra-Model (Contextual Var.) | LM with Context | Same LM w/o Context | Yes |
ICD [4:2] | Factuality | Yes | Log-probability | Inter-Model (Finetuning Var.) | Original LM | Finetuned Weak LM | No |
DoLa [5:1] | Factuality | Yes | Log-probability | Intra-Model (Inter-Layer) | Mature Layer | Premature Layer | Yes |
SafeDecoding [8:1] | Safety | Yes | Probability | Inter-Model (Finetuning Var.) | Safety Finetuned LM | Original LM | No |
ROSE [9:1] | Safety | No | Logits | Intra-Model (Prompt Var.) | LM with Safe Prompt | Same LM with Reverse Prompt | Yes |
Reference
Li, X. L., Holtzman, A., Fried, D., Liang, P., Eisner, J., Hashimoto, T., Zettlemoyer, L., & Lewis, M. (2023). Contrastive Decoding: Open-ended Text Generation as Optimization (No. arXiv:2210.15097). arXiv. https://doi.org/10.48550/arXiv.2210.15097 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
O’Brien, S., & Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models (No. arXiv:2309.09117). arXiv. https://doi.org/10.48550/arXiv.2309.09117 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Shi, W., Han, X., Lewis, M., Tsvetkov, Y., Zettlemoyer, L., & Yih, S. W. (2023). Trusting Your Evidence: Hallucinate Less with Context-aware Decoding (No. arXiv:2305.14739). arXiv. https://doi.org/10.48550/arXiv.2305.14739 ↩︎ ↩︎
Zhang, Y., Cui, L., Bi, W., & Shi, S. (2024). Alleviating Hallucinations of Large Language Models through Induced Hallucinations (No. arXiv:2312.15710). arXiv. https://doi.org/10.48550/arXiv.2312.15710 ↩︎ ↩︎ ↩︎
Chuang, Y.-S., Xie, Y., Luo, H., Kim, Y., Glass, J., & He, P. (2024). DoLa: Decoding by Contrasting Layers Improves Factuality in Large Language Models (No. arXiv:2309.03883). arXiv. https://doi.org/10.48550/arXiv.2309.03883 ↩︎ ↩︎
Chen, D., Fang, F., Ni, S., Liang, F., Xu, R., Yang, M., & Li, C. (2024). Lower Layer Matters: Alleviating Hallucination via Multi-Layer Fusion Contrastive Decoding with Truthfulness Refocused (No. arXiv:2408.08769). arXiv. https://doi.org/10.48550/arXiv.2408.08769 ↩︎
Wu, J., Shen, Y., Liu, S., Tang, Y., Song, S., Wang, X., & Cai, L. (2025). Improve Decoding Factuality by Token-wise Cross Layer Entropy of Large Language Models (No. arXiv:2502.03199). arXiv. https://doi.org/10.48550/arXiv.2502.03199 ↩︎
Xu, Z., Jiang, F., Niu, L., Jia, J., Lin, B. Y., & Poovendran, R. (2024). SafeDecoding: Defending against Jailbreak Attacks via Safety-Aware Decoding (No. arXiv:2402.08983). arXiv. https://doi.org/10.48550/arXiv.2402.08983 ↩︎ ↩︎
Zhong, Q., Ding, L., Liu, J., Du, B., & Tao, D. (2024). ROSE Doesn’t Do That: Boosting the Safety of Instruction-Tuned Large Language Models with Reverse Prompt Contrastive Decoding (No. arXiv:2402.11889). arXiv. https://doi.org/10.48550/arXiv.2402.11889 ↩︎ ↩︎
Zhao, Z., Zhang, X., Xu, K., Hu, X., Zhang, R., Du, Z., Guo, Q., & Chen, Y. (2024). Adversarial Contrastive Decoding: Boosting Safety Alignment of Large Language Models via Opposite Prompt Optimization (No. arXiv:2406.16743). arXiv. https://doi.org/10.48550/arXiv.2406.16743 ↩︎