LLM产生幻觉的原因以及缓解的方法

文摘   2024-09-04 16:03   新加坡  

大语言模型的新书已经发布,详情以及购买链接见:

新书发布:大语言模型原理、训练及应用

本文涉及到的详细测试代码和测试步骤放置于:

https://github.com/xinyuwei-david/david-share.git下的:LLMs/Reducing-LLM-Hallucinations,本文中不再赘述代码实现。


一、什么是大型语言模型的幻觉?

 
幻觉是指AI模型生成的文本虽然在语法上正确且看似合理,但并不基于给定的输入,甚至可能是事实错误的。

为什么LLMs会产生幻觉?

 
如前所述,语言模型可能会产生幻觉并生成包含虚构或错误回答的输出。这些错误展示了AI的局限性,强调了人类监督和与可靠来源交叉核对以进行验证的重要性。但指派人类来验证每个回答既不可行也无法扩展。我们将在稍后讨论幻觉缓解策略,但首先让我们看看LLMs为什么会产生幻觉:

  1. 训练数据不足。一个在训练过程中没有遇到多样化数据的模型,可能无法在输入和输出之间建立准确的关联,从而导致幻觉内容。

  2. 监督不足。没有适当的指导,模型可能会过度依赖其内部逻辑,导致看似幻觉的输出。

  3. 模型过拟合。对训练数据的过拟合可能导致模型生成与训练集相似但与新输入或不同输入不一致的输出。

  4. 知识截止。像ChatGPT这样的LLMs有知识截止日期,因此对该日期之后的信息一无所知。它们可能会在不知情的情况下用过时的信息回答你的问题,这些信息已不再相关。

二、LLM幻觉的类型

我们可以将这些幻觉类型分为三大类:

  1. 事实不准确。这种类型的幻觉发生在语言模型呈现的信息不真实或不正确,但被框架化为事实。这包括日期、事件、统计数据或可验证的错误陈述。它可能由于多种原因发生,包括对输入数据的误解、低质量数据和训练方法、依赖过时或错误的来源或不同背景信息的混合导致不准确的输出。

  2. 生成的引用或来源。这种情况发生在语言模型捏造引用或引文时。它可能生成一个陈述并错误地归因于一个真实的人,或者创建一个根本不存在的虚构来源。这是有问题的,因为它会导致错误信息、错误归因的陈述和混淆。

  3. 逻辑不一致。这包括生成内部不一致或逻辑上有缺陷的回应。在为用户查询生成回应后,LLM可能在进一步的回应中自相矛盾。当模型做出一系列陈述时,这些陈述合在一起是不连贯或相互矛盾的——这挑战了模型输出的可信度,并使依赖其一致性的用户感到困惑。

    在所有这些情况下,语言模型并非故意误导,而是由于其训练数据、数据质量、知识截止日期、糟糕的微调等各种原因展示了其自身的局限性。

三、LLM幻觉缓解策略:RAG、生成前策略、生成后策略

 
研究人员正在开发各种方法,以确保LLMs生成的回答准确。一些策略需要人类干预,如通过人类反馈的强化学习(RLHF);使用高质量数据来微调;使用RAG等等。


检索增强生成(RAG)

    • 自我RAG(Self-RAG)。自我RAG使LLMs能够动态获取相关段落,直到捕获整个上下文,所有这些都在指定的窗口内。

    技术实现思路

    1. 初始检索:模型接收到用户的查询后,首先进行一次初始检索,从外部知识库中获取相关段落。

    2. 生成初步回答:基于初始检索到的段落,模型生成一个初步回答。

    3. 动态检索:模型评估初步回答的完整性和准确性。如果认为需要更多信息,则进行进一步的检索,获取更多相关段落。

    4. 迭代过程:重复步骤2和3,直到模型认为已经获取了足够的上下文信息来生成准确的回答。

    5. 最终回答:基于所有检索到的段落,生成最终的回答。


    • 多模态RAG(Multimodal RAG)。多模态RAG通过将文本数据与图像和其他媒体结合,提供更深入的上下文理解,从而生成更准确和相关的回应。



    除了RAG,我们可以将这些策略分为两部分:生成前策略和生成后策略。



    生成前策略

    生成前策略防止AI一开始就生成错误或误导性信息。这些包括:

    1. 提示链验证(CoVe)。这涉及模型对回应的自我验证。多阶段验证使其更高效。

    https://github.com/ritun16/chain-of-verification

    2. 通过提示优化(OPRO)。这是LLMs倾向于优化其自身提示,纠正提示输入。

    https://cobusgreyling.medium.com/a-new-prompt-technique-from-deepmind-called-optimisation-by-prompting-opro-918b1057eacd

    3.System 2 Attention(S2A)。这种方法改进了LLM的推理。这里使用了一个指令调优的LLM来识别、分析和提取输入上下文中最相关的部分,减轻不必要信息的影响。

    https://jrodthoughts.medium.com/inside-system-2-attention-meta-ai-new-method-to-improve-reasoning-in-llms-4424751a6be1

    4情感提示(EmotionPrompt)。这种技术通过提示使用情感线索,使LLMs能够获得更多的上下文和情感。

    https://www.linkedin.com/pulse/tap-ais-emotional-edge-utilizing-emotionprompt-improved-patrick-bands-jrqzf

    5. 回退提示(Step-Back Prompting)。这是一种用于改进LLM推理和解决问题技能的方法。

    https://medium.com/@akriti.upadhyay/enhancing-llms-reasoning-with-step-back-prompting-47fad1cf5968

    6. 重述和回应(RaR)。这种技术允许LLMs重述和扩展人类提出的问题/提示,帮助LLMs获得有见地的上下文。

    https://vidrihmarko.medium.com/rar-prompt-rephrase-and-respond-is-ai-s-new-superpower-9931edf84ec5

    生成后策略

     
    生成后策略处理在生成后验证和纠正AI的输出。这些包括:

    1. 事实核查。实施human-in-the-loop (HITL)和知识库来验证LLMs提供的信息的准确性。

    2. 偏好对齐。使用人类反馈机制(RLHF)使LLMs的输出与人类的价值观和偏好对齐。

      这些策略旨在增强AI系统的可靠性,提高其输出质量,并确保其与人类价值观和事实准确性一致。


    参考:https://levelup.gitconnected.com/a-comprehensive-guide-to-reducing-llm-hallucinations-abcb25ea6fee

    大魏分享
    https://github.com/davidsajare/david-share.git
     最新文章