ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RAG 检索增强生成:从原理到工程落地的完整方案

RAG 检索增强生成:从原理到工程落地的完整方案 这里写自定义目录标题欢迎使用Markdown编辑器一、为什么大模型需要外挂知识二、RAG 的标准架构拆解三、进阶模式从朴素 RAG 到模块化 RAG四、工程落地的关键决策五、一个完整案例企业知识库问答系统六、RAG 的边界与未来新的改变功能快捷键合理的创建标题有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能丰富你的文章UML图表流程图FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好 这是你第一次使用# RAG 检索增强生成从原理到工程落地的完整方案一、为什么大模型需要外挂知识大型语言模型的能力建立在训练数据之上它的知识以参数的形式固化在神经网络里。这种参数化知识有四个天然局限第一存在知识截止日期模型无法知道训练之后发生的事情第二缺乏领域深度对于企业内部的具体业务、产品细节和专有术语模型知之甚少第三无法更新要让模型记住新知识只能重新训练或微调成本高昂第四容易产生幻觉当模型对某个主题缺乏足够的知识时它会倾向于编造看似合理的答案。面对这些局限传统的解法是微调。但微调在向模型注入大量新知识的场景下效果有限它更适合调整语气风格、学习特定输出格式而不是扩充事实知识库。更重要的是微调需要高质量的训练数据、可观的计算预算和漫长的训练周期绝大多数企业都无法持续投入。检索增强生成Retrieval Augmented GenerationRAG提供了第三条路。它的核心思想朴素而有效与其让模型记住所有知识不如在生成答案之前先从外部知识库中检索与问题相关的文档片段把检索结果作为上下文一起交给模型。模型不再依赖内部记忆回答而是看着资料回答问题。这种做法把知识从模型的参数中解放出来放进了随时可以更新、可以追溯、可以控制权限的外部数据库中。RAG 之所以成为企业落地大模型应用的主流方案正是因为它同时解决了知识时效性、领域适配性和幻觉问题。当用户询问我们公司最新的报销流程是什么系统先检索出最新的制度文档再让模型基于文档内容组织回答答案既准确又可溯源。二、RAG 的标准架构拆解一个标准的 RAG 系统由两个阶段、五个环节构成离线索引阶段负责知识的准备在线查询阶段负责答案的生成。文档加载与清洗。一切从原始文档开始。企业里的知识散落在 Word、PDF、PPT、Excel、网页和数据库里需要统一的加载器把它们读入系统。这一环节最容易被低估的其实是清洗去除页眉页脚、表格噪声、扫描件的 OCR 错误把混乱的原始材料变成干净的纯文本。数据质量决定了整个 RAG 系统的上限垃圾进垃圾出。文本分割Chunking。长文档必须切成合适大小的片段才能做向量化。切分策略直接影响检索质量切得太碎语义被切断单个片段信息不完整切得太大向量被稀释检索精度下降。经验法则是以语义完整为切分原则——优先按标题层级、段落、句子边界切分而不是机械地按固定字符数切。主流做法是采用递归字符分割 重叠窗口在保持语义完整的同时让跨边界的答案至少在一个片段中存活。向量化与索引。每个片段通过 Embedding 模型转化为高维向量写入向量数据库。向量化的核心是选择合适的嵌入模型通用场景用开源双语模型即可垂直领域医疗、法律、金融建议使用领域微调的嵌入模型检索精度会有质的提升。向量数据库的选型同样关键既要考虑检索性能也要考虑与现有技术栈的集成成本。检索与重排。用户提问时系统把问题向量化后与库中所有向量做相似度计算召回 Top-K 个最相关的片段。但单纯依赖向量相似度有一个众所周知的弱点对词汇的换皮敏感同一意思换一种问法检索结果可能天差地别。因此成熟系统普遍采用混合检索策略——向量检索 关键词检索BM25双路召回再用重排模型Reranker对候选结果做精排。重排模型虽然计算量大但它能理解语义相关性是提升检索精度的关键一环。答案生成。最后把检索到的相关片段与用户问题组装成提示词交给生成模型组织答案。这个环节的设计要点包括在提示词中明确只基于提供的材料回答不要编造、为每个答案标注来源引用、控制注入片段的长度和数量。三、进阶模式从朴素 RAG 到模块化 RAG朴素 RAG——切块、向量化、相似度检索、拼进提示词——能解决 70% 的简单问答场景但面对真实业务数据时往往力不从心。业界在实践中发展出了更精细的模块化 RAG 架构每个环节都可以按需优化。查询改写与扩展。用户的原始提问往往不适合直接检索问题含混、指代不清、缺少上下文。查询改写模块先用模型把问题转化为更利于检索的形式——补全指代、拆解复合问题、生成多个查询变体。多查询检索Multi-Query的思想是一个问法不够就问五个把五个变体的结果合并去重后统一重排显著提升召回率。混合召回与融合。向量检索擅长语义匹配关键词检索擅长精确匹配两者各有所长。HyDE 技术更进一步先让模型假装回答一遍问题把生成的假设答案作为检索查询因为假设答案与文档的语义距离往往比原始问题更近。这些召回策略可以组合使用最后通过 RRF倒数排名融合等算法合并结果。重排与过滤。召回的候选片段里有相当一部分是看起来相关但实际没用的干扰项。重排环节用更精细的模型对候选重新打分把真正有用的片段排到前面。配合元数据过滤按时间、来源、部门过滤和置信度阈值能有效拦截噪声。上下文组装。检索结果如何放进提示词也有讲究片段要有引用编号、要按相关度排序、要控制总量防止上下文淹没——即相关片段被大量无关信息稀释反而降低了模型的注意力质量。四、工程落地的关键决策从架构到落地有几个决策直接决定项目的成败。评估体系先行。这是最容易犯的错误——先把系统搭起来再凭感觉调优。正确的做法是在动手之前就构建一套评估集收集一批典型的真实业务问题标注标准答案定义评估指标召回率、命中率、答案质量评分。有了这套黄金测试集每次改动——换嵌入模型、调切块大小、加重排器——都能用数据说话而不是靠感觉。切块参数要实验。切块大小没有普适的最优值它与文档类型、问题形态强相关。正确的方法是对一组候选参数如 300/500/800 字符做对比实验用黄金测试集量化检索质量选择在真实数据上表现最好的配置。向量库选型要务实。数据量在百万级以下开源的 Chroma、Milvus、Qdrant 都足够胜任数据量庞大且需要分布式扩展时要考虑云厂商的托管向量数据库。选型的核心指标是检索延迟、扩展能力和运维成本而不是谁的技术名词更酷。知识更新要自动化。RAG 最大的优势是知识可更新但如果更新流程全靠人工优势就打了折扣。成熟的系统会把知识库的增量更新与文档管理流程打通新文档入库自动触发切块、向量化、索引文档变更自动同步更新形成文档即知识的闭环。权限与合规不可忽视。企业知识库往往包含不同密级的内容RAG 系统必须支持基于用户角色的权限过滤——普通员工检索不到机密文档。同时要建立完整的访问审计日志记录谁在什么时间检索了什么内容满足合规要求。五、一个完整案例企业知识库问答系统把上述架构串起来看一个典型的企业知识库问答系统的落地过程。假设某制造企业要为售后团队构建一个设备故障排查助手知识源是数百份设备手册、历史工单和技术公告。系统设计的第一步是评估体系先行收集五十条真实的售后问题作为黄金测试集标注期望引用的手册章节。第二步是数据工程用文档解析器把所有手册转成干净的纯文本按章节标题层级 句子边界切块每块控制在 400 到 600 字符并带 80 字符重叠为每块打上来源、版本、适用机型等元数据标签。第三步是索引构建用领域适配的嵌入模型向量化写入向量库的同时建立关键词倒排索引为后续混合检索做准备。查询链路的处理顺序是用户问题先经过查询改写模块补全机型型号等指代信息随后向量检索与 BM25 关键词检索并行召回各取 Top-30合并后先按机型元数据过滤用户报修的机型只保留对应手册的片段再用重排模型精排取 Top-5最后把带引用编号的片段注入提示词要求模型只基于提供的材料回答每个结论标注引用编号。上线后这套系统的答案溯源率达到九成以上远超直接用模型回答的基线。这个案例的三个要点值得记住评估集先行让每一步优化都有据可依元数据过滤把检索范围缩小到相关子集精度提升立竿见影引用标注让工程师能一键跳回原文核对信任度是 RAG 系统在企业场景落地的隐性前提。六、RAG 的边界与未来任何技术都有边界。RAG 擅长的是知识密集型的问答和内容生成但当问题需要复杂推理、需要跨多个文档综合判断、或者需要与业务系统交互时单纯靠检索 生成就不够了。这也是为什么业界开始把 RAG 与 Agent 结合起来Agent 负责规划任务、调用工具、多轮检索RAG 负责提供知识底座两者各司其职。另一个趋势是 RAG 与微调的融合。当某个领域的问题模式高度固定时先用 RAG 解决知识注入再用少量数据微调模型适配特定的回答风格和输出格式两者互补而非互斥。还有 GraphRAG 等新方向用知识图谱补充向量检索难以捕捉的关系推理能力。无论架构如何演进RAG 的核心思想不会过时模型负责表达知识库负责事实。把事实从参数中解放出来用可检索、可更新、可追溯的方式管理知识这是大模型落地企业场景最务实的路径也是每一个 AI 应用架构师都应该掌握的看家本领。Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持除了标准的Markdown编辑器功能我们增加了如下几点新功能帮助你用它写博客全新的界面设计将会带来全新的写作体验在创作中心设置你喜爱的代码高亮样式Markdown将代码片显示选择的高亮样式进行展示增加了图片拖拽功能你可以将本地的图片直接拖拽到编辑区域直接展示全新的KaTeX数学公式语法增加了支持甘特图的mermaid语法1功能增加了多屏幕编辑Markdown文章功能增加了焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置等功能功能按钮位于编辑区域与预览区域中间增加了检查列表功能。功能快捷键撤销Ctrl/CommandZ重做Ctrl/CommandY加粗Ctrl/CommandB斜体Ctrl/CommandI标题Ctrl/CommandShiftH无序列表Ctrl/CommandShiftU有序列表Ctrl/CommandShiftO检查列表Ctrl/CommandShiftC插入代码Ctrl/CommandShiftK插入链接Ctrl/CommandShiftL插入图片Ctrl/CommandShiftG查找Ctrl/CommandF替换Ctrl/CommandG合理的创建标题有助于目录的生成直接输入1次#并按下space后将生成1级标题。输入2次#并按下space后将生成2级标题。以此类推我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。如何改变文本的样式强调文本强调文本加粗文本加粗文本标记文本删除文本引用文本H2O is是液体。210运算结果是 1024.插入链接与图片链接: link.图片:带尺寸的图片:居中的图片:居中并且带尺寸的图片:当然我们为了让用户更加便捷我们增加了图片拖拽功能。如何插入一段漂亮的代码片去博客设置页面选择一款你喜欢的代码片高亮样式下面展示同样高亮的代码片.// An highlighted blockvarfoobar;生成一个适合你的列表项目项目项目项目1项目2项目3计划任务完成任务创建一个表格一个简单的表格是这么创建的项目Value电脑$1600手机$12导管$1设定内容居中、居左、居右使用:---------:居中使用:----------居左使用----------:居右第一列第二列第三列第一列文本居中第二列文本居右第三列文本居左SmartyPantsSmartyPants 是一个文本转换工具主要功能是将普通的 ASCII 标点符号自动转换为更美观的印刷体标点符号。例如原始符号转换后说明引号“引号”直引号变弯引号单引号‘单引号’直单引号变弯单引号--–两个连字符变短破折号---—三个连字符变长破折号...…三个点变省略号创建一个自定义列表MarkdownText-to-HTMLconversion toolAuthorsJohnLuke如何创建一个注脚一个具有注脚的文本。2注释也是必不可少的Markdown将文本转换为HTML。KaTeX数学公式您可以使用渲染LaTeX数学表达式 KaTeX:Gamma公式展示Γ ( n ) ( n − 1 ) ! ∀ n ∈ N \Gamma(n) (n-1)!\quad\forall n\in\mathbb NΓ(n)(n−1)!∀n∈N是通过欧拉积分Γ ( z ) ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) \int_0^\infty t^{z-1}e^{-t}dt\,.Γ(z)∫0∞​tz−1e−tdt.你可以找到更多关于的信息LaTeX数学表达式here.新的甘特图功能丰富你的文章2014-01-072014-01-092014-01-112014-01-132014-01-152014-01-172014-01-192014-01-21已完成进行中计划一计划二现有任务Adding GANTT diagram functionality to mermaid关于甘特图语法参考 这儿,UML图表可以使用UML图表进行渲染例如下面产生的一个序列图王五李四张三王五李四张三李四想了很长时间, 文字太长了不适合放在一行.你好李四, 最近怎么样?你最近怎么样王五我很好谢谢!我很好谢谢!打量着王五...很好... 王五, 你怎么样?关于UML图表语法参考 这儿,流程图链接长方形圆圆角长方形菱形关于Mermaid语法参考 这儿,FLowchart流程图我们依旧会支持flowchart.js的流程图语法Created with Raphaël 2.3.0开始我的操作确认结束yesno关于Flowchart流程图语法参考 这儿.导出与导入导出如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到文章导出生成一个.md文件或者.html文件进行本地保存。导入如果你想加载一篇你写过的.md文件在上方工具栏可以选择导入功能进行对应扩展名的文件导入继续你的创作。mermaid语法说明 ↩︎注脚的解释 ↩︎
返回列表