[Self-Hosted / 오픈 소스] Jigen: 경량의 저자원 벡터 데이터베이스 (임베디드 또는 독립형) 및 증분 온디스크 HNSW
요약
Jigen은 홈 서버나 미니 PC 환경에서 사용하기 위해 설계된 경량의 오픈 소스 벡터 데이터베이스입니다. 기존 DB들이 자원을 많이 사용하는 문제를 해결하고자, HNSW 그래프를 디스크에서 직접 수정하고 순회하여 낮은 메모리 점유율을 유지합니다. 임베디드 또는 독립형으로 구동 가능하며, 네이티브 CPU SIMD 명령어를 활용해 빠른 쿼리 속도를 제공합니다.
핵심 포인트
- 낮은 RAM 사용량: HNSW 그래프를 디스크에서 직접 처리하여 자원 효율적입니다.
- 임베디드/독립형 지원: 애플리케이션 인프로세스 또는 Docker로 구동 가능합니다.
- 하드웨어 가속: CPU SIMD 명령어를 활용해 GPU 없이도 빠른 쿼리가 가능합니다.
- 다양한 검색 옵션: k-NN 브루트 포스와 HNSW 근사 인덱싱을 모두 지원합니다.
안녕하세요. 여러분 중 많은 분들이 홈 서버나 미니 PC에서 로컬 LLM과 RAG 파이프라인을 운영하고 계신 것을 알고 있습니다. 저는 기존의 벡터 데이터베이스(Milvus와 같은 또는 분산 설정)가 과도하거나, 자원을 많이 사용하거나, 복잡한 사이드카(sidecar)에 의존하는 경우가 많다는 점을 자주 발견했습니다.
지난 몇 달 동안, 저는 C#으로 처음부터 작성한 오픈 소스 벡터 데이터베이스인 Jigen을 만들었습니다. 저의 주요 목표는 셀프 호스팅 사용자들을 위한 '벡터 검색용 SQLite'처럼 작동할 수 있는 경량의 낮은 메모리 사용량을 가진 엔진을 만드는 것이었습니다.
Jigen이 여러분의 홈랩에 적합한 이유:
- 낮은 RAM 점유율 (진정한 온디스크 HNSW): 많은 경량 엔진들은 전체 그래프를 메모리에 로드하고 스냅샷을 디스크에 저장합니다. Jigen은 HNSW 그래프를 디스크에서 직접 수정하고 순회(traverse)하여, RAM 사용량을 낮고 예측 가능하게 유지합니다. 이는 사양이 낮은 미니 PC, NUC 또는 SBC에 이상적입니다.
- 임베디드 또는 독립형: 자체 애플리케이션 내부에서 완전히 인프로세스(in-process)로 실행할 수 있습니다 (설정 없음, 열린 포트 없음). 또는 Docker를 통해 독립적인 로컬 서비스로 구동할 수도 있습니다.
- 하드웨어 가속: 거리 계산(Cosine, Euclidean, Dot Product)은 네이티브 CPU SIMD 명령어를 사용하며 제로 할당 버퍼(zero-allocation buffers)를 활용하여, 전용 GPU가 필요하지 않으면서도 빠른 쿼리 속도를 유지합니다.
- 검색 옵션: 소규모 데이터셋을 위한 정확한 브루트 포스 k-NN과 근사 HNSW 인덱싱을 모두 지원합니다.
- 벤치마크: pgvector, Qdrant, Milvus와 비교하여 지연 시간(latency) 및 처리량(throughput)에 대한 테스트를 거쳤습니다.
현재 상태 및 피드백
엔진 코어는 직접 작성하고 LLM을 이용해 다듬었습니다. 이제 실제 셀프 호스팅 프로젝트와 테스트에 충분히 안정적입니다.
GitHub & 아키텍처: https://github.com/ppossanzini/Jigen/blob/main/docs/index.md
Docker 이미지: https://github.com/ppossanzini/Jigen/blob/main/docs/server/docker.md
여러분들의 리소스 사용량, 홈랩에서의 디스크 I/O 동작에 대한 피드백과 다음에 보고 싶은 기능(예: 로컬 REST API 래퍼, Docker Compose 템플릿, 또는 Ollama/Open WebUI와 같은 도구와의 통합)을 알려주시면 감사하겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 r/SelfHosted (AI filter)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기