高级 RAG 系统:检索、重排与知识运营
1. RAG 的本质
RAG 不是“加个向量库”,而是把回答过程拆成:
- 找证据(retrieval)。
- 选证据(rerank)。
- 用证据生成(grounded generation)。
目标是降低幻觉并提升可审计性。
2. 核心优化目标
$$ d^*=\arg\max_{d\in\mathcal{D}_K} score(q,d) $$
其中 score 可结合语义相似度、关键词覆盖、时效性、来源可信度。
3. Python 管线骨架
# 伪代码
chunks = splitter(docs)
index = build_vector_index(chunks)
cand = index.search(query, top_k=40)
reranked = cross_encoder_rerank(query, cand, top_k=8)
answer = llm.generate(
prompt=build_prompt(query, reranked),
temperature=0.2,
)
4. 关键工程点
- 切块策略:按语义单元切而不是固定字数切。
- 混合检索:向量检索 + BM25 并行召回。
- 重排模型:跨编码器比纯向量相似度更稳。
- 引用策略:输出必须可回链到证据段落。
5. 失败模式
- 召回不足:模型“编”而不是“答”。
- 检索污染:过期或低质量文档混入。
- 提示注入:文档中的恶意指令劫持输出。
6. 评估建议
- 召回层:Recall@k、MRR。
- 生成层:事实一致性、引用命中率。
- 线上层:问题解决率、人工复核通过率。
高级 RAG 的竞争力来自“知识运营能力”,而不只是模型参数规模。