Faiss: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
(Marked this version for translation)
No edit summary
Line 3: Line 3:


<!--T:1-->
<!--T:1-->
[https://github.com/facebookresearch/faiss/wiki 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 (versions 2 and 3). Some of the most useful algorithms are implemented on the GPU. It is developed primarily at [https://research.facebook.com/ Meta AI Research] with help from external contributors.
[https://github.com/facebookresearch/faiss/wiki 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 (versions 2 and 3). Some of the most useful algorithms are implemented on GPU. It is developed primarily at [https://research.facebook.com/ Meta AI Research] with help from external contributors.


<!--T:2-->
<!--T:2-->
Line 22: Line 22:


<!--T:5-->
<!--T:5-->
2. Import Faiss
2. Import Faiss.
{{Command|python -c "import faiss"}}
{{Command|python -c "import faiss"}}


Line 30: Line 30:
==== Available Python packages  ====  <!--T:7-->
==== Available Python packages  ====  <!--T:7-->
Other Python packages depend on <tt>faiss-cpu</tt> or <tt>faiss-gpu</tt> bindings in order to be installed.
Other Python packages depend on <tt>faiss-cpu</tt> or <tt>faiss-gpu</tt> bindings in order to be installed.
faiss module provides:
The <code>faiss</code> module provides:
* <code>faiss</code>
* <code>faiss</code>
* <code>faiss-gpu</code>
* <code>faiss-gpu</code>

Revision as of 22:53, 30 April 2024

Other languages:

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 (versions 2 and 3). Some of the most useful algorithms are implemented on GPU. It is developed primarily at Meta AI Research with help from external contributors.

Python bindings

The module contains bindings for multiple Python versions. To discover which are the compatible Python versions, run

Question.png
[name@server ~]$ module spider faiss/X.Y.Z

Or search directly faiss-cpu, by running

Question.png
[name@server ~]$ module spider faiss-cpu/X.Y.Z

where X.Y.Z represent the desired version.

Usage

1. Load the required modules.

Question.png
[name@server ~]$ module load StdEnv/2023 gcc cuda faiss/X.Y.Z python/3.11

where X.Y.Z represent the desired version.

2. Import Faiss.

Question.png
[name@server ~]$ python -c "import faiss"

If the command displays nothing, the import was successful.

Available Python packages

Other Python packages depend on faiss-cpu or faiss-gpu bindings in order to be installed. The faiss module provides:

  • faiss
  • faiss-gpu
  • faiss-cpu
Question.png
[name@server ~]$ pip list | fgrep faiss
faiss-gpu                          1.7.4
faiss-cpu                          1.7.4
faiss                              1.7.4

With the faiss module loaded, your package dependency for one of the Faiss named will be satisfied.