【建议收藏】RAG全面解析:从基础概念到GraphRAG进阶,助你掌握大模型增强技术
在大模型时代,“知识过时”与“内容幻觉”始终是制约其落地的核心痛点。检索增强生成(RAG)技术通过“动态检索外部知识+生成精准回答”的模式,无需复杂微调即可让大模型突破固有知识库局限,成为金融、医疗、法律等专业领域的核心增强方案。本文将从RAG基础概念切入,系统拆解文档分块、相似度匹配、重排序等关键技术环节,深入解析GraphRAG的进阶逻辑,同时提供可落地的评估方法与问题解决方案,助力读者从零构建高可靠性的检索增强生成系统。

一、RAG核心概念:大模型的“外部知识引擎”
RAG(Retrieval Augmented Generation,检索增强生成)是一种通过“实时检索外部知识库”补充大模型信息的技术方案。其核心逻辑是:让LLM在生成回答前,先从指定数据库中获取与问题相关的上下文文档,再基于这些“新鲜、专业”的信息进行推理,最终输出准确答案。
为什么需要RAG?
大模型的局限性恰好是RAG的价值所在:
- 知识时效性不足:LLM的训练数据存在“截止日期”(如GPT-4训练数据截止2023年),无法回答2023年后的新事件(如2024年行业政策、新品发布);
- 专业领域知识缺失:通用大模型未深度覆盖垂直领域知识(如某企业内部规章、医学前沿论文);
- 易产生“幻觉”:当问题超出训练范围时,LLM可能编造看似合理但错误的内容。
而RAG通过“检索+生成”的两阶段模式,完美解决上述问题——它不改变大模型本身,而是为其配备一个“可实时更新的外部知识库”,让回答既具备大模型的语言组织能力,又拥有外部数据的准确性与时效性。

二、RAG完整流程:从“知识存储”到“智能生成”
一个标准的RAG系统分为两大核心阶段:离线构建向量存储与在线检索生成,两个阶段协同实现“知识准备-精准匹配-智能输出”的闭环。
阶段1:离线构建向量存储——为大模型“储备知识”
此阶段的目标是将非结构化数据(如PDF、Word、网页文本)转化为可高效检索的向量格式,具体分为4步:
-
文档加载(Load)
首先将分散的数据源统一导入系统,支持多种格式:TXT、PDF、JSON、HTML、Markdown等。常用工具如LangChain的DocumentLoaders系列(如PyPDFLoader加载PDF、WebBaseLoader爬取网页),可一键解析不同格式文档的文本内容。 -
文本切分(Split)
大模型的输入token存在上限(如GPT-3.5为4k token),直接输入长文档会超出限制;同时,长文档中的冗余信息会降低检索精度。因此需要将文档切分为更小的“文本块(Chunk)”,确保每个Chunk既包含完整语义,又符合token限制。 -
向量转化(Embedding)
计算机无法直接理解文本,需通过Embedding模型将文本块转化为高维向量(如768维浮点数数组)。向量的核心作用是“用数值表示语义”——语义越相似的文本,其向量在空间中的距离越近。常用的Embedding模型包括OpenAI的text-embedding-3-small、开源的BERT-base等。 -
向量存储(VectorStore)
将生成的向量存入专门的向量数据库,实现高效的相似性检索。主流向量数据库有Pinecone(云服务)、Milvus(开源分布式)、Chroma(轻量级开源)等,它们支持快速查询“与用户问题向量最相似的Top-K个文本块”。

阶段2:在线检索生成——为用户“精准答题”
当用户提出问题时,系统进入在线流程,通过3步生成答案:
- 问题向量化:将用户的问题(如“2024年新能源汽车补贴政策”)通过相同的Embedding模型转化为向量;
- 相似性检索:向量数据库对比“问题向量”与“存储的文本块向量”,返回相似度最高的Top-K个文本块(即“相关上下文”);
- prompt构建与生成:将“用户问题+相关上下文”组合成prompt,输入LLM(如GPT-4、Llama 3),让LLM基于上下文生成答案。

进阶优化:基于LangGraph的智能RAG流程
为进一步提升准确率,我通过LangGraph(LangChain推出的流程编排工具)构建了带“文档评分”的闭环RAG流程,核心逻辑如下:
- 调用
Retrieval Tool从向量库检索初始相关文档; - 通过
GradeDocument模块对文档评分:判断文档是否与问题强相关(如问题是“政策补贴”,文档若仅讲“汽车销量”则判定为不相关); - 若文档相关:直接进入
GenerateAnswer生成答案;若文档不相关:触发Rewrite模块优化问题(如将“补贴政策”细化为“2024年中国新能源汽车购置补贴政策”),重新检索。

