腾讯云向量数据库(Tencent Cloud VectorDB)是一款基于向量相似度搜索的数据库产品,提供高效的向量索引和快速的相似度查询服务。为了让用户更好地了解 VectorDB 的性能表现,腾讯云发布性能白皮书,详细描述 VectorDB 的性能测试环境、测试方法和性能数据等。本章节说明测试性能所需准备的环境与数据集。
数据库规格
腾讯云向量数据库所属地域为广州,测试实例规格如下所示。
节点类型:计算型。
节点规格:P.MEDIUM(4CPU、8GB内存)、P.LARGE(8CPU、16GB内存)
节点数量:3节点。
客户端测试环境
操作系统:TencentOS Server 3.1 (TK4)
规格:SA3.16XLARGE256。
已安装 Python 3.6.8 及以上版本。
说明:
使用腾讯云 CVM 连接腾讯云向量数据库(Tencent Cloud VectorDB),在腾讯云 CVM 安全组中需配置出站规则,把腾讯云向量数据库的 IP 及端口添加到出站规则中。在腾讯云向量数据库安全组中配置入站规则,把 CVM 的 IP 地址及向量数据库的端口添加到入站规则中,才能连接成功。具体操作,请参见 安全组。
测试工具
开源工具 ann-benchamrk 是一个用于评估近似最近邻(ANN)搜索库的性能测试工具。它提供了一套标准的测试数据集和评估指标,可以用于比较不同量级数据库的性能表现。腾讯云向量数据库基于 ann-benchmark 进行数据库性能评测,与竞品公平的进行性能差异对比。如下基于运行工具的命令,介绍其关键参数。
python3 run.py --dataset sift-128-euclidean --local --force --algorithm vector_db --definitions=configs/8c64g/100w-1shard.yml --batch --only_query --runs 1 -k 10
参数 | 参数含义 |
--dataset | 指定数据集的名字,数据集放在 ./data 目录下。 |
--local | 指定是否在本地运行。 |
--force | 运行查询测试时,如果历史已经测试过(存在本地测试结果 ),是否继续执行并覆盖。 |
--algorithm | ann-benchmark 默认支持多种数据库的测试,这里强制指定测试数据库为 vector_db。 |
--definitions | 指定测试运行时的配置文件。 |
--batch | 添加该参数后,测试工具会使用 CPU 多核模式压测数据查询,使用的 CPU 核数可以通过配置文件中的 Threads 参数控制。 |
--runs | 指定查询运行的次数。当运行性能测试时,期望工具能长时间运行时,可将该参数设置为较大值,如999999。 |
--only_query | 指定是否只运行查询。 因 ann-benchmark 默认的工作方式是先插入数据,再运行查询测试。 但在实际使用中,我们可能存在插入一次数据后,多次进行查询测试的场景。增加该参数后,可以跳过 ann-benchmark 的数据插入阶段。 |
-k | 希望查询返回的数据条数。 |
数据集
ann-benchamrk 官方数据集无需提前下载,测试工具运行时会自动检查 ./data( ann-benchamrk 工具存放数据集的路径) 目录下是否存在数据集文件,如果不存在则会主动连接官网下载官方数据集。ann-benchamrk 官方不具备768维度的数据集,腾讯云向量数据库团队基于中文文本制作了768维度,从100W 到1000W 级别的数据集供测试选用。具体数据集信息,如下表所示。
数据集名 | 数据集介绍 | 向量维度 | 向量数 | 索引方法 | 距离类型 |
官方数据集 | 128 | 1,000,000 | HNSW | L2 | |
官方数据集 | 960 | 1,000,000 | HNSW | L2 | |
腾讯云向量数据库提供的数据集 | 768 | 1,000,000 | HNSW | IP | |
腾讯云向量数据库提供的数据集 | 768 | 5,000,000 | HNSW | IP | |
腾讯云向量数据库提供的数据集 | 768 | 10,000,000 | HNSW | IP |