现有的大规模语言模型(LLM)在众多任务中取得了惊艳的效果,但它们在实际应用时仍然会出现生成与事实不符的内容。这种现象如今通常被称为“幻觉”。幻觉问题在真实场景中可能带来严重的后果,大大阻碍了大语言模型的落地。
来自苏州大学和腾讯 AI Lab 的研究者近期提出了一种简单有效的幻觉消除方法。他们首先尝试了从已有的 LLM 中诱导幻觉,构建了一个在事实性层面薄弱的 Weak LLM。在解码时,再将 Weak LLM 中所蕴含的幻觉模式从原有 LLM 的输出空间中消除。
具体而言,他们采用了对比解码(Contrastive Decoding, CD)策略将 Weak LLM 的输出分布从原 LLM 的输出分布中减去。这一先诱导再对比的幻觉消除解码算法被作者们称为 ICD 算法(Induce-then-Contrast Decoding)。
作者们在 TruthfulQA、FactScore 等常用的判别式和生成式幻觉评测集上对 ICD 算法进行了测试。实验结果表明,ICD 均能有效提升原模型输出的事实性,减少了幻觉。在 OpenAI 提出的权威幻觉评测集 TruthfulQA 上,使用了 ICD 算法的 Llama2-7B-Chat 和 Mistral-7B-Instrcut 分别可以和现阶段最优的 ChatGPT 和 GPT4 接近。
![](https://ai.fenmiao.group/wp-content/uploads/2024/01/image-1-1024x735.png)
论文题目:Alleviating Hallucinations of Large Language Models through Induced Hallucinations
论文链接:https://arxiv.org/abs/2312.15710
GitHub地址:https://github.com/HillZhang1999/ICD
怎么诱导幻觉
作者通过构造幻觉数据,并用其微调原始的 LLM 诱导幻觉构建 Weak LLM。这一策略近期也在 LLM Safety 领域被应用,一些研究者们发现即使是对齐后的 LLM,其安全机制也很容易在少量的微调后被轻易攻破。为了构造幻觉样本,作者们基于现有的事实正确的句子,通过少样本提示策略,让 ChatGPT 自动去修改其中的事实,从而构造大量编造的幻觉样本。
如何利用诱导出的幻觉消除最终的幻觉
作者们使用了对比解码的策略,将诱导幻觉后的 Weak LLM 的输出分布作为惩罚项,来干预原始 LLM 的结果生成。
基于自回归结构的 LLM,其解码过程通常可以建模为:
![](https://ai.fenmiao.group/wp-content/uploads/2024/01/image-2.png)
其中, 是被原始模型 预测出来的下个词的分数分布,并通过 softmax 操作将其转换为概率分布。
为了减少 LLM 的幻觉,作者希望奖励原始模型 的预测结果,而惩罚诱导幻觉后的弱模型 的预测结果,因此,对比解码的过程可以建模为:
![](https://ai.fenmiao.group/wp-content/uploads/2024/01/image-3.png)
可以看到,该算法将 Weak LLM 的预测分布从原始模型中减除。为了控制对比的力度,此处作者额外引入了一个超参数 。最终,可以对上述分布采用归一化,使用得到的新概率进行下一个词的解码预测:
![](https://ai.fenmiao.group/wp-content/uploads/2024/01/image-4.png)
此外,ICD 算法还采用了一种名为自适应合理性约束(adaptive plausibility constraint)的策略,来缓解过度的对比。由于弱模型仅仅在事实性方面效果下降,但在语法等层面仍然保持了原有的能力,所以一味的对比可能导致模型生成内容的崩坏。因此,作者使用自适应合理性约束,仅在原始模型不确定的位置进行对比。更多具体细节可以参考原始的论文。
实验结果
作者们在 TruthfulQA 和 FactScore 两个主流的幻觉评估基准上对 ICD 方法进行了测试。
TruthfulQA 是 OpenAI 发布的采用误导性问题评判语言模型幻觉的数据集。在 TruthfulQA 上,作者采用了多项选择的评估形式,并使用了官方的 MC1/2/3 指标。为了进行对比,作者也实现了原始的贪心解码,以及一些现有的解码策略,如推理时干预解码(Inference-Time Intervention, ITI),层间对比解码(DoLa),和对比不同尺寸的模型的原始对比解码(naïve CD)。
![](https://ai.fenmiao.group/wp-content/uploads/2024/01/image-5-1024x512.png)
如表 1 所示,基于微调方式诱导幻觉的 ICD 方法,大大提升了 Llama2-7B-Chat 在 TruthfulQA 上的性能,并超越了前人设计的其他解码算法。此外,作者也探索了其他诱导幻觉的策略,例如使用误导性的提示词和直接对比对齐前后的模型,发现这些策略均能带来提升,但效果距离微调还有一些差距。
![](https://ai.fenmiao.group/wp-content/uploads/2024/01/image-6-1024x457.png)
FactScore 是在人物传记生成任务上评估模型生成结果的事实准确性的数据集。如表 2 所示,作者提出的 ICD 方法也同样提升了 Llama2-7B-Chat 的事实准确性,使其超过了使用贪心解码的 Llama2-70B-Chat。
不同模型规模的有效性
在 Llama2-7B-Chat 以外,该论文额外在 13B 和 70B 版本上测试了 ICD 算法。这里用于对比的 Weak LLM 仍然是 7B 的规模。如表 3 所示,ICD 算法在不同尺寸的模型上展现了稳定的有效性,并且随着模型尺寸的增大,提升效果也有增大的趋势。这可能得益于 ICD 算法(诱导幻觉前后对比)和原始 CD 算法(模型尺寸对比)思想的结合。
不同模型基座的有效性
在 Llama2-7B-Chat 以外,论文也额外在 Baichuan2-7B-Chat 和 Mistral-7B-Instruct 上测试了 ICD 方法。如表 4 所示,ICD 算法在不同模型基座上也带来了稳定提升。并且在 Baichuan2 和 Mistral 上的提升要大于 Llama2。作者猜测这两个模型在许多榜单上超过了Llama2,而 ICD 算法或许能有效地利用效果更强的模型。
与直接用高质量数据微调的对比
ICD 算法需要两个步骤,即诱导和对比。论文额外探索了如果直接使用高质量的 SFT 数据微调模型,是否也能减少模型的幻觉。因此,作者使用了同等数目的幻觉数据和事实数据,分别用于 ICD 算法和直接微调,并进行了对比。
在表 5 中可以看到,ICD 算法提升了原始模型的事实性,而直接微调不仅没有提升,反而引入了更为严重的幻觉。作者猜测这一有趣的现象可能源自于 SFT 阶段的行为克隆,即如果直接教大模型回复任意的问题,而不去评估这些问题是否超过了其能力边界,单纯的行为克隆反而会教会大模型编造事实。表 5 中,这一问题也从直接微调后大模型的回复率急剧上升得到了佐证。
![](https://ai.fenmiao.group/wp-content/uploads/2024/01/image-7.png)
总结
在本文中,作者提出了一种先诱导幻觉,再利用对比解码将诱导出的幻觉消除的 ICD 策略,在多个幻觉评测基准上显著提升了性能。
然而,ICD 算法目前也存在一些限制。例如,它需要两次前向传播,导致推理时延增长。目前 ICD 算法是否会影响原始模型的其他能力,也尚未得到全面的验证。
此外,ICD 算法也提供了一些有趣的研究方向。例如,它可以和检索增强等其他幻觉消除方法结合,对比弱模型和检索增强后的强模型,或许可以带来更大的性能提升。也可以参考混合专家模型(MoE)的思路,训练多个弱模型和强模型,在解码的过程中动态对比。这些均需要研究者们在未来进一步探索。