SGLang tăng tốc MiniMax-H3 gấp 1,95 lần không mất chất lượng

Ngày 27 tháng 8, đội ngũ LMSYS công bố báo cáo hiệu năng suy luận cho MiniMax-H3, môi trường thử nghiệm gồm 8 card NVIDIA H200, mỗi card 141GB VRAM, chạy trên khung SGLang Diffusion. Các tham số cố định ở độ phân giải 1344×768, 24 FPS, 50 bước khử nhiễu, xuất video 5 giây và 10 giây, đối chứng với Diffusers.

Kết luận chia làm hai tầng. Tầng thứ nhất là con số không pha loãng:

"SGLang's dense, lossless path is 1.85–1.95× faster than Diffusers with no approximation: the same denoising work, on a faster runtime."

(Đường xử lý dày đặc, không mất mát của SGLang nhanh hơn Diffusers từ 1,85 đến 1,95 lần mà không có bất kỳ phép xấp xỉ nào: cùng khối lượng tính toán khử nhiễu, chạy trên runtime nhanh hơn.)

Trên luồng tạo video từ văn bản (text-to-video), mức không mất mát nhanh hơn Diffusers từ 1,87 đến 1,95 lần; luồng chuyển danh sách khung hình thành video nhanh hơn từ 1,91 đến 1,95 lần. Cả hai luồng đều gần gấp đôi, và SSIM đúng bằng 1,0000 — trùng khớp hoàn toàn ở mức pixel.

Ba lớp tăng tốc cộng dồn mới đạt 6 lần

Báo cáo tách mức tăng tốc thành ba khối, mỗi khối có bản chất khác nhau.

Hợp nhất toán tử (fused kernel) thuần túy là công việc kỹ thuật. SGLang gộp cập nhật AdaLN, residual có cổng (gated residual), kích hoạt SwiGLU, và QK RMSNorm kèm 3D RoPE vào cùng một kernel, giảm việc chuyển dữ liệu qua lại trong bộ nhớ GPU. Thử nghiệm cô lập từng toán tử cho mức tăng tốc từ 2,00 đến 12,16 lần, quy về đầu-cuối thì chính là mức 1,95 lần nói ở trên. Lớp này không thay đổi bất kỳ kết quả tính toán nào.

Cache-DiT bắt đầu can thiệp vào phép xấp xỉ: tái sử dụng kết quả đệm (cache) giữa các bước khử nhiễu liền kề, dùng ngưỡng chênh lệch residual để quyết định có tái sử dụng hay không, mức thận trọng có ngưỡng 0,04, mức mạnh tay dùng stride với ngưỡng 0,08. Mức thận trọng đạt 2,65 lần và 2,99 lần trên hai luồng, SSIM tụt xuống quanh mức 0,90 và 0,94.

Attention thưa SubBlock là mạnh tay nhất: bộ định tuyến thưa theo khối (block-sparse router) cắt giảm số khối KV tham gia tính toán sau bước thứ 10, độ thưa đặt ở 0,75 hoặc 0,80. Khi kết hợp với chế độ stride của Cache-DiT, luồng tạo video từ văn bản đạt 4,90 đến 5,72 lần, luồng chuyển khung hình thành video đạt 5,64 đến 6,24 lần.

Cái giá về hình ảnh của mức 6 lần

Cái giá nằm trọn trong chỉ số SSIM, và hai luồng cho kết quả rất khác nhau. Luồng chuyển khung hình thành video khá bền: độ thưa 0,75 cộng với stride, đoạn 10 giây vẫn giữ SSIM 0,9202, đoạn 5 giây là 0,8629. Luồng tạo video từ văn bản tụt mạnh hơn nhiều, cùng cấu hình chỉ còn 0,7834 và 0,7713, nâng độ thưa lên 0,80 thì rơi xuống 0,7584.

SSIM 0,76 có ý nghĩa gì? Nói nôm na, cấu trúc và bố cục tổng thể vẫn còn, nhưng kết cấu bề mặt, chi tiết và phần tần số cao đã lệch so với đầu ra gốc, phóng to lên là thấy rõ. Lý do luồng chuyển khung hình thành video (vốn bị ràng buộc bởi khung đầu hoặc khung khóa) tụt ít hơn cũng nằm ở đây — mô hình vốn đã bị ghim bởi khung hình điều kiện, nên phép thưa hóa không còn nhiều dư địa tự do để mất.

Quy đổi ra tiền thì dễ hình dung hơn. Giá thuê theo nhu cầu cho 8 card H200 trên thị trường thường rơi vào khoảng 2-3 USD/card/giờ, một máy chạy một giờ xấp xỉ 20 USD (tính thô, các hãng cloud và điều khoản hợp đồng chênh lệch không nhỏ). Mức không mất mát nhanh hơn 1,95 lần, tức cùng một giờ có thể ra gần gấp đôi số video, chi phí mỗi video giảm hơn 50% — phần giảm này gần như miễn phí, không phải đánh đổi chất lượng nào cả. Các mức cao hơn cũng tiết kiệm cùng một khoản tiền đó, nhưng phải trừ hao vào SSIM, có đáng hay không phụ thuộc vào việc lô video này dùng để giao khách hàng hay chỉ để sàng lọc.

Dựa trên bộ số liệu này, cách dùng thực tế nên chia thành ba mức: xuất thành phẩm thì dùng mức không mất mát, được 1,95 lần miễn phí; cần cân bằng thì lên Cache-DiT mức thận trọng, 2,65 đến 2,99 lần, SSIM trên 0,90 nhìn chung chấp nhận được; lọc bố cục, chạy bản xem trước thì dùng SubBlock mức 0,75, đổi tốc độ gấp sáu lấy một hình ảnh “nhìn được đại khái”, dù sao sau khi lọc xong cũng phải xuất lại.

Vài giới hạn cần lưu ý

Bản thân báo cáo cũng tự giới hạn phạm vi. Chỉ ba biện pháp tăng tốc được thử nghiệm, các phương pháp có mất mát phổ biến khác như lượng tử hóa (quantization) hay độ phân giải tăng dần không được đưa vào. Cách tính thời gian loại trừ khởi động dịch vụ, làm nóng (warmup), polling HTTP và tải file, nghĩa là các con số này thuần túy thuộc về phía suy luận, cảm nhận đầu-cuối thực tế sẽ giảm bớt. Bộ SubBlock còn có điều kiện tiên quyết cứng: chỉ có hiệu quả với attention không nhân quả (non-causal) dài, BF16, head dimension 128, độ dài chuỗi không dưới 4096. Dữ liệu thử nghiệm thực tế được thu thập ngày 18 tháng 8, báo cáo công bố chậm chín ngày sau đó.

Đặt sự việc này vào dòng thời gian của H3: mô hình mở trọng số vào cuối tháng 7, một tháng sau một stack suy luận bên thứ ba đã đưa mức không mất mát lên gần gấp đôi — giá trị thực sự của mô hình mã nguồn mở thường không nằm ở điểm benchmark ngày ra mắt, mà ở việc sau khi trọng số được công khai, có bao nhiêu người sẵn lòng viết kernel cho nó.

Nguồn tham khảo: Blog kỹ thuật LMSYS, CocoLoop, tài liệu dự án SGLang; các số liệu tăng tốc và SSIM được đối chiếu trên cùng một cấu hình 8 card H200, 1344×768, 24 FPS, 50 bước khử nhiễu.