Timescale ra mắt pg_vectorsearch cho chỉ mục vector hiệu suất cao trên PostgreSQL
Timescale đã phát hành một tiện ích mở rộng alpha mang tên pg_vectorsearch, giới thiệu chỉ mục PRISM giúp tìm kiếm láng giềng gần nhất xấp xỉ (approximate nearest neighbor) nhanh hơn trong PostgreSQL.
Được dịch tự động từ bản gốc tiếng Anh.
Timescale đã phát hành pg_vectorsearch, một tiện ích mở rộng PostgreSQL mới được thiết kế để đẩy nhanh tốc độ tìm kiếm láng giềng gần nhất xấp xỉ cho dữ liệu vector. Được công bố vào ngày 14 tháng 10 năm 2026, công cụ ở giai đoạn alpha này giới thiệu chỉ mục PRISM, nhằm vượt trội so với các giải pháp hiện có như HNSW và IVFFlat cả về tốc độ lẫn hiệu quả bộ nhớ. Bản phát hành hướng tới các nhà phát triển xây dựng hệ thống sinh tạo tăng cường truy xuất (retrieval-augmented generation), những người cần cơ sở hạ tầng vector có khả năng mở rộng ngay trong cơ sở dữ liệu quan hệ hiện tại của họ.
Điều gì đã xảy ra
Trọng tâm của bản phát hành này là chỉ mục PRISM, viết tắt của Partitioned Routing Index for Similarity Matching (Chỉ mục định tuyến phân vùng cho khớp tương đồng). Nó được triển khai bằng ngôn ngữ C để đảm bảo tích hợp chặt chẽ với các thành phần nội bộ của PostgreSQL. Theo thông báo, PRISM nhanh hơn đáng kể so với các chỉ mục IVFFlat và HNSW của pgvector trong cả việc truy vấn và xây dựng chỉ mục. Trong các bài kiểm chuẩn với tập dữ liệu gồm 100 triệu vector, PRISM đạt được mức recall (độ bao phủ) tương đương với chỉ mục dựa trên đồ thị HNSW nhưng chỉ sử dụng một phần tư bộ nhớ và cung cấp thời gian truy vấn nhanh hơn.
Tiện ích mở rộng này hỗ trợ cập nhật động, cho phép chèn, cập nhật và xóa mà không yêu cầu phải xây dựng lại toàn bộ chỉ mục. Tuy nhiên, các nhà bảo trì tuyên bố rõ ràng rằng phần mềm hiện đang ở trạng thái alpha và dành cho mục đích thử nghiệm chứ không phải để sử dụng trong môi trường sản xuất. Việc nâng cấp giữa các bản tiền phát hành (prerelease) có thể không thực hiện được, do đó người dùng nên lên kế hoạch xóa và tạo lại tiện ích mở rộng cùng các chỉ mục của nó khi dự án phát triển. Các vấn đề đã biết được theo dõi trong changelog.
Cách thức hoạt động
PRISM sử dụng cây trung tâm phân cấp (hierarchical centroid tree) để phân chia các vector thành các cụm, dựa vào bộ đệm cache của PostgreSQL để giữ cấu trúc định tuyến này trong bộ nhớ. Cách tiếp cận này cho phép hệ thống nhanh chóng xác định các cụm liên quan mà không cần quét toàn bộ tập dữ liệu. Sau khi xác định được các cụm gần nhất, hệ thống sẽ quét các danh sách đăng tin (posting lists) để tạo ra các vector ứng viên. Những danh sách này được tối ưu hóa cho tính toán khoảng cách SIMD, tận dụng các lệnh AVX2, AVX512 và NEON để đẩy nhanh tính toán trên phần cứng tương thích.
Một đặc điểm kỹ thuật chính là việc sử dụng lượng tử hóa RaBitQ. Phương pháp này mã hóa các vector với các biên độ lỗi lý thuyết, cho phép quy trình tìm kiếm hai giai đoạn. Giai đoạn đầu tiên ước tính khoảng cách và sử dụng các biên độ lỗi để loại trừ các vector không thể là láng giềng gần nhất. Bước lọc này giảm đáng kể số lượng ứng viên cần được xếp hạng lại dựa trên các vector độ chính xác đầy đủ được lưu trữ trong heap của bảng. Bước cuối cùng trả về k láng giềng gần nhất sau quá trình lọc và xếp hạng lại hiệu quả này.
Chi tiết chính
- Loại chỉ mục: PRISM (Partitioned Routing Index for Similarity Matching), thuộc kiểu IVF với định tuyến phân cấp.
- Lượng tử hóa: Sử dụng lượng tử hóa RaBitQ với các biên độ lỗi lý thuyết để lọc tìm kiếm hai giai đoạn hiệu quả.
- Tăng tốc phần cứng: Tính toán khoảng cách được tối ưu hóa cho các lệnh SIMD bao gồm AVX2, AVX512 và NEON.
- Tính tương thích: Có thể lập chỉ mục trực tiếp cho các cột
vectorvàhalfveccủa pgvector hiện có, hoặc sử dụng các kiểu nativevec32vàvec16. - Bảo trì: Hỗ trợ chèn, cập nhật và xóa động, với việc tách danh sách đăng tin được quản lý qua thủ tục
prism_rebalance. - Trạng thái: Phát hành Alpha dành cho thử nghiệm; nâng cấp giữa các bản tiền phát hành có thể yêu cầu xóa và tạo lại chỉ mục.
Tại sao điều này quan trọng
Đối với các kỹ sư xây dựng ứng dụng AI, hiệu suất tìm kiếm vector thường trở thành nút thắt cổ chai khi tập dữ liệu phát triển. Các chỉ mục dựa trên đồ thị truyền thống như HNSW có thể tiêu tốn lượng bộ nhớ đáng kể, làm tăng chi phí cơ sở hạ tầng. Bằng cách chứng minh rằng PRISM có thể xử lý 100 triệu vector với một phần nhỏ bộ nhớ so với yêu cầu của HNSW, tiện ích mở rộng này cung cấp một con đường để mở rộng quy mô hiệu quả về chi phí hơn. Nó cho phép các nhóm giữ dữ liệu vector song song với dữ liệu giao dịch trong PostgreSQL, đơn giản hóa kiến trúc và giảm nhu cầu về các dịch vụ cơ sở dữ liệu vector riêng biệt.
Tính tương thích với các bảng pgvector hiện có đặc biệt quan trọng cho việc di chuyển. Nhà phát triển không cần viết lại schema hay logic ứng dụng để thử nghiệm chỉ mục mới. Họ có thể cài đặt pg_vectorsearch cùng với pgvector và xây dựng chỉ mục PRISM trên các cột hiện có. Điều này hạ thấp rào cản gia nhập để đánh giá xem lợi ích hiệu suất có biện minh cho độ phức tạp vận hành của việc áp dụng phương pháp lập chỉ mục mới hay không, ngay cả ở giai đoạn alpha sớm.
Bạn có thể làm gì
- Cài đặt PostgreSQL 18 trở lên cùng với trình biên dịch GNU C11 như GCC 11+ hoặc Clang 14+ để chuẩn bị môi trường.
- Xây dựng tiện ích mở rộng từ mã nguồn bằng hệ thống build Meson, đảm bảo bạn có các header phát triển PostgreSQL cần thiết.
- Thử nghiệm tiện ích mở rộng trên các tập dữ liệu phi sản xuất bằng cách tạo chỉ mục PRISM trên các cột
vectorhoặchalfvechiện có. - Thực nghiệm với tham số
prism.nprobeđể điều chỉnh sự đánh đổi giữa tốc độ truy vấn và độ chính xác recall cho khối lượng công việc cụ thể của bạn. - Theo dõi changelog để biết các vấn đề đã biết và sẵn sàng xóa/tạo lại chỉ mục khi thử nghiệm các phiên bản tiền phát hành mới.
- Đánh giá thủ tục
prism_rebalanceđể duy trì hiệu suất chỉ mục trong các thao tác chèn và cập nhật động.



