6 पॉइंट द्वारा GN⁺ 2025-05-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • VectorVFS हर फ़ाइल के लिए vector embedding को metadata के रूप में स्टोर करता है, जिससे Linux file system को ही vector database की तरह इस्तेमाल किया जा सकता है
  • बाहरी index या DB के बिना, file system की xattrs (extended attributes) सुविधा के जरिए zero-overhead indexing संभव होती है
  • embedding search के जरिए मिलती-जुलती फ़ाइलों की खोज की जा सकती है, और यह किसी एक खास मॉडल पर निर्भर नहीं है, इसलिए अलग-अलग embedding models को जोड़ा जा सकता है
  • Meta के Perception Encoders (PE) का उपयोग करके image/video-आधारित vector embeddings बनाए जाते हैं, और यह अन्य मॉडलों की तुलना में बेहतर zero-shot performance दिखाता है
  • हल्का और portable architecture होने के कारण इसे किसी अलग daemon या service के बिना तुरंत इस्तेमाल किया जा सकता है

परिचय

  • VectorVFS एक lightweight Python library है जो Linux file system की मूल क्षमताओं के आधार पर फ़ाइलों के embedding को स्टोर और search करने की सुविधा देती है
  • बाहरी database के बिना, यह हर फ़ाइल के extended attributes (xattrs) में embedding values स्टोर करता है
  • मौजूदा directory structure को जस का तस रखते हुए भी इसे semantic search सक्षम सिस्टम में बढ़ाया जा सकता है

प्रमुख विशेषताएँ

  • Zero-overhead indexing

    • vector embeddings को फ़ाइल के xattr में सीधे स्टोर किया जाता है
    • बाहरी indexing service या अतिरिक्त storage की ज़रूरत नहीं, यह सिर्फ फ़ाइल के साथ metadata के रूप में मौजूद रहता है
  • Seamless retrieval

    • पूरे file system पर vector-आधारित similarity search चलाया जा सकता है
    • उदाहरण: find_similar_images('example.jpg') जैसे तरीके से मिलती-जुलती image files खोजी जा सकती हैं
  • Flexible embedding support

    • डिफ़ॉल्ट रूप से Meta के Perception Encoders (PE) मॉडल का उपयोग किया जाता है
    • आगे चलकर अलग-अलग embedding models (जैसे text, audio, multimodal) के लिए support जोड़ा जाएगा
    • user-defined embedding models को भी plugin तरीके से जोड़ा जा सकता है
  • Lightweight and portable

    • Linux VFS(xattr) फीचर पर आधारित होने के कारण अलग daemon या server setup की ज़रूरत नहीं
    • portable तरीके से local directories या external storage में भी इस्तेमाल किया जा सकता है
  • उपयोग किया गया embedding model: Meta Perception Encoders

    • PE, Meta द्वारा पेश किया गया image/video-आधारित vision-language model है
    • प्रतिस्पर्धी models InternVL3, Qwen2.5VL, SigLIP2 की तुलना में इसकी zero-shot performance बेहतर है
    • आगे और भी backend embedding models जोड़े जाने की योजना है

सारांश

  • मौजूदा फ़ाइल संरचना को बनाए रखते हुए भी semantic search सक्षम vector system बनाया जा सकता है
  • embedding storage की लागत लगभग न के बराबर है, और यह अलग infrastructure के बिना काम कर सकता है
  • offline/edge devices पर privacy बनाए रखते हुए search functionality लागू करने के लिए यह उपयुक्त है

1 टिप्पणियां

 
GN⁺ 2025-05-06
Hacker News राय
  • इसे Vector Database से तुलना करना भ्रमित करने वाला है। Database का मतलब आमतौर पर index और query support होता है

    • Embeddings को file के रूप में store करना एक दिलचस्प अवधारणा है। कुछ file formats (EXIF) में यह पहले से इस्तेमाल हो रहा है। लेकिन बड़े पैमाने की processing के लिए असली database की ज़रूरत होती है
    • अलग-अलग models और embedding formats को support करके data portability बढ़ाना चुनौती है। File को किसी भी system में डालने पर embeddings सहज रूप से integrate होनी चाहिए
  • विचार यह है कि metadata को file में attach किया जाए ताकि LLMs या embedding vectors को समझने वाले tools, file की content पढ़े बिना भी file को समझ सकें

    • दिलचस्प use cases बहुत हैं। उदाहरण के लिए, "पिछले महीने camping पर जाकर turkey के झुंड को देखा था, वह video चलाओ" जैसे prompt से file system को तेज़ी से search किया जा सकता है। लेकिन असली vector DB का system पर चलना फिर भी ज़रूरी होगा
  • Project में वैकल्पिक रूप से Weaviate और flat-index जोड़ना दिलचस्प हो सकता है

    • यह बिना external services के पूरी तरह disk-based है। पूरे file system को search किया जा सकता है (प्रति file लगभग 1.5kb, 384 dimensions)
  • यह एक शानदार idea है

    • Docs में और जानकारी चाहिए। जैसे, कौन से GPU backends supported हैं, embedding जानकारी को delete कैसे किया जाए, आदि
    • इसे आज़माने लायक है
  • अगर VectorVFS search logic को अपारदर्शी embeddings के पीछे छिपा देता है, तो यह सवाल उठता है कि user कैसे debug करेगा कि कोई file क्यों दिखाई दी, या क्यों नहीं दिखाई दी

  • file system और database को लेकर पुरानी बहस हमेशा दिलचस्प रहती है। ऐसी चीज़ें पढ़कर हमेशा और सवाल पैदा होते हैं

  • मैंने कुछ ऐसा ही किया था, लेकिन EXT4 requirements का इस्तेमाल किया था

    • hard links (backup के लिए सिर्फ tar काम करता है)
    • छोटे file sizes (disk space से पहले inodes खत्म हो जाते हैं)
    • दुनिया भर में distributed real-time data के लिए उपयोगी है। CAP में P, writes के लिए ज़रूरी नहीं है
  • embeddings को inode में store करने का यह एक मज़ेदार idea है। बहुत चतुर है

    • यह ऐसी चीज़ नहीं है जिसे वास्तव में vector database की तरह इस्तेमाल किया जा सके। इसमें search index की अवधारणा नहीं है। यह सभी files को O(N) linear search से ढूंढता है
    • फिर भी, idea मज़ेदार है
  • मैंने कुछ साल पहले ऐसा ही कुछ देखा था। xattrs में embeddings store किए थे