在数学领域,特征值与特征向量是十分重要的两个概念,高校课本上都表明这两个概念在工程技术方面有着广泛应用。
但还不止于此,在蓬勃发展的数字化智能时代,特征值和特征向量对于AI算法的开发以及AI训练与应用有着重要价值,
可以说是人工智能(AI)的基石。
当前,随着5G、物联网、云计算等技术的普及,AI开发与应用规模也在不断扩大,企业除了要面对数据爆发挑战,还需要对海量的特征向量进行存储和计算,这进一步加大了基础设施的性能压力。
为了给AI领域的向量检索提供基础系统支撑与保障,京东与英特尔合作,在基于英特尔®至强®可扩展处理器的服务器上对分布式特征向量检索系统Vearch 进行优化,借助英特尔软硬结合优势,
帮助企业改进重复图片去重、相似性商品图片搜索、人脸识别等 AI 应用的响应速度,并大幅降低特征向量检索系统总体拥有成本(TCO)。
AI特征向量检索新困境
今年是AI与行业融合最为关键的一年,随着企业对AI技术的深入了解与应用,一些新的难题也逐渐显现出来,成为制约AI场景应用的新壁垒。
在数学学科中,特征向量是线性变换中的一个专业名词,它是一个非退化向量,其方向在变换下保持不变,而该向量在此变换下缩放的比例就是特征值。
在人工智能领域,特征向量代表的是一组属性的集合,主要用来描述特定目标的不同特征属性,也是AI应用的重要基础性数据。
随着算法能力的不断提升,越来越多的数据文本,如图像、音视频等,都可以通过机器学习算法抽取大量特征应用于业务场景,形成我们常用的一些AI应用,如图片检测、听音识曲、人脸识别等。
当前,AI技术的应用范围持续增长,企业业务场景日趋复杂,海量特征向量的存储与处理需求也在不断扩大。然而,目前行业内并没有一套完整的系统解决方案来满足高维特征向量的存储与计算,一些开源机器学习算法基础库能够支持各种向量检索模型,但却不能支持分布式、实时索引和检索等相对复杂的功能。
以零售产业的AI应用场景为例,常见的特征向量包括用于描述用户的向量和用于描述商品的向量,而当下深度学习等AI应用在企业内部的规模越来越大,
这就使得特征向量的规模常常会达到 10/100 亿,甚至千亿量级,对内存和磁盘资源有着巨大的需求。
此外,在向量检索中,企业往往会在AI训练之后将用户向量和商品向量存储到基础向量检索系统中,并通过用户ID等方式定位到特定的特征向量,使用该特征向量在向量集中进行检索,可以召回Top-N个结果。而为了满足特征向量存储及向量检索对内存和磁盘资源的需求,业界通常会采用部署大量容器的方式。
且为了最大化利用资源,企业会将单个容器的资源控制在较小范围内,这同样对系统整体的性能产生了挑战。
为了应对海量高维特征的存储及特征向量检索两个问题,京东零售技术与数据中心基础架构团队基于现有部分业务及应用场景,抽象提炼出一个服务于AI时代的基础向量检索系统——Vearch,并与英特尔合作,借助英特尔软硬结合优势,打造了一个功能强大、灵活易用的特征向量检索方案,再通过优化解决内存和存储资源占用过多问题,以此帮助工程师更加专注于算法创新本身。
Vearch带来向量检索新方式
Vearch是一个分布式向量搜索系统,主要针对大规模深度学习向量进行高性能相似搜索,解决亿级及数亿级向量的存储和计算问题。
Vearch整体架构有三部分组成:Master,Router 和 Partition Server(PS)。
其中Master负责对整个Vearch集群的资源进行调度和管理;Router负责对用户所有的请求进行解析路由和转发;Partition Server(PS)则是存储及重要的计算节点,可以提供存储、检索文档、向量、标量的能力。
为了进一步提升Vearch系统在性能和资源利用方面的能力,京东与英特尔合作,
在基于英特尔®至强®可扩展处理器的服务器上,通过原始向量压缩、string字段压缩、内存整理、图+量化组合索引等方式对系统进行优化。
比如在软件方面,京东在某些向量召回场景使用“图+量化”的组合索引方式,它可以召回有序结果,避免了二次排序时需要存储原始向量的做法。数据表明,使用“图+量化”的组合索引方式后,在保证Top-1较高召回率的情况下,存储资源的使用量只有原来的1/4或更少。
除了软件层面的优化,英特尔的硬件优势是特征向量索引性能提升的关键因素。京东采用的是英特尔®至强®可扩展处理器,不仅拥有强大的通用计算能力,其上还集成了增强单指令多数据流(Single Instruction Multiple Data,SIMD)的英特尔®AVX-512指令集等创新技术,可以为单条指令提供双倍数量的操作数,从而大大提升指令的吞吐能力。
也是基于此,英特尔®至强®可扩展处理器不仅实现了对通用计算能力和并行计算能力的兼顾,还为存储与计算密集型应用提供了卓越的性能基础。
得益于英特尔软硬实力的加持,Vearch向量检索系统在多个应用场景中都有着十分突出的表现。
在IVFPQ测试中,通过Vearch优化版IVFPQ与Faiss原生版IVFPQ进行性能对比测试发现,相比于后者,Vearch优化版不仅针对IVFPQ算法的数据访问特点重构了数据的内存布局,还极大提升了L1 Cache的命中率。不仅如此,利用英特尔AVX-512指令集,IVFPQ在线数据访问的并行度也得到大幅提升。
实际应用中,Vearch向量检索系统能够在多个场景中为企业和用户带来更切实的体会。比如在人脸识别应用中,该方案可以帮助企业相关业务系统在不对基础设施进行大幅投资的前提下,提升特征向量检索的速度,降低存储资源消耗,节约总体拥有成本(TCO),从而助力构建更加敏捷高效的AI应用。而在用户体验上,通过基于Vearch的实时在线相似性图片搜索服务,电商平台能够为用户提供同款商品的搜索服务,让用户体验更加便捷、直观的购物方式。
强强联合共同推动AI平台优化
一直以来,英特尔都希望通过连接、存储与计算的全方位能力来凝聚整个行业生态的力量,充分发挥自身软硬结合优势,帮助企业在智能化转型中不断提升。
京东与英特尔联合持续优化Vearch系统在行业场景中的应用。
据了解,Vearch自去年9月份开源以来,华为、科大讯飞、爱奇艺、趣头条、OPPO、汽车之家和网易严选等数十家知名公司的团队或个人,已经在一些业务场景中尝试或使用。
目前,Vearch最新3.2.0版已经支持实时IVFPQ、实时HNSW、IVFFLAT、BINARY和FLAT(暴力搜索)等多种ANN检索模型,而更多的检索模型也在集成中,如IMI、OPQ、SSG 等,以覆盖更丰富多元的业务使用场景。
不仅如此,京东也将在Vearch中提供更丰富的算法插件,包括文本语义embedding算法插件,音频embedding算法插件等。而依托在技术和产品方面的深厚积累,英特尔将帮助京东等合作伙伴对广泛的应用系统进行优化,促进软硬件协同调优与验证,进一步发挥英特尔架构在性能、扩展性、稳定性、可用性等领域的优势。
双方强强联合,共同推动Vearch系统在AI领域的应用,为互联网、零售和金融等行业的AI技术应用提供强大助力,同时也将智能时代数据带来的价值最大化释放,加速各行业向数字化迈进的步伐。