RAG 原理与核心架构
RAG 基本原理、核心模块和事实准确性机制
原题:请系统阐述检索增强生成(RAG)的基本原理、核心系统架构与关键组成模块,并结合实际应用场景,分析其在提升大语言模型事实准确性、应对知识更新延迟及减少幻觉方面的优势与技术机制。
重排与优化 · 字节真题
回答与解析
核心原理:检索-生成两阶段范式
RAG将大模型从"闭卷考试"转为"开卷考试"——先检索、后生成。用户查询时,系统先从外部知识库检索相关文档,再将检索结果与用户问题拼接送入LLM生成答案。
系统架构与四大模块
| 模块 | 核心功能 | 关键技术 |
|---|---|---|
| 索引构建 | 离线处理文档,构建可检索的向量库 | 文档切分、Embedding模型、向量数据库(Milvus/Faiss) |
| 检索器 | 从海量文档中快速召回Top-K候选 | 稠密检索(DPR)、稀疏检索(BM25)、混合检索 |
| 重排序 | 精排候选,提升相关性 | Cross-Encoder、ColBERT |
| 生成融合 | 将检索结果与Prompt结合,约束生成 | 上下文拼接、引用标注、多文档融合策略 |
三大优势的技术机制
1. 事实准确性提升
- 机制:检索结果为生成提供"事实锚点",LLM从参数记忆转向上下文引用
- 效果:可追溯来源,降低事实性错误
2. 动态知识更新
- 机制:知识库与模型解耦,新文档入库即可生效,无需重新训练
- 场景:金融政策、产品手册等高频更新场景
3. 幻觉缓解
- 机制:检索上下文约束生成空间,减少模型"自由发挥"
- 局限:检索失败时仍可能幻觉(需结合拒答策略)
典型应用场景
- 企业知识库:对接内部文档,解决大模型无领域知识问题
- 智能客服:实时检索最新产品信息,避免过时回答
- 专业问答:法律/医疗领域,要求答案可溯源
关键权衡:检索质量决定上限,需持续优化切分策略、Embedding质量和召回精度。
学习建议
建议先掌握大模型基础原理,再学习信息检索与向量数据库技术,结合开源项目如LangChain动手实践RAG流程,加深理解。
口语版讲法(约4分钟)
- 开卷考试比喻点明本质
- 系统架构三个关键模块
- 三大优势及落地边界
- 业务场景与风险
- 工程师取舍与给出可延伸点
这道题其实是在问,怎么让大模型在回答问题时不再凭空编造,而是能像人一样去查资料再回答。核心思路一句话:从闭卷考试变成开卷考试,先检索后生成。
具体来说,系统架构可以拆成三个关键模块。先说索引构建,就是把外部知识库切分成小块,用 Embedding 模型转成向量存进 Vector Database。这里有个常见坑:切分策略很讲究,固定窗口切分简单但容易把语义割裂,所以落地时我通常会结合段落边界做语义切分。再看检索器,从向量库里召回 top-k 候选。现在主流做法是 Hybrid Search,也就是 BM25 加向量检索,因为光靠向量对精确匹配不友好,比如订单号、错误码,关键词召回更准。还要看 Rerank 模块,用 Cross-Encoder 对召回结果精排,这一步对最终质量提升很明显,但计算开销大,所以一般只对 top-50 做重排。
再说 RAG 的三大优势。事实准确性提升,本质是给生成加了事实锚点,答案可溯源。动态更新方面,知识库和模型解耦,新文档入库就能生效,比如电商大促时满减政策变了,只需要更新知识库,不用重新训练模型。幻觉缓解方面,检索到的上下文约束了生成空间,但这里有个前提:检索质量本身得过关,如果检索失败,模型还是会幻觉。所以上线时我会特别关注检索的置信度,分数太低就触发拒答。
举一个具体的业务场景:智能客服处理退款。用户问“我的订单为什么还没退款”,系统先检索知识库里的退款流程、当前订单状态,再结合这些信息生成回答。如果知识库里没有这个订单的异常处理记录,模型可能给出通用但错误的答案。所以落地时我会设计一个兜底逻辑:当检索到的文档与问题相关性低于阈值时,直接返回“请转人工”,而不是让模型硬答。
最后说下我的取舍。我更倾向把 RAG 看作一个增强组件,而不是万能的。它的上限由检索质量决定,所以我会把精力优先放在索引构建和检索优化上,比如用 Parent Document 策略平衡块大小和上下文完整性。另外,我最近在关注 Self-RAG 这种让模型自己判断是否需要检索、检索后是否足够可信的思路,它把决策权交给模型,但代价是推理更复杂,计算量更大。我觉得这是 RAG 从固定流程走向自适应的重要方向,但落地时得权衡好延迟和准确性。
关键一句:Self-RAG让模型自行判断检索时机和可信度,是RAG从固定流程走向自适应的方向,但推理复杂度和延迟是落地关键权衡。
面试官还可能这样问
- 问法 1 · 场景切入
我看你做过智能客服。假设用户问'我的订单什么时候到',你通过RAG去查物流知识库,但有时系统还是给出错误物流信息。你觉得在检索和生成环节,哪个地方最容易出问题导致事实不准?
- 问法 2 · 层层追问
大模型生成答案有时候会胡编,你怎么解决?……你说用RAG,那RAG为什么能减少幻觉?……具体来说,检索到的信息怎么约束模型不要自由发挥?
- 问法 3 · 直球架构
请系统阐述RAG的基本原理、核心架构和关键模块,以及它如何提升事实准确性、应对知识更新和减少幻觉。结合一个你熟悉的业务场景说明技术机制。