韦维阿特Weaviate 是总部位于阿姆斯特丹的 SeMI Technologies 自 2019 年以来开发的开源搜索引擎和数据库。 Weaviate 的既定目标是使以前被少数大型科技公司垄断的搜索功能民主化。该公司的软件为客户提供了在自己的基础设施上运行的机会,使他们能够在自己的防火墙后面保持对数据的控制。通过Weaviate Cloud,该公司还提供基于云的托管服务,为喜欢云数据管理方法的公司提供额外的灵活性。
成立于两年多前,旨在使用 Rust 作为系统编程语言开发矢量数据库。 2023 年初,Qdrant 推出了 Qdrant Cloud,扩大了其产品范围,这是一种适用于 1,000 多个 Qdrant 集群的托管矢量数据库解决方案。 Qdrant 现在正在通过为企业客户提供托管本地解决方案来扩展其产品范围,巩固其作为多功能且可访问的矢量数据库解决方案的地位。
实验
在我们的基准测试中,我们测试了 Chroma、Qdrant 和 Weaviate 在使用 GloVe 100 角度数据集加载和检索矢量数据时的性能。该数据集是使用 GloVe 算法作为单词表示获得的 110 万个 100 维向量的集合。
您可以在此处找到有关 glove100_angular 的更多信息。
为了测试向量插入性能,将 1,183,514 个 100 维向量 医院联系清单 以大约 1,000 个向量的批次加载到每个测试基础设施上的每个数据库中。这允许测试数据库快速有效地插入数据的能力。对于涉及大量数据的用例来说,这是一个重要指标。
对于矢量搜索,对加载的数据执行了 10,000 次查询。这是数据库搜索速度的衡量标准,这对于需要为用户查询提供快速结果的应用程序至关重要。
我们测试的基础架构包括三种大小的 Azure 虚拟机 (VM):小型 (S)、中型 (M) 和大型 (L)。每个虚拟机均使用硬盘驱动器 (HDD) 和固态驱动器 (SSD) 进行测试。每个 VM 大小的规格为:
虚拟 CPU (#) 内存(GB)
1 3.5
2 8
4 16
机器动物
S
中号
L
测试结果
上传性能
基准测试结果显示 Chroma、Qdrant 和 Weaviate 之间的上传性能存在显着差异。 Chroma(单线程)在带有硬盘驱动器 (HDD) 的 S 层虚拟机 (VM) 上实现了 268 分钟的峰值上传时间。在配备固态硬盘 (SSD) 的 L 级计算机上,该时间降至 39 分钟。随着时间的推移,S 层机器的性能会随着堆栈的不同而显着下降,各个堆栈之间的波动特别大。然而,在所有计算机中,与 HDD 相比,Chroma 采用 SSD 时表现出明显更好的性能。
相比之下,Qdrant 和 Weaviate 都以多线程模式运行,加载时间更快。根据机器级别,Qdrant 的加载时间在 13 到 6 分钟之间变化,而 Weaviate 的加载时间在 30 到 10 分钟之间变化。 Weaviate 的上传性能随着时间的推移保持相对稳定,并且 SSD 和 HDD 使用之间的差异很小。
Qdrant 的与众不同之处在于,由于上传和索引步骤的内部分离,它几乎可以立即批量上传。总体而言,Qdrant 在上传性能方面轻松超越 Weaviate。