LMSYS: Blog (Chatbot Arena )
85

Nghiên cứu

MiniMax-H3 trên 8x H200: Tăng tốc không mất dữ liệu lên tới 1,95 lần

(giờ Việt Nam)

Tóm tắt AI

Nhóm SGLang Diffusion thử nghiệm MiniMax-H3 trên 8 GPU NVIDIA H200, đạt tốc độ nhanh gấp 1,95 lần so với Diffusers mà không làm giảm chất lượng hình ảnh.

Bản dịch AI

MiniMax-H3 on 8×H200: 1.95× Lossless, Up to 6.24× at 0.76–0.91 SSIM

TL;DR (Tóm tắt)

Chúng tôi đã thực hiện đo kiểm (benchmark) khả năng tạo video của MiniMax-H3 trên hệ thống 8× NVIDIA H200 với SGLang Diffusion, giữ nguyên các tham số về câu lệnh (prompts), hạt giống (seeds), độ phân giải, tốc độ khung hình và các bước khử nhiễu (denoising steps) trên sáu khối lượng công việc khác nhau.

Phạm vi. So sánh này bao gồm ba cơ chế tăng tốc của SGLang Diffusion. Công cụ này còn hỗ trợ nhiều phương thức suy giảm chất lượng (lossy paths) khác không nằm trong đợt chạy thử nghiệm này — bao gồm lượng tử hóa (quantization) và độ phân giải lũy tiến (progressive resolution) — vì vậy các con số ở đây chỉ là một phần trong khả năng thực tế, không phải là giới hạn tối đa. Mọi dữ liệu dưới đây đều được đo lường thực tế, không phải dự đoán; các đoạn clip ở cuối bài sẽ giúp bạn tự đánh giá mức độ ảnh hưởng đến chất lượng.

Bối cảnh

Mặc dù SGLang Diffusion đã cung cấp một lộ trình không suy giảm chất lượng (lossless) nhanh cho MiniMax-H3, nhưng cộng đồng từ lâu đã tìm kiếm khả năng tạo video chất lượng cao nhanh hơn thông qua các phương thức suy giảm chất lượng. Dựa trên nền tảng các cơ chế tăng tốc linh hoạt đã được phát triển từ lâu, SGLang Diffusion đã tích cực làm việc về vấn đề này trong những tuần qua; bài viết này là bản báo cáo đo lường đầu tiên về hiệu quả của các cơ chế đó.

Quá trình khuếch tán video (video diffusion) bị chi phối bởi hai chi phí chính: vòng lặp khử nhiễu chạy cùng một transformer hàng chục lần, và mỗi bước tiêu tốn phần lớn ngân sách tính toán vào cơ chế chú ý (attention) trên một chuỗi token rất dài. Một clip 5 giây ở độ phân giải 1344×768 với 24 FPS và 50 bước khử nhiễu đã vượt xa khả năng xử lý thực tế của một GPU đơn lẻ, vì vậy câu hỏi không phải là có nên song song hóa hay không, mà là có thể tránh được bao nhiêu phần công việc còn lại.

Ba cơ chế tăng tốc giải quyết vấn đề này từ các hướng khác nhau và chúng có thể kết hợp với nhau:

Cơ chế đầu tiên là không suy giảm chất lượng (lossless). Hai cơ chế còn lại đánh đổi sự tương đồng để lấy tốc độ, đó là lý do tại sao mọi con số trong bài viết này đều được báo cáo kèm theo chỉ số SSIM so với kết quả gốc (lossless baseline).

Tổng quan

Câu trả lời phụ thuộc vào kết quả gốc. So với trường hợp Diffusers tương ứng, lộ trình dense, lossless của SGLang đã nhanh hơn khoảng 2 lần cho cả hai tác vụ và cả hai thời lượng. Cache-DiT tái sử dụng công việc giữa các bước khử nhiễu, trong khi SubBlock sparse attention giảm chi phí cho các bước vẫn đang chạy. Kết hợp lại, chúng tạo thành lộ trình nhanh nhất trong ma trận này.

Để có cấu hình mặc định ưu tiên chất lượng, hãy sử dụng Cache-DiT conservative hoặc Cache-DiT stride mà không có SubBlock. Để cân bằng giữa tốc độ và chất lượng, hãy sử dụng SubBlock 0.75 + Cache-DiT stride, mang lại mức tăng tốc từ 4,90–5,64 lần ở 5 giây và 5,44–5,93 lần ở 10 giây.

Các biểu đồ dưới đây tóm tắt các bảng đo kiểm tổng hợp.

Kết quả chi tiết

Mọi cấu hình trong bài viết này đều có thể tái lập bằng trang hướng dẫn SGLang cho MiniMax-H3, trong đó chứa các cờ khởi chạy (launch flags) chính xác cho từng chế độ.

