Faiss home

 

Faiss是一个用于稠密向量相似度检索与聚类的库。它包含了可以在任意大小(大到可能在RAM中都放不下)特征向量集合中进行检索的算法。它还包含了性能评估与调参的辅助代码。Faiss是用C++编写,并有完成的python接口支持(py2,与py3)。有些有用的算法是在GPU上实现。这个项目是由Facebook AI Research开发的。

What is similarty search?

有一系列长度为d的向量x_i,Faiss利用这些数据从RAM中构建一个数据结构。在这个结构构建以后,当给定一个新的维度为d的向量x,它可以高效的进行如下操作:

I = argmin_i||x-x_i||

这里||.||是指欧式距离(L2)。

按照Faiss的叫法,这种数据结构被称为index(索引),每个实例有一个add功能来增加x_i向量。注意这里的x_i是假设固定的。

在index上计算argmin的过程称为search操作。

这就是Faiss主要的用途。它还可以:

  1. 返回不仅仅最近邻的结果,还可以返回2nd,3rd,k-th的近邻结果。
  2. 同时搜索多个向量而不是一个(batch操作)。对于许多index类型,这种方法比一个个向量的检索要快得多。
  3. 速度与进度的权衡。如果结果错误率为10%,搜索时间可能10倍快或者利用的内存少十倍。
  4. 进行最大内积argmax_i<x,x_i>而不是最小欧式距离搜索。也支持有限的其他距离(L1,inf等)。
  5. 给出一定查询点范围的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值