检索增强生成(Retrieval-Augmented Generation,简称RAG)是一种融合信息检索与自然语言生成的复合技术框架。其核心逻辑可拆解为三个关键环节:
- 检索:从预设知识库(如数据库、文档集合)中精准提取相关信息;
- 增强:将检索到的信息作为上下文补充,提升生成内容的准确性与相关性;
- 生成:基于原始查询与补充上下文,生成符合需求的自然语言响应。
RAG的核心价值在于解决大语言模型(LLM)的固有局限:通过实时调用外部知识,既能减少模型“幻觉”(生成错误信息),又能提升响应的可追溯性(可定位信息来源);同时无需重复训练模型,即可让LLM具备处理最新信息的能力,在客服问答、智能检索、专业知识库查询等场景中应用广泛。
一、RAG的完整工作流程
1. 文本拆分与预处理
将原始文档(如PDF、网页、长文本)拆分为语义完整的“文本块”(Chunk),再进行清洗(如去除冗余符号、统一格式)后,存储为后续处理的基础单元。
文本分块的必要性:
- 避免长文本检索时效率低下(向量计算复杂度随文本长度增加而上升);
- 防止语义被稀释(过长文本的向量难以精准反映核心含义);
- 减少计算资源浪费(小文本块的嵌入计算成本更低)。
常见的分块策略包括按固定长度拆分(如每200字一块)、按语义边界拆分(如按段落、章节)等,需根据文档类型灵活选择。
2. 生成向量嵌入
对拆分后的文本块,使用嵌入模型(Embedding Model)将其转换为高维向量(即“嵌入向量”)——这一过程本质是将文本的语义信息编码为计算机可理解的数值形式。
嵌入模型的发展:
- Transformer出现前:以Word2Vec、GloVe为代表的词嵌入模型,仅能编码单个词的含义,计算高效但语义理解局限于独立词汇;
- Transformer出现后:以BERT、Sentence-BERT为代表的上下文嵌入模型,可结合语境编码整段文本的语义,理解能力更强,但计算成本更高(需处理更长的输入序列)。
3. 向量存储与索引
将生成的文本块向量及其对应的原始文本,一同存储到向量数据库中。向量数据库并非简单存储数据,而是通过构建索引(如IVF、HNSW等)优化相似性搜索效率,成为RAG系统的“外部记忆库”。
常见的向量数据库包括Milvus、Pinecone、Weaviate等,它们支持高效的近似最近邻(ANN)搜索,为后续快速匹配查询奠定基础。
4. 用户查询与向量转换
用户输入自然语言查询(如“RAG的核心步骤有哪些?”)后,系统使用与文本块嵌入相同的模型,将查询转换为向量。这一步的关键是确保查询向量与文本块向量处于同一“语义空间”,否则无法准确计算相似度。
5. 相似文本块检索
向量数据库将查询向量与已存储的文本块向量进行比对,通过余弦相似度、欧氏距离等指标计算相似度,返回最相关的前k个文本块(即“top-k”检索,k值可根据需求调整,如k=5表示返回前5个最相关的块)。
由于向量数据库通常采用近似搜索(而非精确搜索),可在保证效率的同时,满足绝大多数场景的相关性需求。
6. 文本块重排序(可选)
为进一步提升相关性,部分RAG系统会增加“重排序”步骤:使用Reranker模型(如交叉编码器)对检索到的top-k文本块二次评分。交叉编码器通过同时输入查询与文本块,直接计算两者的语义匹配度,比向量相似度更精准。
重排序后,相关性最高的文本块会被优先用于后续生成,尤其在检索结果噪音较多时,能显著提升最终响应质量。
7. 生成最终响应
系统将用户查询、重排序后的文本块(或直接使用检索结果)按预设模板组合为提示词(Prompt),输入LLM生成最终答案。例如,提示词模板可能为:
“基于以下信息回答问题:[文本块1] [文本块2]… 问题:[用户查询] 请用简洁的语言总结答案,并注明信息来源。”
LLM会基于提供的上下文生成响应,确保内容既符合查询需求,又严格贴合检索到的知识,避免“凭空创造”信息。
二、RAG的局限性与优化方向
尽管RAG能显著提升生成质量,但仍存在以下挑战:
-
语义匹配偏差
问题与答案的语义特征可能不直接匹配(如问题是“如何预防”,答案是“预防措施包括”),导致向量相似度高的文本块反而无关。
优化方案:先用LLM生成“假设答案”,再用“问题+假设答案”的向量联合检索,提升匹配精度。 -
长文本语义稀释
包含关键信息的长文本块,其向量可能因内容繁杂而与查询的相似度偏低,被短文本块(即使内容无关)压制。
优化方案:细化分块策略,确保每个文本块聚焦单一主题(如按小节、论点拆分),增强向量的语义独特性。 -
聚合类问题处理不足
若问题需要汇总多个文档的信息(如“某领域近5年的研究热点有哪些”),仅依赖相似性检索可能遗漏关键内容(因单个文档难以覆盖全貌)。
优化方案:结合多轮检索与逻辑推理,先定位相关文档集合,再通过LLM进行信息整合。 -
文本块顺序影响生成
LLM对输入文本的顺序敏感,若相关性高的文本块被放在中间,可能被忽略。
优化方案:采用“首尾重排法”,将最相关的文本块放在提示词开头和结尾,中间放置次相关内容,强化LLM对关键信息的关注。
通过上述流程与优化,RAG能有效连接外部知识与生成模型,成为解决LLM知识时效性、准确性问题的核心技术方案,在智能问答、内容创作、数据分析等领域展现出强大潜力。
那么,如何系统的去学习大模型LLM?
作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。
所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。
由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。
👉大模型学习指南+路线汇总👈
我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
👉①.基础篇👈
基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
👉②.进阶篇👈
接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
👉③.实战篇👈
实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
👉④.福利篇👈
最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!