- VectorVFS almacena embeddings vectoriales como metadatos en cada archivo, lo que permite usar el propio sistema de archivos de Linux como una base de datos vectorial
- Sin índices ni bases de datos externas, logra indexación con sobrecarga cero mediante la función de xattrs (atributos extendidos) del sistema de archivos
- Permite la búsqueda de archivos similares mediante búsqueda por embeddings, y puede conectarse a distintos modelos de embeddings sin depender de uno en particular
- Usa Perception Encoders (PE) de Meta para generar embeddings vectoriales basados en imagen/video, con un rendimiento zero-shot superior al de otros modelos
- Tiene una estructura ligera y portable, por lo que puede usarse de inmediato sin daemons ni servicios adicionales
Introducción
- VectorVFS es una biblioteca ligera de Python que permite almacenar y buscar embeddings de archivos usando solo funciones básicas del sistema de archivos de Linux
- Sin una base de datos externa, almacena los valores de embedding en los atributos extendidos (xattrs) de cada archivo
- Mantiene intacta la estructura de directorios existente, pero permite ampliarla a un sistema con búsqueda semántica
Funciones principales
-
Indexación con sobrecarga cero
- Almacena los embeddings vectoriales directamente como xattrs del archivo
- No requiere servicios externos de indexación ni almacenamiento adicional; solo existen como metadatos junto al archivo
-
Recuperación fluida
- Permite realizar búsquedas de similitud basadas en vectores sobre todo el sistema de archivos
- Ejemplo: se pueden buscar archivos de imagen similares con algo como
find_similar_images('example.jpg')
-
Soporte flexible para embeddings
- Usa por defecto el modelo Perception Encoders (PE) de Meta
- En el futuro, se planea admitir varios modelos de embeddings (por ejemplo, texto, audio y multimodal)
- También se pueden integrar modelos de embeddings personalizados mediante plugins
-
Ligero y portable
- Basado en la función Linux VFS (xattr), no requiere configurar daemons ni servidores aparte
- Gracias a su enfoque portable, puede usarse tanto en directorios locales como en almacenamiento externo
-
Modelo de embeddings usado: Meta Perception Encoders
- PE es un modelo visión-lenguaje basado en imagen/video presentado por Meta
- Ofrece mejor rendimiento zero-shot que modelos competidores como InternVL3, Qwen2.5VL y SigLIP2
- En el futuro se agregarán varios modelos de embeddings de backend
Resumen
- Permite construir un sistema vectorial con búsqueda basada en significado sin cambiar la estructura de archivos existente
- El costo de almacenar embeddings es casi nulo, y puede funcionar sin infraestructura adicional
- Es adecuado para implementar búsqueda y preservar la privacidad en equipos offline o de edge
1 comentarios
Comentarios en Hacker News
Compararlo con una base de datos vectorial resulta confuso. Una base de datos normalmente implica soporte de índices y consultas
La idea es adjuntar metadatos a los archivos para que herramientas capaces de entender LLMs o vectores de embeddings puedan comprender un archivo sin leer su contenido
Podría ser interesante agregar opcionalmente Weaviate y flat-index al proyecto
Es una gran idea
Si VectorVFS oculta la lógica de búsqueda detrás de embeddings opacos, me pregunto cómo podría el usuario depurar por qué apareció un archivo, o por qué no apareció
El viejo debate entre sistema de archivos y base de datos siempre es interesante. Leer cosas así siempre me deja con más preguntas
Hice algo parecido, pero usando los requisitos de EXT4
Es una idea divertida guardar embeddings en los inodos. Muy ingenioso
Investigué algo parecido hace algunos años. Guardaba embeddings en xattrs