AB
AiBoss
Wiki

什么是对比解码(Contrastive Decoding)?一种免训练、计算开销低的文本生成解码方法

对比解码(Contrastive Decoding)是一种免训练的解码方法,它通过同时使用一个强模型(专家)和一个弱模型(业余者),在生成时最大化两者对数似然之差,并施加合理性约束,从而改善开放式文本生成与推理任务的表现。该方法由 Li 等人于 2022 年提出,O'Brien 与 Lewis 于 2023 年将其扩展到推理任务。

对比解码(Contrastive Decoding,简称 CD)是一种用于语言模型文本生成的解码方法:它在每一步生成时同时调用一个能力较强的模型(称为专家,expert)和一个能力较弱的模型(称为业余者,amateur),并选择使两者对数似然之差最大化的词元,同时施加一个合理性约束。它要解决的问题是:对开放式生成而言,单纯追求最大概率会产出短而重复的文本,而随机采样又常常产生不连贯、偏离主题的内容;对比解码试图在两者之间提供一种更可靠的解码目标。

该方法由 Li 等人在论文《Contrastive Decoding: Open-ended Text Generation as Optimization》中提出,该论文发表于 ACL 2023。O'Brien 与 Lewis 在 2023 年的论文《Contrastive Decoding Improves Reasoning in Large Language Models》中把这一方法从开放式生成推广到推理任务,并报告了在常识推理与数学文字题基准上的结果。

为什么重要

在对比解码出现之前,从语言模型生成文本主要依赖两类解码策略。第一类是最大化类方法,例如贪心解码(greedy decoding)与束搜索:它们每一步都选概率最高的词元。Li 等人的论文指出,最大概率对于开放式生成是一个糟糕的解码目标,因为它会产生短且重复的文本。第二类是采样类方法,例如核采样(nucleus sampling)与 top-k 采样:它们从概率分布中随机抽取词元,虽然能提升多样性,但论文指出采样常常产生不连贯、偏离原始主题的文本。

这两类方法各有明显短板,而对比解码的重要性在于它提供了一条不同的思路:不改变模型参数,也不额外训练,而是改变解码时使用的目标函数。Li 等人的论文强调,对比解码需要零额外训练(zero additional training),却能生成比单独从较大模型解码更高质量的文本。O'Brien 与 Lewis 的论文则进一步指出,对比解码是一种简单、计算开销低且免训练的方法,在多种推理任务上相对贪心解码取得了大幅的即开即用式提升。

此外,对比解码背后的直觉具有一般性。Li 等人的论文说明,其灵感来自这样一个观察:较大语言模型的失败模式(例如重复、不连贯)在较小语言模型中更加普遍,因此两者似然之间的差异可以作为一种信号,指示哪些文本应当被偏好。这一观察把「弱模型」从单纯的对照物变成了有用的信息来源。

工作机制

对比解码的核心做法可以拆成以下几个要点。

  • 双模型设置。方法同时使用两个语言模型:一个较大的模型被称为专家(例如 Li 等人论文中使用的 OPT-13B),一个较小的模型被称为业余者(例如 OPT-125M)。两者针对同一段上下文分别计算下一个词元的概率分布。
  • 对比目标。对比目标返回的是大模型下的似然与小模型下的似然之差。也就是说,一个候选词元如果在大模型下概率高、在小模型下概率低,就会得到较高的对比分数;反之则被压低。这一设计直接对应前述直觉:小模型更容易犯的错误,其似然差会给出区分信号。
  • 合理性约束。仅有对比目标还不够。Li 等人的论文强调,对比解码是在一个合理性约束(plausibility constraint)之下优化对比目标,该约束用于确保输出是合理的。也就是说,不能只追求似然差最大,还要把明显不合理的候选排除在外。
  • 免训练。整个方法不涉及任何参数更新或额外训练,只是在解码阶段替换目标函数,因此可以直接套用在已有的模型对上。
  • 跨模型规模可用。Li 等人的论文报告,该方法在不同模型规模组合上都能工作,例如 OPT-13B 与 GPT2-1.5B 的组合。

O'Brien 与 Lewis 的论文把这一机制描述为:搜索那些使强模型与弱模型之间加权似然差最大化的字符串。他们在论文中沿用了 Li 等人 2022 年提出的这一方法,并将其应用于推理任务。

典型例子

Li 等人的论文给出了开放式文本生成方向的实验设置与结果。论文报告称,对比解码在自动评估与人工评估中,于维基百科(wikipedia)、新闻(news)和故事(story)三个领域上显著优于四种强解码算法,其中就包括核采样与 top-k 采样。论文还指出,对比解码在长文本生成上优于核采样。

O'Brien 与 Lewis 的论文则给出了推理任务方向的例子。论文报告称,对比解码使 LLaMA-65B 在 HellaSwag 常识推理基准上超过了 LLaMA 2、GPT-3.5 和 PaLM 2-L;在 GSM8K 数学文字题推理基准上超过了 LLaMA 2、GPT-3.5 和 PaLM-540B;此外还在一系列其他任务上取得改进。论文的分析认为,对比解码之所以优于既有方法,部分原因在于它阻止了某些抽象推理错误,同时也避免了更简单的模式,例如在思维链(chain-of-thought)中直接照抄输入中的片段。

论文摘要还给出一个总体判断:对比解码在长文本生成上优于核采样,在推理任务上优于贪心解码,因此是一种通用的文本生成方法。需要说明的是,以上具体基准名称、模型名称与对比结论均来自这两篇论文自身的报告,属于论文作者的主张,而非独立复现的结论。

边界与常见误解

第一,容易把对比解码误解为一种训练方法或微调技术。实际上,Li 等人的论文明确说明它需要零额外训练,改动发生在解码阶段而非参数层面。

第二,容易把它与「用大模型蒸馏小模型」或「用弱模型做对照评估」混为一谈。对比解码并不训练小模型去模仿大模型,也不是用弱模型给强模型打分;它是在每一步解码时把两个模型的似然之差直接作为选择依据。

第三,容易忽略合理性约束的存在,把它简单理解为「最大化两个模型概率之差」。若没有该约束,单纯追求似然差可能选出大模型概率高但整体不合理的词元。Li 等人的论文把这一约束作为方法的组成部分明确提出。

第四,关于适用范围,两篇论文的侧重并不相同。Li 等人的论文主要面向开放式文本生成,并在维基百科、新闻、故事等领域进行评估;O'Brien 与 Lewis 的论文则面向推理任务,在 HellaSwag 与 GSM8K 等基准上报告结果。把其中一篇的结论直接外推到另一类任务上,需要谨慎。

第五,关于代价,O'Brien 与 Lewis 的论文把对比解码描述为计算开销低(computationally light),但它仍然需要在解码时同时运行两个模型,因此相对单模型解码存在额外的推理开销。此外,方法效果依赖「弱模型的失败模式比强模型更严重」这一前提;当两个模型的差异过小或过大的组合下表现如何,素材中并未给出结论。

第六,上述所有性能数字与对比结论均出自论文作者的实验设置,不同模型、不同基准、不同提示方式下结果可能不同,不应视为普遍成立的事实。

参考资料