





第一种:Naive RAG(基础 RAG)
把文档切成小块(比如 500 字),然后转化成向量,存入向量数据库。用户查询时,也把问题转化成向量,之后检索,让 LLM 处理后返回。
第二种:Semantic Chunking(语义分块)
在 Naive RAG 里,如果 500 字为一块儿,那容易把关键内容截断,语义分块是指先把文档按句子拆开,计算相邻句子的相似度,该度下降,话题变了,在这个地方拆分。
第三种:Parent-Child Retrieval(父子级检索)
可切块有个矛盾,切小了检索精准但上下文不足,切大了上下文足但噪声多。父子级检索是先把文档切成大块,再把大块细分成小块。检索时用小块精确匹配,命中后返回它所属的大块,保证检索精度又提供完整上下文。
第四种:Hybrid Search(混合检索)
但是!纯向量检索不擅长精确术语匹配,比如搜"ERROR_CODE_4012"这种编码,找不到精确结果。混合检索同时使用向量搜索和关键词搜索(如BM25),向量负责语义理解,关键词负责精确匹配,通过RRF算法合并两边结果,适合术语密集的领域。
第五种:Reranking(重排序)
可检索回来的文档里总会混有噪声。Reranking是在检索和生成之间加一个精排步骤,用Reranker模型给每对(问题,文档)重新打分。一般采用分层筛选,先用粗检索召回150个,再用轻量Reranker筛到20个,最后用Cross-Encoder精排出Top 5,平衡召回率和计算成本。
第六种:Agentic RAG(智能体 RAG)
不同场景需要不同的检索方式,有的查向量库,有的查数据库,有的搜网络对吧。Agentic RAG 让 AI Agent 自主决策,配备一组检索工具,Agent根据问题自动选择合适的工具,看结果够不够,不够就换方式再搜,直到信息足够生成答案,非常灵活。
第七种:Corrective RAG(纠偏式 RAG)
有个问题,Agentic 搜到的资料可能质量不好,如果大模型硬着头皮用这些内容回答,就会胡说八道。Corrective RAG 在检索和生成之间加个质检员,逐个审查检索到的文档是否相关。打分高的直接用,打分低的回退。
第八种:Self-RAG(自修正 RAG)
大模型可能拿到正确资料但回答时夹带私货,产生幻觉。这... 怎么搞?
Self-RAG 在整个流程设置四个检查点让模型自我审视:这个问题需要检索吗?检索到的文档相关吗?我的回答有文档支撑吗?这个答案对用户有用吗?通过多次自我验证,提高答案的准确性和可靠性。