【FCon上海】与行业领袖共话AI大模型、数字化风控等前沿技术。 了解详情
写点什么

对标 FAISS,百度开源自研高性能检索引擎 Puck

  • 2023-10-30
    北京
  • 本文字数:3764 字

    阅读完需:约 12 分钟

对标 FAISS,百度开源自研高性能检索引擎 Puck

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

近日,百度宣布在 Apache 2.0 协议下开源自研检索引擎 Puck,这也是国内首个适用于超大规模数据集的开源向量检索引擎。向量检索算法在个性化推荐系统、多模态检索、自然语言处理等应用场景中都发挥着重要作用,特别是在处理大规模数据和高维特征数据时。


名称“Puck”取自经典 MOBA 游戏 DOTA 中的智力英雄 Puck,象征着飘逸和灵动。这个项目经过多年在百度内部的精心打磨,而且在 2021 年底 Nerulps 举办的全球首届向量检索大赛 BIGANN 比赛中,Puck 参与的四个项目均获得第一名。InfoQ 采访了百度搜索内容技术部主任架构师 Ben,以了解该项目的发展历程和核心优势。


开源地址:


https://github.com/baidu/puck


InfoQ:是否方便介绍一下您的工作经历,以及目前的主要职责?


Ben:我从毕业即加入百度,最初在移动搜索部门,负责基础检索和相关性方面工作,经历了移动高速发展的过程。之后作为创始成员协助组建了多模搜索部负责视觉搜索,属于百度最早一批进入 AI 领域的员工。目前在搜索内容技术部,负责内容相关技术,包括内容获取、内容理解、内容计算、内容加工与生成等。


InfoQ:您从什么时候开始关注开源?是什么让您决定 Puck 要开源?选择这个时候开源的原因是什么?


Ben:我们很早就在思考开源,看到 FAISS(由 Facebook AI Research 开发的大规模向量检索库)开源之后获得了广泛的业界关注和应用,我们也希望开源 Puck 后,可以促进社区的发展,并借助社区的力量提高代码质量,加速技术创新,更好的适应市场需求。自研开源市场变得越来越成熟和规范,可能会带来更多的商业模式和合作机会。


对外开源,我们其实筹备了很久,做了大量的准备工作。大模型的爆火,导致向量检索技术获得广泛关注,我们认为,这是一个合适的开源契机。


InfoQ:您能具体讲一下 Puck 在百度的发展史,以及从您角度来看,它对于百度搜索的价值主要体现在哪里?


Ben:Puck 的想法最早来自视觉搜索业务,我们需要一个能支撑数百亿相似图片检索的 ANN 引擎,同时要能支持高吞吐、低延时、高准确、低内存、高灵活性等要求,当时业内没有能满足我们需要的引擎,于是启动了自研的过程。


2017 年 Puck 完成首次上线,在百亿图片库上成本和效果都取得了极其显著的提升;之后随着 Transformer 模型在 nlp 领域的大放异彩,基于 embedding 的语义检索越来越凸现价值,Puck 的应用也越来越广,2019 年 Puck 在百度内部开源,支撑的业务数快速增长,目前已广泛应用于百度搜索、推荐、网盘、知识图谱等内部多条产品线,支持规模突破万亿。目前 ANN 已经成为互联网底层基础技术之一,是 AI 时代的基石,搜索最重要的支撑技术之一。


InfoQ:期间经过了几次优化,优化重点是什么,您能具体讲述一下吗?


Ben:到今天 Puck 已经是一个打磨多年的产品,中间的优化数不胜数,大体来说可以分成以下几个阶段:


  1. 2016 年到 2019 年,打磨核心算法和实现,重点在基础性能优化上,不断调整细节,在自有场景上做极致优化,Puck 的核心框架在这一时期建立并沿用至今。

  2. 2019 年到 2021 年,以公司内开源为标志,随着业务接入的增多,Puck 需要适配各种各样的应用场景和诉求,易用性、扩展性、功能多样性成为主要目标,像高性能的实时插入、多条件检索、分布式建库等等功能都是在这一时期完成。

  3. 2021 年到 2022 年,以大规模内容关系计算应用为契机,Puck 重点优化在单实例超大规模数据下的性能,通过大尺度量化和索引结构的优化在十亿规模数据集上大幅提升性能降低成本。以参加全球首届向量检索大赛 BIGANN 并获得四项第一为标志,证明了 Puck 在这部分的竞争优势。

  4. 2022 年至今,核心算法创新,提出了新的算法来适配不同数据场景,新增更多的 feature,同时完善配套设施,做外部开源准备。


