检索优化是在干啥?

基础的 RAG 调用:

text
用户问题 → embedding → 向量检索 → top-k → 给 LLM

可能存在的问题:

  • 找到不一定准
  • 容易遗漏信息
  • 容易拿到“看起来相关但其实不对”的内容

检索优化是让“找资料”更聪明。


优化方式

了解收集到的 6 种方式。

1.Top-K 优化

是什么

控制取多少个 chunk

问题

  • 太少 -> 信息不够
  • 太多 -> 噪音太多

一般根据应用场景进行合适的设定,例如:

  • FAQ 类,设置 3
  • 文档类,设置 5~10

2.Query Rewrite

是什么

把用户的问题改写成“更适合检索的形式”

举个🌰

用户:

“他什么时候成立的?”

改写后:

“某公司的成立时间”

常见方式

  • LLM 改写
  • 增强关键词

作用

提高召回率


3.Multi-Query(多路检索)

比 rewrite 更强

举个🌰

问题:

“RAG 有哪些缺点?”

生成多个 query:

  • RAG limitations
  • RAG problems
  • RAG challenges

分别检索,合并结果。

缺点是成本会更高一些。


4.Hybrid Search(混合检索)

是什么

向量检索 + 关键词检索(BM25)一起用

为什么要混用?

类型优点缺点
向量理解语义不精确
关键词精确匹配不理解语义

混合后,又懂意思,又懂精准匹配

常见实现

  • BM25 + embedding
  • 加权融合

5.Reranker

text
检索(粗筛) → reranker(精排)

先取 top 20 → rerank → 选前5


6.Metadata Filtering

是什么

检索时加条件过滤

举个🌰

json
{
  "text": "...",
  "department": "finance"
}

检索时:

text
只查 finance

作用

  • 提高准确率
  • 保证安全