火山引擎 ByteHouse 高性能向量检索发布「以图搜图」应用场景

文章正文
发布时间:2024-08-03 15:44

在现实生活中,「以图搜图」已经得到广泛应用。例如,当我们看到喜欢的服饰,但不知道品牌或具体名称时,可以使用电商平台以图搜图功能,只要上传该衣服的图片,就能立即找到相似款式,并获得价格和购买链接。

从技术角度来看,以图搜图得以实现,与向量检索紧密相关。向量检索是将数据对象(如图像、文本等),转换为向量形式存储和检索,并对图像进行特征提取,将图像的特征表示为向量,利用算法快速计算、查询向量与数据库中向量的相似度,最终完成搜索。可以说,向量检索为以图搜图提供了一种快速、有效的实现方式,使得在大规模图像数据的相似性搜索成为可能。

2023 年底,火山引擎 ByteHouse 上线向量检索能力,而近期,该能力也在以图搜图场景中得到应用。

据介绍,ByteHouse 向量检索通过支持多种向量检索算法以及高效的执行链路,可以支撑大规模向量检索场景,并达到毫秒级的查询延迟。基于业界最新的 VectorDBBench 工具进行测试,ByteHouse 也已达到与专用向量数据库相近的性能。

ByteHouse 向量检索功能整体架构

某社交媒体整合营销平台,则通过引入 ByteHouse 向量检索能力,满足了舆情监测场景中的以图搜图需求。举个例子,有一家食品公司是该整合营销平台的客户之一,食品公司上市了一款零食,而某位消费者在零食中发现异物,并发布在社交媒体中,引发网络讨论,舆论不断发酵。基于以图搜图的舆情监测能力,整合营销平台帮助食品公司快速发现舆情异常,并采取补救措施。

但由于数据体量不断膨胀,该整合营销平台虽然匹配了更多资源,依然面临查询性能下降的问题。据介绍,该平台的整体数据规模已达到 12 亿,但公司管理层期望在尽可能低的成本下,达到秒级搜索速度。

经过一系列测试和对比,该平台的研发人员发现,行业相关产品的查询效率在几秒到十多秒之间,而 ByteHouse 只需 700-800 毫秒。在进一步优化之后,ByteHouse 查询效率进一步降低到 150-200 毫秒内,只需秒级以下时间,就能从大规模数据中查找出近似的 1000 张图片,并完成相似度评分。

ByteHouse 技术专家介绍道:「为了在有限资源下,最大化向量检索性能,我们主要在这四个方面进行优化,分别是向量检索计算下推、过滤操作优化、冷读优化、索引限制。」

具体来说,ByteHouse 通过将算子拆分,进行 Vector Search 再处理,提升延迟速度,实现计算下推优化,而在过滤操作中,主要针对标量、向量混合查询场景优化。针对造成性能瓶颈的冷读问题,ByteHouse 将不同资源用 index 结构载入内存的方式,实现高性能计算。

除此之外,由于使用向量检索会消耗较多 CPU 和内存资源,为了进一步降低成本,ByteHouse 用索引限制并发,并通过压缩存储空间、支持增量训练等手段实现内存优化。

除了支持向量检索能力的 Vector 引擎,ByteHouse 还具有全文检索、GIS 等引擎,实现全场景引擎覆盖。作为一款具备高性能、极致分析能力的云原生数据仓库,早在 2022 年 2 月,ByteHouse 在字节跳动的部署规模已超 1 万 8000 台,单集群超 2400 台。未来,它还将持续为企业提供极致的数据分析能力,助推数智化转型升级。(作者:杨欣)