한 줄 정의
FAISS는 dense vector의 유사도 검색과 클러스터링을 빠르게 처리하는 라이브러리야. 검색 앱에서 바로 쓰는 완성형 데이터베이스라기보다, 벡터 인덱스를 메모리 안에 만들고 근접 이웃 탐색을 효율적으로 수행하는 코어 엔진으로 이해하면 돼.
어떻게 작동하나
문서나 이미지 같은 데이터를 임베딩 벡터로 바꾼 뒤, FAISS 인덱스에 추가해 두면 질의 벡터와 가장 가까운 항목을 빠르게 찾아줘. 정확도, 메모리 사용량, 검색 속도 사이에서 여러 인덱스 구조를 고를 수 있고, CPU와 GPU 양쪽에서 큰 벡터 집합을 다루는 데 자주 쓰여.
왜 중요한가
RAG나 추천 시스템, 의미 검색에서 병목은 모델보다 검색 계층인 경우가 많아. FAISS를 알면 기사에서 이 이름이 나올 때 새 모델이 아니라, 벡터 검색 성능과 인프라 효율을 떠받치는 하부 라이브러리 얘기라는 걸 바로 읽을 수 있어.
주의해서 볼 점
FAISS는 강력하지만, 인증·멀티테넌시·영속 저장·메타데이터 필터 같은 데이터베이스 기능을 전부 알아서 주지는 않아. 그래서 실무에서는 보통 애플리케이션 코드나 더 높은 수준의 벡터 DB가 FAISS 위를 감싸고, 검색 정확도와 메모리 절약 사이의 타협도 직접 골라야 해.
관련 용어
- rag는 FAISS가 답변 생성 앞단에서 어떤 검색 역할을 맡는지 이해할 때 좋아. FAISS는 전체 RAG가 아니라 그 안의 검색 엔진 축에 가까워.
- llamaindex는 문서 연결과 검색 흐름을 더 높은 수준에서 다루는 프레임워크라서, 저수준 인덱스 엔진과 상위 오케스트레이션의 차이를 보여 줘.
- embedding은 FAISS가 직접 검색하는 대상이 벡터라는 점을 이해하게 해 줘. 임베딩 품질이 나쁘면 FAISS만 바꿔도 한계가 남아.
- vector-db는 영속 저장과 운영 기능까지 포함하는 더 넓은 층위라서, FAISS와 데이터베이스를 같은 말처럼 읽지 않게 도와줘.