Introduction to RAG

RAG(Retrieval-Augmented Generation),意思是将外部的知识引入到大模型生成过程中,使得模型能生成更加准确和详实的回复。

RAG是一种大模型的应用架构模式,遵循这种模式的系统通常包含知识库,并按照如下的流程进行工作:

  1. 索引外部的知识,将知识索引后在模型生成的时候进行检索和使用。这里的知识库是个通用的概念,只有是外部的知识,存储后可以被检索和应用都算遵循这种模式。现在业界常用的是向量数据库,通过将外部知识分块并向量化存储入向量数据库。当然其他类型的知识数据库也都有合适的适用场景,例如图数据库等。
  2. 检索外部的知识,从外部的知识库中将向关联的知识检索出来,向量库可以通过语义相似度进行检索,所以比较常用。也可以结合其他类型的数据库形式进行检索。
  3. 增强上下文知识,将检索后的数据作为上下文的一部分或者提示词的一部分,结合问题,形成模板提供给大语言模型。
  4. 生产结果数据,并标注外部知识的信息来源等,以方便用户进行可信度的识别。

RAG这种将外部知识引入大模型应用的机制,类似开卷考试,大模型可以根据相关的外部知识学习,进行结果的生成,应用到了大模型本身的通识知识,推理学习能力,并查资料补齐专业知识后进行回答。

大模型容易出现幻觉、缺乏专业知识、回答缺乏可解释性问题,而RAG技术通过外挂专业的知识库、在生成答案时结合知识库回答问题、同时在最终生成结果中展示知识库信息来源,一定程度上有效的解决了这3大问题。

RAG的价值和应用场景

RAG可以减少模型在不了解的领域产生幻觉,利用通用知识胡说八道。并可以提高模型的知识边界和范围,避免每次都进行训练,增加模型的适应和泛化能力。

RAG主要可以构建:

  1. 知识问答,通过构建企业知识库,提供问答应用系统。
  2. 业务支撑,RAG作为一个组件,构建其他业务系统。
  3. 智能客服,集成到企业客服中,快速准确的回答企业业务问题,提高服务效率和客户满意度。

RAG的评估方法

评估指标:

  • 检索质量:召回率和精确度
  • 生成质量:答案忠诚度,答案精确度
  • 系统性能:端到端耗时,资源消耗

RAG的优化方法

  • 检索优化:混合检索,调整Top-K
  • 模型优化:模型增训微调
  • 提示词优化:提示词工程

RAG参考架构

![[Pasted_image_20250426230922.png]]

![[building-RAG-from-scratch 2025-04-26 22.30.57.excalidraw]] ![[Pasted_image_20250501165323.png]]

RAG参考架构实现

参见:《学习LLamaIndex第一个程序》帖子