想象一下,向一个强大的人工智能提问: “谁是美国总统?”
对于一个处理了数百万份互联网文档的人工智能来说,这个看似简单的答案其实并不简单。一份 2008 年的文档可能说是巴拉克·奥巴马 (Barack Obama) 。另一份 2024 年的文档说是乔·拜登 (Joe Biden) 。一份历史文本可能在讨论“POTUS” (美国总统) 的一般权力。当人工智能遇到这种情况时,它通常会强制给出一个单一答案,从而可能在不存在确定性的地方产生确定性的幻觉。
这种现象被称为知识冲突 (Knowledge Conflict) 。 随着大型语言模型 (LLM) 和检索增强生成 (RAG) 系统摄入的数据越来越多,遇到相互矛盾信息的概率也随之飙升。
在最近的一篇论文中,研究人员直面了这个问题。他们提出了一种自适应问答 (Adaptive Question Answering) 的新框架,教导模型不仅要选出一个优胜者,还要识别出相互冲突的有效答案,并且——至关重要的是——为每个答案提供来源引用。
问题: 确定性的幻觉
当前最先进的 LLM 拥有巨大的上下文窗口,允许它们阅读并针对长文档进行推理。然而,当这些文档出现分歧时,模型往往会在以下两种方式中失败:
- 选择偏差 (Selection Bias) : 它们武断地选择一个答案,并将其作为绝对真理呈现。
- 混淆 (Confusion) : 它们试图将答案合并成一个荒谬的混合体。
最重要的是,现有的系统很少告诉你它们是从哪里获得这些信息的。没有引用,用户就无法验证哪个文档支持哪种说法。

如上图 1 所示,目标是从标准的“单一答案”输出转变为“带引用的多重答案”输出。模型不应只是说“奥巴马”,而应识别冲突并陈述: “根据文档 1,是奥巴马;根据文档 4,是拜登。”
背景: 歧义的类型
为了解决这个问题,研究人员首先必须对 AI 产生困惑的不同方式进行分类。他们确定了两种主要的冲突类型:
- 歧义问题 (Ambiguous Questions) : 困惑来自于查询本身。
- *示例: * “谁扮演了小丑 (Joker) ?”
- *冲突: * 这有多个有效答案 (希斯·莱杰、杰克·尼科尔森、华金·菲尼克斯) ,具体取决于电影背景。
- 歧义上下文 (Ambiguous Contexts) : 困惑来自于提供给模型的源文档。
- *示例: * 不同的新闻报道对同一事件的伤亡人数有不同的说法,或者更新的科学数据与旧数据相矛盾。
虽然之前的研究曾单独探讨过这些问题,但没有人将歧义消除与来源引用结合起来,特别是在需要多步骤 (多跳) 推理的复杂场景中。
核心方法: 一种新的问答框架
作者介绍了一个全面的框架来针对此任务训练和评估模型。这涉及创建新数据集、定义新指标以及测试三种不同的解决方法。
1. 数据: 注入引用
由于标准数据集通常不要求模型引用具体的冲突文档,研究人员必须构建自己的数据集。他们采用现有的阅读理解数据集并对其进行了“增强”。
他们在每个段落前的文本中直接注入了引用元数据——如“Document 1”或“Document 2”这样的标签。这模拟了 RAG 系统的真实场景,即 AI 从数据库中检索多个片段。
他们创建了多样化的数据集来测试不同的技能:
- AmbigQA-Cite: 侧重于歧义问题 (例如,“谁赢得了世界杯?”,但未说明年份) 。
- DisentQA-DupliCite: 侧重于歧义上下文,其中两个文档几乎相同,但有一个关键差异 (例如,实体替换) 。
- Conflicting HotPotQA-Cite: “终极挑战”。该数据集需要多跳推理 (multi-hop reasoning) 。 要回答问题,模型必须结合文档 A 和文档 B 的信息,同时避免文档 C 中的矛盾信息。
2. 方法
我们如何让 LLM 处理这些数据?研究人员测试了三种主要策略:
- 零样本 (Zero-Shot) : 将冲突数据输入模型并要求其自然回答 (基线) 。
- 提示工程 (Prompting) : 使用“冲突感知”提示,明确指示模型: “你将获得可能相互冲突的上下文文本。如果存在冲突,请通过引用具体文档来回答。” 他们还测试了思维链 (Chain-of-Thought, CoT) 提示,要求模型逐步推理。
- 微调 (Fine-Tuning) : 专门在这些充满冲突的新数据集上重新训练模型 (使用 LoRA,一种参数高效的技术) 。
3. 模型
实验在五种不同的 LLM 上进行,以确保结果不仅仅特定于某一种架构。

