Sản phẩm
AlloyDB tăng tốc tìm kiếm vector pgvector: Hiệu suất HNSW nhanh gấp 4,9 lần
(giờ Việt Nam)
Tóm tắt AI
Google Cloud tích hợp công cụ cột vào AlloyDB để tối ưu hóa chỉ mục HNSW, giúp tăng tốc độ truy vấn (QPS) cho pgvector lên tới 4,9 lần mà không cần thay đổi mã nguồn ứng dụng.
Bản dịch AI

AlloyDB là dịch vụ cơ sở dữ liệu tương thích với PostgreSQL, được quản lý toàn diện, xây dựng cho các khối lượng công việc doanh nghiệp đòi hỏi khắt khe nhất. Nó kết hợp những ưu điểm tốt nhất của PostgreSQL mã nguồn mở với công nghệ tiên tiến của Google, mang lại khả năng mở rộng quy mô lớn, tính sẵn sàng cao và các tính năng AI tích hợp sẵn. AlloyDB đóng vai trò là kho lưu trữ quan hệ hiệu năng cao, một backend thống nhất cho tìm kiếm vector và tìm kiếm toàn văn bản, đồng thời là công cụ phân tích nhanh hơn tới 100 lần so với PostgreSQL tiêu chuẩn.
Tìm kiếm vector là nền tảng của AI hiện đại và các ứng dụng RAG (Retrieval Augmented Generation). Đối với các nhà phát triển sử dụng AlloyDB và các cơ sở dữ liệu PostgreSQL khác, pgvector là một extension được sử dụng rộng rãi để lưu trữ, lập chỉ mục và truy vấn các vector embedding, còn HNSW (Hierarchical Navigable Small World) là một thuật toán dựa trên đồ thị hiệu quả cao, được thiết kế cho tìm kiếm láng giềng gần nhất xấp xỉ trên các cấu trúc đa tầng. Với tính năng HNSW được tăng tốc bởi columnar engine trong AlloyDB (hiện đang ở bản xem trước), bạn có thể đạt được số lượng truy vấn mỗi giây (QPS) cao hơn tới 4 lần cho tìm kiếm vector so với HNSW trên PostgreSQL tiêu chuẩn.
Các ứng dụng AI doanh nghiệp luôn phải đối mặt với sự đánh đổi giữa tốc độ và độ chính xác. Khi tìm kiếm qua hàng triệu hoặc hàng tỷ vector, việc tối đa hóa QPS mà không làm giảm chất lượng tìm kiếm (recall) là yếu tố then chốt để mở rộng quy mô khối lượng công việc thực tế. Extension pgvector của PostgreSQL cung cấp HNSW như một trong những chỉ mục có thể tăng tốc các tìm kiếm ANN (Approximate Nearest Neighbor). Hãy cùng đi sâu vào cách AlloyDB giải quyết bài toán đánh đổi giữa tốc độ và độ chính xác.
Lưu ý: Mặc dù bài viết này tập trung vào hiệu năng của HNSW, nhưng cần lưu ý rằng HNSW chỉ là một phần trong bộ công cụ vector tiên tiến của AlloyDB. AlloyDB còn có ScaNN—một chỉ mục tiên tiến được hỗ trợ bởi hơn 14 năm nghiên cứu từ Google Research—giúp bạn linh hoạt lựa chọn chỉ mục hoàn hảo cho khối lượng công việc của mình. Ngoài ra, đối với các trường hợp sử dụng đòi hỏi độ chính xác tuyệt đối, tìm kiếm k-nearest neighbor (KNN) tiêu chuẩn luôn sẵn sàng để đạt độ chính xác (recall) 100%. Hãy xem Hướng dẫn chọn chỉ mục vector của chúng tôi để biết cách so sánh chúng.
Trước hết, columnar engine của AlloyDB là gì?
Columnar engine của AlloyDB là một bộ nhớ đệm (cache) nội tại, lưu trữ tự động các dữ liệu được truy vấn thường xuyên dưới định dạng cột chuyên dụng, tối ưu hóa cho việc quét dữ liệu. Nó cho phép AlloyDB xử lý các truy vấn phân tích nặng nhanh hơn tới 100 lần so với PostgreSQL tiêu chuẩn. Ngoài ra, nó còn tăng tốc các tìm kiếm ANN bằng cách lưu trữ chỉ mục trong bộ nhớ, sử dụng bố cục bộ nhớ vector hóa để duyệt nhanh và bỏ qua các chi phí quản lý bộ đệm (buffer manager) của PostgreSQL tiêu chuẩn.
Trực quan hóa hiệu năng
Để hiểu các đặc điểm hiệu năng thực tế của HNSW được tăng tốc bởi columnar engine, chúng tôi đã vẽ các đường cong QPS so với Recall tiêu chuẩn cho tập dữ liệu GloVe 100 Angular bằng cách tìm kiếm hơn 1 triệu bản ghi với giới hạn là 100.
Chạy tập lệnh benchmark này sẽ tạo ra hình ảnh trực quan sau:

Lưu ý: Các phép đo này được thực hiện trên máy AlloyDB C4A 16vCPU. Do tính ngẫu nhiên vốn có trong quá trình xây dựng đồ thị HNSW, kết quả có thể thay đổi đôi chút giữa các lần chạy.
Dữ liệu cho thấy hai lợi ích mang tính chuyển đổi:
Điều quan trọng cần lưu ý là đường cơ sở (đường màu xanh dương) đã đại diện cho chỉ mục được lưu hoàn toàn trong bộ nhớ đệm chia sẻ (shared buffer cache) của PostgreSQL. Những cải thiện về hiệu năng được hiển thị ở đây không phải là kết quả của việc di chuyển dữ liệu từ ổ đĩa sang RAM, mà là kết quả của một kiến trúc bộ nhớ hiệu quả hơn.
Cách thức hoạt động: HNSW được tăng tốc bởi columnar engine
Trong các kiến trúc PostgreSQL tiêu chuẩn, các thao tác chỉ mục sử dụng bộ nhớ đệm chia sẻ (shared buffer cache). Ngay cả khi dữ liệu nằm hoàn toàn trong bộ nhớ, cơ sở dữ liệu vẫn phải chịu chi phí đáng kể từ trình quản lý bộ đệm, vốn phải xử lý các thao tác như ghim và bỏ ghim trang (page pinning/unpinning), cấp phát khóa, tra cứu bảng bộ đệm và quản lý theo thuật toán Least Recently Used (LRU).
Columnar engine của AlloyDB là một bộ nhớ đệm nội tại, lưu trữ dữ liệu dưới định dạng chuyên dụng, tối ưu hóa cho việc quét dữ liệu.
Với bản phát hành này, AlloyDB có thể sử dụng HNSW được tăng tốc bởi columnar engine để:
Tại sao điều này quan trọng
Đối với các ứng dụng quy mô doanh nghiệp, đây không chỉ là vấn đề về cơ sở dữ liệu nhanh hơn—mà là về chi phí và chất lượng:
Giảm chi phí hạ tầng: Đạt được hiệu năng tương đương với tài nguyên tính toán thấp hơn đáng kể.
Độ chính xác AI tốt hơn: Đạt được recall và chất lượng cao hơn ở tốc độ mà trước đây chỉ có thể đạt được với kết quả tìm kiếm chất lượng "nháp" (tốc độ cao, độ chính xác thấp hơn).
Không yêu cầu thay đổi ứng dụng: Vì tính năng này được tích hợp sẵn trong AlloyDB, bạn có thể đạt được những cải thiện này bằng cách sử dụng cùng cú pháp SQL pgvector tiêu chuẩn.
Lưu ý rằng columnar engine có sử dụng bộ nhớ, nhưng nó được nén ở mức cao và quản lý một cách tỉ mỉ. Vì engine lưu trữ dữ liệu vector dưới định dạng cột hiệu quả, dung lượng bộ nhớ chiếm dụng là tối thiểu so với những cải thiện hiệu năng to lớn—khiến đây trở thành một sự đánh đổi rất có lợi cho các khối lượng công việc doanh nghiệp.
Hướng dẫn bắt đầu nhanh
Để dùng thử HNSW được tăng tốc bởi columnar engine trong AlloyDB, hãy làm theo các bước sau:
1. Bật columnar engine và bộ nhớ đệm chỉ mục
Đảm bảo rằng cả hai cờ google_columnar_engine.enabled và google_columnar_engine.enable_index_caching đều được đặt thành on cho instance AlloyDB của bạn.
2. Thêm chỉ mục HNSW vào columnar engine
Sau khi chỉ mục HNSW của bạn được tạo thông qua pgvector, hãy thực thi lệnh SQL sau để lưu nó vào columnar engine:
3. Tài nguyên bổ sung
Bạn mới làm quen với AlloyDB? Hãy khám phá AlloyDB với bản dùng thử miễn phí 30 ngày.
Google Colab Notebook: Một tập lệnh Python toàn diện để nạp tập dữ liệu GloVe, tạo chỉ mục và vẽ các đường cong Recall so với QPS.
HNSW có phải là lựa chọn chỉ mục vector phù hợp cho trường hợp sử dụng của bạn không? Hãy xem hướng dẫn 'Chọn chỉ mục vector trong AlloyDB AI' của chúng tôi.
Bài viết được AI dịch và tổng hợp tự động từ Google Cloud: Databases. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.