RAG是什么?为什么检索增强生成是大模型落地的首选方案
RAG是什么为什么它是大模型落地的首选方案工具篇讲完了从这一篇开始我们进入RAG篇。RAG是Retrieval-Augmented Generation的缩写中文叫检索增强生成。名字听起来有点学术做的事情其实很朴素。就是让大模型在回答问题之前先去知识库搜相关资料再根据搜到的内容生成答案。为什么要费这个劲。因为大模型有两个老大难问题知识截止和幻觉。RAG就是冲着解决这两个问题来的。这一篇我们从零讲起。RAG到底是什么它解决了什么问题基本原理是什么为什么说它是大模型落地最成熟的方案。大模型的两个痛点先说背景。大模型很厉害但它不是万能的。用在实际业务里有两个问题绕不开。第一个问题知识有截止日期。大模型的知识来自训练数据训练数据是有截止日期的。比如GPT-4的训练数据截止到2024年中那之后发生的事它就不知道了。你问它2025年的新产品、新政策、新数据它要么说不知道要么瞎编。企业内部的知识它更不知道。公司的产品文档、内部规章、历史案例这些东西不可能出现在公开训练数据里。第二个问题幻觉。大模型有时候会一本正经地胡说八道。它说的话听起来很有道理事实却是错的。引用不存在的论文编造不存在的API参数给出错误的数字。普通用户很难分辨真假。做聊天应用幻觉是个体验问题。做企业应用幻觉就是个事故问题。客服给用户说错了产品参数法律助手给了错误的建议知识库问答引用了不存在的规定这些都是要出大事的。怎么解决这两个问题。有两条路。一条路是微调。把领域知识喂给模型继续训练让模型学会这些知识。这条路效果有但成本高、周期长、更新慢。知识变了还得重新微调跟不上业务变化的速度。另一条路就是RAG。不教模型新知识而是把知识存在外部的知识库里。回答问题的时候先去库里搜相关内容再基于搜到的内容回答。模型不用改知识随时可以更新。两条路各有适用场景。大部分企业级应用RAG是更务实的选择。RAG的基本原理RAG的流程说起来很简单就三步。第一步用户提问。第二步去知识库检索跟问题相关的内容。第三步把搜到的内容和问题一起发给大模型让它根据搜到的内容生成答案。就这么三步。为什么这样就能解决知识截止和幻觉的问题。知识截止的问题好理解。答案的来源是知识库不是模型的训练数据。知识库是最新的答案就是最新的。你更新知识库就行不用动模型。幻觉的问题怎么解决。因为大模型回答的时候有参考依据了。它不再凭记忆瞎说会先看搜到的原文再根据原文来回答。有据可查准确率就高多了。而且你还能溯源。用户问为什么这么回答你可以把引用的原文片段找出来给他看。答案是从哪来的清清楚楚。这个在企业场景里特别重要。一个最简单的RAG例子光说原理不够直观我们写一个最简单的RAG。不用向量数据库也不用复杂的框架。就用Python写十几行代码感受一下RAG是怎么回事。fromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI load_dotenv()modelChatOpenAI(modelgpt-3.5-turbo,temperature0)# 模拟知识库knowledge_base[公司A产品的价格是2999元发布于2025年3月。,公司A产品的保修期是一年非人为损坏免费维修。,公司B产品的价格是4999元发布于2025年6月。,公司B产品支持7天无理由退换货15天质量问题包换。,]defsimple_search(query):最简单的关键词搜索results[]foriteminknowledge_base:# 简单的关键词匹配forwordinquery:ifwordinitem:results.append(item)breakreturn\n.join(results)defrag_answer(question):# 第一步检索相关内容contextsimple_search(question)# 第二步带着上下文提问promptf请根据下面的参考资料回答用户的问题。 如果参考资料里没有答案就说我不知道。 不要编造资料里没有的内容。 参考资料{context}用户问题{question}responsemodel.invoke(prompt)returnresponse.content# 测试print(rag_answer(A产品多少钱))print(rag_answer(B产品保修期多长))print(rag_answer(C产品价格是多少))运行一下你会看到。第一个问题A产品的价格它能从知识库找到正确答案。第二个问题B产品的保修期知识库没写B产品的保修它可能会说不知道或者答错。这就是检索不准的问题。第三个问题C产品知识库没有它应该说我不知道。这个例子很简陋搜索是关键词匹配知识库只有四条。但麻雀虽小五脏俱全RAG的基本流程就是这样的。后面所有复杂的RAG系统都是在这个基础上一步步优化出来的。为什么需要向量检索刚才的例子用的是关键词搜索。关键词搜索有个问题。用户问的话和知识库的文字不一定对得上。比如知识库写的是产品享有一年质保服务用户问的是保修期有多久。关键词匹配可能就搜不到因为句子里没有保修这两个字。人能理解质保和保修是一个意思关键词匹配理解不了。怎么解决这个问题。用向量检索也叫语义检索。向量检索的思路是把文字转换成向量然后用向量之间的相似度来判断语义的接近程度。意思相近的句子向量距离就近。意思不相关的向量距离就远。“产品享有一年质保服务和保修期有多久”字面上不一样语义上很接近。转换成向量以后它们的相似度很高就能被检索到。这就是为什么现在的RAG系统基本都用向量数据库。向量检索比关键词检索更懂语义搜得更准。当然向量检索也不是完美的。它也有搜不准的时候有时候会漏掉相关内容有时候会搜到不相关的。所以实际的RAG系统往往是关键词检索和向量检索一起用各取所长。RAG的优势和局限说清楚了原理我们来客观地看看RAG的优缺点。优势第一知识可以随时更新。今天加了新文档明天就能搜到。不用重新训练模型。第二答案有据可查。每个回答都能找到对应的原文片段可溯源可验证。出了问题也能定位是哪里的问题。第三成本低。相比微调RAG的成本低很多。不需要GPU不需要大量训练数据一个向量数据库就够了。第四数据安全。企业的敏感数据不用喂给模型训练存在自己的向量库里就行。局限第一检索质量决定回答质量。搜不到相关内容再强的模型也答不好。搜到的内容不对答案也会错。第二不擅长深度推理。RAG擅长找事实性的答案比如价格、参数、规定。需要深度推理、综合分析的问题光靠检索不够。第三上下文长度有限。能塞进上下文的内容是有限的太多了模型处理不了还会稀释有效信息。第四不能学习新知识。RAG只是检索和引用它不会把知识内化到模型里。每次回答都要重新搜。了解了这些你就知道RAG适合做什么、不适合做什么。知识库问答、客服咨询、文档检索这类场景RAG是首选。需要深度思考和创造的场景RAG就不够用了。为什么说RAG是大模型落地的首选现在行业里有个共识大模型落地RAG是首选方案。为什么。第一个原因效果可预期。RAG的效果好不好你大概能估计出来。知识库质量高检索做得好回答质量就不会太差。不像端到端的模型效果很难预估。第二个原因成本可控。不需要大量标注数据不需要昂贵的训练资源。几台服务器一个向量数据库就能搭起来。第三个原因风险可控。答案有来源可以溯源可以审核。出了问题能定位也能修正。企业用着放心。第四个原因见效快。从0到1搭一个能用的RAG系统快的话一两周就能搞定。然后可以持续优化一步步提升效果。这些特点加起来让RAG成了企业引入大模型最稳妥的路径。先从知识库问答切入跑通了再扩展到其他场景。风险小见效快ROI清晰。这也是为什么这个专栏用了整整一个模块来讲RAG。做Agent落地RAG是绕不开的。下一篇我们讲文档处理流水线。知识库的质量直接决定RAG的效果。文档怎么解析、怎么切块、怎么处理不同格式里面学问很多。

