Facebook 開源的一個(gè)高性能的高維向量相似度檢索和聚類庫。
開源協(xié)議之前采用 BSD + Patents。最新版 v1.5.2 采用 MIT,可以在商業(yè)軟件中使用。
github 上有 6000 多 Stars。
Faiss 主要特性:
- 支持相似度檢索和聚類;
- 支持多種索引方式;
- 支持CPU和GPU計(jì)算;
- 支持Python和C++調(diào)用;
Faiss 索引類型:
Exact Search for L2
#基于L2距離的確定搜索匹配Exact Search for Inner Product
#基于內(nèi)積的確定搜索匹配Hierarchical Navigable Small World graph exploration
#分層索引Inverted file with exact post-verification
#倒排索引Locality-Sensitive Hashing (binary flat index)
#本地敏感hashScalar quantizer (SQ) in flat mode
#標(biāo)量量化索引Product quantizer (PQ) in flat mode
#笛卡爾乘積索引IVF and scalar quantizer
#倒排+標(biāo)量量化索引IVFADC (coarse quantizer+PQ on residuals)
#倒排+笛卡爾乘積索引IVFADC+R (same as IVFADC with re-ranking based on codes)
#倒排+笛卡爾乘積索引 + 基于編碼器重排
第1個(gè)和第2個(gè)索引方式是屬于精確匹配,其他索引方式都是通過數(shù)據(jù)壓縮的非精確匹配。
雖然壓縮索引方式損失少量檢索精度,但大大減少內(nèi)存占用,從而支持超大規(guī)模數(shù)據(jù)集檢索,比如在單機(jī)上支持10億規(guī)模的高維向量相似度檢索。
Faiss 使用場(chǎng)景:
最常見的人臉比對(duì),指紋比對(duì),基因比對(duì)等。
Faiss 開發(fā)資料:
github: https://github.com/facebookresearch/faiss
tutorial: https://github.com/facebookresearch/faiss/wiki/Getting-started