RAG 检索深潜:Embedding、Hybrid Search

📅 2026/7/29 14:38:45 👁️ 阅读次数 📝 编程学习
RAG 检索深潜:Embedding、Hybrid Search

架构与原理|可核对官方文档|建议收藏

依据 LangChain Retrieval、向量库与 Reranker 集成文档(2026-06 快照)。与「RAG 科普篇」互补,本篇只讲 检索子系统机制。

  1. 你要解决什么问题(30 秒)

很多 RAG 翻车不在 LLM,在 检索没把对的那段拿出来:

  1. 语义搜不到 SKU / 内部代号——纯向量对专有名词弱。

  2. Top-K 很大仍漏——chunk 切碎了,答案跨块。

  3. 检索很快但答案仍胡编——没 rerank,噪声 chunk 进 context。

这篇只覆盖 Ingest 之后到 LLM 之前:embed、index、query、hybrid、rerank、评测指标。

  1. 核心机制:检索流水线

flowchart LR
Q[User Query] --> E1[Query Embedding]
E1 --> VS[Vector Search Top-K]
Q --> BM[BM25 / Keyword]
VS --> FUSE[Hybrid Fusion]
BM --> FUSE
FUSE --> RR[Reranker Top-N]
RR --> CTX[Context Block]
CTX --> LLM[Generator]

2.1 Chunk 与 metadata(决定上限)

chunk size

400–800 token | 太大→噪声;太小→断语义

overlap

10–15% | 无 overlap→答案被拦腰截断

切分策略

按标题 / 按句 | PDF 乱码未洗

metadata

doc_id,section,acl| 无 ACL→越权检索

LangChain:RecursiveCharacterTextSplitter+parent_document_retriever(小块检索、大块返回)是常见模式。

2.2 Dense vs Sparse

Dense(embedding):语义相似,「离职流程」≈「辞职手续」

Sparse(BM25):词项匹配,「SKU-8842」精确

Hybrid:两路各取 Top-K’,RRF(Reciprocal Rank Fusion)或 weighted merge → 再 rerank。

2.3 Rerank

Bi-encoder(embedding)快但粗;Cross-encoder reranker(Cohere Rerank、BGE-reranker)对(query, chunk)打分,取 Top-N(N often 3–5)再塞 prompt。

Latency 换 precision——生产 RAG 几乎总是 retrieve 宽、rerank 窄。

  1. 代码长什么样(LangChain 栈)

3.1 向量检索

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
emb = OpenAIEmbeddings(model=“text-embedding-3-small”)
vs = Chroma.from_documents(docs, emb, collection_metadata={“hnsw:space”: “cosine”})
retriever = vs.as_retriever(search_type=“similarity”, search_kwargs={“k”: 20})

3.2 Hybrid(示意)

from langchain.retrievers import EnsembleRetriever
from langchain_community.retrievers import BM25Retriever
bm25 = BM25Retriever.from_documents(docs)
bm25.k = 20
ensemble = EnsembleRetriever(
retrievers=[bm25, vs.as_retriever(search_kwargs={“k”: 20})],
weights=[0.4, 0.6],
)

3.3 Rerank 包装

from langchain.retrievers import ContextualCompressionRetriever
from langchain_cohere import CohereRerank
compressor = CohereRerank(model=“rerank-v3.5”, top_n=5)
compression_retriever = ContextualCompressionRetriever(
base_compressor=compressor,
base_retriever=ensemble,
)

3.4 进 LCEL

rag = (
{“context”: compression_retriever | format_docs, “question”: RunnablePassthrough()}
| prompt
| model
)

  1. 和「长上下文一把梭」的差别

全文档塞 context

<50 页、要全局推理 | 成本、lost-in-middle

纯向量 RAG

语义 QA、库大 | 专有名词、表格

Hybrid + Rerank

企业 Wiki、中英混排 | 多两次 API/延迟

GraphRAG 等

全局关系推理 | 构建成本高

  1. 三个失败案例

A. Recall@5 低但 embedding「没问题」

现象:标准答案段落进不了 Top-5。

原因:chunk 把答案拆到两块;或 query 与 doc 语言不一致(英问中 doc)。

怎么查:golden set 标注gold_chunk_id;调 overlap / parent retriever。

B. 检索对了,生成仍错

现象:context 含答案,LLM 瞎编。

原因:prompt 未强制「仅根据 context」;或 rerank 后仍混入 15 段噪声。

怎么查:减 N;加 citation 格式;测「拒答率」。

C. Hybrid 更差

现象:加 BM25 后效果降。

原因:权重不当;中文分词未适配;BM25 索引未更新。

怎么查:grid search weights;单独测 BM25-only vs dense-only。

  1. 最小可运行路径

  2. 准备 20 条(question, gold_passage)golden

  3. Chroma + small embedding,算 Recall@5

  4. EnsembleRetriever,对比 Recall

  5. CohereRerank或本地 reranker,算 MRR@5

  6. 接 LCEL RAG,测 end-to-end accuracy(LLM judge 或 exact match)

通过标准:Recall@5 > 0.8 再调 prompt;否则别怪模型。

  1. 生产还要加什么

增量索引:upsert bydoc_id,删 doc 要删向量

ACL filter:where={"tenant_id": "..."}

缓存:query embedding 缓存 5min

监控:retrieval latency、empty result rate、avg rerank score

版本:embedding 模型变更 → 全量 re-embed

读完自检

  1. Hybrid 解决的是 embedding 的哪类失败?

  2. 为什么 retrieve 要宽、rerank 要窄?

  3. Recall@K 和最终答案准确率为什么不等价?

「职场AI技能」

AI 技能深潜 · 架构与原理 · 可核对文档

这里给大家精心整理了一份全面的AI大模型学习资源包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

👇👇扫码免费领取全部内容👇👇

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

4. 2026行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

7. 资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