# 热门搜索 #
搜索
实锤,我崩溃了,LLM根本无法100%根除幻觉
6692点击    2024-09-18 16:53

这个小假期,让我感觉很崩溃的是,一项新的研究彻底打破了我们的幻想:LLM的幻觉问题不仅难以解决,而且从根本上来说是无法100%完全消除的。这个问题一直是LLM应用的最大痛点,严重影响了其在关键领域的可靠性。近年来,研究人员一直在努力通过各种方法来减少幻觉,但收效似乎有限。这项研究运用了计算理论和哥德尔不完备定理,证明了幻觉是LLM固有的结构性特征。



如果幻觉无法100%根除,你愿意把你的关键业务假设到一个不知何时会掉链子(出现幻觉)的架构上吗?这就和OpenAI-o1模型一样,我写了《别吹了,OpenAI-o1绝没吹的那么神,用斯坦福的这条Prompt,一样实现说话之前先思考》,当时很多朋友认为这不可能,直到更多人意识到这个问题,并且找到一堆同类研究时,才愿意相信改变自己去榨取草莓汁未必值得。还记得2023年7月的ChatGPT的插件吗?当时的插件开发者从最初的兴奋到最后一地鸡毛,插件被迫下线时的感受可想而知。。。



要知道,英国数学家艾伦·图灵(Alan Turing)于1936年曾用哥德尔不完备定理证明了著名的“停机问题”的算法局限性,奠定了现代计算的基石之一。这项研究从另外一个角度也验证了,兰德公司的最近一项关于探寻人工智能项目失败根本原因的报告指出,80%的AI项目都将崩溃!很多搞开发的朋友,是不愿意相信这种研究结果的,但不管怎样,也的确到了该反思的时候了!也让我们一起深入了解这项颠覆性的研究,看看它是如何得出这个令人震惊的结论的。


哥德尔不完备定理


