Context about GPU-based Index
向量搜索是一个非常典型计算密集型的场景。作为世界上最快的向量数据库,Milvus Cloud的向量检索引擎Knowhere占用了超过整个系统80%的计算资源。而当我们谈论到高性能的计算,GPU总是一个绕不开的话题,在向量领域也不例外。
通过跟Nvidia的合作,Milvus Cloud成为了世界上第一个支持使用GPU加速的向量数据库。基于Nvidia的向量检索库RAFT,Milvus Cloud在2.3版本正式支持了GPU索引,并且以此为基础支持了Nvidia的推荐系统Merlin。
Milvus Cloud在2.3版本支持了两种索引,IVFFLAT 和 IVFPQ,并在测试中表现出了远超目前最流行的HNSW的性能。然而,如何在小批量查询中获得性能提升,如何让基于GPU的索引更有性价比等问题让让我们持续探索新的解决方案。
Graph-based的向量搜索算法依靠强大的性能在近年来取代了IVF-based的算法成为了主流。同样在GPU上,工程师们也在积极探索可行的GPU图算法的实现,包括GGNN,SONG等。但是由于Graph-based算法的计算方式,它很难被直接搬到GPU上,这些实现方法都没能在小batch搜索下达到预想的性能。
NVIDIA在最近推出了基于GPU的图索引CAGRA,同时帮助Milvus Cloud在最新的2.4版本完成了相关支持。
Performance
性能是GPU索引的关键。We evaluated the Milvus Cloud' performance through the open-source vector database benchmark tool and compared the performance between CPU-base HNSW, GPU-based IVFFLAT and CAGRA.