2026/4/15 13:57:27
网站建设
项目流程
网站最重要的是首页吗,东营百姓网免费发布信息网,沈阳工程学院信息公开网,微信怎么创建微信公众号本文全面介绍了RAG#xff08;检索增强生成#xff09;技术#xff0c;包括其定义、演进历程#xff08;Naive RAG、Advanced RAG、Modular RAG#xff09;及工作流程。文章详细拆解了RAG的七步工作流程#xff1a;知识分块、生成嵌入、向量存储、用户查询嵌入、语义检索…本文全面介绍了RAG检索增强生成技术包括其定义、演进历程Naive RAG、Advanced RAG、Modular RAG及工作流程。文章详细拆解了RAG的七步工作流程知识分块、生成嵌入、向量存储、用户查询嵌入、语义检索、重排序和增强生成帮助读者理解如何通过外部知识源增强大模型的生成能力降低幻觉概率提升回答质量。前言前面简单了解了一下MCP技术(之前在csdn发表过学习博客)RAG技术也是早有耳闻但是要说RAG对我印象最深的是一天坐地铁时看到小红书中一个帖子内容大概是清华大一某一门课程第一节课的作业要求需要搭建一个RAG系统。我看到后有些惊讶感觉我应该加快学习的步伐了。如果文章能帮到其他小伙伴那是我的荣幸。文中如有不当的地方欢迎大家友好讨论对于不妥我会积极修改。有部分图片和实现方案及操作步骤取自其他博客和公众号作者均会在后面引用说明大佬们有更好的解决方法和想法也希望能够指点指点~~~~一、什么是RAG?我感觉LangChain4j 中文文档RAG (检索增强生成) | LangChain4j 中文文档中的介绍还挺有趣“RAG 是一种在发送给 LLM 之前从你的数据中找到并注入相关信息片段到提示中的方法。 这样 LLM 将获得希望是相关信息并能够使用这些信息回复 这应该会降低产生幻觉的概率。”我的理解是例如向 LLM 提问一个问题qustionRAG 从各种数据源检索相关的信息并将检索到的信息和问题answer注入到提示词模板中LLM 最后给出答案。RAG模型由Facebook AI ResearchFAIR团队于2020年首次提出[2005.11401] 用于知识密集型自然语言处理任务的检索增强生成毕竟早在2019年FAIR的Faiss 就实现了基于嵌入的向量搜索技术。一篇关于RAG技术的综述我认为要弄清楚一个技术看一看近几年不错的综述也一定会有不一样的全局感关于RAG技术的综述我感觉这篇《Retrieval-Augmented Generation for Large Language Models: A Survey》同济-KGLLM/RAG调查不错虽然是2024年的但是也可以帮助我们了解清楚RAG发展脉络。1.概述复旦、同济的研究学者们将RAG范式进展概括为三个部分Naive RAG, the Advanced RAG, the Modular RAG。将RAG相关研究演变分为如下图的四个阶段这四个阶段是伴随着大模型的能力来演进的其共性都是为了让模型更好地利用知识。涉及RAG的阶段主要包括预训练、微调和推理。随着LLM的出现RAG研究最初聚焦于利用LLM强大的上下文学习能力主要集中在推理阶段。后续研究深入探讨逐步与LLMs的微调相结合。研究人员还在探索通过检索增强技术提升预训练阶段的语言模型。这篇综述的RAG生态图系统性地勾勒出检索增强生成RAG技术从理论到实践、从单一到生态的整体发展脉络底层以上游技术栈与核心范式为支撑通过一系列精细化技术持续优化检索与生成效果中层直面“检索什么、何时检索、如何利用”三大核心挑战并推动RAG向长上下文、多模态与生产级系统演进上层以多样化下游任务为导向依托日益成熟的工具生态和涵盖质量、鲁棒性、忠实度等多维度的评估体系推动RAG走向专业化、可衡量、可落地的未来。整张图表明RAG已从一种简单的拼接技术演进为一个层次清晰、持续进化且生态完备的新型知识增强智能架构。2.RAG的定义在该综述中RAG的定义RAG是一种通过从外部知识源实时检索相关信息并将其与用户查询相结合来增强大型语言模型LLM生成能力的技术框架。它主要用于弥补LLM依赖静态预训练数据、难以获取最新或特定领域知识的局限性。其核心运作流程包含三个关键步骤索引将外部文档分割成片段转化为向量表示并存入向量数据库以供高效检索。检索根据用户查询的语义从向量数据库中找出最相关的文本片段。生成将检索到的文本片段与原始查询组合成增强提示输入LLM以生成最终答案。3.RAG的框架RAG的三种范式Naive RAG:主要由三个部分组成索引、检索和生成。Advanced RAG:提出了多种优化策略围绕检索前和检索后过程类似于Naive RAG但仍遵循链状结构。Modular RAG:继承并发展自前一范式整体展现出更高的灵活性。这在多个特定功能模块的引入和现有模块的替代中表现得尤为明显。整体过程不仅限于顺序检索和生成;它包括迭代和自适应检索等方法如图是Modular RAG的框架。1Naive RAG基础 RAG核心流程Indexing文档分块→向量化→存入向量库→ Retrieval查询向量化→相似性匹配取 Top K→ Generation查询 召回文档→LLM 生成回复是 RAG 的最基础 “检索 - 读取” 框架。优势流程简单、易实现是 RAG 的入门范式。不足检索精度 / 召回率低易取到无关内容、漏关键信息生成易 “幻觉”输出无文档支撑的内容增强环节僵化多源信息整合易冗余、风格不一致。2Advanced RAG增强 RAG核心升级在 Naive RAG 基础上增加Pre-Retrieval检索前优化和Post-Retrieval检索后优化环节针对性解决 Naive RAG 的痛点。Pre-Retrieval优化索引滑动窗口分块、细粒度分割、加元数据 优化查询查询重写 / 扩展 / 路由让查询更精准Post-Retrieval重排序重新筛选召回内容的相关性 上下文压缩精简召回内容避免信息过载。优势通过 “前 后” 优化提升了检索质量、减少了冗余缓解了 Naive RAG 的部分问题。不足流程仍相对固定适配不同任务 / 场景的灵活性有限。3Modular RAG模块化 RAG核心特点将 RAG 拆解为独立模块如 Search、Routing、Memory、Rewrite 等并支持模块的灵活组合 / 替换是更灵活的 “组件化架构”。新模块新增 Search跨数据源搜索、MemoryLLM 记忆引导检索、Routing多数据源路由等模块扩展功能边界新模式支持模块的自定义编排如 Rewrite-Retrieve-Read、Iter-RETGEN 等流程可适配不同任务知识密集型、多轮对话等。优势适配性强能通过模块重组解决特定场景问题扩展性高可整合微调、强化学习等技术或新增模块拓展能力协同性好模块间可动态交互如一个模块的输出增强另一个模块。4.对RAG的评价RAG就像给模型提供一本定制信息检索的教材非常适合特定查询。另一方面FT就像学生随着时间内化知识更适合模仿特定的结构、风格或格式。FT可以通过增强基础模型的知识、调整输出和教授复杂指令来提升模型的性能和效率。但它不擅长整合新知识或快速迭代新用例。RAG和FT并不互斥;它们是互补的结合使用可能带来最佳效果。对于RAG的质量评分评估包括上下文相关性、答案忠实性和答案相关性。这些质量评分从不同角度评估RAG模型在信息检索和生成过程中的效率。上下文相关性评估检索上下文的精确性和具体性确保相关性并最小化与多余内容相关的处理成本。答案忠实性确保生成的答案忠实于检索到的上下文保持一致性并避免矛盾。答案相关性要求生成的答案与提出的问题直接相关有效回应核心问题。5.Llamaindex的cheet sheetLlamaindex针对这篇综述整理了一个cheet sheet。核心观点构建成功的RAG系统无论是基础版还是高级版都围绕两个根本目标展开检索必须找到与用户查询最相关的文档。生成必须能有效利用检索到的文档来生成充分回答。基础RAG构成包含三个核心组件——检索组件、外部知识数据库和生成组件LLM。流程从知识库中检索相关文档将其与用户查询一并提供给LLM以生成最终响应。高级RAG高级RAG旨在应用更复杂的技术来确保上述两个根本目标得以更好地实现。技术可分为三类高级检索技术目标确保检索到最相关的文档。分块优化根据文档内容调整块大小过大或过小都会影响生成质量。可通过参数调优如网格搜索找到最佳分块策略。结构化知识库为知识库引入更复杂的结构如向量索引、知识图谱以支持递归检索用小片段检索但将关联的大片段传递给生成器或混合检索从而更精准地处理复杂查询。其他技术微调嵌入模型、查询转换如HyDE等以提升检索的准确性。高级生成技术目标确保LLM能高效、准确地利用检索到的文档。信息压缩在将文档传递给LLM前过滤掉无关信息噪声防止上下文过长或信息干扰导致响应质量下降。结果重排序针对LLM可能更关注提示开头和结尾的“注意力迷失”现象对检索到的文档进行重新排序将最相关的内容放在最有利于LLM注意的位置。检索与生成协同增强技术目标通过让检索和生成过程更紧密地互动同时提升两者的效果。生成器增强检索让LLM在检索前主动参与根据原始查询生成更精确的“检索指令”或问题从而引导检索组件找到更相关的信息。迭代检索生成器进行多轮“检索-生成-评估”的循环直到生成结果达到满意标准或达到最大循环次数。这对于需要多步推理的复杂问题特别有效。RAG的评估评估对构建可靠的RAG系统至关重要。综述中指出了七个衡量方面如答案相关性、上下文相关性、忠实度等。LlamaIndex提供了相应的评估工具和抽象帮助开发者系统性地评估其RAG系统在很大程度上满足了核心成功要求。6.总结这篇综述及LlamaIndex的实践指南提供了一个清晰的心理模型构建高级RAG系统就是围绕“精准检索”和“有效生成”这两个核心有针对性地选择和实施一系列先进技术包括独立优化任一环节或协同优化两者并通过系统的评估来持续改进。二、RAG工作流程2025年5月一篇关于RAG模型综述检索增强生成架构、增强与稳健性前沿的全面综述是这么介绍RAG的工作流程的用户查询由检索器处理检索器可能会在从外部知识源如数据库、API或文档存储检索文档前进行查询扩展。检索到的文档会按相关性重新排序Top-K 作为事实上下文传递给生成器。生成器综合响应条件是查询和检索内容。可选的后处理步骤如排名、重写或事实核查可以进一步优化输出提升大型语言模型LLM中的事实一致性、实时适应性和整体响应质量。从整体架构来看RAG系统主要由三个模块构成查询编码器Query Encoder负责将输入 x 编码为查询表示 q用于检索相关文档。该模块可以是基于神经网络的编码器也可以是基于规则的模板方法。检索器Retriever根据查询 q 从语料库 中检索出一个排序的文档列表 d₁, d₂, …, dₖ。检索器可分为稀疏型如 BM25现出版 - 概率相关性框架BM25及以后、稠密型如 DPR开放域问答的密集通道检索——ACL选集、混合型或生成型等不同实现方式。生成器Generator依据输入 x 以及检索到的文档 d生成最终的输出 y。该部分通常基于预训练的 Transformer 模型实现例如 T51910.10683、BARTBART自然语言生成、翻译和理解的序列间去噪预训练——ACL选集 等。三、拆解RAG工作流拆解RAG七步工作流从知识准备到智能生成的全流程。我是主要参考在Daily-Dose-of-Data-Science的这篇博客 RAG系统的基础。这张图展示了从“原始知识”到“最终答案”的七个关键步骤。这是典型RAG架构图。1知识分块Chunking——将海量知识拆分为“可检索的小单元”我们使用的外部知识如PDF报告、Word文档、企业数据库内容通常是大段文本直接处理容易导致语义混乱、检索精度低。因此第一步需要进行知识分块即将长文本切割成语义完整的小片段。关键原则是既要保证每个片段能独立表达完整含义又要适应后续嵌入模型的输入长度限制。例如表格应完整保留、不可拆分段落应按主题边界切割避免将“问题”与“解决方案”分离。合理的分块是后续精准检索的基础。给我们新手的提示常见分块策略有5种需根据场景选择。下图展示了不同策略的适用情况1固定大小分块核心思想设定一个固定的、重叠的字符或词元数量如500个字符像“滑动窗口”一样对文档进行机械切割。工作原理选择一个固定的块大小和块间重叠量。从文本开头开始每到达预设大小就切割一次。下一个块的起始点会与前一个块有部分重叠以保持上下文连贯。优缺点优点简单、高效、可预测。缺点可能生硬地切断完整的句子或语义单元导致块内的语义不完整。适用场景对处理速度要求高、文档结构相对简单或作为其他复杂策略的基线方法。2语义分块核心思想根据句子的语义相似性进行动态分块确保每个块在语义上是连贯和独立的。输出可能呈现如下与固定大小的块不同这保持了语言的自然流畅并保留了完整的思想。由于每个块更丰富它提高了检索准确性进而产生更连贯且相关的LLM响应。工作原理将文档分割成最小的语义单元通常是句子。计算相邻句子间的嵌入向量余弦相似度。当相似度突然出现显著下降时表明主题或语义发生了转换便在此处进行分块。优缺点优点能产出语义边界清晰的块极大提升后续检索的相关性。缺点计算成本较高需要依赖嵌入模型且相似度阈值需要调整。适用场景追求最高检索精度的场景如法律文件、学术论文等语义密集的文档。3递归分块核心思想采用“分而治之”的策略利用文本的自然分隔符如换行、句号、分号等递归地进行分割直到块的大小符合预设限制。输出可能呈现如下如上所示首先我们定义两个区块紫色的两段。接下来第一段进一步细分为更小的部分。与固定大小的块不同这种方法还保持了语言的自然流畅并保留了完整的思想。然而在实现和计算复杂度方面存在一些额外的开销。工作原理首先使用较大的分隔符如“\n”将文档分割。如果分割后的块仍然过大则使用下一级分隔符如“.”继续分割。重复此过程直到所有块的大小都满足要求。优缺点优点在保持段落或句子完整性的同时控制大小比固定分块更尊重文本结构。缺点仍可能受限于分隔符在语义边界上不如语义分块精准。适用场景通用性强尤其适合混合了段落、列表、标题等多种格式的文档。4基于文档结构的分块核心思想利用文档本身固有的层级结构如标题、章节、子节作为分块的天然边界。输出可能呈现如下不过这种方法假设文档结构清晰但这可能并不成立。工作原理解析文档的格式信息如PDF的书签、HTML的标签、Markdown的#标题。将每个逻辑部分如一个章节及其下属内容划分为一个独立的块。如果某个部分过大可以结合递归分块进行二次分割。优缺点优点分块逻辑与人类理解文档的方式完全一致结构清晰信息完整。缺点严重依赖文档格式的规范性和可解析性。适用场景具有明确、规范结构的文档如技术手册、产品说明书、学术书籍PDF/Markdown/HTML格式。5基于LLM的分块核心思想将大语言模型作为“智能分块器”指示其根据语义和主题自动划分出连贯的片段。工作原理向LLM提供整个文档和详细的分块指令如“请将以下文档按主要主题分割成若干连贯的段落”。LLM理解文档内容后直接生成语义完整、大小合理的文本块列表。优缺点优点智能化程度最高能产生最符合人类直觉和理解的高质量分块。缺点成本最高消耗大量Token速度最慢且结果可能存在一定的不确定性。适用场景对分块质量要求极高且不计较成本的场景或作为评估其他自动分块方法效果的“黄金标准”。2生成嵌入Embedding——将文字转化为“机器可理解的数字”机器无法直接理解文字语义因此需要将分块后的知识通过预训练嵌入模型如基于Transformer的双编码器转换为高维向量即一串数字。该过程的核心是捕捉语义特征使语义相近的内容如“抗过拟合技术”与“正则化方法”的向量也接近从而让机器识别其关联性。请注意RAG使用的是上下文嵌入模型而非早期的单词嵌入模型如Word2Vec、GloVe。上下文嵌入的优势在于动态适配——同一词汇在不同语境中会生成不同向量。例如“苹果”在“吃苹果”和“苹果手机”中含义不同其向量也会相应区分从而实现更精准的语义表达。3向量存储Vector Storage——构建“知识记忆库”生成的高维向量将与原始知识块及其元数据如文档来源、页码、创建时间一并存入向量数据库。向量数据库不仅负责存储更关键的是支持近似最近邻索引如HNSW索引可实现毫秒级相似性搜索——相当于为海量知识建立了一个“快速检索的记忆库”。给程序员的提示向量数据库是RAG的核心组件选型时需关注吞吐量、检索速度与兼容性如是否支持多模态向量。常见选择包括Pinecone、Milvus、Chroma等我们新手可从轻量易部署的Chroma入手。4用户查询嵌入Query Embedding——将“问题”转化为“检索指令”当用户提出问题时系统会使用与处理知识块相同的嵌入模型将查询也转换为高维向量即查询向量。这使得问题与知识块处于同一语义空间机器可通过计算向量相似度找到最相关的知识。核心原则必须保持语义标准统一。若知识嵌入与查询嵌入使用不同模型向量将无法比对导致检索失效。因此搭建RAG时必须确保两者使用同一模型。5语义检索Semantic Retrieval——从记忆库中“精准查找答案”系统使用查询向量通过近似最近邻算法在向量数据库中快速扫描召回最相关的Top-K个知识块。为提高精度实际应用中常结合关键词匹配如BM25算法兼顾语义相关性与精确术语匹配。例如用户询问“多模态支持”即使知识块中未直接出现该词但若包含“OCR提取图片文字”“PDF表格识别”等内容语义检索仍能精准定位——这正是其相对于传统关键词搜索的优势。6重排序Reranking——为检索结果“排列优先级”初步检索得到的Top-K个知识块可能存在“语义相似但主题偏离”的情况。例如询问“RAGFlow的多模态支持”时结果中可能混入“其他工具的OCR功能”。此时需通过重排序进行校准。重排序使用交叉编码器深度分析查询与每个知识块的交互关系并为每个片段打出精确的相关性分数将最契合的内容置前。这一步能有效过滤噪声为后续生成提供更精准的依据。7增强生成Augmented Generation——融合知识输出最终答案最后大模型接收两个输入用户原始问题 重排序后的优质知识块。通过注意力机制融合信息生成连贯、结构化的回答。例如结合“OCR提取图像文本”“表格转Markdown”等知识输出完整答复“RAGFlow的多模态支持主要体现在两方面一是通过OCR技术提取图片中的文字信息二是将PDF/图片中的表格转为Markdown格式以保留结构最终实现文本、图像、表格等多模态内容的统一语义处理。”生成的最终响应。如何学习AI大模型如果你对AI大模型入门感兴趣那么你需要的话可以点击这里大模型重磅福利入门进阶全套104G学习资源包免费分享这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】这是一份大模型从零基础到进阶的学习路线大纲全览小伙伴们记得点个收藏第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。100套AI大模型商业化落地方案大模型全套视频教程200本大模型PDF书籍学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。LLM面试题合集大模型产品经理资源合集大模型项目实战合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】