重磅!阿里开源自研高性能核心搜索引擎 Havenask
2023-04-27 02:05:11发布 浏览475次 信息编号:50620
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
重磅!阿里开源自研高性能核心搜索引擎 Havenask
作者| 蒂娜
近日,阿里开源了一款自主研发的大型分布式搜索引擎(内部代号HA3)。
是阿里巴巴内部广泛使用的大型分布式检索系统,支撑了阿里巴巴整个搜索业务,包括淘宝、天猫、菜鸟、优酷、高德、饿了么等积累的核心竞争力产品。
在大数据时代,数据检索是必不可少的基础能力。 支持千亿级数据实时检索、百万QPS查询、百万TPS高时写保障、毫秒级查询延迟和数据更新。 并且具有良好的分布式架构和极致的性能优化,可以实现比现有技术方案更低的成本,帮助企业降本增效。
开源地址:
应用于阿里巴巴核心场景的搜索引擎
主要作为高性能AI智能引擎,应用在搜索、推荐、广告等最典型的AI场景,如淘宝、天猫App首页搜索框、首页图片搜索、首页信息流、购物等.
该场景下,工程引擎需要支持算法团队快速AB实验和快速优化迭代,实现算法分分钟优化上线; 并在机器资源可控、成本可接受的前提下,支持算法团队进行千亿级参数、超大模型、极致优化算法效果的实验。 算法的效果直接影响到客户体验、用户留存、购买转化、广告投放效率。 因此,它在电子商务业务的增长中起着关键作用。
以手机淘宝App首页的拍丽淘(商品图片搜索)为例,我们将自己感兴趣的商品拍一张照片,用这张图片在拍丽淘中进行搜索,淘宝会从数十亿种商品中进行筛选查找相同或相似的产品。 这也是一个典型的向量计算场景。 亿级数据和高纬度矢量计算需要实时、高性能、低成本的特性,才能实现实时无延迟的搜索体验。
另一个应用场景是大数据检索,比如淘宝App中的订单检索、物流信息、优惠券的发放和使用等,本质上都是关键词附加多个条件。
传统的做法是基于数据库来实现。 但是在这种场景下,数据量至少是TB级和PB级。 当数据规模特别大的时候,高并发的更新和查询操作会给数据库性能带来很大的瓶颈,在成本上也会有比较大的挑战。 基于搜索引擎技术,可实现千亿级数据、秒级时效、毫秒级查询延迟,为用户提供流畅的用户体验,成本远低于数据库方案。
以淘宝优惠券为例。 淘宝有千万商家,亿万消费者。 会有大量的优惠券发放和使用。 优惠券的状态变化也是有效的。 因此,优惠券的发放、使用和结算必须要做到良好的体验,必须是准确和实时的。 这不是一件容易的事,对系统性能的要求很高,成本也不会低。 但依靠它,你可以低成本实现千亿级数据查询、秒级时效、毫秒级查询时延。
阿里巴巴十余年沉淀
阿里电商搜索早期以http的形式实现,支持淘宝、B2B等子公司的搜索业务。 一个业务一个版本分支,与业务逻辑深度耦合。 因此,大约从2009年开始,在支持业务的同时,阿里组建了一个小团队,从头开始重写整个搜索系统。
2011年,新系统研发完成,取代雅虎旧有的网络搜索系统,并上线,开启了自主研发的大规模分布式高性能搜索引擎时代。 当时的内部代号是“问天引擎”(HA3),后来随着组织架构的调整,变成了今天的UC神马搜索。
自研引擎推出后,一两年后,阿里统一了多个老引擎的分支。 问天引擎开始支持包括淘宝、天猫在内的集团几乎所有搜索业务,支持集团大量搜索业务统一代码分支、产品化、规模化。 搜索技术团队也团结在一起,以极致性能优化、分布式、高可用、友好运维为目标,不断打磨这款搜索产品。
2016年,随着深度学习技术的广泛应用,电商领域迎来了信息流推荐的新机遇,也给工程引擎带来了新的挑战。 此后,阿里基于信息流的推动,将原有的HA3系统发展成为阿里集团内较为核心的AI引擎。
此后,经过不断演进,逐渐成为Aliso推广场景的核心AI智能引擎。 作为阿里搜索推广平台的工程引擎系统AI·OS(AI)的核心引擎,支持阿里集团包括淘宝、天猫、菜鸟、高德、饿了么在内的数千家搜索业务。
目前支持的服务可以分为三类:
淘宝、天猫主搜TOP业务直接部署使用搜索引擎,引擎团队亲自支持算法和业务,业务规模个位数; 其他除淘宝、天猫主营搜索外的核心搜索业务,如高德、优酷、饿了么、AE等,均由构建于其之上的PaaS平台产品支撑。 业务方自主定制开发运维,引擎团队提供支持。 业务规模在100级; 其他中长尾业务,或没有深度定制化需求的核心搜索业务,由云内外统一的云产品SaaS版本(基于底层)支撑。 业务方自己使用手机无限制搜索器,引擎团队提供支持。 业务规模千级。
搜索引擎的整体结构
在 中,一个比较完整的搜索服务由:在线系统、索引系统、管控系统、扩展插件等组成,包括查询流、数据流、控制流。
作为AI引擎,本质上是帮助用户更准确地找到符合自己需求的产品。 随着机器学习技术的发展,大量的深度学习算法被应用到电子商务搜索引擎中,以实现个性化和智能化。 以电商搜索为例,当用户在搜索框中输入关键词或句子时,系统会首先尝试理解关键词或句子(NLP技术),并将其拆分为关键词、语义相关性、向量搜索等多渠道召回,召回一批产品,对这批产品进行粗分拣,粗分后再对较小的一组产品进行精分。 每个环节都会应用大量的机器学习算法来实现搜索。 个性化和智能化,整个过程需要在毫秒级完成。
在这个过程中,搜索团队在性能和迭代效率上做了很多优化。 有两个关键点:
大量条目的准确召回是提高搜索质量的第一个环节。 一般采用多个系统调用来实现多通道召回。 调用环节复杂,召回延迟可能比较大。 支持在系统内使用全图思维,同时完成关键词、语义关联、向量、个性化等多通道召回,合并后直接返回最终召回结果,实现召回时延极小。
针对不同召回特征,支持O2O(-to-,或-to-)优化,支持数据和模型实时更新,保证线下一致性。 算法工程师可以使用更复杂的召回策略,快速在线进行各种AB实验,实验验证效果后手机无限制搜索器,分分钟上线。
此外,AI引擎还支持丰富的插件扩展机制,自主研发的CAVA语言(类似JAVA)开发,并可集成达摩院的矢量库,支持多模态搜索。
阿里内部大部分大数据检索场景都是基于. 大数据检索场景的主要特点是数据量大、数据更新或查询并发度高,一般不需要数据库的强一致性、强一致性和事务,但在这种场景下会导致性能瓶颈和成本较高.
在大数据检索场景中,最接近的对标软件是. 主要场景有日志分析检索、监控、安全分析、企业文档搜索、关键词召回等,也有一些区别:
数据更新的及时性更好。 高并发写入大量数据时,数据更新后1秒内仍可查询。 ES受限于架构。 虽然时效性可以配置,但是在数据量很大的情况下,时效性配置到1秒在生产中基本用不上。 更好的查询性能。 对同一数据集的测试表明,在资源更少(内存占用减少 20-50%)的情况下,查询 QPS 提高 2-3 倍,平均查询延迟降低约 2/3。
因此,在大数据检索场景下,可以说是为业界提供了一个极具性价比的新技术解决方案。
底层全部由C++实现,具有比较完善的索引构建、存储和管理能力,具有良好的可扩展性。 既可以使用单机存储介质、开源分布式存储系统,也可以使用云存储产品。
后续开源规划
搜索引擎是一个非常复杂的系统。 当数据规模巨大时,要达到良好的稳定性和实时性是非常具有挑战性的。 对于一般规模的企业来说,自研一个大型分布式搜索引擎一般需要几十人甚至上百人的团队,耗时数年。 的开源,无疑为有类似需求的企业节省了高昂的研发成本。 开发人员和企业还可以利用 AI 领域更简单、更快速的创新。
阿里也希望开源能够吸引更多优秀的开发者参与共创,共同推动本土化开源搜索引擎技术的快速发展,让更多的开发者和企业受益。
阿里目前已经开源了基于2.0许可的核心代码,并表示将在未来几个月内发布正式版,与内部主干代码保持一致。 未来计划逐步开源更多阿里AI OS系统。 下一个可能开源的系统是图计算引擎(内部代号)。
提醒:请联系我时一定说明是从星空网上看到的!