RETRIEVAL-AUGMENTED GENERATION
RAG面试题怎么回答?先把检索与生成拆开
RAG不是“向量库加大模型”这么简单。面试中要能讲清数据如何进入索引、查询如何召回与重排、上下文如何供模型使用,以及答案错误时如何判断是检索失败还是生成失败。
RAG是什么?
RAG(检索增强生成)是在生成回答前,从外部知识源检索相关内容并作为上下文提供给模型。它把参数化模型与可更新、可追溯的非参数知识连接起来,适合需要私有资料、时效信息或引用依据的任务。
原始RAG论文研究的是预训练生成模型与外部稠密索引的结合。工程实践通常扩展为文档解析、切分、索引、查询理解、召回、重排、上下文组装、生成、引用与评测。回答时应先说明自己的系统边界,避免把某个框架的默认流程当成RAG的唯一实现。
端到端链路应该怎么讲?
- 摄取:读取文件,保留标题、章节、页码、权限和更新时间等元数据。
- 切分:按语义或结构形成可检索片段,设置重叠以减少边界信息丢失。
- 索引:生成向量表示,也可同时建立关键词倒排索引。
- 查询:对用户问题做规范化、改写、分解或过滤。
- 召回与重排:先广泛找候选,再按相关性、权限、新鲜度排序。
- 上下文组装:去重、控制词元预算,保留来源标识。
- 生成与校验:要求基于证据作答,无法支持时拒答或提示缺少资料。
切分策略为什么影响很大?
| 策略 | 优势 | 风险 | 适用线索 |
|---|---|---|---|
| 固定长度 | 简单、吞吐稳定 | 可能截断语义和表格 | 结构弱、文本较规整 |
| 按段落/标题 | 保留文档结构 | 片段长度差异大 | 手册、规范、知识文章 |
| 滑动重叠 | 缓解边界丢失 | 重复召回和索引膨胀 | 连续叙述、跨段信息 |
| 父子分块 | 小块召回、大块补上下文 | 链路与存储更复杂 | 长文档和章节型资料 |
不要直接回答“最佳块大小是多少”。块大小取决于文档结构、问题粒度、Embedding模型、召回数量和上下文预算,应通过真实查询集评测。PDF还要先检查重复页眉、断行、扫描OCR和表格解析,否则异常文本会导致索引成本和召回噪声同时上升。
向量检索、关键词检索与混合检索怎么选?
向量检索更擅长语义相似,关键词检索对专有名词、编号、错误码和精确短语更稳定。混合检索把两类候选合并,再用重排器或业务规则排序。选择不应基于“哪个更先进”,而应基于查询分布:如果用户经常输入产品型号、法规条款或代码符号,纯向量检索可能漏掉关键精确匹配。
Embedding模型更换要注意什么?
查询与文档通常应使用兼容的表示方式;更换模型、维度或归一化规则后,需要重新构建索引并回归评测。多语言、领域术语、文本长度和部署延迟都应纳入选型,不能只看公开榜单。
回答错误时怎样定位?
先问“正确证据有没有被检索到”,再问“模型有没有正确使用证据”。这一步能把RAG故障分成数据、检索、上下文和生成四类。
| 现象 | 优先检查 | 可能改进 |
|---|---|---|
| 完全没有相关片段 | 解析、切分、查询、权限过滤、召回 | 修复数据,查询改写或混合检索 |
| 相关片段排在后面 | Top-K、相似度、重排和去重 | 增加候选并优化重排 |
| 证据正确但回答错 | 上下文顺序、提示、冲突资料 | 压缩上下文、明确引用与拒答 |
| 回答引用不存在内容 | 引用映射与生成后校验 | 引用必须绑定实际片段ID |
| 线上越来越慢 | 解析队列、向量请求、检索P95、重排 | 缓存、批处理、限流和超时降级 |
RAG如何评测?
评测至少拆成三层。检索层看相关片段是否进入候选以及排名;生成层看答案是否由上下文支持、是否回答问题;端到端层看任务成功、延迟、成本和拒答。RAGAS论文提出从上下文相关性、回答忠实度和回答相关性等维度评估RAG,但自动指标应与人工审阅和业务样本结合。
- 构建覆盖正常问题、歧义问题、无答案问题和权限问题的测试集。
- 保存每次检索候选、分数、重排结果、最终上下文和引用。
- 分别记录召回、生成与全链路P50/P95延迟。
- 变更切分、Embedding或提示时运行同一回归集。
工程边界:RAG可以增加依据和知识更新能力,但不能自动保证真实、完整或无偏。索引中的错误、过时与恶意内容会进入回答链路;高风险场景仍需要权限、来源校验和人工确认。
常见问题
Top-K越大召回越好吗?
候选更多可能提高召回,也会增加噪声、重排和上下文成本。应同时评估召回率、最终答案和延迟,而不是只调一个参数。
RAG与微调有什么区别?
RAG主要在请求时提供外部知识;微调主要改变模型行为或参数。知识更新、引用和访问控制通常优先考虑RAG,稳定格式与任务行为可评估微调,两者也可组合。
为什么PDF比Markdown难处理?
PDF保存的是版面表达,可能包含重复页眉、分栏、扫描图像、表格和错乱阅读顺序;Markdown通常已有清晰文本结构。应先解析清洗再估算词元和索引费用。
怎样回答没做过的RAG优化?
明确自己的经验范围,再给出诊断顺序、实验变量和成功指标。不要把阅读过的方案包装成亲自上线的结果。
来源与适用范围
定义与架构参考 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks;评测维度参考 RAGAS;长上下文利用限制参考 Lost in the Middle。论文中的系统与指标对应其研究设定,工程实现需以自己的数据、权限和延迟目标验证;来源与面试稳不存在合作关系。