Vectorlite 소개
Vectorlite(벡터라이트)는 SQLite에 빠른 벡터 검색 기능을 추가하는 확장 기능입니다. Vectorlite는 근사 K-NN 알고리즘(ANN, Approximate Nearest Neighbor) 중 하나인 HNSW(Hierarchical Navigable Small World)의 C++ 구현체인 hnswlib를 기반으로 하고 있으며, SQLite에서 실행 시간 중에 불러올 수 있는(Runtime-loadable) 확장(extension)입니다.
Vectorlite는 또한, Windows, MacOS, Linux에서 모두 사용할 수 있습니다. SQLite는 경량 데이터베이스로 널리 사용되지만, 대규모 벡터 데이터를 다루는 데는 한계가 있었습니다. 벡터라이트는 이러한 한계를 극복하기 위해 설계되었으며, SIMD(Single Instruction Multiple Data) 가속을 통한 빠른 벡터 거리 계산을 제공합니다.
Vectorlite는 hnswlib의 고성능에 기반하여 유사한 기능을 제공하는 다른 도구들과 비교했을 때 검색 속도와 삽입 속도에서 월등한 성능을 보여줍니다. 예를 들어, SQLite-vss와 비교하면 벡터라이트는 삽입 속도에서 10배, 검색 속도에서 2배에서 40배까지 빠른 성능을 제공합니다.
주요 특징
-
빠른 ANN 검색: hnswlib를 사용하여 고속 벡터 검색을 지원합니다.
-
다양한 플랫폼 지원: Windows, Linux, MacOS에서 사용 가능.
-
SIMD 가속: x86 플랫폼에서 SIMD 가속을 통한 빠른 벡터 거리 계산.
-
다양한 거리 측정 지원: l2, cosine, ip 거리 측정 지원.
-
HNSW 매개변수 제어: 성능 튜닝을 위한 HNSW 매개변수 완전 제어.
-
메타데이터 필터: SQLite 버전 3.38 이상에서 메타데이터 필터링 지원.
-
인덱스 저장 및 로드: 벡터 인덱스를 파일로 저장하고 로드 가능.
-
JSON 직렬화/역직렬화 지원:
vector_from_json()
,vector_to_json()
함수 지원.
라이선스
Vectorlite 프로젝트는 Apache 2.0 License로 공개 및 배포되고 있습니다.
Vectorlite GitHub 저장소
HSNW의 C++ 구현체 hnswlib 저장소
SQLite의 Runtime Loadable Extension 문서
https://www.sqlite.org/loadext.html
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~