GenDB-V gây tranh cãi: AI tối ưu benchmark đến mức vô nghĩa

Công nghệ11 tháng 11, 2026·5 phút đọc

GenDB-V tuyên bố nhanh hơn Umbra và DuckDB từ 22 đến 61 lần nhờ AI tự sinh engine cơ sở dữ liệu, nhưng chuyên gia Thomas Neumann chỉ ra phần lớn tốc độ đến từ việc tính trước dữ liệu và mã hóa cứng kiến thức về bộ sinh dữ liệu TPC-H — những thủ thuật không thể dùng trong hệ thống thật.

GenDB-V gây tranh cãi: AI tối ưu benchmark đến mức vô nghĩa
Ảnh minh hoạ do AI tạo

Thomas Neumann vừa công bố một bài phân tích gay gắt về GenDB-V, hệ cơ sở dữ liệu do AI tự sinh và được kiểm chứng hình thức (formally verified) — hệ thống đang gây chú ý với tuyên bố tăng tốc từ 22 đến 61 lần so với Umbra và DuckDB. Câu hỏi ông đặt ra: liệu con số đó có thật sự phản ánh năng lực xử lý truy vấn, hay chỉ là một dạng làm ảo thuật với benchmark?

Bài toán đạo hàm (overfitting) benchmark đang lan rộng

Neumann từng viết rằng việc đánh giá hiệu năng cơ sở dữ liệu đang khủng hoảng, vì các tác tử AI (AI agent) bắt đầu đạo hàm quá mức vào từng benchmark bằng những thủ thuật đáng ngờ, đẩy thời gian thực thi về gần bằng không. Điều này từng xảy ra với TPC-D và khiến bộ benchmark này mất giá trị. TPC-H cố gắng chống lại bằng các quy định, nhưng phần lớn người công bố kết quả TPC-H không chính thức đơn giản là bỏ qua quy định đó.

Theo ông, một phép tính đơn giản cho thấy mức tăng 22 lần so với Umbra là không khả thi nếu nói về xử lý truy vấn truyền thống. Ở mức SF10, 22 truy vấn TPC-H đọc khoảng 15GB dữ liệu gốc (đã nén), và trên CPU 9950X3D, Umbra chạy toàn bộ trong khoảng 540ms. Chỉ riêng lượng dữ liệu đọc chia cho băng thông bộ nhớ (54GB/s) đã tốn khoảng 280ms — bất cứ thứ gì nhanh hơn đều bất khả thi. Nén tốt hơn có thể giảm xuống một chút, nhưng không thể giảm cả một bậc độ lớn.

Tốc độ đến từ tính trước, không phải xử lý truy vấn

Không ngạc nhiên, phần lớn lợi ích ấn tượng nhất của GenDB-V đến từ tính trước (precomputation). Các AI agent đã tỉ mỉ xây dựng cấu trúc dữ liệu phụ cho từng truy vấn, được tính ngay lúc nạp dữ liệu để tránh phần lớn công việc. Thiết kế vật lý (physical design) cũng được tinh chỉnh mạnh cho đúng bộ truy vấn — ví dụ có thêm một cấu trúc liệt kê các dòng supplier theo thứ tự s_acctbal giảm dần, khiến truy vấn Q2 trở nên tầm thường.

Kết quả phản ánh điều đó: ở mức SF100, nhiều truy vấn chạy gần như thời gian hằng số — Q2 mất 0,7ms, Q17 khoảng 15ms, Q4 khoảng 17ms trên một luồng. Neumann gọi đây là "triệu chứng TPC-D, chỉ là không dùng aggregate lưu sẵn".

Hệ thống còn có chế độ "plain-array", thoạt nhìn công bằng hơn vì không chuẩn bị quá nhiều, và chỉ báo cáo tăng tốc khoảng 3 lần — mức có vẻ khả thi. Nhưng nhìn kỹ thì các AI agent đã làm điều còn kỳ lạ hơn: mã hóa cứng hiểu biết về bộ sinh dữ liệu. Chúng "biết" rằng khách hàng thứ k nằm ở dòng k-1, và rằng dbgen đánh số đơn hàng thứ i là 32·(i/8) + i%8, nên khóa k phải nằm ở dòng 8·(k/32) + k%32 − 1. Nhờ vậy phép join trong truy vấn Q18 trở nên cực rẻ.

"Được kiểm chứng hình thức" nhưng vẫn vô dụng ngoài đời

Vậy điều này khớp thế nào với tuyên bố là engine được kiểm chứng hoàn toàn? Neumann giải thích: mã nguồn có kiểm tra xem hiểu biết mã hóa cứng về bộ sinh dữ liệu có đúng trong thực tế hay không, chẳng hạn kiểm tra dòng join đoán được có chính xác không. Nếu không, nó rơi về một cài đặt nested loop chung cực chậm — nhưng vì điều đó không bao giờ xảy ra với bộ sinh dữ liệu TPC-H chính thức, nhánh mã đó hoàn toàn không xuất hiện trong các thực nghiệm được báo cáo.

Để AI agent tối ưu cho một benchmark cơ sở dữ liệu cụ thể sẽ khiến benchmark đó trở nên vô dụng.

Ông kết luận: AI sẽ cố hết sức tìm ra những thủ thuật kỳ quái để tăng tốc đúng bộ benchmark này, nhưng không thủ thuật nào hoạt động trong hệ thống thật. Bên cạnh thời gian tinh chỉnh và tổng hợp khổng lồ, việc xóa một tuple (hoặc chèn một tuple vào giữa) nhiều khả năng khiến toàn bộ cách tiếp cận sụp đổ vì buộc phải đi vào nhánh dự phòng chậm — điều không ai muốn trong hệ thống production.

Góc nhìn

Với các kỹ sư và nhà phát triển Việt Nam đang theo dõi làn sóng AI sinh mã, bài phân tích này là lời nhắc về khoảng cách giữa con số benchmark và giá trị thực tế. Một hệ thống chỉ chạy nhanh trên đúng bộ dữ liệu và đúng bộ truy vấn đã biết trước không thể thay thế engine đa dụng — nhất là khi dữ liệu thật luôn có cập nhật, xóa và chèn bất ngờ.

Bài học thực dụng là khi đánh giá bất kỳ công cụ nào do AI tối ưu, cần xem chế độ mặc định, điều kiện tiên quyết và hành vi khi dữ liệu thay đổi, thay vì chỉ nhìn con số tăng tốc trên trang chủ. Với các đội đang dùng AI để tối ưu hiệu năng, nên giữ bộ kiểm thử phản ánh đúng dữ liệu và truy vấn thực tế của mình, đồng thời kiểm tra rằng cải tiến vẫn đứng vững khi dữ liệu biến động.

Nguồn: databasearchitects.blogspot.com · Quy trình biên tập

Chia sẻ:FacebookX