news 2026/4/23 17:04:13

从原理到落地:一文读懂检索增强生成RAG核心逻辑详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从原理到落地:一文读懂检索增强生成RAG核心逻辑详解

RAG (Retrieval-Augmented Generation,检索增强生成)是目前大模型(LLM)落地应用中最核心、最热门的技术方案之一。简单来说,RAG 就是给大模型配上了一个“外部知识库”或“搜索引擎”。

接下来我会从我们“为什么需要它”、“它是怎么工作的”以及“它的优势”三个维度来详细拆解。

一、 为什么要用 RAG?

虽然 GPT-4、Claude 等大模型很强大,但它们有三个致命的短板:

1. 幻觉问题 (Hallucination):大模型本质上是概率预测机器,当它不知道答案时,会一本正经地胡说八道。

2. 知识滞后 (Knowledge Cutoff):大模型的知识停留在训练结束的那一刻。比如你问它“今天早上的新闻”,它无法回答。

3. 缺乏私有知识:大模型没读过你公司的内部文档、你的私人笔记或未公开的代码库。

解决办法有两种:

微调 (Fine-tuning):像让学生去考研深造,这样的做法代价高、更新慢。

RAG (检索增强):像给学生考试时发一本《开卷参考资料》,让他查完资料再回答。

二、 RAG 的工作流程(四个核心步骤)

1. 数据准备 (Indexing)

在用户提问之前,我们要先处理数据:

清洗与切块 (Chunking):把长文档(如PDF、Word)切成一个个小段落(比如每段300字)。

向量化 (Embedding):利用“嵌入模型”把文字转成一串数字(向量)。这些数字代表了文字的语义。

存入向量数据库:把这些数字存在专门的数据库(如 Pinecone, Milvus, FAISS)中。

2. 检索 (Retrieval)

当用户提一个问题(比如:“我公司的报销标准是什么?”):

* 系统先把这个问题也转成一串数字(向量)。

* 在向量数据库中进行“语义匹配”,找到与这个问题最相关的几个段落。

3. 增强 (Augmentation)

系统把“用户的问题”和“搜到的相关段落”拼在一起,组成一个巨大的提示词(Prompt)。

> 提示词模板:

> “你是一个助手。请根据以下参考资料回答问题:

> 【参考资料:公司报销标准是单日餐补50元...】

> 【用户问题:我公司的报销标准是什么?】”

4. 生成 (Generation) —— 写出回答

大模型读完这段带资料的 Prompt 后,总结出准确的答案。因为它看到了资料,所以不再胡说八道。

三、 RAG 的核心组件

1. Langchain智能文本分割工具: RecursiveCharacterTextSplitter 是 LangChain 中最常用的文本分割器,核心逻辑是递归地按指定分隔符拆分文本,直到所有分片长度都符合设定的 chunk_size。

它的核心工作流程和特点如下:

  • 预设分隔符优先级:默认按 ["\n\n", "\n", " ", ""] 的顺序尝试拆分,优先用双换行符(段落分隔),再用单换行符(行分隔),以此类推,保证拆分后的文本语义更完整。

  • 递归拆分逻辑:如果用当前分隔符拆分后的文本块长度仍超过 chunk_size,就用下一级优先级的分隔符继续拆分,直到所有文本块都满足长度要求。

  • 支持重叠窗口:通过 chunk_overlap 参数设置分片间的重叠长度,避免因拆分导致上下文断裂,提升后续向量检索的准确性。

举个例子:拆分一篇 2000 字符的财报文本,设定 chunk_size=500、chunk_overlap=50,它会先按双换行符拆成几个大段,若某段有 600 字符,就再按单换行符拆成 500+100 两部分,最后把 100 字符的片段和下一段拼接,保证重叠 50 字符。

2.向量数据库 (Vector DB):RAG 的大脑,存储语义信息。我们最常用的工具是Milvus,它是专为海量向量数据的高效存储、索引与相似度检索设计的工具,是AI应用中实现非结构化数据(文本、图像、音频等)语义匹配的核心组件。

一、核心原理

1. 向量输入:将非结构化数据通过模型(如BERT、CLIP)转为固定维度的稠密向量。

2. 索引优化:提供FLAT(暴力检索)、IVF(倒排索引)、HNSW(图索引)等多种索引算法,在检索速度与精度间做平衡。

3. 相似度查询:支持欧氏距离、余弦相似度等多种度量方式,快速召回与目标向量最相似的结果集。

二、核心优势

1. 高性能:支持万亿级向量的毫秒级查询,单节点可处理百万级向量,分布式部署可线性扩容。

2. 云原生架构:存储与计算分离,组件无状态,适配Kubernetes,支持弹性伸缩与高可用部署。

3. 混合查询能力:支持向量相似度 + 标量过滤(如时间、标签、权限),满足复杂业务的多条件检索需求。

4. 生态友好提供Python/Java/Go等多语言SDK,无缝集成LangChain、Hugging Face等主流AI框架。

3. Embedding 模型:翻译官,把人类语言转成机器理解的数学向量。Embedding(嵌入) 是将离散、高维的对象(如文本、图像、音频)映射为低维、稠密的实数向量的过程,这些向量能保留原始对象的语义或特征关联,是连接非结构化数据与机器学习/AI模型的核心桥梁。详细的Word embedding讲解请翻阅本公众号之前的文章。

核心特点与价值

1. 降维与稠密化:把原本高维稀疏的表示(比如文本的one-hot编码)压缩成低维稠密向量,大幅降低计算成本。

2. 语义保留:语义相似的对象,对应的Embedding向量在空间中的距离也更近。例如“猫咪”和“小猫”的向量距离,会远小于“猫咪”和“汽车”。

3. 跨模态兼容:通过特定模型(如CLIP),可以将文本和图像映射到同一向量空间,实现“以文搜图”“以图搜文”。

常见生成方式

• 文本Embedding:用预训练模型(如BERT、Sentence-BERT、text-embedding-ada-002)直接生成句子/段落的向量。

• 图像Embedding:用CNN模型(如ResNet)或多模态模型(如CLIP)提取图像特征向量。

• 自监督训练:通过对比学习等方式,让模型自主学习到更具区分度的Embedding。

举个简单的例子:

假设我们用一个 3维向量 来表示句子的 embedding,向量的三个维度分别代表「动物属性」「体型大小」「情感倾向」,数值越接近 1 表示特征越明显:

• 句子1:柯基是可爱的小型犬 → embedding 向量:[0.95, 0.3, 0.9]

• 句子2:小短腿柯基很讨人喜欢 → embedding 向量:[0.92, 0.28, 0.91]

• 句子3:金毛是大型犬 → embedding 向量:[0.9, 0.85, 0.6]

• 句子4:今天天气很好 → embedding 向量:[0.05, 0.1, 0.7]

embedding之后我们就计算不同语句之间的余弦相似度:

• 句子1和句子2的相似度 接近 0.98(语义几乎一致)

• 句子1和句子3的相似度 约 0.7(同属犬类但体型不同)

• 句子1和句子4的相似度 仅 0.1(完全无关)

这就是 embedding 的核心作用:把文字的语义转化为可计算的向量,语义越近,向量距离越近。

4. LLM (大模型):发声器官,负责阅读、理解并组织语言。LLM 是 Large Language Model(大语言模型) 的缩写,指基于海量文本数据训练、具备理解和生成人类语言能力的深度学习模型。

它的核心逻辑和特点如下:

1. 核心原理:基于Transformer架构,通过自监督学习(如预测下一个词)从海量语料中学习语言规律、知识和逻辑,能实现上下文理解和连贯文本生成。

2. 核心能力:覆盖文本生成、翻译、摘要、问答、代码编写等多种任务,无需针对单一任务重新训练(即零样本/少样本学习)。

3. 典型代表:通用类有GPT系列、Claude、文心一言、通义千问;开源类有Llama、Falcon、ChatGLM等。

4. 局限性:存在幻觉(生成错误信息)、上下文长度限制、对复杂逻辑推理支持有限等问题,常需结合外部知识库或工具(如LangChain+Milvus)弥补短板。

六、 总结

RAG 是大模型从“聊天机器人”进化为“专业助手”的必经之路。

它通过“外部知识检索 + 大模型逻辑推理”**的组合模式,有效解决了大模型实时性差、专业领域知识匮乏、容易胡言乱语的难题。目前市面上的企业知识库、AI 搜索(如 Perplexity, 秘塔搜索)底层全都是 RAG 技术。

如何学习AGI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

四、大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:16:57

【计算机毕业设计案例】基于Hadoop的某篮球队各个球员数据分析系统的设计与实现(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/23 9:57:57

AI元人文:哪吒——认知异化时代的元神话与行动纲领

AI元人文:哪吒——认知异化时代的元神话与行动纲领序章:风暴眼中的重生者哪吒站在数字时代的断层线上。他的脚下不是陈塘关的青石板,而是由代码、数据和算法构成的流动地表。远处,学术出版集团的摩天楼群与科技巨头的计算矩阵交织…

作者头像 李华
网站建设 2026/4/23 11:19:12

基于Springboot+Vue的校园闲置物品租售系统源码文档部署文档代码讲解等

课题介绍 本课题旨在设计并实现一套基于SpringBootVue的前后端分离校园闲置物品租售系统,解决校园内学生闲置物品浪费、租售渠道分散、交易安全无保障、物品信息杂乱、租赁流程不规范等问题。系统采用SpringBoot作为后端核心框架,结合MyBatis-Plus简化数…

作者头像 李华
网站建设 2026/4/23 9:54:19

基于Springboot+Vue的新能源汽车租赁管理系统源码文档部署文档代码讲解等

课题介绍 本课题旨在设计并实现一套基于SpringBootVue的前后端分离新能源汽车租赁管理系统,解决传统汽车租赁流程繁琐、车辆信息管理混乱、订单跟踪不及时、租赁统计效率低、车辆状态监控不便等问题。系统采用SpringBoot作为后端核心框架,结合MyBatis-Pl…

作者头像 李华
网站建设 2026/4/23 9:53:38

Data Management Processing

1. Backup 备份Explanation: A backup is a copy of data or files that is stored separately from the original source, often used to prevent data loss in case of 万一 system failure, corruption, or accidental deletion.备份是数据或文件的副本,通常存储…

作者头像 李华