faiss server
This commit is contained in:
61
faiss/README.md
Normal file
61
faiss/README.md
Normal file
@@ -0,0 +1,61 @@
|
||||
```shell
|
||||
conda create -n faiss python=3.10 -y
|
||||
conda activate faiss
|
||||
conda install -c pytorch faiss-cpu
|
||||
```
|
||||
|
||||
|
||||
API 解释
|
||||
```py
|
||||
import numpy as np
|
||||
import faiss
|
||||
|
||||
# FLATL2
|
||||
index = faiss.IndexFlatL2(d)
|
||||
index.add(xb)
|
||||
D, I = index.search(xq, k)
|
||||
|
||||
# FlatIP
|
||||
index = faiss.IndexFlatIP(d)
|
||||
index.add(xb2)
|
||||
D, I = index.search(xq2, k)
|
||||
|
||||
# IDMap
|
||||
base = faiss.IndexFlatL2(d)
|
||||
index = faiss.IndexIDMap(base)
|
||||
index.add_with_ids(xb, ids)
|
||||
D, I = index.search(xq, k)
|
||||
|
||||
# HNSWFlat
|
||||
index = faiss.IndexHNSWFlat(d, M)
|
||||
index.hnsw.efSearch = ef_search
|
||||
index.add(xb)
|
||||
D, I = index.search(xq, k)
|
||||
|
||||
# IVFFlat
|
||||
quantizer = faiss.IndexFlatL2(d)
|
||||
index = faiss.IndexIVFFlat(quantizer, d, nlist, faiss.METRIC_L2)
|
||||
safe_train(index, xb, "IndexIVFFlat")
|
||||
index.add(xb)
|
||||
index.nprobe = nprobe
|
||||
D, I = index.search(xq, k)
|
||||
|
||||
# PQ
|
||||
index = faiss.IndexPQ(d, M, nbits)
|
||||
safe_train(index, xb, f"IndexPQ(M={M}, nbits={nbits})")
|
||||
index.add(xb)
|
||||
D, I = index.search(xq, k)
|
||||
|
||||
# IVFPQ
|
||||
quantizer = faiss.IndexFlatL2(d)
|
||||
index = faiss.IndexIVFPQ(quantizer, d, nlist, M, nbits)
|
||||
safe_train(index, xb, f"IndexIVFPQ(nlist={nlist}, M={M}, nbits={nbits})")
|
||||
index.add(xb)
|
||||
index.nprobe = nprobe
|
||||
D, I = index.search(xq, k)
|
||||
|
||||
# LSH
|
||||
index = faiss.IndexLSH(d, nbits)
|
||||
index.add(xb)
|
||||
D, I = index.search(xq, k)
|
||||
```
|
||||
Reference in New Issue
Block a user