Nội dung này phục vụ mục đích giáo dục. Ví dụ chỉ dùng dữ liệu giả; không đưa dữ liệu định danh cá nhân (PII), bí mật hoặc tài liệu khác không gian khách hàng vào hệ thống thử nghiệm.

Trả lời ngắn: Vector Database là hệ thống quản lý các bản ghi có vector và tìm những bản ghi gần với vector truy vấn. Nó hữu ích khi từ khóa không đủ diễn đạt ý nghĩa, nhưng không tự biết dữ liệu đúng, còn mới hay người hỏi có quyền đọc; các cổng đó vẫn phải được thiết kế riêng.

Đọc xong, bạn sẽ hiểu:

  • Một bản ghi vector gồm những gì và hai pipeline ghi–tìm chạy ra sao.
  • Exact search khác ANN ở tốc độ, độ bao phủ và rủi ro bỏ sót thế nào.
  • Khi nào chỉ cần database sẵn có, khi nào mới cân nhắc hệ thống chuyên dụng.

1. Vector Database là gì, và nó không phải “bộ não AI”

a. Từ khóa đúng chữ chưa chắc đúng ý

Giả sử kho hỗ trợ có câu: “Điện thoại không nhận mã xác thực”. Khách lại hỏi: “OTP mãi không về”. Tìm từ khóa đơn giản có thể hụt vì hai câu dùng chữ khác nhau.

Một vector là dãy số biểu diễn đặc trưng của chữ, ảnh hoặc dữ liệu khác. Embedding là vector do mô hình tạo ra. Bài #10 sẽ giải thích kỹ; ở đây vector chỉ là đầu vào tìm kiếm.

Vector Database quản lý các bản ghi (record) đó và trả về hàng xóm gần. Một bản ghi tối thiểu thường cần:

id
vector
content_or_pointer
metadata: tenant, type, source, created_at, status, permission...

Metadata là thuộc tính như tenant (không gian khách hàng), loại, ngày và quyền. Nó quyết định bản ghi nào đủ điều kiện được tìm.

b. Database, index và model là ba việc khác nhau

Mô hình embedding tạo vector. Chỉ mục (index) giúp giảm công tìm kiếm. Cơ sở dữ liệu quản lý ID, metadata, thêm–sửa–xóa và truy vấn.

Faiss là thư viện tìm điểm tương tự và gom cụm trên vector dày; công cụ tìm vector chưa chắc là cơ sở dữ liệu quản lý bản ghi và vòng đời. Faiss — official documentation

PostgreSQL có thể thêm pgvector; hệ khác dùng cơ sở dữ liệu chuyên dụng. Nếu chỉ tìm mã đơn hàng, bảng và chỉ mục thường đã đủ.

c. Gần không đồng nghĩa đúng

Similarity là độ giống, còn distance là khoảng cách, đều theo công thức và mô hình cụ thể. Chúng không phải xác suất câu trả lời đúng.

“Áo khoác nhẹ đi mưa” có thể tìm sản phẩm gần nghĩa. Size, tồn kho và giá hiện tại vẫn phải đến từ dữ liệu có cấu trúc. Bản ghi tenant B dù gần nhất cũng không được trả cho tenant A.

2. Một truy vấn vector chạy qua những bước nào?

Hình 1 — Database quản lý record và tìm ứng viên gần; nó không tự kiểm chứng câu trả lời.

a. Pipeline ghi dữ liệu

Một luồng nhập liệu thực dụng có thể là:

  1. Lấy nội dung từ nguồn đã cho phép.
  2. Chia tài liệu thành đoạn có ID ổn định.
  3. Tạo embedding cho từng đoạn.
  4. Lưu ID, vector, nội dung hoặc con trỏ và metadata.
  5. Đưa vector vào index phù hợp.

ID ổn định giúp cập nhật hoặc xóa đúng bản ghi; chỉ đẩy vector mới sẽ để bản cũ tiếp tục được tìm.

Pinecone cho phép bản ghi có ID, vector và metadata dùng khi lọc. Pinecone — Filter by metadata

b. Pipeline truy vấn

Khi người dùng hỏi “OTP mãi không về”, hệ thống:

  1. tạo vector truy vấn bằng cùng phiên bản mô hình phù hợp;
  2. khóa tenant, quyền, loại, trạng thái và khoảng thời gian cần thiết;
  3. tìm các vector gần trong tập đủ điều kiện;
  4. trả về top-k, tức k ứng viên xếp đầu;
  5. lấy nội dung gốc và nguồn gốc để bước sau kiểm tra.

