斩获冠亚军!开源检索引擎Puck闪耀NeurIPS‘2023

斩获冠亚军!开源检索引擎Puck闪耀NeurIPS‘2023_第1张图片

近日,备受全球瞩目的国际向量检索大赛 Big-ANN in NeurIPS’23 的排行榜正式公布。百度搜索内容技术团队,以其自研 ANN 检索算法 PUCK 的出色性能表现,成功斩获Streaming Search赛道冠军与Filtered Search赛道亚军。

NeurIPS(Conference on Neural Information Processing Systems)是一个在机器学习、人工智能和神经科学领域内享有盛誉的学术会,与ICML、ICLR并称为机器学习领域难度最大、水平最高、影响力最强的会议。它为研究人员和从业者提供了展示和对比最新技术和算法的机会。

随着向量检索越来越普遍,解决实际场景中最近邻搜索或向量检索问题的多样化变体变得愈发重要。在此背景下,NeurIPS’23 设置了Big-ANN 竞赛,旨在提升大规模 ANN 的研究创新和生产环境中的落地应用,推动索引数据结构和索引算法的发展。因 NeurlPS 的极高知名度和权威性,Big-ANN 吸引了众多知名企业和顶尖大学的同台竞技。

赛题及冠军:https://big-ann-benchmarks.com/neurips23.html

Puck凭借出色的性能表现脱颖而出

本届Big-ANN包含4个赛题:Filtered Search、Out-Of-Distribution、Sparse、Streaming Search,参与者可以选择向一个或多个曲目提交参赛作品。评估硬件标准为Azure Standard D8lds v5(8 vCPU和16GB DRAM),这台机器上的索引构建时间将限制为12小时,Streaming Search赛道的时间限制更严格。

1)在Streaming Search赛道以高召回率位列第一

赛题要求:把30M数据集通K-means聚类,分成64组。一轮索引更新包括:插入某一组样本、检索、删除某一组样本、检索。要求算法在1小时内完成5轮索引更新,共计1280次操作。每次插入的数据,属于不同的分组,因而要求算法在未知数据分布全貌的情况下,也能提供较好的检索效果。插入和删除操作不断交替,整个索引包含的样本动态变换,要求算法在动态的数据集上,保持索引结构的紧凑(消耗较少的内存)。

相比其他赛道(只关注检索性能),Streaming Search赛道期望算法对变化的数据分布有更好的鲁棒性。Streaming赛道使用每次检索recall@10的统计值作为算法的成绩,Puck以0.9849的召回率排名第一,斩获冠军。

Puck结合赛题要求和业务应用落地成本,对当前代码进行改造,能够支持在线的训练、建库和检索过程。Puck默认的索引结构有四层,每层肩负不同的功能。调整索引参数,降低空间划分层对召回率的影响,召回率交由第三层过滤层控制。第三层结果依赖query与样本的距离计算,受数据分布变化影响较小,因而可以保证召回率足够稳定。

斩获冠亚军!开源检索引擎Puck闪耀NeurIPS‘2023_第2张图片

2)在Filter Search赛道以较高的检索性能位列第二

赛题任务:使用CLIP嵌入转换的YFCC 100M数据集的随机10M切片。每张图片的tag放在一个"bag" :从描述中提取的单词、相机型号、拍摄照片的年份和国家。这些标签来自200386个可能标签的词汇表。

本赛道关注检索性能,赛题要求算法支持带标签的过滤检索,召回结果仅包含与query标签匹配的样本。排行榜是基于recall@10至少为90%的前提下,算法达到QPS作为算法的成绩并排名。Puck以19153.42的qps排名第二。

当前赛道要求支持1~2个标签的检索,在实际业务应用中通常要求支持多标签(>=3)的检索。因而,Puck放弃了使用每个标签单独建索引的方案(单独建索引的方案性能会更好,但扩展性受限),采用融合向量和标签的索引结构,能够支持任意标签的检索,检索性能受标签个数影响较小。

斩获冠亚军!开源检索引擎Puck闪耀NeurIPS‘2023_第3张图片

NeurIPS’23竞赛,为人工智能领域的交流与合作搭建了良好的平台。这次获奖不仅是对Puck团队技术实力的肯定,也是对其不断探索和创新精神的认可。相信在未来的日子里,Puck会为向量检索技术的发展贡献出更多的力量。

欢迎加入Puck

Puck出色的性能和准确性,使得其能够高效地处理大量的数据的同时保持高精度的搜索结果。此外,Puck还具有高度的灵活性,支持超大规模数据集,可以适应不同的数据类型和查询需求。

详见GitHub:https://github.com/baidu/puck

斩获冠亚军!开源检索引擎Puck闪耀NeurIPS‘2023_第4张图片

欢迎大家成为社区贡献者,Puck鼓励开发者之间的合作和共享,同时支持大家进行知识的分享和传播,打造活跃而广泛的生态,促进项目的高速、可持续发展,从而推动技术的创新。

在你因为参与开源而得到回报的时候,你也在影响着开源领域的发展,促进开源领域向更加广阔的方向奔涌而去。

欢迎加入QQ交流群:913964818

——END——

推荐阅读

AI Native工程化:百度App AI互动技术实践

揭开事件循环的神秘面纱

百度搜索展现服务重构:进步与优化

百度APP iOS端包体积50M优化实践(七)编译器优化

百度搜索内容HTAP表格存储系统

你可能感兴趣的:(python,后端,开源,搜索引擎)