云搜索服务 CSS-Elasticsearch向量检索的性能测试和比较:性能测试比较
性能测试比较
- GRAPH类索引
百万规模的场景推荐使用GRAPH索引类型。
- 测试方案一:使用不同维度的数据集,在Top10召回率均达到99%的情况下,测试向量数据库能支撑的最大QPS。每个数据集均基于默认参数和调优参数分别进行测试,通过调整构建参数可以使得图索引结构更优,在同等召回精度下能取得更高的查询性能。
测试结果:
表1 GRAPH类索引测试结果1 数据集
构建参数
查询参数
性能指标
efc
shrink
ef
max_scan_num
QPS
Recall
sift-128-euclidean
200
1.0
84
10000
15562
0.99
500
0.8
50
10000
17332
0.99
cohere-768-cosine
200
1.0
154
10000
3232
0.99
500
0.95
106
10000
3821
0.99
gist-960-euclidean
200
1.0
800
19000
860
0.99
500
0.9
400
15000
1236
0.99
结论:对于不同的数据集,使用默认参数均能达到99%以上的召回率。在进一步调整构建参数和查询参数后,增加了一定的索引构建开销,同时也达到更高的查询性能。
- 测试方案二:使用同一数据集,通过调整索引参数,测试不同召回率下的查询性能。本方案用COHERE数据集,分别测试了Top10召回率为99%、98%及95%时的集群最大QPS。
测试结果:
表2 GRAPH类索引测试结果1 数据集
构建参数
查询参数
性能指标
efc
ef
QPS
Recall
cohere-768-cosine
500
128
3687
0.99
500
80
5320
0.98
500
36
9028
0.95
结论:同一集群在统一索引构建参数的情况下,通过调整ef参数可以获得不同的查询精度,在略微损失召回率的场景下可以获得成倍的性能提升。
- 测试方案一:使用不同维度的数据集,在Top10召回率均达到99%的情况下,测试向量数据库能支撑的最大QPS。每个数据集均基于默认参数和调优参数分别进行测试,通过调整构建参数可以使得图索引结构更优,在同等召回精度下能取得更高的查询性能。
- GRAPH_PQ类索引
基于图算法的索引为了保证查询性能通常需要常驻内存,因此当向量维度较高或数据量较大时,内存资源成为影响成本及性能的关键因素。具体来说,高维度的向量和大规模的数据集对内存的需求显著增加,这不仅关系到存储成本,还直接影响到索引算法的运行效率和响应速度。该场景推荐使用GRAPH_PQ索引类型。
测试方案:使用维度较高的COHERE与GIST数据集,测试在Top10召回率达到95%时的集群最大QPS,并与GRAPH索引对比常驻内存开销。
测试结果:表3 GRAPH_PQ类索引测试结果 数据集
构建参数
查询参数
性能指标
内存开销
efc
fragment_num
ef
topk
QPS
Recall
GRAPH_PQ
GRAPH
cohere-768-cosine
200
64
85
130
8723
0.95
332MB
3.3GB
gist-960-euclidean
200
120
200
360
4267
0.95
387MB
4.0GB
结论:结果显示使用GRAPH_PQ类索引能够在节约10倍+内存开销的情况下,取得与GRAPH索引差不多的精度和性能。因此, CSS 向量索引的GRAPH_PQ算法融合了图索引与量化算法,能够大幅降低内存的开销,提升单机的数据容量。
测试数据中涉及的索引参数说明请参见表4,关于构建参数的详细说明请参见在Elasticsearch集群创建向量索引,关于查询参数的详细说明请参见在Elasticsearch集群使用向量索引搜索数据。
- 性能测试使用教程_性能测试操作步骤_性能测试快速入门-华为云
- 性能测试使用流程_性能测试怎么样_性能测试 CodeArts PerfTest-华为云
- 什么是性能测试_性能测试作用_性能测试 CodeArts PerfTest-华为云
- 性能测试产品优势_性能测试应用场景_性能测试CodeArts PerfTest-华为云
- 性能测试有哪些特性_性能测试特点_性能测试 CodeArts PerfTest-华为云
- 性能测试基本概念_性能测试有什么作用_性能测试 CodeArts PerfTest-华为云
- CSS是什么_云搜索服务_CSS功能
- 哪里购买域名比较好_域名价格_域名解析服务
- 免费建站哪个比较好_免费建站模板_响应式建站网站
- 如何创建定时压测_性能测试服务_定时压测-华为云