2026/4/4 18:09:15
网站建设
项目流程
建设部网站园林绿化资质标准,长沙做网站开发价格多少,惠东招聘网,网站安全 维护本文系统详解了大模型RAG技术#xff0c;从基本概念到实践应用#xff0c;全面覆盖RAG的核心流程、分块策略、检索优化、提示工程及效果评估。通过解决大模型的领域知识缺乏、幻觉问题等局限#xff0c;RAG实现了知识的实时更新与安全可控。文章提供多种分块策略和检索优化方…本文系统详解了大模型RAG技术从基本概念到实践应用全面覆盖RAG的核心流程、分块策略、检索优化、提示工程及效果评估。通过解决大模型的领域知识缺乏、幻觉问题等局限RAG实现了知识的实时更新与安全可控。文章提供多种分块策略和检索优化方法助力开发者构建高效可靠的RAG系统是学习大模型应用开发的实用指南。年初给自己定了个小目标系统学一遍大模型应用开发相关的东西重点放在 MCP、RAG 和 Agent 上。这篇文章就是我在学习 RAG 过程中的一些整理和思考也当作发出来和大家一起交流。一、为什么需要 RAG先抛个问题大模型这么强了为什么还需要 RAG 这种绕一圈的方案直接丢给 LLM 不行吗LLM 的局限性简单来说LLM 像一个见多识广但记不住你公司具体业务的同事主要有几类限制领域知识缺乏训练数据来源很广但在医疗、法律、金融、细分 SaaS 等垂直领域往往覆盖不够细回答容易停留在泛泛而谈。幻觉问题也就是那种一本正经地胡说八道。在写 demo、写一点小脚本时问题不大但一旦落到风控、合规这种场景就很危险了。信息过时模型的知识停在训练数据的时间点。 可以理解为它的世界观是某个时间点的快照之后发生的政策调整、价格变化、技术方案更新它天然不知道。数据安全企业内部文档、私有数据库、业务系统里的数据没法直接拿去训练公有模型。所以大模型本身更像一个强推理强语言表达的组件不是一个永远最新、永远正确的知识库。RAG 的价值那 RAG 到底解决了什么RAG简单理解为“先从你的知识库里翻资料再让 LLM 基于这些资料来回答问题。它带来的几个直接收益弥补知识短板可以把企业文档、专业手册、产品知识库等统一接到 LLM 前面变成它可以实时查询的外挂知识。减少幻觉模型不再完全凭印象和猜测作答而是有检索到的文档做支持幻觉比例会明显降低。支持最新信息知识库可以随时更新增量入库、定期同步等不用每次都重训模型。降低成本不用把所有内容硬塞进 Prompt而是只检索 Top-K 相关片段送给模型Token 花在刀刃上。数据安全更可控数据留在自己的向量库或内部存储里模型只看到必要上下文减少数据裸奔的风险。RAG vs 微调怎么选经常有人问我要做知识库问答是用 RAG 还是直接微调可以用一张简单对比表来理解维度RAG微调Fine-tuning知识更新灵活随改随用需要重新训练、部署成本检索调用成本整体可控训练、存储、推理成本都偏高适用场景知识库问答、文档助手、实时信息查询领域推理、特定任务格式、行为习惯调优数据量要求没有特别刚性要求需要大量高质量样本简单来说如果你要做的是基于文档回答问题优先考虑 RAG如果你要增强的是模型的行为模式或推理风格比如工具调用习惯、特定结构输出更适合微调很多复杂场景其实是RAG 微调一起上 RAG 负责找到对的资料微调负责更聪明地读更稳定地输出。二、RAG 的核心概念嵌入式模型问题为什么做 RAG 一定会提到 Embedding 模型可以理解为“嵌入模型就是一个把文本映射到语义空间坐标的工具。简单来说它接收一段文本甚至图片、代码输出一串数字向量向量之间的距离 语义的相似程度选择什么样的嵌入模型会非常直接地影响召回是否精准是否能理解你的专业名词多语言场景效果好不好所以在 RAG 系统里Embedding 模型几乎和大模型本身同等重要。向量问题向量到底是什么简单来说“向量就把一句话变成了一串数字这串数字是它在语义空间里的坐标。关键点语义接近 ⇒ 向量距离更近 比如苹果手机 和 iPhone 的向量会很近苹果手机 和 水果苹果 的向量会有距离技术实现上可能是几百维、上千维但对我们做应用开发来说把它当成语义坐标就够了。向量数据库问题我有了向量为什么还需要一个专门的向量数据库普通数据库不行吗可以理解为“向量数据库就是一个可以在语义空间里做最近邻搜索的数据库。如果不使用向量库我们可能会这么做把所有文档内容塞进 Prompt或者自己穷举字符串匹配、关键词搜索问题是大模型有上下文长度限制内容一多就溢出Prompt 里塞太多无关信息幻觉反而更严重Token 成本也顶不住向量数据库一般会做几件事长文档分块Chunking每块生成向量保存向量 原文 元数据来源、时间等用户提问时把问题向量化在向量空间里找 Top-K 最靠近的块返回这样我们就只需要把这几个相关 chunk 放进 Prompt大大节省成本同时保证回答更有根有据。三、RAG 标准流程可以先把整个流程看成一条流水线ounter(line 用户提问 → 查询向量化 → 向量搜索 → 检索 Top-K 文档 → 构造 Prompt → LLM 生成 → 返回答案一般会分成三个阶段索引 → 检索 → 生成索引阶段先把资料变成可检索的形态索引阶段主要做三件事文档解析支持多种格式PDF、Word、Markdown、HTML、代码仓库等目标是提取干净文本为后续分块做准备分块分块其实是一个非常关键的决策点块太大向量语义太混检索容易不精确块太小语义被切碎模型拿到的上下文支离破碎后面有一整节会专门展开讲分块策略。向量嵌入每个文本块用同一个嵌入模型生成向量一起写入向量数据库 一般还会附带一些元数据文档名、时间、来源类型等检索阶段检索阶段串起来其实就是一句话“把用户的问题变成向量 → 去向量库里找最近的一些块。具体步骤查询向量化 用和入库时相同的嵌入模型把用户问题转成向量相似度匹配Top-K 检索 常见做法是用余弦相似度、点积等在向量库里找最相近的 K 个文本块这一步的目标是保证拿到的是对的资料而不仅仅是拿到了资料。生成阶段这一步就是大家最熟悉的 LLM 工作流程但有两个细节很重要Prompt 构造一个比较常见、也比较稳妥的写法ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line System: 你是一个知识库助手请根据以下参考资料回答用户问题。 如果参考资料中没有提到相关信息请直接说明在当前知识库中未找到相关信息不要根据常识或想象编造答案。 参考资料 {检索到的文档块1} {检索到的文档块2} ... User: {用户原始问题}LLM 生成回答模型会基于用户的原始问题检索到的上下文综合生成答案。 这一层的效果除了和模型本身能力有关跟 Prompt 设计也强相关后面有专门一节聊提示词在 RAG 里的用法。四、分块策略很多 RAG 项目效果不好其实卡在第一步——分块没处理好。“推荐一个可视化分块的小工具https://chunkviz.up.railway.app/可以拖自己的文档进去直观感受不同策略的效果。固定大小分块问题如果我什么都不调直接按字数/Token 切可以吗可以理解为“用一把统一长度的尺按 500/1000 字这样往下切。优势劣势实现简单很容易上手完全不考虑语义边界可能把句子切断分块大小可预期方便控制 Token某些块信息密度很低显得浪费适合格式高度统一的数据集对语义相关性没有优化适用场景 快速原型、做 baseline、新闻/博客等相对结构简单的内容。“简单来说先跑起来的方案不是最优但容易做对。重叠分块问题如何降低刚好切在关键句中间的风险可以理解为“每个块都跟上一个块有一部分重叠类似滑动窗口。优势劣势关键语义同时出现在相邻两个块里降低断句带来的信息丢失存储量和检索计算成本会略微上升上下文连贯性更好特别适合长段解释性文字实现稍复杂需要调窗口和重叠大小适用场景 合同、法律条文、技术手册、论文等对上下文一致性要求高的内容。“可以理解为宁可多存一点也不要截断关键信息。递归分块问题有没有办法既考虑语义结构又能控制块大小可以理解为“先按大结构切再在每一块里按更小的结构继续切直到满足长度限制。典型做法先按段落\n\n拆再按单行\n、句号、逗号等进一步拆每一层都控制最大长度优势劣势能很好地保留原文结构比如章节 → 段落 → 句子实现上需要配置较多参数分隔符顺序、最大长度等通常比纯固定长度更贴近语义结构对格式较混乱的文档效果依赖分隔符质量适用场景 长报告、研究文档、协议类文本等。“简单来说先粗后细逐层拆解是很多框架如 LangChain的推荐默认策略。文档特定分块问题代码、Markdown、LaTeX 这种强结构化内容怎么切可以理解为“利用文档本身的结构信息当作分隔符。比如Markdown按标题层级、列表项拆Python按函数、类、模块级定义切LaTeX按章节、公式、环境切优势劣势非常贴合原始结构语义单元通常很完整针对性强跨格式复用性差对代码、API 文档这种结构化内容效果很好需要为不同文档类型写不同逻辑适用场景 代码仓库、README、API 文档、技术博客等。“可以理解为格式即边界尤其适合代码类场景。语义分块问题能不能智能地按语义边界分块可以理解为“借助 NLP 工具按语义连贯的段落/句子来切而不是简单看字数。常用工具spaCyNLTK以及一些专门做 semantic splitting 的库优势劣势每个块内部语义通常很完整检索相关性很高需要额外计算预处理成本更高对精度要求高的问答系统效果明显实现复杂度高一些适用场景 高要求问答系统、需要尽量减少检索出来却用不上的冗余块。“简单来说语义优先成本其次的高质量玩法。混合分块问题能不能既要效率又要精度可以理解为“把几种策略按层次/阶段组合起来用。例如首轮固定长度分块快速建立一个基础向量库关键业务文档再额外做语义分块/文档特定分块检索时针对特定类型文档选不同索引优势劣势可以在不同类型数据上用最合适的策略整体设计和维护成本更高更适合真实复杂业务场景需要监控和调参避免策略打架适用场景 数据格式多、业务复杂、同时考虑上线速度和效果的项目。“可以理解为工程化的现实解取长补短。如何选分块策略可以先按场景做一个粗分场景推荐策略快速 PoC / Demo固定大小分块知识库结构较清晰的长文档递归分块 少量重叠代码/Markdown 等结构化内容文档特定分块高精度问答、对召回质量非常敏感语义分块或混合分块数据类型杂、迭代期长混合分块一般的实践建议“从递归分块起步然后根据业务效果再逐步精细化。五、检索策略与优化向量检索类型稠密向量语义搜索可以理解为“用嵌入模型把文本变成连续向量再用向量相似度找意思像的内容。优势劣势能捕捉相同含义的不同表述比如 AI 编程 vs 人工智能程序设计对特别依赖关键词、型号、专业缩写的场景表达不一定稳对模糊查询、自然语言问题表现好调 embedding 模型、调参数需要一些经验稀疏向量关键词/BM25可以理解为“经典搜索引擎如 Elasticsearch的那套根据词频、逆文档频率打分。优势劣势对精确关键词、产品型号、ID、术语特别友好对自然语言提问、说人话的问题支持有限实现成熟性能和可观察性都很好无法自动理解同义词、近义词混合搜索当前主流推荐实践中最稳妥的方案往往是稠密 稀疏各自跑一遍检索把结果合并用重排序或打分融合做一个最终排序这样可以同时利用稠密向量的语义能力稀疏向量的关键词精确匹配能力六、RAG 调优实践我自己在优化 RAG 时会把调优拆成三段预处理 → 检索 → 后处理。预处理优化数据清洗简单来说就是在入库前洗个澡去掉噪声如多余页眉页脚、水印统一格式标点、空行、编码标准化一些特殊符号这样做的直接好处向量更干净语义更集中避免把很多垃圾内容当成知识塞进模型分块策略调优前面已经展开讲过这里只补一句“分块策略本身就是一个极其重要的调参维度。可以通过调 chunk 大小调重叠比例针对不同文档类型用不同策略来慢慢找一个适合自己业务的平衡点。检索优化元数据过滤问题只靠向量相似度够吗很多时候不够比如同一个问题不同年份政策答案不一样你只想看某个系统/某个部门/某个国家的文档这时候元数据就派上用场了比如文档来源时间分类标签作者/团队常见两种用法策略说明特点预过滤先用元数据筛出一个候选子集再做向量检索检索速度快但有可能把本来相关的文档提前排除后过滤先做向量检索再在 Top-K 上用元数据筛选召回更完整但整体延迟可能更高可以根据业务选择很多系统是两种会结合使用。查询转换问题用户问法和文档写法往往不一样怎么办这就是让 LLM 帮忙翻译问题的场景。HyDE (Hypothetical Document Embeddings)可以理解为“让模型先脑补一段可能的回答再用这段回答去做向量检索。或者像文中那种做法 为每个文档块预先生成这个文档可以回答哪些问题入库时把这些问题也嵌入。查询时做问题-问题的匹配通常效果更好。多查询检索 (Multi-Query Expansion, MQE)“让模型根据用户原始问题生成多个不同表述的查询一起去检索。这样可以覆盖更多语义区域减少刚好没碰上的情况。查询扩展“把核心关键词的同义词、相关专业术语、上下位概念都挖出来用来扩展检索范围。这些玩法本质上都是在解决同一个问题用户怎么问 ≠ 文档怎么写。自查询 (Self-Query)有些关键信息其实在用户问题里已经隐含了例如2023 年之后的政策关于 FBA 发货的要求跨境电商里 TikTok 的相关内容可以让 LLM 帮你从自然语言问题中提取这些结构化信息拿去做元数据过滤。 这样检索会更聚焦而不是完全靠向量去盲撞。后处理优化提示压缩问题检索出来的块太多Prompt 放不下怎么办可以理解为“先用模型或者规则在检索结果内部做一次内容筛选/摘要只保留和问题最相关的部分。好处降低 Token 消耗减少无关内容对回答的干扰提高回答的聚焦度重排序向量检索其实更像是粗排速度优先不保证 Top-1 一定是最佳答案重排序模型则是精排逐条精细判断这段内容和这个问题到底有多相关常见选择模型描述适用场景Cohere Rerank商业 API开箱即用效果不错商业项目追求上线速度BGE-Reranker开源支持中英双语中文场景、私有部署Cross-Encoder基于 BERT每次对问题文档一起编码精度优先、小规模检索ColBERT在效率和精度之间做平衡大规模检索场景另外一种做法是“直接用大模型来给每个文档打相关性分。优势劣势不用额外部署重排序模型Token 成本和延迟都比较高可以灵活定义相关性的标准结果会受 Prompt 和模型状态影响波动略大实践上我会建议小规模系统 / 内部工具可以先试 LLM 重排序真正上生产考虑用专业的 reranker 模型效果更稳、成本可控七、提示工程在 RAG 中的作用在 RAG 里Prompt 不是最后随便写一段而是系统效果的核心组成部分之一。这里用一个具体场景跨境电商问答助手来串几个常用技巧。提示的四个基础元素可以理解为每个提示至少要说清四件事要素说明示例跨境电商指令Instruction你要干什么你是一个亚马逊运营顾问上下文Context你能参考的资料以下是从知识库中检索到的平台政策片段输入数据Input用户的问题是什么FBA 发货有什么要求输出指示符Output Indicator你要以什么形式输出用 Markdown 列清单分点回答一些实用的小套路这里就快速过一下更多细节可以根据你自己的业务调整。具体指令告诉模型重点说啥、不说啥Few-shot 示例用 1-2 个例子教它你期望的回答风格默认兜底策略 明确写上如果知识库查不到请直接说查不到不要瞎猜角色设定 比如你是跨境运营顾问只对亚马逊平台负责不回答其他平台的问题等多语言支持 指定用用户提问的语言回复专业术语中英双标结构化输出 要求它用固定的标题/列表结构输出方便前端渲染或后续处理另外一个很重要的点“提示词本身要做版本管理。可以简单做一张表记录版本日期修改内容大致效果v1.02024-01-01初始版本用作 baselinev1.12024-01-15增加角色设定、禁止编造回答更稳定、幻觉减少v1.22024-02-01补充多语言和结构化输出对接前端更方便八、RAG 效果评估我们如何知道当前这套 RAG 配置是不是靠谱的三个核心指标可以简单记成三个字母CR / AR / FCR (Context Relevancy) 检索相关性检索出来的内容和用户问题到底有多相关AR (Answer Relevancy) 答案相关性模型给的答案是否真正解决了用户的提问F (Faithfulness) 可信度回答内容是否忠于检索到的文档有没有自己编故事RAG 最大的卖点其实就是 F“我不是纯靠猜我是有文档支撑的。几种实战评估方法人工标注测试集这一步虽然传统又费时间但非常有价值收集一批真实用户问题比如 50 100 条为每条问题标注标准答案对应的关键文档片段跑你的 RAG 系统看是否检索到了这些关键片段是否能生成接近标准答案的内容你能从中看到很多问题某些问题总是检索不准某些文档总是被忽略某些回答总是遗漏关键点A/B 测试当你有多个版本比如不同分块策略、不同 Top-K 设置时用同一批问题分别跑 A/B 两套配置对比 CR/AR/F、人工侧感受、用户反馈再决定上线哪个版本用大模型做评审可以让另一个模型来帮你打分比如判定回答是否切题回答有没有违背文档内容是否存在明显的编造这能在一定程度上节省人工评估的成本。不过要注意评审模型本身也会有偏差建议和人工评估结合使用用户反馈闭环最后也是最重要的一条用户用着爽不爽。常见做法在前端加有用/没用按钮记录追问比如为什么这么回答、你是不是搞错了针对 bad case 做集中分析反向优化分块/检索/Prompt可以重点关注用户满意度追问率需要人工介入的频率常见问题 优化方向检索结果不相关方向调分块、换 embedding、增加元数据过滤检索对了答案却答偏了方向优化 Prompt强调只根据文档回答、增加 few-shot答案只对一半方向调高 Top-K、做重排序、优化块粒度出现明显幻觉方向加上查不到就说查不到的兜底、检测相关性不足时拒答术语处理差方向术语表查询扩展、考虑领域专用 Embedding响应很慢方向使用更轻量的模型、优化索引结构、减少不必要的 LLM 调用长文档效果差方向层次化索引摘要详细块、父子块策略多语言不稳定方向多语言 Embedding、按语言划分索引、必要时做翻译中转小结 一点个人感受如果用一句话总结 RAG“RAG 是让大模型带着你的知识库一起工作的一套工程方案。它并不是某个具体框架、某种固定算法而更像一整条链路上的一堆工程决策文档怎么清洗和分块嵌入模型怎么选检索怎么做单向量/多向量/混合Prompt 怎么写效果怎么评估和迭代我现在对 RAG 的理解也还在不断修正很多地方也是边做边学、边踩坑边回头复盘。这篇更多是一个阶段性的整理。如何学习AI大模型 “最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】CSDN粉丝独家福利这份完整版的 AI 大模型学习资料已经上传CSDN朋友们如果需要可以扫描下方二维码点击下方CSDN官方认证链接免费领取【保证100%免费】读者福利CSDN大礼包《最新AI大模型学习资源包》免费分享 安全链接放心点击对于0基础小白入门如果你是零基础小白想快速入门大模型是可以考虑的。一方面是学习时间相对较短学习内容更全面更集中。二方面是可以根据这些资料规划好学习计划和方向。1.大模型入门学习思维导图要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。对于从来没有接触过AI大模型的同学我们帮你准备了详细的学习成长路线图学习规划。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。全套教程文末领取哈2.AGI大模型配套视频很多朋友都不喜欢晦涩的文字我也为大家准备了视频教程每个章节都是当前板块的精华浓缩。3.大模型实际应用报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。全套教程文末领取哈4.大模型实战项目项目源码光学理论是没用的要学会跟着一起做要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战项目来学习。全套教程文末领取哈5.大模型经典学习电子书随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。全套教程文末领取哈6.大模型面试题答案截至目前大模型已经超过200个在大模型纵横的时代不仅大模型技术越来越卷就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道我总结了大模型常考的面试题。全套教程文末领取哈为什么分享这些资料?只要你是真心想学AI大模型我这份资料就可以无偿分享给你学习我国在这方面的相关人才比较紧缺大模型行业确实也需要更多的有志之士加入进来我也真心希望帮助大家学好这门技术如果日后有什么学习上的问题欢迎找我交流有技术上面的问题我是很愿意去帮助大家的这些资料真的有用吗?这份资料由我和鲁为民博士共同整理鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。CSDN粉丝独家福利这份完整版的 AI 大模型学习资料已经上传CSDN朋友们如果需要可以扫描下方二维码点击下方CSDN官方认证链接免费领取【保证100%免费】读者福利CSDN大礼包《最新AI大模型学习资源包》免费分享 安全链接放心点击