Chúng tôi báo cáo thời gian suy luận (inference time) ở phía tạo video; thời gian khởi động máy chủ, làm nóng (warmup), thăm dò HTTP và thời gian tải xuống MP4 đều bị loại trừ. Đối với mỗi tác vụ và thời lượng, độ trễ và SSIM được đánh giá trên ba câu lệnh (prompts) riêng biệt. Mức tăng tốc được đo so với trường hợp Diffusers tương ứng. SSIM được tính trên tất cả các khung hình ở định dạng YUV420 so với video lossless tương ứng của SGLang.

T2VA

FL2VA

Những điểm chính

Nguồn gốc của mức tăng tốc

Ba cơ chế thúc đẩy các mức tăng hiệu suất này.

Các nhân (kernels) được hợp nhất giúp giảm chi phí cho mỗi bước vẫn đang chạy. Lộ trình H3 hợp nhất các cập nhật AdaLN được lập chỉ mục, các phần dư có cổng (gated residuals), kích hoạt SwiGLU và QK RMSNorm với 3D RoPE, giúp giảm các tensor trung gian, lưu lượng bộ nhớ và số lần khởi chạy nhân. Phần tiếp theo báo cáo các phép đo nhân riêng biệt này; chúng là một phần của quá trình thực thi mỗi bước, trong khi Cache-DiT và SubBlock quyết định bao nhiêu phần của quá trình đó được thực thi.

Cache-DiT gắn một ngữ cảnh DBCache vào ngăn xếp khối DiT dùng chung của MiniMax-H3. Sau các bước làm nóng, nó đánh giá các khối biên được cấu hình và so sánh sự thay đổi phần dư chuẩn hóa với trạng thái được lưu trong bộ nhớ đệm trước đó. Nếu sự thay đổi nằm dưới ngưỡng và giới hạn bộ nhớ đệm liên tiếp cho phép, các khối ở giữa sẽ tái sử dụng kết quả đã lưu; nếu không, ngăn xếp sẽ được tính toán lại và bộ nhớ đệm được làm mới. Tất cả các chế độ bộ nhớ đệm đều sử dụng Fn=1, Bn=0 và bốn bước làm nóng:

MiniMax-H3 có một MiniMaxH3DiTModel với ngăn xếp khối chứa các token video và âm thanh đã đóng gói. Do đó, Cache-DiT đưa ra một quyết định chung cho toàn bộ ngăn xếp đã đóng gói; nó không duy trì các bộ nhớ đệm video và âm thanh độc lập. Worker ghi lại một danh sách bước Cache-DiT kết hợp, và chú giải dấu vết (trace legend) tuân theo mô hình thực thi đó.

SubBlock sparse attention giảm số lượng khối KV được đọc trong các bước tính toán. Nó sử dụng n_k=n_q=4; mười bước khử nhiễu đầu tiên sử dụng attention dày đặc (dense), và SubBlock được kích hoạt sau đó. Độ dài chuỗi tối thiểu là 4096. Ma trận kiểm tra độ thưa (sparsity) 0.75 và 0.80; mức 0.80 nhanh hơn nhưng có SSIM thấp hơn trong một số trường hợp T2VA.

Các kết quả hồ sơ tổng hợp cho thấy cách các cấu hình hoạt động từ đầu đến cuối; chúng không tách biệt thời gian nhân hoặc cung cấp bảng phân tích chi phí theo từng bước. Dấu vết dưới đây là dấu vết thực thi ở cấp độ yêu cầu, không phải phép đo thời gian của toán tử.

Một dấu vết 49 bước đã đo lường

Khối lượng công việc được cấu hình với 50 bước suy luận. Vì lịch trình sigma bao gồm cả hai điểm cuối khoảng, vòng lặp khử nhiễu thực hiện 49 lần đánh giá mô hình (len(sigmas) - 1); “dấu vết 49 bước” đề cập đến các lần đánh giá mô hình này.

Để cụ thể hóa mô hình thực thi, một yêu cầu T2VA 5 giây đã được chạy cho sáu cấu hình: lossless, Cache-DiT conservative, SubBlock 0.75, SubBlock 0.75 + conservative Cache-DiT, Cache-DiT stride, và SubBlock 0.80 + stride. Worker đã ghi lại danh sách cached_steps thực tế cho mỗi yêu cầu. Vì các token video và âm thanh chia sẻ một ngăn xếp khối H3 đóng gói, một lần cache hit sẽ tái sử dụng kết quả kết hợp; không có trạng thái “video đã lưu, âm thanh đã tính” riêng biệt trong lộ trình này. Các ô màu xanh trong các hàng SubBlock đánh dấu các bước tính toán sử dụng sparse attention sau mười bước khử nhiễu đầu tiên.

Thời gian chạy dấu vết lần lượt là 37,78 giây (lossless), 26,82 giây (Cache-DiT conservative), 29,97 giây (SubBlock 0.75), 22,18 giây (SubBlock 0.75 + conservative Cache-DiT), 17,23 giây (Cache-DiT stride), và 14,34 giây (SubBlock 0.80 + stride). Những con số này xác định lần chạy dấu vết; chúng không thay thế các giá trị trung vị tổng hợp của ba câu lệnh.

