(学校课程项目进度笔记)
因为要对数百万条向量处理,而且向量维度是200维的,用的又只是笔记本,性能不算好。怕是最后近义词匹配的时候,一个词要搜索好久。虽然小组成员直接提出了用聚类先预处理,但是我仍对自己电脑的性能不抱信心。于是想看看有没有什么专门用于这方面的方法。
搜索了一下发现了faiss。
github上是这样介绍的:
Faiss is a library for efficient similarity search and clustering of
dense vectors. It contains algorithms that search in sets of vectors
of any size, up to ones that possibly do not fit in RAM. It also
contains supporting code for evaluation and parameter tuning. Faiss is
written in C++ with complete wrappers for Python/numpy. Some of the
most useful algorithms are implemented on the GPU. It is developed by
Facebook AI Research.
既然是库,那么先试试直接在python里安装
pip install faiss
然后经过无数报错,无数次改错仍无数次失败后。
我再去搜索原因,却发现一致说的是faiss根本不支持windows,只支持macos和linux。不过看有人说需要用conda来安装,都已经花了时间了,就试一试吧。安装的是miniconda,安装过程就不赘述了。
使用conda来安装faiss
conda install faiss
倒是装下来了,但是不知道怎么用。。。而且有好几个版本的faiss,其他的都不行,只有这个可以安装下来。
例如这个就不行
似乎是需要python3.6。
在pycharm里创建conda环境的项目,但是没有在库里找不到下载的faiss库,也没办法用pycharm下载,会报错。总之就是折腾来折腾去没找到到底怎么用。
pycharm的package界面
可能确实windows不好弄吧。先告一段落,准备先试试聚类的算法,看看速度,之后再考虑有没有很大的必要用这些了。
在安装探索过程中,还找到了milvus这个库,和faiss应该是差不多的,但是一样,也没成功用上,不多记录了。