是什么?产生幻觉的原因有哪些?)
这个问题挺经典的也是我们做RAG系统时候天天要面对的问题。幻觉是什么说白了就是模型在一本正经地胡说八道——输出流畅、语法正确、看起来很专业但内容是瞎编的。最典型的就是律师用ChatGPT写法律摘要结果引用了6个根本不存在的判例。按表现形式分两种事实性幻觉和忠实性幻觉。事实性是跟客观现实对不上忠实性是跟用户给的文档对不上比如你让它总结一篇文章它把文章里没说的话给加上去了。产生幻觉的原因这个得从训练到推理整条链路上说。最根本的模型本质是个概率生成器不是知识库。它学的是下一个词应该是什么不是这句话对不对。所以当它不确定答案的时候不会说我不知道而是倾向于生成一个听起来合理的token——幻觉就这么来了。OpenAI有篇论文专门讲这个叫Why Language Models Hallucinate结论挺扎心的即使训练数据完美无缺只要优化目标是预测下一个token概率分布幻觉就一定会产生。预训练数据里有噪声就更不用说了。还有一个坑是知识对齐问题。模型在预训练阶段学到的知识和微调阶段接触到的知识可能有冲突。微调的时候遇到新知识模型不知道该怎么处理有时候就会瞎编。ACL 2025有篇论文专门研究这个提出了SEAL方法让模型学会在知识不确定的时候主动拒绝生成。推理的时候也有问题。采样策略、温度设置都会放大幻觉。top-p采样、temperature高了之后模型更容易选到语言上合理但事实错误的词。长上下文场景还有个Lost in the Middle问题——上下文中间部分的信息模型注意力会变弱更容易忽略或误读。怎么缓解业界主要几个方向。RAG是现在最常用的用外部知识库给模型加个依据。但RAG不是银弹检索到的文档错了或者不相关模型照样会跟着错。所以有研究专门做RAG场景下的微调让模型学会区分哪些检索结果是可靠的。提示词也能缓解一部分核心就是让模型知道它不知道——明确要求它如果不确定就说不知道加约束条件。我们之前做问答系统的时候温度设低一点0.1-0.3幻觉明显少很多。工程层面输出后接个事实校验模块提取关键claim去知识源核验也是常见的做法。这块我了解比较深的是RAG微调这条路我们线上跑了大概一年效果还可以。但你说要彻底消除幻觉那不可能——这是Transformer架构的固有局限只能尽量压制。