RAG 流水线设计:检索—增强—生成的要点

RAG(检索增强生成)的思路很朴素:用户提问时,先从知识库里捞出最相关的几段,拼进提示,再让 LLM 基于这些资料回答。它把模型「凭记忆瞎编」变成「看着资料答」,既缓解幻觉,又能接入私有、时效性强的内容。

切分:文档怎么拆才查得准

检索质量的上游是切分(Chunking)。切太大,一段里噪点多、命中不精准;切太小,语义被切碎、上下文断裂。常见做法是按段落或固定 token 窗口滑动切分,并保留少量重叠避免截断。对表格、代码等结构,要按结构边界切,而不是硬按字数。

检索与重排两段式

先用向量库做粗召回,取候选 Top-K,再用重排模型(Reranker)按「与问题的真实相关度」精排,把真正有用的提到最前。这一粗一精能显著提升塞进上下文的那几条的质量,比单靠向量相似度更稳。

问题 -> 向量召回 Top-20 -> 重排模型 -> 取 Top-3
-> 组装提示:
  资料1... 资料2... 资料3...
  请仅依据上述资料回答:<问题>

上下文组装与边界

把资料塞进提示时要带来源引用,方便溯源与校验;明确告诉模型「只依据资料、资料没有就承认不知道」,能进一步压幻觉。还要控制总量别撑爆上下文窗口,必要时做压缩或按需取用。评测上别只看答案流畅,要测召回率与引用准确率。

小结

RAG 用「先检索后生成」把外部知识引入 LLM,关键在于切分合理、召回加粗排、上下文带引用且设边界。它是对抗幻觉、接入私有知识的实用方案,但效果高度依赖检索质量,需从切分、重排到评测全链路打磨。

参考与延伸阅读

  • Lewis et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(NeurIPS 2020)。RAG 的奠基论文。已核验。
  • 具体切分长度与重排模型选型以你的语料与延迟预算为准。待核实。
本文累计阅读