该流程的代码已开源至Github,可直接复用:
https://github.com/Liu-Shihao/ai-agent-demo/tree/main/src/rag_agent
三、RAG进阶优化:从“能用”到“好用”的关键技术
基础RAG流程可满足简单问答需求,但在专业场景中,需通过文档分块优化、相似度算法选择、重排序等技术提升系统性能。
1. 文档分块(Chunking):决定检索精度的“第一道关卡”
文本块的大小与切分方式直接影响检索效果——切分过粗会包含冗余信息,切分过细会导致语义断裂(如将“某政策的申请条件”拆分为两个Chunk)。常见的切分方法及适用场景如下:
| 切分方法 | 核心逻辑 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 固定长度切分(带重叠) | 按固定token数(如512/1024)切分,相邻Chunk重叠10%-20% | 实现简单,兼容性强 | 可能截断语义(如拆分完整句子) | 无明显结构的纯文本(如小说、报告) |
| 句子边界切分 | 基于标点符号(。、!、?)或NLP工具(如SpaCy)拆分句子 | 保留完整句子语义 | 长段落可能拆分过细,丢失上下文关联 | 结构化文本(如新闻、论文摘要) |
| 自定义规则切分 | 按文档逻辑结构(标题、小标题、段落)切分,如用BeautifulSoup解析HTML标签 | 贴合文档结构,Chunk语义完整性最高 | 需手动设计规则,适配成本高 | 结构化强的文档(如PDF手册、网页) |
| 基于语义的切分 | 用Transformer模型(如Sentence-BERT)分析文本语义相似度,相似句子归为一个Chunk | 动态适配语义,避免断裂 | 计算成本高,速度较慢 | 专业文档(如法律条文、医学论文) |
分块优化原则:
- Chunk大小需匹配Embedding模型的输入限制(如Sentence-BERT建议Chunk不超过512token);
- 优先保证“关键信息完整性”:如将“政策条款+适用范围”“产品参数+使用场景”等强关联内容放在同一Chunk;
- 避免Chunk过大或过小:通常建议256-1024token,具体根据LLM的context window调整。
2. 相似性算法:找到“最相关”文档的核心
相似性算法用于计算“问题向量”与“文本块向量”的关联程度,不同算法的适用场景差异显著,核心算法对比如下:
| 算法名称 | 计算逻辑 | 取值范围 | 优点 | 适用场景 |
|---|---|---|---|---|
| 欧氏距离(L2) | 计算向量在空间中的直线距离 | [0, +∞) | 直观反映向量空间位置差异,计算简单 | 数据分布均匀的场景(如图片Embedding) |
| 余弦相似度(Cosine) | 计算向量夹角的余弦值,衡量方向相似度 | [-1, 1] | 忽略向量长度影响,适合文本语义匹配 | 文本检索(RAG核心算法) |
| BM25 | 基于词频(TF)、逆文档频率(IDF)计算相关性 | [0, +∞) | 考虑词的重要性,抗噪声能力强 | 关键词检索(如结合向量检索做混合检索) |
| Jaccard相似度 | 计算两个集合的交集/并集比例 | [0, 1] | 适合衡量离散特征的相似性 | 文本去重、关键词匹配(如用户兴趣标签) |
RAG中的典型算法组合策略:
- 初步检索:用余弦相似度快速筛选Top-100个候选Chunk(速度快,召回率高);
- 二次筛选:用BM25对候选Chunk重新排序(强化关键词匹配,提升准确率);
- 去重处理:用Jaccard相似度去除重复或高度相似的Chunk(避免冗余上下文)。
3. 余弦相似度的局限性与解决方案
余弦相似度是RAG中最常用的算法,但存在明显缺陷,需针对性优化:
核心缺陷
- 忽视向量长度信息:余弦相似度仅关注向量方向,不考虑向量模长(即文本的词频、长度)。例如,一篇反复提及“新能源汽车”的长文档,与一篇仅提一次的短文档,若方向相似,余弦相似度会判定为“高度相关”,但实际长文档的相关性可能更低;
- 语义相似≠答案相关:表面关键词匹配可能导致“假阳性”。例如:
- 问题:“如何预防感冒?”
- 检索结果:“感冒的症状包括发烧、咳嗽、鼻塞”(语义相似,但无预防方法,属于无关文档);
- 词序不敏感:余弦相似度不考虑词的顺序,例如“医生治疗病人”与“病人治疗医生”的向量相似度极高,但语义完全相反。
解决方案
- 向量归一化:对所有向量做L2归一化,统一向量长度,消除模长对相似度的影响;
- 混合检索:结合BM25算法(基于词频权重),同时考虑“语义相似”与“关键词匹配”;
- 重排序(Re-rank):用交叉编码器(如MiniLM-L6-v2)对初步检索结果重新评分——交叉编码器会同时输入“问题+Chunk”,直接计算两者的相关性,精度远高于余弦相似度;
- prompt优化:在生成阶段加入“仅基于上下文回答,不添加外部知识”的约束,减少无关信息干扰。
4. 重排序(Re-rank):提升检索精度的“最后一步”
初步检索(如余弦相似度)可能返回“语义相关但实际无用”的Chunk(如上述“感冒症状”文档),重排序技术通过更精细的判断,优化Chunk的排序顺序,确保Top-5的Chunk均为“高价值答案源”。
主流重排序方法
-
交叉编码器(Cross-Encoder)
核心逻辑:将“问题+Chunk”拼接后输入Transformer模型,模型直接输出一个“相关性分数”(0-1),分数越高表示越相关。- 优点:精度极高,能捕捉词序、语义反转等细节;
- 缺点:计算成本高(需逐个处理Chunk),通常仅对初步检索的Top-20/50个Chunk重排序;
- 常用模型:MiniLM-L6-v2(轻量快速)、BERT-base(高精度)。
-
学习排序(Learning to Rank, LTR)
核心逻辑:基于历史数据训练排序模型,综合多维度特征(如余弦相似度、BM25分数、Chunk长度、更新时间)对Chunk排序。- 优点:可融入业务特征(如“优先展示最新文档”);
- 缺点:需大量标注数据(标注“问题-Chunk-相关性标签”),落地成本高。
-
规则重排序
核心逻辑:基于业务规则手动调整顺序,如“优先展示近1年的文档”“优先展示权威来源(如政府官网)的文档”“去除重复Chunk”。- 优点:零成本、易落地;
- 缺点:灵活性差,无法应对复杂场景。
5. GraphRAG:突破“单跳检索”,实现复杂推理
传统RAG的检索单元是“文本块(Chunk)”,仅能处理“单跳问答”(如“什么是RAG?”),无法应对“多跳推理”(如“A公司的竞争对手的CEO是谁?”)。GraphRAG通过引入知识图谱(Knowledge Graph, KG) ,将检索单元从“文本块”升级为“实体+关系”,实现“立体推理”。
GraphRAG与传统RAG的核心差异
| 对比维度 | 传统RAG | GraphRAG |
|---|---|---|
| 检索单元 | 文本块(Chunk) | 实体、关系、子图 |
| 推理能力 | 单跳语义匹配(直接找答案) | 多跳推理(如A→B→C→答案) |
| 知识表示 | 非结构化文本 | 结构化三元组(主体-关系-客体) |
| 适用场景 | 简单问答、信息查询 | 关系挖掘、复杂推理(如金融、法律) |
GraphRAG实现步骤
-
实体识别(NER)
从文本中提取“实体”(如人名、公司名、地点、时间),常用工具:- 开源工具:SpaCy(支持多语言实体识别)、BERT-NER(高精度);
- 大模型:直接用LLM提取,如提示“从以下文本中提取实体,类型包括公司、人名、职位:[文本内容]”。
-
关系抽取
识别实体之间的关联,生成“三元组”(〈主体,关系,客体〉),例如:- 文本:“马斯克是特斯拉的CEO,特斯拉的竞争对手是比亚迪”;
- 三元组:〈马斯克,职位,特斯拉CEO〉、〈特斯拉,竞争对手,比亚迪〉。
实现方式:用LLM直接抽取(提示“从文本中提取三元组,格式为〈主体,关系,客体〉”),或用开源模型(如REBEL)。
-
图谱存储与检索
将三元组存入图数据库(如Neo4j、NebulaGraph),构建知识图谱;当用户提出多跳问题时,系统通过“图遍历”找到关联实体,例如:- 问题:“特斯拉竞争对手的CEO是谁?”;
- 图遍历:特斯拉→竞争对手→比亚迪→CEO→王传福;
- 生成答案:基于“比亚迪CEO是王传福”的图谱信息,结合相关文本块生成回答。
GraphRAG的核心价值在于:将“分散在文本中的关系信息”转化为“结构化的图谱”,让大模型能像“查地图”一样追溯实体关联,轻松解决传统RAG无法处理的复杂推理问题。
四、如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】


五、为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。


六、大模型入门到实战全套学习大礼包
1、大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

2、大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

3、AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

4、大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

5、大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

适用人群

第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐



所有评论(0)