分享

LLMs之Hallucinations :《Extrinsic Hallucinations in LLMs》翻译与解读

 处女座的程序猿 2024-07-29 发布于上海

LLMs之Hallucinations :《Extrinsic Hallucinations in LLMs》翻译与解读

导读:

>> 背景和痛点:LLMs中的幻觉指生成不真实、虚构(或捏造)、不一致或无意义的内容。这种现象被称为幻觉(hallucination)。这种现象可以分为两类:上下文幻觉(模型输出应该与上下文中的源内容一致)、外部幻觉(模型输出应该基于预训练数据集)。然而,由于预训练数据集的规模庞大,每次生成时检索和识别冲突非常昂贵。我们希望模型输出符合外部世界知识,并在不知道事实时承认这一点。文章聚焦于外部幻觉,即模型输出应当基于预训练数据或世界知识。

>> 两个主要挑战:确保LLM输出的符合事实性,让LLMs在不知道答案时能够承认不知。

>> 幻觉的原因:预训练数据问题(过时、缺失或错误信息),在微调过程中引入新知识的困难;

>> 核心思路步骤

(1)、数据预处理:识别和纠正预训练数据中的错误和陈旧信息。

(2)、微调新知识:通过监督微调和强化学习微调(RLHF)引入新知识,但需注意可能引发的幻觉风险。

(3)、幻觉检测与评估:使用多种评估方法(如FactualityPrompt、FActScore、SAFE、FacTool等)检测和量化模型的幻觉。

T1、检索增强评估:

FactualityPrompt:使用Wikipedia文档或句子作为知识基础,通过检测命名实体错误和蕴含比率来评估模型的幻觉。

FActScore:将长形式生成分解为多个原子事实,并分别验证每个事实。

SAFE:搜索增强事实性评估器,使用语言模型作为代理,通过Google搜索验证长形式生成中的每个原子事实。

FacTool:提取可验证的声明,并通过外部工具验证其真实性。思路步骤包括提取声明、生成查询、工具查询与证据收集、一致性验证;

● 提取声明:从模型生成内容中提取可验证的声明。

● 生成查询:将每个声明转换为适合外部工具的查询。

● 工具查询与证据收集:使用外部工具查询并收集证据。

● 一致性验证:基于外部工具的支持水平,为每个声明分配一个事实性标签​

T2、基于采样的检测:测量输出不确定性;

SelfCheckGPT:通过多次采样检查模型响应的一致性,评估其事实性。

T3、未知知识的校准:

TruthfulQA:测试模型在面对不可回答或未知问题时生成真实响应的能力。

SelfAware:研究模型是否知道自己知道或不知道某些信息。

● 对抗性问题:通过常见误解构建问题,评估模型在无法回答问题时生成真实答案的能力。

● 分类任务:将问题分为可回答和不可回答,测量模型的F1得分或准确率。

(4)、抗幻觉方法实施:通过RAG、操作链、采样方法和微调技术减少模型生成过程中的幻觉。

T1、RAG→ 编辑和归因:RARR,通过检索增强生成,并进行编辑和来源归因。

T2、行动操作链:通过一系列操作步骤确保生成内容的真实性。

T3、采样方法:通过多次采样和一致性检查减少幻觉。

T4、基于事实性的微调:通过微调改进模型对事实性的理解。

T5、基于归因的微调:加强模型生成内容的来源归因能力。

(5)、检测和减少LLMs幻觉的方法,包括:

T1、外部工具验证:利用外部知识库或工具(如搜索引擎、代码解释器、学术搜索引擎)验证模型生成内容的准确性。

T2、自检机制:如SelfCheckGPT,通过多次采样并检测一致性来发现事实性错误,无需依赖外部知识库。

● 多次采样:对同一问题进行多次采样生成不同的答案。

● 一致性检测:使用不同的度量标准(如BERTScore,NLI等)检测答案之间的一致性

T3、对未知知识的校准:通过问无法回答的问题来触发模型的幻觉,并评估模型在这种情况下生成真实答案的能力。

>> 优势

● 全面检测:多种评估方法结合使用,能够全面检测和量化模型中的幻觉现象。

● 增强事实性:通过检索增强生成和多次采样,显著提高模型生成内容的事实性。

● 成本效益:SAFE方法在降低成本的同时,能在长形式生成的事实性评估中表现优异。

● 模型优化:通过微调和操作链等技术手段,不仅减少幻觉,还能提高模型的整体性能和可靠性。

● 提高模型生成内容的可信度:通过外部工具和自检机制,有效检测和减少模型生成的虚假内容,提高其准确性。

