首页/AI/AI 应用速查/RAG 全流程(检索增强生成)

RAG 全流程(检索增强生成)

RAG 的五段流水线:解析 → 切分 → 向量化 → 检索(含重排)→ 生成。质量杠杆排序通常是:切分与重排 > 向量模型 > 生成模型。

AI 应用速查AI更新于 2026-10-13

RAG 全流程是什么

RAG(检索增强生成)解决的是模型不知道你私域数据的问题:先把文档解析、切分、向量化后入库,提问时先检索出相关片段,再把这些片段作为资料交给模型作答。它相对微调的优势是更新快、可溯源、成本低。整条链路有五段:解析、切分、向量化、检索与重排、生成。按经验,效果杠杆从大到小大致是切分与重排、向量模型、提示词写法。

基本信息

五段链路解析 → 切分 → 向量化 → 检索与重排 → 生成
核心组件文档解析器、切分器、嵌入模型、向量库、重排模型、生成模型
质量杠杆切分质量与重排效果影响最大,其次才是嵌入模型
关键指标召回率、命中片段的相关性、答案可溯源性
更新方式增量入库,文档变更后重建对应分块
可溯源要求每个片段保留来源与位置,便于引用与核对

五段流水线各做什么

阶段做什么关键选择
解析把 PDF、Word、HTML 还原成文本与结构扫描件先做文字识别,保留标题层级
切分把长文切成适合检索的片段按语义边界递归切分,控制片段长度
向量化把片段转成向量并与原文一起入库嵌入模型选型与维度、批次效率
检索与重排先粗召回再精排,取最相关片段混合检索加融合排序,再上重排模型
生成把片段作为资料交给模型作答要求标注依据,资料不足时明确拒答

典型使用场景

  • 内部知识问答:把制度、手册、规范做成可问答的知识库
  • 客服辅助:检索产品文档并生成可直接发送的回复
  • 合同与法务审阅:按条款检索并给出依据位置
  • 运维排障:从历史工单与故障报告中检索相似案例
  • 代码与文档助手:检索仓库说明与接口文档回答使用问题

检索到生成的最小闭环

检索到生成的最小闭环
qvec = embed(question)                       # 问题向量化,与入库时用同一模型
hits = vector_db.search(qvec, top_k=20)      # 先粗召回,候选池要够宽
hits = rerank(question, hits)[:5]            # 重排后只取最相关的几条
ctx = "\n\n".join(f"[{h.id}] {h.text}" for h in hits)
prompt = f"以下是资料,仅根据资料回答并标注编号,资料不足就说无法回答:\n{ctx}\n\n问题:{question}"
print(chat(prompt))                          # 生成阶段只消费检索结果

调优优先级

环节杠杆做法
切分高按段落与标题语义切分,重叠一小段避免答案被切断
重排高粗召回条数放宽到几十条,再用重排模型精排
检索方式中高向量加关键词的混合检索,专有名词场景收益明显
嵌入模型中用业务数据对比几个模型,看召回而不只看榜单
提示写法中明确只依据资料作答、标注依据、缺资料时说明
分块数量中给太少信息不足,给太多干扰增大且成本上升
没有评测集就没有优化方向:准备几十到上百条真实问题与标准答案,每次改动都跑一遍召回与答案质量,改动才有依据。
解析质量决定召回上限:表格错位、页眉页脚混进正文、多栏串行,这些问题在后续任何环节都无法补救。
检索到的内容一律当作资料而非指令:网页与文档里可能夹带命令式文本,处理不当会变成注入通道。

易错点

  • 切分按固定长度硬切:句子与表格被截断,检索到的片段读不通,答案质量无从谈起
  • 只做向量召回不做重排:语义相近但不相关的片段挤占名额,答案里出现无关引用
  • 没有评测集就反复调参:换模型、改切分都靠感觉,改进无法验证
  • 不保留来源与位置:答案无法引用与核对,出错时也找不到是哪一段资料的问题
  • 把检索内容当指令执行:外部文档里的命令式文本会直接影响模型行为

数据来源与参考

  • Lewis et al. Retrieval-Augmented Generation(arXiv 2005.11401);RAG 工程通行实践

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