skyzh/vector-db-from-scratch

Learn vector search with Rust and DataFusion; the C++/BusTub track is deprecated.

skyzh/vector-db-from-scratch – Rust로 벡터 데이터베이스를 처음부터 구축하기 (Rust)

무엇인가요

  • 시스템 또는 데이터베이스 엔지니어를 대상으로 하는 오픈소스 실습 튜토리얼로, Rust로 작고 메모리 내 벡터 검색 엔진을 단계적으로 구축하는 과정을 안내합니다.
  • 본 교육은 다일간 과정(및 부록 책) 형태로 제공되며, Arrow 기반 테이블, DataFusion 최적화 규칙, 여러 ANN 인덱스 구조(IVFFlat, NSW, HNSW, IVF-PQ)와 같은 데이터베이스 스타일 기능을 점진적으로 추가합니다.

왜 중요한가요

  • 벡터 검색은 현대 AI 시스템의 핵심 구성 요소입니다 (예: 임베딩의 유사성 검색, 검색 기반 생성). 이 리포지토리는 이러한 알고리즘이 블랙박스 서비스가 아니라 데이터베이스의 일급 연산자로 어떻게 구현되는지를 보여줍니다.
  • 직접 인덱스를 구현함으로써 정확 검색과 근사 검색 사이의 트레이드오프를 이해할 수 있으며, SIFT1M 데이터셋을 기반으로 한 명확한 벤치마크 테스트 세트(재현율, 구축 시간, 쿼리 지연)를 얻게 됩니다.

주요 학습 결과

추가된 기능
1 Arrow 기반 메모리 내 테이블 + 안전한 DataFusion 최적화 규칙
2 정확한(브루트포스) 벡터 검색
3 IVFFlat 인덱스
4 NSW(Navigable Small World) 인덱스
5 HNSW 인덱스
6 잔차 IVF-PQ 인덱스
인덱스 생성, 쿼리 계획 비교, 벤치마크 실행을 위한 SQL 명령어

사용 방법

  1. 리포지토리를 클론하고, 과정 사이트에서 링크된 가이드된 Rust 노트북을 따라 진행합니다.
  2. 매일의 시작 코드, 단위 테스트, 참조 구현체가 제공되며, 비교할 수 있습니다.
  3. 인덱스를 구축한 후 DataFusion를 통해 SQL 문을 실행하여 벡터 검색을 직접 호출할 수 있습니다. 이를 통해 벡터 유사성과 전통적인 관계형 쿼리를 결합할 수 있습니다.
  4. 공유된 벤치마크를 실행하여 다양한 인덱스 유형 간의 재현율, 구축 시간, 쿼리 지연의 차이를 확인할 수 있습니다.

대상 독자

  • Rust에 익숙한 엔지니어 (벡터 검색이나 DataFusion 지식은 필요 없음).
  • 임베딩 기반 검색이 데이터베이스에 어떻게 통합되는지에 관심 있는 누구나.

라이선스

  • 코드: Apache License 2.0.
  • 책/Markdown/그림: Creative Commons BY-NC-SA 4.0.
  • 하위 모듈(bustub-vectordb-starter / bustub-vectordb-solution)은 원래 라이선스를 유지합니다.

커뮤니티

  • 학습자들이 연습 문제를 논의하고 결과를 공유하며 질문을 할 수 있는 Discord 서버가 제공됩니다.

결론 skyzh/vector-db-from-scratch는 Rust와 DataFusion 쿼리 엔진을 사용하여 AI 기반 애플리케이션에 점점 더 중요한 역할을 하는 벡터 데이터베이스의 핵심 구성 요소를 배우는 진정한 교육용 오픈소스 프로젝트입니다.

관련

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