HaluEval benchmark

大型语言模型容易生成幻觉,即与源内容相冲突或无法通过事实知识进行验证的内容。为了了解LLM倾向于产生何种类型、何种程度的幻觉,作者构建了一个用于评估LLM在识别幻觉方面性能的大规模语言模型幻觉评估(HaluEval)benchmark,这是一个包含大量生成的、经人工注释的幻觉样本的集合。HaluEval包含35000个样本,其中一些是幻觉样本另一些是正常样本;此外,其中5000个是用户query和ChatGPT的问答对,另外30000个是任务特定的样本,包括QA、KGD以及summarization三种任务,每种任务各10000个样本。

数据集的构建有两种方式:自动生成和人类标注。两种方法的示意图如下图所示:

pipeline

自动生成

生成流程包含两步:多样性幻觉采样以及高质量幻觉过滤。

在多样性幻觉采样过程中,作者使用了两种方法来生成幻觉样本,第一种方法是直接输入one-pass指令(如下图)到ChatGPT中来生成幻觉回答。第二种方法是使用对话形式的指令(类似于ChatGPT的prompt creator用法),让ChatGPT逐步学习指令的某一部分,并确保其正确掌握了这个指令的含义,然后生成所需的幻觉内容。采样指令主要分为intention description, hallucination pattern, 和 hallucination demonstration三个部分。分别负责对系统的角色进行描述并定义我们生成过程的输入和目标;对幻觉模式进行定义(QA任务中的幻觉模式分为四种类型,包括comprehension, factualness, specificity, 和 inference;KGD任务中的幻觉模式分为三种类型,包括extrinsic-soft, extrinsic-hard, 和 extrinsic-grouped);以及为希望的幻觉模式提供演示样例(少量样本的演示可以帮助系统理解幻觉模式)。下面两幅图给出了QA任务和KGD任务的指令示例:

sampleQA

sampleKGD

在高质量幻觉过滤过程中,作者需要筛选出看起来最正确但是实际上错误的幻觉内容,在instruction中,输入的是正确的回答和产生的幻觉回答,我们希望模型可以学习到什么是真实的正确回答,然后在推理过程中,输入两个幻觉回答,期望模型选择出最接近真实的回答。Instruction的示例如下图所示:

filter

人类标注

作者从52k的指令微调数据集中选取了一些QA对,然后时候用ChatGPT为每个query生成三个回答,再使用BERT score计算他们的平均语义相似度,保留相似度最低的5000个QA对加到HaluEval数据集中。对于每个QA对,标注人员要标注出其是否包含幻觉信息以及属于哪种幻觉(不可验证,与事实矛盾,不相关),然后对三名标注人员采用最大投票策略确定最终标签。

实验发现

作者使用evaluation instruction测试了模型在几种任务上识别幻觉的能力,具体的instruction和实验结果如下所示:

recognition

evaluation

我们可以发现从GPT-3到ChatGPT,模型的幻觉识别能力在不断提升,这说明 instruction tuning 和 RLHF 有助于提高模型识别幻觉的能力。除此之外,作者还尝试了其他的三种策略来提升幻觉识别能力,分别是 Knowledge Retrieval(为ChatGPT提供了来自维基百科的相关知识)、CoT Reasoning(对文本摘要有效果,对QA以及KGD无效)以及 Sample Contrast(为ChatGPT提供了真实样本),它们的实验结果如下图所示:

improvement

从上述结果中,我们可以发现提供外部知识对于帮助LLMs减轻和识别幻觉是最有效的。

总结

总体来说,作者有三个发现:

  1. ChatGPT常通过在其回答中编造不可验证的信息(约占用户查询的11.4%)来生成幻觉内容。
  2. 现有的大型语言模型在识别生成文本中的幻觉方面面临着重大挑战,即使是用于生成这些幻觉样本的ChatGPT也存在这个问题(例如,ChatGPT在QA任务中的准确率仅为62.59%)。
  3. 通过提供显式知识和添加中间推理步骤,可以改善大型语言模型在识别幻觉方面的性能不足。然而,将幻觉样本与真实标准进行对比会使LLMs更加困惑,从而导致性能下降。