- VectorVFS จัดเก็บเวกเตอร์เอ็มเบดดิงเป็นเมตาดาต้าของแต่ละไฟล์ ทำให้สามารถใช้ระบบไฟล์ลินุกซ์เองเป็น ฐานข้อมูลเวกเตอร์ ได้
- ไม่ต้องมีดัชนีภายนอกหรือ DB, โดยอาศัยความสามารถ xattrs (แอตทริบิวต์แบบขยาย) ของระบบไฟล์เพื่อทำ การทำดัชนีแบบแทบไม่มีโอเวอร์เฮด
- สามารถ ค้นหาไฟล์ที่คล้ายกันผ่านการค้นหาเอ็มเบดดิง ได้ และไม่ผูกติดกับโมเดลใดโมเดลหนึ่ง จึงเชื่อมต่อกับโมเดลเอ็มเบดดิงได้หลากหลาย
- ใช้ Perception Encoders (PE) ของ Meta เพื่อ สร้างเวกเตอร์เอ็มเบดดิงจากภาพ/วิดีโอ ซึ่งให้ประสิทธิภาพแบบ zero-shot สูงกว่าโมเดลอื่น
- มี โครงสร้างที่เบาและพกพาได้ ใช้งานได้ทันทีโดยไม่ต้องมีดีมอนหรือบริการแยกต่างหาก
บทนำ
- VectorVFS เป็น ไลบรารี Python ขนาดเบา ที่ทำให้สามารถ จัดเก็บและค้นหาเอ็มเบดดิงของไฟล์ ได้ด้วยความสามารถพื้นฐานของระบบไฟล์ลินุกซ์เพียงอย่างเดียว
- โดยไม่ต้องมีฐานข้อมูลภายนอก จะจัดเก็บค่าเอ็มเบดดิงไว้ใน แอตทริบิวต์แบบขยาย (xattrs) ของแต่ละไฟล์
- สามารถคงโครงสร้างไดเรกทอรีเดิมไว้ได้ พร้อมทั้งขยายให้เป็น ระบบที่รองรับการค้นหาเชิงความหมาย
ฟีเจอร์หลัก
-
Zero-overhead indexing
- จัดเก็บเวกเตอร์เอ็มเบดดิงเป็น xattr ของไฟล์โดยตรง
- ไม่ต้องใช้บริการทำดัชนีภายนอกหรือพื้นที่จัดเก็บเพิ่มเติม โดยมีอยู่เป็นเมตาดาต้าข้างไฟล์เท่านั้น
-
Seamless retrieval
- สามารถทำ การค้นหาความคล้ายคลึงแบบเวกเตอร์ กับทั้งระบบไฟล์ได้
- ตัวอย่าง: ค้นหาไฟล์ภาพที่คล้ายกันได้ด้วยรูปแบบอย่าง
find_similar_images('example.jpg')
-
Flexible embedding support
- ใช้โมเดล Perception Encoders (PE) ของ Meta เป็นค่าเริ่มต้น
- ในอนาคตรองรับโมเดลเอ็มเบดดิงได้หลากหลายยิ่งขึ้น (เช่น ข้อความ เสียง มัลติโหมด)
- โมเดลเอ็มเบดดิงที่ผู้ใช้กำหนดเองก็สามารถเชื่อมต่อได้ในรูปแบบปลั๊กอิน
-
Lightweight and portable
- ทำงานบนความสามารถ Linux VFS (xattr) จึงไม่ต้องตั้งค่าดีมอนหรือเซิร์ฟเวอร์แยก
- เป็น แนวทางที่พกพาได้ ใช้งานได้ทั้งกับไดเรกทอรีในเครื่องหรือสตอเรจภายนอก
-
โมเดลเอ็มเบดดิงที่ใช้: Meta Perception Encoders
- PE คือ โมเดล vision-language สำหรับภาพ/วิดีโอ ที่ Meta เปิดตัว
- มี ประสิทธิภาพแบบ zero-shot ที่ดีกว่า โมเดลคู่แข่งอย่าง InternVL3, Qwen2.5VL และ SigLIP2
- ในอนาคตจะมีการเพิ่มโมเดลเอ็มเบดดิงแบ็กเอนด์อื่น ๆ อีก
สรุป
- สามารถสร้าง ระบบเวกเตอร์ที่ค้นหาเชิงความหมายได้ โดยยังคง โครงสร้างไฟล์เดิม ไว้
- แทบไม่มีต้นทุนในการจัดเก็บเอ็มเบดดิง และทำงานได้โดยไม่ต้องมีโครงสร้างพื้นฐานแยก
- เหมาะสำหรับ การรับประกันความเป็นส่วนตัวและการทำระบบค้นหา บนอุปกรณ์ออฟไลน์/เอดจ์
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
การเปรียบเทียบกับ Vector Database ทำให้สับสนอยู่บ้าง เพราะโดยปกติฐานข้อมูลหมายถึงการมีดัชนีและรองรับการคิวรี
แนวคิดคือแนบเมทาดาทาไว้กับไฟล์ เพื่อให้เครื่องมือที่เข้าใจ LLMs หรือเวกเตอร์ embedding เข้าใจไฟล์ได้โดยไม่ต้องอ่านเนื้อหาของไฟล์
การเพิ่ม Weaviate และ flat-index ให้เป็นตัวเลือกในโปรเจ็กต์ก็น่าสนใจ
เป็นไอเดียที่ยอดเยี่ยม
ถ้า VectorVFS ซ่อนตรรกะการค้นหาไว้หลัง embeddings ที่ไม่โปร่งใส ก็สงสัยว่าผู้ใช้จะดีบักได้อย่างไรว่าทำไมไฟล์หนึ่งถึงถูกแสดงขึ้นมา หรือทำไมถึงไม่ถูกแสดง
ข้อถกเถียงเก่าแก่ระหว่างไฟล์ซิสเต็มกับฐานข้อมูลน่าสนใจเสมอ อ่านอะไรแบบนี้ทีไรก็มักมีคำถามมากขึ้นทุกครั้ง
เคยทำอะไรคล้ายกัน แต่ใช้ข้อกำหนดของ EXT4
เป็นไอเดียที่สนุกดีในการเก็บ embeddings ไว้ใน inode ฉลาดมาก
เมื่อหลายปีก่อนเคยศึกษาสิ่งที่คล้ายกัน โดยเก็บ embeddings ไว้ใน xattrs