본문 바로가기

faiss4

[Faiss][Error] ERROR:in method 'IndexFlatCodes_add', argument 3 of type 'float const *' faiss index에 document embedding을 add를 하는 과정에서 아래와 같은 에러 발생 ERROR:in method 'IndexFlatCodes\_add', argument 3 of type 'float const \*' 구글링을 하니, faiss index 에 add 하는 embedding값은 float 64가 아니라 float32여야한다고 한다. 아래와 같이 변경하여 에러 해결 확인 embeddings = embeddings.astype(np.float32) 2023. 1. 11.
[Faiss][Erorr] name 'GpuResourcesVector' is not defined name 'GpuResourcesVector' is not defined 특정 서버에서 이전에는 발생하지 않던 에러가 갑자리 발생 사용하는 2개의 가상환경 모두 동시에 발생 에러 로그가 찍힌 시점은, 위와 같이 faiss index를 gpu로 올릴 때 faiss_index = faiss.index_cpu_to_all_gpus(faiss_index) 그리고 faiss.get_num_gpus() 를 찍어보면 0이 나온다. 서버의 GPU의 문제일것이라 생각하여 상태를 체크했지만, 아무 문제 없음 - cuda.is\_available() : True - self.device : cuda:0 이것저것 시도해도 안되서 faiss 라이브러리를 재설치하는데 conda faiss 라이브러리 관련 경로가 오염되었다는 경고.. 2022. 12. 12.
[Faiss] index.search() return negative value, KeyError: -1 faiss 라이브러리를 정상적으로 사용하는데, cpu_index.search(embedding, k) 결과 index값에 음수가 발생했다. 이후에 해당 document를 불러오는 과정에서 KeyErorr :-1 index값으로 음수를 반환하는 이유를 찾다가 embedding 값이 k보다 작음을 확인하였다. 즉 검색 가능한 문서는 k 건인데, 원하는 검색건수가 >k여서 일단 index를 -1로 반환한것 POC mode로 작게만들어서 test 하던 embedding을 원래 embedding으로 바꾼 뒤 정상적으로 작동함 확인하였다. 2022. 9. 2.
[Faiss] cpu_index.add() ValueError: too many values to unpack [Error] Traceback (most recent call last): File "Handler.py", line 39, in _service.indexing(model_path) File "Handler.py", line 22, in indexing self.cpu_index.add(emb) File "/home/lib/python3.6/site-packages/faiss/__init__.py", line 103, in replacement_add n, d = x.shape ValueError: too many values to unpack (expected 2) 이 Error log는 index.add의 input의 shape이 2차원이어야 하는데 3차원 이상이어서 발생한다! 실제로 찍어보니 -.. 2022. 8. 19.