[object Object]

前言

本文章是对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 的优势是知识可更新、可追溯、成本较低;微调的优势是模型行为更稳定,但不适合频繁注入新知识