설명
ITZMA는 객체 저장소에서 직접 효율적인 벡터 검색을 위해 설계된 Rust 기반 벡터 데이터베이스 라이브러리입니다. 중간 데이터베이스 서버의 오버헤드 없이 데이터에 쉽게 접근할 수 있는 확장 가능하고 내구성이 뛰어난 클라우드 네이티브 솔루션을 제공합니다. ITZMA를 애플리케이션 프로세스에 내장함으로써 S3, GCS, Azure, 로컬 디스크 또는 심지어 인메모리 저장소와 같은 객체 저장소와 직접 상호작용할 수 있으며, 이를 벡터 데이터의 내구성 있는 진실의 원천으로 취급할 수 있습니다.
더 읽기
ITZMA의 핵심 아키텍처는 클라우드 환경을 위해 설계되어 여러 프로세스가 조정자, 잠금 또는 리더 없이 동일한 객체 저장소 버킷에 동시에 읽고 쓸 수 있도록 합니다. 이는 객체 저장소의 고유한 `put-if-absent` 및 `conditional update` 기능을 활용하여 데이터의 정확성과 일관성을 보장합니다. 쓰기 작업은 호출이 반환되기 전에 버킷에서 확인되어 내구성을 보장합니다.
ITZMA는 밀집 및 희소 벡터 검색을 모두 지원합니다. 밀집 벡터는 세그먼트별로 선택된 HNSW 또는 SQ8 알고리즘을 사용하여 인덱싱되며, 정확한 결과를 보장하기 위해 정확한 벡터에서 후보를 재정렬합니다. 희소 벡터는 (용어 ID, 가중치) 쌍으로 표현되며, 밀집 벡터와 함께 저장되어 선택적 역 인덱스와 함께 정확한 희소 쿼리를 가능하게 합니다. 또한, 네임스페이스를 생성할 때 사용자가 정의한 유형 속성(Bool, Number, Text, TextSet, NumberSet)을 적용하여 필터를 독립적으로 정의하거나 벡터 쿼리를 좁힐 수 있는 필터링된 검색 기능을 제공합니다.
주요 기능으로는 원자적 배치 쓰기, 다양한 객체 저장소 백엔드 지원, 다양한 접근 패턴에 적응할 수 있는 유연한 인덱싱 전략(HNSW는 캐시된 읽기, SQ8는 캐시되지 않은 읽기에 적합) 등이 있습니다. 이 라이브러리는 메모리 안전한 Rust 코어 위에 Python 바인딩을 제공하여 더 넓은 개발자 커뮤니티가 접근할 수 있도록 합니다. 압축 및 인덱싱과 같은 유지 관리 작업은 명시적이며, 개발자에게 데이터 관리에 대한 완전한 제어를 제공합니다. ITZMA는 분산 시스템에 대한 광범위한 경험을 가진 수석 소프트웨어 엔지니어 Sergio Marcial에 의해 구축되어 정확하고 내구성이 뛰어난 벡터 검색 솔루션을 제공하는 것을 목표로 합니다.
- 카테고리벡터 데이터베이스 및 검색
- 요금제오픈소스
- 배포Library
- 플랫폼웹
ITZMA의 핵심 기능
객체 저장소에서의 벡터 검색
Python 바인딩이 있는 Rust 라이브러리
확장 가능하고 내구성이 뛰어난 데이터 저장소
서버가 없는 클라우드 네이티브 아키텍처
밀집 벡터 검색 지원 (HNSW, SQ8)
역 인덱스가 있는 희소 벡터 검색 지원
유형 속성에 대한 필터링된 검색
여러 프로세스의 동시 쓰기
원자적 배치 업서트 및 삭제
S3, GCS, Azure, 로컬 디스크, 메모리와 호환
명시적 압축 및 인덱싱
RAM 및 NVMe 읽기 캐시
읽기 전용 상태 보고서
Python에서 NumPy 및 Arrow 입력
ITZMA 사용 방법은?
ITZMA 설치: crates.io에서 Rust 크레이트를 추가하거나 PyPI에서 Python 패키지를 설치합니다.
네임스페이스 생성: 고정 차원, 메트릭(L2, 코사인, 내적) 및 유형 속성을 정의하여 네임스페이스를 만듭니다.
문서 작성: 배치 업서트 및 삭제를 네임스페이스에 전송하여 객체 버킷에 저장합니다.
데이터 쿼리: 밀집 또는 희소 벡터 쿼리를 수행하고 선택적 필터를 사용하여 가장 가까운 결과를 검색합니다.
유지 관리 관리: 최적의 성능을 위해 필요에 따라 압축, 가비지 수집 및 인덱싱을 명시적으로 호출합니다.
ITZMA의 사용 사례
- AI 애플리케이션 구축
- 클라우드 네이티브 데이터 저장
- 실시간 검색
- 밀집 및 희소 벡터 검색
- 필터링된 벡터 쿼리
- 분산 데이터 관리
- Rust 및 Python 개발



