1 điểm bởi credible 4 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Mình là sinh viên năm nhất đại học, và vì tò mò cơ chế hoạt động thực tế của một database engine nên đã bắt đầu tự làm một cái từ 4 tháng trước. Ban đầu nó là một kho key-value LSM-tree phục vụ học tập, nhưng sau khi gắn thêm lớp vector và đặt chỉ mục HNSW lên trên, nó đã trở thành một cơ sở dữ liệu vector on-device.

Toàn bộ được viết bằng C và không có phụ thuộc bên ngoài. Đây là một thư viện nhúng có thể link trực tiếp vào ứng dụng và chạy ngay trên thiết bị mà không cần server, hướng tới on-device RAG và tìm kiếm ngữ nghĩa.

Các thành phần chính:

  • Lưu trữ LSM-tree (WAL + memtable + SST + compaction)
  • Chỉ mục vector HNSW (tìm kiếm láng giềng gần đúng)
  • ARM NEON SIMD distance kernel (float32 / int8, L2 / dot)
  • API truy vấn dựa trên chuỗi (tìm kiếm vector kết hợp bộ lọc, dễ dùng cho FFI binding)

Hiện tại đã có các chức năng CRUD cơ bản và tính năng query.

Vì vẫn còn là v1 nên vẫn còn những phần cần tối ưu hoặc bổ sung (hỗ trợ x86, concurrency, mobile binding, v.v.), và các giới hạn cùng roadmap đã được ghi trong README.

Tên của nó là livero (libero, tiếng Ý nghĩa là "tự do" + vector). Mình đặt như vậy để mang ý nghĩa là một vector store tự do khỏi server, khỏi phụ thuộc, và có thể tự do chạy ngay trên thiết bị :)

Chưa có bình luận nào.

Chưa có bình luận nào.