seekdb MLDR 测试
本文介绍如何使用 MLDR 对 seekdb 进行性能测试。
什么是 MLDR
MLDR 全称为 Multi-Lingual Document Retrieval,是一个数据集测试框架,用于评估和测试多语言文档检索系统的性能。支持多种查询类型(BM25、Dense Vector、混合检索等)。
支持的查询类型
| 查询类型 | 说明 | 支持后端 |
|---|---|---|
bm25 | BM25 全文检索 | OceanBase 数据库、seekdb |
dense | Dense 向量检索 | OceanBase 数据库、seekdb |
hybrid_dense_bm25 | Dense+BM25 混合检索 | OceanBase 数据库、seekdb |
评估指标
- Recall@10:前 10 个结果的召回率。
- NDCG@10:归一化折损累积增益。
- 平均查询时间:单次查询的平均响应时间。
环境准备
测试前请按照如下要求进行测试环境准备:
-
Python 需要 3.11 及以上版本。
-
JDK:需使用 11 及以上版本(用于 pyserini)。
-
seekdb:使用服务器模式 seekdb,详细部署操作请参考 通过 yum install 部署 seekdb。
-
部署的 seekdb 所对应的日志盘、clog 盘、data 盘分三块盘,性能级别 PL1,即在启动 seekdb 时,需在
/etc/oceanbase/seekdb.cnf下设置以下参数:port=2881
base-dir=/data/1/seekdb
data-dir=/data/2/seekdb
redo-dir=/data/3/seekdb
测试方案
-
本次测试需使用到 2 台机器,MLDR 部署在一台机器上。seekdb 部署在另一台机器上,seekdb 的规格为 4C8G,其日志盘、clog 盘、data 盘分三块盘,性能级别 PL1。
-
测试数据量:200,000 条。
-
使用 MLDR 数据集,对 seekdb 的召回进行评估。