Qdrant 双阶段检索实测:吞吐量超 Elastic DiskBBQ 2 倍,资源消耗降低三分之一
背景:开源与闭源的算力对决
近期,Elastic 发布了其专有磁盘索引方案 "DiskBBQ" 的基准测试数据,声称在特定配置下,其吞吐量比 Qdrant 高出 7 倍。Qdrant 团队对此进行了深度复盘与独立复现,旨在验证该结论的公平性及实际生产环境的适用性。
Elastic 的测试环境基于 GCP n4-standard-8 节点,配置了 7 vCPU 和 26 GB RAM,并使用了 2-bit 量化。然而,Qdrant 团队指出,Elastic 的测试方法存在明显缺陷:未启用 Qdrant 专为磁盘检索优化的核心特性,如双阶段检索(Two-Stage Retrieval)和异步磁盘评分(Async Disk Scoring),导致测试实际上是在进行无界的顺序磁盘访问压力测试。
核心突破:双阶段检索与 TurboQuant 4-bit
为了在公平条件下进行对比,Qdrant 团队调整了测试策略,重点展示了其针对高召回率场景的优化方案:
-
双阶段检索架构:
- 第一阶段:从内存中的量化向量(TurboQuant 4-bit)中预取过采样候选集。
- 第二阶段:仅对有限的候选集使用原始向量进行磁盘重评分(Rescoring)。
- 这种机制将昂贵的磁盘 I/O 操作限制在极小的数据子集上,极大提升了效率。
-
异步评分引擎:
- 利用
io_uring技术并行化磁盘读取,避免了传统同步 I/O 的阻塞问题。
- 利用
-
量化策略:
- 采用 Qdrant 推荐的 TurboQuant 4-bit 量化方案,而非 Elastic 的 2-bit,在保证精度的同时进一步优化了存储与计算效率。
实测数据对比
测试基于 wiki_dpr_e5 数据集(2100 万条数据,768 维向量),目标召回率 Recall@100 约为 0.96。对比结果令人印象深刻:
| 配置项 | Elastic (DiskBBQ) | Qdrant (双阶段 + TurboQuant) | 性能提升 |
|---|---|---|---|
| 节点配置 | 3 x 7 vCPU / 26 GB RAM | 3 x 2 vCPU / 8 GB RAM | Qdrant 资源更少 |
| 吞吐量 (QPS) | 32.4 | 67.2 (最小配置) / 111.9 (4vCPU) | 2.1x |
| 平均延迟 (ms) | 122.6 | 59.5 (最小配置) / 35.7 (4vCPU) | 51% 更低 |
| P99 延迟 (ms) | 184.3 | 86.0 | 53% 更低 |
| 量化精度 | 2-bit | 4-bit | 精度更优 |
即使在资源占用仅为 Elastic 约 1/3 的情况下(2 vCPU vs 7 vCPU),Qdrant 依然实现了 2 倍的吞吐量。若将配置提升至 4 vCPU,吞吐量甚至达到了 111.9 QPS。
实际价值与结论
Qdrant 团队强调,此次测试更多是为了证明技术原理的可行性,而非鼓励所有用户都使用磁盘索引。对于大多数生产环境,内存计算(In-Memory)仍是首选。
然而,这一基准测试具有深远的行业意义:
- 打破性能神话:证明了开源架构在合理配置下,完全可以超越闭源专有方案的性能上限。
- 成本优化:对于预算敏感型项目,Qdrant 提供了更低的硬件门槛。
- 技术透明:通过公开详细的配置与复现过程,增强了社区对向量数据库技术的信任。
正如 Qdrant 团队所言,"在匹配的召回率下,Qdrant 实现了 2.1 倍的吞吐量和 51% 的延迟降低,同时仅消耗约三分之一的 CPU 和 RAM。" 这标志着 Qdrant 在向量检索领域的工程化能力再次得到验证。