- O VectorVFS armazena embeddings vetoriais como metadados de cada arquivo, permitindo usar o próprio sistema de arquivos Linux como um banco de dados vetorial
- Sem índice externo nem DB, ele viabiliza indexação com overhead zero por meio de xattrs (atributos estendidos) do sistema de arquivos
- Permite explorar arquivos semelhantes por busca de embeddings e pode se conectar a vários modelos de embedding sem depender de um modelo específico
- Usa os Perception Encoders (PE) da Meta para gerar embeddings vetoriais com base em imagem/vídeo, mostrando desempenho zero-shot superior ao de outros modelos
- Com uma estrutura leve e portátil, pode ser usado imediatamente sem daemon ou serviço separado
Introdução
- VectorVFS é uma biblioteca Python leve que possibilita armazenar e buscar embeddings de arquivos usando apenas recursos nativos do sistema de arquivos Linux
- Sem banco de dados externo, ele armazena os valores de embedding nos atributos estendidos (xattrs) de cada arquivo
- Mantendo a estrutura de diretórios existente, é possível expandi-la para um sistema com busca semântica
Principais recursos
-
Zero-overhead indexing
- Armazena embeddings vetoriais diretamente como xattr do arquivo
- Não requer serviço externo de indexação nem armazenamento adicional; os metadados ficam apenas ao lado do arquivo
-
Seamless retrieval
- Permite realizar busca por similaridade baseada em vetores em todo o sistema de arquivos
- Exemplo: é possível buscar arquivos de imagem semelhantes com algo como
find_similar_images('example.jpg')
-
Flexible embedding support
- Usa por padrão o modelo Perception Encoders (PE) da Meta
- No futuro, há previsão de suporte a vários modelos de embedding (ex.: texto, áudio, multimodal)
- Modelos de embedding personalizados também podem ser integrados no formato de plugin
-
Lightweight and portable
- Baseado no recurso Linux VFS (xattr), não exige daemon nem configuração de servidor separada
- Por ser portátil, pode ser usado em diretórios locais ou armazenamento externo
-
Modelo de embedding usado: Meta Perception Encoders
- O PE é um modelo visão-linguagem baseado em imagem/vídeo anunciado pela Meta
- Tem desempenho zero-shot superior ao de modelos concorrentes como InternVL3, Qwen2.5VL e SigLIP2
- No futuro, mais modelos de embedding de backend devem ser adicionados
Resumo
- É possível construir um sistema vetorial com busca por significado mantendo intacta a estrutura de arquivos existente
- O custo de armazenamento dos embeddings é quase zero e ele funciona sem infraestrutura separada
- É adequado para garantir privacidade e implementar busca em ambientes offline ou dispositivos de edge
1 comentários
Comentários do Hacker News
Comparar isso com um banco de dados vetorial é confuso. Banco de dados normalmente implica suporte a índices e consultas
A ideia é anexar metadados aos arquivos para que ferramentas capazes de entender LLMs ou vetores de embedding possam compreender o arquivo sem ler seu conteúdo
Pode ser interessante adicionar Weaviate e flat-index ao projeto de forma opcional
É uma ótima ideia
Se o VectorVFS esconder a lógica de busca por trás de embeddings opacos, fico me perguntando como o usuário poderia depurar por que um arquivo apareceu, ou por que não apareceu
A velha discussão entre sistema de arquivos e banco de dados é sempre interessante. Sempre saio com mais perguntas quando leio algo assim
Fiz algo parecido, mas usando requisitos do EXT4
tarfuncionava)É uma ideia divertida armazenar embeddings em inodes. Muito inteligente
Investiguei algo parecido alguns anos atrás. Armazenei embeddings em
xattrs