- VectorVFS stocke les embeddings vectoriels comme métadonnées pour chaque fichier, ce qui permet d’utiliser directement le système de fichiers Linux comme base de données vectorielle
- Sans index externe ni base de données, il réalise une indexation à surcoût nul grâce aux xattrs (attributs étendus) du système de fichiers
- Il permet la recherche de fichiers similaires via la recherche par embeddings et peut se connecter à divers modèles d’embedding sans dépendre d’un modèle spécifique
- En utilisant les Perception Encoders (PE) de Meta, il génère des embeddings vectoriels à partir d’images et de vidéos, avec de meilleures performances zero-shot que d’autres modèles
- Grâce à une architecture légère et portable, il peut être utilisé immédiatement sans daemon ni service séparé
Introduction
- VectorVFS est une bibliothèque Python légère qui permet de stocker et de rechercher des embeddings de fichiers en s’appuyant uniquement sur les fonctionnalités natives du système de fichiers Linux
- Sans base de données externe, il stocke les valeurs d’embedding dans les attributs étendus (xattrs) de chaque fichier
- Il permet d’étendre une structure de répertoires existante telle quelle en un système capable de recherche sémantique
Fonctionnalités principales
-
Zero-overhead indexing
- Les embeddings vectoriels sont stockés directement comme xattr du fichier
- Aucun service d’indexation externe ni stockage supplémentaire nécessaire ; les métadonnées restent simplement à côté du fichier
-
Seamless retrieval
- Permet d’effectuer une recherche de similarité vectorielle sur l’ensemble du système de fichiers
- Exemple : recherche d’images similaires avec
find_similar_images('example.jpg')
-
Flexible embedding support
- Utilise par défaut le modèle Perception Encoders (PE) de Meta
- La prise en charge de divers modèles d’embedding est prévue à l’avenir (par ex. texte, audio, multimodal)
- Des modèles d’embedding personnalisés peuvent aussi être intégrés sous forme de plugins
-
Lightweight and portable
- Basé sur les fonctionnalités VFS Linux (xattr), sans besoin de daemon ou de serveur séparé
- Son approche portable permet aussi une utilisation sur des répertoires locaux ou des stockages externes
-
Modèle d’embedding utilisé : Meta Perception Encoders
- PE est un modèle vision-langage pour images/vidéos annoncé par Meta
- Il offre de meilleures performances zero-shot que des modèles concurrents comme InternVL3, Qwen2.5VL et SigLIP2
- D’autres modèles d’embedding backend seront ajoutés à l’avenir
Résumé
- Il permet de construire un système vectoriel de recherche sémantique tout en conservant la structure de fichiers existante telle quelle
- Le coût de stockage des embeddings est quasi nul, et il fonctionne sans infrastructure séparée
- Il est adapté à la mise en œuvre de fonctions de recherche avec protection de la vie privée sur des équipements offline ou edge
1 commentaires
Commentaires sur Hacker News
La comparaison avec une base de données vectorielle est déroutante. Une base de données implique généralement la prise en charge d’index et de requêtes
Il s’agit d’attacher des métadonnées aux fichiers afin que des outils capables de comprendre les LLMs ou les vecteurs d’embedding puissent comprendre un fichier sans en lire le contenu
Il pourrait être intéressant d’ajouter Weaviate et flat-index au projet de manière optionnelle
C’est une excellente idée
Si VectorVFS masque la logique de recherche derrière des embeddings opaques, on peut se demander comment un utilisateur pourrait déboguer pourquoi un fichier apparaît, ou n’apparaît pas
Le vieux débat entre système de fichiers et base de données est toujours intéressant. Quand je lis ce genre de chose, cela me soulève toujours encore plus de questions
J’ai fait quelque chose de similaire, mais en utilisant les contraintes d’EXT4
tarfonctionnait)C’est une idée amusante de stocker les embeddings dans les inodes. Très malin
J’avais étudié quelque chose de similaire il y a quelques années. Je stockais les embeddings dans les xattrs