Trả lời nhanh: Vector database (cơ sở dữ liệu vector) là hệ thống lưu các vector số biểu diễn ý nghĩa của văn bản, hình ảnh, âm thanh và tìm nhanh những vector gần nhau nhất. Nhờ chỉ mục ANN như HNSW, IVF, nó trả về nội dung tương tự rất nhanh, kể cả với hàng triệu bản ghi.
Điểm chính
- Vector database tìm theo độ gần về nghĩa, không theo từ khoá trùng khớp. Nó là “bộ nhớ tra cứu” phía sau tìm kiếm ngữ nghĩa, gợi ý sản phẩm và hệ thống RAG.
- Tìm chính xác trên hàng triệu vector rất tốn tính toán, nên hệ thống dùng ANN: chấp nhận bỏ sót một ít để nhanh hơn nhiều. Chất lượng đo bằng recall.
- HNSW (đồ thị nhiều tầng) nhanh, recall cao nhưng tốn RAM; IVF (chia cụm) xây nhanh, nhẹ hơn; PQ nén vector để tiết kiệm bộ nhớ, đổi lại giảm độ chính xác.
- Đã dùng PostgreSQL và dữ liệu vừa phải thì tiện ích như pgvector có thể đủ.
- Chi phí lớn nằm ở RAM, việc embedding lại khi đổi mô hình và công vận hành. Vector chứa dữ liệu cá nhân vẫn chịu Luật 91/2025/QH15.
Mục lục
- Vector database là gì?
- Vector database hoạt động như thế nào?
- Đo “gần nhau” bằng thước đo nào?
- ANN là gì, vì sao không tìm chính xác tuyệt đối?
- HNSW hoạt động ra sao?
- IVF, PQ và các loại chỉ mục khác khác nhau thế nào?
- Vector database khác cơ sở dữ liệu quan hệ thế nào?
- Vector database và RAG liên quan thế nào?
- Lọc metadata và tìm kiếm lai cần lưu ý gì?
- Chọn vector database theo những tiêu chí nào?
- Chi phí vận hành vector database gồm những gì?
- Bảo mật và tuân thủ khi dùng vector database
- Triển khai vector database cho doanh nghiệp: 6 bước
- Câu hỏi thường gặp
Vector database là gì?
Vector database là loại cơ sở dữ liệu chuyên lưu, đánh chỉ mục và truy vấn vector, tức các dãy số thực cùng độ dài. Mỗi vector đại diện cho một đối tượng: một đoạn văn bản, một bức ảnh, một sản phẩm. Đối tượng giống nhau về nghĩa thì vector nằm gần nhau. Việc chính của vector database là trả lời: “Trong hàng triệu vector đã lưu, đâu là k vector gần với truy vấn này nhất?”
Mỗi bản ghi thường gồm ba phần: mã định danh (ID) để biết vector thuộc tài liệu nào; vector, ví dụ 768 hoặc 1.024 con số do mô hình AI tạo ra; và metadata (siêu dữ liệu) như tiêu đề, ngày tạo, phòng ban, quyền xem, dùng để lọc và hiển thị kết quả.
Ví dụ minh hoạ. Khách gõ “giày đi mưa cho bé” trên một trang bán hàng. Tìm theo từ khoá có thể bỏ sót sản phẩm tên “ủng cao su trẻ em” vì không trùng chữ nào. Với vector database, câu hỏi và mô tả sản phẩm đều thành vector, và chiếc ủng được trả về vì hai vector gần nhau về nghĩa.
Vector đến từ đâu?
Vector do mô hình embedding tạo ra: mô hình học máy chuyển dữ liệu thành dãy số sao cho nội dung giống nhau thì nằm gần nhau. Vector database không tự hiểu ngôn ngữ, nó chỉ lưu và so sánh con số. Vì vậy chất lượng tìm kiếm phụ thuộc trước hết vào mô hình embedding, sau đó mới tới chỉ mục. Cách văn bản tiếng Việt được biến thành vector được giải thích trong bài embedding là gì và cách đo độ tương đồng.
Thư viện tìm kiếm vector khác vector database thế nào?
Thư viện như Faiss (do nhóm Facebook AI Research, nay là Meta, công bố tháng 3/2017) chỉ lo việc tìm vector gần nhất trong bộ nhớ. Vector database bổ sung phần còn lại: thêm, sửa, xoá bản ghi, lưu bền, sao lưu, lọc metadata, phân quyền và mở rộng. Thư viện là động cơ, vector database là chiếc xe hoàn chỉnh.
Vector database hoạt động như thế nào?
Vector database tham gia hai luồng. Khi nạp dữ liệu, tài liệu được làm sạch, chia đoạn (chunking), đưa qua mô hình embedding, rồi lưu vector cùng metadata và xây chỉ mục ANN. Khi truy vấn, câu hỏi được đổi thành vector bằng đúng mô hình đã dùng lúc nạp, hệ thống duyệt chỉ mục, áp bộ lọc (quyền xem, ngày, loại tài liệu) và trả về top-k kết quả kèm điểm tương đồng cho ứng dụng hoặc cho mô hình ngôn ngữ.
Đo “gần nhau” bằng thước đo nào?
| Thước đo | Ý nghĩa dễ hiểu | Khi nào dùng |
|---|---|---|
| Cosine (độ tương đồng cosin) | So góc giữa hai vector, bỏ qua độ dài | Văn bản; mặc định của nhiều mô hình embedding |
| Tích vô hướng (dot product) | Nhân từng cặp số rồi cộng lại, tính cả độ lớn | Mô hình huấn luyện theo tích vô hướng; với vector đã chuẩn hoá độ dài 1, xếp hạng giống cosine |
| Khoảng cách Euclid (L2) | Khoảng cách đường thẳng giữa hai điểm | Ảnh, đặc trưng số; nhiều chỉ mục kinh điển tối ưu cho L2 |
Ngoài ra còn có L1, Hamming và Jaccard cho vector nhị phân; tài liệu pgvector liệt kê đủ sáu toán tử này.
Lưu ý: dùng thước đo mà nhà cung cấp mô hình embedding khuyến nghị, giữ nguyên lúc xây chỉ mục và lúc truy vấn. Chỉ mục xây theo L2 nhưng truy vấn bằng cosine vẫn trả kết quả, chỉ là kém hơn, nên rất khó phát hiện.
ANN là gì, vì sao không tìm chính xác tuyệt đối?
Cách đơn giản nhất là so truy vấn với từng vector đã lưu, gọi là tìm k láng giềng gần nhất chính xác (exact kNN) hay vét cạn (brute force). Kết quả đúng tuyệt đối nhưng chậm khi dữ liệu lớn. Ví dụ minh hoạ: 1 triệu vector, mỗi vector 1.024 chiều, thì một truy vấn vét cạn cần khoảng 1 tỷ phép nhân.
ANN (Approximate Nearest Neighbor, tìm láng giềng gần đúng) chỉ xem xét phần nhỏ dữ liệu có khả năng chứa đáp án. Đổi lại, thỉnh thoảng nó bỏ sót vài vector đúng.
Recall: chỉ số quan trọng nhất khi đánh giá ANN
Recall@k cho biết trong k kết quả đúng (tìm bằng vét cạn), chỉ mục ANN tìm được bao nhiêu. Recall@10 bằng 0,95 nghĩa là trung bình tìm được 9,5 trên 10 láng giềng thật. Khi so sánh, đừng chỉ hỏi “nhanh bao nhiêu” mà hỏi “nhanh bao nhiêu ở mức recall nào“. Recall chỉ mục chỉ đo việc tìm đúng vector gần nhất; vector đó có phải đáp án đúng hay không còn tuỳ mô hình embedding và cách chia đoạn, nên cần đo riêng.
HNSW hoạt động ra sao?
HNSW (Hierarchical Navigable Small World, đồ thị thế giới nhỏ điều hướng được phân tầng) là thuật toán chỉ mục được rất nhiều vector database và tiện ích vector hỗ trợ. Yu. A. Malkov và D. A. Yashunin công bố lần đầu trên arXiv ngày 30/03/2016, sau đó đăng trên tạp chí IEEE Transactions on Pattern Analysis and Machine Intelligence (tập 42, số 4, năm 2020).
Giống tìm một con phố bằng bản đồ quốc gia, rồi bản đồ tỉnh, rồi bản đồ quận, HNSW làm như sau:
- Mọi vector nằm ở tầng 0, nối với một số láng giềng gần nó.
- Một phần nhỏ vector được chọn lên tầng trên; theo bài báo gốc, tầng cao nhất của mỗi phần tử được chọn ngẫu nhiên với xác suất giảm theo hàm mũ. Càng lên cao càng ít điểm, mỗi bước nhảy càng xa.
- Khi tìm, thuật toán bắt đầu từ điểm vào ở tầng cao nhất, liên tục đi sang láng giềng gần truy vấn hơn, hết gần hơn được thì xuống tầng dưới, tới tầng 0 thì trả về top-k.
Các tác giả cho biết cấu trúc này giúp độ phức tạp tìm kiếm tăng theo hàm logarit: dữ liệu tăng nhiều lần, thời gian tìm chỉ tăng thêm một ít.
Ba tham số cần biết
| Tham số | Ý nghĩa | Tăng lên thì sao |
|---|---|---|
| M | Số láng giềng mỗi điểm được nối | Recall tốt hơn với dữ liệu phức tạp, tốn RAM hơn. Tài liệu hnswlib nêu khoảng hợp lý 2–100, bộ nhớ đồ thị khoảng M × 8–10 byte mỗi phần tử |
| ef_construction | Độ rộng danh sách ứng viên khi xây | Chỉ mục tốt hơn nhưng xây lâu hơn; quá một ngưỡng thì không cải thiện thêm |
| ef_search | Độ rộng danh sách ứng viên khi truy vấn | Chính xác hơn nhưng chậm hơn; không được nhỏ hơn k |
pgvector đặt mặc định M = 16, ef_construction = 64, hnsw.ef_search = 40. Đó là điểm khởi đầu, không phải giá trị tối ưu. Hãy đo recall trên dữ liệu của bạn và chỉnh ef_search trước, vì tham số này đổi được lúc chạy mà không phải xây lại chỉ mục.
Mạnh và yếu: HNSW không cần huấn luyện trước, thêm vector mới dễ. Tài liệu pgvector ghi rõ HNSW cho hiệu năng truy vấn tốt hơn IVFFlat nhưng xây chậm hơn và dùng nhiều bộ nhớ hơn. Dữ liệu xoá, sửa liên tục thì nên đo lại recall định kỳ.
IVF, PQ và các loại chỉ mục khác khác nhau thế nào?
IVF: chia không gian thành các cụm
IVF (Inverted File Index, chỉ mục tệp đảo) phân cụm các vector thành nhiều ô, mỗi vector thuộc ô có tâm gần nó nhất. Khi truy vấn, hệ thống chỉ mở vài ô gần nhất. Hai tham số chính là số ô (nlist, pgvector gọi là lists) và số ô được mở (nprobe, probes). Tài liệu pgvector gợi ý khởi đầu lists bằng số dòng chia 1.000 nếu dưới 1 triệu dòng, căn bậc hai số dòng nếu trên 1 triệu; probes bằng căn bậc hai của lists. IVF cần dữ liệu mẫu để phân cụm, nên phải xây chỉ mục sau khi đã có dữ liệu; khi dữ liệu mới khác hẳn dữ liệu cũ, nên xây lại.
PQ: nén vector để tiết kiệm bộ nhớ
PQ (Product Quantization, lượng tử hoá tích) được trình bày trong bài báo của Hervé Jégou, Matthijs Douze và Cordelia Schmid trên IEEE Transactions on Pattern Analysis and Machine Intelligence năm 2011 (tập 33). Mỗi vector được cắt thành nhiều đoạn, mỗi đoạn thay bằng mã của “mẫu gần nhất” trong bộ mẫu học trước. Vector 4.096 byte có thể còn vài chục byte. Khoảng cách trên vector nén chỉ là xấp xỉ, nên thường kết hợp IVF với PQ (IVF-PQ) rồi tính lại khoảng cách chính xác cho nhóm ứng viên cuối (rerank).
Chỉ mục trên ổ SSD
Khi dữ liệu quá lớn để giữ trong RAM, có thể đặt phần lớn chỉ mục trên SSD. Bài báo DiskANN trình bày tại NeurIPS 2019 cho biết có thể đánh chỉ mục và tìm kiếm 1 tỷ điểm trên một máy trạm 64 GB RAM với ổ SSD giá rẻ.
| Chỉ mục | Bộ nhớ | Recall | Hợp khi |
|---|---|---|---|
| Flat (vét cạn) | Chỉ vector gốc | Tuyệt đối | Dữ liệu nhỏ; làm “đáp án chuẩn” để đo recall |
| IVF-Flat | Vector gốc + phần nhỏ | Khá đến cao, tuỳ nprobe | Cần xây nhanh, RAM hạn chế, dữ liệu ít đổi |
| HNSW | Vector gốc + đồ thị | Cao | Cần độ trễ thấp, recall cao, dữ liệu vừa RAM |
| IVF-PQ | Rất thấp | Trung bình, tăng nhờ rerank | Hàng trăm triệu vector trở lên, RAM chặt |
| Trên đĩa (kiểu DiskANN) | RAM thấp, cần SSD nhanh | Cao | Dữ liệu rất lớn, muốn giảm chi phí RAM |
Vector database khác cơ sở dữ liệu quan hệ thế nào?
Cơ sở dữ liệu quan hệ lưu bảng hàng, cột, truy vấn bằng SQL và trả lời câu hỏi chính xác như “đơn hàng 123 đang ở trạng thái nào”. Vector database trả lời câu hỏi “cái gì giống cái này nhất”. Nếu cần ôn lại DBMS, SQL, NoSQL, xem bài cơ sở dữ liệu là gì.
| Tiêu chí | Cơ sở dữ liệu quan hệ | Vector database |
|---|---|---|
| Kiểu truy vấn | Khớp chính xác, lọc, tổng hợp, nối bảng | Tìm k vector gần nhất |
| Kết quả | Tất định, đúng hoặc sai | Xếp hạng theo độ tương đồng, có thể gần đúng |
| Chỉ mục điển hình | B-tree, hash | HNSW, IVF, PQ |
| Giao dịch, ràng buộc | Mạnh (ACID, khoá ngoại) | Tuỳ sản phẩm, thường đơn giản hơn |
| Dữ liệu phù hợp | Đơn hàng, kế toán, khách hàng | Văn bản, ảnh, âm thanh đã thành embedding |
Hai loại không thay thế nhau; ranh giới đang mờ dần khi nhiều hệ quản trị cơ sở dữ liệu bổ sung kiểu vector.
Bốn nhóm giải pháp
Tên dưới đây chỉ là ví dụ để nhận diện nhóm, không phải xếp hạng hay khuyến nghị.
- Tiện ích cho cơ sở dữ liệu sẵn có, ví dụ pgvector cho PostgreSQL: dùng chung SQL, sao lưu, phân quyền đã quen. Theo tài liệu pgvector, kiểu vector được đánh chỉ mục tới 2.000 chiều, kiểu halfvec (nửa độ chính xác) tới 4.000 chiều.
- Công cụ tìm kiếm có thêm vector, ví dụ OpenSearch, Elasticsearch: hợp khi đã có tìm kiếm toàn văn và muốn thêm tìm kiếm lai.
- Vector database chuyên dụng mã nguồn mở, ví dụ Milvus, Qdrant, Weaviate, Chroma: nhiều tính năng chuyên sâu, tự vận hành trên hạ tầng của bạn.
- Dịch vụ đám mây được quản lý: nhà cung cấp lo vận hành; cần xem kỹ nơi đặt máy chủ nếu có dữ liệu cá nhân.
Vector database và RAG liên quan thế nào?
RAG (Retrieval-Augmented Generation) cho mô hình ngôn ngữ lớn tra cứu tài liệu doanh nghiệp trước khi trả lời. Vector database là nơi lưu các đoạn tài liệu đã embedding và đảm nhận bước “truy xuất”. Toàn bộ quy trình đã có trong bài RAG là gì và cách triển khai cho doanh nghiệp; ở đây chỉ nêu những gì vector database quyết định:
- Có lấy đủ đoạn đúng không: chỉ mục bỏ sót đoạn chứa đáp án thì mô hình ngôn ngữ lớn thiếu thông tin, dễ dẫn tới hiện tượng AI “bịa” câu trả lời.
- Lọc quyền: bộ lọc metadata chặn nhân viên xem tài liệu ngoài quyền hạn.
- Tính mới: quy định mới phải được nạp kịp thời, văn bản hết hiệu lực phải được xoá hoặc đánh dấu.
Vector database cũng thường là “trí nhớ dài hạn” của AI agent, lưu hội thoại và kết quả công việc trước để tra lại. Ứng dụng khác: tìm kiếm ngữ nghĩa, gợi ý sản phẩm, tìm ảnh tương tự, phát hiện bản ghi trùng lặp hoặc giao dịch bất thường.
Lọc metadata và tìm kiếm lai cần lưu ý gì?
Lọc trước hay lọc sau
Truy vấn thật thường có điều kiện: “đoạn gần nhất, nhưng chỉ trong tài liệu năm 2026 của chi nhánh Hà Nội”. Lọc sau (tìm top-k rồi bỏ kết quả không thoả) thì nhanh, nhưng với điều kiện hẹp có thể còn rất ít kết quả. Lọc trước hoặc lọc trong khi duyệt cho kết quả đủ hơn nhưng khó tối ưu tốc độ. Ví dụ, tài liệu pgvector nói rõ với chỉ mục gần đúng, bộ lọc được áp sau khi quét chỉ mục; từ phiên bản 0.8.0 có chế độ quét lặp (iterative index scan) để quét tiếp tới khi đủ kết quả. Hãy thử đúng các bộ lọc hẹp nhất mà ứng dụng sẽ dùng.
Tìm kiếm lai và đặc thù tiếng Việt
Tìm kiếm vector hiểu nghĩa tốt nhưng có thể yếu với chuỗi chính xác như mã sản phẩm, số hiệu văn bản “91/2025/QH15”, tên riêng ít gặp. Tìm kiếm từ khoá (ví dụ BM25) làm tốt việc này. Tìm kiếm lai (hybrid search) chạy cả hai rồi trộn thứ hạng, thường bằng Reciprocal Rank Fusion, sau đó có thể thêm mô hình xếp hạng lại (reranker).
Với tiếng Việt, cần chú ý: người dùng gõ cả có dấu, không dấu, viết tắt (“hđ”, “bhxh”); từ ghép có thể bị tách sai nếu bộ phân tích từ khoá không hỗ trợ tiếng Việt; tài liệu scan phải qua OCR, và lỗi nhận dạng chữ đi thẳng vào vector. Hãy kiểm thử bằng câu hỏi thật, đừng chỉ dựa vào bảng xếp hạng mô hình bằng tiếng Anh.
Chọn vector database theo những tiêu chí nào?
| Nhóm tiêu chí | Câu hỏi cần trả lời |
|---|---|
| Quy mô | Bao nhiêu vector hôm nay và sau 2 năm? Bao nhiêu chiều? Thêm mới bao nhiêu mỗi ngày? |
| Hiệu năng | Độ trễ mục tiêu (p95, p99) và số truy vấn mỗi giây ở mức recall bạn cần? |
| Chỉ mục, nén | Có HNSW, IVF, PQ, nửa độ chính xác, nhị phân, chỉ mục trên đĩa? Chỉnh tham số được không? |
| Lọc, tìm kiếm lai | Lọc hoạt động thế nào với điều kiện hẹp? Có tìm kiếm từ khoá, rerank sẵn không? |
| Cập nhật | Xoá, sửa có làm giảm chất lượng chỉ mục? Dữ liệu mới bao lâu thì tìm thấy? |
| Đa người thuê | Tách dữ liệu từng khách hàng, phòng ban bằng collection riêng, phân vùng hay bộ lọc? |
| Bảo mật, vị trí dữ liệu | Mã hoá, phân quyền chi tiết, nhật ký? Máy chủ đặt ở đâu, triển khai tại Việt Nam được không? |
| Vận hành, giấy phép | Sao lưu, nâng cấp, giám sát; đội đã có kỹ năng chưa? Giấy phép có ràng buộc khi dùng thương mại? |
Cách ra quyết định đơn giản:
- Đã có PostgreSQL hoặc công cụ tìm kiếm, chỉ mục vừa RAM một máy: thử tiện ích vector sẵn có trước, ít thành phần mới, ít rủi ro.
- Dữ liệu lớn, truy vấn nhiều, cần tính năng vector chuyên sâu: cân nhắc vector database chuyên dụng.
- Đội nhỏ, không muốn vận hành: cân nhắc dịch vụ được quản lý, kiểm tra vị trí dữ liệu và chi phí khi lưu lượng tăng.
Dù chọn hướng nào, hãy chạy thử với dữ liệu thật; benchmark của nhà cung cấp thường đo trên dữ liệu và cấu hình khác hệ thống của bạn.
Chi phí vận hành vector database gồm những gì?
Giá thay đổi theo nhà cung cấp và thời điểm, nên ở đây chỉ liệt kê các khoản cần ước tính:
- Tạo embedding: phí API hoặc GPU, khi nạp và mỗi truy vấn.
- RAM và lưu trữ: thường là khoản lớn nhất với HNSW, vì chỉ mục chạy nhanh nhất khi nằm trọn trong RAM.
- Nhân bản và sao lưu: mỗi bản sao để chịu lỗi nhân chi phí hạ tầng lên tương ứng.
- Embedding lại khi đổi mô hình: vector của mô hình A không dùng chung được với mô hình B, phải embedding lại toàn kho và xây lại chỉ mục.
- Nhân sự đo recall, chỉnh tham số, xử lý sự cố.
Ước tính bộ nhớ: 1 triệu vector 1.024 chiều
Ví dụ minh hoạ, tính theo công thức trong tài liệu Faiss và hnswlib; chưa gồm metadata, văn bản gốc.
| Cách lưu | Byte mỗi vector | 1 triệu vector | Đánh đổi |
|---|---|---|---|
| Số thực 32 bit, không nén | 1.024 × 4 = 4.096 | khoảng 4,1 GB | Chính xác nhất |
| Nửa độ chính xác (16 bit) | 2.048 | khoảng 2 GB | Thường giảm recall ít, cần kiểm thử |
| Thêm đồ thị HNSW, M = 16 | cộng khoảng 128–160 | cộng khoảng 0,13–0,16 GB | Tốn thêm RAM để tìm nhanh |
| Nhị phân (1 bit mỗi chiều) | 128 | khoảng 128 MB | Giảm recall đáng kể, nên rerank |
| IVF-PQ, 64 mã con 8 bit | 64 + 8 = 72 | khoảng 72 MB | Recall thấp hơn, cần rerank |
Hai đòn bẩy chi phí lớn nhất là số chiều và cách nén. Nhớ nhân kết quả với số bản sao để ra ngân sách thật.
Bảo mật và tuân thủ khi dùng vector database
Vector không phải dữ liệu “đã ẩn danh”. Danh sách OWASP Top 10 cho ứng dụng LLM năm 2025 dành riêng mục LLM08:2025 Vector and Embedding Weaknesses, nêu các rủi ro: truy cập trái phép và rò rỉ dữ liệu do phân quyền sai; rò rỉ chéo giữa người dùng trong kho vector dùng chung; tấn công đảo ngược embedding để khôi phục phần đáng kể dữ liệu gốc; đầu độc dữ liệu để điều khiển câu trả lời. Biện pháp khuyến nghị: phân quyền chi tiết, tách dữ liệu theo nhóm người dùng, xác thực nguồn trước khi nạp, ghi nhật ký truy xuất.
Pháp lý tại Việt Nam
Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15 được Quốc hội thông qua ngày 26/06/2025, hiệu lực từ 01/01/2026. Embedding của hồ sơ khách hàng, email, ghi âm cuộc gọi vẫn là dữ liệu cá nhân được xử lý. Hai điểm thực tế:
- Theo Điều 20 của Luật, dùng nền tảng đặt ngoài lãnh thổ Việt Nam để xử lý dữ liệu cá nhân thu thập tại Việt Nam được coi là chuyển dữ liệu xuyên biên giới. Bên chuyển phải lập hồ sơ đánh giá tác động, gửi cơ quan chuyên trách trong 60 ngày kể từ ngày bắt đầu chuyển (có một số trường hợp miễn). Điều này áp dụng khi dùng dịch vụ vector đặt máy chủ ở nước ngoài.
- Khi người dùng yêu cầu xoá dữ liệu, phải xoá được cả vector và metadata, không chỉ bản ghi gốc. Hãy thiết kế ID để truy ngược từ một người tới mọi vector của họ.
Khung phân loại dữ liệu, gắn nhãn nhạy cảm và phân công trách nhiệm được trình bày trong bài quản trị dữ liệu (data governance).
Triển khai vector database cho doanh nghiệp: 6 bước
- Chọn bài toán hẹp: ví dụ tra cứu quy trình nội bộ cho bộ phận chăm sóc khách hàng; ghi rõ thế nào là “trả lời đúng”.
- Làm sạch dữ liệu: bỏ bản cũ, bản trùng; gắn metadata về quyền xem, ngày hiệu lực, nguồn.
- Tạo bộ kiểm thử: 100–200 câu hỏi thật bằng tiếng Việt kèm đoạn tài liệu đúng, làm thước đo cho mọi quyết định.
- Chọn mô hình embedding: thử 2–3 mô hình, đo tỷ lệ tìm đúng đoạn trong top-k.
- Chọn nơi lưu và chỉ mục: bắt đầu đơn giản, so recall với kết quả vét cạn; thêm lọc quyền, tìm kiếm lai, rerank khi bộ kiểm thử cho thấy cần.
- Vận hành: theo dõi độ trễ, recall, câu hỏi không có kết quả; lên lịch nạp dữ liệu mới và xoá dữ liệu hết hạn.
Lỗi thường gặp
- Đổi mô hình embedding nhưng không embedding lại dữ liệu cũ: vector hai mô hình ở hai “không gian” khác nhau.
- Chỉ có tìm kiếm vector, bỏ qua từ khoá, nên tìm mã hợp đồng, số hiệu văn bản không ra.
- Lọc quyền ở giao diện thay vì trong truy vấn, khiến dữ liệu nhạy cảm đã bị gửi cho mô hình trước khi bị ẩn.
Câu hỏi thường gặp
ANN có làm kết quả sai không?
ANN có thể bỏ sót một phần nhỏ láng giềng thật. Với tham số phù hợp, recall có thể rất cao. Hãy đo bằng cách so với kết quả vét cạn trên một mẫu câu hỏi.
Vector database có hiểu tiếng Việt không?
Vector database chỉ so sánh con số; khả năng hiểu tiếng Việt nằm ở mô hình embedding. Hãy chọn mô hình hỗ trợ tiếng Việt và kiểm thử bằng câu hỏi thật, cả có dấu lẫn không dấu.
Lưu embedding thay vì văn bản gốc có an toàn hơn không?
Không nên coi là an toàn. OWASP xếp tấn công đảo ngược embedding vào nhóm rủi ro của ứng dụng LLM. Vector chứa dữ liệu cá nhân cần được bảo vệ như dữ liệu cá nhân.
Đổi mô hình embedding thì phải làm gì?
Embedding lại toàn bộ dữ liệu và xây lại chỉ mục. Cách an toàn là dựng kho mới song song, kiểm thử bằng bộ câu hỏi chuẩn rồi mới chuyển lưu lượng sang.