文章目录
- 1. RAG是什么?
- 1.1 技术简介
- 1.2 挑战与解决方案
- 1.3 RAG技术构成
- 1.4 应用与前景
- 2. RAG架构详解
- 2.1 典型的RAG应用有两个主要组件
- 2.2 从原始数据到答案的完整流程
- 3. RAG在实际应用中的案例
1. RAG是什么?
1.1 技术简介
Retrieval Augmented Generation (RAG) 是一种用于增强问答系统的技术。它的核心概念是结合了检索和生成的方法,旨在拓展大型语言模型(LLMs)的知识范围。
1.2 挑战与解决方案
在传统的问答系统中,LLMs可以根据其在训练时接触到的公开数据来回答问题,但无法直接处理私有数据或后续引入的新数据。而RAG技术通过引入额外的数据,如数据库中的信息或特定领域的知识,使得LLMs能够更全面地理解和回答各种问题。
1.3 RAG技术构成
RAG技术包含两个关键部分:
- 索引化:将各种数据源的信息进行摄取和索引。
- 检索和生成:根据用户的查询,从索引中检索相关信息,并利用检索到的数据和模型进行答案的生成。
1.4 应用与前景
RAG技术的出现拓展了问答系统的应用范围,使得系统能够更智能地理解用户问题,并提供更准确、更全面的答案。
2. RAG架构详解
2.1 典型的RAG应用有两个主要组件
-
索引化(indexing):这个组件涉及从来源摄取数据并对其进行索引。这通常是离线完成的过程。
-
检索和生成(Retrieval and generation):实际的RAG链在运行时接收用户查询,并从索引中检索相关数据,然后将其传递给模型。
2.2 从原始数据到答案的完整流程
-
索引化(indexing)
- 加载:首先需要加载数据,这通过文档加载器完成。
- 拆分:文本分割器将大型文档分解为较小的片段。这对于数据索引和传递到模型中都很有用,因为大块数据难以搜索,也不适合模型的有限上下文窗口。
- 存储:需要一个地方来存储和索引这些片段,以便以后可以对其进行搜索。通常使用矢量存储和嵌入模型来完成这一步骤。
- 检索和生成
- 检索:给定用户输入,通过检索器从存储中检索相关的数据片段。
- 生成:通过包含问题和检索到的数据的提示,ChatModel/LLM生成答案。
3. RAG在实际应用中的案例
-
智能客服系统:许多企业利用RAG技术构建智能客服系统,以帮助客户解决问题和提供支持。这些系统可以基于用户的查询,从数据库中检索相关信息,并生成针对性的回答,从而提高客户服务的效率和质量。
-
医疗健康领域:在医疗健康领域,RAG技术被应用于医疗咨询和诊断系统中。患者可以通过输入症状或问题,系统会从医学数据库中检索相关信息,并生成医学建议或诊断结果,帮助患者更好地理解和管理自己的健康问题。
RAG 架构参考