RAG在办公领域中的探索与实践 中移动信息技术有限公司/高级NLP算法工程师/付一韬 DataFunSummit#2024 RAG 在办公领域中的探索与创新 背景介绍 4 2 3 1 RAG核心技术架构RAG构建挑战与实践总结 大语言模型的缺点 RAG RAG(RetrievalAugmentedGeneration),即检索增强生成。它通过结合检索系统和生成模型来提高语言生成的准确性和相关性。 RAG的优势 RAG系统的组成 RAG的优势在于它能够在生成响应时引入外部知识,提供更符合上下文语境的回答。 与预训练模型不同,RAG的内部知识可以很容易地修改甚至实时补充。 相比于微调技术,RAG具备可观测性、可解释性等优势,还可以有效降低大模型的幻觉问题 RAG不是单一的一个组件,是由多个组件组成的复杂系统,LLM只是其中的 一个组件。 RAG系统的组件包括: 数据源:存储了要检索的信息。 数据处理模块:负责将数据转换为适合RAG系统使用的格式。 检索器(Retriever):负责根据用户查询从数据源中检索相关信息。 排序器(Ranker):将最相关的信息呈现给LLM用于内容生成。 生成器(Generator):结合用户查询和相关信息,通过LLM生成最终的相应。 RAG 在办公领域中的探索与创新 背景介绍 4 2 3 1 RAG核心技术架构RAG构建挑战与实践总结 《ModularRAG:TransformingRAGSystemsintoLEGO-likeReconfigurableFrameworks》 系统设计 整体思路 用户提问=>检索=>排序=>生成=>用户 检索:通过文档解析、Query改写以及混合检索的方式,快速检索�一批可能相关的候选文档,以保证检索回来的 相关文档——“搜的更全” 排序:通过粗排序、精排序和知识过滤的方式,在这些候选文档中找�最相关的文档,并将它们按相关性排序,以 保证这些文档的排序——“排的更好” 生成:通过知识排版,再结合用户提问+Prompt模板组成提示词输入到大模型中,进而保证针对用户提问的回答— —“回答的更准” 问答流程 搜的更全 知识库(行业规范、操作手册、书) 文档解析 离线 划分段落块 字符串 文本块chunk 索引构建 文本索引 在线 用户提问 知识数据 向量索引 重排序 匹配K段和问题相关的知识原文 提示词Prompt 大语言模型 (包含原文和问题)(九天、通义千问、GLM) 排的更好 回答的更准 RAG 在办公领域中的探索与创新 背景介绍 4 2 3 1 RAG核心技术架构RAG构建挑战与实践总结 问答流程 知识库(行业规范、操作手册、书) 文档解析 离线 划分段落块 字符串 文本块chunk 索引构建 文本索引 在线 用户提问 知识数据 向量索引 搜的更全 重排序匹配K段和问题 提示词Prompt 大语言模型 相关的知识原文(包含原文和问题)(九天、通义千问、GLM) 整体流程 文档解析RAG仍有两点优势是短时间内无法被替代: 1.版式多样的文档数据:针对版式各异的文档数据,解析�逻辑区块并进 行问答; 2.答案溯源:帮助用户快速从原文中验证答案的可靠性,从而提升整个问答系统的可信度。 基于这两点优势的发挥,都需要依赖一个强大的文档解析流程。解析文档内容是RAG系统最重要的前置工作之一。 解决方案: 基于RAGFlow的DeepDoc模块进行二次开发。DeepDoc最大的特色是多样化 的文档智能处理,对多种不同格式文档的深度解析。在中国移动内部,文 档数据更多是PDF和Word文档,所以我们也对这两类文档数据进行重点优化。 具体流程: 1.数据解析 Word:天然的版面结构 Pdf:版面元素恢复(标题/段落/图片),表格结构识别,阅读顺序还原 2.数据切分 结构切分:通过版面结构进行区域切分 长度切分:结合切片长度(chunksize)进行切分(用于检索的文本块) 3.创建索引 分别调用文本分词和向量模型对文本块进行处理,写入索引 多轮Query改写 用户:总部制度管理小组牵头部门是哪个?系统:总部制度管理小组的牵头部门是XXX。 用户:成都的�差住宿费标准 系统:省公司领导:XXX,其他成员:XXX 用户:它的职责是什么用户:那重庆呢 改写:总部制度管理小组的职责是什么 指代消歧 无法检索到相关信息 改写:那重庆的�差住宿费标准呢 信息补全 总部制度管理小组牵头部门是哪个部门 总部制度管理小组的牵头部门是XXX。 它的职责是什么总部制度管理小组的 职责是什么 成都的�差住宿 费标准 省公司领导:xxx其他成员:xxx 那重庆呢那重庆的�差 住宿费标准呢 指代人/物/组织识别指代词识别 补全信息识别 插入位置预测 对于指代消岐类,先是识别指代词“它”,同时识别�上下文中的关键信息“总部制度管理小组”,然后替换掉“它“。 对于信息补全类,先是识别�上下文中的关键信息“�差住宿费标准”, 然后识别�需要补全信息的位置在"呢"之前。 技术方案 将多轮Query改写转换为关系抽取任务,指代消歧和信息补全看作关系,指代实体/指代词/补全信息/插入位置看作实体,采用TPLinker模型构建。 全文检索优势 向量检索优势 混合检索 相近语义理解 多语言理解/跨语言理解 多模态理解 容错性强 精确匹配 短文本匹配 倾向低频词汇的匹配 可解释强 混合检索优势 更精准:混合检索可以同时利用全文检索和向量检索对数据进行查询,提高检索的准确性和可行度。 更多样:混合检索可以利用向量检索的多样性,返回多种不同的检索结 果,提供更多的选择和信息,满足不同的用户查询需求和偏好。 更强大:混合检索可以利用全文检索的逻辑运算、排序、过滤等功能,实现更复杂的查询需求。 更可解释:混合检索可以利用全文检索的文本匹配和高亮显示,实现更 可解释的检索结果。 混合检索 分词工具 分词结果 jieba 关键时期/,/全面/建设/社会主义/现代化/国家/,/需要/一批/能够/体现/国家/经济/实力/、/科技/实力/和/国际/竞争力/的/世界/一流/企业/作为/关键/支撑/。 lac 关键/时期/,/全面/建设/社会主义/现代化/国家/,/需要/一批/能够/体现/国家/经济/实力/、/科技/实力/和/国际/竞争力/的/世界/一流/企业/作为/关键/支撑/。 texsmart 关键时期/,/全面建设社会主义现代化国家/,/需要/一批/能够/体现/国家/经济实力/、/科技/实力/和/国际竞争力/的/世界一流/企业/作为/关键/支撑/。 cutword 关键时期/,/全面/建设/社会主义/现代化/国家/,/需要/一批/能够/体现/国家/经济实力/、/科技/实力/和/国际竞争力/的/世界一流/企业/作为/关键支撑/。 开源分词模型对比 •jieba和lac的分词粒度太细 •texmsart分词粒度太粗 •cutword分词粒度适中 开源向量模型对比 模型 支持语种 维度 最大 token 特点 相关性 bge-m3 100+ 语言 1024 8192 •支持超过100种语言的语义表示及检索任务•同时集成了稠密检索、稀疏检索、多向量检索三大能力 XX.X% bce-base-v1 中英 768 512 •中英双语和跨语种能力•多领域覆盖,收集了包括:教育、医疗、法律、金融、百科、科研论文、客服(faq)、通用QA等场景的语料 XX.X% m3e-base 中英 768 512 •使用场景主要是中文,少量英文的情况•支持中英双语的文本相似度计算和文本检索等功能,未来还会支持代码检索 XX.X% gte- base-zh 中文 768 512 •从效果来说,多数任务上表现不错 XX.X% 采用bge-m3和bce-base-v1模型双向量模型检索,以达到检索互补的目的。 问答流程 知识库(行业规范、操作手册、书) 文档解析 离线 划分段落块 字符串文本块chunk 索引构建 排的更好 文本索引 在线用户提问 知识数据 向量索引 重排序 匹配K段和问题相关的知识原文 提示词Prompt 大语言模型 (包含原文和问题)(九天、通义千问、GLM) 整体流程 Index top100 ………… LLM生成 top20top5过滤 ………… 混合检索粗排序精排序知识过滤 《RAG-Fusion:TheNextFrontierofSearchTechnology》 粗排序ReciprocalRankFusion(RRF) RRF(ReciprocalRankFusion),即倒数排序融合,是一种将具有不同相关性指标的多个结果集组合成单个结果集的方法。它不依赖于搜索引擎分配的绝对分数,而是依赖于相对排名,因此结合具有不同分数尺度或分布的结果变得实际。它用于两个或多个查询并行执行的场景。 排名 BM25 相关性 向量相关性 RRF排名结果(k=0) 1 A B B:1/2+1/1=1.5 2 B C A:1/1+1/3=1.3 3 C A C:1/3+1/2=0.83 RRF的优势: 1.不利用相关得分,而仅靠排名计算,简单有效; 2.适合多路召回,通过RRF选取topn后再进行重排序,这样有助于提升重排序的效率; 3.混合检索的文档进行合并去重; 粗排序 ColBERT:延迟交互模型(LateInteractionModel) ColBERT相比较双编码器和交叉编码器(CrossEncoder)的特点: 1.相比于CrossEncoder,ColBERT仍采用双编码器策略,离线处理文档编码,在查询时仅针对Query编码,因此处理的速度大大高于CrossEncoder; 2.相比于双编码器,ColBERT输�的是多向量而非单向量,这是从Transformer的最后 输�层直接获得的,而双编码器则通过一个Pooling层把多个向量转成一个向量输🎧, 因此丢失了部分语义。 3.排序计算时,ColBERT引入了延迟交互计算相似度函数,并将其命名为最大相似性 (MaxSim) •计算方法如下:对于每个查询Token的向量都要与所有文档Token对应的向量进行相似度计算,并跟踪每个查询Token的最大得分。 《延迟交互模型,为什么是下一代RAG的标配?》 精排序 为什么需要排序模型呢? 向量检索和Reranker模型之间的差异 特性 向量检索 Reranker 交互层级 文档级 Token级 计算需求 低 高 计算时机 离线(索引时) 在线(查询时) 结果 广泛但肤浅 高度相关且精确 优势 -快速高效-实施简单 -深刻理解上下文-高级语义分析 局限性 -缺乏深度-可能忽略用户意图 -计算密集-模型复杂 适合场景 快速初步召回 优化召回结果质量 《有道QAnything背后的故事---关于RAG的一点经验分享》 排序模型对比 排序模型 特点 效果 性能 RRF 简单权重加权融合,完全按照各路召回的排名进行打分,丢掉了原始召回中的相似度信息,算法鲁棒,适合于性能要求高的场景。 一般 快 Colbert 延迟交互机制,既满足了对排序过程中查询和文档之间复杂交互的捕获,也能实现较快的排序性能,兼顾了性能与效果。 适中 适中 CrossEncoder 强大的重排序算法,能够对每一对查询和文档进行详细的相关性评估,适合于对准确性要求高的场景。 好 慢 RRF、Colbert和CrossEncoder这三个模型的作用都是排序, 可针对自己的业务场景进行选型适配。 知识过滤 对于LLM来说是GarbageinGarbageout。 为了解决检索到的无关知识问题,引入知识过滤模块,通过NLI任务来评估检索到的知识与问题的相关