Nếu k = 5, cơ sở dữ liệu trả năm ứng viên, không phải năm “sự thật”. Tìm từ khóa, xếp hạng lại và kiểm nguồn thuộc bài Hybrid RAG #11.

c. Ba thước đo thường gặp

pgvector hỗ trợ L2, tích vô hướng và khoảng cách cosine. pgvector — README Không có thước đo luôn tốt nhất; phải thử trên dữ liệu và bộ đánh giá.

Ví dụ 2D: query [0,8; 0,6], D1 [0,9; 0,7]. Khoảng cách L2 là:

sqrt((0,9 - 0,8)^2 + (0,7 - 0,6)^2) = 0,141

Số nhỏ hơn nghĩa là gần hơn theo L2, không nói D1 “đúng 85,9%” hay tự cấp quyền đọc.

3. Exact, ANN, metadata filter và các giới hạn

Hình 2 — ANN giảm vùng tìm kiếm để đổi lấy tốc độ, nên phải đo phần hàng xóm đúng được tìm lại.

a. Exact search là baseline

Tìm hàng xóm chính xác (exact search) so truy vấn với toàn bộ bản ghi đủ điều kiện. Với tập nhỏ, đây là mốc đối chiếu dễ kiểm tra.

pgvector mặc định tìm chính xác và có hai chỉ mục gần đúng HNSW, IVFFlat. pgvector — README

b. ANN đổi độ bao phủ lấy công tìm kiếm

Approximate nearest neighbor (ANN) là tìm hàng xóm gần đúng qua chỉ mục thay vì so mọi bản ghi. Nó có thể giảm công tìm kiếm nhưng bỏ lỡ kết quả chính xác.

Recall là tỷ lệ hàng xóm trong mốc chính xác được ANN tìm lại. Nếu ANN trả đúng tám trong exact top-10, recall@10 là 8/10 = 80%; đây không phải độ đúng của câu trả lời.

Không thể chọn HNSW hay IVFFlat chỉ từ tên. Chưa đo tập dữ liệu, bộ lọc và tải thì phải nhận là chưa đủ bằng chứng.

c. Filter không phải đồ trang trí

Bộ lọc metadata giới hạn bản ghi bằng tenant, loại, ngày, trạng thái hoặc thuộc tính khác. Trong case hỗ trợ, truy vấn chỉ được tìm:

tenant = A
type = guide
status = active
permission contains support_agent

Đừng lấy top-k toàn kho rồi mới bỏ bản ghi trái quyền: kết quả có thể thiếu và dữ liệu sai tenant đã đi quá xa.

pgvector lưu ý chỉ mục gần đúng kết hợp bộ lọc có thể trả thiếu; iterative scan ở bản 0.8+ có thể quét thêm. pgvector — Iterative scans

Ba giới hạn cần nhớ:

  • Vector kế thừa thiếu sót và thiên lệch của model embedding.
  • Nội dung mới/sửa/xóa không tự đồng bộ nếu pipeline ingest hỏng.
  • Tìm vector không thay quyền truy cập, nguồn gốc, độ mới hay kiểm chứng sự thật.

4. Checklist chọn giải pháp trước khi dựng database riêng

Hình 3 — Bắt đầu từ nhu cầu truy vấn và baseline; đừng dựng thêm hệ thống chỉ vì tên gọi đang hot.

a. Đi theo thứ tự

  1. Chốt nhu cầu: tìm gần bằng ý nghĩa, tìm ảnh giống hay chỉ tra chính xác?
  2. Chốt cấu trúc bản ghi: ID, nội dung/con trỏ, nguồn, tenant, quyền, phiên bản, trạng thái.
  3. Dựng bộ đánh giá: truy vấn mẫu, bản ghi liên quan và bản ghi phải bị cấm.
  4. Chạy mốc đối chiếu: từ khóa và exact search trên tập nhỏ.
  5. Đo: recall@k, độ trễ, lỗi lọc, độ mới, tỷ lệ không tìm thấy.
  6. Chọn nền: không vector, database sẵn có + vector extension, hoặc hệ chuyên dụng.
  7. Test vòng đời: update, delete, re-embed, backup và phục hồi.

b. Khi chưa cần database riêng

Đứng ngoài nếu chỉ tra ID/trường, tập nhỏ và exact đạt yêu cầu, hoặc chưa có bộ đánh giá. Nếu đã dùng PostgreSQL, extension có thể cho mốc đối chiếu trước khi thêm hệ mới.

Hệ chuyên dụng đáng cân nhắc khi tải, cô lập, lập chỉ mục, lọc hoặc vận hành vượt nền hiện tại. Phải chứng minh bằng kiểm thử; số lượng vector riêng lẻ chưa đủ kết luận.

