作者|Zilliz 合伙人和技术总监 栾小凡
2022 年绝对是向量数据库赛道爆发的一年。在这一年,Milvus 社区正式发布云原生向量数据库 Milvus 2.0,Gihub 上也出现了超过 10 家开源的向量数据库产品,如 Vald、Weaviate、Qdrant、Vaspa、Vearch、AquilaDB、Marqo 等等。数据库厂商 Elastic 和 Redis 也正式加入了战局,推出了向量检索功能的支持。在云上,Milvus 社区的发起团队 Zilliz 正式发布了全托管 DBaas 服务 Zilliz Cloud,竞品包括了 pinecone 和 Google Vertex AI 这样的 Saas 公司和云厂商。
资本市场上,2022 年也是风起云涌的一年,各大向量数据库公司纷纷完成了千万美元级别的新一轮融资。可以预见,2023 年将会是向量数据库继续快速发展的一年,也会是这一新兴技术由发展走向成熟的一年。
资金 | 日期 | |
---|---|---|
Zilliz | 6000万美金(B+轮) | 2022.8 |
Pinecone | 2800万美金(A轮) | 2022.3 |
Weaviate | 1600万美金(A轮) | 2022.2 |
Qdrant | 200万欧元(Preseed) | 2022.1 |
向量数据库厂商 2022 年融资情况
在过去两年中,我有幸作为 Milvus 社区的 Maintainer 深度参与到下一代云原生向量数据库的设计开发中,见证了这一领域快速发展的过程。作为一名创业者,也聊过了不少数据库/ AI 赛道的投资人、创业者和候选人,以下是我对于向量数据库行业 2023 年的八个预测:
与以往的齐头并进、同质化发展不同,接下来随着资本和人才的流入和应用场景的快速发展,不同的向量数据库厂商开始向着不同的场景发力,包括但不限于:
过去的向量数据库主要面向搜广推场景,其特点是在线实时性要求高、数据规模小,对向量数据库的主要要求是高性能、高可用性,对扩展性、功能的复杂度要求不高。而随着图像、视频、无人驾驶、NLP 领域等应用场景的不断发展,数据体量已经从千万级逐步增长到百亿级别,对于向量数据库离线导入、批量处理的能力要求也越来越高。
以 Milvus 为代表的向量数据被我们称为物理实例,其主要解决向量低成本存储和高效率检索的问题,并不过多涉及向量生成部分。市场上出现的一些向量数据库不仅仅负责向量处理,也囊括了面对各种模态数据向量生成的能力。
逻辑向量数据库 Vs 物理向量数据库
逻辑实例更加易用,也避免了更加复杂的部署和依赖。而物理实例的优势在于更加灵活,用户可以根据需求选择最为合适的推理引擎和模型。对于个人而言,我更喜欢 Physical DB + Embedding ETL 的方式,将向量生成和向量检索拆分两个阶段,主要原因在于向量数据库上游的应用场景非常复杂,作为一个数据库产品,抽象层次很重要,太早关注太多业务细节很容易导致产品的通用性和基础能力被带跑偏。
分布式和单机并不是完全替代关系,至少从目前来看绝大多数分布式数据库的性能都更差,维护成本和设计成本也更高,对于许多开源中小用户而言,稳定性高效的 MySQL/PG 也是不错的选择,并非所有的需求都需要刻意拓展的 NewSQL 数据库。
对于向量数据库这一战场,扩展性的做法目前也依然存在着两大流派,一派是基于单机引擎,通过 Raft 协议保证数据的一致性,通过一个简单的 Proxy 完成数据路由(甚至就提供一个单机方案,用户自行通过切分数据实现扩展)。而另一流派则是以 Milvus 2.0 为代表的云原生设计,基于云的基础设施(云盘,S3,消息队列)实现数据的持久化,存储计算分离/微服务化实现弹性伸缩和池化。
目前来看,两个流派都远远没有做到各自的瓶颈,至少在 2023 年我们还要让子弹飞一会。不过用户对海量数据的需求不会等,用户对于算力,内存的扩展性需求都决定了分布式向量数据库将会成为主流。
向量索引经过了五年的快速发展,从 Faiss 为代表的 IVF 流派慢慢统一到了 HNSW/NGT 为代表的图流派。图索引尽管解释性相对较差,内存消耗较高,但确实因为其高性能、高召回率被广泛采用。
随着向量数据库背后的商业化公司的发展,越来越多的公司开始自研执行引擎,这意味着向量数据库的产品将会在性能,功能,资源占用等多个方向分叉。另一个值得关注的是 google 发布的 ScaNN 技术,新一代量化技术从 benchmark 的指标上来看非常优秀,也会在近期被我们集成在 Milvus 的执行引擎 Knowhere 中。
当前向量数据库的 API 还没有形成统一的查询接口,绝大多数都是定制的 Python SDK 或者 Restful 接口。在 Google Next 2022 上,Big Query 发布了 BigLake,似乎将使用 SQL 作为非结构化数据和向量处理的主要语言向前推进了很大一步。SQL 主要面向的用户群体跟传统深度学习开发者有着很大区别,在过往使用 SQL 进行机器学习或者深度学习的尝试都没有获得很大的成功,因此 SQL 作为向量数据库查询语言的尝试依然需要观望。
除了 SQL 以外,我们也看到了基于 GraphQL 查询语言和自定义 DSL 的一些尝试。不论最终用户能够接受哪种接口,我的预测是 2023 年应该会有一种接口成为向量数据库领域的事实标准,有多个产品都基于类似的接口进行实现。
向量数据库发展 2 年以来,早已不再是早期基于 Faiss 的简单封装。对标量字段的过滤和索引,对于流式数据的增删改查能力已经成为向量数据库的标配,传统数据库中的 Parser、Optimizer,包括内存管理、并发管理也越来越多的出现在向量数据库中。另一方面,很多 Olap 数据库和 NoSQL 数据库也逐步集成了向量检索的能力,成为这一领域的重要玩家。
个人一直持有 One size cannot fit all 的观点,传统数据库厂商做不好向量检索,这既有人的问题,又有既定架构带来的局限性。不过 2023 年不会是决战的战场,我们依然会看到更多的传统数据库厂商进入向量检索这一领域,因为这块蛋糕实在是太有吸引力了。另一方面,向量数据库依然会不断向数据库领域学习,不断将自己的基因从 AI infra 向数据库转换,原因是向量检索的场景相对于传统 AI Infra 没有那么灵活和场景化,对通用型、稳定性的要求更高。不出意外的话,2023 年我们将会看到更多拥有传统数据库背景(包括 Tp,Ap,搜索,缓存)的人才进入向量数据库这个赛道。
成本和性能一直是阻碍向量检索替代传统关键字检索的一大阻碍。现状下绝大多数向量数据库都是纯内存,如果要存储百亿级别的向量数据需要消耗几十 TB 的内存资源。另一方面,由于绝大多数分布式数据库要平衡查询性能和索引构建速度,一般都采取了分治的策略,将数据划分成不同的分片构建索引,查询时每个分片取 TopK 再进行归并。随着数据体量的增加,查询的 CPU 开销也随之线性上升,因此大数据集下支持高 QPS 的计算资源开销也很难被承受。
2023 年将会是向量数据库成本和性能突飞猛进的一年,以下是我看到的机会:
1) Arm 架构在云上的广泛应用,其简单计算的性能的性价比相比 X86 好 2-3 倍
2) 异构硬件的蓬勃发展, 内存/显存和带宽都远远超过了 GPU 能够提供的范围
3) 量化技术的发展,尤其是 4bit 量化技术在向量检索上大范围应用
4) 磁盘 Anns 索引将成为主流的研究方向
5) NVMe 磁盘提供了令人激动的性能,使用 AIO,IO_URING 等技术可以达到百万级别的 IOPs
6) 随着对向量数据库的深入了解,借助元信息和传统数据库技术类似的裁剪技术,每次查询无需再查询所有分片
7) 基于机器学习的索引参数选择和模型参数选择将会第一次在生产环节出现
8) 向量数据与传统标量数据一样,同样具备冷热特性
从物理机部署到 Serverless
Serverless 带来的弹性和按需计费能力,对于向量数据库云托管服务用户是非常具有吸引力的。一方面,向量检索场景复杂,既有离线又有在线,负载波动大且往往面向多租户场景,Serverless 大大降低了用户进行容量评估和业务隔离的复杂度。另外一方面,向量数据库的可用性和一致性往往没有关键的 OLTP 业务要求那么高,从技术而言向量数据库 Serverless 落地的可行性也将更加高。
当然向量数据库距离成熟的 Serverless 还有很大距离,目前还没有看到哪款产品投入很多精力在弹性,流控,多租户隔离等方面的工作上。个人预计 2023 年会率先诞生像 AWS Aurora 一样单机基于容器可以动态 Scaleup/down 的向量数据库,真正意义上的分布式 Serverless 数据库还有很长的距离。
向量数据的特殊性决定了这个赛道需要创造性地构建许多新的工具。比如说对于数据的展示,传统的表格方式只适用于字符类型和数字类型,而向量数据的分布、查询路径都需要更加直观的可视化路径。
Feder 展示 HNSW 索引的查询过程
Feder 展示 IVF FLAT 索引的数据划分
向量数据库方向第二条有意思的赛道则是数据传输链路,包括数据备份,迁移,导入能力。随着向量数据库种类越来越多,需要一个连接不同数据和上下游的传输工具打通上下游。未来,向量数据库跨云跨机房的复制,从 Spark、Pytorch、TF 生成的批量向量数据,都会通过传输工具源源不断地流入向量数据库中。
AI4DB 其实在数据库领域已经提出了多年了,但是一直很难大范围的落地。其最大的瓶颈是关系型数据库是一个对结果正确性和可解释性要求很高的品类,即使 90% 以上的场景都能获得收益,10% 的 badcase 就可能导致 AI 技术无法在真实应用场景下落地。
向量数据库某种程度上打破了这一约束,因为向量数据库天生就是概率最优,甚至连查询结果都只关注召回率而非 100% 准确。在这一基础上,AI4DB 可以被更加激进地用于参数自动调整、查询语句重写、Learned Indexes 等多个领域。根据我们的测试显示,通过模型预测查询参数,可以在大数据集下获得两倍以上的性能提升。如果能根据数据集和少量查询进行索引和查询参数的调优,相信能够拿到更加令人激动的提升。
Milvus 是全球第一款向量数据库,也是目前最先进的云原生向量数据库。在过去几年中,优秀的开源项目往往会由多家商业公司共建,比如 Hadoop、Presto 包括 Clickhouse 都存在类似的情况。随着 Milvus 开源项目的逐渐成熟,从零开始重写向量数据库完成超越的成功概率已经越来越低,基于向量数据库构建 Saas 服务的机遇却依然存在。作为一个开放包容的开源社区,我预计 Milvus 未来也会迎来更多共同的建设者,大家既合作做好 Milvus 项目,又在商业化领域进行竞争。
过去几年大模型的深度发展拓展了向量数据库的应用场景,算力也借助 GPU 和专属硬件的发展取得了长足的进步。2023 年对于整个行业和开源社区都是非常值得期盼的一年,希望这篇小小的预测能够帮助各位看官看到一点点未来,我们 2023 再见!