文章目录
- 简介
- 下载源码
- 安装环境
- 编译
简介
Faiss(Facebook AI Similarity Search)是一个由Facebook AI研发并开源的,用于大规模向量检索的库。其核心算法采用了聚类、压缩和量化等技术,以优化最近邻搜索的效率和准确性。Faiss提供了高效的索引构建和最近邻搜索功能,特别适用于搜索大规模数据集。
Faiss支持多种数据类型,包括图像、文本和嵌入向量等,具有出色的性能和准确性。它的特点包括速度快、可扩展性强,能够在短时间内处理大量数据,提高检索效率。Faiss检索算法具有快速查找最相似向量的能力,可以准确快速地定位目标信息。
在应用方面,Faiss在信息检索、推荐系统和图像识别等领域都有广泛的应用。例如,它可以用于构建文档或图像的相似性搜索引擎,快速找到与查询向量最相似的文档或图像;在推荐系统中,Faiss可以快速查找用户喜欢的物品或者寻找相似的用户,为用户提供更加个性化和准确的推荐结果;在图像识别领域,Faiss可以用于构建图像特征的索引,实现快速的相似图像搜索和图像聚类。
此外,Faiss提供了多种索引算法,如FAISS索引、PTB索引和SVN索引等,以满足不同规模数据集的需求。其中,FAISS索引采用树形结构对向量进行划分,并在每个子节点上计算向量的局部亲密度,具有较高的检索效率;PTB索引则通过产品量化对向量进行编码,具有较小的内存占用和较快的索引构建速度;SVN索引则通过特征向量归一化,使得相似度计算更加鲁棒。
总的来说,Faiss作为一种高效的多模态向量检索引擎,为大规模数据集的向量检索提供了强大的支持,是信息检索、推荐系统和图像识别等领域的重要工具。
下载源码
源码位置
安装环境
sudo apt install libblas-dev
sudo apt-get install liblapack-dev
sudo apt-get install swig
编译
-
常规选项:
-DFAISS_ENABLE_GPU=OFF 禁用构建 GPU 索引
-DFAISS_ENABLE_PYTHON=OFF 禁用构建 Python 绑定
-DFAISS_ENABLE_RAFT=ON 构建 RAFT 实现 IVF-Flat 和 IVF-PQ GPU 加速指数
-DBUILD_TESTING=OFF 禁用构建 C++ 测试,
-DBUILD_SHARED_LIBS=ON 构建共享库
-DFAISS_ENABLE_C_API=ON 启用构建 C API -
与优化相关的选项:
-DCMAKE_BUILD_TYPE=Release 启用泛型编译器 优化选项(例如在 GCC 上启用-O3)
-DFAISS_OPT_LEVEL=avx2 启用所需的编译器标志 使用优化的 SIMD 指令生成代码avx2/avx512 -
BLAS 相关选项:
-DBLA_VENDOR=Intel10_64_dyn -DMKL_LIBRARIES=/path/to/mkl/libs要使用 英特尔 MKL BLAS 实施,明显快于 OpenBLAS (有关该选项值的更多信息,请参见 CMake 文档),BLA_VENDOR
-
GPU 相关选项:
-DCUDAToolkit_ROOT=/path/to/cuda-10.1为了暗示 CUDA 工具包(有关更多信息,请参阅 CMake 文档),
-DCMAKE_CUDA_ARCHITECTURES="75;72"用于指定哪些 GPU 架构 针对 (请参阅 CUDA 文档 确定应选择的架构), -
与 Python 相关的选项:
-DPython_EXECUTABLE=/path/to/python3.7为了构建 Python 接口与默认 python 不同的 python(请参阅 CMake 文档)
cmake -B build -DFAISS_ENABLE_PYTHON=OFF -DFAISS_ENABLE_GPU=ON -DBUILD_SHARED_LIBS=ON -DFAISS_ENABLE_C_API=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/disk/liangbaikai/faiss/faiss_install .cd build
make
make install