RAG 架构怎么工作?
结合检索与生成,知识密集型任务的优势与局限
原题:请解释检索增强生成(RAG)的基本架构和工作流程,阐述其如何结合信息检索与语言生成能力,并讨论其在知识密集型任务中的优势以及可能存在的局限性。
评估与监控 · 百度真题
30 秒回答
- 清晰描述RAG的两阶段架构(检索+生成)
- 说明向量检索的核心机制(embedding、相似度计算)
- 解释RAG缓解幻觉的原理
- 列举至少2个优势(知识时效性、可溯源性等)
回答与解析
答案要点
- 清晰描述RAG的两阶段架构(检索+生成)
- 说明向量检索的核心机制(embedding、相似度计算)
- 解释RAG缓解幻觉的原理
- 列举至少2个优势(知识时效性、可溯源性等)
- 提及至少2个局限(检索质量依赖、上下文长度限制等)
RAG基本架构
RAG = 检索(Retrieval) + 生成(Generation),核心思想是"外挂知识库":
用户Query → 向量化 → 向量检索 → Top-K文档 → 拼接Prompt → LLM生成
工作流程拆解
1. 索引阶段(离线)
- 文档切分(Chunking)
- Embedding模型编码 → 存入向量数据库(如Milvus、Faiss)
2. 检索阶段(在线)
- Query向量化,计算相似度,召回Top-K相关片段
3. 生成阶段
- 将检索结果作为上下文,与Query一起送入LLM
- 典型Prompt模板:"基于以下信息回答问题:[检索内容] \n 问题:[Query]"
核心优势(知识密集型任务)
| 优势 | 说明 |
|---|---|
| 缓解幻觉 | 生成内容有明确来源,可事实校验 |
| 知识时效性 | 无需重训模型,更新知识库即可 |
| 可溯源性 | 输出可关联原始文档,满足合规要求 |
| 成本可控 | 相比全量微调,实施成本低 |
主要局限
- 检索质量瓶颈:Embedding不准、Query-doc语义Gap、切分策略不当导致信息丢失
- 上下文限制:K值过大超出LLM窗口,K值过小覆盖不全
- 噪声敏感:检索到无关内容会干扰生成("Lost in the Middle"问题)
- 复杂推理弱:需要多跳推理的问题,单轮检索难以解决
一句话总结
RAG的本质是用检索的"确定性"弥补LLM参数的"不确定性",是当前落地大模型最务实的路径之一。
口语版讲法(约4分钟)
- 一句话定位:RAG本质是给LLM外挂可更新的知识库
- 两阶段架构:离线索引与在线检索+生成
- 核心优势:缓解幻觉、知识时效、成本可控
- 落地风险:检索质量是瓶颈、上下文限制、噪声敏感
- 工程取舍:混合检索+重排+置信度过滤
这道题问的是检索增强生成,其实本质上是在问:怎么用外挂知识库来弥补大模型本身的知识短板。你想想,大模型参数里存的知识是静态的,而且容易幻觉,RAG的思路就是我不指望你把所有东西都记在脑子里,我给你一个随时可以查的资料库,你回答的时候先查再答。
整体架构很清晰,就两段。第一段是离线索引,把文档切分成块,然后拿Embedding模型转成向量,存到向量数据库里,比如Faiss或Milvus。第二段是在线流程,用户提问来了,同样向量化,到库里搜最相似的Top-K片段,然后把这些片段和问题拼成Prompt,喂给LLM生成答案。
核心优势其实很实在。先说缓解幻觉,因为生成的内容有出处,可以溯源验证,这在金融、医疗这些合规要求高的场景特别重要。再一个是知识时效性,知识库一更新,答案就跟着变,不用重新训练模型,成本低得多。还有就是成本可控,比起全量微调,RAG几乎没什么训练开销,换知识库就行。
但落地的时候坑也不少。最关键的瓶颈是检索质量。如果Embedding模型不准,或者Query和文档的语义对不上,召回的内容就是错的,那LLM再强也答不对。另一个是上下文窗口限制,你召回的片段多了,超出LLM能处理的长度,它就开始丢信息;召回的少了,覆盖不全。还有个噪声敏感问题,检索到无关内容会干扰生成,这就是所谓的"迷失在中间"效应。
所以真正落地的时候,我会做几个工程取舍。先说混合检索,不只用向量,还结合BM25这类关键词匹配,让两种方法互补。再一个是加重排,召回Top-K之后用更精细的模型比如Cross-Encoder重新打分,把真正相关的顶上来。还有就是置信度过滤,分太低的直接扔掉,宁可少给信息也别给错的。
还有一个常被问到的问题是RAG和微调的边界。我的看法是,RAG适合知识更新快、需要溯源的场景,比如客服的退款政策、企业SOP;微调适合让模型学会特定风格或推理模式,比如医疗诊断的思维链。实际项目里我经常两者一起用,微调让模型更听话,RAG给它最新知识。
所以总的来说,RAG不是万能药,但它确实是当前落地大模型最务实的一条路。我会把它看成是"给模型配一个可更新的外部大脑",核心是把检索的确定性注入到生成的开放性里。
关键一句:RAG和微调的边界:RAG适合知识更新快、需溯源的场景,微调适合风格或推理模式学习,实际常两者结合。
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做电商客服机器人,用户问‘iPhone 15有啥优惠’,你直接让大模型答,它可能瞎编。如果用RAG,你会怎么设计,让回答既准确又能溯源到商品文档?
- 问法 2 · 层层追问
大模型做知识问答容易胡说八道,你怎么解决?……如果外挂一个知识库呢?……那具体怎么把用户问题转成检索,再把搜到的内容和问题拼起来给模型?整个流程怎么串?
- 问法 3 · 直球架构
聊一下RAG的架构和工作流程,从索引、检索到生成怎么配合?它为什么能缓解幻觉?实际落地中,你会碰到哪些瓶颈,比如检索不准或上下文不够用?