6P by GN⁺ 3일전 | ★ favorite | 댓글 1개
  • VectorVFS는 파일마다 벡터 임베딩을 메타데이터로 저장하여 리눅스 파일 시스템 자체를 벡터 데이터베이스로 활용할 수 있게 해주는 파이썬 패키지
  • 외부 인덱스나 DB 없이, 파일 시스템의 xattrs(확장 속성) 기능을 통해 제로 오버헤드 인덱싱을 실현함
  • 임베딩 검색을 통한 유사 파일 탐색이 가능하며, 특정 모델에 종속되지 않고 다양한 임베딩 모델을 연결할 수 있음
  • Meta의 Perception Encoders (PE) 를 사용하여 이미지/비디오 기반 벡터 임베딩을 생성하고, 이는 타 모델보다 높은 제로샷 성능을 보임
  • 가볍고 포터블한 구조로 별도 데몬이나 서비스 없이 바로 사용 가능함

소개

  • VectorVFS는 리눅스 파일 시스템의 기본 기능만으로 파일에 대한 임베딩 저장과 검색을 가능하게 하는 경량 파이썬 라이브러리
  • 외부 데이터베이스 없이, 각 파일의 확장 속성(xattrs) 에 임베딩 값을 저장함
  • 기존 디렉터리 구조를 그대로 유지하면서도 세맨틱 검색이 가능한 시스템으로 확장할 수 있음

주요 기능

  • Zero-overhead indexing

    • 벡터 임베딩을 파일의 xattr로 직접 저장
    • 외부 인덱싱 서비스나 추가 저장소 불필요, 파일 옆에 메타데이터로만 존재함
  • Seamless retrieval

    • 전체 파일 시스템을 대상으로 벡터 기반 유사도 검색 수행 가능
    • 예: find_similar_images('example.jpg') 같은 방식으로 유사 이미지 파일 검색 가능
  • Flexible embedding support

    • Meta의 Perception Encoders (PE) 모델을 기본으로 사용
    • 향후 다양한 임베딩 모델(예: 텍스트, 오디오, 멀티모달) 지원 예정
    • 사용자 지정 임베딩 모델도 플러그인 방식으로 연동 가능
  • Lightweight and portable

    • 리눅스 VFS(xattr) 기능 기반으로 별도 데몬이나 서버 구성 불필요
    • 포터블한 방식으로 로컬 디렉터리나 외부 저장소에서도 활용 가능
  • 사용된 임베딩 모델: Meta Perception Encoders

    • PE는 Meta가 발표한 이미지/비디오 기반 비전-언어 모델
    • 경쟁 모델인 InternVL3, Qwen2.5VL, SigLIP2보다 제로샷 성능이 우수
    • 향후 다양한 백엔드 임베딩 모델이 추가될 예정

요약

  • 기존 파일 구조 그대로 유지하면서도 의미 기반 검색이 가능한 벡터 시스템 구축 가능
  • 임베딩 저장 비용이 거의 없고, 별도 인프라 없이 작동 가능함
  • 오프라인/에지 장비에서의 프라이버시 보장 및 검색 기능 구현에 적합함
Hacker News 의견
  • Vector Database와 비교하는 것은 혼란스러움. 데이터베이스는 보통 인덱스와 쿼리 지원을 의미함

    • Embeddings를 파일로 저장하는 것은 흥미로운 개념임. 일부 파일 형식(EXIF)에서는 이미 사용 중임. 그러나 대규모 처리를 위해 실제 데이터베이스가 필요함
    • 다양한 모델과 임베딩 형식을 지원하여 데이터의 이식성을 높이는 것이 문제임. 파일을 어떤 시스템에 넣어도 임베딩이 원활하게 통합되어야 함
  • 메타데이터를 파일에 첨부하여 LLMs나 임베딩 벡터를 이해할 수 있는 도구가 파일의 내용을 읽지 않고도 파일을 이해할 수 있게 하는 것임

    • 흥미로운 사용 사례가 많음. 예를 들어, "지난달 캠핑 가서 칠면조 무리를 본 비디오 재생" 같은 프롬프트로 파일 시스템을 빠르게 검색할 수 있음. 그러나 실제 벡터 DB가 시스템에서 실행되어야 함
  • 프로젝트에 선택적으로 Weaviate와 flat-index를 추가하는 것이 흥미로울 수 있음

    • 외부 서비스를 사용하지 않고 완전히 디스크 기반임. 파일 시스템 전체를 검색할 수 있음(파일당 약 1.5kb, 384 차원)
  • 훌륭한 아이디어임

    • 문서에 더 많은 정보가 필요함. 예를 들어, 어떤 GPU 백엔드가 지원되는지, 임베딩 정보를 삭제하는 방법 등
    • 시도해 볼 가치가 있음
  • VectorVFS가 불투명한 임베딩 뒤에 검색 논리를 숨기면, 사용자가 파일이 왜 나타났는지, 또는 나타나지 않았는지를 어떻게 디버그할 수 있을지 의문임

  • 파일 시스템과 데이터베이스에 대한 오래된 논쟁은 항상 흥미로움. 이런 내용을 읽으면 항상 질문이 더 많아짐

  • 비슷한 것을 했지만 EXT4 요구 사항을 사용함

    • 하드 링크(백업에는 tar만 작동)
    • 작은 파일 크기(디스크 공간보다 인오드가 먼저 소진됨)
    • 전 세계적으로 분산된 실시간 데이터에 유용함. P in CAP이 쓰기에 필요하지 않음
  • 임베딩을 인오드에 저장하는 재미있는 아이디어임. 매우 영리함

    • 벡터 데이터베이스에 실제로 사용할 수 있는 것은 아님. 검색 인덱스 개념이 없음. 모든 파일을 O(N) 선형 검색함
    • 그래도 재미있는 아이디어임
  • 몇 년 전 비슷한 것을 조사했음. xattrs에 임베딩을 저장했음