这只是一个粗略的划分。实际上,Puck 的优化更多地由许多微小的优化点组成。我们在讨论中提出了大量有趣的想法,进行了大量的实验和尝试。总的来说,十个想法中最终只有一到两个能成为正式的功能。这些优化最终汇聚在一起,形成了我们今天看到的 Puck。


InfoQ:您能否详细介绍下 Puck 的核心优势和应用场景?


Ben:Puck 开源项目包含了两种百度自研的检索算法和一系列的附加功能,核心优势首先就是性能,经过多年的打磨和调优,在 benchmark 的千万、亿、十亿等多个数据集上,Puck 性能优势明显,均显著超过竞品,在 2021 年底 Nerulps 举办的全球首届向量检索大赛 BIGANN 比赛中,Puck 参加的四个项目均获得第一。


其次,易用性上,Puck 提供了一系列的适用于各种场景的功能,比如,同时提供简单易用的 API 接入,尽量少的暴露参数,大部分参数使用默认设置即可达到良好性能。


最后,Puck 是一个久经考验的引擎,经过多年在实际大规模场景下的验证打磨,广泛应用于百度内部包括搜索、推荐等三十余条产品线,支撑万亿级索引数据和海量检索请求,可靠性上有非常高的保障。


Puck 引擎这次开源了两种检索算法 Puck 和 Tinker,分别更适用于超大规模数据集和中小规模数据集,几乎可以覆盖绝大部分的检索应用场景。目前已广泛应用于百度内部搜索、推荐等多条产品线,覆盖数据规模从百万至万亿。


InfoQ:面对 AI 新浪潮,大模型在业内已越来越卷,在您看来未来开源市场会不会更卷?


Ben:AI 大模型的出现确实使得业内竞争更加激烈,但这并不是坏事。首先,大模型的发展推动了 AI 技术的进步,提高了 AI 的性能和效率。其次,大模型为业内带来了更多的创新空间和可能性,推动了开源市场的发展。


以后业内在自研开源市场的竞争会更加激烈,但这并不意味着会更卷,相反是带来了无限的可能。因为开源市场的特性是开放和共享,企业和个人可以通过开源市场获取最新的 AI 技术和模型,而无需自己从零开始开发。这有助于整个行业降低研发成本和提高研发效率。


此外,开源市场也是技术交流和创新的平台,业内人士可以在这里分享自己的研究成果,吸收他人的经验和知识,共同推动 AI 技术的发展。所以,虽然竞争会更激烈,但只要我们能适应这种趋势,积极参与交流和创新,就可以从中获益。


InfoQ:那您认为互联网公司开源项目的未来发展趋势是什么样的?会往哪方面发展?


Ben


  1. 深度专业化:随着技术的细分,开源项目可能会更加专业化和深度化,解决更具体、更深入的问题,会更多永远专注于某一特定问题的开源项目,Puck 就是其中之一。

  2. 多元化:互联网公司自研的开源项目可能会涉及更多的行业和领域,实现技术的跨界整合,形成各种行业解决方案的开源项目,这种跨界融合将有助于推动技术在各行业的广泛应用。

  3. 更强的实用性:未来的开源项目可能会更注重实战和应用,而不仅仅是理论研究。开源项目会提供更多实用的工具和框架,帮助开发者更好地将理论应用到实际工作中。

  4. 注重数据和算法的开源:随着数据和算法的重要性日益凸显,未来可能会有更多的数据和算法开源,以加速 AI 等领域的发展。


这些变化都将为推动科技发展和解决实际问题提供更强大的动力。


InfoQ:您提到 Puck 在内部已广泛应用,有哪些大家熟悉的产品或场景吗?能否举个例子。


Ben:大家熟悉的百度搜索和手机百度内的信息流推荐都有使用 Puck 技术。


InfoQ:请问开源后是否收到了社区的一些反馈,对您有怎样的启发?


Ben:自从 Puck 开源以来,我们已经收到了不少来自社区的反馈和建议。这些反馈和建议对我们来说是非常宝贵的,它们不仅帮助我们发现了 Puck 的一些问题和不足,也为我们提供了改进和优化的方向。


对我个人来说,这些反馈启发我认识到,虽然我们在内部使用 Puck 有着丰富的经验,但在面对更广泛的用户群体时,我们还需要不断学习和提高。每个用户的需求都可能不同,我们需要更加深入地理解用户的需求,才能更好地优化 Puck,使其更加适应不同的使用场景。


同时,这些反馈也让我深切地感受到了开源社区的活力和创新精神。许多社区成员不仅提出了问题,还积极地提供了解决方案,这种积极参与和贡献的精神让我深感鼓舞。我希望在未来,我们能够更紧密地与社区合作,共同推动 Puck 的发展。


InfoQ:Puck 对您个人的意义,您对 Puck 的未来有什么期待?


