什么是大语言模型的检索增强生成 (RAG)?

RAG(Retrieval-Augmented Generation:检索增强生成) 是一个人工智能框架,用于减轻大模型的“幻觉”问题。

大语言模型的回答经常可能不一致。有时他们会确定问题的答案,有时他们会从训练数据中反省随机事实。如果他们有时听起来像是不知道自己在说什么,那是因为他们不知道。 大模型知道词语在统计上如何关联,但不知道它们的含义。

RAG可从外部知识库检索事实,以最准确、最新的信息为基础的大语言模型 (LLM),并让用户深入了解 LLM 的生成过程。它确保模型能够访问最新、可靠的事实,并且用户能够访问模型的来源,确保可以检查其声明的准确性和准确性。

RAG 有两个阶段:

  1. 检索:在检索阶段,算法搜索并检索与用户提示或问题相关的信息片段。在开放域的消费者环境中,这些事实可以来自互联网上的索引文档;在封闭域的企业环境中,通常使用较小的一组源来提高安全性和可靠性。这些外部知识被附加到用户的提示中并传递到语言模型。
  2. 生成:大模型从增强提示及其训练数据的内部表示中提取信息,以在那一刻为用户量身定制引人入胜的答案。然后可以将答案传递给聊天机器人,并附上其来源的链接。

RAG在知识密集型应用
通用大语言模型可以进行微调以实现一些常见任务,例如情感分析和命名实体识别。这些任务通常不需要额外的背景上下文知识。而对于更复杂和知识密集型的任务,可以构建基于语言模型的系统来访问外部知识源来完成任务。这使得事实更加一致,提高了生成响应的可靠性,并有助于减轻“幻觉”问题。

Meta AI 研究人员推出了一种称为检索增强生成(RAG)的方法来解决知识密集型任务:RAG 将信息检索组件与文本生成器模型相结合。RAG 可以进行微调,并且可以有效地修改其内部知识,而无需重新训练整个模型。

RAG 接受输入并检索一组给定来源(例如维基百科)的相关/支持文档。这些文档作为上下文与原始输入提示连接起来,并输入到生成最终输出的文本生成器。这使得 RAG 能够适应事实可能随时间变化的情况。这非常有用,因为大模型的参数知识是静态的。RAG 允许语言模型绕过再训练,从而能够访问最新信息,从而通过基于检索的生成来生成可靠的输出。

总结
大模型实际使用中,例如客户查询并不总是那么简单扼要和专业,客户的表达可能是措辞含糊、复杂,或者需要模型不具备或无法轻松解析的知识。例如爱丽丝想知道她有多少天产假。不使用 RAG 的聊天机器人会愉快地(但错误地)回应:“想用多久就用多久。”

RAG 是目前最著名的工具,可帮助大模型了解最新的、可验证的信息,并降低不断重新培训和更新的成本。RAG 取决于使用向量(数据的数学表示形式)中包含的相关信息来丰富提示的能力。矢量数据库 可以有效地索引、存储和检索推荐引擎和聊天机器人等信息。但 RAG 并不完美,在正确完成 RAG 方面仍然存在许多有趣的挑战。

GPT-4-turbo是长上下文的RAG