RAG全家桶
1. RAG流程
RAG 的具体定义指的是,当回答问题或生成文本时,首先从大量文档中检索相关信息。随后,利用这些检索到的信息来生成响应或文本,从而提高预测质量。一个通用的 RAG 管道 它主要由 3 个步骤组成
• 索引indeging:文档被分割成块,编码成向量,并存储在向量数据库中;即怎么更好的把知识存储起来
• 检索Retrieval:根据语义相似性检索与问题最相关的前 k 个块;即怎么在大量的知识中,找到一小部分有用的,给到模型参考
• 生成Generation:将原问题和检索到的词块一起输入大语言模型中,生成最终答案。即怎么结合用户的提问和检索到的知识,让模型生成有用的答案
2. RAG 核心组成
3. 与传统大模型的优势
- 减轻幻觉
- 减轻知识更新不及时
- 相较于大模型直接生成内容的方式,基于 RAG 的生成可以追溯到内容的来源,知道答案具体来源于哪条知识。大模型就像是计算机的 CPU,负责计算答案;而知识库就像是计算机的硬盘,负责存储知识,这种计算和存储分离的架构,便可以对知识回答的范围进行权限管理。
- 智能客服场景只需要一小片段的信息就可以完成问答。如果每次问答都像大模型那样把几十万的文档输入进去,成本增加
4. RAG技术方案图
4.1 方案图
4.2 各模块功能
- 以文件上传为例。在文件解析过程中,我们需要将无关的信息(页眉页脚等)过滤掉、将图片改写成特定标识符、将表格改写成模型易于理解的 html 格式等操作。同时,我们会对目录、标题等进行识别,有效提取文档的结构信息;也会对文件中的序列信息进行识别,以确保知识的连续完整。
4.3 挑战
切片问题
- 问题:
- 切片问题:传统按长度切片方法效果不佳,因为政策内容知识密度高,每句话都可能包含答案,且条款间关联性强,需要连续多个条款才能完整回答问题。
- 方案:
- 结构化存储
技术挑战embedding
- 问题:
- Embedding 微调:通用 Embedding 模型不足以应对用户口语化严重的问题,需要针对具体业务场景进行微调,以过滤无关信息并提高准确度。
- 常见微调方案
- Query vs Original:简单高效,数据结构是直接使用用户 query 召回知识库片段;
- Query vs Query:便于维护,即使用用户的 query 召回 query,冷启动的时候可以利用模型自动化从对应的知识片段中抽取 query;
- Query vs Summary:使用 query 召回知识片段的摘要,构建摘要和知识片段之间的映射关系;
- F-Answer vs Original:根据用户 query 生成 fake answer 去召回知识片段。
挑战-答案生成
- 数据标注难度大:业务人员虽然知道正确答案,但难以标注出满足一致性和多样性要求的模型微调数据。因此,我们需要在获取基础答案后,通过模型润色改写答案或增加 COT 的语言逻辑,以提高数据的多样性和一致性。
- 问答种类多样:业务需要模型能够正确回答、拒答不相关问题和反问以获取完整信息。这要求我们通过构造特定的数据来训练提升模型在这些方面的能力。
- 知识混淆度高:在问答场景中,召回精度有限,模型需要先从大量相关知识片段中找到有效答案,这个过程在政务等领域难度很大,需要通过增加噪声数据来强化模型的知识搜索能力。
- 答案专业度高:在公共服务的客服场景,答案往往没有绝对准确性,资深的客服人员总能给出更有帮助性的答案。用户问题通常含糊,更加考验专业人员的回答能力。因此我们需要通过 DPO 方式训练模型,使模型能够在众多答案中找到最好最优的答案。为此,我们需要分别构造数据,并针对模型做 SFT 和 DPO。
当构造了优质的数据后,模型微调上,我们一般会采用分阶段微调,即首先用开源通用问答数据进行微调,然后用垂域问答数据微调,最后用人工标注的高质量问答数据进行微调。
4.4 检索的关键-建设索引
如:OCR 模型、文档智能解析、多模态文档识别引擎等;文档智能的处理流程;利用多路递进式召回策略进行检索准确性;
召回策略
检索的重要第二步:训练embedding模型
Embedding 技术是通过算法将文本转换成数字向量,然后通过转换后的数字向量之间的距离来判断文本之间的相似程度进而通过这样的方式来搜索找到相关的文本内容
4.5 产品方案:
- 在知识构建过程,我们提供了包括知识类型管理、切片管理、索引管理和数据运营等知识运营和管理的工具,以此来辅助提升企业服务场景的落地效果。
- 在知识问答过程,我们提供了包括历史消息、输入提示、原文索引、图文混排、原文查看等功能,以此来加强用户对模型回复答案的信任。
- 从产品应用层面,一般有三种常见的落地类型,分别为个人使用,企业对内赋能,企业 toC 提供服务等。
5. 图和向量,如何从数据到知识
6. rerank
7. Agent介绍
定义
7.1 行业结构
7.2 数据分析Agent
7.3 基于agent+语义加持的企业分析应用平台-挑战
幻觉:人机协作,人工干预
效率:大模型多次调用数据库、IO:状态传递机制、缓存机制
8. 未来的RAG:infiniflow=infinity+ragflow
8.1 结构
8.2 向量数据库和原生数据库的结合
8.3 系统架构
存储架构
9. dingoDB技术架构-面向企业的向量数据库
9.1 特点
9.2 技术架构
9.3 多模向量技术架构
9.4 基于muti-Raft机制的分布式存储
9.5 基于SQL的支持标量换个向量的联合分析