
qdrant/vector-db-benchmark!截图 2022-08-23 14-10-01
查看结果
现有多种向量搜索引擎,各有不同的功能集和效率表现。但如何衡量其性能?目前缺乏统一标准,且在特定场景下,用户可能关注某些方面而忽略其他。本项目提供一个通用框架,可在相同硬件约束下对不同引擎进行基准测试,帮助您选择最适合的解决方案。
运行任何基准测试需选择引擎、数据集并定义测试场景。特定场景可能包括服务器单机/分布式模式、不同客户端实现及客户端实例数量等配置。
./results/目录,便于分析比对适用于需要评估向量搜索引擎性能的开发者、研究人员及技术决策者,具体场景包括:
基准测试采用服务器-客户端模式,服务器运行在一台机器,客户端在另一台机器运行。
所有引擎通过Docker Compose部署,配置文件位于servers目录。
启动服务器实例的命令:
bashcd ./engine/servers/<engine-configuration-name> docker compose up
容器会暴露所有必要端口,供客户端连接。
安装依赖:
bashpip install poetry poetry install
运行基准测试:
bash$ poetry shell $ python run.py --help Usage: run.py [OPTIONS] 示例: python3 run.py --engines "qdrant-rps-m-*-ef-*" --datasets "dbpedia-openai-100K-1536-angular" # Qdrant RPS模式 python3 run.py --engines "*-m-*-ef-*" --datasets "glove-*" # 所有引擎及其配置用于glove数据集 Options: --engines TEXT [默认: *] --datasets TEXT [默认: *] --host TEXT [默认: localhost] --skip-upload / --no-skip-upload [默认: no-skip-upload] --install-completion 为当前shell安装补全功能。 --show-completion 显示当前shell的补全脚本,以便复制或自定义安装。 --help 显示帮助信息并退出。
命令支持为引擎和数据集指定通配符。基准测试结果存储在./results/目录中。
每个引擎都有配置文件,用于定义基准测试参数,配置文件位于configuration目录。
基准测试流程的每个步骤使用特定的配置路径:
connection_params - 客户端连接阶段使用的参数collection_params - 创建集合时使用的参数,通常包含索引参数upload_params - 上传数据到服务器时使用的参数search_params - 搜索阶段传递给客户端的参数,框架支持同一实验运行多种搜索配置参数的具体值因引擎而异。
数据集配置在datasets/datasets.json文件中。框架会自动下载数据集并存储在datasets目录。
可通过以下基类实现新引擎:
BaseConfigurator - 定义创建集合、设置索引参数的方法BaseUploader - 定义数据上传方法BaseSearcher - 定义数据搜索方法示例见clients目录。实现所有必要类后,需在ClientFactory中注册引擎。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务