大规模生成的大型语言模型 (LLM) 改变了 AI 应用程序;然而,它们仍然存在各种缺点,因为它们的知识是静态的,只能来自训练数据。这就是检索增强生成(RAG)发挥作用的地方。
RAG 通过穿插实时数据检索来增强生成式 AI 模型的功能,确保检索过程产生更准确、更及时的输出结果。然而,RAG 模型有多种形式,主要适用于不同的应用程序1 。
在本文中,我们将深入了解各种 RAG 技术,包括它们的工作原理、每种 RAG 类型的优势和局限性以及在各种用例中的可用性。
为了提高 RAG 模型的整体有效性和可持续发展,检索系统已经从朴素 RAG 演变为高级 RAG 和模块化 RAG,以应对性能、成本和效率方面的挑战。让我们来深入了解每种 RAG 技术。
朴素 RAG 是检索增强生成的基本实现,其中检索信息和生成响应是在没有任何优化或反馈的情况下完成的。在这种简单的设置中,系统根据查询检索相关数据,然后简单地将其输入语言模型(例如 GPT)以生成最终答案2。
朴素 RAG 依赖一个相当简单的三步流程来进行检索和内容生成。以下步骤解释了检索过程的工作原理:
图 1 说明了朴素 RAG 工作原理的三步过程(编码、检索和响应生成)。
朴素 RAG 非常适合那些简单、快速和易于部署优先级高于高准确性和灵活性的场景。该架构的简洁性使其成为构建概念验证应用程序的理想选择,并能够快速测试想法,而无需进行繁琐的模型调整。例如,它可有效用于:
a.客户支持聊天机器人:通过使用 LLM 回复,处理经常问到的重复性问题解答场景。
b. 摘要和信息检索:使用自然语言处理技术提供基本级别的摘要。
c. 企业 AI 系统: 从存储库快速检索相关数据,回答常见查询问题。
尽管朴素 RAG 简单且快速,但高级 RAG 可提供更大的灵活性、可扩展性和性能,使其适合复杂的实际应用。
让我们来了解一下什么是高级 RAG 以及它能提供哪些关键性能。
高级 RAG 结合了更强大的检索和生成能力,采用了复杂的算法——例如重排序器、微调 LLM 和反馈回路等一系列理念。这些改进带来了准确性、适应性和性能方面的提升,使这些模型成为更复杂和生产级应用的更好选择5。
高级 RAG 以基于步骤的顺序流程运行,如下所示:
1. 查询处理:收到用户查询后,使用嵌入模型将其转换为高维矢量,以捕获查询的语义。
2. 文档检索:编码后的查询会遍历一个庞大的知识数据库,该数据库通过使用密集矢量搜索和稀疏检索(即语义相似性和基于关键词的搜索)提供混合检索。因此,其结果会将语义关键字匹配引入到检索文件中。
3. 对检索到的文档重新排名:检索器会根据上下文并结合检索文档的查询给出最终分数。
4. 上下文融合生成:由于每个文档的编码都不同,解码器会融合所有编码上下文,以确保生成的回复与编码查询一致。
5. 响应生成:高级 RAG 的生成器(通常是 LLM),例如 IBM Granite™ 模型或 Llama,会根据检索到的文档提供答案。
6. 反馈循环:由于高级 RAG 使用主动学习、强化学习和检索器-生成器协同训练等各种技术来不断提高其性能。在此阶段会发生隐性信号,例如点击检索到的文档,从而推断相关性,并引发显性反馈,包括更正或评分,以便在生成中进一步应用。因此,多年来,这些策略改进了检索和响应生成过程,从而生成更准确、更相关的答案6。
图 2 说明了高级 RAG 工作原理的分步骤过程。
凭借实时信息检索以及动态、准确和基于上下文的响应能力,高级 RAG 的用途极其广泛,适用于各行各业的各种应用。其应用范围包括为客户服务赋能、提供相关信息从而改善决策以及增强个性化体验。通过高级 RAG 改进的检索和生成使其对于实时应用非常实用,但对于生产级别用例来说,其可扩展性和可用性低于平均水平。
模块化 RAG 是 RAG 的最高级变体,其中信息检索和生成模型在开放的、可组合的类似线性管道的架构中工作。这种方法允许不同的用例在可定制性和可扩展性方面表现得更好。
通过将 RAG 操作分解成模块,可以更好地独立调整、调试和优化每个组件。现在让我们看看模块化 RAG 在实际应用中是如何工作的7 。
1. 用户查询处理:第一步是用户提交查询,如:"最近市场上最流行的书是什么?"然后,查询处理模块会对输入进行转换,包括重新措辞查询、消除歧义和执行语义解析,以便在提交检索之前提供更丰富的上下文信息。
2. 检索模块: 检索模块处理矢量数据库或知识库上的查询,以获取相关文档。它采用基于嵌入的相似性范式进行检索。
3. 过滤和排序模块:然后利用元数据、关联性或相关性对检索到的文档进行过滤。重新排序模型会对最有用的信息进行评分和优先排序。
4. 上下文增强模块:该模块利用知识图谱馈送检索信息,嵌入来自数据库和应用程序接口的结构化数据,并应用检索压缩,以实现最佳内容检索。
5. 响应生成: LLM 处理用户查询以及检索到的上下文,生成连贯且准确的响应,最大限度地减少幻觉并确保相关性。
6. 后处理模块:该模块通过事实检查确保准确性,通过结构化格式提高可读性,并通过生成引文提高可信度。
7. 输出和反馈循环: 响应的最终输出呈现给用户,同时通过用户的交互创建反馈循环,帮助随着时间的推移完善检索和模型性能。
图 3 说明了模块化 RAG 工作原理的逐步过程。
高级 RAG 适用于其应用需要大量定制的用例,例如域特定的检索和排名技术。可扩展性和可维护性对于涉及大型系统并且不断尝试不同的检索模型和战略的应用非常重要8。
虽然朴素 RAG 简单快捷,但模块化 RAG(通常使用 LangChain 等框架)可提供增强的灵活性、可扩展性和性能,使其更适合复杂的实际应用。高级 RAG 通过检索针对特定背景的实时信息来提高准确性,有助于最大限度地减少错误。它可以动态适应,通过主动学习和强化学习 (RLHF) 融入用户反馈。此外,它还通过集成专业数据库来增强特定领域的知识。它还通过仅获取最相关的数据来优化 LLM 的上下文窗口,从而提高效率。尽管如此,高级 RAG 系统仍面临着挑战,例如更高的计算需求以及因检索和生成过程而产生的延迟。它们需要大量的资源来管理广泛的知识库,并涉及复杂的实施和维护,尤其是在对检索器进行微调、对模型进行排名和响应生成器时。这个领域是使用 LangChain 开发的模块化 RAG 架构擅长的地方。其模块化设计可实现灵活的定制,使检索器、排序器和发生器等单个组件可以进行微调或独立更换。这种方法通过使调试和更新更容易而不会中断整个系统来增强可维护性。可扩展性是通过将模块分配到各种资源来实现的,而成本则通过优化检索流程和最大限度地减少 LLM 的使用量来管理9, 10.
为了确保更好的性能和可扩展性,目前正在积极开发利用高级提示工程技术和微调方法来增强 RAG 模型以生成高精度内容的检索系统。
自我 RAG 方法、多模态 AI 模型的未来发展和改进指标将继续完善检索过程,从而确保更好地处理自然语言交互中的额外上下文。
1. Gao, Y.、Zhang, Z.、Peng, M.、Wang, J. 和 Huang, J. (2023)。大型语言模型的检索增强生成:调查问卷。arXiv preprint arXiv:2312.10997.
2. Wu, S.、Wang, D.、Lin, Z.、Yang, Y.、Li, H. 和 Li, Z. (2024)。自然语言处理的检索增强生成:调查问卷。ArXiv preprint arXiv:2407.13193.
3. Huang, Y.、& Huang, J. (2024)。关于大型语言模型的检索增强文本生成的调查。arXiv preprint arXiv:2404.10981。
4. Li, S.、Stenzel, L.、Eickhoff, C. 和 Bahrainian, S. A. (2025)。 促进检索增强生成:最佳实践研究。第 31 届国际计算语言学会文集,6705–6717。
5. Sakar, T. 和 Emekci, H. (2024)。最大化 RAG 效率:各种 RAG 方法的比较分析。自然语言处理,1–15。
6. Su, W.、Tang, Y.、Ai, Q.、Wu, Z. 和 Liu, Y. (2024)。DRAGIN: 基于大型语言模型信息需求的动态检索增强生成。arXiv preprint arXiv:2403.10081。
7. Gao, Y.、Xiong, Y.、Wang, M. 和 Wang, H. (2024)。模块化 RAG:将 RAG 系统转变为类似乐高的可重构框架。arXiv preprint arXiv:2407.21059。
8. Shi, Y.、Zi, X.、Shi, Z.、Zhang, H.、Wu, Q. 和 Xu, M. (2024)。加强检索和管理检索:提高 RAG 系统质量和效率的四模块协同作用。arXiv preprint arXiv:2407.10670。
9. Zhu, Y.、Yang, X.、Zhang, C. 和 Dou, Z. (2024)。检索增强生成技术的未来趋势和研究方向。计算智能与神经科学,2024,1–15.
10. Atos. 2024. 实施生成式 AI 检索增强生成的实用蓝图。Atos. 访问日期:2025 年 2 月 12 日。
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。