相关新闻

TJA1145 CAN FD收发器实战指南:硬件设计、软件驱动与调试避坑

TJA1145 CAN FD收发器实战指南:硬件设计、软件驱动与调试避坑

1. 项目概述:为什么TJA1145值得你投入精力?如果你正在做汽车电子,尤其是车身控制、网关或者新能源车的BMS、VCU,那你大概率绕不开CAN FD总线。而当你开始选型CAN FD收发器时,TJA1145这个名字一定会反复出现在供应商的推…

2026/10/28 6:32:44 阅读更多 →
83个公共Tracker终极配置指南:告别BT下载龟速时代

83个公共Tracker终极配置指南:告别BT下载龟速时代

83个公共Tracker终极配置指南:告别BT下载龟速时代 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 你是否曾面对BT下载进度条停滞不前,看着个位数的K…

2026/10/28 6:33:01 阅读更多 →
基于OpenStreetMap与Godot的程序化3D城市生成实战

基于OpenStreetMap与Godot的程序化3D城市生成实战

1. 项目概述:从地图数据到游戏世界的桥梁最近在做一个开放世界小游戏的Demo,需要快速搭建一个看起来像模像样的城市街区环境。手动在Blender里拉方块、铺道路?效率太低,而且缺乏真实感。直接用现成的3D城市资产包?风格…

2026/10/28 11:58:58 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/28 23:48:14 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/28 7:28:00 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/28 9:02:11 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/28 22:10:30 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/28 9:00:54 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/28 7:29:02 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 16:58:40 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 9:01:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 19:25:09 阅读更多 →