# VectorVFS - 파일 시스템을 벡터 데이터베이스로 활용

> Clean Markdown view of GeekNews topic #20727. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20727](https://news.hada.io/topic?id=20727)
- GeekNews Markdown: [https://news.hada.io/topic/20727.md](https://news.hada.io/topic/20727.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-05-06T10:38:52+09:00
- Updated: 2025-05-06T10:38:52+09:00
- Original source: [vectorvfs.readthedocs.io](https://vectorvfs.readthedocs.io/en/latest/)
- Points: 6
- Comments: 1

## Summary

**VectorVFS**는 리눅스 파일 시스템의 확장 속성을 활용하여 **벡터 임베딩을 메타데이터로 저장**하고, 이를 통해 **벡터 데이터베이스**로 활용할 수 있는 파이썬 패키지입니다. 외부 인덱스나 데이터베이스 없이 **제로 오버헤드 인덱싱**을 실현하며, **임베딩 검색을 통한 유사 파일 탐색**이 가능합니다. **Meta의 Perception Encoders (PE)**를 사용하여 **이미지/비디오 기반 벡터 임베딩을 생성**하며, 이는 타 모델보다 높은 제로샷 성능을 보입니다. **가볍고 포터블한 구조**로 별도의 데몬이나 서비스 없이 바로 사용 가능합니다.

## Topic Body

- **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보다 **제로샷 성능이 우수**함  
  - 향후 다양한 백엔드 임베딩 모델이 추가될 예정  
  
### 요약  
  
- **기존 파일 구조 그대로 유지하면서도 의미 기반 검색이 가능한 벡터 시스템** 구축 가능  
- **임베딩 저장 비용이 거의 없고**, 별도 인프라 없이 작동 가능함  
- **오프라인/에지 장비에서의 프라이버시 보장 및 검색 기능 구현**에 적합함

## Comments



### Comment 38213

- Author: neo
- Created: 2025-05-06T10:38:52+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43896011) 
- Vector Database와 비교하는 것은 혼란스러움. 데이터베이스는 보통 인덱스와 쿼리 지원을 의미함
  - Embeddings를 파일로 저장하는 것은 흥미로운 개념임. 일부 파일 형식(EXIF)에서는 이미 사용 중임. 그러나 대규모 처리를 위해 실제 데이터베이스가 필요함
  - 다양한 모델과 임베딩 형식을 지원하여 데이터의 이식성을 높이는 것이 문제임. 파일을 어떤 시스템에 넣어도 임베딩이 원활하게 통합되어야 함

- 메타데이터를 파일에 첨부하여 LLMs나 임베딩 벡터를 이해할 수 있는 도구가 파일의 내용을 읽지 않고도 파일을 이해할 수 있게 하는 것임
  - 흥미로운 사용 사례가 많음. 예를 들어, "지난달 캠핑 가서 칠면조 무리를 본 비디오 재생" 같은 프롬프트로 파일 시스템을 빠르게 검색할 수 있음. 그러나 실제 벡터 DB가 시스템에서 실행되어야 함

- 프로젝트에 선택적으로 Weaviate와 flat-index를 추가하는 것이 흥미로울 수 있음
  - 외부 서비스를 사용하지 않고 완전히 디스크 기반임. 파일 시스템 전체를 검색할 수 있음(파일당 약 1.5kb, 384 차원)

- 훌륭한 아이디어임
  - 문서에 더 많은 정보가 필요함. 예를 들어, 어떤 GPU 백엔드가 지원되는지, 임베딩 정보를 삭제하는 방법 등
  - 시도해 볼 가치가 있음

- VectorVFS가 불투명한 임베딩 뒤에 검색 논리를 숨기면, 사용자가 파일이 왜 나타났는지, 또는 나타나지 않았는지를 어떻게 디버그할 수 있을지 의문임

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

- 비슷한 것을 했지만 EXT4 요구 사항을 사용함
  - 하드 링크(백업에는 tar만 작동)
  - 작은 파일 크기(디스크 공간보다 인오드가 먼저 소진됨)
  - 전 세계적으로 분산된 실시간 데이터에 유용함. P in CAP이 쓰기에 필요하지 않음

- 임베딩을 인오드에 저장하는 재미있는 아이디어임. 매우 영리함
  - 벡터 데이터베이스에 실제로 사용할 수 있는 것은 아님. 검색 인덱스 개념이 없음. 모든 파일을 O(N) 선형 검색함
  - 그래도 재미있는 아이디어임

- 몇 년 전 비슷한 것을 조사했음. xattrs에 임베딩을 저장했음