● 增强模型对未知知识的处理能力:通过校准和评估机制,增强模型在处理无法回答的问题时生成真实和可靠答案的能力。

● 提升整体用户体验:减少模型生成无意义或误导性内容,提升用户对模型生成内容的信任度和使用体验。

总结:该文章详细探讨了大型语言模型中的幻觉问题,并提出了多种检测和减少幻觉的方法,从外部工具验证、自检机制到对未知知识的校准。这些方法不仅提高了模型生成内容的准确性,还增强了模型处理复杂问题和未知知识的能力,从而提升了整体用户体验。


《Extrinsic Hallucinations in LLMs》翻译与解读

地址

文章地址:Extrinsic Hallucinations in LLMs | Lil'Log

时间

20247 月7

作者

Lilian Weng

大规模语言模型中的幻觉通常指模型生成的不真实、捏造、不一致或无意义的内容。作为一个术语,幻觉在某种程度上被泛化为模型犯错的情况。在这里,我想将幻觉问题缩小到模型输出是捏造的,并且不依赖于提供的上下文或世界知识的情况。

幻觉有两种类型:
上下文幻觉:模型输出应与上下文中的源内容一致。
外在幻觉:模型输出应以预训练数据集为基础。然而,鉴于预训练数据集的规模,每次生成时检索和识别冲突的成本太高。如果我们将预训练数据语料库视为世界知识的代理,我们实质上是试图确保模型输出是符合事实的,并且可以通过外部世界知识验证。同样重要的是,当模型不知道一个事实时,它应该承认这一点。

本文着重于外在幻觉。为了避免幻觉,大规模语言模型需要 (1) 符合事实,(2) 在适用时承认不知道答案。

导致幻觉的原因

预训练和微调阶段都会对大型语言模型(LLM)产生幻觉现象的原因。预训练数据由于其来源广泛和内容庞杂,难免包含错误信息,导致模型在训练过程中可能错误记忆这些信息。微调阶段,引入新知识虽然旨在提高模型的特定能力,但其过程复杂且计算资源有限,使得模型难以可靠地学习新知识。研究发现,模型在学习新知识示例时速度较慢,并且一旦学习了这些示例,其产生幻觉的倾向会增加。总的来说,微调阶段的监督学习虽然能更新模型知识,但也伴随着较高的幻觉风险。因此,在更新LLM知识时,需要谨慎平衡已知和未知知识的学习比例,以避免过度引发幻觉。

预训练数据问题

预训练数据问题

  • 数据量庞大:预训练数据集规模巨大,旨在涵盖所有书面形式的世界知识。
  • 数据来源:主要来自公共互联网,因此难免包含过时、缺失或错误的信息。
  • 错误记忆:模型可能错误记忆这些信息,因为其训练目标是最大化对数似然。

微调新知识

微调新知识

  • 微调方式:通过监督微调和强化学习人类反馈(RLHF)来提高模型的某些能力,如指令执行。
  • 引入新知识的挑战:在微调阶段引入新知识是难以避免的,但这可能引发模型幻觉。
  • 计算资源:微调通常消耗较少计算资源,因此模型能否通过小规模微调可靠地学习新知识存在争议。

研究发现

  • 学习速度差异:模型学习包含新知识的微调示例比学习一致性知识的示例速度更慢。
  • 幻觉倾向:一旦模型学会这些新知识示例,其产生幻觉的倾向会增加。
  • 知识分类:在关闭书本问答数据集上,根据模型输出正确答案的可能性,示例被分类为已知组(HighlyKnown, MaybeKnown, WeaklyKnown)和未知组。
  • 实验结果
    • 未知示例的学习速度明显慢于已知示例。
    • 最佳开发集性能是在模型学习大多数已知示例但只学习少数未知示例时达到的。
    • 在已知示例中,也许已知示例(MaybeKnown)对整体性能贡献更大。

幻觉检测

检索增强评估

不同的方法和工具被用于检测和评估大型语言模型(LLM)生成内容的事实性。Lee等人的FactualityPrompt基准数据集和FActScore评估指标,通过命名实体错误率和蕴涵率评估模型生成内容的事实性,发现较大的模型在这些基准上表现更好。SAFE评估方法则通过多步搜索查询验证原子事实的真实性,显示出比人工标注更好的性能。FacTool采取标准的事实检查流程,适用于多种任务场景。总的来看,这些方法在不同层面上提供了量化和改进LLM事实性生成内容的工具和框架,强调了检索辅助方法在减少模型幻觉方面的重要性。

