60 秒回答模板

RAG 可以从检索和生成两端优化。检索侧包括文档清洗、合理 chunk、标题和元数据增强、向量和关键词混合召回、查询改写、多路召回、重排和去重;生成侧包括上下文压缩、引用约束、答案格式控制、拒答策略和减少幻觉。工程侧要处理索引增量更新、权限过滤、缓存、延迟和监控。评估要看召回命中、上下文相关性、答案正确率、引用准确性和用户反馈。

考点 检索质量
难度 真实面经题
回答目标 讲清方法、取舍和追问

深入解析

01

文档和切分先打底

RAG 效果很大程度取决于知识库质量。要清洗重复、过期和低质量文档,按语义边界切 chunk,并保留标题、层级、来源、时间和权限等元数据。

02

召回阶段做混合检索

单纯向量召回可能漏掉精确术语,关键词检索又不懂语义。常见做法是 BM25、向量检索、多路召回和 query rewrite 结合,提高召回覆盖。

03

重排提高上下文质量

召回结果需要用 cross-encoder、学习排序模型或规则重排,过滤重复、过旧、低权限和弱相关 chunk,保证送给模型的上下文更集中。

04

生成侧控制幻觉

提示词要要求基于上下文回答,必要时引用来源,缺证据时拒答。还可以做上下文压缩、答案校验、格式约束和敏感内容过滤。

05

评估闭环不可少

RAG 优化要用问题集评估召回命中率、重排相关性、答案正确率、引用准确率、延迟和成本,并结合线上反馈持续迭代。

易错点

  • 不要把 RAG 优化只说成换 embedding 模型。
  • 不要把低质量文档直接入库,知识库清洗和版本管理很关键。
  • 不要忽略引用准确性、权限过滤和拒答策略。

面试官追问

为什么向量召回还要配 BM25?

BM25 对专有名词、编号、错误码和精确关键词更稳,向量召回擅长语义相似,混合后覆盖更好。

chunk 太大或太小有什么问题?

太大容易引入噪声并占上下文,太小会丢失语义和上下文关系,需要按文档结构调参。

RAG 如何做权限控制?

索引和检索阶段都要携带权限元数据,检索结果必须按用户权限过滤,不能只在生成后处理。