Vector Databases
pgvector, Qdrant, Pinecone, Weaviate, Indexing Strategies — chọn đúng công cụ lưu trữ vector cho từng quy mô.
Vector database là "ổ đĩa" của mọi hệ thống RAG/semantic search. Chọn sai (hoặc cấu hình index sai) khiến hệ thống chậm, tốn kém, hoặc không scale được khi dữ liệu tăng từ 10K lên 10M vector.
🎯 Mục tiêu học tập
- Hiểu sự đánh đổi giữa các loại index vector (HNSW, IVF) về tốc độ/độ chính xác/bộ nhớ
- So sánh được pgvector, Qdrant, Pinecone, Weaviate theo tiêu chí chi phí, vận hành, tính năng
- Chọn đúng vector DB theo quy mô và ràng buộc hạ tầng của dự án thực tế
So sánh 4 lựa chọn phổ biến nhất
| Vector DB | Điểm mạnh | Khi nào dùng |
|---|---|---|
| pgvector | Chạy ngay trong PostgreSQL sẵn có; join được với dữ liệu quan hệ; không cần thêm hạ tầng mới | Dự án đã dùng Postgres, quy mô vừa (< vài triệu vector), muốn đơn giản hoá vận hành |
| Qdrant | Mã nguồn mở, hiệu năng cao, hỗ trợ filter phức tạp, self-host miễn phí hoặc cloud | Cần hiệu năng cao, kiểm soát chi phí, có thể tự vận hành hoặc dùng managed cloud |
| Pinecone | Fully-managed, scale cực tốt, gần như zero-ops | Ưu tiên tốc độ triển khai, sẵn sàng trả phí để không phải vận hành hạ tầng |
| Weaviate | Hỗ trợ đa mô hình dữ liệu (object + vector), GraphQL API, hybrid search tích hợp sẵn mạnh | Hệ thống cần schema phong phú, nhiều loại quan hệ giữa các đối tượng |
Lời khuyên thực tế: bắt đầu với pgvector nếu đã có PostgreSQL — chỉ chuyển sang giải pháp chuyên dụng (Qdrant/Pinecone/Weaviate) khi đã đo được nghẽn cổ chai thật sự (độ trễ, quy mô hàng chục triệu vector, cần filter cực phức tạp).
Indexing Strategies
- HNSW (Hierarchical Navigable Small World): tiêu chuẩn hiện nay ở hầu hết vector DB — tốc độ truy vấn rất nhanh, độ chính xác cao, đánh đổi bằng thời gian build index và bộ nhớ RAM lớn hơn.
- IVF (Inverted File Index): build nhanh hơn, tốn ít RAM hơn HNSW, nhưng cần "train"
trên dữ liệu mẫu và độ chính xác nhạy với tham số
nprobe. Phù hợp tập dữ liệu cực lớn với ràng buộc bộ nhớ chặt. - Quantization (scalar/binary/product quantization): nén vector để giảm RAM/chi phí lưu trữ, đánh đổi một phần độ chính xác — kỹ thuật quan trọng khi scale lên hàng chục triệu vector.
🏋️ Bài tập thực hành
Lấy cùng một bộ ~50.000 vector (từ Module 6), nạp vào pgvector và Qdrant. Đo thời gian build index, thời gian truy vấn P50/P95, và độ chính xác recall@10 so với brute-force tìm kiếm tuyến tính. Viết báo cáo so sánh ngắn gọn nêu rõ khi nào nên chọn phương án nào.
📚 Tài nguyên học tập
-
pgvector — GitHubExtension vector cho PostgreSQLRepo
-
Qdrant — DocumentationTài liệu chính thức QdrantDocs
-
Pinecone — DocumentationTài liệu chính thức PineconeDocs
-
Weaviate — Developer DocsTài liệu chính thức WeaviateDocs
✅ Tự đánh giá hoàn thành
- Giải thích được sự khác nhau giữa HNSW và IVF cho người khác nghe hiểu
- Triển khai được vector search trên ít nhất 2 vector DB khác nhau
- Có số liệu benchmark thật (không chỉ đọc tài liệu) để so sánh lựa chọn