Vector search và index ANN

Chủ đề Dành cho thành viên

Bài toán

Search ngữ nghĩa, gợi ý và RAG quy về tìm các vector (embedding vài trăm tới vài nghìn chiều) gần một vector query. Vector không có thứ tự tự nhiên, nên B-tree hay inverted index không dùng được; ở quy mô lớn phải dùng index xấp xỉ (ANN: HNSW, IVF, cây K-means) và chấp nhận recall dưới 100%. Khi đưa vào production, các nguồn trong wiki gặp ba bài toán lặp lại:

  • Đặt index ở đâu: một vector DB riêng phải đồng bộ với DB chính; nhúng vào DB chính thì index giành RAM và phải khớp cơ chế bền vững, chia nhỏ, cô lập sẵn có.
  • Bộ nhớ: vector 1.536 chiều f32 khoảng 6 KB; hàng triệu vector làm RAM thành nút thắt, nên lượng tử hoá (f16, 1 bit) cộng rerank là chuẩn.
  • Query có filter (tenant, ngôn ngữ, quyền): filter cắt đồ thị thành đảo rời hoặc bắt dựng bitset trên mọi tài liệu; chọn lọc trước hay sau tìm vector là một quyết định của planner.

Trang này giữ phần hạ tầng của index vector. Search văn bản (inverted index, cụm Elasticsearch) ở Hạ tầng tìm kiếm; chất lượng embedding và ranking bằng ML nằm ngoài phạm vi.

Bạn đã dùng hết 3 bài đọc thử miễn phí

Đây là phần mở đầu của Vector search và index ANN. Thành viên đọc được toàn bộ 46 bài tổng hợp theo chủ đề và 141 dòng thời gian công ty. Các bài tóm tắt vẫn đọc tự do.

  • Đọc không giới hạn mọi bài tổng hợp và dòng thời gian
  • Danh sách đọc cá nhân hoá theo trình độ và mục tiêu
  • Cộng đồng Discord cho thành viên (sắp mở)

Gói 6 tháng giảm ~16%, gói 12 tháng giảm ~25%. Trả bằng VietQR hoặc thẻ.