Generated by GPT-5-mini| FAISS | |
|---|---|
| Name | FAISS |
| Developer | Facebook AI Research |
| Released | 2017 |
| Programming language | C++, Python (programming language) |
| Operating system | Linux, macOS, Windows |
| License | MIT License |
FAISS is an open-source library for efficient similarity search and clustering of dense vectors. Developed by Facebook AI Research, it provides implementations of high-dimensional nearest neighbor search and vector quantization tailored for large-scale retrieval problems. FAISS is widely used across industry and academia for tasks involving semantic search, recommendation, and representation learning.
FAISS addresses the computational challenges inherent in nearest neighbor search for datasets with millions or billions of vector embeddings produced by models from Google Research, OpenAI, and DeepMind. The library emphasizes scalability, offering CPU and GPU implementations that leverage hardware from NVIDIA, Intel, and AMD. FAISS integrates techniques from classical signal processing and modern machine learning research, drawing on methods associated with David Lowe, Geoffrey Hinton, and literature from NeurIPS, ICML, and ICLR.
FAISS's architecture separates core components into encoding, indexing, and search modules. Core encoder-like components include implementations of product quantization and residual quantization derived from research by Herbert F. Jensen and later work cited at SIGMOD and VLDB. Index types are organized as flat, inverted file, and hierarchical structures that mirror data structures used in projects at Stanford University, Massachusetts Institute of Technology, and University of California, Berkeley. The GPU backend relies on CUDA primitives associated with NVIDIA CUDA and cuBLAS libraries that are commonly used in conjunction with frameworks from TensorFlow, PyTorch, and JAX.
FAISS implements a range of indexing and search algorithms: exact brute-force search using optimized linear algebra kernels; approximate search via inverted file (IVF) lists paired with product quantization (PQ); and hierarchical navigable small world graphs inspired by work from Yury Malkov and Dmitry Yashunin. It supports multi-stage pipelines combining coarse quantizers and finer product quantizers similar to approaches discussed at KDD and SIGIR. Search strategies include k-nearest neighbors and radius search, leveraging distance metrics such as Euclidean and inner product as used in systems developed at Microsoft Research and IBM Research.
FAISS is engineered for throughput and low-latency retrieval. Benchmarks conducted in papers and engineering reports compare FAISS against alternatives like implementations at Annoy (software) and algorithms described by researchers at Google Research and Amazon Web Services. GPU-accelerated indexes show orders-of-magnitude speedups on hardware such as NVIDIA Tesla V100 and NVIDIA A100 compared to multi-threaded CPU runs on Intel Xeon processors. Memory-efficient quantizers enable storage reductions inspired by work from Andrey Gershman and evaluations presented at WSDM and EMNLP.
FAISS is applied in production systems for semantic search in products by Meta Platforms, Inc., recommendation engines at Spotify, and image retrieval services similar to those at Pinterest and Getty Images. Academia uses FAISS for nearest neighbor components in research from Carnegie Mellon University, University of Oxford, and ETH Zurich. Specific applications include similarity joins in databases developed at Google BigQuery-like systems, approximate nearest neighbor retrieval for embeddings from BERT (language model), and large-scale clustering for datasets used in projects at CERN and NASA.
FAISS provides a native C++ API and a widely-used Python (programming language) wrapper that integrates with data pipelines from Apache Spark, Dask, and Ray (distributed execution) when building distributed search systems. Interoperability with deep learning frameworks facilitates embedding storage for models trained using PyTorch, TensorFlow, or tooling from Hugging Face. The project also supports serialization formats compatible with serialization systems used by Apache Arrow and deployment platforms such as Kubernetes and Docker.
Maintained by contributors at Facebook AI Research and a broad open-source community, FAISS's development follows collaboration practices seen in other projects at GitHub and GitLab. The repository attracts contributions from engineers associated with companies like Intel and NVIDIA as well as researchers from institutions including University of Toronto and Princeton University. Community activity includes issues, pull requests, and discussions that reference benchmarks and papers presented at venues such as NeurIPS, ICML, and SIGMOD. Educational resources and workshops using FAISS are hosted at conferences organized by ACM and IEEE.
Category:Computer vision Category:Machine learning software