大型语言模型(LLM)会产生“幻觉”。这是一种模型将虚假信息当作准确事实来陈述的行为。在本文中,您将了解为什么幻觉是 LLM 的固有特性。具体来说,您将学习:
- LLM 产生幻觉的原因
- 如何让幻觉为您服务
- 如何缓解幻觉
立即开始使用 ChatGPT,阅读我的书 《最大化 ChatGPT 生产力》。它提供了真实用例和提示示例,旨在帮助您快速上手 ChatGPT。
让我们开始吧。

大型语言模型中幻觉的温和介绍
图片由作者使用 Stable Diffusion 生成。保留部分权利。
概述
这篇博文分为三部分;它们是:
- 什么是大型语言模型中的幻觉
- 利用幻觉
- 缓解幻觉
什么是大型语言模型中的幻觉
大型语言模型是经过训练的机器学习模型,它根据您提供的提示生成文本。模型的训练使其具备了从我们提供的数据中获得的某些知识。很难说模型记住了哪些知识,又记住了哪些知识。事实上,当模型生成文本时,它无法判断生成的文本是否准确。
在 LLM 的上下文中,“幻觉”是指模型生成不正确、无意义或虚假文本的现象。由于 LLM 不是数据库或搜索引擎,它们不会引用其响应的来源。这些模型生成文本是基于您提供的提示进行的推断。推断的结果不一定有训练数据支持,而是与提示最相关的内容。
要理解幻觉,您可以从一些文本构建一个两个字母的 Bigram 马尔可夫模型:提取一段长文本,构建一个包含所有相邻字母对的表,并统计计数。例如,“hallucinations in large language models”会产生“HA”、“AL”、“LL”、“LU”等,其中“LU”计数为 1,“LA”计数为 2。现在,如果您以“L”作为提示开始,您生成“LA”的可能性是生成“LL”或“LS”的两倍。然后,如果您以“LA”作为提示,您有相等的概率生成“AL”、“AT”、“AR”或“AN”。然后,您可以尝试使用“LAT”作为提示,并继续这个过程。最终,这个模型会发明一个不存在的新词。这是统计模式的结果。您可以说您的马尔可夫模型“幻觉”出了一个拼写。
LLM 中的幻觉并没有比这复杂多少,即使模型更加复杂。从宏观上看,幻觉是由有限的上下文理解引起的,因为模型必须将提示和训练数据转化为抽象,在此过程中可能会丢失某些信息。此外,训练数据中的噪声也可能导致统计模式的偏差,从而使模型以您意想不到的方式响应。
利用幻觉
您可以将幻觉视为大型语言模型的一个特性。如果您希望模型具有创造性,那么您就希望它们产生幻觉。例如,如果您要求 ChatGPT 或其他大型语言模型为您创作一个奇幻故事的情节,您希望它不要照搬任何现有的故事,而是生成新的角色、场景和故事情节。这只有在模型不检索它们训练过的数据时才可能实现。
您希望幻觉的另一个原因是寻求多样性,例如,询问想法。这就像让模型为您进行头脑风暴。您希望从训练数据中已有的想法中衍生出新的想法,但又不完全相同。幻觉可以帮助您探索不同的可能性。
许多语言模型都有一个“temperature”(温度)参数。您可以通过 API 而不是通过 Web 界面来控制 ChatGPT 的温度。这是一个随机性参数。较高的温度可以引入更多的幻觉。
缓解幻觉
语言模型不是搜索引擎或数据库。幻觉是不可避免的。令人恼火的是,模型会生成难以察觉的错误文本。
如果幻觉是由受污染的训练数据引起的,那么您可以清理数据并重新训练模型。但是,大多数模型都太大了,无法在您的个人设备上进行训练。即使是微调现有模型,在普通硬件上也不可能实现。最好的缓解方法可能是人工干预结果,并在模型严重出错时要求其重新生成。
避免幻觉的另一种方法是受控生成。这意味着在提示中为模型提供足够的细节和约束。因此,模型可以自由发挥的空间就很有限。提示工程的目的是为模型指定角色和场景,以指导生成,使其不会无限制地产生幻觉。
总结
在本文中,您了解了 LLM 是如何产生幻觉的。具体来说,
- 幻觉的用处
- 如何限制幻觉
值得注意的是,虽然幻觉可以被缓解,但可能无法完全消除。创造力和准确性之间存在权衡。
谢谢,非常棒的文章!
谢谢 Carlos 的美言和支持!我们非常感激!
内容翔实????
好文章,但请注意您的用词。您使用了“查找”这个词,好像 LLM 真的在查找数据一样,但它们实际上并没有。
感谢您的反馈和建议,Bob!
好文章!我想咨询一下,在使用 LLMa-2-13b 模型进行生产用途的 PDF 文档查询等全功能时,NVIDIA A100 80 GB GPU 的并发请求容量是多少?具体来说,我想了解在本地服务器上运行时,可实现的最佳并发级别,主要关注低延迟和最大化吞吐量。
您好 llmwesee……不客气!感谢您的提问!或许有您这种配置的直接经验者可以提供建议。