百度开源自研高性能 ANN 检索引擎 Puck

百度imu在 Apache 2.0 协议下开源自研的 ANN 检索引擎 —— Puck,名称取自经典 MOBA 游戏 DOTA 中的智力英雄 - Puck,是飘逸、灵动的代表。ANN 全称近似最近邻检索(Approximate Nearest Neighbor),目标是从全量向量数据中寻找距离最近的 TopK 个向量,同时需要平衡检索效果和检索成本。

Puck 的优势

  • 易用性:提供简单易用的 API 接入,尽量少的暴露参数,大部分参数使用默认即可达到良好性能。
  • 扩展性:采用完全自研的索引结构,支持多种功能扩展,适应多种场景,项目模块划分合理,便于改造优化,可方便用户接口自行添加。
  • 高性能:在 benchmark 的千万、亿、十亿等多个数据集上,Puck 性能优势明显,均显著超过竞品。
  • 可靠性:经过多年在实际大规模场景下的验证打磨,广泛应用于百度内部包括搜索、推荐等三十余条产品线,支撑万亿级索引数据和海量检索请求。

Puck 功能拓展

  • 实时插入:支持无锁结构的实时插入,做到数据的实时更新。
  • 条件查询:支持检索过程中的条件查询,从底层索引检索过程中就过滤掉不符合要求的结果,解决多路召回归并经常遇到的截断问题,更好满足组合检索的要求。
  • 分布式建库:索引的构建过程支持分布式扩展,全量索引可以通过 map-reduce 一起建库,无需按分片 build,大大加快和简化建库流程。
  • 自适应参数:ANN 方法检索参数众多,应用起来有不小门槛,不了解技术细节的用户并不容易找到最优参数,Puck 提供参数自适应功能,在大部分情况下使用默认参数即可得到很好效果 。

公告指出,百度很早就投入了自研近似最近邻检索算法(ANN)的研究,2017 年 Puck 完成首次上线,2019 年底内部开源,目前已广泛应用于百度内部多条产品线,随着业务发展不断的优化和迭代,进行了充分的技术研发和测试,确保了技术的领先性和成熟度。

Puck 开源项目包含两种百度自研的检索算法 Puck&Tinker,以高召回、高准确、高吞吐为目标,在大中小数据集上都有优异表现。在 benchmark 的千万、亿、十亿等多个数据集上,Puck 性能优势明显,均显著超过竞品。在 2021 年底 Nerulps 举办的全球首届向量检索大赛 BIGANN 比赛中,Puck 参加的四个项目均获得第一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值