AI 模型 RAG 方法详解
RAG(检索增强生成)让大模型在回答前先"查资料",是把私有知识接入 LLM 最务实的路径。它分索引与查询两个阶段:
一、Naive RAG 的局限
最朴素的 RAG 是"问题向量化 → 取最相近的几段 → 塞进 prompt"。问题在于:用户问法和文档措辞对不上时召回差,且 Top-K 里常混入噪声段落,拉低生成质量。
二、Advanced RAG 的三板斧
查询改写:先让 LLM 把口语问题改写/扩展成多个检索式(HyDE、multi-query)。混合检索:向量检索 + BM25 关键词检索取并集,兼顾语义与精确匹配。重排序:用 cross-encoder reranker 对召回结果重排,只把最相关的几段喂给 LLM。
# 伪代码:混合检索 + 重排
cands = vector_search(q, k=50) + bm25_search(q, k=50)
top = reranker.rank(q, dedup(cands))[:8]
answer = llm(prompt(q, top))
三、别忘了评估
用 ragas 之类的工具量化召回率、忠实度(faithfulness)与答案相关性,避免"感觉变好了"的自我欺骗。