unum-cloud/USearch

Fast Open-Source Search & Clustering engine × for Vectors & Arbitrary Objects × in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram 🔍

해결하는 문제

USearch는 FAISS와 같은 산업 표준보다 작고, 빠르며, 더 포터블한 고성능 유사성 검색 및 클러스터링 엔진입니다. 무거운 종속성 없이 다양한 플랫폼과 프로그래밍 언어에서 벡터(향후 텍스트)의 가장 가까운 이웃을 효율적으로 찾는 필요성을 충족합니다.

작동 방식

USearch는 근사 최근접 이웃 검색을 위해 HNSW(Hierarchical Navigable Small World) 알고리즘을 구현합니다. SIMD(Single Instruction, Multiple Data)와 사용자 정의 메트릭을 위한 JIT 컴파일을 사용하여 성능을 최적화합니다. 작은 크기 유지의 위해 단일 C++11 헤더 라이브러리를 사용하며, 10개 이상의 언어에 대한 네이티브 바인딩을 제공합니다. 또한 메모리 매핑을 지원하여 대규모 인덱스를 RAM에 전체 로드하지 않고 디스크에서 제공할 수 있습니다.

대상 사용자

AI, 유전체학, 화학, 지리공간 인덱싱 분야에서 빠른 벡터 검색 기능이 필요한 개발자, 기존 데이터베이스에 유사성 검색을 통합하고 싶은 개발자, 또는 리소스 제약 환경(예: iOS, Android, WebAssembly)에 배포하고 싶은 개발자에게 적합합니다.

주요 특징

  • 극도의 성능: FAISS보다 최대 10배 빠른 인덱싱과 훨씬 빠른 브루트포스 검색을 주장합니다.
  • 광범위한 호환성: Python, Rust, Go, Java, C#, JavaScript, C++ 등 다양한 언어에 대한 네이티브 바인딩을 제공합니다.
  • 메모리 효율성: 반정밀도(bf16, f16) 및 4분의 1 정밀도(e5m2, e4m3) 형식을 지원하여 RAM 사용량을 줄입니다.
  • 사용자 정의 가능: Numba, Cppyy, PeachPy를 통해 사용자 정의 유사도 메트릭을 정의할 수 있습니다.
  • 디스크 기반 제공: 메모리 매핑을 통해 대규모 인덱스를 디스크에서 직접 참조할 수 있어 클라우드 인프라 비용을 절감할 수 있습니다.
  • 통합 클러스터링: 내장된 K-Nearest Neighbors 클러스터링 및 하위 클러스터링 기능을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch