Search

FAISS 2024.09

대분류
기타
소분류
논문 리뷰
최종 편집 일시
2024/11/09 10:53
생성 일시
2024/11/09 10:07
16 more properties

사전 지식

FAISS란?

Facebook에서 만든 벡터 클러스터링 및 similarity search 라이브러리

Similarity search

어떤 쿼리 벡터가 들어왔을 때 기존에 가지고 있는 벡터 셋과 거리를 계산해 유사한 벡터들을 검색하는 것
→ 두 벡터가 유사하다는 것은 두 벡터간 거리가 가깝다는 의미

임베딩(Embedding)

입력된 미디어 항목을 벡터 공간에 매핑하여 해당 항목의 의미적 유사성을 근거리로 표현하는 방식
벡터 표현(Vector Representations)

초록(Abstract)

벡터 데이터베이스에 집중
현대 기술에서 임베딩의 효율적인 저장 및 인덱싱에 대한 요구가 증가하고 있다.
그래서 Faiss는 빠르게 확장되고 있는 다양한 AI 애플리케이션에 중요한 대규모 임베딩 벡터 컬렉션을 관리하도록 특별히 설계된 라이브러리이다.
핵심 기능
FAISS는 벡터 데이터베이스의 기본 작업인 벡터 유사성 검색에 전념하고 있다.
이 기능을 통해 사용자는 유사한 벡터를 효율적으로 찾을 수 있으며, 이는 추천 시스템, 이미지 검색 및 자연어 처리와 같은 작업에 필수적입니다.
인덱싱 메서드를 위한 툴킷
FAISS는 다양한 인덱싱 방법과 관련 원시 처리 단위(Primitives)를 포함하는 툴킷 역할
→ 검색뿐만 아니라 벡터의 클러스터링, 압축 및 변환에도 사용
이런 다양성 덕분에 Faiss는 다양한 시나리오에 적용할 수 있다.
Trade-off Space
속도, 정확도, 리소스 사용과 같은 다양한 성능 지표 간의 균형을 의미하는 벡터 검색과 관련된 장단점 공간에 대해 설명
설계 원칙
구조, 최적화 접근 방식 및 다른 도구와의 인터페이스 방식에 초점을 맞춰 FAISS의 설계 원칙에 대해 자세히 설명한다.
→ 해당 백서는 라이브러리의 기본 아키텍처와 운영 전략에 대한 통찰력을 제공하는 것을 목표로 한다
벤치마킹 및 응용 프로그램
FAISS의 주요 기능을 벤치마킹하고 선택된 응용 프로그램에 대해 논의하면서 다양한 분야에 걸쳐 광범위하게 적용할 수 있음을 보여준다.딥러닝의 발전

개요

딥러닝의 발전

딥러닝의 발전으로 인해 복잡한 데이터를 저장하고 검색하는 방식에 큰 변화를 가져왔다.
특히 임베딩(embeddings)의 발전을 통해 데이터의 벡터 표현을 이용한 유사도 검색이 가능해졌다.

임베딩 사용 항목 간 유사도 직접 비교

임베딩 추출기 : 임베딩 간의 거리로 유사성을 반영하도록 설계되어 있으며, 이를 기반으로 벡터 공간 내에서의 이웃 검색이 미디어 항목 간 유사도 검색을 구현하는 것
유사도 검색은 특히 학습이 비용효율적이지 않은 작업에서 인기를 끌며, 이를 위해 벡터 저장 및 검색 기능을 제공하는 산업용 데이터베이스 관리 시스템(DBMS)의 사용이 증가하고 있다.
최근까지 ANNS(근사 최근접 이웃 검색) 알고리즘은 특정 연구와 응용에 국한되어 있었으나, 점차 널리 활용되고 있다.

임베딩 추출과 벡터 검색 알고리즘을 분리하여 관리하는 것이 유리

임베딩 추출기는 주로 신경망을 통해 작업에 맞춘 임베딩 간 거리를 생성하고, 벡터 인덱스는 주어진 거리 메트릭을 바탕으로 정확하게 이웃 검색을 수행
FAISS는 단순한 스크립트와 DBMS 구성 요소로 활용되며, 다양한 인덱싱 방식(전처리, 압축, 비철저 검색 등)을 제공하는 툴박스이다.

FAISS의 특징 및 기본 구조

FAISS는 특징을 추출하지 않으며, 서비스 또는 데이터베이스가 아니며, 동시 쓰기 접근, 부하 분산, 샤딩, 트랜잭션 관리 또는 쿼리 최적화와 같은 기능을 제공하지 않는다.
FAISS의 기본 구조는 인덱스로, 여러 구현을 포함할 수 있으며, 검색 시 쿼리 벡터와 가장 가까운 데이터베이스 벡터를 반환하는 방식이다.