Cơ sở dữ liệu vector

Vector Database

Vector database (cơ sở dữ liệu vector) là cơ sở dữ liệu được xây để lưu embedding, tức các vector số thể hiện ý nghĩa, và tìm rất nhanh những vector giống nhất với một câu hỏi. Đây là lớp lưu trữ và tìm kiếm đứng sau phần lớn hệ thống tìm kiếm ngữ nghĩa và RAG.

Cơ sở dữ liệu thông thường giỏi tra cứu chính xác: tìm đơn hàng có mã này, hoặc mọi sản phẩm trong danh mục này. Vector database trả lời một câu hỏi khác: những mục nào đã lưu có ý nghĩa gần nhất với mục này. Nó làm được việc đó trên hàng triệu vector trong vài mili giây nhờ kỹ thuật tìm láng giềng gần đúng (approximate nearest neighbour).

Vector database hoạt động thế nào?

  • Nội dung của bạn được chia thành các đoạn nhỏ và mỗi đoạn được chuyển thành một embedding.
  • Cơ sở dữ liệu lưu mỗi vector kèm metadata, như URL nguồn, ngày hoặc ngôn ngữ.
  • Câu hỏi được chuyển thành vector bằng cùng mô hình, và cơ sở dữ liệu trả về các vector gần nhất, thường có lọc theo metadata.

Vector database và RAG

Trong một hệ thống RAG, vector database là bước truy xuất. Khi người dùng đặt câu hỏi, hệ thống tìm các đoạn liên quan nhất trong vector database và đưa chúng vào context window của mô hình, để câu trả lời dựa trên nội dung của bạn thay vì trí nhớ của mô hình.

Các lựa chọn vector database phổ biến

Các vector database chuyên dụng gồm Pinecone, Weaviate, Qdrant, Milvus và Chroma. Nhiều team chọn cách thêm tìm kiếm vector vào cơ sở dữ liệu đang dùng, như PostgreSQL với extension pgvector. Với một team marketing muốn xây trợ lý tra cứu kiến thức nội bộ, cách dùng cơ sở dữ liệu có sẵn thường là đủ để bắt đầu.

Cần lưu ý điều gì?

Chất lượng truy xuất phụ thuộc vào cách chia nhỏ nội dung, mô hình embedding được dùng, và việc thiết lập bộ lọc metadata. Vector database luôn trả về kết quả gần nhất, kể cả khi không có gì thật sự liên quan, nên hệ thống tốt sẽ đặt ngưỡng liên quan và nói rõ khi không tìm được câu trả lời.

Câu hỏi thường gặp

Vector database là gì?+

Vector database là cơ sở dữ liệu lưu embedding, tức dạng số thể hiện ý nghĩa, và tìm nhanh những embedding giống nhất với một câu hỏi. Nó là nền tảng của tìm kiếm ngữ nghĩa và RAG.

Làm RAG có bắt buộc phải dùng vector database không?+

Bạn cần một dạng tìm kiếm vector. Đó có thể là vector database chuyên dụng hoặc cơ sở dữ liệu đang dùng có hỗ trợ vector, như PostgreSQL với pgvector.

Vector database khác cơ sở dữ liệu thông thường thế nào?+

Cơ sở dữ liệu thông thường tìm kết quả khớp chính xác theo trường như mã hay danh mục. Vector database tìm những mục có ý nghĩa giống nhau, kể cả khi không chung chữ nào.