优化向量数据库检索测试(Milvus库)

RAG 检索模块到底在干嘛?

简单来说,RAG 是“先检索,再生成”: 用户提问后,系统先去知识库里找资料(Retrieval),再让大模型基于资料生成回答(Generation)

从测试视角看,这个过程最容易出问题的地方有三处:

  1. 检索不准(答非所问)

  2. 检索不全(漏掉关键信息)

  3. 检索太慢(性能瓶颈)

所以检索模块优化的目标是三件事:提质、降噪、提速。从以下角度看RAG检索模块优化的方向

embedding质量

  1. 构建一组标准问答集(golden set);

  2. 计算不同模型的 Top-K 命中率、Recall@K、MRR;

  3. 输出自动对比报告。

建立“评测基线(Baseline Evaluation)” 固定一组模型 + chunk 策略 + 索引配置作为基线组合, 每次升级 embedding 模型或数据库参数,都与基线自动对比,只有各指标全面提升才允许替换。

分块策略

Chunk(文档切分)太小会导致语义碎片化,太大又容易召回噪声。 测试优化可通过参数扫描找到最佳平衡点:

chunk size = [200, 400, 600, 800],overlap = [0%, 10%, 20%] 自动评估 Recall@K 和性能曲线。

混合检索

  1. 融合排序算法是否合理;

  2. 去重逻辑是否可靠;

  3. Hybrid 模式是否拖慢响应。

使用混合对照实验,查看性能

文档更新

知识库验证流程:

  1. 新文档能否被命中;

  2. 删除替换后旧索引是否清理;

  3. 索引更新是否影响性能;

  4. 检索结果是否出现“漂移”