DoLa: Decoding by Contrasting Layers Improves Factuality in Large Language Models
目录
1. 引言
大型语言模型(LLMs)在自然语言处理任务中表现出色,但仍然存在 “幻觉” 问题,即生成的内容可能与事实不符。本文提出了一种新的解码方法——对比层解码(Decoding by Contrasting Layers,DoLa),它通过对比 LLM 不同层的输出来减少幻觉问题,而无需检索外部知识或额外微调。
主要贡献:
- 提出了一种新的解码策略 DoLa,通过对比模型高层与低层的输出来提升生成内容的事实性。
- 在多个数据集(TruthfulQA、FACTOR等)上的实验表明,DoLa 在多个模型(LLaMA 7B、13B、33B、65B)上均提升了事实性。
- 该方法计算成本较低,仅增加少量解码延迟。
2. 方法
2.1 事实知识跨层演化
通常,较低层次负责字词和语法信息,而较高层次更倾向于存储语义和事实知识。
图 2 展示了在解码输入问题的答案时计算得到的 JSD(Jensen-Shannon 散度),从中可以观察到两种模式:
模式 1(Pattern #1):
- 发生在预测 重要的专有名词或日期(例如图 2 中的 Wole Soyinka 和 1986)时,这些词通常需要依赖事实性知识。
- 我们观察到,在模型的 较高层次 中,计算得到的 JSD 仍然保持极高的数值。这表明模型在最后几层仍然在调整其预测,并可能在这个过程中注入更多的事实性知识。
模式 2(Pattern #2):
- 发生在预测 功能性词(function words)(如 was, the, to, in)以及直接从输入问题中复制的词(如 first Nigerian, Nobel Prize)时。
- 在生成这些 简单词汇 时,我们观察到 JSD 从中间层开始变得非常小。这表明模型在中间层已经决定了要生成的 token,且在较高层的输出分布几乎保持不变。
2.2 层对比解码
层对比解码(Decoding by Contrasting Layers)通过计算 高层(mature layer)与 低层(premature layer)之间的 logit 差异 来计算下一 token 的概率:
这里,将层 M 称为早期层(Premature Layer),而将最后一层,即层 N 称为最终层(Mature Layer)。q_N 和 q_M 分别是高层与低层的输出分布。算子 F 通过计算两个分布之间的对数域差异来对比早期层和最终层的输出分布。
2.3 动态选择最优早期层
为了增强对比解码的效果,最优的早期层(Premature Layer)应当是与最终层(final layer)输出最不同的层。为了在每个时间步动态选择最优的早期层,我们采用以下度量方法来计算两个层的下一词分布的距离:
其中,JSD(Jensen-Shannon 散度)用于衡量两个分布之间的差异性。然后,我们选择 JSD 值最大的早期层 M 作为对比层,即:
其中,J 是一组候选早期层的集合,而不是所有层,以确保对比来自合理范围内的层次。
对于不同层数的 LLaMA 模型,我们将其层划分为 2 至 4 个区间 (buckets),从中选择适合的层进行对比。对于每个任务,我们使用验证集来选择最佳的对比层区间。这种动态层选择策略可以根据不同 token 的难度选择合适的早期层,使得模型能够更好地利用各层学到的知识。
2.4 对比预测
在获得早期层(premature layer)和最终层(mature layer)后,我们的目标是增强最终层的输出,同时削弱早期层的输出。
参考 对比解码(Contrastive Decoding),我们通过减去早期层的对数概率来调整最终层的预测分布,并使用得到的分布进行下一词预测,如图 1 所示:
子集 V_head 被定义为:
即:只有当最终层的输出概率 q_N(x_t) 高于某个阈值 时,x_t 才会被选入候选集合 V_head。此策略称为 自适应可信性约束(Adaptive Plausibility Constraint, APC)
DoLa 旨在削弱低层的语言模式信息,并增强真实世界的事实性知识。然而,这可能会导致模型生成的文本出现语法错误或过度重复。尽管实验中未观察到语法错误的问题,但我们发现 DoLa 解码出的文本有时更容易重复,尤其是在生成长篇推理文本(Chain-of-Thought Reasoning)时。
为了解决这个问题,我们引入了 简单重复惩罚策略,设置 θ = 1.2,以减少重复生成的概率。
3. 实验
3.1 实验设置
1)数据集
TruthfulQA:短文本问答数据集,用于评估模型的事实性。
FACTOR(News/Wiki):长段落事实性评估任务。
StrategyQA & GSM8K:涉及推理的任务,如数学问题求解和多跳推理任务。
Vicuna QA:开放式对话任务,使用 GPT-4 评估模型的指令遵循能力。
2)实验模型:LLaMA 7B、13B、33B、65B
3)对比基线:
贪婪解码(greedy decoding)
对比解码(Contrastive Decoding,CD)
推理时干预(Inference-Time Intervention, ITI)
3.2 实验结果
TruthfulQA 事实性提升
- DoLa 在 TruthfulQA 多项选择任务 中提升了 12-17% 的事实性分数,优于 ITI 和 CD 方法。
- 在 TruthfulQA 开放生成任务 中也得到了提升,减少了“无回答”的情况,提高了信息性。
FACTOR 长文本事实性:DoLa 在 FACTOR News 和 Wiki 任务上的表现较 CD 方法高 2-4%。
推理任务(StrategyQA & GSM8K)
- DoLa 在 StrategyQA 任务上的准确率提升 1-4%。
- DoLa 在 GSM8K 数学推理任务 上的准确率提升 2%。
开放式对话(Vicuna QA):GPT-4 评估表明,DoLa 在 指令遵循能力上优于标准 LLaMA,尤其在 13B 和 33B 模型上的提升较大。
4. 分析
静态 vs. 动态对比层选择
- DoLa-static(固定层对比):某些固定层的对比效果较好,但不同数据集上最优层不一致。
- DoLa(动态层选择):在多个任务上都能取得稳定的事实性提升,简化了固定层选择的超参数搜索问题。
解码延迟:DoLa 仅增加 1.01-1.08 倍的解码时间,对推理速度影响较小,适用于实际应用。
5. 相关工作
缓解 LLM 幻觉:
- 人类反馈强化学习(RLHF)
- 推理时间自洽性检验(inference-time self-consistency checks)
- 多代理辩论(multi-agent debating)
- 使用人类标签进行推理时干预(inference-time intervention using human labels)
神经网络层次分析:BERT、GPT 等模型在不同层次编码不同类型的信息,早期层管理语法,而后期层处理语义。
对比解码(CD):CD 通过对比大模型和小模型的输出来增强流畅性,而 DoLa 通过对比模型内部不同层的输出来提高事实性。
6. 局限性
仅关注事实性,未涉及 RLHF 等强化学习方法。
仅适用于推理阶段,未结合外部知识库进行微调。
无法修正训练数据中的错误知识,仍然依赖模型的内在知识。
论文地址:https://arxiv.org/abs/2309.03883
项目页面:https://github.com/voidism/DoLa
进 Q 学术交流群:922230617