Wave Forcing: Tiến gần “tốc độ ánh sáng” trong sinh video dài dạng stream (Towards Speed-of-Light Streaming Video Generation)

Giải pháp sinh video dài thời gian thực của nhóm Deng Zhijie tại Đại học Giao thông Thượng Hải, thiết kế đồng bộ ba phần: sinh, huấn luyện và thực thi. Các phương pháp tự hồi quy theo khối hiện tại yêu cầu khử nhiễu hoàn toàn một khối trước khi làm mới bộ nhớ đệm lịch sử, ngay cả khi chỉ khử nhiễu một bước cũng cần hai lần truyền tiến; Wave Forcing sử dụng cơ chế chú ý nhân quả theo khối, cho phép các khối sau đọc được ngữ cảnh “sạch hơn” từ các khối trước khi chúng chưa khử nhiễu xong, sau đó phân bổ các giai đoạn khử nhiễu lệch pha và việc làm mới bộ nhớ đệm cho các bản sao đầy đủ của mô hình trên nhiều GPU, khi đường ống được lấp đầy, mỗi vòng truyền tiến đồng thời sẽ xuất ra một khối (các tác giả gọi là 1F1C). Huấn luyện gồm ba giai đoạn: khử nhiễu với nhiễu hỗn hợp, giám sát chuyển động, và thích ứng nhân quả sử dụng lịch sử tự sinh; trong thời gian chạy, WaveRT sử dụng Wave Parallelism để gửi trước một chiều các K/V của từng lớp, che giấu giao tiếp bên dưới tính toán chú ý, và đường ống hóa quá trình giải mã VAE.

Giải pháp sinh video dài thời gian thực của nhóm Deng Zhijie tại Đại học Giao thông Thượng Hải, thiết kế đồng bộ ba phần: sinh, huấn luyện và thực thi. Các phương pháp tự hồi quy theo khối hiện tại yêu cầu khử nhiễu hoàn toàn một khối trước khi làm mới bộ nhớ đệm lịch sử, ngay cả khi chỉ khử nhiễu một bước cũng cần hai lần truyền tiến; Wave Forcing sử dụng cơ chế chú ý nhân quả theo khối, cho phép các khối sau đọc được ngữ cảnh “sạch hơn” từ các khối trước khi chúng chưa khử nhiễu xong, sau đó phân bổ các giai đoạn khử nhiễu lệch pha và việc làm mới bộ nhớ đệm cho các bản sao đầy đủ của mô hình trên nhiều GPU, khi đường ống được lấp đầy, mỗi vòng truyền tiến đồng thời sẽ xuất ra một khối (các tác giả gọi là 1F1C). Huấn luyện gồm ba giai đoạn: khử nhiễu với nhiễu hỗn hợp, giám sát chuyển động, và thích ứng nhân quả sử dụng lịch sử tự sinh; trong thời gian chạy, WaveRT sử dụng Wave Parallelism để gửi trước một chiều các K/V của từng lớp, che giấu giao tiếp bên dưới tính toán chú ý, và đường ống hóa quá trình giải mã VAE.

Thích 106 · Số sao mã nguồn 96

Lý do

  • Các tác giả tuyên bố trên Wan2.1-T2V-1.3B, phiên bản 4 bước đạt 147.6 FPS cho DiT và 134.8 FPS cho toàn bộ quy trình trên 8 GPU H200, gấp 7.07 lần thông lượng toàn bộ quy trình trên một GPU; README ghi rằng khoảng 11.8 giây để giải mã xong 1593 khung (tương đương khoảng 100 giây ở mức 16 FPS).
  • Về chất lượng, các tác giả tuyên bố phiên bản 5 bước tương đương với Rolling Forcing về tổng thể, nhưng có Dynamic Degree (mức độ chuyển động) cao hơn cho cả video ngắn và dài; trong so sánh chỉ riêng DiT, với cùng backend, cùng số bước và cùng số GPU, thông lượng của Wave Parallelism cao nhất gấp 2.53 lần so với phương pháp nhanh hơn giữa Ulysses và Ring Context Parallelism (trên sáu quy mô từ 1.3B đến 14B).
  • Đã có thể chạy: mã suy luận và runtime WaveRT theo giấy phép Apache-2.0, trên Hugging Face SJTU-DENG-Lab/WaveForcing-1.3B có hai checkpoint BF16 cho phiên bản 4 bước và 5 bước (có bản sao trên ModelScope), mã huấn luyện tham khảo cũng đã được công bố; đứng thứ hai về lượt thích trên Hugging Face trong ngày (chỉ phản ánh mức độ quan tâm).

Cách sử dụng

  • Tải xuống: hf download Wan-AI/Wan2.1-T2V-1.3B-Diffusers --local-dir ckpts/Wan2.1-T2V-1.3B-Diffusers, sau đó hf download SJTU-DENG-Lab/WaveForcing-1.3B --local-dir ckpts/WaveForcing-1.3B (bộ mã hóa văn bản và VAE được đọc từ mô hình cơ sở Wan2.1).
  • Phiên bản 5 bước (bố cục 5+2): python -m wave_rt --model-path ckpts/Wan2.1-T2V-1.3B-Diffusers --gen-ckpt ckpts/WaveForcing-1.3B/5step/model.safetensors --rf-step 5 --wp-size 6 --denoising-step-list 1000,800,600,400,200 --num-frames 24 --height 480 --width 832 --vae-stages 2 --cuda-visible-devices 0,1,2,3,4,5,6,7 --prompt "…", đầu ra nằm trong outputs/quickstart/<run-tag>/video.mp4.
  • Phiên bản 4 bước (bố cục 4+3, tức là con số nổi bật): --gen-ckpt trỏ tới 4step/model.safetensors, và thay đổi --rf-step 4 --wp-size 5 --denoising-step-list 1000,750,500,250 --vae-stages 3.
  • --num-frames là số khung trong không gian tiềm ẩn, phải chia hết cho 3; đặt 399 tương ứng với chuẩn video dài (giải mã 1593 khung).

Rủi ro

  • Rào cản cao: hướng dẫn bắt đầu nhanh trong README được viết cho đường ống 8 GPU, môi trường chỉ được kiểm chứng trên Python 3.12, PyTorch 2.11.0+cu128, runtime khuếch tán SGLang và GPU Hopper, không có hướng dẫn cho việc chạy trên một GPU hoặc GPU tiêu dùng.
  • Hiện tại chỉ có checkpoint 1.3B, độ phân giải 832×480; dòng 14B trong bảng README sử dụng trọng số khởi tạo ngẫu nhiên, chỉ để kiểm tra khả năng mở rộng hệ thống, không đại diện cho chất lượng sinh.
  • Mã huấn luyện tham khảo tuân theo giấy phép sử dụng học thuật của RollingForcing, khác với giấy phép Apache-2.0 của runtime; các so sánh về FPS và chất lượng đều do tác giả báo cáo, chưa xem video được sinh ra nên không đánh giá hình ảnh.

Biên tập: Phù hợp với các nhóm có nhiều GPU H100 / H200, muốn thực hiện phát trực tiếp video dài thời gian thực hoặc nghiên cứu song song hóa video tự hồi quy theo khối; người dùng một GPU nên xem ma trận cấu hình đầy đủ trên trang dự án trước khi quyết định.

Mở · Mã nguồn · Trang bài báo trên Hugging Face

Hugging Face Daily Papers

Xem tin AI mới nhất