如表 1 所列,阵容包括 Llama-2 系列 (7B、13B、70B) 、MPT-7B 和 Falcon-7B。这种大小混合有助于确定“更聪明” (更大) 的模型是否天生更擅长解决冲突。
实验与结果
研究人员引入了两个关键指标来衡量成功:
- Acc_K: 模型能否找到所有有效答案? (如果有 3 个答案,只找到 1 个是不够的) 。
- 引用准确率 (A_C) : 模型是否将答案归因于正确的文档?
让我们看看实践中的“成功”是什么样子的。

表 2 显示了性能上的质的飞跃。在“零样本回答”列中,模型通常会随意选择一个答案 (例如,“Bill Pertwee”) 。在“少样本回答”列中 (使用新方法) ,模型成功地将其分解: “根据文档 1,答案是 Bill Pertwee。根据文档 2,答案是 Martin Savage。”
场景 1: 歧义问题
当问题本身含糊不清时 (例如,“谁为火箭浣熊配音?”) ,模型的表现如何?

表 3 揭示了一个残酷的事实: 开箱即用的模型 (零样本) 在引用方面是失败的。 它们的引用准确率 (A_C) 得分为 0.0%。它们根本不是为自然提供来源而构建的。
然而, 冲突感知 (C.A.) 基础提示策略有显著帮助。对于 Llama-70B,使用提示将其找到第二个答案 (A_2) 的能力从 4.3% 提高到了 35.4%,引用准确率上升到了近 50%。
场景 2: 歧义上下文 (单跳)
接下来,他们研究了 DisentQA,其中的上下文是相互矛盾的 (例如,一个文档说某人出生于 1990 年,另一个说是 1992 年) 。

表 4 显示,这里的得分远高于歧义问题设置。因为相互冲突的文本段落通常是仅更改了一个词的副本 (实体替换) ,模型更容易发现差异。在这里, 提示非常有效 , Llama-70B 达到了近 87% 的引用准确率。
但是,如果冲突的文档不完全相同怎么办?如果它们被改写了呢?

表 5 显示了 DisentQA-ParaCite 的结果。不出所料,当文本被转述 (用不同的词但含义相同地重写) 时,任务变得更加困难。与重复设置相比,性能有所下降,但微调开始在这里显示出其实力,往往优于提示策略。
场景 3: 多跳推理的挑战
这是论文中最重要的发现。 Conflicting HotPotQA 代表了复杂的现实世界研究,你必须在相互不一致的文档之间建立联系。

表 6 描绘了一幅清晰的图景: 提示工程在复杂场景中失效了。 看一看 Llama-7B 的“C.A Basic”列。它很难找到第二个答案 (36.1%) 。 现在看看微调 (Finetuning) 列。它跃升至 90.0% 。
在复杂的多跳场景中,维持逻辑链并通过提示处理引用所需的认知负荷似乎太高了。微调改变了模型的权重,使其从根本上理解任务,从而带来了巨大的性能提升。
即使添加了“干扰项”文档 (无关的噪声) ,这种趋势依然存在,如下图表 7 所示,尽管所有方法的整体性能都有所下降。

权衡: 失去通用性?
微调的一个担忧是“灾难性遗忘”——教导模型处理冲突是否会让它在回答正常问题时变差?

表 8 (此处引用为图组中的最后一张表) 调查了这一点。当在没有冲突的数据上测试时:
- 提示工程导致性能略有下降 (Llama-7B 从 84.8% 降至 84.1%) 。
- 微调导致性能显著下降 (Llama-7B 降至 64.3%) 。
这暗示了“没有免费的午餐定理”。微调使模型成为解决冲突的专家,但它可能变得过度敏感,试图在不存在冲突的地方寻找冲突。
结论与启示
这项研究强调了目前大型语言模型部署中的一个关键差距。当我们依赖这些系统在法律、医学和新闻领域进行决策时,说出“我发现了相互冲突的信息”的能力可以说比仅仅回答问题更重要。
作者证明了:
- 标准 LLM 过于自信: 它们默认会忽略冲突且不引用来源。
- 提示工程是良好的第一步: 对于简单的冲突,告诉模型“寻找分歧”效果很好。
- 微调对于复杂性是必要的: 如果你的应用涉及复杂推理 (多跳) ,提示是不够的。你需要用冲突数据训练模型。
这项工作为更值得信赖的 AI 铺平了道路——这些系统不只是扮演先知,而是充当细心的研究员,展示它们的推理过程,并让用户决定什么是真相。
](https://deep-paper.org/en/paper/2410.04241/images/cover.png)