Ben:Puck 是团队长时间研究和努力的成果,作为 Puck 的负责人,我对这个项目有着深深的热爱和执着,对我个人来说,它不仅仅是一个检索引擎,而是代表团队付出的心血和智慧的结晶,它是我们对技术的追求,对创新的执着,也是我们对未来的期待和憧憬,Puck 的每一次升级和优化都记录着我们的成长和进步。


对于 Puck 的未来,我有着很高的期待。首先,我希望 Puck 能在开发者社区中得到广泛的使用,同时也能得到社区的反馈,不断优化和改进。我期待看到更多的人参与到 Puck 的开发和使用中来,通过大家的共同努力,让 Puck 成为 AI 领域有影响力的一款工具。其次,我希望 Puck 能够持续创新,不断优化,保持其技术领先地位,不仅能适应现有的技术需求,还能预见并引领未来的技术趋势。最后,我希望 Puck 能在更多实际应用中发挥出它的价值,为人工智能在各个行业的应用提供强大支撑,推动科技的发展。


采访嘉宾简介:


Ben,百度搜索内容技术部主任架构师,负责多模态内容理解、超大规模内容关系计算、内容加工与生成、模型优化等方向。


今日好文推荐


“这是一件关于云服务的大事儿!”英特尔 4400 万美元投资基础设施初创公司,硬刚公有云


头发丝 1/60 的精度,中国每 10 辆新能源汽车就有 6 辆用这家齿轮


语雀突发 P0 级事故!宕机 8 小时被网友怒喷,运维又背锅?


智谱 AI“超 25 亿融资”的背后


公众号推荐:

AIGC 技术正以惊人的速度重塑着创新的边界,InfoQ 首期《大模型领航者AIGC实践案例集锦》电子书,深度对话 30 位国内顶尖大模型专家,洞悉大模型技术前沿与未来趋势,精选 10 余个行业一线实践案例,全面展示大模型在多个垂直行业的应用成果,同时,揭秘全球热门大模型效果,为创业者、开发者提供决策支持和选型参考。关注「AI前线」,回复「领航者」免费获取电子书。

2023-10-30 14:173700

评论

发布
暂无评论
发现更多内容

最新、最全、最详细的 MySQL 数据库学习笔记总结(2021最新版)

民工哥

MySQL 数据库 Linux 后端 运维工程师

一行代码实现网站移动化的原理与实现

chi

翻译:《实用的Python编程》09_02_Third_party

codists

Python

面试总结-Java-2年

U2647

Java 面试 4月日更

volatile 关键字需要知道的几点

lich0079

Java volatile Disruptor unsafe false sharing

基于 Notion + CloudFlare + 域名搭建博客

chi

以应用为中心的云原生2.0

8小时

最详细的 K8S 学习笔记总结(2021最新版)!建议收藏

民工哥

Kubernetes 容器 运维 后端

看看别人家 SpringBoot 的全局异常处理,多么优雅....

Java小咖秀

springboot 全局异常

在线 excel 产品技术调研

chi

Prometheus counter 四大 query 函数详解

Grafana 爱好者

云原生 Prometheus 可观察性 PromQL

听说你们写毕业设计没有动态数据?Python教你一步完成!

大数据老哥

架构实战训练营 - 模块二课后作业

Johnny

架构实战营

架构实战营模块2作业

竹林七贤

架构实战营

智能小车系列-NODE版SBUS飞控协议解析历程

波叽波叽啵😮一口盐汽水喷死你

SBUS 飞控协议 SBUSReceiver S.BUS SBUSUART

从 JavaScript 明星项目看前端发展

chi

谈商业软件的发展趋势

chi

写作平台一周年 | 我曾陪伴走过四季春秋

架构精进之路

个人总结 4月日更 1 周年盛典 我和写作平台的故事 InfoQ 写作平台 1 周年

PHP异常处理

Sakura

4月日更

在线文档 - 为什么需要OT算法

chi

架构训练营模块 2 作业 - 张动动

张大彪

架构训练营

模块二作业

Chris Cheng

架构实战营

爬虫IP代理池代码记录

空城机

Python 爬虫 代理IP 4月日更

架构实战营 - 模块 02 作业

架构实战营

带你厘清事务一致性(下篇)

小舰

4月日更

模块二:课后作业

黄先生

架构实战营

理解OT算法

chi

python 异常处理

若尘

异常 异常处理 Python编程

我眼中的工程师的十个特质

chi

架构实战营 -- 模块二

永佳

架构实战营

联想小新潮7000安装CentOS后重装Windows10

笑春风

对标 FAISS,百度开源自研高性能检索引擎 Puck_生成式 AI_Tina_InfoQ精选文章