上下文检索
概述
上下文检索(Contextual Retrieval)是 Anthropic 提出的一种 RAG 改进方法,通过在文本块嵌入和索引前添加语境化解释前缀,解决传统 RAG 切分导致的上下文丢失问题,显著降低检索失败率。
关键内容
-
核心机制:在预处理阶段,使用 LLM(如 Claude 3 Haiku)为每个文本块生成 50-100 token 的语境前缀,包含文档级别信息(如来源文档、时间、主体等),使孤立文本块变得"可理解"后再进行嵌入和 BM25 索引。
-
性能提升:实验表明,结合上下文嵌入和上下文 BM25 可将检索失败率降低 49%;进一步结合重排序(Reranking)可达 67%。基准失败率 5.7% → 语境嵌入 3.7% → +语境 BM25 2.9% → +Reranking 1.9%。
-
成本优化:利用 Prompt Caching 特性,文档只需加载到缓存一次即可为所有片段重复使用,每百万文档 token 成本仅 1.02 美元。
-
与传统方法对比:优于通用文档摘要添加到块、摘要索引等方法,且与 LightRAG/GraphRAG 不互斥——前者在块级别添加上下文,后者在图结构层面建模,可叠加使用。
-
技术选型建议:<200K token 直接放入 Context Window;200K-10M token 用标准 RAG + Contextual Retrieval;>10M token 需 Contextual Retrieval + Reranking + 多阶段检索。
-
局限性:预处理成本增加、动态知识库更新挑战、语境质量依赖 prompt 设计、对自包含信息块提升有限。
来源
- 02_contextual_retrieval.md — 全文分析
相关
- 检索增强生成 — extends
- BM25 — uses
- 语义嵌入 — uses
- Reranking — relates_to
- Prompt Caching — uses
- Claude 3 Haiku — uses
- LightRAG — compares_to
- GraphRAG — compares_to