From ff042486518a9e8df13a235683646981c3ba6921 Mon Sep 17 00:00:00 2001 From: shiyu22 Date: Fri, 22 Jul 2022 17:07:12 +0800 Subject: [PATCH] Add ann_search.faiss Signed-off-by: shiyu22 --- README.md | 91 ++++++++++++++++++++++++++++++++++++++++++++++- __init__.py | 4 +++ faiss.py | 60 +++++++++++++++++++++++++++++++ requirements.txt | 3 ++ result.png | Bin 0 -> 57405 bytes 5 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 __init__.py create mode 100644 faiss.py create mode 100644 requirements.txt create mode 100644 result.png diff --git a/README.md b/README.md index 9b599c5..c0b2129 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,91 @@ -# faiss +# Operator: ANN Search: Faiss +*author: shiyu* + +
+ + + +## Desription + +Search embedding in [Faiss](https://github.com/facebookresearch/faiss), **please make sure you have inserted data to Faiss before search**. + +
+ + + +## Code Example + +- Insert data into Faiss first + +```python +import numpy as np +import towhee + +vec = np.random.random((10, 100)).astype('float32') +ids = list(i for i in range(10)) + +x = towhee.dc['id'](ids) \ + .runas_op['id', 'vec'](func=lambda x: vec[x]) \ + .to_faiss['id', 'vec'](findex='index.bin') +``` + +- Example + +*Write the pipeline in simplified style:* + +```python +query = vec[0:2] +towhee.dc(query) \ + .ann_search.faiss(findex='index.bin') +``` + +*Write a same pipeline with explicit inputs/outputs name specifications:* + +```python +query = vec[0:2] +towhee.dc['vec'](query) \ + .ann_search.faiss['vec', 'results'](findex='index.bin') \ + .show() +``` + + + +
+ + + +## Factory Constructor + +Create the operator via the following factory method: + +***ann-search.faiss(findex)*** + + + +**Parameters:** + + + +***findex:*** *str* or *faiss.INDEX* + +The path to faiss index file or faiss index. + + +
+ + + +## Interface + +**Parameters:** + +***query:*** *list* + +Query embeddings in Faiss + + + +**Returns:** *Entity* + +Return the results in Faiss with `key` and `score`. diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..684db96 --- /dev/null +++ b/__init__.py @@ -0,0 +1,4 @@ +from .faiss import Faiss + +def faiss(*args, **kwargs): + return Faiss(*args, **kwargs) \ No newline at end of file diff --git a/faiss.py b/faiss.py new file mode 100644 index 0000000..fc9569c --- /dev/null +++ b/faiss.py @@ -0,0 +1,60 @@ +import numpy as np +from pathlib import Path +import faiss +from towhee import register +from towhee.utils.faiss_utils import KVStorage +from towhee.functional.entity import Entity + + +@register(output_schema=['result']) +class Faiss: + """ + Search for embedding vectors in Faiss. Note that the index has data before searching, + refer to DataCollection Mixin `to_faiss`. + + Args: + findex (`str` or `faiss.INDEX`): + The path to faiss index file(defaults to './index.bin') or faiss index. + kwargs + The kwargs with index.search, refer to https://github.com/facebookresearch/faiss/wiki. And the parameter `k` defaults to 10. + + Examples: + + >>> import towhee + >>> res = ( + ... towhee.glob['path']('./*.jpg') + ... .image_decode['path', 'img']() + ... .image_embedding.timm['img', 'vec'](model_name='resnet50') + ... .faiss_search['vec', 'results'](findex='./faiss/faiss.index') + ... .to_list() + ... ) + [, + ] + """ + def __init__(self, findex, **kwargs): + self.faiss_index = findex + self.kwargs = kwargs + self.kv_storage = None + if isinstance(findex, str): + kv_file = findex.strip('./').replace('.', '_kv.') + index_file = Path(findex) + self.faiss_index = faiss.read_index(str(index_file)) + if Path(kv_file).exists(): + self.kv_storage = KVStorage(kv_file) + + def __call__(self, query: list): + if 'k' not in self.kwargs: + self.kwargs['k'] = 10 + + query = np.array([query]) + scores, ids = self.faiss_index.search(query, **self.kwargs) + + ids = ids[0].tolist() + result = [] + for i in range(len(ids)): + if self.kv_storage is not None: + k = self.kv_storage.get(ids[i]) + else: + k = ids[i] + result.append(Entity(**{'key': k, 'score': scores[0][i]})) + return result diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2b48261 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +faiss-cpu +numpy +towhee \ No newline at end of file diff --git a/result.png b/result.png new file mode 100644 index 0000000000000000000000000000000000000000..22ee3b1f20e499f636ea884286abafff9abe10cc GIT binary patch literal 57405 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 literal 0 HcmV?d00001