RAG模块流程和架构

RAG

为什么需要RAG:
1 注入背景知识,让大模型更懂你的业务
2 大模型token参数限制。 假如每个问题都把大量的私有知识给大模型,token太大行不通。 所以借助向量数据库,把相似度很高的私有知识给到大模型

流程

这是一个结合LangChain和ChatGLM处理文本和查询的流程图,具体流程如下:

  1. 本地文档(Local Documents)通过非结构化加载器(Unstructured Loader)读取,转化为文本(Text)。
  2. 文本经过文本分割器(Text Splitter)处理,被拆分成文本块(Text Chunks)。
  3. 文本块进行嵌入(Embedding)操作,转化为向量后存储在向量存储(VectorStore)中。
  4. 查询(Query)同样经过嵌入操作,变为查询向量(Query Vector)。
  5. 查询向量与向量存储中的向量进行向量相似度(Vector Similarity)计算,找出相关文本块(Related Text Chunks)。
  6. 相关文本块结合提示模板(Prompt Template)生成提示(Prompt)。
    这一步操作原因是什么呢?为什么不直接把向量数据库的内容直接给用户呢?从向量数据库返回的数据之间逻辑性不强,通过大模型来组织语言(逻辑更强,情商更强)。
  7. 提示输入到大语言模型(LLM)中,最终输出答案(Answer)。

子流程1: 知识更新 (上图的1-7)--数据准备阶段

数据提取和清晰

1 提取企业的数据从PDF,PPT,WORD,文件里面的文字
2 清洗,结构的整理
提取步骤是非常有挑战的,PDF里面有些有图片什么,需要用到OCR技术。一般可以用收费的平台做解析。

数据切分

切割的目的:如果直接把知识给模型, 会影响模型的回应能力。比如直接把一本书的内容丢给模型()
影响模型找到知识的能力,比如你给一堆书让学生做开卷开始,学习查询也查询不赢。
需要对知识进行切割(命令 Text Splitter),生成Text chunks(业务对象)。

切割的要求
1 语义上足够垂直:一个知识只包含一个意思
2 内容足够完善:描述某个东西就在一个片段里面,不应该在很多个片段里面。

切片算法

  1. 按字数,一般是500字:
  2. 上下合并: 相邻500字chunk之间有100字重叠:1方案chunk之间没有关联,2方案
  3. 按段落: 按 /n/n 切分:缺点,文档很少按/n/n分割
  4. 特殊行业策略切片。 金融,合同领域有固定的格式,按模板切片

Embedding 嵌入

使用向量模型转化成向量

存储(向量数据库)

子流程2 知识检索/ 增强生成

1 用户去知识库找知识
2 拿到知识库的知识+问题 = 新的提示词给模型,让模型回答

查询(Query)

Embedding 嵌入生成向量

通过向量模型,把查询的请求转化为向量(Query Vector)

查询向量数据库返回Related Text Chunks (一阶段检索)

两阶段检索。 向量数据为了提升检索效率,牺牲了准确率。目的:提高召回率。 第一阶段检索足够多的知识

查询向量与向量存储中的向量进行向量相似度(Vector Similarity)计算,找出相关文本块(Related Text Chunks)。

重排序 rerank (二阶段精排)

Rerank的核心作用
​优化排序质量
大模型(如LLM)生成的初始结果可能按概率或相关性排序,但未必完全符合用户需求。Rerank通过更精细的规则或模型,重新调整顺序,确保最相关、最优质的结果排在前面。
​减少噪声和冗余
大模型的输出可能包含重复、无关或低质量内容(如幻觉回答),Rerank可通过过滤或加权剔除这些噪声。
​平衡多样性与相关性
在推荐或生成任务中,Rerank可以调整结果的多样性(避免重复)和相关性之间的平衡。

将向量数据库的召回结果+用户的query交给重排序模型重排序,增加召回的结果跟用户的提问准确率(千问有rerank模型)

效果评估

RAG回答问题的准确率是多少?如何优化

相关文本块结合提示模板(Prompt Template)生成提示(Prompt)。

把用户的问题+结合重排序的结果以prompt的形式给到大模型

提示输入到大语言模型(LLM)中,最终输出答案(Answer)。

FAQ

RAG和Agent是什么关系?
完全独立, Agent需要RAG给模型补充知识。RAG需要Agent做任务拆解

RAG应用架构


多路召回
https://e.naixuejiaoyu.com/p/t_pc/course_pc_detail/video/v_673ee011e4b0694c3c6ba985?product_id=p_66af21aee4b0694c9850a74e&content_app_id=&type=6

posted @ 2025-02-27 21:11  向着朝阳  阅读(244)  评论(0)    收藏  举报