Lớp nhân (Kernel Layer)

Bộ nhớ đệm quyết định số lượng bước khử nhiễu chạy; các nhân quyết định tốc độ của mỗi bước tính toán. MiniMax-H3 đóng gói các token video và âm thanh vào một chuỗi, vì vậy lộ trình không phải GEMM được hưởng lợi từ cùng một nguyên tắc cơ bản: ít lưu lượng bộ nhớ hơn, ít tensor trung gian hơn và ít lần khởi chạy nhân hơn. Điều biến AdaLN và các phần dư có cổng tra cứu tham số theo chỉ số token và cập nhật kích hoạt trong một lần truyền. SwiGLU hoạt động trực tiếp trên bộ đệm gate_up đã hợp nhất. QK RMSNorm và 3D RoPE được hợp nhất thành một nhân duy nhất thay vì chạy như các thao tác eager riêng biệt.

Bảng dưới đây sử dụng hình dạng thực tế trên mỗi rank cho một yêu cầu T2VA 5 giây ở 1344×768×124 khung hình: 4.722 hàng sau khi đệm SP/Ulysses-8, kích thước ẩn 5.376, 56 đầu attention, kích thước đầu 128, kích thước RoPE 96 và đầu vào BF16. Mỗi con số là thời gian trung vị của sự kiện CUDA trên mỗi lần gọi qua 10 vòng của 20 lần gọi. Kết quả gốc là thành phần eager tương ứng.

Đây là các microbenchmark của các vị trí riêng biệt, không phải là mức tiết kiệm độ trễ cộng dồn từ đầu đến cuối. Kết quả QK-Norm + RoPE hợp nhất sử dụng lộ trình làm tròn chính xác có sẵn trên nhánh chính (round_norm_before_rope=True).

Cách thức hoạt động của SubBlock Sparse Attention

SubBlock là một bộ định tuyến không cần huấn luyện cho attention thưa khối (block-sparse attention). Nó chia chuỗi thành các khối truy vấn (query) và khóa (key) 64-token, sau đó chia mỗi khối thành bốn khối con 16-token ở cả hai phía (n_q=n_k=4). Một cơ chế gộp (pooling) nhẹ và điểm log-sum-exp ước tính khối lượng softmax chưa chuẩn hóa của mỗi khối khóa cho từng khối truy vấn và đầu. Bộ định tuyến giữ lại các khối khóa có điểm số cao nhất và chuyển chỉ số của chúng đến nhân attention thưa khối; ma trận attention đầy đủ không bao giờ được hiện thực hóa.

Giá trị độ thưa là tỷ lệ các khối khóa được phép loại bỏ, không phải tỷ lệ được giữ lại. Do đó, độ thưa=0.75 giữ lại khoảng 25% các khối khóa trên mỗi khối truy vấn. Thiết lập 0.80 mạnh mẽ hơn sẽ nhanh hơn nhưng có ngân sách sai số xấp xỉ lớn hơn, điều này nhất quán với SSIM thấp hơn được quan sát thấy ở các hàng mạnh mẽ nhất.

Các đường cong dưới đây cho thấy phân phối điểm số; các đường thẳng đứng hiển thị giá trị trung vị của các điểm cắt định tuyến theo hàng cho hai ngân sách được hiển thị. Ở đây, độ thưa=0.50 được bao gồm như một tham chiếu chẩn đoán; các cấu hình benchmark sử dụng 0.75 và 0.80. Vì bộ định tuyến xếp hạng các khối khóa độc lập cho mỗi khối truy vấn và đầu, độ thưa=0.50 và 0.75 giữ lại khoảng một nửa và một phần tư hàng đầu các khối khóa có sẵn của hàng đó, tùy thuộc vào việc làm tròn ngân sách 8 khối. Trên các khối lượng công việc này, ngân sách 0.75 giữ lại phần lớn khối lượng điểm số trên mức trung vị cục bộ của hàng trong khi tập trung lựa chọn vào phần đuôi có điểm số cao.

Lộ trình thưa chỉ được kích hoạt cho các cuộc gọi DiT attention dài, không nhân quả mà nhân hỗ trợ: đầu vào BF16, kích thước đầu 128 và chuỗi ít nhất 4096 token. Mười bước khử nhiễu đầu tiên sử dụng attention dày đặc; các phân đoạn ngắn, bộ tinh chỉnh token và các cuộc gọi không được hỗ trợ sử dụng phương thức dự phòng dày đặc. Trên H200/SM90, kế hoạch định tuyến 64×64 đã chọn được thực thi bởi nhân CuTe block-sparse FlashAttention của SGLang.

Bản demo

Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ LMSYS: Blog (Chatbot Arena ). 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.