作者 | 伍杏玲
出品 | CSDN
我们正处于信息爆炸式增长的时代,如何在信息海洋里迅速定位到目标信息成为人们关心的问题。搜索引擎作为互联网和应用的关键入口,向来是兵家必争之地。
然而在人们简单的搜索行为背后,对搜索引擎技术实际有诸多挑战:以电商场景为例,当遇到双11等大促活动时,百万级 QPS 的高并发访问,对千亿级商品 & 订单数据、保单 & 物流类数据时效性要求极高,那么搜索引擎该如何做到毫秒级时效?还有为了更准确理解人们的搜索意图,对搜索算法的要求越来越高,搜索引擎该如何做到算法分钟级迭代?这些都是技术上需要直面的挑战。
近年来,随着大数据技术、深度学习等 AI 技术的发展,搜索引擎能够更智能地帮助人们快速、准确地获取信息,我们对信息的处理能力也随之逐步提高。
阿里自研大规模分布式搜索引擎 Havenask 便是集大成者,基于阿里搜索十多年来的技术沉淀,Havenask 目前广泛应用于阿里巴巴和蚂蚁集团内众多业务,如淘宝搜索和推荐、 蚂蚁人脸支付、优酷视频搜索、阿里妈妈广告检索等。Havenask 支持算法高效快速迭代,内置性能优异的向量检索能力;做到毫秒级查询性能,并拥有稳定性保障 ;支持单应用实例千亿级别数据,确保百万 TPS 高时效性。
2022 年 12 月,阿里将 Havenask 开源,在几个月时间里 Star 数已超过 1000+。为何 Havenask 有这样优异的表现,在短时间内获得众多开发者的喜爱?下面我们从 Havenask 的技术演进谈起,让大家更加深入了解 Havenask 以及未来更多可能性。
传送门:https://github.com/alibaba/havenask
回顾 Havenask 从内部自研技术走向成熟,这一路走来可分为以下阶段:
第一阶段:1999 年~2008 年,以解决各业务部门的搜索需求为主
阿里搜索技术最早可追溯 1999 年,起源于雅虎搜索技术,基于 Apache Module 的单机版搜索引擎,支撑淘宝、B2B 等子公司的搜索业务需求。
第二阶段:2009 年~2011 年,重构搜索系统,开启自研大规模分布式高性能搜索引擎时代
自 2008 年起,开始构建阿里统一的搜索系统,内部代号为“iSearch”,它代表完全由阿里自研的搜索技术全新启航。iSearch 迅速迭代 iSearch3.0、iSearch3.2……2009 年演进到 iSearch4.5 版本,也就是 HA3(Havenask)最早的雏形。
2009 年,Havenask 开始逐步统一各子公司版本,去除 Apache Module。2011 年,彻底完成搜索系统的重构,HA3(Havenask)全部替代老的雅虎搜索系统,开始极致性能时代。
第三阶段:2012 年~2018 年,完成阿里内部搜索系统的“大统一”,进入快速迭代时代
2013年,HA3(Havenask)完成阿里集团各个业务搜索系统的“大统一”,不仅版本再次合并,还将 B2B、淘宝等搜索团队统一整合,以产品化、规模化的方式支撑起整个集团的搜索业务。
2018 年,随着深度学习技术的广泛应用,同时迎来信息流推荐机遇,HA3(Havenask)快速迭代,逐步形成一套以搜索引擎、在线推理引擎等为主的 AI 工程技术体系“AI·OS”。(OS”代表“Online Serving” )
第四阶段:2018 年~至今,对外开源,技术普惠
2022 年,阿里将搜索引擎 Havenask 开源,为更多用户提供更高性能、更低成本、更便捷易用的搜索服务。
总的来说,Havenask 的发展是遵循先解决内部业务应用需求,再从核心业务延伸到其他业务,随着技术发展潮流不断向前演变,从单一的搜索引擎到大数据深度学习在线服务体系 AI·OS 的重要组成部分,打造成统一平台提供更强大的能力支撑,继而逐步开源对外,普惠开发者,这和阿里其他技术产品的发展思路是一脉相传的。
从定位来看,Havenask 作为阿里巴巴自主研发的大规模分布式搜索引擎,支撑起淘宝、天猫、菜鸟、优酷阿里整体的搜索业务,并扛得住双 11 大促活动。这背后,离不开底层架构设计,让 Havenask 有了坚实的技术基底。
从架构来看,Havenask 由四个核心模块组成:
索引系统(Build Service)。通常搜索引擎需要对原始数据构建索引,才能在提供服务时实现高性能。这部分在 Havenask 是支持全量、增量、实时流的复杂分布式流计算系统。
在线集群(Havenask Runtime)。在线系统支持不同的数据规模分列查询,不同的查询并发做多副本。在系统里设计有类似于大脑的复杂角色,可以自动做查询处理、调度查询节点、数据节点等。如果出现机器坏了的情况,在线系统可自动识别这些情况,来保证系统的高可用。
消息中间件(Swift)。消息中间件用于实时数据传递,处理后的文档传递,是 Havenask 实现毫秒级时效性,支撑海量数据实时更新的基石。消息中间件 Swift 不仅可以用在 Havenask 系统中,也可以单独部署使用,与其他开源中间相比具有明显的性能和成本优势。
管控系统(Hape)。为了方便开发人员的日常运维,Havenask 对管控运维的 API 进行了封装,提供方便实用的运维工具 Hape ,使用它开发人员可以方便的对表和集群进行管理。
据阿里巴巴智能引擎事业部云服务负责人、Havenask 开源项目负责人郭瑞杰博士介绍,在架构设计上,Havenask 更具备适合工业级业务场景的特性:
1、通过灵活稳定的扩展方式支持业务多样化需求,轻松应对数据规模和流量规模的快速增长;
2、通过领先的实时索引技术,提供性能出色的亚秒级实时搜索能力,通过对实时索引的不断自动整理优化,保证搜索性能持续优异;
3、传统倒排索引技术和 AI 时代普遍应用的向量检索技术深度结合,端到端极致性能优化,支持千亿级别文档或高维向量的极低延迟计算。
人们进行商品搜索时,由于每个人有不同的喜好,搜索引擎需实现个性化和智能化,以准确召回商品。当用户开始进行搜索时,往往是用关键词或一段自然语言的描述,搜索引擎先采用 NLP 技术理解和拆分成关键词,再根据关键词的语义相关性,采用向量等多路召回方式,返回有可能是用户想要找的商品信息,再对商品做粗排,粗排后收敛到集合里,再做精排,这个过程中 Havenask 使用了大量机器学习算法进行优化,以实现较好的用户体验。
这对搜索引擎有较高的性能要求,Havenask 利用前置化思想,并发完成多路召回,实现非常小的延迟效果。另外在算法上,Havenask 支持离线计算转在线计算、在线计算转离线计算做优化,还支持模型的实时更新以保证在离线的一致性。如此一来,算法工程师可以用更复杂的召回策略来做 A/B 测试验证效果,如果效果可以的话,可以实现分钟级上线。
在拍照搜图场景中,以淘宝拍照购物“拍立淘”为例,用户通过手机拍摄实物或通过相册照片搜索,就能搜索同款或相似商品。 Havenask 利用向量进行图片搜索,完成向量索引存储并将向量化后的图片与向量索引比对召回,实现高精度图片搜索。上述能力得益于 Havenask 和达摩院向量库 Proxima 深度结合,并进行端到端能力优化,支持百亿甚至千亿级别的高维度向量的低延迟计算。
总体来看,Havenask 区别于其他产品的特点主要体现在两大场景中:一是大数据检索场景,实现亚秒级的时效性和极致的性能优化,达到较高的性价比。二是在 AI 场景上,Havenask 实现异步高并发、超低召回延迟,提供在离线一致性保障机制,以及高性能高维度向量计算能力。
即使在双11特殊场景里,数据更新量突然爆增至十倍、百倍,Havenask 仍能保证时效性在亚秒级。在查询上,单集群到近百万 QPS 时,Havenask 确保查询延迟毫秒级别。另外,Havenask 足够弹性,针对双11的流量急速变化,集群一键平滑扩缩容,变更对业务0影响,灵活应对流量峰谷。
Havenask 起源于阿里内部搜索业务需求,如今作为核心搜索引擎在阿里内部广泛应用,那么团队为什么选择将 Havenask 对外开源?
郭瑞杰表示,Havenask 围绕着电商场景演化出来,在阿里核心头部业务、中台业务等均广泛使用。希望通过开源的方式让广大开发者参与进来,让 Havenask 迭代更快走得更远。以开源 Elasticsearch 为例,在十年时间中,Elasticsearch 因为开源发展迅速,Havenask 也期待通过开源吸引更多开发者参与进来,一起联合共创。
再者,近年来国际形势变幻莫测,人们对国产化替代诉求与日俱增。期望自主研发的 Havenask 能帮助一些企业实现国产化替代,让更多开发者和企业以更低的成本实现业务创新。
不仅如此,Havenask 还提供商业版本来支持企业实现搜索场景、推荐场景、大模型应用场景创新。
“ Havenask 自开源后,在尚未开展过多活动的情况下,Star 数快速突破 1000,对我们来说还挺意外的,这也让我们坚定了后续持续建设开源 Havenask 的信心。”郭瑞杰说。
Havenask 作为 AI·OS 体系的重要部分,沉淀了阿里 10 多年的搜索技术,整体系统庞大,采取逐步开源的形式对外开放,从2022年首发时的单机预览版,到如今刚刚发布的的分布式正式版,已经完成了 Havenask 几乎全部核心代码的开源。
在2023年9月份最新发布的 Havenask 1.0.0 分布式版本中,支持读写分离与读写统一两种部署架构,可以分别满足开发者不同业务场景的需求,同时分布式版本提供基于机器资源池的集群自动化管理能力、动态表管理能力,降低开发者集群运维的成本;并且集成了自研的消息中间件,支持更完善的实时数据更新能力。
据郭瑞杰透露,在后续的版本中, Havenask 会更聚焦开发者的真实使用场景,特别是大数据检索和智能检索等领域不断构建 Havenask 的开源生态,让 Havenask 更加广泛的应用在更多业务中,解决开发者面临的性能、成本、稳定性等核心问题。
与此同时,Havenask 还开源了 Havenask-federation(简称Fed)项目(https://github.com/alibaba/havenask-federation),在 Havenask 和 Elasticsearch 之间架起一条桥梁,方便 Elasticsearch 开源生态用户,快速迁移和扩展,实现优势互补。
最近技术人话题离不开热门的 ChatGPT,ChatGPT 一经发布,大家认为被最早被颠覆的是搜索引擎。传统搜索引擎 + ChatGPT 将产生巨大化学反应,或将改写搜索引擎的产品形态。ChatGPT 能更好地理解人们的搜索意图,为用户提供汇总答案,提供更准确的搜索结果,还能以自然语言来搜索,让搜索体验有质的提升。
郭瑞杰表示,有了 ChatGPT 能力加持,不仅在 to C 端搜索引擎发生巨变,在 to B 端也将催化诞生颠覆性的产品形态。其中 to B 端和 to C 端搜索引擎稍有差异,to B 搜索引擎是面向企业,主要搜企业数据,而不是搜全网数据,更多的是围绕企业数据来提供更智能和更准确的答案。
针对不同行业的用户想基于大模型能力完成业务创新,Havenask 除了在底层传统搜索引擎技术上提供帮助,也正在做如下两个方面的能力增强,并持续开源:一是向量检索。在大模型时代下,向量检索技术是大模型应用创新的基石,我们正在构建新的向量检索引擎 VectorStore,预计性能大幅超越 Milvus,期望能提供给开发者更高性能、更低成本的向量检索方案;二是大模型推理加速。将全面支持各种 LLM(qwen、chatglm、baichuan、xverse、interlm、llama、falcon、mpt、starcoder 等)的推理加速,支持量化、多机多卡分布式、上下文 cache 等多种特性,预计性能超越 vllm 15%,期望给开发者提供更低成本的大模型推理服务。
现在,我们看到阿里已先行一步:在 2023 阿里云峰会上,正式推出大语言模型“通义千问”,并宣布阿里所有产品未来将接入“通义千问”,进行全面改造。例如在网购场景,用户如果想开生日 party,通义千问可以帮助生成生日活动方案和购物清单。
期待后续 Havenask 与“通义千问”联合创新,为人们带来更好地搜索体验,帮助企业和开发者量身定做适合业务发展的智能搜索服务,促进业务飞速增长,共享科技红利。
此外,基于 Haveansk 与“通义千问”打造的AI搜索产品——OpenSearch LLM 智能问答版,也已在阿里云上为企业级开发者提供全托管、免运维的一站式对话式搜索服务,欢迎企业级开发者们试用。
心动不如行动,欢迎立即体验:
Havenask 开源项目地址:
Havenask-federation 开源项目地址:https://github.com/alibaba/havenask-federation
OpenSearch LLM 智能问答版:OpenSearch LLM智能问答版_对话式搜索_大模型_阿里云
活动预告:
2023年11月1日13:10-13:25,杭州云栖大会 B3-4 馆,Havenask 开源正式版发布演讲
2023年11月1日14:40-15:10,杭州云栖大会 C 区舞台,Havenask 开源细节与案例分享
欢迎开发者前往会场参加,或通过线上渠道收看关注