news 2026/6/25 13:59:54

RAG 通俗完整讲解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RAG 通俗完整讲解

RAG 通俗完整讲解

一、全称与一句话定义

RAG = Retrieval-Augmented Generation,检索增强生成大白话:给大模型装一个外置资料库,提问时先查资料,再照着资料回答

解决大模型原生三大痛点

  1. 知识过时:大模型只学到训练截止日期,不知道最新政策、文档;
  2. 幻觉(瞎编):没见过的内容容易编造不存在的条款、数据;
  3. 不能读私有数据:企业内部 PDF、代码、手册、数据库,原生 LLM 看不到。

二、核心原理类比

把 LLM 比作只会死记课本的学生:

  • 原生 LLM:只靠脑子里训练时记住的内容回答,记不清就乱编;
  • RAG:学生手边放一堆参考资料,提问先翻资料找到对应段落,再结合资料作答,答案有依据、不会乱编。

三、两大完整阶段(标准朴素 RAG 流程)

阶段 1:离线建库(一次性 / 定时更新资料)

把你的文档(PDF/Word/ 网页 / 代码 / 数据库)加工存入向量库:

  1. 数据加载 + 清洗:读取文档,去除页眉、广告、乱码;
  2. 文本分块 Chunk:长文档切成 500~1000 字小段,块之间少量重叠避免语义断裂;
  3. 向量化 Embedding:用嵌入模型把文字转成数字向量,语义相近的文本向量距离近;
  4. 存入向量数据库:FAISS、Chroma、Milvus 等,支持快速语义搜索;

这一步做完,私有资料永久入库,不用重新训练大模型。

阶段 2:在线问答(用户实时提问流程)

  1. 用户输入问题;
  2. 问题同样转为向量;
  3. 向量库做语义相似度检索,取出最相关的 Top K 文档片段;
  4. 把「检索到的参考文本 + 用户问题」拼接成完整 Prompt 喂给 LLM;
  5. LLM 严格基于检索到的资料生成回答,同时可附上文档来源;

极简伪代码:

python

运行

# 离线入库 chunks = split_doc("公司运维手册.pdf") for c in chunks: vec = embedding_model.encode(c) vector_db.insert(vec, c) # 在线问答 query_vec = embedding_model.encode("服务器500错误怎么排查") docs = vector_db.search(query_vec, top_k=3) prompt = f"参考资料:{docs}\n根据资料回答问题:{query}" answer = llm.chat(prompt)

四、RAG vs 模型微调(两种给大模型加知识的方案)

表格

方式RAG 检索增强LLM 微调 Fine-tune
知识更新直接新增文档,无需重训模型新增数据必须重新训练,成本极高
硬件成本轻量,普通服务器即可需要高显存 GPU,耗时久
事实准确性可溯源,每句话对应文档页码知识揉进参数,无法溯源
上下文限制依赖检索片段,不受模型训练限制受模型上下文窗口、训练数据集约束
适用场景企业知识库、实时政策、高频更新文档统一文风、固定输出格式、少量固定规则

五、核心优势

  1. 低成本实时更新知识:新增手册、政策直接上传,不用重新训练大模型;
  2. 大幅减少幻觉:答案全部基于真实文档,减少编造内容;
  3. 支持私有内部数据:内网文档、业务数据库、代码库都能接入;
  4. 答案可溯源:输出附带文档名称、页码,方便核验;
  5. 节约上下文窗口:只检索相关片段,不用把整份大文档塞给 LLM。

六、常见落地场景

  1. 企业内部知识库问答:员工查制度、运维手册、开发规范;
  2. 智能客服:基于产品说明书、故障库回答客户问题;
  3. 行业专业问答:法律法条检索、医疗指南、金融财报解读;
  4. 研发辅助:读取内部代码库、API 文档生成代码、排查 bug;
  5. 文档助手:PDF 总结、合同提取关键条款、文献综述;
  6. 本地私有 AI:本地部署,数据不上外网,保障数据安全。

七、简单区分关键词

  • 检索(Retrieval):语义搜索,找和问题相关的资料;
  • 增强(Augmented):把查到的资料塞进提示词,给 LLM 补充上下文;
  • 生成(Generation):大模型结合参考资料输出通顺答案;
  • 向量数据库:专门存储文本向量,做相似度匹配,RAG 标配存储。

八、进阶小补充(简单了解)

基础版叫Naive RAG(朴素 RAG),工业级会做优化:

  • 多路检索、重排(Rerank)过滤无关片段;
  • HyDE、Multi-Query 优化检索召回率;
  • 分层 RAG:先检索文档摘要,再检索详细段落;
  • 多模态 RAG:支持图片、表格、图文混合文档检索。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 13:54:47

彻底解决大模型 JSON 报错:提示词 + 硬约束 + 兜底的全链路修复方案

附带冗余话术:比如前后夹带“好的,这是你要的结果”、“以下是符合要求的JSON”。Markdown 标签包裹:带有 json 标签,导致无法直接解析。非法格式:用单引号替代双引号、转义字符使用错误等。语法漏洞:尾部缺…

作者头像 李华
网站建设 2026/6/25 13:51:01

一升主机跑百亿大模型:酷睿Ultra端侧AI实战指南

1. 项目概述:当“一升”主机撞上“百亿参数”,我们到底在兴奋什么? “一升迷你主机跑百亿级大模型?”——这句话刚看到时,我下意识摸了摸手边那台体积堪比鞋盒、标称“1L”的迷你主机,又点开任务管理器看了…

作者头像 李华
网站建设 2026/6/25 13:43:01

P2P 打洞 + 透明网关:NAS 虚拟局域网的技术实现与性能测试

随着家用 NAS、智能家居设备的普及,广域网环境下的内网资源访问需求持续增长。但受 IPv4 地址资源枯竭影响,国内 90% 以上的家庭宽带处于运营商级网络地址转换(CGNAT)的对称 NAT 环境下,传统公网 IPDDNS 方案可用性大幅…

作者头像 李华
网站建设 2026/6/25 13:40:37

3分钟搞定Chrome新标签页:用NewTab Redirect打造专属浏览器体验

3分钟搞定Chrome新标签页:用NewTab Redirect打造专属浏览器体验 【免费下载链接】NewTab-Redirect NewTab Redirect! is an extension for Google Chrome which allows the user to replace the page displayed when creating a new tab. 项目地址: https://gitco…

作者头像 李华
网站建设 2026/6/25 13:37:31

P89LPC924/925 ADC触发模式与中断优先级实战解析

1. 项目概述:从数据手册到实战代码的跨越如果你曾经翻看过P89LPC924/925这类8位微控制器的用户手册,大概率会对其中关于ADC(模数转换器)和中断系统的章节感到既熟悉又头疼。熟悉的是,它们似乎总遵循着某种固定的范式&a…

作者头像 李华
网站建设 2026/6/25 13:34:15

为什么我暂时抛弃了 logging

先说我踩过最大的坑:logging 的默认输出是同步阻塞的,FastAPI 的异步特性一来,日志不但会打乱顺序,还可能悄无声息地丢失。 而且你要拿到一个像样的日志,得先写几十行配置,每次开新项目都要先把以前的代码复…

作者头像 李华