RAG 检索增强生成落地实践:从切片到评估
RAG 解决什么问题
大模型的知识有截止时间,也不了解企业内部资料。RAG(Retrieval-Augmented Generation)的思路是:先从知识库里检索相关片段,再把片段和问题一起交给模型回答。
一、文档切片
切片质量直接决定检索上限:
- 按语义结构切(标题、段落),不要简单按固定字数硬切
- 每片 300~800 字比较合适,相邻片段保留 10%~15% 重叠
- 每个切片带上元数据:来源文档、章节标题、更新时间
二、检索
单纯的向量检索对专有名词、编号类查询效果很差。实践中推荐 混合检索:
- 向量检索召回语义相近的片段
- 关键词检索(BM25)召回字面匹配的片段
- 合并后用重排模型(Reranker)重新打分,取前 5~8 条
三、生成
请仅根据 <context> 中的资料回答问题。
如果资料不足以回答,请直接说明“资料中没有相关信息”。
回答末尾列出引用的资料编号。
要求模型标注引用来源,既方便用户核对,也便于排查答错的原因。
四、评估
不评估就无法迭代。我常用的指标:
- 召回率:正确答案所在片段是否出现在检索结果里
- 忠实度:回答是否完全基于给出的资料
- 答案准确率:人工或用强模型对照标准答案打分
准备 100 条左右覆盖主要场景的问答对,作为每次调整切片和检索参数后的回归基线。
小结
先把检索做好,再去调生成;先建立评估集,再谈优化。