在现实生活中,“以图搜图”已经得到广泛应用。例如,当我们看到喜欢的服饰,但不知道品牌或具体名称时,可以使用电商平台以图搜图功能,只要上传该衣服的图片,就能立即找到相似款式,并获得价格和购买链接。
从技术角度来看,以图搜图得以实现,与向量检索紧密相关。向量检索是将数据对象(如图像、文本等),转换为向量形式存储和检索,并对图像进行特征提取,将图像的特征表示为向量,利用算法快速计算、查询向量与数据库中向量的相似度,最终完成搜索。可以说,向量检索为以图搜图提供了一种快速、有效的实现方式,使得在大规模图像数据的相似性搜索成为可能。
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台。未来,它还将持续为企业提供极致的数据分析能力,助推数智化转型升级。