- VectorVFS lưu embedding vector dưới dạng metadata cho từng tệp, cho phép tận dụng chính hệ thống tệp Linux như một cơ sở dữ liệu vector
- Không cần chỉ mục hay DB bên ngoài, hiện thực lập chỉ mục với chi phí gần như bằng 0 thông qua tính năng xattrs (thuộc tính mở rộng) của hệ thống tệp
- Có thể tìm các tệp tương tự thông qua tìm kiếm embedding, đồng thời không phụ thuộc vào một mô hình cụ thể và có thể kết nối với nhiều mô hình embedding khác nhau
- Sử dụng Perception Encoders (PE) của Meta để tạo embedding vector dựa trên hình ảnh/video, cho hiệu năng zero-shot cao hơn các mô hình khác
- Với cấu trúc nhẹ và linh hoạt, có thể dùng ngay mà không cần daemon hay dịch vụ riêng
Giới thiệu
- VectorVFS là một thư viện Python gọn nhẹ cho phép lưu và truy xuất embedding cho tệp chỉ bằng các tính năng sẵn có của hệ thống tệp Linux
- Không cần cơ sở dữ liệu bên ngoài, thư viện lưu giá trị embedding trong thuộc tính mở rộng (xattrs) của từng tệp
- Vẫn giữ nguyên cấu trúc thư mục hiện có, đồng thời có thể mở rộng thành một hệ thống hỗ trợ tìm kiếm ngữ nghĩa
Tính năng chính
-
Lập chỉ mục không phát sinh overhead
- Lưu trực tiếp vector embedding vào xattr của tệp
- Không cần dịch vụ lập chỉ mục bên ngoài hay kho lưu trữ bổ sung, dữ liệu chỉ tồn tại dưới dạng metadata bên cạnh tệp
-
Truy xuất liền mạch
- Có thể thực hiện tìm kiếm độ tương đồng dựa trên vector trên toàn bộ hệ thống tệp
- Ví dụ: có thể tìm các tệp hình ảnh tương tự bằng cách như
find_similar_images('example.jpg')
-
Hỗ trợ embedding linh hoạt
- Mặc định sử dụng mô hình Perception Encoders (PE) của Meta
- Trong tương lai dự kiến hỗ trợ nhiều mô hình embedding khác nhau hơn nữa (ví dụ: văn bản, âm thanh, đa phương thức)
- Cũng có thể tích hợp mô hình embedding do người dùng tự chọn theo dạng plugin
-
Nhẹ và dễ di động
- Dựa trên tính năng Linux VFS (xattr) nên không cần thiết lập daemon hay máy chủ riêng
- Theo cách tiếp cận dễ di động, có thể dùng với thư mục cục bộ hoặc kho lưu trữ bên ngoài
-
Mô hình embedding được sử dụng: Meta Perception Encoders
- PE là mô hình thị giác-ngôn ngữ dựa trên hình ảnh/video do Meta công bố
- Có hiệu năng zero-shot vượt trội so với các mô hình cạnh tranh như InternVL3, Qwen2.5VL, SigLIP2
- Trong tương lai sẽ bổ sung thêm nhiều mô hình embedding backend khác nhau
Tóm tắt
- Có thể xây dựng một hệ thống vector hỗ trợ tìm kiếm theo ngữ nghĩa mà vẫn giữ nguyên cấu trúc tệp hiện có
- Chi phí lưu embedding gần như bằng 0 và có thể vận hành mà không cần hạ tầng riêng
- Phù hợp để đảm bảo quyền riêng tư và triển khai chức năng tìm kiếm trên thiết bị offline/edge
1 bình luận
Ý kiến trên Hacker News
Việc so sánh với Vector Database khá dễ gây nhầm lẫn. Cơ sở dữ liệu thường hàm ý có hỗ trợ chỉ mục và truy vấn
Đây là cách gắn metadata vào tệp để các công cụ có thể hiểu LLMs hoặc vector embedding có thể hiểu tệp mà không cần đọc nội dung của tệp
Có thể sẽ thú vị nếu bổ sung tùy chọn Weaviate và flat-index cho dự án
Ý tưởng rất hay
Nếu VectorVFS giấu logic tìm kiếm đằng sau các embedding mờ đục, tôi tự hỏi người dùng sẽ gỡ lỗi thế nào để biết vì sao một tệp xuất hiện, hoặc không xuất hiện
Cuộc tranh luận lâu đời giữa hệ thống tệp và cơ sở dữ liệu lúc nào cũng thú vị. Đọc những thứ như thế này luôn làm tôi có thêm nhiều câu hỏi hơn
Tôi từng làm thứ gì đó tương tự nhưng dùng các ràng buộc của EXT4
tarhoạt động)Ý tưởng lưu embedding trong inode khá thú vị. Rất thông minh
Vài năm trước tôi đã tìm hiểu thứ gì đó tương tự. Khi đó tôi lưu embedding trong
xattrs