跳转到主要内容

Qdrant与BEIR集成,简化标准数据集的质量检查

项目描述

beir-qdrant

BEIR是一个包含各种IR任务的异构基准。本项目将BEIR与Qdrant(一个向量搜索引擎)集成。

安装

pip install beir-qdrant

快速示例

以下示例演示了如何使用BEIR与Qdrant密集搜索。示例使用SciFact数据集和Sentence Transformers中的all-MiniLM-L6-v2模型生成密集嵌入。

from beir import util
from beir.datasets.data_loader import GenericDataLoader
from beir.retrieval.evaluation import EvaluateRetrieval
from qdrant_client import QdrantClient

from beir_qdrant.retrieval.models.fastembed import DenseFastEmbedModelAdapter
from beir_qdrant.retrieval.search.dense import DenseQdrantSearch

# Download and load the dataset
dataset = "scifact"
url = "https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/{}.zip".format(dataset)
data_path = util.download_and_unzip(url, "datasets")
corpus, queries, qrels = GenericDataLoader(data_folder=data_path).load(split="test")

# Connect to Qdrant running on localhost
qdrant_client = QdrantClient("https://:6333")

# Create the retriever and evaluate it on the test set using
# one of the sentence-transformers models available in FastEmbed
model = DenseQdrantSearch(
    qdrant_client,
    model=DenseFastEmbedModelAdapter(
        model_name="sentence-transformers/all-MiniLM-L6-v2"
    ),
    collection_name="scifact-all-MiniLM-L6-v2",
    initialize=True,
)
retriever = EvaluateRetrieval(model)
results = retriever.retrieve(corpus, queries)

ndcg, _map, recall, precision = retriever.evaluate(qrels, results, retriever.k_values)

上述示例演示了如何使用密集嵌入,但更改搜索模式与更改模型实现一样简单。

支持的模式

Qdrant支持不同的搜索模式,包括

  • 密集搜索:beir_qdrant.retrieval.search.dense.DenseQdrantSearch
  • 稀疏搜索:beir_qdrant.retrieval.search.sparse.SparseQdrantSearch
  • 多向量搜索:beir_qdrant.retrieval.search.multi_vector.MultiVectorQdrantSearch
  • 与RRF的混合搜索:beir_qdrant.retrieval.search.hybrid.RRFHybridQdrantSearch

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

beir_qdrant-0.5.2.tar.gz (11.3 kB 查看哈希值)

上传时间:

构建分布

beir_qdrant-0.5.2-py3-none-any.whl (18.4 kB 查看哈希值)

上传时间 Python 3

支持者