Hugging Face 提供了一个用于共享和使用 ML 模型及数据集的平台。Qdrant 也发布了包含 embedding 的数据集,您可以使用这些数据集来练习 Qdrant 并基于语义搜索构建您的应用程序。如果您想看到特定的数据集,请告知我们

arxiv-titles-instructorxl-embeddings

此数据集仅包含从论文标题生成的 embedding。每个向量都有一个 payload,其中包含用于创建该向量的标题以及 DOI(数字对象标识符)。

您可以在练习数据集部分找到关于此数据集的详细描述。如果您更喜欢从 Qdrant 快照加载数据集,那里也提供了链接。

{
    "title": "Nash Social Welfare for Indivisible Items under Separable, Piecewise-Linear Concave Utilities",
    "DOI": "1612.05191"
}

加载数据集就像使用 datasets 库中的 load_dataset 函数一样简单

该数据集超过 16 GB,因此下载可能需要一些时间。

from datasets import load_dataset

dataset = load_dataset("Qdrant/arxiv-titles-instructorxl-embeddings")

流式加载数据集

dataset.features

数据集流式加载允许您在不下载数据集的情况下使用它。当您遍历数据集时,数据会被流式传输。您可以在Hugging Face 文档中了解更多信息。

将数据集加载到 Qdrant 中

from datasets import load_dataset

dataset = load_dataset(
    "Qdrant/arxiv-titles-instructorxl-embeddings", split="train", streaming=True
)

您可以使用Python SDK将数据集加载到 Qdrant 中。Embedding 已经预计算好,所以您可以将它们存储在一个集合中,我们稍后会创建这个集合。

加载大型数据集时,批量处理通常是个好主意,所以我们来这样做。我们需要一个辅助函数来将数据集分割成批次

from qdrant_client import QdrantClient, models

client = QdrantClient("http://localhost:6333")

client.create_collection(
    collection_name="arxiv-titles-instructorxl-embeddings",
    vectors_config=models.VectorParams(
        size=768,
        distance=models.Distance.COSINE,
    ),
)

如果您是 Python 3.12+ 的用户,您可以使用 itertools 包中的 batched 函数来代替。

from itertools import islice

def batched(iterable, n):
    iterator = iter(iterable)
    while batch := list(islice(iterator, n)):
        yield batch

无论您使用哪个 Python 版本,您都可以使用 upsert 方法将数据集批量加载到 Qdrant 中

您的集合已准备好用于搜索!如果您希望在 Hugging Face Hub 上看到更多发布的数据集,请通过 Discord 告知我们

batch_size = 100

for batch in batched(dataset, batch_size):
    ids = [point.pop("id") for point in batch]
    vectors = [point.pop("vector") for point in batch]

    client.upsert(
        collection_name="arxiv-titles-instructorxl-embeddings",
        points=models.Batch(
            ids=ids,
            vectors=vectors,
            payloads=batch,
        ),
    )

本页有用吗?

竖起拇指的图标

听到您这么说我们很抱歉。😔 您可以在 GitHub 上编辑此页面,或创建一个 GitHub issue。

本页内容

在 Github 上编辑