前言
本文章是对RAG的系统学习的相关笔记
RAG
检索增强生成
架构
1)离线知识构建
解析 清洗 切分 元数据标注 向量化 写入向量数据库
2)在线问答推理
问题理解 召回 重排 拼接 生成
RRF融合
只看排名,不用对齐不同检索器的分数
HyDE:假设性文档检索
大模型对问题假想答案,用答案去丰富检索文本
Slot Extraction:槽位抽取
把用户提示词抽取为JSON形式,直接用于metadata过滤和检索
Rag的评价指标
1、检索评价
Recall@K
Precision@K
MMR
nDCR
2、生成评价
面试问题汇总
问题 1:RAG 的核心流程是什么?
可以回答:
RAG 分为离线知识构建和在线问答两部分。离线阶段会对文档进行解析、清洗、切分、元数据标注、embedding 向量化,并写入向量数据库。在线阶段会对用户问题进行改写或结构化处理,然后通过向量检索、关键词检索、metadata 过滤等方式召回相关 chunk,再经过 rerank 精排,最后把高相关上下文拼接进 prompt,让大模型基于检索内容生成答案。
问题 2:为什么不能只用向量检索?
可以回答:
纯向量检索适合语义相似问题,但对数字、专有名词、代码、订单号、地点精确匹配等场景不一定稳定。比如用户问具体订单号、政策编号或景点名称时,关键词检索和 metadata 过滤反而更可靠。所以实际系统中通常会使用混合检索,把向量检索的语义召回能力和 BM25/关键词检索的精确匹配能力结合起来。
问题 3:chunk 太大或太小有什么问题?
可以回答:
chunk 太大会导致一个片段里包含太多无关信息,检索虽然命中,但放进 prompt 后会干扰模型;chunk 太小会破坏语义完整性,比如只召回一句话却缺少标题、上下文或限定条件。实际需要结合文档结构进行切分,比如按标题、段落、语义边界切分,并设置适当 overlap 来保留上下文。
问题 4:Rerank 的作用是什么?
可以回答:
初始检索更像粗召回,目标是尽量不要漏掉相关文档,但排序不一定准确。Rerank 是精排阶段,它会结合用户问题和候选 chunk 重新计算相关性,把真正能回答问题的内容排到前面。这样可以提升 topK 结果质量,减少无关上下文进入 prompt。
问题 5:RAG 如何降低幻觉?
可以回答:
RAG 通过引入外部知识上下文,让模型基于检索资料回答,可以降低凭空编造的概率。但 RAG 不能完全消除幻觉,还需要 prompt 约束、引用来源、检索为空时拒答、答案一致性检查等机制。比如可以要求模型只根据提供资料回答,如果资料不足就明确说明无法确定。
问题 6:如何评估 RAG 效果?
可以回答:
可以分为检索效果和生成效果两层。检索层看 Recall@K、Precision@K、MRR、nDCG,判断正确文档是否被召回、是否排在前面。生成层看答案正确性、完整性、是否基于上下文、是否存在幻觉、引用是否准确。工程上可以构造一批标准问答集,持续评估不同 chunk 策略、embedding 模型、topK、rerank 策略对效果的影响。
问题 7:RAG 和微调怎么选?问题 1:RAG 的核心流程是什么?
可以回答:
RAG 分为离线知识构建和在线问答两部分。离线阶段会对文档进行解析、清洗、切分、元数据标注、embedding 向量化,并写入向量数据库。在线阶段会对用户问题进行改写或结构化处理,然后通过向量检索、关键词检索、metadata 过滤等方式召回相关 chunk,再经过 rerank 精排,最后把高相关上下文拼接进 prompt,让大模型基于检索内容生成答案。
问题 2:为什么不能只用向量检索?
可以回答:
纯向量检索适合语义相似问题,但对数字、专有名词、代码、订单号、地点精确匹配等场景不一定稳定。比如用户问具体订单号、政策编号或景点名称时,关键词检索和 metadata 过滤反而更可靠。所以实际系统中通常会使用混合检索,把向量检索的语义召回能力和 BM25/关键词检索的精确匹配能力结合起来。
问题 3:chunk 太大或太小有什么问题?
可以回答:
chunk 太大会导致一个片段里包含太多无关信息,检索虽然命中,但放进 prompt 后会干扰模型;chunk 太小会破坏语义完整性,比如只召回一句话却缺少标题、上下文或限定条件。实际需要结合文档结构进行切分,比如按标题、段落、语义边界切分,并设置适当 overlap 来保留上下文。
问题 4:Rerank 的作用是什么?
可以回答:
初始检索更像粗召回,目标是尽量不要漏掉相关文档,但排序不一定准确。Rerank 是精排阶段,它会结合用户问题和候选 chunk 重新计算相关性,把真正能回答问题的内容排到前面。这样可以提升 topK 结果质量,减少无关上下文进入 prompt。
问题 5:RAG 如何降低幻觉?
可以回答:
RAG 通过引入外部知识上下文,让模型基于检索资料回答,可以降低凭空编造的概率。但 RAG 不能完全消除幻觉,还需要 prompt 约束、引用来源、检索为空时拒答、答案一致性检查等机制。比如可以要求模型只根据提供资料回答,如果资料不足就明确说明无法确定。
问题 6:如何评估 RAG 效果?
可以回答:
可以分为检索效果和生成效果两层。检索层看 Recall@K、Precision@K、MRR、nDCG,判断正确文档是否被召回、是否排在前面。生成层看答案正确性、完整性、是否基于上下文、是否存在幻觉、引用是否准确。工程上可以构造一批标准问答集,持续评估不同 chunk 策略、embedding 模型、topK、rerank 策略对效果的影响。
问题 7:RAG 和微调怎么选?
可以回答:
如果问题是让模型掌握私有知识、实时知识或频繁变化的业务资料,优先用 RAG;如果问题是让模型学习固定的回答风格、格式或特定任务能力,可以考虑微调。RAG 的优势是知识可更新、可追溯、成本较低;微调的优势是模型行为更稳定,但不适合频繁注入新知识
可以回答:
如果问题是让模型掌握私有知识、实时知识或频繁变化的业务资料,优先用 RAG;如果问题是让模型学习固定的回答风格、格式或特定任务能力,可以考虑微调。RAG 的优势是知识可更新、可追溯、成本较低;微调的优势是模型行为更稳定,但不适合频繁注入新知识