FAISS
一、项目简介
FAISS 是 Meta 开源的高效向量检索库,专注于海量向量的相似度搜索与聚类。它提供 Flat、IVF、HNSW、PQ 等多种索引,支持 GPU 加速,是向量检索领域的「基础设施」,被大量上层系统(含很多向量数据库与 RAG 框架)作为底层内核使用。
二、核心特性
- 索引丰富:Flat(精确)、IVF、HNSW、PQ 等按场景选择;
- GPU 加速:支持单卡/多卡,检索极快;
- 亿级规模:可处理超大规模向量集合;
- 量化压缩:乘积量化大幅降低内存;
- C++ / Python 双接口;
- 高性能:底层高度优化,支持批量检索。
三、适用场景
- 超大规模相似度检索与特征匹配;
- 作为自研检索系统的内核;
- 离线批量向量检索任务。
四、快速上手
pip install faiss-cpu # 或 faiss-gpu
import faiss, numpy as np
index = faiss.IndexFlatL2(128)
index.add(np.random.random((1000, 128)).astype("float32"))
print(index.search(np.random.random((1,128)).astype("float32"), 3))
五、注意事项
- 它是「库」不是「服务」,持久化、分布式、并发需自己实现;
- 向量需自行归一化(L2/内积)以保证距离语义一致;
- 生产环境建议封装为服务或改用向量数据库。