本文深入浅出地介绍了检索增强生成(RAG)架构,旨在帮助初学者和程序员理解如何利用外部知识库提升大语言模型的回答质量。文章详细阐述了RAG的核心思想、不同架构类型(如无微调RAG、检索器微调、仅语言模型微调等)及其特点,并探讨了黑盒与白盒增强策略。此外,还涉及知识库构建、查询与检索增强、效率提升及系统评估等关键环节,为读者提供了全面的RAG学习和实践指南。
导航
传统大语言模型主要依赖参数中的隐式知识进行回答,容易受到知识过期、幻觉和领域知识不足等问题影响。RAG 的核心思想是:在生成答案之前,先从外部知识库中检索相关信息,再将这些信息作为上下文提供给大语言模型,从而提升回答的准确性、可追溯性和时效性。
检索增强生成架构
| 架构类型 | 是否修改大模型参数 | 是否修改检索器参数 | 代表方法 | 特点 |
|---|---|---|---|---|
| 无微调 RAG | 否 | 否 | In-Context RALM | 简单、易落地 |
| 检索器微调 | 否 | 是 | REPLUG | 适合黑盒大模型 |
| 仅语言模型微调 | 是 | 否 | RETRO | 强化模型利用外部知识的能力 |
| 检索器与模型协同微调 | 是 | 是 | Atlas | 效果潜力高,但训练复杂 |
黑盒增强架构
黑盒增强架构指的是不修改或无法访问大语言模型内部参数,主要通过Prompt、外部检索、检索器优化或输出反馈来提升生成效果。
无微调
无微调架构是所有RAG架构中形式最简单的。该架构中,检索器和语言模型经过分别独立的预训练后参数不再更新,直接组合使用。In-Context RALM是该框架下的代表性方法
在实际工程中,大多数企业级 RAG 系统最初都采用这种形式:知识库、Embedding 模型、向量数据库和大语言模型相互独立,只通过 Prompt 将检索结果注入上下文。
检索器微调
在检索器微调架构中,大语言模型参数保持不变,仅通过语言模型的输出反馈来优化检索器。其核心思想是:如果某个文档能让语言模型更容易生成正确答案,那么这个文档就应该被检索器赋予更高权重。
REPLUG 是这类方法的代表之一。它利用语言模型对不同检索文档的困惑度变化作为监督信号,训练检索器更倾向于召回那些能显著提升生成质量的文档。
白盒增强架构
大语言模型和检索器是独立预训练的,二者可能存在匹配欠佳的情况。白盒增强架构通过微调大语言模型来配合检索器,以提升RAG 的效果。根据是否对检索器进行微调分为两类:
- 仅语言模型微调
- 检索器和语言模型协同微调
仅微调语言模型
仅微调语言模型指的是检索器作为一个预先训练好的组件其参数保持不变,大语言模型根据检索器提供的上下文信息,对自身参数进行微调。RETRO是微调语言模型的代表性方法之一。
检索器和语言模型协同微调
在该架构中,检索器和语言模型同时进行微调,以实现更好的协同效果。该方法的代表性方法是Atlas。
知识库构建
在RAG 框架中,知识库构建主要涉及数据采集及预处理与知识库增强两个步骤。
数据采集及预处理
- 数据采集: 来自不同渠道的数据被整合、转换为统一的文档对象。这些文档对象不仅包含原始的文本信息,还携带有关文档的元信息(Metadata)
- 预处理: 预处理可以提升数据质量和可用性。数据预处理主要包括数据清洗和文本分块两个过程。
- 数据清洗旨在清除文本中的干扰元素。
- 文本分块是将长文本分割成较小文本块的过程,文本分块的效果直接影响后续检索结果的质量
知识库增强
知识库增强是通过改进和丰富知识库的内容和结构,以提升其质量和实用性
- 查询生成 利用大语言模型生成与文档内容紧密相关的伪查询。这些伪查询从查询的角度来表达文档的语义,可以作为相关文档的“键”,供检索时与用户查询进行匹配。
- 标题生成 利用大语言模型为没有标题的文档生成合适的标题
查询与检索增强
查询增强
查询增强是指在检索阶段对用户输入的查询进行改进和优化,以提升检索结果的相关性和准确性。查询增强的主要方法包括:
- 查询语义增强: 通过同义改写和多视角分解等方法来扩展、丰富用户查询的语义,以提高检索的准确性和全面性
- 查询内容增强: 通过生成与原始查询相关的背景信息和上下文,从而丰富查询内容,提高检索的准确性和全面性。查询内容增强方法通过引入大语言模型生成的辅助文档,为原始查询提供更多维度的信息支持
检索器
检索器是RAG系统中的核心组件,负责从知识库中检索出与用户查询相关的文档
判别式检索器
判别式检索器通过判别模型对查询和文档是否相关进行打分。判别式检索器通常分为两大类:
- 稀疏检索器 稀疏检索器(Sparse Retriever)是指使用稀疏表示方法来匹配文本的模型,通过统计文档中特定词项出现的统计特征来对文档进行编码,然后基于此编码计算查询与知识库中的文档的相似度来进行检索
- 稠密检索器 稠密检索器一般利用预训练语言模型对文本生成低维、密集的向量表示,通过计算向量间的相似度进行检索
生成式检索器
生成式检索器通过生成模型对输入查询直接生成相关文档的标识符。
检索效率增强
向量数据库可以实现高效的向量检索与查询。向量数据库的核心是设计高效的相似度索引算法。 常用的索引技术主要分为三大类:
- 基于空间划分: 将搜索空间划分为多个区域来实现索引
- 基于乘积量化: 将高维向量空间划分为多个子空间,并在每个子空间中进行聚类得到码本和码字,以此作为构建索引的基础
- 基于图: 构建一个邻近图,将向量检索转化为图的遍历问题
检索结果重排
通过对检索结果重排,可以提升检索结果的相关性和准确性。常见的重排方法包括:
- 基于交叉编码的方法 基于交叉编码的重排方法利用交叉编码器(Cross-Encoders)来评估文档与查询之间的语义相关性
- 基于上下文学习的方法 基于上下文学习的方法是指通过设计精巧的Prompt,使用大语言模型来执行重排任务
RAG 系统评估
RAG 系统的评估通常需要同时关注检索质量和生成质量。
检索质量评估
- Recall:相关文档是否被召回。
- Precision:召回结果中有多少是真正相关的。
- MRR:正确文档是否排在靠前位置。
- nDCG:综合考虑相关性和排序位置。
生成质量评估
- 正确性:答案是否符合事实。
- 忠实性:答案是否基于检索到的证据生成。
- 完整性:是否覆盖用户问题的关键方面。
- 可引用性:是否能给出明确来源。
- 幻觉率:是否编造不存在的信息。
优化增强过程
RAG 并不意味着每次生成都必须检索。是否检索、在哪里融合检索结果、是否需要多轮检索,都会影响系统成本、延迟和答案质量。
何时增强
判断是否需要增强的核心在于判断大语言模型是否具有内部知识。判断模型是否具有内部知识的方法可以分为两类:
- 外部观测法:通过 Prompt 询问模型是否具备相关知识,或通过置信度、困惑度等统计信号进行判断。
- 内部观测法:通过检测模型内部神经元或隐藏状态判断模型是否存储相关知识。这类方法通常需要访问模型内部参数,更适合白盒场景。
内部/外部观测法都存在一定局限性,最好是定义一个决策链: 规则兜底 + LLM 判断 + 检索质量评估 + 证据充分性验证.
何处增强
可以在输入端、中间层、输出端使用检索的结果:
- 输入端: 直接将检索到的外部知识文本与用户查询拼接到Prompt中,然后输入给大语言模型,主流方式。
- 中间层: 先将检索到的外部知识转换为向量表示,然后将这些向量插入通过交叉注意力融合到模型的隐藏状态中。黑盒架构中无法使用。
- 输出端: 利用检索到的外部知识对大语言模型生成的文本进行校准,是一种后处理的方法
多次增强
分解式增强 将复杂问题分解为多个子问题,子问题间进行迭代检索增强,最终得到正确答案
渐进式增强 将问题不断细化,然后分别对细化的问题进行检索增强,力求给出全面的答案,以覆盖用户需要的答案
大模型的知识又多又杂,到底怎么学?
做这行久了,被问最多的问题就一个:大模型的知识又多又杂,我到底先学啥?翻了一堆资料,看啥都像重点,结果啥都没学进去。今天把我自己一路摸出来的顺序捋一遍,零基础、应届生、转行的都适用。跟着走,至少方向不乱、不瞎忙,学完拿得出手。
第一阶段(10天):初阶应用
这一阶段就一个目标:把大模型真正"玩明白",不是只会聊天那种,而是能调教它、能用代码把大模型和业务接起来。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
这阶段正式进实战,目标很实在:做出两个能拿出手的东西——一个私有知识库,一个 agent 对话机器人。
为什么要做 RAG
搭建一个简单的 ChatPDF
检索的基础概念
什么是向量表示(Embeddings)
向量数据库与向量检索
基于向量检索的 RAG
搭建 RAG 系统的扩展知识
混合检索与 RAG-Fusion 简介
向量模型本地部署
…
走完这 30 天,Python 或 JavaScript 背景的基本能独立做一套 RAG 应用,简历上也敢写"大模型应用开发"了。
第三阶段(约20天):动手微调
学到这,你已经开始 “造” 模型了 —— 通过微调,搞出垂直领域的专用小模型。
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你从 “只会用” 变成 “能造” 的 AI 小子。那么你还想往下探索吗?
想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!
第四阶段(20天):商业闭环,部署落地
技术学完,落地才算数。这阶段带你搞明白大模型怎么真正跑起来、用起来。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
想要入坑大模型的朋友,给大家准备了一份2026 年最新 AI 大模型全套学习资料:
1、大模型系统化学习路线
2、大模型学习视频教程
3、大模型学习书籍&电子文档
4、AI大模型最新行业报告
5、大模型项目实战&配套源码
6、2026大模型大厂面试真题
7、为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。
8、适合谁学?
- 传统后端 / Java / 前端开发,想转型 AI 应用
- 大学生、应届生,想拿更好的 offer
- 产品经理、运营,想武装职业竞争力
- 技术负责人,想给团队落地提效
学习是反人性的,但回报是真金白银。技术会更新,赛道会切换,但只要你先动手,机会就永远站在你这边。
9、这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!
好了,就写到这。路线是死的,人是活的,卡住了随时来问我。觉得有用就点个收藏,别让它进收藏夹吃灰——动起来比啥都强。