Dừng nếu bản ghi thiếu tenant/quyền, vector đã xóa vẫn được tìm, hoặc ANN chưa so với mốc exact. Thêm máy không sửa được lỗi kiểm soát.

5. Bài tập 15 phút: tìm top-3 trong tám record giả

Dùng spreadsheet miễn phí, không cần mở tài khoản dịch vụ. Chỉ dùng số giả:

  • 3 phút nhập query [0,8; 0,6] và tám record.
  • 4 phút tính SQRT((x-0,8)^2+(y-0,6)^2).
  • 3 phút lọc tenant=A, type=guide.
  • 3 phút sắp distance tăng dần và lấy top-3.
  • 2 phút bỏ filter để quan sát record sai phạm vi chen lên.

Mẫu đối chiếu đã điền

ID Vector Tenant/type Distance Sau filter
D1 [0,9; 0,7] A/guide 0,141 #1
D2 [0,7; 0,5] A/faq 0,141 loại sai type
D3 [0,3; 0,9] A/guide 0,583 ngoài top-3
D4 [0,75; 0,55] B/guide 0,071 loại sai tenant
D5 [0,1; 0,2] A/guide 0,806 ngoài top-3
D6 [0,8; 0,4] A/guide 0,200 #2
D7 [0,6; 0,7] A/guide 0,224 #3
D8 [0,85; 0,65] A/policy 0,071 loại sai type

Kết quả exact sau lọc là D1 → D6 → D7. D4 và D8 gần hơn nhưng không hợp phạm vi. Bạn cần giải thích được vì sao bộ lọc đứng trước thứ hạng.

6. Tổng kết và bài học tiếp theo

a. Năm ý chính

  • Vector Database quản lý bản ghi vector và tìm hàng xóm gần; không phải bộ não.
  • Bản ghi cần ID, vector, nội dung/con trỏ và metadata đủ kiểm soát.
  • Exact search là mốc đối chiếu; ANN giảm công tìm kiếm nhưng có thể mất recall.
  • Similarity và top-k tạo ứng viên, không chứng minh sự thật hoặc quyền đọc.
  • Chỉ thêm database chuyên dụng sau khi nhu cầu, eval và vận hành chứng minh cần.

b. Câu hỏi tự kiểm tra

  • Vector, index và database làm ba việc khác nhau thế nào?
  • Exact search và ANN đánh đổi điều gì?
  • Vì sao bản ghi gần nhất vẫn có thể bị loại?
  • Khi nào chưa nên dựng vector database riêng?

c. Gợi ý đáp án

Xem gợi ý câu 1

Mô hình tạo vector; chỉ mục tăng tốc tìm; database quản lý bản ghi, metadata và vòng đời. → xem mục 1.

Xem gợi ý câu 2

Exact so đủ bản ghi; ANN giảm công nhưng có thể bỏ sót, nên đo recall với mốc đối chiếu. → xem mục 3.

Xem gợi ý câu 3

Bản ghi có thể sai tenant, loại, quyền, trạng thái hoặc thời gian dù distance nhỏ. → xem mục 3.

Xem gợi ý câu 4

Khi exact đủ dùng, tập nhỏ, chưa có bộ đánh giá hoặc nền hiện tại đạt yêu cầu. → xem mục 4.

d. Thuật ngữ cần nhớ

Thuật ngữ Giải thích ngắn
Vector Database Hệ thống quản lý bản ghi vector và tìm hàng xóm gần.
Vector Dãy số biểu diễn đặc trưng.
Embedding Vector do model embedding tạo.
Metadata Thuộc tính mô tả và giới hạn bản ghi.
Similarity Mức giống theo thước đo chọn trước.
Exact search So truy vấn với toàn bộ bản ghi hợp lệ.
ANN Tìm hàng xóm gần đúng qua chỉ mục.
Index Chỉ mục tăng tốc tìm kiếm.
Top-k K ứng viên xếp đầu.
Recall Tỷ lệ hàng xóm trong mốc được tìm lại.

e. Nguồn tham khảo

f. Học tiếp gì?

Bài trước là Memory Architecture cho hệ thống AI #8, nơi ta thiết kế cổng ghi–đọc và vòng đời bản ghi. Bài tiếp theo là Embedding là gì trong AI? #10, nơi ta mở chiếc “hộp đen” đã biến nội dung thành vector như thế nào.

Nhắc lại: Nội dung chỉ phục vụ mục đích giáo dục, không phải lời khuyên đầu tư. Không dùng similarity để vượt quyền, không đưa PII/bí mật vào demo và không chọn hạ tầng trước khi có mốc kiểm chứng.