Vấn đề
- Để phục vụ tìm kiếm ngữ nghĩa/ngôn ngữ tự nhiên và RAG, cần thực hiện vector embedding
- Hầu hết các mô hình embedding đều có giới hạn độ dài đầu vào
- Việc chọn độ dài đầu vào phù hợp có liên quan trực tiếp đến chất lượng tìm kiếm
- Do giới hạn độ dài đầu vào, trong đa số trường hợp phải tách đoạn văn và lưu riêng
- Khi lưu bằng cách tách nguyên văn, một tài liệu sẽ bị chia thành nhiều tài liệu
- Phần lớn tài liệu không chỉ được cấu thành từ một khối văn bản duy nhất mà còn có metadata, các trường dài khác, v.v.
- Để lưu dữ liệu đã tách, либо phải lưu trùng lặp nguyên văn đã tách cùng thông tin bổ sung, hoặc phải tách riêng collection (hoặc bảng) để lưu
- Lưu trùng lặp gây tăng dung lượng lưu trữ và kém hiệu quả, còn collection tách riêng làm tăng độ phức tạp trong quá trình tìm kiếm như join, tính điểm, đếm số tài liệu, v.v.
- Đây là vấn đề thường xuyên gặp phải khi sử dụng hầu hết các vector store
Giải pháp
- Tìm một cách khác để không phải tách nguyên văn
- Chỉnh sửa DB và các thư viện liên quan để trường lưu dữ liệu embedding có thể nhận dữ liệu 2 chiều
- Nhờ đó có thể lưu dữ liệu vector có độ dài biến thiên theo từng tài liệu, được tách thành một hoặc nhiều phần mà nguyên văn không bị chia tách
- Với cách này, nguyên văn và dữ liệu vector được tách riêng có thể cùng tồn tại mà không cần tách collection, giúp việc quản lý dữ liệu và truy vấn trở nên gọn gàng hơn
Chưa có bình luận nào.