AI 中文总结
本研究针对向量相似性搜索中平均召回率优化掩盖查询间召回率差异的问题,设计轻量级系统RCheck动态调整搜索工作量,在相同吞吐量下提升平均召回率并增加达标查询占比。
AI 中文摘要
现代数据库服务通过近似最近邻搜索(Approximate Nearest Neighbor Search)对大型数据集合进行可扩展搜索,该技术以召回率衡量的搜索质量为代价提升搜索性能。在实际应用中,数据库运营者力求在达到目标平均召回率的同时最大化搜索查询的吞吐量。我们发现,针对平均召回率进行优化会掩盖查询间召回率的显著差异,即便已达到目标召回率,仍存在大量查询:(1)召回率低于目标值,损害用户体验与收益;(2)召回率高于目标值,浪费计算资源以提供不必要的高搜索质量。因此,检测并降低查询间的召回率差异至关重要。我们设计了RCheck,这是一个轻量级运行时系统,可识别低召回率查询并降低召回率差异,同时实现高吞吐量。RCheck的核心设计原则是通过动态、高效地调整搜索工作量,为低于目标召回率的查询增加工作量,为高于目标召回率的查询减少工作量。RCheck可调整可用的搜索工作量参数,便于部署。我们使用广泛应用的生产级pgvector数据库评估RCheck,在相同吞吐量下,与最先进的全局调优配置相比,RCheck将平均召回率提升了11%-93%,并使8%-47%更多的查询达到目标召回率。
英文摘要
Modern database services scalably search over large data collections via Approximate Nearest Neighbor Search, which improves search performance at the cost of search quality, measured by recall. In practice, a database operator seeks to achieve a target mean recall while maximizing throughput across search queries. We show that optimizing for mean recall masks significant differences in recall across queries even when target recall is met. As a result, numerous queries face (1) below-target recall, hurting user experience and revenue and (2) above-target recall, wasting computation to deliver unnecessarily high search quality. Thus, it is critical to detect and reduce recall differences across queries. We design RCheck, a light-weight run-time system that identifies low-recall queries and reduces recall differences while achieving high throughput. RCheck's key design principle is to dynamically, efficiently adapt search effort by increasing effort for queries below target recall and decreasing effort for those above it. RCheck tunes available search effort parameters, making it readily deployable. We evaluate RCheck using the widely-used production-style pgvector database. At the same throughput, RCheck improves mean recall by 11-93% and enables 8-47% more queries to meet target recall compared to the state-of-the-art globally-tuned configuration.