去年面试字节跳动时,面试官问我:“你们项目中的知识库问答是如何实现的?” 我回答:“直接调用 OpenAI 的 API,把文档塞进去让模型自行阅读。”
空气突然凝固了三秒。看到面试官眉头紧锁,我才意识到自己说错了——当时我们项目的文档超过二十万字,每次请求都超出 Token 上限,而且模型根本记不住上周才更新的接口文档。
面试失利后才彻底明白:这其实是“裸调 LLM”,正确的做法应当是采用 RAG。
调侃归调侃,RAG(检索增强生成)确实是当前大语言模型应用开发中至关重要的技术架构,也是面试中的高频考核点。今天梳理几道与 RAG 基础概念相关的面试题目,希望能为大家提供帮助:
- 什么是 RAG?
- 为什么需要采用 RAG?
- RAG 的常见应用场景有哪些?
- 既然应用前景如此广阔,为什么部分企业依然倾向使用传统搜索而非 RAG?
- RAG 的工作原理是什么?
- RAG 与传统搜索引擎有哪些本质区别?
- RAG 的核心优势与局限性分别体现在哪些方面?
什么是 RAG?
简单来说,RAG(Retrieval-Augmented Generation,检索增强生成)是一种将信息检索与生成式大模型紧密结合的技术框架。其核心思路是:在让大语言模型回答问题之前,先从知识库中提取相关上下文内容,然后将这些内容连同原始问题一同输入给模型,使其基于真实事实生成答案。这样一来,回答的准确性、时效性和针对性都能得到显著提升。
为什么需要采用 RAG?
尽管大语言模型本身已具备丰富的知识储备,但在实际落地过程中仍面临三大核心痛点。RAG 恰好能够对症下药。
1. 解决知识时效性问题
预训练的大语言模型知识是固定的,存在“知识截止日期”。例如 GPT-4 的知识可能仅更新至 2023 年 12 月。对于之后发生的新事件、新法规,模型无法直接回答。RAG 相当于为模型配备了一个“实时更新”的外部大脑,通过动态检索外部知识源,将最新信息即时传递给模型。
2. 打通私有数据访问
企业内部的文档、知识库、客户数据属于商业秘密,显然不能直接提交给公开的大模型。RAG 能够仅提取相关片段,在完全不暴露全量数据的前提下,让模型基于企业自有知识回答问题。这正是企业级智能应用真正落地的理想形态。
3. 提升回答的准确性与可追溯性
大语言模型偶尔会出现“胡编乱造”的情况,即术语所说的“幻觉”。RAG 通过提供明确的参考文本,强制模型基于检索到的真实信息作答,从而大幅降低错误回答的概率。此外,每个答案都能追溯到原始出处,具备可验证性和可审计性,信任感自然随之建立。
RAG 的常见应用场景有哪些?
RAG 最适合应用于那些“答案依赖外部资料、且资料会动态变化或内容冗长”的场景。大致可分为以下几个典型方向:
- 客服机器人:基于产品知识库进行问答、故障排查、流程引导。例如“如何办理退换货?”“某个报错码如何解决?”
- 研发/运维 Copilot:检索代码库、接口文档、告警手册,辅助定位问题并生成修复建议。
- 医疗助手:检索医疗指南、药品说明书、院内规范后生成辅助建议(不用于最终诊断)。例如“某药物有哪些禁忌?”“某项指标异常意味着什么?”
- 法律咨询:基于法规条文、案例、合同模板进行检索,生成条款解释与风险提示。例如“违约金如何计算?”“不可抗力条款怎样撰写更为稳妥?”
- 教育辅导:从教材、讲义、题库中检索知识点,生成讲解与解题步骤。例如“这道题对应哪个公式?如何推导?”
- 企业内部助手:连接制度文件、标准操作流程、会议纪要、技术文档,进行检索、总结、对比。例如“某流程的最新版本是什么?”“对比两份方案差异,给出结论。”
- 其他领域:投研、合规、审计(报告撰写、信息披露、内控检查);销售支持(产品手册、标书模板,生成方案并标注出处)。
既然应用前景如此广阔,为什么部分企业依然倾向使用传统搜索而非 RAG?
答案并不复杂:因为 RAG 存在推理成本和响应延迟的问题。在一些单纯为了“查找文件”而非“总结答案”的简单场景中,传统搜索在效率上仍然具有压倒性优势。
以下是一份简要的对比表格:
| 维度 | 传统搜索(搜索框) | RAG(检索+生成) |
|---|---|---|
| 用户目标 | 找到文档/页面/附件 | 直接获得可读答案/总结/对比结论 |
| 延迟与成本 | 极低、易于扩展 | 更高(检索+大语言模型推理) |
| 可控性/可审计 | 强:提供原文链接 | 较弱:可能产生误解/总结偏差,需要引用与评测 |
| 风险 | 低(主要是召回与排序) | 更高(幻觉、引用错误、权限泄露) |
| 数据治理 | 相对成熟(访问控制列表、字段过滤) | 更复杂(检索过滤+上下文脱敏+日志记录) |
| 适用场景 | 编号/标题/关键词检索、查找模板、查找制度原文 | 客服解答、技术故障排查、制度解读、跨文档总结对比 |
| 最佳实践 | Elasticsearch / BM25 + 权限过滤 | 混合检索 + 重排序 + 引用溯源 + 权限过滤 + 评测闭环 |
RAG 工作原理
RAG 的完整流程分为两个阶段:索引阶段和检索阶段。
索引阶段(离线),主要包括以下步骤:
- 输入文档:来源可以是文本、PDF、网页、数据库记录等。
- 清理文档:去除无用内容,例如 HTML 标签、特殊字符。
- 增强文档:添加时间戳、分类标签等元数据,为文档片段提供更多上下文信息。
- 文档拆分(Chunking):使用文本分割器将文档拆分为小片段,以适应模型上下文窗口的限制。
- 向量化表示:通过嵌入模型将这些片段转化为语义向量。
- 存储到向量数据库:将向量、原始内容和元数据存入向量数据库(例如 Milvus、Faiss、pgvector)。
索引通常离线定时执行(例如每周末更新),但在用户上传文档的场景中也可以在线完成。
索引阶段的流程如下:[图片]
检索阶段(在线),当用户提问时:
- 接收请求:获取用户的自然语言查询。部分系统会先进行查询改写或扩充。
- 查询向量化:使用嵌入模型将查询也转化为向量。
- 信息检索:在向量数据库中进行语义相似性搜索,找到最相关的文档片段。
- 生成增强:将相关片段与原始问题一同输入大语言模型,通过合适的提示词引导其基于检索内容作答。
- 输出生成:返回自然语言答案,并附带参考资料链接。
- 结果反馈(可选):若用户不满意,可提供反馈,形成闭环调优。
检索阶段的流程如下:[图片]
RAG 与传统搜索引擎的区别是什么?
虽然两者都涉及信息获取,但其底层逻辑和交付形式截然不同。
- 检索机制:传统搜索主要依赖倒排索引和词汇匹配(例如 BM25、TF-IDF),对关键词的字面形式依赖较强。RAG 通常采用向量语义搜索,能够理解同义词和深层语境。
- 处理逻辑:传统搜索本质上是相关性排序器,将候选文档按得分排序后直接呈现给用户。RAG 则相当于信息综合器,将多个知识片段交给大语言模型,由其进行逻辑归纳和跨文档信息整合。
- 结果交付:传统搜索返回文档列表(线索),用户还需二次阅读和筛选;RAG 直接给出答案,并通过引文标注确保来源可追溯。
- 时效性与数据范围:传统搜索依赖大规模爬虫和全网索引;RAG 更常用于私有知识库或垂直领域,能够低成本地让大语言模型获取实时或特定领域的知识,完全无需频繁微调模型。
RAG 的核心优势和局限性分别是什么?
从知识管理、工程落地到性能指标,RAG 的优势与挑战都十分显著。
核心优势:
- 知识时效性与低维护成本:与微调相比,RAG 无需重新训练模型。企业只需更新向量库或知识库,模型便能即时获取最新信息。处理新闻、法规、产品文档等高频变动的内容尤为合适。知识更新成本可从数千美元降至几乎为零。
- 显著降低幻觉并提供引文追溯:RAG 将模型从“背诵答案”转变为“查阅资料作答”。每个回答都有出处,对于金融、医疗、法律等对准确性要求极高的场景至关重要。
- 数据安全与细粒度权限控制:可在检索层实现多租户隔离和访问控制,确保用户只能查看权限范围内的数据。与将敏感数据通过微调“烧入”模型参数(存在泄露风险)相比,RAG 天然具备更高的安全性与合规性。
- 领域适应性强:无需针对特定领域重新训练模型,搭建好知识库即可快速适配各类垂直场景。
局限性与工程挑战:
- 严重的检索依赖性:“垃圾进,垃圾出”这一原则在 RAG 中尤为突出。如果嵌入表达不佳、分块策略不当,召回的内容出现偏差,再强大的下游模型也无能为力。
- 上下文窗口与推理噪声:尽管当前上下文窗口已扩展到百万级,但并不能无限制地填充信息。注入过多无关片段会稀释注意力、干扰逻辑推理,还会产生不必要的 Token 开销。
- 首字延迟增加:完整链路包括查询改写、向量化、相似度检索、重排序,再到上下文构建和大语言模型生成,每个环节都会增加延迟。
- 工程复杂度:需要维护向量数据库、处理文档更新的增量索引、优化检索策略等,比单纯调用大语言模型 API 复杂得多。
- 长文本 Token 成本:虽然节省了训练费用,但单次请求需要携带大量上下文信息,推理成本(输入 Token)明显高于普通对话。
总结
RAG 是当前企业级 AI 应用中最核心的技术架构之一。快速回顾几个关键要点:
- RAG 是什么:先从知识库检索相关内容,再让大模型基于检索结果生成答案,以减少幻觉、提升可追溯性。
- 为什么需要 RAG:解决大语言模型的知识时效性、私有数据访问和幻觉三大核心问题。
- RAG 与传统搜索的区别:RAG 是“信息综合器”,传统搜索是“相关性排序器”。
- 核心优势:知识时效性、降低幻觉、数据安全、领域适应性强。
- 局限性:检索依赖性、上下文窗口限制、工程复杂度、Token 成本。
面试高频问题:
- 什么是 RAG?为什么需要 RAG?
- RAG 和传统搜索引擎有什么区别?
- RAG 的核心优势和局限性是什么?
- 什么场景适合用 RAG?什么场景不适合?
学习建议也很简单:
第一,理解原理。不要只记住流程,要深入理解每一步为什么这样设计。
第二,动手实践。搭建一个简单的 RAG 系统,从文档切分到向量检索再到模型生成,完整地走一遍流程。
第三,关注优化。分块策略、嵌入模型选择、重排序机制……每一个环节都值得深入探索。
RAG 是连接大语言模型与企业知识的桥梁。掌握它,已成为 AI 应用开发的必备技能。
