简而言之,对关键身分的赓续冲破在实践中异常重要,Faiss 确实袈溱工程细节方面下了很大年夜的工夫。
开端应用 Faiss
获取 Faiss:
https://github.com/facebookresearch/faiss
索引对象Faiss(包含 C++ 和 Python)供给了索引 Index 的实例。每个 Index 子类实现一个索引构造,以解释哪些向量可被参加和搜刮。比如,IndexFlatL2 是一个能应用 L2 距离搜刮的暴力索引。
类似性搜刮评估

如许会打印出索引向量的数量。增长到一个 IndexFlat 仅仅表示拷贝它们到索引的内部存储,因为后面没有其他操作会感化在该向量上。
履行一次搜刮:

I 是一个整型矩阵,输出后是如许的:
速度。找到与萌芽最类似的 10 个或更多个向量要耗时多久?期望比暴力算法耗时更少,不然索引的意义安在?

对于 xq 的第一个向量,xb 中最类似向量的索引是 0(大年夜 0 开端),第二类似的是 #393,第三是 #363。对于 xq 的第二个向量,类似向量列表是 #1, #555 等等。本例中,xq 的前三个向量看起来竽暌闺 xb 的前三个向量一样。
矩阵 D 是一个平方距离矩阵,与 I 的大年夜小一致,表示对于每个结不雅向量萌芽的平方欧氏距离。
Faiss 实现了十多个由其他索引组合的索引类型。可选的 GPU 版本有完全雷同的接口,并有通道在 CPU 和 CPU 索引之间互通。Python 接口重要由 C++ 生成以凸显 C++ 索引,所以可以很轻易地将 Python 验证代码转换为集成的 C++ 代码。
【编辑推荐】
- 机械进修算法实践-Platt SMO和遗传算法优化SVM
- 算法、数据、机械进修才能…… AI创业企业的护城河是什么?
- 大年夜概念到案例:初学者须知的十大年夜机械进修算法
- 大年夜算法实现到MiniFlow实现,打造机械进修的基本架构平台
- 快速控制机械进修,这3种算法你必须知道
推荐阅读
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 按照区块链监管的请求,国内>>>详细阅读
本文标题:Facebook开源相似性搜索类库Faiss,超越已知最快算法8.5倍
地址:http://www.17bianji.com/lsqh/38866.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示