RAG 是检索增强生成的英文缩写,可以理解为先检索资料,再让大模型基于资料回答。它在大模型应用面试里非常高频,但很多回答只停在“把文档向量化存起来”。面试官会继续问:文档怎么切分?为什么召回不到?召回太多怎么办?资料冲突怎么办?模型还是胡说怎么办?
RAG 的核心不是向量库,而是资料能不能被正确找到和正确使用。
文档切分决定召回质量
文档切得太大,检索结果里可能包含很多无关内容;切得太小,又可能丢失上下文。切分时要保留标题层级、段落关系和业务边界。比如制度文档按条款切,接口文档按接口切,教程文档按章节切。
如果文档结构很乱,先做清洗和结构化,比直接向量化更重要。面试里能讲这一点,会比只说“用了向量数据库”更有经验感。
召回不只靠向量
向量召回擅长语义相似,但对专有名词、编号、精确字段不一定稳定。关键词召回对精确匹配更强,但对同义表达不够灵活。真实项目里常用混合召回,也就是把语义召回和关键词召回结合起来,再做合并去重。
召回后还要重排。重排可以理解为把候选资料重新排序,让更可能回答问题的资料排在前面。这样可以减少无关资料进入模型上下文。
失败定位要分层
RAG 回答错误时,不要只怪模型。先看资料库有没有答案,再看召回结果有没有找出来,再看排序是否把正确资料放前面,最后看模型是否正确使用资料。如果资料没召回,改提示词没有用;如果资料冲突,需要规则或人工确认权威来源。
一段项目回答
可以这样说:我会把 RAG 问题拆成文档处理、召回、重排和生成四层。文档切分时保留标题和段落边界;召回采用向量和关键词混合,兼顾语义和精确词;召回后重排,控制进入模型的资料数量;生成时要求模型基于资料回答,资料不足就拒答。线上坏例会按资料缺失、召回失败、排序错误和生成错误归因。
这样的回答能让面试官相信你理解 RAG 的工程难点,而不是只接过一个向量库。
检索问题要看召回链路
RAG 文章如果只讲向量库,很容易显得浅。真实项目里,召回质量通常由多个小决策共同决定:文档怎么清洗、标题是否保留、切分是否太碎、关键词和向量是否结合、重排是否把关键资料放到前面。
| 链路位置 | 常见问题 | 面试里怎么讲 | 验证方式 |
|---|---|---|---|
| 文档清洗 | 表格、编号、标题丢失 | 重要结构要保留成可检索文本 | 抽样看入库片段 |
| 切分 | 一句话被切断上下文 | 切分要兼顾完整语义和长度 | 看坏例命中片段 |
| 召回 | 专有名词匹配不到 | 向量召回结合关键词召回 | 对比前几条命中率 |
| 重排 | 正确资料排不到前面 | 用业务字段或模型重排 | 看前几条证据是否可答 |
读者真正能用上的点是:遇到回答错,先别急着调模型参数,先把“标准答案是否存在、是否召回、是否排前、是否被模型使用”这四步查清楚。