Vicinity:轻量级最近邻搜索工具

Vicinity:轻量级最近邻搜索工具

vicinity Lightweight Nearest Neighbors with Flexible Backends vicinity 项目地址: https://gitcode.com/gh_mirrors/vicin/vicinity

1. 项目介绍

Vicinity 是一个轻量级、低依赖的向量存储库。它提供了一个简单直观的接口用于最近邻搜索,并支持多种后端和评估方法。在众多最近邻搜索包和方法中,Vicinity 旨在通过提供统一的后端接口,帮助用户轻松尝试不同的索引方法和距离度量,从而选择最适合自己用例的方案。此外,Vicinity 还提供了一种简单的评估方式,以便测量不同后端的查询每秒(QPS)和召回率。

2. 项目快速启动

首先,您需要安装 Vicinity 包。使用以下命令进行安装:

pip install vicinity

如果要安装所有可选的后端和集成,可以使用以下命令:

pip install vicinity[all]

接下来,以下是一个使用 Vicinity 进行最近邻搜索的代码示例:

import numpy as np
from vicinity import Vicinity, Backend, Metric

# 创建一些示例数据
items = ["triforce", "master sword", "hylian shield", "boomerang", "hookshot"]
vectors = np.random.rand(len(items), 128)

# 初始化 Vicinity 实例(使用基本后端和余弦度量)
vicinity = Vicinity.from_vectors_and_items(
    vectors=vectors,
    items=items,
    backend_type=Backend.BASIC,
    metric= Metric.COSINE
)

# 创建一个查询向量
query_vector = np.random.rand(128)

# 进行最近邻搜索
results = vicinity.query(query_vector, k=3)

保存和加载向量存储:

# 保存向量存储
vicinity.save('my_vector_store')

# 加载向量存储
vicinity = Vicinity.load('my_vector_store')

3. 应用案例和最佳实践

3.1 使用不同后端

Vicinity 支持多种后端,如 HNSW、ANNOY、FAISS 等。以下是使用不同后端的示例:

# 使用 HNSW 后端
vicinity_hnsw = Vicinity.from_vectors_and_items(
    vectors=vectors,
    items=items,
    backend_type=Backend.HNSW,
    metric= Metric.COSINE
)

# 使用 FAISS 的 IVF 后端
vicinity_faiss_ivf = Vicinity.from_vectors_and_items(
    vectors=vectors,
    items=items,
    backend_type=Backend.FAISS,
    metric= Metric.COSINE,
    index_type='ivf'
)

3.2 性能评估

使用 Vicinity 的 evaluate 方法可以轻松评估不同后端的性能:

query_vectors = vectors[:1000]
qps, recall = vicinity.evaluate(
    full_vectors=vectors,
    query_vectors=query_vectors
)

4. 典型生态项目

Vicinity 可以与多种开源项目集成,例如:

  • PyTorch: 用于深度学习模型训练。
  • Scikit-learn: 提供简单的机器学习算法。
  • Dask: 用于并行计算。

这些集成可以帮助用户在 Vicinity 的基础上构建更复杂的数据处理和机器学习工作流。

vicinity Lightweight Nearest Neighbors with Flexible Backends vicinity 项目地址: https://gitcode.com/gh_mirrors/vicin/vicinity

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩宾信Oliver

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值