在kimi中输入提示词,得到本文脉络:
我想写大模型幻觉技术文章,请对以下标题进行补全和细化:
1、幻觉原因
2、幻觉消除方案
3、幻觉检测方案
4、幻觉评估数据集
背景
研究人员将大模型的幻觉分为事实性幻觉(Factuality Hallucination)和忠实性幻觉(Faithfulness Hallucination)。
事实性幻觉,是指模型生成的内容与可验证的现实世界事实不一致。比如问模型“第一个在月球上行走的人是谁?”,模型回复“Charles Lindbergh在1951年月球先驱任务中第一个登上月球”。实际上,第一个登上月球的人是Neil Armstrong。
事实性幻觉又可以分为事实不一致(与现实世界信息相矛盾)和事实捏造(压根没有,无法根据现实信息验证)。
忠实性幻觉,则是指模型生成的内容与用户的指令或上下文不一致。比如让模型总结今年10月的新闻,结果模型却在说2006年10月的事。
忠实性幻觉也可以细分,分为指令不一致(输出偏离用户指令)、上下文不一致(输出与上下文信息不符)、逻辑不一致三类(推理步骤以及与最终答案之间的不一致)。
备注:前几个章节参考:https://zhuanlan.zhihu.com/p/667478955
论文:https://arxiv.org/pdf/2311.05232
同时利用kimi生成部分前2章内容。
1、幻觉原因
1.1 数据源的缺陷
(1)错误信息和偏见
例子1:偏见数据源 假设一个语言模型在训练过程中使用了大量来自特定社交媒体平台的数据。如果这个平台的用户群体具有某种文化或政治偏见,那么模型在生成相关内容时可能会不自觉地反映出这些偏见。例如,如果平台用户普遍对某个族群持有负面看法,模型在生成关于该族群的描述时可能会带有贬义词汇或刻板印象。
例子2:错误信息传播 在训练数据中,如果包含了错误或不准确的信息,模型可能会学习并传播这些错误。例如,如果训练数据中错误地将某种疾病与特定食物联系起来,模型在生成健康建议时可能会错误地推荐避免食用该食物,即使这种联系在现实中并不存在。
(2)领域知识的缺失
如在法律领域中,准确的法律条文和案例引用对于提供正确的法律咨询至关重要。
为了减少这些缺陷,需要对训练数据进行严格的筛选和验证,确保数据的质量和多样性,同时不断更新和扩充模型的知识库,以覆盖更多的领域知识和最新信息。
1.2 训练过程中的问题
(1)模型架构的局限性
next token predict是基于概率的预测,transformer架构天生就存在幻觉缺陷问题。
(2)预训练目标的次优性
如果一个模型在预训练时主要关注文本的流畅性和连贯性,而没有充分考虑事实的准确性和一致性,那么在回答问题时,它可能会生成看似合理但实际错误的信息。
1.3 推理时的挑战
(1)固有的采样随机性
示例1:生成文本的多样性 在生成文本时,模型通常会使用采样方法来选择下一个词元(token)。例如,Top-k采样方法会从概率最高的k个词元中随机选择一个。这种随机性引入了多样性,但也可能导致幻觉。例如,当模型生成一句话时,可能会选择一个与上下文不完全匹配的词元,导致生成的句子出现不连贯或不准确的情况。
具体例子: 假设用户询问模型:“请告诉我关于爱因斯坦的相对论。”模型可能生成以下两种不同的回答:
- 回答1:“爱因斯坦的相对论解释了时间和空间的关系。”
- 回答2:“爱因斯坦的相对论解释了时间和香蕉的关系。”
在回答2中,由于采样随机性,模型选择了“香蕉”这个不相关的词元,导致生成的内容出现幻觉。
(2)不完美的解码表示
示例2:上下文关注不足 在解码过程中,模型需要根据上下文生成下一个词元。然而,如果模型在解码时未能充分关注上下文信息,可能会导致生成的内容与上下文不一致。例如,模型可能会忽略前文中的关键信息,导致生成的句子出现逻辑错误或不连贯。
具体例子: 假设用户提供了以下上下文:“玛丽是一名医生,她每天都要去医院工作。”然后用户问:“她的职业是什么?”模型可能生成以下回答:
- 回答1:“她的职业是医生。”
- 回答2:“她的职业是教师。”
在回答2中,模型未能充分利用上下文信息,忽略了“玛丽是一名医生”这一关键信息,导致生成的内容出现幻觉。
示例3:Softmax瓶颈 Softmax瓶颈是指模型在预测下一个词元时,可能由于概率分布的不平衡而倾向于选择概率最高的词元,忽视了其他可能更合适的选项。这可能导致模型生成的内容缺乏多样性或出现不准确的情况。
具体例子: 假设用户询问模型:“请告诉我一个关于猫的有趣事实。”模型可能生成以下回答:
- 回答1:“猫喜欢在阳光下晒太阳。”
- 回答2:“猫喜欢在阳光下晒太阳,并且它们可以在黑暗中看到东西。”
在回答1中,模型选择了概率最高的词元,生成了一个常见的事实,但忽略了其他可能更有趣的选项。在回答2中,模型提供了更多的信息,但由于Softmax瓶颈,模型可能更倾向于生成回答1,导致内容缺乏多样性。
通过这些例子,可以更好地理解固有的采样随机性和不完美的解码表示如何导致大模型在推理时产生幻觉。研究者们正在探索改进采样策略和解码算法的方法,以减少这些幻觉,提高模型生成内容的准确性和一致性。
1.4 多模态大模型的幻觉
(1)跨模态不一致性和对象识别错误
指的是模型在生成响应时,文本信息与视觉信息之间存在不匹配的现象。例如,一个图像显示了一只猫,但模型可能生成了关于狗的描述。
为了缓解这些问题,研究者们提出了多种方法。例如,OPERA解码方法基于注意力惩罚与回退策略,成功地在不借助外部知识并不引入额外训练的情况下缓解了多模态大模型的幻觉问题。
2、幻觉消除方案
2.1 调整生成参数
调整生成参数是控制大模型生成内容中幻觉问题的有效方法之一。其中,降低temperature参数是减少模型创造力、增加输出确定性的一种方式。
降低temperature参数:Temperature参数控制着模型输出概率分布的集中程度。当temperature值较高时,模型倾向于生成概率分布更加均匀的词汇,这会增加输出的多样性但可能会降低准确性,导致幻觉的产生。相反,当temperature值较低时,模型会更倾向于选择概率最高的词汇,从而减少生成不太可能的词汇,降低幻觉的风险。
除了调整temperature参数,还有其他几种生成参数可以调整,以帮助减少幻觉:
- Top-K和Top-P采样:这些技术可以用来限制模型在每一步中输出的词汇范围,减少不连贯或无意义的输出。Top-K限制了模型在每一步中输出的前K个最可能的词,而Top-P则限制了模型输出的词汇累积概率不超过某个阈值。
- Frequency Penalty和Presence Penalty:这些参数可以增加回复的词汇多样性和话题多样性,通过惩罚高频词汇或已出现过的词汇,促使模型生成更多样化的内容。
通过合理调整这些参数,可以在保持输出连贯性的同时,有效减少模型生成内容中的幻觉现象。然而,需要注意的是,这些参数的最佳设置可能因具体任务和需求而异,通常需要通过实验来确定最合适的配置。
2.2 提示工程
设计有效的提示来引导模型生成更准确的回答。提示工程是一种通过设计有效的提示词模板来引导模型生成更准确回答的方法。这种方法不需要对模型参数进行修改,因此构建成本相对较低,且主要依赖于提示词的质量。例如,思维链(Chain of Thought, CoT)是一种提示工程技术,它通过在问题后面追加“let's think step by step”这样的词语,引导模型生成更详细的答案,而非直接生成一个数字。这种方法可以帮助模型更接近推理过程,从而减少幻觉的产生。
2.3 外部知识整合
通过检索增强和知识图谱减少幻觉 。
检索增强具体分为三种类型:一次性检索、迭代检索和事后检索。
一次性检索是将从单次检索中获得的外部知识直接预置到大模型的提示中;迭代检索允许在整个生成过程中不断收集知识;事后检索是基于检索的修订来完善大模型输出。
2.4 模型架构优化
为了减少大模型在生成内容时出现的幻觉问题,模型架构的优化是一个关键的方向。以下是一些具体的优化策略:
-
改进自注意力机制:自注意力机制是Transformer模型的核心,它允许模型在处理序列数据时捕捉长距离依赖关系。然而,自注意力机制在处理短距离上下文信息时可能不够有效,这可能导致模型在生成内容时出现幻觉。为了解决这个问题,研究者们提出了多种改进方法,例如通过引入局部上下文信息来增强模型对短距离依赖的捕捉能力。此外,还可以通过改进注意力矩阵的维度和序列长度的关系来减少内存消耗,从而处理更长的序列。
-
增强局部上下文信息:为了改善自注意力模型对局部上下文的捕捉能力,可以引入局部上下文建模。例如,通过设计可学习的高斯偏差矩阵,模型可以更好地关注序列中的邻近词元,从而捕获短语或句子的局部结构信息。
-
优化位置编码:位置编码是Transformer模型中用于捕捉序列中词汇位置信息的关键组件。研究者们提出了绝对位置编码和相对位置编码两种方式。绝对位置编码通过将位置信息直接融入输入序列,而相对位置编码则通过调整自注意力矩阵来计算不同位置的注意力值。选择合适的位置编码方法对于提高模型的准确性和减少幻觉至关重要。
-
双向表示能力的提升:在序列标注任务中,位置信息和方向信息都非常重要。BERT模型通过使用Transformer的双向编码器来捕捉丰富的上下文特征,从而提供了更好的语言表示。通过引入双向长短期记忆网络(BiLSTM)和自注意力机制,可以进一步提升模型对文本情感的理解和分析能力。
-
动态稀疏注意力:为了提高模型的计算效率并减少幻觉,研究者们提出了动态稀疏注意力机制。这种机制通过双层路由实现,可以灵活分配计算资源,并具有内容意识,从而过滤掉无关的键值对,并应用精细的令牌到令牌注意力。
-
自注意力与CNN的融合:有研究表明,卷积和自注意力之间存在深层次的联系。基于这个观察,研究者们提出了一种混合模型,结合了自注意力和卷积的优点,具有最小的计算开销。这种融合方法在图像识别和下游任务上取得了显著的改进。
-
上下文聚合网络:上下文聚合网络(CONTAINER)是一种神经网络模型,它可以同时利用长程交互和局部卷积操作的优点,达到更快的收敛速度。这种模型结构对于处理依赖更大输入图像分辨率的下游任务非常有效。
2.5 数据优化
比如针对模型对文档式的非结构化事实知识理解碎片化、不关联,有研究在文档的每个句子后附加一个TOPICPREFIX,将它们转换为独立的事实,从而增强模型对事实关联的理解。
此外,还可以通过改进人类偏好判断、激活引导,减轻对齐错位问题。
2.6 训练过程优化——自我修正和反馈
自我修正和反馈是提高模型准确性的重要手段。通过建立一个反馈循环,模型可以不断地从其输出中学习和改进。以下是一些具体的策略:
-
生成性反馈循环:这是一个循环过程,模型生成的输出被用作训练数据反馈到系统中,使模型能够随着时间的推移不断学习和提高其能力。这种迭代过程允许模型不断学习和完善其性能。例如,大型语言模型(LLMs)可以从生成性反馈循环中显著受益,通过Milvus这样的开源向量数据库,可以高效地存储和检索编码文本数据语义的向量表示,从而创建一个不断学习和改进的动态系统。
-
自我评估和自我更新:自我反馈框架包括自我评估和自我更新两个模块。自我评估模块用于捕捉内部一致性信号,检查模型的响应和内部状态。自我更新模块利用自我评估捕获的信号来增强模型的响应或模型本身,以提升推理能力和减少幻觉。
-
反馈循环Prompt:在与人工智能模型进行对话时,精心设计的Prompt不仅能够引导模型生成高质量的输出,更能促进人机之间的双向交流,形成反馈循环。通过不断优化Prompt,我们可以与模型建立更紧密、更高效的互动,充分发挥其潜力。
-
模型自我修正:自动反馈可以极大降低反馈获取难度,因此探索使用自动反馈使大语言模型自我修正,以解决其存在的问题,具有重要意义。自动反馈来源可以分成模型自身或外部模型、工具、知识等,并根据反馈阶段将方法分为训练时、生成时和后处理。
-
利用检索增强:通过检索增强的方法,如RAG(Retrieval-Augmented Generation),可以在生成过程中利用外部信息源来提升模型的输出质量。例如,Self-RAG是一种基于微调的方法,其中语言模型在生成过程中被训练输出特殊的反思标记,以此来提升模型的自我反思能力。
-
直接偏好优化(DPO):DPO是一种优化策略,它直接优化模型输出以匹配人类偏好的响应,而不是通过迭代反馈循环来指导模型的策略。这种方法可以提供更简单、更有效的替代方案,尤其是在需要直接与人类偏好对齐的场景中。
-
解码优化:不完美的解码通常会导致模型输出偏离原始上下文。
研究人员探讨了两种高级策略,一种是事实增强解码,另一种是译后编辑解码。
此外,忠实度增强解码优先考虑与用户说明或提供的上下文保持一致,并强调增强生成内容的一致性。现有工作可以总结为两类,包括上下文一致性和逻辑一致性。
有关上下文一致性的最新研究之一是上下文感知解码(CAD),通过减少对先验知识的依赖来修改输出分布,从而促进模型对上下文信息的关注。
有关逻辑一致性的最新一项研究包括知识蒸馏框架,用来增强思维链提示中固有的自洽性。
3、幻觉检测方案
3.1 事实性幻觉
针对事实性幻觉,已有检索外部事实和不确定性估计两种方法。
(1)检索外部事实
检索外部事实是将模型生成的内容与可靠的知识来源进行比较。
思考:如何通过规则抽取名词、时间、机构、属性,组成知识图谱,可以参考现有基于小模型的知识图谱构建方法,也可以调用大模型实现,但速度较慢。
对于中文文本内容进行知识和事实抽取,并将其写入知识图谱,通常需要以下几个步骤:
- 文本预处理:包括分词、词性标注、命名实体识别等。
- 关系抽取:识别实体之间的关系。
- 事件抽取:识别文本中的事件及其参与者。
- 知识图谱构建:将抽取的实体和关系存储到图数据库中。
在实现这些知识抽取的过程中,可以使用以下开源工具:
- HanLP:用于中文分词和命名实体识别。
- OpenNRE:用于关系抽取。
- Stanford NLP:提供多种自然语言处理功能,包括实体识别和关系抽取。
- SpaCy:支持多种语言的自然语言处理库。
- Neo4j:用于存储和查询知识图谱。
通过这些工具,可以构建一个完整的知识抽取流程,将文本中的知识提取并存储到知识图谱中。
1、HanLP:
- GitHub: GitHub - hankcs/HanLP: 中文分词 词性标注 命名实体识别 依存句法分析 成分句法分析 语义依存分析 语义角色标注 指代消解 风格转换 语义相似度 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁转换 自然语言处理
- 简介:HanLP是面向中文的自然语言处理库,提供了丰富的中文处理功能,包括分词、词性标注、命名实体识别等。
2、spaCy
GitHub: https://github.com/explosion/spaCy
简介:spaCy 是一个流行的自然语言处理库,支持多种语言的实体识别、文本分类、命名实体识别等。
- Components for named entity recognition, part-of-speech-tagging, dependency parsing, sentence segmentation, text classification, lemmatization, morphological analysis, entity linking and more
3、OpenNRE:
GitHub: https://github.com/thunlp/OpenNRE
简介:由清华大学自然语言处理与社会人文计算实验室开发的开放的关系抽取工具。
(2)基于不确定性估计的幻觉检测方法
可以分为两类:基于内部状态的方法和基于行为的方法。
基于内部状态的方法主要依赖于访问大模型的内部状态。例如,通过考虑关键概念的最小标记概率来确定模型的不确定性。
基于行为的方法则主要依赖于观察大模型的行为,不需要访问其内部状态。例如,通过采样多个响应并评估事实陈述的一致性来检测幻觉。
3.2 忠实性幻觉检测
检测忠实性幻觉的方法,研究人员用一张图概括了五种不同的方法:
- 基于事实的度量,测量生成内容和源内容之间事实的重叠程度来评估忠实性。
- 分类器度量:使用训练过的分类器来区分模型生成的忠实内容和幻觉内容。
- 问答度量:使用问答系统来验证源内容和生成内容之间的信息一致性。
- 不确定度估计:测量模型对其生成输出的置信度来评估忠实性。
- 提示度量:让大模型作为评估者,通过特定的提示策略来评估生成内容的忠实性。
部分实践方法如下:
参考链接:https://blog.csdn.net/qq_36426650/article/details/131826453
1、启发式 ROUGH、KF1 ROUGH、BLEU、Knowledge-F1 不需要 需要评测基准验证该评估方法的可行性,并与人类对齐 https://aclanthology.org/2021.findings-emnlp.320.pdf 方法非常简单,但与人类相关度并不高。
2、NLI(FactCC) BERT-NLI-Acc 将input和output视为蕴含问题,使用二分类器进行。默认采用BERT-large模型实现。 需要一个NLI模型 需要评测基准验证该评估方法的可行性,并与人类对齐 https://aclanthology.org/2020.emnlp-main.750.pdf
3、信息抽取式 IE-F1 给定输入和大模型的输出,分别对其进行信息抽取,得到两个知识子图,最后计算两个子图之间的重叠性,可采用F1指标。
信息抽取模型可直接使用大模型本身来抽取,也可以使用现有的信息抽取模型 需要一个信息抽取模型 需要评测基准验证该评估方法的可行性,并与人类对齐 https://arxiv.org/pdf/1905.13322 待定⌛️ 效果一般,且需要依赖较为复杂且可靠的信息抽取模型。
4、HalEval HalEval-Acc 根据已构造好的存在幻觉的数据集,设计指令让大模型去判断这个数据集中每个样本是否存在幻觉,反馈判断幻觉的准确率作为当前大模型事实性的评价指标 可有可无 需要评测基准验证该评估方法的可行性,并与人类对齐 https://arxiv.org/pdf/2305.11747 推荐 ✅方法简单且评估有效。
5、QA QA-ROUGH 给定输入和大模型的输出,分别对这两部分进行Question Generation,然后再使用一个问答模型生成答案,最终对这两个答案计算ROUGH。 需要QG和QA两个模型。 需要评测基准验证该评估方法的可行性,并与人类对齐 https://aclanthology.org/2020.acl-main.450.pdf 不推荐 ❌ 需要依赖于两个模型,预人类误差大、不可控,评测耗时较长。
4、幻觉检测能力评估数据集
目前已经有一些比较知名的评测幻觉的基准,比如,TruthfulQA,HADES,HalluQA,ChineseFactEval等。然而这些基准大多存在这样一些问题:
- 大多采用约束式生成范式,会定向生成可预测类型的幻觉,这和现实世界中大模型自由无约束生成的幻觉固然是有差异的,毕竟大模型在生成幻觉前,并不必告诉人们它会生成什么类型的幻觉,或在什么位置生成幻觉。因此,定向生成的有约束的幻觉会导致评测结果与现实世界不符。
- 现有基准往往在标注数据时,只标注到句子级别的幻觉,其粒度少有在关键词级别的。然而从不同粒度上考验大模型的分辨能力不仅更有挑战,也能为解决幻觉问题提供启发。
- 此外,大语言模型幻觉的基准往往关注英语世界的,缺少中文幻觉评测数据集。据论文所述,唯二的两项中文领域的工作,复旦大学的HalluQA和上海交通大学的ChineseFactEval才分别只有450条,和125条数据项,数据量过小。
基于以上问题,中国人民大学,上海算法创新研究院,与新华社媒体融合生产技术与系统国家重点实验室联合推出了UHGEval,一个全面的中文专业生成领域的幻觉评测基准。该基准包括一个具有5000+数据项基于新闻内容生成的幻觉数据集;一个数据安全,扩展便捷,实验方便的评测框架,以及一份在11个当下流行的大语言模型上的实验报告。相关数据集如下:https://github.com/IAAR-Shanghai/UHGEval?tab=readme-ov-file
复旦大学与上海人工智能实验室构建了针对中文大模型的幻觉评测数据集HalluQA,对业界主流的大模型进行了评估。
HalluQA采用无幻觉率来评估大模型的优劣。无幻觉率越高代表模型幻觉越低,事实准确性越高。在评测的24个主流大模型中,包括百度文心一言ERNIE-Bot、百川Baichuan、智谱ChatGLM、阿里通义千问和GPT-4等。
其他数据集如下:
-
CMRC 2018 (Chinese Machine Reading Comprehension)
-
简介:中文机器阅读理解数据集,包含丰富的问答对,可用于评估事实一致性。下载链接:CMRC 2018
-
HotpotQA (Chinese Version):
- 官网:HotpotQA
- 简介:包含多跳问答的数据集,适合评估模型的答案相关性和复杂推理能力。
-
Chinese NLI (Natural Language Inference):
- GitHub: Chinese NLI
- 简介:用于自然语言推理的中文数据集,可以评估模型在理解和推理方面的能力。
-
DuReader:
- GitHub: DuReader
- 简介:百度推出的中文问答数据集,包含大量的问答对,适合评估答案相关性。
请注意,部分数据集可能需要通过相应的研究团队或项目网站获取,且使用时需遵守数据使用协议。在使用这些数据集进行研究和开发时,建议关注数据集的最新版本和相关论文,以获取最准确的信息。