大语言模型在犯错时也显得自信满满,因为默认情况下,它们是根据训练过程中学到的模式来回答,而不是基于您的事实。检索增强生成(即 RAG)改变了这一点,它会从您控制的知识库中获取相关段落,并在模型动笔前将其作为上下文传递给模型。当检索生效时,生成的结果便是基于真实的、可引用源的回答,而非模型的主观猜测。RAG 并没有升级模型的智能水平,它只是向模型输送当下相关的最新事实,使回答有据可依,而非凭空猜测。
RAG 的本质是什么
RAG 是一种将检索器与生成器配对的双重模式。当问题输入时,检索器会在知识库中搜寻最相关的段落,这些段落会被添加到提示词中,随后语言模型利用提供的上下文撰写回答。这个术语和正式方法源自 Patrick Lewis 及其 Facebook AI Research 同事在 2020 年发表的一篇论文,该论文将预训练模型的内置知识与外部可搜索的语料库结合在一起。
事实锚定(Grounding)如何减少错误
没有检索功能的模型会用听起来合情合理的文本来填补信息空白,这就是捏造回答的来源。通过在生成回答时将真实的源文本呈现在模型面前,RAG 将模型的工作从回忆事实收窄为总结刚刚给出的文档。研究和行业实践一致表明,当回答被限制在检索到的、可检验的内容中时,捏造的内容会大为减少。
检索如何找到最相关的段落
大多数处于生产部署阶段的 RAG 系统都是按语义进行搜索,而不仅仅是靠关键词。文档被拆分为文本块,并转换为被称为“嵌入(embeddings)”的数值向量存储在向量数据库中。这样,即使查询时使用的词汇不同,也能匹配到语义相通的段落。许多系统还融合了传统的关键词搜索,以精确捕捉产品代码或专属名称等特定词汇。
RAG 对比模型重训
RAG 能够在不改变模型权重的情况下无缝增加知识,这意味着您可以通过直接编辑知识库来更新系统掌握的信息,而无须执行昂贵的训练任务。这使其非常适合处理频繁更新或涉及企业机密的信息。相反,微调(Fine-tuning)是将特定模式和风格融入模型本身,这对于调整行为更为管用,而不利于确保事实信息的即时更新。
RAG 在何处仍会失效
RAG 能够减少幻觉(hallucination)却无法彻底根除它,而且其准确性完全取决于检索器返回的内容。如果应当匹配的正确文档缺失、过时或错误,模型依旧会自信满怀地重复该错误信息;若检索一无所获,模型则可能回退到凭空猜测。此外,RAG 还将某些漏洞从模型端转移到了检索端,在这种情况下,一份由于检索不佳而被悄无声息漏掉的文档,相较于显而易见的凭空捏造事实,往往更难以被察觉。
- RAG 将检索器与语言模型配对,因此答案能直接依据您控制的文档生成,而非仅来自训练数据。
- Grounding 通过在 prompt 中提供真实的源文本来实现,将任务从记忆检索转变为内容摘要,从而大幅削减凭空捏造的答案。
- 只需编辑知识库即可更新知识,无需全量重新训练模型,是处理私有或快速变化信息的理想选择。
- RAG 能够减少幻觉,但无法将其完全消除,而且答案质量直接取决于源数据的素质和时效性。
- 一个精心编排、准确无误的知识库,是决定 RAG 系统能否提供准确可信回答的最大关键所在。
