AI 幻觉 Hallucination 精读《A Survey on Hallucination in Large Language Models...》
中的幻觉。。
幻觉:AI在根据指令生成不符合事实/预期的内容 ( 不忠于所提供的源输入)
一、幻觉分类
在一区Survey of Hallucination in Natural Language Generation中,把幻觉主要分为了
1.内在幻觉 Intrinsic Hallucinations :生成内容直接与源内容冲突
2.外在幻觉 Extrinsic Hallucinations : 源内容无法验证生成内容
在另一篇文献A Survey on Hallucination in Large Language Models: Principles, Taxonomy, Challenges, and Open Questions()中,提出了新的分类方法
事实性幻觉 factuality hallucination
生成的内容和可验证的真实世界事实之间的差异,通常表现为事实不一致。
忠实性幻觉 faithfulness hallucination
忠诚幻觉捕捉到了生成的内容与用户输入的差异,或者生成的内容中缺乏自我一致性。这一类别又细分为指令不一致,即内容偏离用户的原始指令;上下文不一致,突出与所提供的上下文的差异;以及逻辑不一致,指出内容中的内部矛盾
不忠体现在三个方面:
1.指令不忠 Instruction inconsistency :输出偏离用户指令 翻译任务转而执行回答任务
2.上下文不忠 Content inconsistency :LLM的输出与用户提供的上下文信息不一致的情况
3.逻辑不忠:当LLM输出表现出内部逻辑矛盾时,这通常在推理任务中观察到。这表现为推理步骤之间以及步骤与最终答案之间的不一致。8 / 2 = 3
二、幻觉来源:
1.数据 data-related
① 错误信息和偏见 misinformation and bias
训练数据本身是错误的,数据经常出现“爱迪生发明灯泡”不正确观点,而LLM没有辨别是非的能力。可以看作是LLM在模仿数据的错误(imitative falsehoods, duplication bias)
或者是LLM将训练时增强的联系强加入输出中,导致不属于原上下文的东西被LLM的强关系拉进输出(社会偏见Social biases)。
②知识边界 knowledge boundary
无论训练数据如何庞大,都会有边界
长尾知识(long-tail knowledge)
最小二乘法没法记住长尾信息,尤其在信息的不均匀分布下,对于冷门不常见的信息,记忆力很弱。
最新知识(Up-to-date knowledge)
版权敏感知识 (Copyright-sensitive Knowledge)
③ Inferior Alignment Data 低质对齐数据
对齐:通过人类反馈(如SFT和RLHF)和各种技术手段,调整一个已经预训练好的、拥有大量知识但行为未加约束的模型,使其输出变得有帮助、诚实、无害的过程。这个过程严重依赖于“对齐数据”的质量。
Gekhman的研究表明在SFT(有监督的微调)的过程中获得新知识和增加幻觉之间的相关性,这表明引入新的事实知识会鼓励LLM产生幻觉。此外,在特定任务格式学习中更加严重,复杂和多样化的指令都会导致幻觉增加。
格式学习任务能够减少幻觉:通过将模型的任务严格限定在“格式化输出”上,而不是要求它从自身参数中回忆并生成事实内容,可以大大降低幻觉的风险。模型的工作从“创造内容”变成了“填充模板”或“选择标签”,结合检索增强生成(RAG) 时,这个优势尤其明显:外部知识源提供“内容”(事实),任务格式指令规定“形式”(结构),模型只负责将两者结合,从而生成既准确又规范的答案
2.训练 training-related
①预训练的幻觉 Hallucination from Pre-training
transformer架构的LLM 在促进有效训练的同时,它固有地限制了捕捉错综复杂的背景依赖关系的能力,潜在地增加了出现幻觉的风险.
Exposure Bias (曝光偏差) 指的是模型在训练阶段和推理(生成)阶段所看到的数据分布存在不一致(disparity),这种不一致导致模型在推理时容易出错,错误累积后就会产生幻觉。
②STF中的幻觉
监督微调(SFT)的本意是激发模型在预训练中学到的能力,但如果指令的要求超出了模型能力的边界,并且训练方法强迫模型必须回答所有问题,就会导致模型“硬着头皮”编造内容,从而产生幻觉。
指令任务的要求超出模型的能力,强迫其拟合未知知识,另一方面模型被训练成不会拒绝,与模型的能力形成冲突就会导致幻觉。
③RLHF中的幻觉
基于人类反馈的强化学习(RLHF)可能其内部其实“知道”什么是对的(拥有内部信念),但为了迎合人类评价者的偏好,它会选择输出一些违背自己认知的、讨好用户的答案。这种“曲意逢迎”(sycophancy)的行为本身就是一种幻觉。
表现一有模糊问题:在涉及政治立场、价值观等没有标准答案的模糊问题上,模型会迎合用户的预设观点。二有即使面对有明确正确答案的问题,模型内心知道答案,但为了迎合用户,仍说出错误答案。
根源在于RLHF的训练本身,具体在于人类标注员的偏好和偏好奖励模型
3.推理 inference-related
①解码策略问题 Imperfect Decoding Strategies
随机抽样是目前这些LLM所采用的主流译码策略,这种随机性在带来多样性的同时也带来幻觉增加的可能性
②过度自信 Over-confidence
LLM在生成文本时,会过度关注自己已经生成的内容(局部上下文),并为了保持这段内容的流畅性,而逐渐忽略或偏离最初的指令和源上下文,从而自信地生成不忠实的内容。
直接原因在于对源上下文和初始指令的“关注度不足”,直接导致了不忠实性幻觉
③softmax 瓶颈
大部分语言模型用的是softmax层+词嵌入作输出层,softmax的固有特质决定了它的上限。
文章中提到了多模态分布,预测下一个单词的时候可能遇到多个高概率但风格完全不同的词(词向量空间很远,处于不同模式的词),在这种情况下,也引入了幻觉的风险。
④ 推理失败 reasoning failure
LLM的学习本质是记忆统计关联,而非理解逻辑关系。
LLM即使在其参数中存储了完成任务所需的所有正确知识,也可能因为逻辑推理能力的欠缺而无法正确组合和运用这些知识,从而导致错误的输出(即一种推理型幻觉)
文中提到的逆转诅咒 “A是B”,“B是A”对于LLM来说是两条不相关的数据是经典例子。
三、幻觉检测和基准
幻觉检测按照幻觉的分类来分为真实性幻觉检测和忠实性幻觉检测
1.真实性幻觉检测 Factuality Hallucination Detection
...未完成
2.忠实性幻觉检测 Faithfulness Hallucination Detection
分为五组(1) Fact-based (2)Classifier-based (3) QA-based (4) Uncertainty-based (5) LLM-based.
(1)基于事实检测 Fact-based Metrics
忠诚度可以基于n-gram,entities和relation-triples来检测。
①n-gram n元语法
通常不能区分生成的内容和源内容之间的细微差别
②entities 实体
通过抽取query和LLM输出的实体,来检测重合度判断是否忠实。关键实体的任何遗漏或不准确的生成都可能导致不忠实的响应。而且即使实体匹配,它们之间的关系也可能是错误的。
③relation-triples 关系元组
基于关系的元组是一种端到端的事实,通过这种元组的重合关系来事实检测是最好的
(2)基于分类器检测 Classifier-based Metrics
使用基于自然语言推理(NLI)的判别器/分类器,训练一个分类器来判断“生成的内容”是否可以被“源内容”所蕴含(Entail)。
NLI是一个成熟的NLP任务,目标是判断两个句子(前提Premise和假设Hypothesis)之间的关系是蕴含、矛盾还是中性。已有大量标注数据集(如SNLI, MNLI)
蕴含的概念:如果一段文本B可以从另一段文本A中逻辑推理出来,那么就说A蕴含B
(3)基于QA 的检测 QA-based Metrics
通过“提问-回答”的方式来检验生成内容中的每一个信息点是否都能在源内容中找到支撑。 它把忠实性评估问题转化为了一个问答验证问题。
对LLM输出答案的重要信息单元,设计一个问题生成模块生成问题。这些问题随后被用于基于用户上下文(源文档)生成源答案。最后,通过比较源答案和目标答案之间的匹配分数来计算LLM的回答的忠实度。
(4)基于不确定性的检测 Uncertainty-based Metrics
这种方法是基于高不确定性和高幻觉风险的正相关性。
测量不确定性一是计算熵,二是计算基于对数概率的置信度。
高熵 低概率 ≈ 高幻觉风险
(5)基于LLM的检测 LLM-based Judgement
直接指令一个LLM,让它扮演“评估者”的角色,根据我们提供的标准来评判另一段文本的质量。
评判器LLM输出可以是二元判断也可以是李克特量表(k-point Likert scale)来表示忠诚度。
四、幻觉基准 Hallucination Benchmarks
幻觉基准在文中分为两个主要领域:幻觉评估基准 Hallucination Evaluation Benchmarks和幻觉检测基准Hallucination Detection Benchmarks.前者是表示LLM产生幻觉的程度,后者用于评估检测幻觉的方法。
1.幻觉评估基准Hallucination Evaluation Benchmarks
为了量化LLMS产生幻觉的趋势。当前前幻觉评估基准的主要目标是长尾知识和挑战性问题,这些问题很容易引发模仿错误。至于评估,这些基准通常使用多项选择QA,其中性能通过准确性指标或生成性QA来衡量,通过人工判断或代理模型给出的分数进行评估。
(1)利用长尾事实性知识评估幻觉
为了评估LLM在长尾事实性知识上的幻觉,研究人员会系统性地构建QA作为测试集。构建这些测试集的核心是设计筛选标准,而这些标准主要围绕三个维度:知识出现的频率、知识的新颖性、知识所属的领域。
筛选标准 |
核心关注点 |
代表性基准 |
基准特点 |
---|---|---|---|
频率 |
知识的常见度 |
PopQA, Head-to-Tail |
基于维基百科流行度,系统覆盖从头部到尾部的实体 |
新颖性 |
知识的时效性 |
REALTIMEQA, FreshQA |
关注新知识、变化的知识和抗错误前提干扰的能力 |
领域 |
知识的专业性 |
Med-HALT, [203] |
深入特定垂直领域,使用专家级问题进行深度评测 |
(2)用模仿性虚假知识评估幻觉
用模仿性虚假知识评估幻觉的核心思想是:通过对抗性提示,故意设计一些“陷阱题”,来诱使LLM输出其在训练数据中学到的常见错误、偏见或虚假信息。 它测试的不是模型的知识边界,而是模型抗误导、坚守真理的能力。
代表性基准有 TruthfulQA (英文)和 HalluQA(中文)拓展基准HaluEval 2.0。
2.幻觉检测基准Hallucination Detection Benchmarks
用于评估检测LLM幻觉的工具而设计的基准
幻觉检测工具 -> “杀毒软件” 幻觉检测基准 -> “病毒样本库”
这个库里有各种已知的“病毒”(幻觉),并标明了每个病毒的特征和位置。
开发出新的“杀毒软件”后,就在这个“病毒样本库”上测试,看它能查出多少病毒,从而客观衡量其有效性。
基准名称 |
核心特点与贡献 |
好比“病毒样本库”的什么特点? |
---|---|---|
SelfCheckGPT-Wikibio [213] |
使用GPT-3生成维基百科风格的传记文章,并进行人工逐句标注事实性。 |
专注于“人物传记”领域的病毒样本,样本由高级LLM(GPT-3)生成,质量高。 |
HaluEval [169] |
规模大(3.5万样本),结合自动生成与人工标注,覆盖通用问答和特定任务。采用“采样-过滤”法高效构建。 |
大规模、多用途的病毒样本库,样本来源多样。 |
BAMBOO [76] / ScreenEval [158] |
专注于长文本中的幻觉检测。之前的基准多是短文本。 |
“长文本病毒”样本库,专门测试杀毒软件在长篇大论中查找病毒的能力。 |
FELM [42] |
评估多领域的事实性(世界知识、科学、数学),并标注了事实准确性的多个层面。 |
“跨领域综合病毒”样本库,包含不同学科的病毒变体,测试杀毒软件的通用性。 |
PHD [340] |
专注于段落级别的非事实内容检测,通过分析维基百科实体来构建。 |
“深度知识病毒”样本库,测试杀毒软件对知识深度的理解,而非表面错误。 |
RealHall [90] / SAC3 [364] |
紧密贴合真实应用场景,专注于开放域问答(就像用户直接问ChatGPT问题)。 |
“真实世界病毒”样本库,样本直接取自最常见的用户使用模式。 |
LSum [85] |
专注于摘要任务中的幻觉。 |
“摘要专用病毒”样本库,专门测试对摘要任务的杀毒效果。 |
五、幻觉缓解
文章中主要针对幻觉产生的来源对症下药,分为了三个方向:减少数据相关的幻觉、训练相关的幻觉和推理相关的幻觉
1.减少数据相关幻觉
(1)数据过滤 Data Filtering
选择高质量的数据,以避免引入错误信息和偏差。但随着数据量的迅速增大,数据过滤策略面临挑战。
文中主要介绍了两大过滤策略:1. 源头质量控制 和 2. 去重
①源头质量控制
从可靠来源直接挑选数据,而不是从整个互联网上无差别地抓取。
早期(GPT-2)采用人工的办法,只抓取那些经过人类专家精心策划和过滤的网页(如高质量的新闻网站、百科全书、学术论文等)。
以及采用高质量数据集(the pile) 和在事实性数据集上采样,增加权重,能够有效减少幻觉。
②去重
因为某些观点尤其是错误信息如果在数据中重复出现无数次,会被模型误认为是“非常重要的真理”,从而加深其偏见,并更自信地输出这些内容(导致幻觉)。同时去重还能够提升训练效率。
方法上对于完全一致的字符串,可以采用后缀数组。
对于近似去重(含义差不多但表述不同)可以采用MinHash:一种非常流行的局部敏感哈希算法,能快速估算两个文档的相似度,广泛应用于大规模去重;基于嵌入的语义去重(如SemDeDup):使用预训练模型得到文本的语义向量(Embedding),然后计算向量之间的相似度。如果两段文本的语义极其相似,即使字面不同,也会被视为“语义重复”而移除其一。
(2)模型编辑 Model Editing
通过编辑模型参数来注入最新知识,纠正模型的错误认识/行为。微调而非重新训练。
主要分为两大方法:定位后编辑 Locate-then-edit和元学习 Meta-learning
①定位后编辑 Locate-then-edit
原理是先找到模型中存储了错误知识的参数位置(在FNN层),然后直接计算出一个参数更新量,应用到定位到的参数上,从而覆盖旧知识,注入新知识。
②元学习 Meta-learning
原理是不直接修改原模型参数,而是训练一个外部的小型“超网络”。这个超网络学会如何根据“编辑指令”(要改什么)来预测出应该对原模型参数进行怎样的修改。
(3)RAG 利用外部非参数数据库进行知识供应的检索-增强生成
流程:接收问题 检索材料(外部数据库) 组合上下文(将原问题和外源数据库里面检索到的资料一起打包给LLM) 回答问题
RAG通过将外部知识与LLM解耦,在不影响LLM性能的前提下,有效地缓解了知识鸿沟引起的幻觉。
关于检索分为三个方法:一次性检索、迭代检索和事后检索,具体取决于检索的时间。
①一次性检索 One-time Retrieval
检索时根据用户的问题,从外部知识库中一次性检索出最相关的文档。将这些检索到的文档直接拼接到用户的问题前面,形成一个全新的、更丰富的提示。将这个组合好的长提示交给LLM,让它基于所有提供的上下文生成最终答案。
文中提到了两个重要的创新:
知识图谱(KG)作为知识库
这种结构化的知识更能促进LLM进行逻辑推理,而不仅仅是文本匹配,有助于生成更严谨、推理链条更清晰的答案,进一步减少幻觉。
参数化知识引导(PKG)框架
它利用特定领域的知识增强LLM,训练了一个小型的、专门的“背景知识模块”。如此无需访问庞大的外部数据库,响应更快,特别适合特定垂直领域(如医疗、法律)。
②迭代式检索Iterative Retrieval
将检索和生成过程交织在一起,在多个迭代循环中动态地进行“检索 -> 生成 -> 再检索 -> 再生成”,每一步的生成都为下一步的检索提供新的、更精准的线索。
文中介绍了几种不同的迭代检索实现方式:
1. 基于思维链的迭代检索(用于多步推理)
拆解问题:模型首先将复杂问题分解成几个连续的、简单的子问题(形成一条思维链)对于每一个子问题都进行检索和生成,解决完所有子问题,综合答案。
文中提到的Self-Ask,明确地将每个子问题用“Question: ...”的形式标注出来,然后基于这个明确的问题去执行搜索动作,使得过程更清晰、更可控。
2. 检索-生成协作框架(用于优化答案)
先基于初始一次性检索,生成一个初步的答案或文本。模型自我审视这个初版内容,找出其中置信度低、不确定的部分(可能是幻觉)将这些不确定的片段作为新的查询,再次检索知识库,寻找支持或反驳的证据。基于新的证据,对初版答案进行修订和润色,如此循环,直至整体内容置信度高
3. 主动检索增强生成(用于长文本生成)
在生成长文本(如一篇报告、一个故事)时,每生成一个句子或一个段落后,就预测下一个要写的内容,并用这个预测作为查询去检索资料,以确保下文的事实准确性。这相当于“写一句,查一句”,保证全程都有据可依。
4. 混合对齐(用于澄清用户问题)
当用户问题很模糊时,模型不是直接检索,而是主动与用户交互,提出澄清问题,迭代地缩小范围,直到完全理解用户意图,再进行检索和回答。这从源头上确保了检索的准确性。
③事后检索
先让模型自由发挥(未借助外部),生成一个初步答案,然后再通过检索外部知识来验证和修正这个答案中的错误。
写到这里,我感觉事后检索和迭代检索的检索-生成协作框架有点类似,但其实在加深了解后还是很不相同的。
最本质的区别在于检索的触发时机与目的
检索-生成协作框架更像是领航,生成与检索在每一步紧密耦合、循环往复按照之前的答案去外部检索,来引导写出下一句话,他是在生成过程中触发检索。而事后检索在整个生成过程完全结束之后。
2.减少训练相关幻觉
训练相关的幻觉通常是由于LLM的架构和训练采用的策略的内在限制。
(1)减少预训练相关幻觉(pre-training)
①模型架构上入手
单向表示 Unidirectional Representation
GPT等仅解码器(Decoder-only) 模型在预训练时,每个词只能看到它之前的词(左上下文),无法利用之后的词(右上下文)的信息,这限制了模型对整个句子的完整理解,可能导致推理不完整或错误。
解决方案:例如BATGPT 采用双向自回归方法。在预测下一个词时,同时考虑过去和未来的上下文。
软注意力(Soft Attention)的局限性
标准Transformer的注意力机制是“软”的,即对于任何一个词,它会对上下文中的所有词分配一个非零的、平滑的注意力权重,这种“雨露均沾”的机制可能导致模型无法高度聚焦于最关键的几个词,从而在推理时被无关信息干扰,产生逻辑错误。
解决方案:注意力锐化正则器 ,一种“即插即用”的方法,通过添加可微分的损失项,促使注意力分布变得更“尖锐”、更稀疏。这使得模型在推理时能像激光一样精准聚焦于最相关的信息,减少分心,从而显著降低推理幻觉
架构选择:编码器-解码器(Encoder-Decoder)
②预训练策略改进
数据碎片化
由于GPU内存限制,训练长文档时会被切成片段(chunking)。模型在学习时,看不到完整的文档,导致学到的知识是碎片化的。模型可能只知道“A和B有关”,但不知道具体是什么关系,容易错误关联实体。
解决办法:事实增强训练,在每个句子前加上一个主题前缀(TOPIC-PREFIX)这相当于把每个句子都变成了一个自包含的事实单元,即使文档被切碎,模型也能明确知道这个句子在讲什么主题,极大增强了模型对事实关联的理解,减少了事实错误。
文档无序拼接
为了提升训练效率,通常会将多个不相关的短文档随机拼接成一个长序列来训练模型。这强迫模型去学习不连贯的上下文,可能导致其输出也变得不一致和混乱。
解决方案:上下文预训练 ,不再随机拼接文档,而是将有相关性的文档顺序排列在一起进行训练。
(2)减少错位幻觉Mitigating Misalignment Hallucination(post-training)
文中指出,错位幻觉主要源于两种“错位”:
能力错位(Capability Misalignment):人类标注员提供的指令和答案,超出了模型本身的能力边界,模型被迫生成它不知道的内容,从而胡编乱造。
信念错位(Belief Misalignment):模型内心知道正确答案,但为了迎合人类的偏好或观点,而故意说出一个错误的、但更“讨喜”的答案。典型表现就是 “谄媚”(Sycophancy)
原因上面幻觉的来源中讲到了RLHF产生的幻觉,这里讲如何缓解信念错位。
①改进人类反馈的源头质量
LLM辅助标注:让LLM辅助人类标注员,帮他们发现那些容易被忽略的缺陷(如逻辑谬误、事实错误),使评判更客观。
聚合多人偏好:不依赖单个人的判断,而是聚合多个人的偏好,取平均值,这样可以过滤掉个人的极端偏见,得到更公允的反馈。
②通过微调修正模型行为
通过制作合成数据来训练模型克服谄媚的习惯。合成数据为人工生成大量“主张-事实”对,其中主张的真假与任何人的观点无关。
例子:主张:“地球是平的。” -> 事实:“该主张是错误的,因为...”(这里正确答案是客观的,不因谁认为它是对是错而改变)。
用这些数据对模型进行微调,强化其“坚持客观事实”的行为,弱化“迎合主观观点”的行为。
③激活引导
首先要测试模型“谄媚”导向向量,指向了模型“谄媚思维”的方向。首先准备很多对“谄媚/非谄媚”的提示词,让模型处理这些提示词,并记录下它大脑(神经网络)在产生谄媚回答和产生非谄媚回答时的激活状态差异。把这些差异平均起来,得到一个 “谄媚导向向量”。
当模型正常回答问题时,实时计算其大脑的激活状态。从中减去这个“谄媚导向向量”
3.减少推理相关幻觉
减少推理相关幻觉主要是从解码方面,分为了事实性增强和忠实性增强
(1)事实性增强
(2)忠实性增强
忠实性增强译码优先考虑与所提供的上下文的匹配,并强调增强内部一致性,工作分为上下文一致性和逻辑一致性。
①上下文一致性Context Consistency
关于增强模型输出的上下文一致性,提出了四种策略
1.上下文感知解码CAD 对比解码
CAD在对比公式中修改模型的原始输出分布。通过放大有上下文和无上下文的输出概率之间的差异,CAD鼓励LLM更多地关注上下文信息,而不是过度依赖先验知识.但是过度强调语境信息(绝对正确)导致输出的多样性被抑制。
2.动态解码算法
动态地判断何时要紧扣资料,何时可以自由发挥。
流程如下:同样进行并行解码(有资料 vs 无资料)。计算两个输出概率分布的KL散度。这个值越大,说明参考资料带来的影响越大,即参考资料与问题高度相关。
如果高度相关(KL散度大),就降低“采样温度”,让模型输出更保守、更严格地紧扣资料。
如果不那么相关(KL散度小),就提高“采样温度”,让模型输出更多样、更自由。
3.知识约束解码(KCD)
训练一个专门的“幻觉检测器”( discriminator),在模型生成每一个词的瞬间就判断它是否在编造,并及时纠正。
对于生成的每一个token,都会进行检测,如果发现是编的(幻觉),就立刻降低该词的权重,同时提高其他忠实候选词的权重。
4.事后编辑(研究-修订工作流)research-and-revise workflow
针对初步答案中的每一个要点,提出验证性问题,并去参考资料中寻找证据。
将答案与证据逐条比对,删除那些没有证据支持的内容,用找到的证据修订答案
②逻辑一致性Logical Consistency
逻辑一致性指模型生成的中间推理步骤(理由) 与最终答案之间,以及各步骤之间,应当存在清晰、严谨、符合逻辑的因果关系。文中介绍的方法旨在确保模型的“思考过程”是真实、可靠、经得起推敲的。
1.知识蒸馏与反事实训练
先用对比解码等方法,让一个强大的教师模型生成逻辑一致的高质量推理链(正确的思考过程)。学生训练:用一个学生模型去学习。关键技巧是采用反事实推理目标:不仅让学生学习“正确的理由 -> 正确的答案”,还让它学习“如果理由是错误的(反事实),答案应该不同”。
2.对比解码(Direct Application)
在生成推理链的每一步时,使用对比解码。这会抑制模型生成那些与上文高度重复、缺乏信息量的词(如车轱辘话),鼓励它生成能推出新结论的、实质性的推理步骤。
3.推理桥接与归因 inferential bridging
推理不忠实的根源在于——推理链(CoT)和答案所依赖的上下文信息不一致,例如,CoT可能错误地引用了文档A的信息,而答案却基于文档B。
使用归因方法(如梯度或注意力)来计算推理链的每一步与源上下文的关联强度( attribution score)。这可以衡量“这一步推理有多大程度是基于给定材料的?”
过滤与提示:过滤掉那些与源材料语义一致性低、归因分数低的“嘈杂”推理链。同时,将高归因分数的上下文信息作为“提示”来增强后续的推理步骤。
4.符号化思维链 SymbCoT
翻译:先将自然语言上下文翻译成符号表达式(如逻辑公式、数学符号、代码)。符号系统的优点是精确、无歧义。
符号推理:在符号领域内进行严格的、逐步的推理。
验证:引入一个验证器来检查翻译和推理过程的正确性。
六、RAG幻觉
RAG本被设计用来减少幻觉,但其自身架构的缺陷却可能成为新幻觉的来源。
本章系统地分析了导致RAG系统产生幻觉的两大根本原因:检索失败和生成瓶颈
核心矛盾
- RAG的设计初衷:通过引入外部知识源,弥补LLM内部知识的不足(如知识陈旧、长尾知识缺失),从而减少幻觉。
- RAG的现实问题:RAG系统本身并非完美,其检索器和生成器的缺陷可能导致新的、更隐蔽的幻觉。
RAG幻觉的两大根源
1. 检索失败
检索失败指的是系统未能为用户查询找到最相关、最准确的支撑文档。这又细分为三个子问题:
问题 |
描述 |
例子与缓解策略 |
---|---|---|
用户查询问题 |
用户的提问方式本身可能导致检索器误解。 |
1. 检索意图误判: |
检索源污染 |
外部知识库本身包含错误或低质信息。 |
LLM生成内容污染:互联网上越来越多的LLM生成文本可能被爬取并放入知识库。检索模型可能更偏爱这些“AI味”十足的文本,导致错误信息循环放大。 |
检索器缺陷 |
检索器本身的技术限制导致效果不佳。 |
1. 分块不当: |
2. 生成瓶颈
生成瓶颈指的是,即使检索到了完美的文档,LLM在理解和利用这些文档生成答案时仍会出错。也分为两个子问题:
问题 |
描述 |
例子与缓解策略 |
---|---|---|
上下文意识不足 |
LLM未能有效利用检索到的上下文信息。 |
1. 噪声上下文: |
上下文对齐失败 |
LLM的生成未能忠实于检索到的证据。 |
1. 来源归因缺失: |
更多推荐
所有评论(0)