--- title: "Retrieval" type: concept tags: [rag, retrieval, vector-search, similarity] last_updated: 2025-01-16 --- ## Definition Retrieval(检索阶段)是 RAG Pipeline 的第二步,根据用户问题的语义向量(Embedding Vector),在向量数据库中按相似度找出 Top-k 个最相关的文档块(Split)。 ## Process 1. **Query Embedding**:将用户问题通过同一个 Embedding Model 转化为语义向量 2. **Vector Search**:在 Vector Store 中按相似度(余弦相似度/点积/欧氏距离)检索最接近的 k 个向量 3. **Result Selection**:返回对应的原始文本块(Split)作为上下文 ## Key Parameters - **Top-k(k值)**:决定返回多少个最相关的文档块,k 过小可能遗漏关键信息,k 过大则引入噪声 - **Similarity Metric**:余弦相似度最常用,适合方向性语义匹配;点积适合归一化向量;欧氏距离适合几何距离度量 ## In RAG Pipeline - **上游**:依赖 Indexing 阶段构建的向量数据库 - **下游**:检索结果传递给 Generation 阶段作为上下文 ## Challenges - **语义鸿沟**:用户问题的措辞与文档中相关内容可能不同(词汇不匹配) - **上下文窗口限制**:Top-k 个文档块的总 token 数不能超过 LLM 的 Context Window - **噪声召回**:向量相似度高但实际无关的文档块可能被召回 ## Related Concepts - [[RAG]] — Retrieval 是 RAG Pipeline 的第二阶段 - [[Vector Store]] — 检索的数据库后端 - [[Embedding]] — 检索的向量来源 - [[Generation]] — Retrieval 的下一阶段,接收检索结果作为上下文 - [[Hybrid Search]] — 结合向量检索与关键词检索以弥补单一向量检索的不足