什么是 RAG(检索增强生成)?
检索增强生成(RAG)是一种通过将人工智能(AI)模型与外部知识库连接来优化其性能的架构。RAG 可帮助大型语言模型 (LLM) 以更高的质量提供更相关的响应。
生成式人工智能(gen AI)模型在大型数据集上进行训练,并参考这些信息生成输出结果。然而,训练数据集是有限的,而且仅限于人工智能开发人员可以访问的信息–公共领域作品、互联网文章、社交媒体内容和其他可公开访问的数据。
RAG 允许人工智能生成模型访问额外的外部知识库,如内部组织数据、学术期刊和专业数据集。通过将相关信息整合到生成过程中,聊天机器人和其他自然语言处理(NLP)工具无需进一步培训就能创建更准确的特定领域内容。
¶RAG 有什么好处?
在根据特定领域的用例调整生成式人工智能模型时,RAG 使企业能够避免高昂的再培训成本。企业可以使用 RAG 来填补机器学习模型知识库中的空白,从而提供更好的答案。
RAG 的主要优点包括
具有成本效益的人工智能实施和人工智能扩展
获取当前特定领域的数据
出现人工智能幻觉的风险较低
提高用户信任度
扩展使用案例
加强开发人员控制和模型维护
更高的数据安全性
¶具有成本效益的人工智能实施和人工智能扩展
在实施人工智能时,大多数组织首先会选择一个基础模型:作为开发更高级版本基础的深度学习模型。基础模型通常拥有通用知识库,其中填充了公开可用的训练数据,如训练时可用的互联网内容。
重新训练基础模型或对其进行微调–即在一个较小的特定领域数据集的新数据上进一步训练基础模型–计算成本高且资源密集。模型会调整部分或全部参数,以适应新的专业数据。
有了 RAG,企业可以使用内部权威数据源,并在不重新培训的情况下获得类似的模型性能提升。企业可以根据需要扩大人工智能应用的实施规模,同时减少成本和资源需求的增加。
¶获取当前数据和特定领域数据
生成式人工智能模型有一个知识截止点,即其训练数据最后一次更新的时间点。当模型的年龄超过其知识截止点时,它就会随着时间的推移而失去相关性。RAG 系统可将模型与补充外部数据实时连接,并将最新信息纳入生成的响应中。
企业利用 RAG 为模型配备特定信息,如专有客户数据、权威研究和其他相关文件。
RAG 模型还可以通过应用程序接口 (API) 连接到互联网,获取实时社交媒体信息和消费者评论,从而更好地了解市场情绪。同时,由于模型将检索到的信息纳入文本生成过程,对突发新闻和搜索引擎的访问可带来更准确的响应。
¶出现人工智能幻觉的风险较低
生成式人工智能模型(如 OpenAI 的 GPT)的工作原理是检测数据中的模式,然后利用这些模式预测用户输入的最可能结果。有时,模型检测到的模式并不存在。当模型将不正确或捏造的信息当作事实来呈现时,就会出现幻觉或迷惑。
RAG 将 LLM 固定在以事实、权威和最新数据为支撑的特定知识中。与只根据训练数据运行的生成模型相比,RAG 模型往往能在外部数据的背景下提供更准确的答案。虽然 RAG 可以降低出现幻觉的风险,但它并不能使模型不出错。
¶提高用户信任度
聊天机器人是一种常见的生成式人工智能实现方式,可以回答人类用户提出的问题。像 ChatGPT 这样的聊天机器人要想取得成功,用户需要认为它的输出是值得信赖的。RAG 模型可以在其回答中引用外部数据中的知识源。
当 RAG 模型引用其来源时,人类用户可以验证这些输出以确认其准确性,同时查阅引用的著作以进行后续说明和获取更多信息。企业数据存储通常是一个复杂而孤立的迷宫。带有引文的 RAG 响应可直接指向用户所需的资料。
¶扩展使用案例
获取更多数据意味着一个模型可以处理更广泛的提示。企业可以通过扩大知识库来优化模型,并从中获得更多价值,进而扩大模型产生可靠结果的范围。
通过将生成式人工智能与检索系统相结合,RAG 模型可以检索和整合来自多个数据源的信息,以响应复杂的查询。
¶加强开发人员控制和模型维护
现代企业不断处理海量数据,从订单输入到市场预测,再到员工流失率等等。有效的数据管道构建和数据存储对于有力地实施 RAG 至关重要。
同时,开发人员和数据科学家可以随时调整模型可以访问的数据源。将模型从一个任务重新定位到另一个任务,就变成了调整其外部知识源的任务,而不是微调或重新训练。如果需要微调,开发人员可以优先处理这项工作,而不是管理模型的数据源。
¶更高的数据安全性
由于 RAG 将模型与外部知识源连接起来,而不是将这些知识纳入模型的训练数据,因此它在模型与外部知识之间保持了一定的间隔。企业可以使用 RAG 保留第一方数据,同时授予模型访问这些数据的权限–这种权限可以随时撤销。
但是,企业必须保持警惕,维护外部数据库本身的安全。RAG 使用矢量数据库,该数据库使用嵌入技术将数据点转换为数字表示。如果这些数据库被攻破,攻击者就可以逆转矢量嵌入过程并访问原始数据,尤其是在矢量数据库未加密的情况下。
¶RAG 使用案例
RAG 系统主要是让用户能够用对话语言查询数据库。RAG 系统以数据为动力的问题解答能力已被广泛应用于各种用例,包括:
- 专业聊天机器人和虚拟助理
- 研究
- 内容生成
- 市场分析和产品开发
- 知识引擎
- 推荐服务
¶专业聊天机器人和虚拟助理
希望实现客户支持自动化的企业可能会发现,他们的人工智能模型缺乏充分协助客户所需的专业知识。RAG 人工智能系统可将模型插入内部数据,为客户支持聊天机器人提供有关公司产品、服务和政策的最新知识。
同样的原理也适用于人工智能头像和个人助理。将底层模型与用户的个人数据相连接,并参考以往的互动,可以提供更加个性化的用户体验。
¶研究
RAG 模型能够阅读内部文件并与搜索引擎连接,在研究方面表现出色。金融分析师可以利用最新的市场信息和以往的投资活动生成针对客户的报告,而医疗专业人员则可以查阅病人和机构的记录。
¶内容生成
RAG 模型能够引用权威资料来源,因此可以生成更可靠的内容。虽然所有人工智能生成模型都可能产生幻觉,但 RAG 能让用户更轻松地验证输出结果的准确性。
¶市场分析和产品开发
企业领导者可以参考社交媒体趋势、竞争对手活动、与行业相关的突发新闻和其他在线资源,以便更好地为业务决策提供信息。同时,产品经理在考虑未来的开发选择时,可以参考客户反馈和用户行为。
¶知识引擎
RAG 系统可让员工掌握公司内部信息。简化入职流程、加快人力资源支持以及为现场员工提供按需指导只是企业利用 RAG 提高工作绩效的几种方式。
¶推荐服务
通过分析用户以前的行为并将其与当前产品进行比较,RAG 系统可以提供更准确的推荐服务。电子商务平台和内容交付服务都可以使用 RAG 来保持客户的参与和消费。
¶RAG 如何工作?
RAG 的工作原理是将信息检索模型与生成式人工智能模型相结合,生成更具权威性的内容。RAG 系统查询知识库,并在生成响应之前为用户提示添加更多上下文。
标准的 LLM 从训练数据集中获取信息。RAG 在人工智能工作流程中增加了信息检索部分,收集相关信息并将其反馈给生成式人工智能模型,以提高响应质量和实用性。
RAG 系统分为五个阶段:
- 用户提交提示。
- 信息检索模型查询知识库中的相关数据。
- 相关信息会从知识库返回到集成层。
- RAG 系统可根据检索到的数据,为 LLM 提供增强型提示,并提供更强的背景信息。
- LLM 生成输出并向用户返回输出。
这一过程展示了 RAG 名称的由来。RAG 系统从知识库中检索数据,通过添加上下文来增强提示,然后生成回复。
¶RAG 系统的组成部分
RAG 系统包含四个主要组成部分:
知识库:系统的外部数据存储库。
检索器搜索知识库中相关数据的人工智能模型。
集成层:RAG 架构中协调整体功能的部分。
生成器人工智能生成模型,可根据用户查询和检索到的数据创建输出结果。
其他组件可能包括排名器(根据相关性对检索到的数据进行排名)和输出处理程序(为用户格式化生成的响应)。
¶知识库
构建 RAG 系统的第一阶段是创建一个可查询的知识库。外部数据存储库可以包含来自无数来源的数据:PDF 文件、文档、指南、网站、音频文件等等。其中大部分是非结构化数据,这意味着这些数据尚未被标记。
RAG 系统使用一种称为嵌入的过程,将数据转换为称为向量的数字表示。嵌入模型在多维数学空间中将数据矢量化,按相似性排列数据点。被判定为相关性更接近的数据点被紧密地排列在一起。
知识库必须不断更新,以保持 RAG 系统的质量和相关性。
¶分块
LLM 的输入受限于模型的上下文窗口:模型在不丢失上下文的情况下所能处理的数据量。将文档分成较小的块有助于确保由此产生的嵌入不会超出 RAG 系统中 LLM 的上下文窗口。
分块大小是 RAG 系统的一个重要超参数。如果分块过大,数据点就会变得过于笼统,无法直接对应潜在的用户查询。但是,如果数据块太小,数据点就会失去语义连贯性。
¶检索
数据矢量化为语义矢量搜索准备了知识库,语义矢量搜索是一种识别数据库中与用户查询相似点的技术。与传统的关键词搜索相比,语义搜索机器学习算法可以查询海量数据库并快速识别相关信息,从而减少延迟。
信息检索模型将用户的查询转化为嵌入,然后在知识库中搜索类似的嵌入。然后,从知识库中返回搜索结果。
¶集成层
集成层是 RAG 架构的中心,负责协调流程并在网络中传递数据。有了来自知识库的新增数据,RAG 系统会为 LLM 组件创建一个新的提示。该提示由原始用户查询加上检索模型返回的增强上下文组成。
RAG 系统采用各种提示工程技术来自动创建有效的提示,并帮助 LLM 返回最佳响应。同时,LLM 协调框架(如开源的 LangChain 和 LlamaIndex 或 IBM® watsonx Orchestrate™ )管理着人工智能系统的整体运作。
¶生成器
生成器根据整合层提供的增强提示创建输出。提示将用户输入与检索到的数据进行合成,并指示生成器在其响应中考虑这些数据。生成器通常是经过预训练的语言模型,如 GPT、Claude 或 Llama。
¶RAG 和微调有什么区别?
RAG 与微调的区别在于,RAG 让 LLM 能够查询外部数据源,而微调则是在特定领域的数据上训练 LLM。两者的总体目标相同:使 LLM 在特定领域中表现更好。
RAG 和微调通常是相对的,但也可以同时使用。微调可以提高模型对预期领域和输出要求的熟悉程度,而 RAG 则有助于模型生成相关的高质量输出。