在大型语言模型(LLM)中,幻觉通常指模型生成不忠实、捏造、不一致或无意义的内容。幻觉主要分为两种类型:
为避免幻觉,LLM 需做到:
在 LLM 驱动的自主 Agents 中,启发式函数可决定轨迹是否低效或包含幻觉。低效规划指花费过长时间未成功的轨迹,幻觉指遇到一系列连续相同动作导致环境中出现相同观察。自我反思可通过向 LLM 展示示例创建,并添加到 Agents 的工作记忆中。在 AlfWorld 中,幻觉比低效规划更常见。
对于处理 ChatGPT 的“幻觉”,有以下经验:
这是翻译自Lilian Weng关于外部幻觉的文章Lilian Weng 2018年加入OpenAI团队提出了Agent=大模型+记忆+主动规划+工具使用原文2万字,参考了24篇文章文章介绍了近年来关于幻觉的各种研究成果幻觉的定义有逐步泛化的情况在文章中限定了幻觉的定义,只针对外部幻觉文章介绍了幻觉多个方面幻觉产生的原因幻觉的检测抑制幻觉的方法在大型语言模型(LLM)中,幻觉通常指的是模型生成不忠实、捏造、不一致或无意义的内容。作为术语,“幻觉”的含义已经扩展到模型犯错的情况。本文将重点讨论模型输出是捏造的,并且没有根据(grounded)提供的上下文或世界知识的情况,我们称之为外部幻觉。幻觉主要分为两种类型:1.上下文内幻觉:模型输出应该与上下文中的源内容一致。2.外部幻觉:模型输出应该基于(grounded)预训练数据集,也就是说,输出内容应该与预训练数据中的知识相符。然而,由于预训练数据集的规模非常庞大,每次生成都去检索和识别冲突的成本太高。如果我们将预训练数据语料库视为世界知识的代表,我们实际上是在努力确保模型输出是事实的,并且可以通过外部世界知识进行验证。同样重要的是,当模型不知道某个事实时,它应该明确表示出来。本文重点关注外部幻觉。为了避免幻觉,LLM需要(1)输出符合事实的内容,并且(2)在适用时承认不知道答案。
图3.Reflexion框架的图示。(图片来源:[Shinn&Labash,2023](https://arxiv.org/abs/2303.11366))启发式函数决定了轨迹是否是低效的或者包含幻觉(hallucination),这时需要停止。低效的规划是指花费过长时间而没有成功的轨迹;幻觉是指遇到一系列连续相同的动作,导致环境中出现相同的观察。自我反思是通过向LLM展示两个例子(two-shot)来创建的,每个示例都是一对(失败轨迹,用于指导未来计划变化的理想反思)。然后将这些反思添加到Agents的工作记忆(短期记忆)中,最多三个,以作为查询LLM的上下文。图4.AlfWorld Env和HotpotQA上的实验。在AlfWorld中,幻觉比低效规划更常见。(图片来源:[Shinn&Labash,2023](https://arxiv.org/abs/2303.11366))
▢Comment 1:注意!这种方式可能会因为ChatGPT的「幻觉」而得到错误信息。可以用已经读过的书来尝试一下,然后你就会发现某些具体细节要么不太准确,要么完全就是捏造的。▢Comment 2:对于「幻觉」我倒是有一些处理经验,一般就是在提问时注意这三点:1.明确地告诉它你想要一个准确的答案,没有幻觉2.改变temperature参数(比如改到0),或者控制创造力水平3.得到答后,要求它为每个引用产生精确的引用和页面,以便于交叉检查