写点什么

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

作者:百度Geek说
  • 2023-12-22
    上海
  • 本文字数:1783 字

    阅读完需:约 6 分钟

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

近日,备受全球瞩目的国际向量检索大赛 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 与样本的距离计算,受数据分布变化影响较小,因而可以保证召回率足够稳定。


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

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


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


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



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

欢迎加入 Puck

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


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



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


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


欢迎加入 QQ 交流群:913964818


——END——


推荐阅读


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


揭开事件循环的神秘面纱


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


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


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

发布于: 刚刚阅读数: 6
用户头像

百度Geek说

关注

百度官方技术账号 2021-01-22 加入

关注我们,带你了解更多百度技术干货。

评论

发布
暂无评论
斩获冠亚军!开源检索引擎Puck闪耀NeurIPS'2023_搜索引擎_百度Geek说_InfoQ写作社区