트렌딩 목록으로
Python

RyanCodrai / turbovec

Rust로 작성되고 Python 바인딩이 적용된 TurboQuant 기반 벡터 인덱스

8.4K
787
약 1개월 전
GitHub에서 보기

이 프로젝트에 대해

RyanCodrai 님의 turbovec 프로젝트는 GitHub에서 8.4K개의 별을 받으며 많은 개발자들의 주목을 받고 있습니다. 특히 Python 환경에서 유용하게 활용될 수 있으며, 최근 오픈소스 커뮤니티에서 활발한 기여와 토론이 이루어지고 있는 트렌딩 레포지토리입니다.

Language Breakdown

Python 54%Rust 46%

🇰🇷 한국어 번역 README

AI 실시간 번역

1000만 개 문서 코퍼스는 float32 기준으로 31GB RAM을 차지합니다. turbovec는 4GB에 맞추고 FAISS보다 더 빠르게 검색할 수 있습니다.

turbovec는 Rust로 작성된 벡터 인덱스이며 Python 바인딩을 제공하고, Google Research의 TurboQuant 알고리즘 기반으로 만들어졌습니다 — 별도의 학습 단계 없이 거의 최적의 왜곡을 가진 데이터 무관 양자화기입니다.

  • 온라인 인제스트. 벡터를 추가하면 바로 인덱싱됩니다 — 학습 단계, 파라미터 조정, 코퍼스 증가에 따른 재구축 필요 없음.
  • 빠른 SIMD 검색. 손으로 작성한 NEON(ARM) 및 AVX-512BW(x86) 커널은 ARM에서 FAISS IndexPQFastScan보다 10–19% 빠릅니다; x86에서는 4비트 설정에서 우위를 점하고 2비트에서는 몇 퍼센트 뒤처집니다.
  • 검색 시 필터링. ID 허용 목록(또는 슬롯 비트마스크)을 search()에 전달하면 커널이 직접 이를 준수합니다. 항상 허용된 집합에서 최대 k개의 결과를 얻을 수 있으며 — 과잉 페치 없고, 선택적 필터에서도 검색 정확도 감소 없음.
  • 순수 로컬. 관리형 서비스 없음, 데이터가 머신이나 VPC를 벗어나지 않음. 어떤 오픈소스 임베딩 모델과도 결합해 완전히 격리된 RAG 스택 구성 가능.

프라이버시, 메모리, 지연 시간이 중요한 RAG를 구축하고 계신가요? 여기가 바로 그곳입니다.

Python

삭제 후에도 안정적인 ID가 필요하나요? IdMapIndex 사용:

하이브리드 검색(필터링 검색)

다른 시스템(SQL, BM25, ACL, 시간 창 등)에서 생성된 후보 집합으로 결과를 제한:

필터링은 SIMD 커널 내에서 32 벡터 블록 단위로 이루어집니다: 허용 슬롯이 없는 블록은 LUT 조회나 점수 계산 전에 단축되어 처리되며, 개별 비허용 슬롯은 ...


🌐 본 텍스트는 빠른 이해를 돕기 위한 요약 번역본입니다. 정확한 기술 정보 및 전체 코드는 GitHub 원문에서 확인하실 수 있습니다.

이 정보는 AI가 자동으로 분석한 결과입니다. 정확한 내용은 원문을 확인하세요.

RyanCodrai/turbovec GitHub 원문 바로가기 →