大模型的 RAG 主要用来解决什么问题
P0 · rag
🏷 标签:rag, hallucination, knowledge-update, domain-adaptation
1️⃣ 考察意图
面试官想看你是否理解 RAG 不是“万能补丁”,而是解决 LLM 在知识边界、事实性、可更新性三个维度的结构性缺陷。考察类型是工程取舍 + 系统设计。刁钻点在于:很多人只会背“解决幻觉”,但说不清 RAG 到底解决了哪类幻觉(知识型 vs 推理型),以及为什么不用微调或 prompt 工程替代。答好了能展示你对 LLM 能力边界、检索系统与生成系统耦合的深度理解,以及在实际落地中做技术选型的判断力。
2️⃣ 标准答
RAG 的核心是用外部知识库约束 LLM 的生成空间,解决三个根本问题:
- 知识截止与时效性LLM 训练数据有截止日期(如 GPT-4 知识截止 2023 年 10 月),无法回答“今天股价”或“最新政策”。RAG 通过检索最新文档(如新闻、数据库)注入上下文,让模型基于实时信息生成。工程取舍:检索频率与延迟的平衡——实时索引(如 Elasticsearch 近实时搜索) vs 批量更新(每天重建一次),前者延迟低但资源消耗高,后者适合非高频场景。
- 知识型幻觉LLM 对低频实体(如“2024 年诺贝尔化学奖得主”)或长尾事实(如“某公司 2023 年 Q3 财报中的研发投入”)容易编造。RAG 通过检索相关文档(如维基百科、财报 PDF)提供事实锚点,强制模型在检索结果内生成。实际落地的坑:检索质量直接决定幻觉率。如果检索到的文档不相关(如 query 是“苹果公司”,但检索到“苹果水果”),模型反而会被误导。解法:用混合检索(BM25 + Dense Embedding)提升召回率,再加重排序(如 Cohere Rerank 或 Cross-Encoder)过滤噪声。
- 领域知识不足通用 LLM 在垂直领域(如医疗、法律、金融)表现差,因为训练数据中领域文本占比低。RAG 可注入专业文档(如《药典》、法律条文),无需微调即可适配。为什么不用微调:微调成本高(需要标注数据、GPU 资源),且每次知识更新需重新训练。RAG 只需替换文档库,适合知识频繁变动的场景(如法规更新、产品手册)。
- 可解释性与可信度纯 LLM 输出是黑盒,无法追溯来源。RAG 可以展示“答案来自文档 X 的第 Y 段”,让用户验证。这在金融、医疗等合规场景是刚需。工程取舍:展示引用 vs 保护隐私——如果文档包含敏感信息(如客户病历),需要做脱敏或权限控制,不能直接暴露原文。
总结:RAG 不是解决所有幻觉(如逻辑推理错误、数学计算错误),而是专门解决知识缺失型幻觉。它让 LLM 从“记忆模式”切换到“检索+阅读模式”,本质是用检索系统的确定性弥补生成系统的不确定性。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从三个层面回答:第一,RAG 解决 LLM 的知识截止问题,通过检索最新文档让模型回答时效性内容;第二,解决知识型幻觉,用检索结果约束生成,避免编造长尾事实;第三,解决领域知识不足,无需微调即可注入专业文档。总结一句:RAG 的核心价值是用外部知识库的确定性弥补 LLM 生成的不确定性,特别适合知识频繁更新或需要可追溯来源的场景。”
4️⃣ 高频追问 & 应对
追问 1:RAG 和微调(Fine-tuning)在解决领域知识不足时,怎么选?
看两个维度:知识变动频率和数据量。如果知识每周更新(如电商商品信息),选 RAG,因为微调需要重新训练,成本高;如果知识稳定且数据量大(如法律条文库),微调可以压缩模型体积、降低推理延迟。实际落地常组合使用:先微调让模型理解领域术语和格式,再 RAG 注入实时数据。例如金融场景,微调让模型学会财报格式,RAG 检索最新财报数字。
追问 2:如果检索结果全是噪声,RAG 反而比纯 LLM 更差,怎么解决?
核心是检索质量和鲁棒性。检索质量用混合检索(BM25 + Dense)提升召回,再加重排序过滤。鲁棒性方面,可以在 prompt 中加指令:“如果检索结果与问题无关,请基于自身知识回答,并标注‘未找到可靠来源’”。另外,用检索结果置信度阈值——如果最高分低于 0.5,直接 fallback 到纯 LLM 生成。实际案例:在医疗 QA 中,我们设置 BM25 得分低于 0.3 时,模型输出“建议咨询医生”,避免误导。
追问 3:RAG 怎么处理多跳问题(如“2024 年诺贝尔化学奖得主所在大学的校长是谁”)?
多跳需要迭代检索或图结构检索。简单方案:先用第一跳检索“2024 年诺贝尔化学奖得主”,得到“David Baker”,再检索“David Baker 所在大学”得到“华盛顿大学”,最后检索“华盛顿大学校长”。工程上可以用 LangChain 的 MultiHop 链或 LlamaIndex 的 RecursiveRetriever。注意:多跳会放大检索错误,每跳误差累积,所以需要每步做结果验证(如用 LLM 判断检索结果是否回答了当前子问题)。
5️⃣ 避坑 · 常见错误答法
- ❌ 说“RAG 解决所有幻觉问题” → ✅ 正确说法:RAG 只解决知识型幻觉(事实错误),不解决推理型幻觉(逻辑矛盾)或指令型幻觉(误解用户意图)。例如“1+1=3”这种错误,RAG 帮不了。
- ❌ 说“RAG 就是检索+生成,很简单” → ✅ 正确说法:RAG 的难点在检索与生成的耦合——检索结果太短则信息不足,太长则引入噪声;生成时模型可能忽略检索结果(position bias),需要调整 prompt 或使用注意力掩码强制关注检索内容。
- ❌ 说“RAG 可以完全替代微调” → ✅ 正确说法:RAG 和微调是互补关系。RAG 适合知识更新快、数据量大的场景;微调适合知识稳定、需要模型深度理解领域语义的场景。例如医疗诊断,微调让模型理解症状描述,RAG 检索最新药物指南。
6️⃣ 简历呼应
- 如果你有 RAG 项目:从“检索质量对幻觉率的影响”切入,展示你如何用混合检索 + 重排序将幻觉率从 15% 降到 3%,并给出具体指标(如 NDCG@10、Hallucination Rate)。
- 如果你只做过传统 NLP:用“信息检索 + 文本生成”类比,说明 RAG 本质是 IR 系统与 NLG 系统的结合,强调你对 BM25、TF-IDF、倒排索引等传统技术的理解如何迁移到 RAG 的检索模块。
- 如果你是校招无项目:聚焦论文复现,如“我复现了 Lewis 2020 的 RAG 论文,用 DPR 检索 + BART 生成,在 Natural Questions 上 F1 达到 42.3,并分析了检索 top-k 对生成质量的影响”。
- Lewis et al., "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", NeurIPS 2020
- Karpukhin et al., "Dense Passage Retrieval for Open-Domain Question Answering", EMNLP 2020
- Izacard et al., "Atlas: Few-shot Learning with Retrieval Augmented Language Models", JMLR 2023
- 博客:LangChain 官方文档 - "RAG from Scratch" 系列
- 工具:LlamaIndex 的 "RAG Evaluation" 模块,用于量化检索质量与生成质量