🎓 AI TUTORIAL A–Z
📚 KHÓA 1 – AI FOUNDATION
🔍 MODULE M30
VECTOR DATABASE – CƠ SỞ DỮ LIỆU VECTOR
⏱️ Thời lượng: 210 phút
🟢 Cấp độ: Cơ bản → Trung cấp
🎯 Mục tiêu chung: Hiểu Vector Database là gì, cách lưu trữ và tìm kiếm Vector, lựa chọn công nghệ phù hợp và thiết kế Vector Database phục vụ Semantic Search, RAG và AI Agent.
📚 1. MỤC LỤC
📚 Mục lục
🎯 Mục tiêu
🏗️ Kiến trúc và công nghệ
📖 Kiến thức cốt lõi
💼 Ứng dụng thực tế và Case Study
⚠️ Lưu ý và kinh nghiệm
📌 Tóm tắt kiến thức
🧪 Bài tập thực hành
❓ Câu hỏi ôn tập và đáp án
📚 Tài liệu tham khảo
🚀 Module tiếp theo
🎯 2. MỤC TIÊU
Sau khi học xong module này, bạn sẽ:
✅ Hiểu Vector Database là gì.
✅ Phân biệt Vector Database và Database truyền thống.
✅ Hiểu Collection, Vector, Point, Payload và Metadata.
✅ Hiểu Exact Search và Approximate Search.
✅ Biết HNSW và IVFFlat hoạt động như thế nào.
✅ Phân biệt Cosine, Euclidean và Dot Product.
✅ Biết lựa chọn pgvector, Qdrant, Milvus, Weaviate hoặc FAISS.
✅ Thiết kế Vector Database cho RAG.
✅ Hiểu Sharding, Replication, Backup và High Availability.
✅ Biết theo dõi hiệu năng, độ chính xác và chi phí Vector Search.
🏗️ 3. KIẾN TRÚC VÀ CÔNG NGHỆ
3.1 Kiến trúc tổng thể
📚 Tài liệu nguồn
│
▼
🧹 Làm sạch dữ liệu
│
▼
✂️ Chia thành Chunk
│
▼
🧠 Embedding Model
│
▼
🔢 Vector + Metadata
│
▼
🗄️ Vector Database
│
├── Vector Index
├── Metadata Index
├── Shard
├── Replica
└── Snapshot/Backup
│
▼
🔎 Similarity Search
│
▼
🎯 Reranker
│
▼
🧠 LLM / RAG / AI Agent
3.2 Cách hiểu đơn giản
Database truyền thống thường tìm theo:
Mã khách hàng.
Tên.
Ngày tháng.
Trạng thái.
Giá trị chính xác.
Vector Database tìm theo:
Mức độ giống nhau về ý nghĩa hoặc đặc trưng.
Ví dụ, người dùng hỏi:
Database Oracle gần hết không gian lưu trữ phải xử lý thế nào?
Vector Database có thể tìm được tài liệu:
Hướng dẫn xử lý Tablespace sử dụng trên 95%.
Hai câu không giống từ hoàn toàn nhưng có ý nghĩa gần nhau.
3.3 Kiến trúc một bản ghi Vector
Một bản ghi thường gồm:
┌────────────────────────────────────┐
│ ID │
│ Vector │
│ Nội dung gốc hoặc đường dẫn │
│ Metadata/Payload │
└────────────────────────────────────┘
Ví dụ:
{
"id": "runbook-ora-01653-001",
"vector": [0.17, -0.42, 0.81, 0.09],
"text": "Hướng dẫn xử lý ORA-01653...",
"metadata": {
"database": "Oracle",
"version": "19c",
"error_code": "ORA-01653",
"department": "DBA",
"security_level": "internal"
}
}
Trong Qdrant, một Collection là tập hợp các Point; mỗi Point có Vector và Payload. Các Vector trong cùng một cấu hình tìm kiếm phải có kích thước và Distance Metric phù hợp. (Qdrant)
3.4 Kiến trúc RAG sử dụng Vector Database
📥 GIAI ĐOẠN NẠP DỮ LIỆU
Tài liệu
│
▼
Parser
│
▼
Chunking
│
▼
Embedding
│
▼
Vector Database
💬 GIAI ĐOẠN HỎI ĐÁP
Câu hỏi
│
▼
Query Embedding
│
▼
Vector Search + Filter
│
▼
Top K Chunk
│
▼
Reranker
│
▼
LLM
│
▼
Câu trả lời có nguồn
3.5 Các lớp công nghệ
📚 Data Ingestion
Đọc PDF, Word, HTML, Database và API.
Làm sạch dữ liệu.
Chuẩn hóa Unicode.
Loại nội dung trùng.
Gắn Metadata.
✂️ Chunking
Chia tài liệu thành các đoạn có ý nghĩa.
Giữ tiêu đề và ngữ cảnh.
Có thể thêm Chunk Overlap.
🧠 Embedding
Chuyển Chunk thành Vector.
Cùng Embedding Model phải được dùng cho dữ liệu và truy vấn.
🗄️ Vector Storage
Lưu Vector.
Lưu nội dung và Metadata.
Xây dựng Index.
🔎 Retrieval
Vector Search.
Keyword Search.
Metadata Filter.
Hybrid Search.
Reranking.
🛡️ Governance
Phân quyền.
Audit Log.
Encryption.
Data Retention.
Backup.
Monitoring.
3.6 Lộ trình công nghệ
📊 Relational Database
│
▼
🔎 Full-text Search
│
▼
🧮 Vector Library
│
▼
🗄️ Vector Database
│
▼
🔀 Hybrid Search
│
▼
🎯 Reranking
│
▼
📚 Enterprise RAG
│
▼
🤖 AI Agent Memory
3.7 So sánh Database truyền thống và Vector Database
| Tiêu chí | Database truyền thống | Vector Database |
|---|---|---|
| Dữ liệu chính | Bảng, cột, dòng | Vector nhiều chiều |
| Kiểu tìm kiếm | Chính xác, điều kiện | Tương đồng |
| Ví dụ | customer_id = 1001 | Tìm nội dung gần nghĩa |
| Index | B-tree, Hash | HNSW, IVF |
| Kết quả | Khớp hoặc không khớp | Điểm tương đồng |
| Ứng dụng | OLTP, báo cáo | RAG, Semantic Search |
| Metadata | Rất mạnh | Có hỗ trợ tùy sản phẩm |
| Transaction | Thường đầy đủ | Mức hỗ trợ khác nhau |
Vector Database không thay thế hoàn toàn Relational Database.
Trong nhiều hệ thống:
PostgreSQL / Oracle
+
Vector Database
=
Dữ liệu nghiệp vụ + Tìm kiếm ngữ nghĩa
3.8 So sánh các công nghệ phổ biến
| Công nghệ | Điểm mạnh | Phù hợp |
|---|---|---|
| pgvector | Tích hợp PostgreSQL, SQL và Transaction | Hệ thống đã dùng PostgreSQL |
| Qdrant | Vector Search, Filter, API thuận tiện | RAG và ứng dụng AI |
| Milvus | Thiết kế phân tán, nhiều loại Index | Dữ liệu Vector quy mô lớn |
| Weaviate | Vector + Object + Hybrid Search | Ứng dụng AI tích hợp |
| FAISS | Thư viện tìm Vector hiệu năng cao | Nghiên cứu, xử lý cục bộ |
| Elasticsearch/OpenSearch | Keyword + Vector Search | Enterprise Search |
pgvector mặc định thực hiện Exact Nearest Neighbor Search; HNSW và IVFFlat có thể được thêm để tăng tốc bằng cách đánh đổi một phần Recall. (GitHub)
Milvus được thiết kế cho Similarity Search trên dữ liệu Vector nhiều chiều và có thể triển khai từ máy đơn đến hệ thống phân tán. (Milvus)
Weaviate lưu cả Data Object và Vector Embedding, hỗ trợ Semantic Search dựa trên ý nghĩa thay vì chỉ từ khóa. (Weaviate Documentation)
📖 4. KIẾN THỨC CỐT LÕI
4.1 Vector Database là gì?
Vector Database là hệ thống được thiết kế để:
Lưu Vector.
Lập chỉ mục Vector.
Tìm Vector gần nhất.
Lọc theo Metadata.
Mở rộng tới số lượng Vector lớn.
Phục vụ Semantic Search, Recommendation và RAG.
Vector Database thường không tự tạo Vector.
Vector được tạo bởi:
Embedding Model.
Vision Model.
Audio Model.
Recommendation Model.
Feature Extraction Pipeline.
4.2 Vector là gì?
Vector là danh sách số biểu diễn nội dung hoặc đặc trưng.
Ví dụ:
Oracle RAC
│
▼
[0.18, -0.51, 0.74, 0.09, ...]
Các Vector có ý nghĩa gần nhau thường nằm gần nhau trong không gian Vector.
4.3 Collection là gì?
Collection có thể hiểu tương tự một Table hoặc một nhóm dữ liệu Vector.
Ví dụ:
Collection: dba_runbooks
Collection: incident_reports
Collection: telecom_alarms
Collection: internal_policies
Mỗi Collection có thể quy định:
Vector Dimension.
Distance Metric.
Shard.
Replica.
Index.
Metadata Schema.
Retention Policy.
4.4 Point hoặc Object là gì?
Point là một đơn vị dữ liệu được lưu trong Vector Database.
Một Point thường có:
ID.
Vector.
Payload.
Nội dung tham chiếu.
Point
├── ID
├── Vector
├── Text
└── Metadata
4.5 Payload và Metadata
Payload hoặc Metadata mô tả Vector.
Ví dụ:
{
"system": "Billing",
"database": "Oracle",
"version": "19c",
"document_type": "runbook",
"security_level": "internal",
"updated_at": "2026-07-20"
}
Metadata giúp:
Lọc tài liệu theo hệ thống.
Lọc theo phiên bản.
Phân quyền.
Tìm tài liệu mới nhất.
Loại tài liệu hết hiệu lực.
Tạo nguồn trích dẫn.
Qdrant sử dụng Payload Index để tăng tốc Filter trên các trường có cấu trúc, trong khi Vector Index tăng tốc Similarity Search. (Qdrant)
4.6 Distance Metric
Distance Metric quyết định cách đo hai Vector gần nhau.
📐 Cosine Similarity
Đo góc giữa hai Vector.
Phù hợp khi quan tâm hướng của Vector.
📏 Euclidean Distance
Đo khoảng cách đường thẳng.
✖️ Dot Product
Đo tích vô hướng.
Thường dùng khi Embedding Model được tối ưu cho phép đo này.
Phải dùng đúng Metric được Embedding Model khuyến nghị.
4.7 Exact Nearest Neighbor Search
Exact Search so sánh Query Vector với toàn bộ Vector.
Query Vector
│
▼
So sánh tất cả Vector
│
▼
Sắp xếp khoảng cách
│
▼
Top K
Ưu điểm:
Recall gần 100%.
Kết quả ổn định.
Dễ đánh giá.
Hạn chế:
Chậm khi dữ liệu lớn.
Tốn CPU.
Khó đạt độ trễ thấp với hàng triệu Vector.
pgvector sử dụng Exact Search theo mặc định và chỉ chuyển sang Approximate Search khi sử dụng Index phù hợp. (GitHub)
4.8 Approximate Nearest Neighbor Search
Approximate Search không kiểm tra toàn bộ Vector.
Hệ thống sử dụng Index để nhanh chóng tìm vùng có khả năng chứa Vector gần nhất.
Query
│
▼
ANN Index
│
▼
Nhóm ứng viên
│
▼
Tính khoảng cách
│
▼
Top K gần đúng
Ưu điểm:
Nhanh.
Phù hợp dữ liệu lớn.
Độ trễ thấp hơn.
Hạn chế:
Có thể bỏ sót tài liệu đúng.
Cần điều chỉnh Index.
Phải cân bằng tốc độ và Recall.
4.9 Recall là gì?
Recall trong Vector Search thể hiện khả năng tìm được kết quả đúng.
Ví dụ:
Có 10 tài liệu đúng.
Hệ thống tìm được 8 tài liệu.
Recall = 8/10 = 80%
Trong RAG, Recall thấp có thể làm LLM không nhận được tài liệu cần thiết dù mô hình ngôn ngữ rất mạnh.
4.10 HNSW là gì?
HNSW là viết tắt của:
Hierarchical Navigable Small World
Đây là Index dạng đồ thị nhiều tầng.
Có thể hình dung như bản đồ:
🌍 Tầng cao: Chọn khu vực lớn
│
▼
🏙️ Tầng giữa: Chọn thành phố
│
▼
🏘️ Tầng thấp: Tìm địa chỉ gần nhất
HNSW:
Tìm nhanh.
Recall cao.
Phù hợp truy vấn trực tuyến.
Hỗ trợ dữ liệu nhiều chiều.
Hạn chế:
Tốn RAM.
Index lớn.
Xây Index có thể mất thời gian.
Cần điều chỉnh tham số.
Milvus mô tả HNSW là Index đồ thị có độ chính xác tìm kiếm và độ trễ tốt nhưng cần nhiều bộ nhớ để duy trì cấu trúc phân cấp. (Milvus)
Weaviate cũng lưu ý HNSW có hiệu năng và Recall tốt nhưng có thể tốn RAM do Graph Index được giữ trong bộ nhớ. (Weaviate Documentation)
4.11 Tham số HNSW
Các tham số thường gặp:
M
Số kết nối giữa các Node trong đồ thị.
Cao hơn: Recall tốt hơn.
Đổi lại: Index lớn hơn và tốn RAM hơn.
efConstruction
Mức tìm kiếm khi xây Index.
Cao hơn: Index tốt hơn.
Xây Index chậm hơn.
efSearch
Mức tìm kiếm khi truy vấn.
Cao hơn: Recall tốt hơn.
Truy vấn chậm hơn.
Cần Benchmark trên dữ liệu thực tế, không nên dùng một cấu hình cho mọi hệ thống.
4.12 IVFFlat là gì?
IVFFlat chia Vector thành nhiều cụm.
Toàn bộ Vector
│
▼
┌─────┬─────┬─────┬─────┐
│ Cụm│ Cụm│ Cụm│ Cụm│
│ 1 │ 2 │ 3 │ 4 │
└─────┴─────┴─────┴─────┘
│
▼
Chỉ tìm trong các cụm gần Query
Ưu điểm:
Index đơn giản hơn.
Dung lượng thường thấp hơn HNSW.
Phù hợp dữ liệu tương đối ổn định.
Hạn chế:
Cần dữ liệu đủ lớn trước khi xây Index.
Chất lượng phụ thuộc số cụm.
Có thể Recall thấp nếu cấu hình chưa tốt.
Cần Rebuild trong một số tình huống dữ liệu thay đổi mạnh.
4.13 HNSW và IVFFlat
| Tiêu chí | HNSW | IVFFlat |
|---|---|---|
| Cấu trúc | Đồ thị | Phân cụm |
| Tốc độ tìm kiếm | Rất nhanh | Nhanh |
| Recall | Thường cao | Phụ thuộc cấu hình |
| RAM | Cao hơn | Thường thấp hơn |
| Xây Index | Có thể lâu | Thường nhanh hơn |
| Insert trực tuyến | Khá phù hợp | Cần theo dõi phân bố |
| Tuning | M, ef | Lists, Probes |
Không có Index tốt nhất cho mọi hệ thống.
4.14 Flat Index
Flat Index lưu Vector và thực hiện tìm kiếm gần như toàn bộ.
Phù hợp khi:
Dữ liệu nhỏ.
Cần Recall tuyệt đối.
Benchmark.
Kiểm chứng ANN Index.
Không yêu cầu độ trễ rất thấp.
Weaviate hỗ trợ nhiều kiểu Vector Index, bao gồm HNSW, Flat, Dynamic và HFresh trong các phiên bản hiện hành. (Weaviate Documentation)
4.15 Top K
Top K là số kết quả gần nhất cần lấy.
Ví dụ:
Top K = 5
Hệ thống trả năm Vector gần Query nhất.
Top K quá nhỏ:
Có thể bỏ sót tài liệu.
Top K quá lớn:
Tốn Token.
Làm Context loãng.
Tăng thời gian Reranking.
Tăng chi phí LLM.
4.16 Similarity Threshold
Threshold là ngưỡng tối thiểu để chấp nhận kết quả.
Ví dụ minh họa:
Similarity >= 0,75
Không nên dùng ngưỡng cố định cho mọi Embedding Model.
Ngưỡng phải được hiệu chỉnh theo:
Dữ liệu.
Ngôn ngữ.
Distance Metric.
Embedding Model.
Loại truy vấn.
Mức độ rủi ro.
4.17 Metadata Filtering
Ví dụ người dùng hỏi:
Tìm Runbook Oracle Data Guard 19c của hệ thống Billing.
Vector Search nên kết hợp Filter:
database = Oracle
version = 19c
system = Billing
document_type = runbook
Điều này giúp:
Giảm phạm vi tìm kiếm.
Tăng tính chính xác.
Bảo vệ quyền truy cập.
Ưu tiên đúng phiên bản.
4.18 Pre-filter và Post-filter
Pre-filter
Lọc Metadata trước rồi tìm Vector.
Ưu điểm:
Không trả dữ liệu ngoài phạm vi.
Tốt cho phân quyền.
Hạn chế:
Tập dữ liệu nhỏ sau Filter có thể ảnh hưởng chiến lược Index.
Post-filter
Tìm Vector trước rồi lọc.
Ưu điểm:
Dễ triển khai.
Hạn chế:
Có thể không đủ Top K sau khi lọc.
Có nguy cơ xử lý dư dữ liệu.
Weaviate triển khai Filtered Vector Search theo hướng Pre-filtering và tối ưu để không phải luôn chuyển sang Brute-force Search. (Weaviate Documentation)
4.19 Hybrid Search
Hybrid Search kết hợp:
Keyword Search
+
Vector Search
=
Hybrid Search
Phù hợp với:
Mã lỗi.
Tên máy chủ.
Mã thiết bị.
Số hiệu văn bản.
Từ đồng nghĩa.
Câu hỏi tự nhiên.
Ví dụ:
ORA-00600 ktcrcm Materialized View
Keyword Search giữ chính xác:
ORA-00600.
ktcrcm.
Vector Search tìm thêm:
Internal Error.
Read Consistency.
Materialized View Refresh.
Undo và Transaction.
4.20 Reranking
Vector Database thường trả danh sách ứng viên.
Reranker sắp xếp lại:
Vector Search
│
▼
Top 20
│
▼
Reranker
│
▼
Top 5 chính xác hơn
Reranking giúp:
Tăng độ liên quan.
Giảm tài liệu nhiễu.
Cải thiện câu trả lời RAG.
4.21 Sharding
Sharding chia dữ liệu thành nhiều phần.
Collection
│
├── Shard 1
├── Shard 2
├── Shard 3
└── Shard 4
Mục đích:
Mở rộng dung lượng.
Tăng Throughput.
Phân phối tải.
Triển khai nhiều Node.
Cần chọn Shard Key phù hợp:
Tenant.
Phòng ban.
Loại dữ liệu.
Vùng địa lý.
Hệ thống.
4.22 Replication
Replication tạo nhiều bản sao của Shard.
Shard 1
├── Replica A
├── Replica B
└── Replica C
Lợi ích:
Chịu lỗi Node.
Tăng khả năng đọc.
Hỗ trợ bảo trì.
Tăng tính sẵn sàng.
Qdrant cho phép Replicate Shard giữa các Node để tăng Read Throughput và chịu lỗi Node. (Qdrant)
4.23 Consistency
Trong hệ thống phân tán cần cân bằng:
Tính nhất quán.
Độ trễ.
Khả năng chịu lỗi.
Throughput.
Cần xác định:
Khi ghi Vector, bao nhiêu Replica phải xác nhận?
Khi đọc, có chấp nhận dữ liệu hơi cũ không?
Khi Node lỗi, hệ thống chuyển dịch vụ ra sao?
4.24 Backup và Snapshot
Backup cần bảo vệ:
Vector.
Payload.
Metadata.
Collection Schema.
Index Configuration.
Security Configuration.
Mapping tới tài liệu gốc.
Không chỉ Backup Vector Database.
Cũng cần Backup:
Tài liệu nguồn.
Embedding Model Version.
Chunking Configuration.
Pipeline Code.
Access Policy.
Weaviate hỗ trợ Backup tích hợp với các hệ thống Object Storage trên Cloud. (Weaviate Documentation)
4.25 Có cần Backup Index không?
Tùy sản phẩm.
Index có thể:
Được Backup trực tiếp.
Được khôi phục từ Snapshot.
Được Rebuild từ Vector.
Nếu Rebuild Index mất nhiều giờ hoặc nhiều ngày, cần đánh giá việc Backup Index.
4.26 High Availability
Một kiến trúc HA cơ bản:
Load Balancer
│
┌─────────┴─────────┐
▼ ▼
Vector DB Node 1 Vector DB Node 2
│ │
└─────────┬─────────┘
▼
Replicated Data
│
▼
Object Storage
Backup
Cần kiểm tra:
Quorum.
Replica Placement.
Node Failure.
Network Partition.
Backup Restore.
Rebalance.
Monitoring.
4.27 Multi-tenancy
Multi-tenancy phục vụ nhiều đơn vị hoặc khách hàng trên cùng nền tảng.
Có thể tách theo:
Collection riêng.
Shard riêng.
Tenant ID.
Metadata Filter.
Cluster riêng.
Không nên chỉ dựa vào Prompt để kiểm soát dữ liệu.
Phân quyền phải được thực thi tại:
API Gateway.
Application Layer.
Vector Database.
Metadata Filter.
Audit Layer.
4.28 Data Lifecycle
Vector phải được cập nhật khi:
Tài liệu thay đổi.
Tài liệu hết hiệu lực.
Embedding Model thay đổi.
Chunking Logic thay đổi.
Quyền truy cập thay đổi.
Tài liệu bị xóa.
Quy trình:
Tài liệu thay đổi
│
▼
Xóa Vector cũ
│
▼
Tạo Chunk mới
│
▼
Tạo Embedding mới
│
▼
Cập nhật Metadata
│
▼
Re-index nếu cần
4.29 Monitoring Vector Database
Các chỉ số nên theo dõi:
Hiệu năng
Query Latency.
p95/p99 Latency.
Queries per Second.
Insert Throughput.
Index Build Time.
Chất lượng
Recall@K.
Precision@K.
MRR.
nDCG.
No-result Rate.
Tài nguyên
CPU.
RAM.
Disk.
GPU nếu có.
Network.
Cache Hit Rate.
Vận hành
Shard Health.
Replica Status.
Backup Status.
Index Size.
Deleted Vector Ratio.
Queue Length.
4.30 Capacity Planning
Dung lượng phụ thuộc:
Số Vector
×
Số chiều
×
Số Byte mỗi phần tử
Ví dụ:
10 triệu Vector
× 768 chiều
× 4 Byte
≈ 30,7 GB
Đây mới chỉ là phần Vector thô, chưa tính:
Index.
Metadata.
Replica.
WAL/Log.
Backup.
Overhead hệ thống.
HNSW có thể cần lượng RAM đáng kể do Graph Index được lưu trong bộ nhớ. (Milvus)
4.31 Lựa chọn pgvector
Nên cân nhắc pgvector khi:
Doanh nghiệp đã dùng PostgreSQL.
Cần SQL và Transaction.
Dữ liệu Vector chưa quá lớn.
Muốn kết hợp dữ liệu nghiệp vụ và Vector.
Đội vận hành quen PostgreSQL.
Cần đơn giản hóa kiến trúc.
Ưu điểm:
Một hệ quản trị.
Backup và HA theo PostgreSQL.
SQL mạnh.
Kết hợp Join và Filter.
Hạn chế:
Scale Vector rất lớn có thể cần thiết kế kỹ.
ANN Query và Filter cần Benchmark.
Index có thể tốn RAM.
4.32 Lựa chọn Qdrant
Phù hợp khi:
Cần Vector Search chuyên dụng.
Metadata Filter mạnh.
API thân thiện.
RAG quy mô vừa và lớn.
Cần Distributed Deployment.
Qdrant tổ chức dữ liệu theo Collection, hỗ trợ Sharding, Replication và Filter Index. (Qdrant)
4.33 Lựa chọn Milvus
Phù hợp khi:
Dữ liệu Vector lớn.
Cần hệ thống phân tán.
Cần nhiều loại Index.
Có đội vận hành chuyên môn.
Milvus hỗ trợ nhiều họ Index, bao gồm HNSW, IVF, Product Quantization và một số lựa chọn tăng tốc bằng GPU. (Milvus)
4.34 Lựa chọn Weaviate
Phù hợp khi:
Muốn quản lý cả Object và Vector.
Cần Semantic Search và Hybrid Search.
Cần Module tích hợp AI.
Xây ứng dụng Knowledge Search.
Weaviate hỗ trợ lưu Object và Vector Embedding, đồng thời cung cấp nhiều loại Vector Index. (Weaviate Documentation)
4.35 Lựa chọn FAISS
FAISS là thư viện tìm kiếm Vector, không phải Database hoàn chỉnh.
Phù hợp khi:
Nghiên cứu.
Prototype.
Tìm kiếm cục bộ.
Pipeline Batch.
Không cần đầy đủ Transaction, HA và Metadata Management.
💼 5. ỨNG DỤNG THỰC TẾ VÀ CASE STUDY
5.1 📄 Office
Tìm chính sách nội bộ.
Tìm biên bản họp.
Nhóm tài liệu cùng chủ đề.
Trợ lý hỏi đáp.
Phát hiện tài liệu tương tự.
5.2 👨💻 Developer
Semantic Code Search.
Tìm Code tương tự.
Tìm Issue và Pull Request liên quan.
Trợ lý hiểu Codebase.
Gợi ý API.
5.3 🗄️ DBA
Tìm Runbook theo lỗi.
Tìm Incident tương tự.
Tìm tài liệu Oracle.
Nhóm Alert Log.
Tìm SQL có mẫu hoạt động tương tự.
Trợ lý RAG cho DBA.
Ví dụ
Query:
ORA-01555 xảy ra khi chạy báo cáo dài phải xử lý thế nào?
Vector Database có thể tìm:
Runbook ORA-01555.
Tài liệu Undo Retention.
Incident Query kéo dài.
Hướng dẫn AUM.
Checklist kiểm tra Undo.
5.4 🐧 System Administrator
Tìm lỗi OOM tương tự.
Tìm cấu hình Linux.
Nhóm System Log.
Tra cứu Runbook.
Tìm lệnh xử lý đã được phê duyệt.
5.5 ☁️ DevOps và Cloud
Tìm Kubernetes Incident.
Tìm Terraform Module.
Tìm Deployment tương tự.
RAG tài liệu Cloud.
Phân loại Alert.
Tìm Root Cause cũ.
5.6 📡 Viễn thông
Nhóm Alarm BTS.
Tìm Incident mạng tương tự.
Tra cứu SOP.
Tìm hướng dẫn thiết bị.
Phân loại khiếu nại.
Hỗ trợ kỹ sư hiện trường.
5.7 🏦 Ngân hàng
Tìm hợp đồng tương tự.
Tra cứu quy định.
Phân loại hồ sơ.
Phát hiện mẫu giao dịch gần giống.
Gợi ý sản phẩm.
Trợ lý nghiệp vụ.
5.8 🏢 Doanh nghiệp
Enterprise Search.
Knowledge Base.
RAG Chatbot.
Recommendation.
Customer 360.
Phân loại tài liệu.
Phát hiện nội dung trùng.
5.9 📖 Case Study: Vector Database cho trợ lý vận hành CNTT
Bài toán
Doanh nghiệp có:
20.000 tài liệu.
50.000 Incident.
Hàng triệu dòng Log.
Nhiều hệ thống khác nhau.
Tài liệu có nhiều mức bảo mật.
Kiến trúc đề xuất
┌────────────────────┐
│ Tài liệu nội bộ │
│ Incident / Runbook │
└─────────┬──────────┘
▼
Data Ingestion
│
▼
Chunking + Metadata
│
▼
Embedding Service
│
▼
┌──────────────────────────────┐
│ Vector Database Cluster │
│ │
│ Shard + Replica + HNSW │
│ Payload Index + Backup │
└─────────────┬────────────────┘
▼
Hybrid Retrieval
│
▼
Reranker
│
▼
LLM
│
▼
Chatbot / Portal / AI Agent
Metadata
Hệ thống.
Đơn vị.
Phiên bản.
Ngày hiệu lực.
Mức bảo mật.
Người phê duyệt.
Loại tài liệu.
Mã lỗi.
Khu vực.
Kiểm soát bảo mật
SSO.
RBAC.
Metadata Filter bắt buộc.
Audit Log.
Encryption.
DLP.
Không cho LLM truy cập dữ liệu ngoài quyền.
HA
Tối thiểu ba Node cho Production khi công nghệ và quy mô yêu cầu.
Shard Replication.
Load Balancer.
Backup Object Storage.
Kiểm thử Node Failure.
Kiểm thử Restore.
KPI
| KPI | Mục tiêu |
|---|---|
| Recall@5 | Tài liệu đúng nằm trong Top 5 |
| p95 Latency | Đáp ứng SLA |
| Availability | Theo yêu cầu dịch vụ |
| No-result Rate | Theo dõi truy vấn không có kết quả |
| Cost/query | Kiểm soát chi phí |
| Source Citation Rate | Câu trả lời có nguồn |
| User Acceptance | Kỹ sư chấp nhận kết quả |
⚠️ 6. LƯU Ý VÀ KINH NGHIỆM
6.1 Những hiểu lầm thường gặp
❌ Vector Database thay thế hoàn toàn Database truyền thống.
❌ HNSW luôn tốt nhất.
❌ Similarity Score cao nghĩa là nội dung đúng.
❌ Chỉ cần Vector Search, không cần Metadata.
❌ Dữ liệu Vector không cần Backup.
❌ Vector không chứa thông tin nhạy cảm.
❌ Tăng Top K luôn tăng chất lượng RAG.
6.2 Không chọn công nghệ theo quảng cáo
Cần Benchmark bằng:
Dữ liệu thật.
Số Vector dự kiến.
Dimension thật.
Filter thật.
Truy vấn thật.
Tải đồng thời.
Yêu cầu Recall.
6.3 Filter có thể thay đổi hiệu năng
Vector Search nhanh khi không Filter chưa chắc nhanh khi có:
Tenant.
Phiên bản.
Phòng ban.
Thời gian.
Mức bảo mật.
Qdrant khuyến nghị xây Payload Index cho các trường dùng thường xuyên trong Filter để tăng hiệu quả truy vấn. (Qdrant)
6.4 Không bỏ qua Exact Search
Exact Search hữu ích để:
Làm Ground Truth.
Đánh giá Recall.
Kiểm tra ANN Index.
Phục vụ tập dữ liệu nhỏ.
Đối chiếu kết quả.
6.5 Best Practice
Lưu Version của Embedding Model.
Lưu Chunking Version.
Dùng Metadata đầy đủ.
Dùng Hybrid Search.
Có Reranker cho tác vụ quan trọng.
Benchmark HNSW và IVF.
Theo dõi Recall và Latency.
Kiểm thử Restore.
Phân quyền tại tầng Database.
Có quy trình Re-embedding.
6.6 Backup phải có khả năng khôi phục
Không chỉ kiểm tra:
Backup thành công.
Phải kiểm tra:
Restore Collection.
Restore Metadata.
Restore Index.
Query sau Restore.
Quyền truy cập.
Tính toàn vẹn dữ liệu.
Thời gian RTO.
Mức mất dữ liệu RPO.
6.7 Data Drift
Dữ liệu mới có thể khác dữ liệu cũ.
Ví dụ:
Thêm ngôn ngữ mới.
Thêm loại tài liệu mới.
Thay đổi phong cách viết.
Thay đổi phiên bản sản phẩm.
Cần định kỳ đánh giá:
Recall.
Distribution.
Similarity Score.
No-result Rate.
Query Pattern.
6.8 Bảo mật
Vector Database phải được bảo vệ như Database nghiệp vụ.
Cần:
Network Segmentation.
TLS.
Authentication.
Authorization.
Encryption at Rest.
Audit Log.
Backup Encryption.
Secret Management.
Vulnerability Management.
Patch Management.
6.9 Tránh Vendor Lock-in
Nên chuẩn hóa:
Document ID.
Metadata Schema.
Embedding Version.
Export Format.
API Abstraction.
Backup Format.
Retrieval Evaluation.
Như vậy có thể chuyển đổi công nghệ khi cần.
📌 7. TÓM TẮT KIẾN THỨC
7.1 📖 Thuật ngữ cần nhớ
| Thuật ngữ | Ý nghĩa |
|---|---|
| Vector Database | Database lưu và tìm kiếm Vector |
| Collection | Nhóm các Vector |
| Point | Một bản ghi Vector |
| Payload | Dữ liệu mô tả đi kèm |
| Metadata | Thông tin mô tả và lọc |
| Exact Search | Tìm kiếm toàn bộ |
| ANN | Approximate Nearest Neighbor |
| HNSW | Index đồ thị nhiều tầng |
| IVFFlat | Index phân cụm |
| Recall | Tỷ lệ tìm được kết quả đúng |
| Top K | Số kết quả trả về |
| Threshold | Ngưỡng chấp nhận |
| Shard | Phần dữ liệu được chia |
| Replica | Bản sao dữ liệu |
| Hybrid Search | Keyword + Vector Search |
| Reranker | Sắp xếp lại kết quả |
| Snapshot | Ảnh chụp trạng thái dữ liệu |
| Multi-tenancy | Phục vụ nhiều Tenant |
7.2 📌 Tổng kết
Vector Database lưu và tìm Vector theo mức độ tương đồng.
Vector Database không thay thế hoàn toàn Relational Database.
Exact Search chính xác nhưng chậm khi dữ liệu lớn.
ANN nhanh hơn nhưng có thể giảm Recall.
HNSW nhanh và Recall cao nhưng thường tốn RAM.
IVFFlat chia Vector thành các cụm.
Metadata Filter rất quan trọng với RAG doanh nghiệp.
Hybrid Search phù hợp tài liệu kỹ thuật.
Production cần Sharding, Replication, Backup và Monitoring.
Công nghệ phải được Benchmark bằng dữ liệu thực tế.
7.3 🧠 Mindmap
🔍 VECTOR DATABASE
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
🔢 Vector 🏷️ Metadata 📏 Distance
│ │ │
└──────────────────┼──────────────────┘
▼
🗂️ Index
│
┌───────────────┼───────────────┐
▼ ▼ ▼
HNSW IVFFlat Flat
│
▼
🔎 Retrieval
│
┌──────────────┼──────────────┐
▼ ▼ ▼
Keyword Vector Reranker
│
▼
📚 RAG / Agent
7.4 🎨 Infographic
📚 TÀI LIỆU
│
▼
✂️ CHUNKING
│
▼
🧠 EMBEDDING
│
▼
🔢 VECTOR + METADATA
│
▼
🗄️ VECTOR DATABASE
│
┌──┼───────────────┐
▼ ▼ ▼
HNSW IVFFlat Filter
│
▼
🔎 TOP K KẾT QUẢ
│
▼
🎯 RERANKER
│
▼
🧠 LLM / RAG / AI AGENT
7.5 ⭐ Cheat Sheet
Định nghĩa
Vector Database là hệ thống lưu trữ, lập chỉ mục và tìm kiếm dữ liệu Vector.
Ba kiểu Search
Exact Search.
Approximate Search.
Hybrid Search.
Hai Index quan trọng
HNSW.
IVFFlat.
Năm thành phần Production
Vector Index.
Metadata Index.
Sharding.
Replication.
Backup.
Quy trình ghi nhớ
Data → Chunk → Embedding
→ Vector Database → Search
→ Rerank → LLM
🧪 8. BÀI TẬP THỰC HÀNH
🥉 Bài 1 – Cơ bản
Thiết kế một Collection lưu Runbook DBA gồm:
ID.
Vector.
Nội dung.
Mã lỗi.
Database Version.
Hệ thống.
Mức bảo mật.
Ngày cập nhật.
🥈 Bài 2 – Trung bình
Cài PostgreSQL và pgvector:
Tạo Extension.
Tạo Table chứa Vector.
Chèn 100 Vector mẫu.
Thực hiện Cosine Search.
Tạo HNSW Index.
So sánh Execution Plan.
🥇 Bài 3 – Nâng cao
Triển khai Qdrant hoặc Milvus:
Tạo Collection.
Cấu hình Vector Dimension.
Tạo Payload Index.
Nạp tài liệu.
Tìm kiếm với Filter.
Đo p95 Latency.
Đánh giá Recall@5.
🚀 Mini Project
Xây dựng:
Vector Database Production cho trợ lý DBA
Yêu cầu
100.000 Chunk tài liệu.
Hybrid Search.
Metadata Filter.
HNSW.
Reranking.
RBAC.
Backup.
Dashboard Monitoring.
Bộ 100 câu hỏi đánh giá.
Sản phẩm đầu ra
Sơ đồ kiến trúc.
Data Model.
Index Design.
Capacity Plan.
Backup Plan.
HA Plan.
Security Checklist.
Performance Report.
Recall Report.
Runbook vận hành.
❓ 9. CÂU HỎI ÔN TẬP VÀ ĐÁP ÁN
Câu 1. Vector Database là gì?
Đáp án: Hệ thống lưu trữ, lập chỉ mục và tìm kiếm Vector theo mức độ tương đồng.
Câu 2. Vector Database khác Relational Database thế nào?
Đáp án: Relational Database mạnh về dữ liệu có cấu trúc và điều kiện chính xác; Vector Database mạnh về tìm kiếm tương đồng và ngữ nghĩa.
Câu 3. Exact Search khác Approximate Search thế nào?
Đáp án: Exact Search kiểm tra toàn bộ Vector và có Recall cao; Approximate Search dùng Index để tăng tốc nhưng có thể bỏ sót kết quả.
Câu 4. HNSW là gì?
Đáp án: Index đồ thị nhiều tầng giúp tìm nhanh Vector gần nhất với Recall cao, nhưng thường cần nhiều RAM.
Câu 5. IVFFlat là gì?
Đáp án: Index chia Vector thành nhiều cụm và chỉ tìm trong một số cụm gần Query.
Câu 6. Payload hoặc Metadata dùng để làm gì?
Đáp án: Lọc dữ liệu, phân quyền, quản lý phiên bản, trích nguồn và mô tả Vector.
Câu 7. Hybrid Search là gì?
Đáp án: Kết hợp tìm kiếm từ khóa với Vector Search.
Câu 8. Vì sao cần Replication?
Đáp án: Để tăng khả năng chịu lỗi, tăng Read Throughput và duy trì dịch vụ khi Node hỏng.
Câu 9. Vì sao phải đánh giá Recall?
Đáp án: Vì Vector Search nhanh nhưng có thể không tìm được tài liệu đúng, làm giảm chất lượng RAG.
Câu 10. Khi nào nên chọn pgvector?
Đáp án: Khi đã sử dụng PostgreSQL, cần SQL, Transaction và quy mô Vector phù hợp với khả năng vận hành của PostgreSQL.
📚 10. TÀI LIỆU THAM KHẢO
10.1 🌐 pgvector
pgvector – GitHub chính thức:
https://github.com/pgvector/pgvector
Hỗ trợ Exact Search, HNSW, IVFFlat và nhiều Distance Metric. (GitHub)PostgreSQL – Thông báo pgvector 0.8.0:
https://www.postgresql.org/about/news/pgvector-080-released-2952/
Nội dung về cải tiến Filter và lựa chọn Execution Plan cho ANN Index. (PostgreSQL)
10.2 🌐 Qdrant
Qdrant Documentation:
https://qdrant.tech/documentation/Qdrant Collections:
https://qdrant.tech/documentation/manage-data/collections/
Giải thích Collection, Point, Vector, Payload và Shard. (Qdrant)Qdrant Indexing:
https://qdrant.tech/documentation/manage-data/indexing/
Hướng dẫn HNSW Index và Payload Index. (Qdrant)Qdrant Distributed Deployment:
https://qdrant.tech/documentation/scaling/distributed_deployment/
Hướng dẫn Sharding và Replication. (Qdrant)Qdrant – HNSW Fundamentals:
https://qdrant.tech/course/essentials/day-2/what-is-hnsw/
Giải thích các tham sốm,ef_constructvàhnsw_ef. (Qdrant)
10.3 🌐 Milvus
Milvus Documentation:
https://milvus.io/docs
Tài liệu cài đặt, sử dụng và triển khai Milvus. (Milvus)Milvus Overview:
https://milvus.io/docs/overview.md
Tổng quan kiến trúc và khả năng mở rộng. (Milvus)Milvus HNSW:
https://milvus.io/docs/hnsw.md
Giải thích HNSW, độ trễ, độ chính xác và Memory Overhead. (Milvus)Milvus Indexes:
https://milvus.io/docs/index.md
10.4 🌐 Weaviate
Weaviate Documentation:
https://docs.weaviate.io/weaviate
Tổng quan về lưu Object và Vector Embedding. (Weaviate Documentation)Weaviate Vector Index:
https://docs.weaviate.io/weaviate/concepts/vector-index
Giải thích HNSW và cơ chế tìm kiếm theo tầng. (Weaviate Documentation)Weaviate Index Configuration:
https://docs.weaviate.io/weaviate/config-refs/indexing/vector-index
Danh sách Vector Index được hỗ trợ. (Weaviate Documentation)Weaviate Filtering:
https://docs.weaviate.io/weaviate/concepts/filtering
Giải thích Pre-filtered Vector Search. (Weaviate Documentation)Weaviate Backups:
https://docs.weaviate.io/deploy/configuration/backups
Tài liệu Backup và Object Storage. (Weaviate Documentation)
10.5 💻 FAISS và công cụ mã nguồn mở
FAISS – GitHub:
https://github.com/facebookresearch/faissElasticsearch Dense Vector:
https://www.elastic.co/guide/en/elasticsearch/reference/current/dense-vector.htmlOpenSearch Vector Search:
https://opensearch.org/docs/latest/vector-search/Chroma:
https://docs.trychroma.com/
10.6 📄 Bài báo khoa học
Efficient and Robust Approximate Nearest Neighbor Search Using HNSW:
https://arxiv.org/abs/1603.09320Product Quantization for Nearest Neighbor Search:
https://hal.inria.fr/inria-00514462/documentBillion-scale Similarity Search with GPUs:
https://arxiv.org/abs/1702.08734Retrieval-Augmented Generation:
https://arxiv.org/abs/2005.11401
10.7 📘 Sách nên đọc
Hands-On Large Language Models – Jay Alammar và Maarten Grootendorst.
Designing Data-Intensive Applications – Martin Kleppmann.
Introduction to Information Retrieval – Christopher Manning, Prabhakar Raghavan và Hinrich Schütze.
Database Internals – Alex Petrov.
Natural Language Processing with Transformers – Lewis Tunstall, Leandro von Werra và Thomas Wolf.
10.8 🎥 Chủ đề video nên tìm học
Vector Database Explained.
HNSW Step by Step.
IVFFlat Explained.
pgvector Tutorial.
Qdrant RAG Tutorial.
Milvus Architecture.
Hybrid Search.
Vector Database Performance Tuning.
Backup and HA for Vector Databases.
Vector Database Security.
10.9 🛠️ Công cụ thực hành
PostgreSQL + pgvector.
Qdrant.
Milvus.
Weaviate.
FAISS.
Python.
Sentence Transformers.
LangChain hoặc LlamaIndex.
Prometheus và Grafana.
Docker hoặc Kubernetes.
10.10 ⭐ Lộ trình học tiếp
Embedding
│
▼
Vector Database
│
▼
Exact Search
│
▼
HNSW / IVF
│
▼
Metadata Filter
│
▼
Hybrid Search
│
▼
Reranking
│
▼
RAG
│
▼
Enterprise AI Agent
🚀 11. MODULE TIẾP THEO
🔗 MODULE M31 – RAG
Trong Module M31, bạn sẽ học:
RAG là gì.
Vì sao LLM cần RAG.
Quy trình Ingestion và Retrieval.
Chunking.
Embedding.
Vector Database.
Hybrid Search.
Reranking.
Citation.
RAG cơ bản và Advanced RAG.
Thiết kế RAG cho tài liệu doanh nghiệp.
Bảo mật, đánh giá và giám sát hệ thống RAG.
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty