衡量向量搜索中的 QPS 向量搜索的查询吞吐量 (QPS) 是通过对系统在实际条件下每秒可以处理的搜索请求数量进行基准测试来衡量的。这包括向数据库发送查询流并跟踪在一秒窗口内完成的总数。为了准确起见,测试通常使用具有代表性的查询量、数据集大小(例如,100 万到 1 亿个向量)和向量维度(例如,256 到 1024 个维度)。像 FAISS 基准测试或自定义负载测试脚本这样的工具可以模拟真实世界的场景,包括不同的查询复杂性(精确搜索与近似搜索)和过滤约束。例如,一个测试可能会衡量在使用 HNSW 索引搜索具有 512 维嵌入的 1000 万向量数据集时的 QPS,同时记录延迟百分位数以确保一致的性能。
影响高 QPS 的关键因素 最直接的因素是索引算法、硬件资源和查询设计。 像 HNSW、IVF 或基于磁盘的 ANN 索引等索引结构以不同的方式平衡速度和准确性。 例如,HNSW 优先考虑低延迟,但需要更多内存,而 IVF 可以更好地随分布式集群扩展。 在硬件方面,GPU 可以加速大型批量的向量计算,而快速内存(例如,NVMe SSD)可以减少 I/O 瓶颈。 查询设计也很重要:在向量搜索之前按元数据进行过滤(例如,“产品类别 = 电子产品”)可以减少搜索空间。 此外,调整参数(如探测数量 (IVF) 或搜索深度 (HNSW))会直接影响 QPS。 例如,将 IVF 探测从 10 增加到 20 可能会提高召回率,但会降低 30% 的 QPS。
优化权衡和系统设计 实现高 QPS 通常需要在准确性、延迟和资源使用之间进行权衡。 跨节点分片数据允许并行查询执行,但会增加网络开销。 批量处理(例如,一次处理 100 个查询)可以提高 GPU 利用率,但会增加单个查询的延迟。 在 RAM 中缓存频繁访问的向量或使用量化(例如,8 位浮点数而不是 32 位)可以减少内存占用,但可能会降低精度。 例如,一种混合方法可能会使用 IVF 在磁盘上对向量进行聚类,在内存中缓存 20% 的热数据,并部署 GPU 进行批量查询,从而以 95% 的召回率实现 5,000 QPS。 最佳设置取决于具体的使用案例 - 电子商务推荐可能会优先考虑高 QPS 和适度的准确性,而医疗诊断可能会优先考虑精度而不是速度。