
RAG 从入门到精通:10 个难度等级实践教程
为什么需要分级学习?
RAG 看起来简单——检索 + 生成,但实际工程中有大量细节决定了效果的天壤之别。
10 个难度等级
Level 1: Naive RAG
最基础的实现:切分文档 → 向量化 → 相似度检索 → 拼入 Prompt。
# 伪代码
chunks = split(document, chunk_size=500)
embeddings = embed(chunks)
query_vec = embed(query)
top_k = vector_search(query_vec, embeddings, k=3)
answer = llm(f"Context: {top_k}\nQuestion: {query}")
Level 2: 带 Reranking 的 RAG
初始检索召回 20 条,用 Cross-Encoder 重排序,取 Top 3。
Level 3: Hybrid RAG
BM25 关键词搜索 + 向量搜索混合,用 RRF (Reciprocal Rank Fusion) 合并排名。
Level 4: HyDE RAG
先让 LLM 生成假设性答案,再用假设答案去检索,匹配度更高。
Level 5: Parent Document Retrieval
检索用小 chunk,返回用大 chunk。小粒度匹配,大上下文生成。
Level 6: RAG Fusion
对原始问题生成多个变体查询,分别检索后融合排序。
Level 7: Contextual RAG
Anthropic 提出:给每个 chunk 添加上下文前缀,解释它在文档中的位置。
Level 8: Self-RAG
Agent 自主判断是否需要检索、检索结果是否有用、生成答案是否准确。
Level 9: Corrective RAG (CRAG)
检索后评估相关性,不相关则触发网络搜索作为补充。
Level 10: Agentic RAG
完全自主的 RAG Agent:规划检索策略、迭代优化、多源聚合、自我验证。
来源: @shao__meng 的系统教程