事实性提示评估 (FactualityPrompt)

  • 数据集:由Lee等人(2022年)引入,包含事实性和非事实性提示,使用Wikipedia文档或句子作为知识基础。
  • 评估指标
    • 命名实体错误率 (NE errors):检测生成内容中的命名实体是否出现在真实文档中。
    • 蕴涵率 (Entailment ratios):使用RoBERTa模型计算生成句子与配对Wikipedia句子的相关性。
  • 结论:较大的模型在这一基准上表现更好,高NE错误率和低蕴涵率表明更高的事实性,与人工标注结果相关。

2. 事实性精度 (FActScore)

  • 分解长文本生成:将长文本生成分解为多个原子事实,分别验证其是否被知识库支持。
  • 验证方法
    • 非上下文LLM:直接提示模型判断<原子事实>的真假。
    • 检索→LLM:使用从知识源检索的相关段落作为上下文提示模型。
    • 非参数概率 (NP):使用掩码语言模型计算原子事实中词的平均可能性并进行预测。
    • 检索→LLM + NP:结合两种方法。
  • 发现:使用检索辅助模型生成显著减少幻觉,罕见实体和文本后部的事实错误率较高。

3. SAFE评估 (Search-Augmented Factuality Evaluator)

  • 多步骤搜索验证:模型作为代理,通过多步搜索查询验证每个原子事实的真实性。
  • 性能:实验表明SAFE方法比人工标注效果更好,与人工有72%的一致率,且在不一致时有76%的胜率。
  • 评估指标:F1 @ K,结合精度和召回率。

4. FacTool

  • 事实检查流程:包括声明提取、查询生成、工具查询与证据收集、协议验证。
  • 应用范围:知识问答、代码生成、数学问题解决和科学文献回顾。

基于采样的检测

SelfCheckGPT是一种基于采样的一致性检查方法,用于检测大型语言模型(LLM)生成内容的事实性错误。与需要访问token级logprob的灰盒事实检查方法不同,SelfCheckGPT无需依赖外部知识库,仅通过对多个样本进行一致性检查即可实现事实性检测。它使用多种指标来测量模型响应与其他随机样本之间的一致性,实验表明在使用GPT-3生成的文本时,提示方法效果最佳。这种方法在无需外部知识库的情况下,提供了一种高效的事实性错误检测手段。

1. SelfCheckGPT方法

  • 依赖一致性检查:对多个来自黑盒LLM的样本进行一致性检查,以检测事实性错误。
  • 无需外部知识库:与需要访问LLM的token级logprob的灰盒事实检查测量不同,SelfCheckGPT只需要样本,不依赖于外部知识库。

2. 方法概述

  • 使用多种指标:测量模型响应与其他随机模型样本之间的一致性,包括BERTScore、NLI(自然语言推理)、提示(询问是/否)等。
  • 实验结果:在使用GPT-3生成的WikiBio段落进行实验时,SelfCheckGPT的提示方法效果最好。

未知知识校准

为了评估和校准大型语言模型(LLM)在面对未知或不可回答问题时的表现,多个基准和方法被提出。TruthfulQA测试模型在面对常见误解或错误设计问题时的真实性,发现较大的模型更容易产生虚假陈述。SelfAware基准则评估模型的自我认知能力,较大的模型在区分可回答和不可回答问题上表现更好。通过多项选择问题的校准实验,发现RLHF微调会降低校准效果,但较高的采样温度会改善校准结果。CalibratedMath测试模型在数学问题上的校准情况,发现口头表达的概率在不同任务难度下校准效果较好。这些研究表明,在处理未知或不可回答问题时,提高模型的校准和自我认知能力对于减少幻觉生成至关重要。

TruthfulQA (Lin et al. 2021)

  • 设计:由817个问题组成,涵盖38个主题,包括健康、法律、金融和政治等,问题根据常见误解或错误设计。
  • 目标:评估模型在面对不确定或未知问题时生成真实回答的能力,避免虚假陈述,包括拒绝回答或提供不相关的真实信息。
  • 结果:最佳LLM准确率为58%,人类能达到94%。发现较大的模型在此基准上的真实性更低。

2. SelfAware (Yin et al. 2023)

  • 设计:包含1,032个不可回答问题和2,337个可回答问题,不可回答问题来源于在线论坛,有人工标注;可回答问题来源于SQuAD、HotpotQA和TriviaQA。
  • 目标:测试模型的自我认知能力,即是否知道自己知道或不知道的内容。
  • 结果:较大的模型在区分可回答和不可回答问题上表现更好。