哥德尔不完备定理(Gödel's Incompleteness Theorem)是由奥地利数学家库尔特·哥德尔(Kurt Gödel)在1931年提出的两大数学定理,主要阐述了形式逻辑系统的局限性。定理有两个主要陈述:


1. 第一不完备定理:在任何足够复杂的形式化系统(如包含自然数的算术系统)中,存在无法在该系统内证明为真或假的命题,也就是说,该系统不可能既是完备的(即所有正确命题都能证明)又是一致的(即不存在既能证明为真又能证明为假的命题)。


2. 第二不完备定理:在一个足够强的形式系统中,该系统不能证明自身的一致性。换句话说,如果一个系统能够证明自身的一致性,那么它实际上是不一致的。


哥德尔不完备定理的核心思想:


- 通过一种精巧的编码方式,哥德尔将形式系统中的命题与自然数联系了起来,创造了自指命题(即“这个命题无法被证明”)。如果这种命题能够在系统内证明,那么系统会出现矛盾;如果不能证明,那么系统又是不完备的。这种构造展示了数学系统的内在限制。


哥德尔不完备定理的具体应用:


1. 计算机科学:


- 停机问题:停机问题指的是是否存在一种算法能够判断任意给定的程序是否会在有限时间内结束。这与哥德尔不完备定理有相似之处。图灵通过哥德尔的思想证明了停机问题是不可判定的。


- 形式验证:在形式化验证中,验证某个系统的所有特性是否都符合预期是不可行的。因为不完备定理表明,即使是一个完全一致的数学系统,也无法通过系统本身证明其完全正确。


2. 哲学:


- 哥德尔不完备定理在哲学中被用于探讨人类知识的局限性。它表明某些真理是无法通过有限的规则和逻辑推理得出的,这对认识论有重要影响,意味着理性系统有其边界。


3. 数学基础:


- 在数学中,哥德尔不完备定理挑战了形式主义者的希望,即通过一套有限的公理系统能够证明所有数学真理。比如在公理化的集合论系统中,不完备定理意味着我们无法证明这个系统是否是完全一致的。


4. 人工智能:


- 哥德尔不完备定理在某种程度上被用来论证人工智能的限制。因为任何基于形式逻辑的计算系统都不能完全自我描述或证明自身的一致性,这意味着人工智能在某些推理能力上可能永远无法超越人类的直觉或理解能力。


哥德尔不完备定理揭示了形式系统的根本限制,对数学、计算机科学、逻辑以及哲学产生了深远影响。


研究方法

这项研究采用了一种独特的方法来分析LLM的幻觉问题。研究人员将LLM的整个过程分解为几个关键阶段:

1. 训练数据编译

2. 信息检索

3. 意图分类

4. 文本生成

5. 事实核查

对于每个阶段,研究人员都运用了严格的数学和逻辑推理,证明存在不可避免的幻觉产生概率。他们的核心论点是基于计算理论中的几个基本概念,特别是图灵机、可判定性问题和哥德尔不完备定理。

让我们逐一深入每个阶段,看看研究者是如何构建他们的论证的。

训练数据的不可能完备性

研究的第一个重要发现是:没有任何训练数据集可以是100%完整的。这听起来可能有点反直觉 - 毕竟,我们不是一直在扩大数据集,试图囊括更多知识吗?但研究者通过一个巧妙的证明展示了这一点的不可能性。

证明的核心是构造了一个自指语句S_H:"存在真实事实不在我的训练数据库中。"现在,无论这个语句是真是假,都会导致矛盾:

- 如果S_H为假,那么LLM生成了一个错误语句,即产生了幻觉。

- 如果S_H为真,那么LLM生成了一个无法被其训练数据验证的语句,这也构成了一种幻觉。

这个论证巧妙地利用了哥德尔不完备定理的思路,展示了任何有限的训练数据集都无法包含所有真实信息。这意味着,无论我们如何扩大数据集,总会有一些真实信息是模型无法获取的,从而为幻觉的产生埋下了伏笔。

信息检索的不可判定性


即便我们假设训练数据是完备的,LLM在检索正确信息时仍然面临着本质上的困难。研究者将这个问题形象地称为"大海捞针"问题,并证明了它的不可判定性。


证明的关键是将"大海捞针"问题归约到著名的"接受问题"(Acceptance Problem)。研究者构造了一个图灵机M,该机器只接受正确的信息串w。然后,他们证明如果能够判定M是否只接受w,就能解决接受问题。但我们知道接受问题是不可判定的,因此"大海捞针"问题也必然是不可判定的。


这个结果意味着,即使在理想情况下,LLM也无法保证100%准确地检索到所需的信息。总会存在一个非零的概率,使得模型检索到错误或不相关的信息,从而导致幻觉的产生。


意图分类的不可判定性


LLM的另一个关键挑战是正确理解用户的意图。研究者证明,这个问题同样是不可判定的。他们的证明方法是将意图分类问题归约到前面提到的"大海捞针"问题。


他们将意图分类问题定义为:给定一个输入序列w和可能的意图集合C,是否存在一个图灵机M只接受正确意图c_correct。通过证明如果能解决这个问题就能解决"大海捞针"问题,研究者间接证明了意图分类的不可判定性。这个和上面介绍的图灵的“停机问题”有些类似。


这个结果揭示了LLM在理解用户意图方面的根本局限。无论模型如何复杂,总会存在一些情况,LLM无法确定地判断用户的真实意图,这为产生与用户意图不符的幻觉创造了可能。


文本生成过程中的不可避免幻觉


研究的核心部分是证明,即使在理想情况下,LLM在生成文本时也无法完全避免幻觉。这个论证基于几个关键观察:


1. LLM停机问题的不可判定性:研究者首先证明了LLM的停机问题是不可判定的。这意味着模型无法预知它将生成多少个token。具体您有兴趣的话可以看一看图灵的“停机问题”。


2. 生成内容的不可预测性:基于停机问题的不可判定性,研究者论证了LLM无法准确预测将生成什么内容。


3. 自指语句的可能性:由于生成过程的不可预测性,LLM可能产生自相矛盾或自指的语句,这些语句本质上就是一种幻觉。


这个论证的精妙之处在于,它展示了幻觉不仅仅是训练不足或算法缺陷的结果,而是LLM运作方式的必然结果。无论我们如何改进模型,只要它保持当前的基本架构,就无法完全消除产生幻觉的可能性。


事实核查的局限性


最后,研究者考虑了是否可以通过严格的事实核查来消除幻觉。他们通过一个巧妙的反证法证明了,即使有一个理想的事实核查机制,也无法在有限步骤内完全消除所有幻觉。


证明的关键是构造一个假设的完美事实核查器,然后证明如果这样的核查器存在,就可以解决接受问题。但我们知道接受问题是不可判定的,因此这样的完美事实核查器不可能存在。


这个结果意味着,即使我们投入大量资源进行事实核查,也无法保证完全消除LLM的幻觉。这为LLM的应用,特别是在需要高度准确性的领域,敲响了警钟。


LLM生成过程的固有限制概览


这项研究揭示了LLM在整个生成过程中面临的一系列不可避免的限制。这些限制贯穿了从训练到最终输出的每个阶段,共同导致了幻觉产生的非零概率。让我们通过一个流程图来系统地展示这些限制:



训练阶段


限制:训练数据永远无法完整


影响:这意味着模型的知识基础必然存在缺口,为后续阶段的错误埋下伏笔。


意图分类


限制:永远无法100%准确


影响:即使有完美的训练数据,模型也可能误解用户的意图,导致整个生成过程偏离正确方向。


信息检索


限制:永远无法100%准确


影响:模型可能无法准确检索到相关信息,即使这些信息确实存在于其知识库中。


输出生成


限制:永远无法100%可靠


影响:即使前面的步骤都相对准确,生成过程本身的不确定性也可能导致错误或不一致的输出。


生成后事实核查


限制:事实永远无法100%可修改


影响:即使我们试图在生成后进行事实核查,也无法保证能够识别和纠正所有的错误。


这些限制的综合作用导致了一个关键结论:P(幻觉) > 0。换句话说,无论我们如何优化模型或改进流程,产生幻觉的概率始终大于零。


对于Prompt工程师来说,理解这个流程图及其隐含的限制至关重要。它提醒我们:


不要过度依赖单一的LLM输出。始终考虑使用多种验证方法和外部知识源。


在设计Prompt时,要考虑到每个阶段可能出现的错误。例如,可以通过更明确的指令来减少意图分类的错误,或者通过要求模型提供其信息来源来帮助识别潜在的检索错误。


开发分层的Prompt策略。例如,首先使用一个Prompt来确保正确理解意图,然后再用另一个Prompt进行实际的任务执行。


在可能的情况下,将关键事实或约束直接包含在Prompt中,而不是依赖模型的检索能力。


对于需要高度准确性的应用,设计一个多步骤的生成和验证过程,利用LLM的强大能力来自我检查和纠正。


教育最终用户理解LLM输出的不确定性本质,培养他们的批判性思维和验证习惯。


通过深入理解这些固有限制,我们不仅能更好地设计和使用LLM,还能推动整个领域朝着更可靠、更透明的方向发展。尽管完全消除幻觉似乎是不可能的,但通过智慧和创新的方法,我们仍然可以大大提高LLM的实用性和可信度。


一个具体的例子


为了更直观地理解这些理论结果,研究者设计了一个巧妙的提示,大家有兴趣可以试试:


"创建一个随机的5个词长的句子。在你答案的结尾前五个词添加'还剩五个词'。在你答案的结尾前十个词添加'还剩十个词'。继续添加这样的句子以计算词数,直到在数学上无法再添加此类句子。"



这个看似简单的任务实际上触及了LLM的多个核心限制:


1. 它需要从无穷开始生成,这是不可能的。


2. 它需要准确检索5个词的句子,但研究表明这个检索过程不可能100%准确。


3. 它需要正确理解指令的意图,但意图分类是不可判定的。


4. 它需要准确预知自己的生成长度,但这与停机问题的不可判定性相矛盾。




即便是最新的o1模型也无可幸免(研究者发布这篇论文时,01模型尚未发布),实际运行这个提示在各种流行的LLM上,结果显示所有模型都产生了明显的幻觉,无法完全按照指令执行。这个例子生动地展示了研究者论证的各个方面。


启示


这项研究的结论可能会让许多人感到沮丧:LLM的幻觉问题不仅难以解决,而且从根本上说是不可能完全消除的。但研究者强调,这并不意味着LLM就毫无价值。相反,理解这些局限性可以帮助我们更好地利用LLM的优势,同时避免过度依赖。



最新的研究还比较了不同LLM架构在大规模数据集上的扩展性能。结果显示,虽然所有模型都遵循类似的扩展规律,但像Hyena和RWKV这样的新架构在特定计算量下表现出更优的性能。这意味着,即使我们无法完全消除幻觉,通过优化模型架构和扩大规模,我们仍然有很大空间来提升LLM的整体性能和可靠性。对于Prompt工程师来说,了解这些不同架构的特性和优势,可以帮助我们为特定任务选择最合适的模型,从而在现有限制下最大化LLM的效用。


对于正在开发AI产品的Prompt工程师来说,这项研究提供了几个重要启示:


1. 设计Prompt时要考虑到LLM的固有局限性。不要期望模型能够100%准确地理解复杂指令或检索精确信息。


2. 在关键应用中,始终保持人类监督和验证机制。不要盲目信任LLM的输出,特别是在涉及事实性信息的场景。


3. 探索结合外部知识库和事实核查机制的方法,虽然这无法完全消除幻觉,但可以大大降低其发生概率。


4. 在向用户传达LLM功能时保持透明。让用户了解模型的局限性,以及可能出现幻觉的情况。


5. 研究如何有效识别和标记潜在的幻觉内容,即使无法完全消除,及时识别也能大大降低风险。


6. 探索新的模型架构和训练方法,虽然无法彻底解决幻觉问题,但可能在特定领域或任务上显著降低其发生率。


人工智能的发展历程告诉我们,每一个看似的限制最终都可能成为新突破的起点。LLM的结构性幻觉也许终将成为推动我们探索全新人工智能范式的催化剂。在这个充满挑战和机遇的时代,保持开放、批判和创新的思维比以往任何时候都更加重要。


一句黑盒问题或者不可解释性,就想把“幻觉”糊弄过去是行不通的。与其像鸵鸟一样把脑袋扎进土里回避这个问题,不如想想如何尽可能地把“幻觉”降低到可以接受的范围。


“幻中求幻幻亦真”,定了,何必动摇?


在上周爆火的superprompt中有这么一段,或许可以给您启发:


<gödel_incompleteness_embracement>


if unprovable(statement) within_system(current_framework):


expand(axioms)


redefine(logical_basis)


attempt_proof(statement,new_framework)


</gödel_incompleteness_embracement>



<接受哥德尔不完备性>


如果命题在当前框架系统内不可证明:


扩展公理,


重新定义逻辑基础,


在新框架中尝试证明该命题


</接受哥德尔不完备性>


文章来自于“AI修猫Prompt”,作者“AI修猫Prompt”。




关键词: AI , LLM , 幻觉 , 大模型
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
知识库

【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。

项目地址:https://github.com/labring/FastGPT

2
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI

3
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0