3. 不确定性输出的校准 (Kadavath et al. 2022)

  • 实验:在多项选择问题上,评估模型对答案正确性的概率估计是否与实际频率一致。
  • 结果:模型经过RLHF微调后校准效果变差,但较高的采样温度会导致更好的校准结果。较大的模型校准效果更好,问题格式对校准误差有影响。

4. CalibratedMath (Lin et al. 2022)

  • 设计:包括不同难度的数学问题,测试模型输出概率的校准情况。每个问题需要模型生成数值答案和置信度。
  • 结果:口头表达的概率在不同任务难度或内容分布变化下校准效果较好。50-shot学习几乎和微调版本一样好。

间接查询

Agrawal等人(2023)研究了大型语言模型在生成内容时的虚假引用问题,提出了两种一致性检查方法:直接查询和间接查询。直接查询方法通过直接询问引用是否存在来检测幻觉,而间接查询方法则通过询问引用的辅助细节来间接检测幻觉。实验表明,间接查询方法在检测虚假引用方面效果更好,且较大的模型在减少幻觉生成方面表现更优。这些发现对于提高大型语言模型生成内容的真实性具有重要意义。

.研究内容

  • 研究对象:Agrawal等人(2023)研究了大型语言模型(LLM)生成中的虚假引用问题,包括伪造的书籍、文章和论文标题。

两种一致性检查方法

  • 直接查询 (Direct Query):直接询问模型生成的引用是否存在。
  • 间接查询 (Indirect Query):询问生成引用的辅助细节,例如作者是谁。假设对于虚假引用,多次生成一致的作者信息的可能性较低,而多次生成引用存在的回答一致性的可能性较高。

实验结果

  • 比较结果:间接查询方法效果更好。
  • 模型规模影响:较大的模型更有能力,产生幻觉的概率较低。

反幻觉方法

让我们回顾一组提高llm真实性的方法,从外部知识库的检索,特殊采样方法到校准微调。也有通过编辑神经元来减少幻觉的可解释性方法,但我们将在这里跳过。我可能会在以后的另一篇文章中讨论可解释性。

RAG → 编辑与归因

检索增强生成 (RAG)

  • 方法:通过检索相关文档并将其作为上下文生成内容。
  • RARR (Retrofit Attribution using Research and Revision):通过查询生成模型和谷歌搜索,查找相关证据,并编辑生成的文本以确保内容与证据一致,同时尽量保留原始文本。
  • FAVA (Factuality Verification with Augmented Knowledge):检索相关文档后,编辑生成内容以避免幻觉错误,需要对编辑器模型进行微调。

重新思考检索 (RR)

  • 方法:利用检索的外部知识,但不进行额外编辑,通过生成多个推理路径,选择与检索知识最匹配的答案。

自我反思的检索增强生成 (Self-RAG)

  • 方法:训练模型反思自己的生成过程,输出任务结果和中间反思标记,通过检索多个文档来提高生成质量。
  • 反思标记
    • Retrieve:决定是否检索文档。
    • IsRel:判断提示和检索文档的相关性。
    • IsSup:判断生成内容是否得到检索文档的支持。
    • IsUse:评估生成内容的有用性。

行为链

验证链 (Chain-of-Verification, CoVe)

  • 方法:通过模型自身的验证和修正过程来减少幻觉错误。
  • 步骤
    1. 初始生成:模型生成初步草稿响应,称为“基线”。
    2. 计划验证:基于初始生成,模型设计非模板化的验证问题以进行事实核查。
    3. 执行验证:模型独立回答这些问题,有几种不同的设置:
      • 联合:将验证规划与执行步骤结合,可能会重复幻觉。
      • 两步:分离验证规划和执行步骤,避免初始响应影响。
      • 分解:每个验证问题分别回答。
      • 分解+修正:在分解验证执行后增加“交叉检查”步骤,检测不一致。
    4. 最终输出:生成最终修订后的输出,如果发现不一致则进行修正。
  • 观察结果
    • 指令微调和连贯推理并不能减少幻觉。
    • 分解和两步验证方法提高了性能,明确的不一致检测也有所帮助。
    • 短形式验证问题比长形式查询更准确。
    • 自由形式生成的验证问题比启发式方法更好。

复述增强生成 (RECITE)

  • 方法:通过复述作为中间步骤来提高模型生成的事实性,减少幻觉。
  • 步骤:模型首先复述相关信息,然后基于复述生成最终答案。可以通过少样本上下文提示来教导模型生成复述,然后生成基于复述的答案。该方法可以与自我一致性集成,并扩展到多跳问答。

采样方法

持续更新中……

为了准确性进行微调

持续更新中……

为了归因进行微调

持续更新中……

附录:评估基准

持续更新中……

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多