1 điểm bởi GN⁺ 2024-07-06 | 1 bình luận | Chia sẻ qua WhatsApp
  • Diffusion Forcing là một phương pháp sinh chuỗi học các mức nhiễu diffusion khác nhau cho từng token, để khi lấy mẫu có thể được dùng như cả mô hình token kế tiếp lẫn mô hình diffusion toàn chuỗi
  • Diễn giải nhiễu của diffusion như một dạng masking, nhờ đó có thể giữ sạch các token quá khứ và chỉ để các token tương lai ở trạng thái nhiễu, hoặc đặt các mức nhiễu khác nhau trên toàn bộ chuỗi
  • Trong dự đoán video DMLab và Minecraft, teacher forcing dễ bị phân kỳ còn causal full-sequence diffusion bị dao động về tính nhất quán, trong khi Diffusion Forcing tạo ra các dự đoán ổn định hơn
  • Trong ra quyết định và lập kế hoạch, token được định nghĩa là [a_t, o_{t+1}] để mô hình hóa đồng thời hành động và quan sát tiếp theo, đồng thời có thể gán các mức nhiễu khác nhau cho tương lai gần và tương lai xa
  • Có thể rollout dài vượt quá độ dài huấn luyện: DMLab sau khi huấn luyện trên 36 khung hình có thể sinh hơn 2000 khung hình, Minecraft sau khi huấn luyện trên 72 khung hình cũng sinh hơn 2000 khung hình không cần sliding window

Cấu trúc cốt lõi của Diffusion Forcing

  • Tên gọi Diffusion Forcing được lấy từ teacher forcing và diffusion models
  • Mục tiêu là kết hợp ưu điểm của mô hình tự hồi quy dự đoán token kế tiếp và mô hình diffusion toàn chuỗi trong cùng một khuôn khổ huấn luyện
    • Ưu điểm của mô hình token kế tiếp: sinh với độ dài biến thiên
    • Ưu điểm của mô hình diffusion toàn chuỗi: guidance ở cấp độ chuỗi để điều hướng lấy mẫu theo quỹ đạo mong muốn
  • Một mô hình sau khi huấn luyện có thể được vận hành theo nhiều cách khác nhau ở thời điểm lấy mẫu
    • Có thể sinh linh hoạt và mang tính kết hợp như mô hình token kế tiếp
    • Có thể áp dụng guidance lên toàn bộ chuỗi như mô hình diffusion toàn chuỗi

Nhiễu theo từng token và “nhiễu như masking”

  • Diffusion Forcing học diffusion trên chuỗi nhưng cho phép mỗi token có mức nhiễu khác nhau
  • Nhiễu của diffusion có thể được xem là masking với nhiều cường độ khác nhau
    • Diffusion toàn chuỗi: tất cả khung hình được denoise cùng lúc ở cùng một mức nhiễu
    • Dự đoán token kế tiếp: các token quá khứ có mức nhiễu 0, còn khung hình kế tiếp được denoise từng cái một
  • Thay đổi cách phân bố nhiễu trong chuỗi khi lấy mẫu có thể tạo ra nhiều hành vi khác nhau
    • Ổn định rollout tự hồi quy
    • Guidance cho horizon dài
    • Planning có bao gồm causal uncertainty

Tính chất lý thuyết

  • Diffusion Forcing được chứng minh là tối ưu hóa cận dưới biến phân cho likelihood của mọi chuỗi con của các token được lấy ra từ phân phối kết hợp thật
  • Tính chất này cho thấy mục tiêu huấn luyện không chỉ gắn với hiệu năng thực nghiệm mà còn liên hệ với likelihood trên toàn bộ các chuỗi con

Kết quả dự đoán video

  • Kết quả sử dụng video do mô hình tự tổng hợp trực tiếp, được tạo ra không cần VAE hay superresolution
  • Tác giả nêu rõ các kết quả được lấy mẫu không cherry-pick
  • Trong so sánh trên bộ dữ liệu DMLab, khác biệt giữa ba cách tiếp cận rất rõ
    • teacher forcing dễ phân kỳ
    • mô hình causal full-sequence diffusion gặp vấn đề nghiêm trọng về tính nhất quán
    • Diffusion Forcing đạt dự đoán video ổn định và nhất quán
  • Cùng một mô hình này cũng xuất hiện trên bộ dữ liệu Minecraft
    • teacher forcing dễ phân kỳ
    • mô hình causal full-sequence diffusion gặp vấn đề nghiêm trọng về tính nhất quán
    • Diffusion Forcing tạo ra các dự đoán ổn định và nhất quán

Rollout video dài vượt độ dài huấn luyện

  • Diffusion Forcing có thể rollout video dài hơn rất nhiều so với độ dài chuỗi tối đa đã huấn luyện
  • Việc rollout này được thực hiện không cần sliding window
    • Trong rollout kiểu RNN, latent z không bị đặt lại về latent ban đầu z0
    • Hiệu ứng ổn định hóa xuất hiện với Diffusion Forcing
  • Kết quả trên DMLab:
    • Huấn luyện với 36 khung hình
    • Có thể rollout hơn 2000 khung hình
    • Thực hiện không cần sliding window
    • Độ phân giải gốc của bộ dữ liệu là 64x64
    • Do nén mp4 của video dài nên chất lượng hình ảnh bị giảm, vì vậy cũng có cung cấp trực quan hóa PNG để phản ánh chất lượng sinh gốc
  • Kết quả trên Minecraft:
    • Huấn luyện với 72 khung hình
    • Có thể rollout hơn 2000 khung hình mà không bị phân kỳ
    • Thực hiện không cần sliding window
    • Độ phân giải gốc của bộ dữ liệu là 128x128
    • Trong một số kịch bản, tác tử dừng lại trước khối dirt hoặc stone cao hai block cho đến khi đổi hướng; điều này được xem là vấn đề nội tại của cách thu thập bộ dữ liệu

Diffusion Planning

  • Tương tự các công trình trước như Diffuser, có thể dùng guidance tại thời điểm kiểm thử để sử dụng chuỗi diffusion như một planner
  • Diffusion Forcing định nghĩa mỗi token là [a_t, o_{t+1}] để mô hình hóa rõ ràng quan hệ nhân quả
    • Có belief về việc sẽ thực hiện hành động nào
    • Đồng thời có belief về quan sát mà hành động đó sẽ dẫn tới
    • Khi có quan sát mới sau hành động, có thể cập nhật belief bằng posterior estimation
  • Diffusion planning process video trực quan hóa quá trình lập kế hoạch của Diffusion Forcing như một khung ra quyết định
  • Để mô hình hóa causal uncertainty trong tương lai, có thể đặt mức nhiễu thấp cho tương lai gần và mức nhiễu cao cho tương lai xa

Imitation learning với horizon dài

  • Nhiều bài toán thực tế không mang tính Markovian và cần bộ nhớ horizon dài để hoàn thành
  • Trong bài toán robot thực tế, cánh tay robot được yêu cầu dùng khe thứ ba để hoán đổi vị trí của hai loại trái cây
    • Trái cây được đặt ngẫu nhiên vào các khe ở thời điểm bắt đầu
    • Chỉ với một quan sát đơn lẻ thì không thể biết cách bố trí trái cây ban đầu, nên không thể quyết định bước tiếp theo
  • Trong thí nghiệm planning, tác giả loại bỏ guidance và thực hiện feedback control bằng cách diffusion đồng thời chuỗi action-observation
  • Video được đưa ra cho thấy nhiều lần thành công liên tiếp trước khi xảy ra thất bại
    • Ngay cả khi vị trí trái cây bị ngẫu nhiên hóa bởi lần chạy trước, robot vẫn có thể hoàn thành nhiệm vụ
  • Để tăng độ vững với các distraction chưa thấy ở thời điểm kiểm thử, có thể prompt hệ thống xử lý quan sát đầu vào như noisy observation
    • Ví dụ sử dụng cách gây nhiễu bằng cách ném ngẫu nhiên túi mua sắm vào trường nhìn

Cập nhật 2025: Scaling Up Diffusion Forcing

  • Trong bản cập nhật năm 2025, mô hình state-of-the-art Wan2.1-T2V-1.3B chỉ được finetune 20k step trên 49 khung hình
  • Sau đó mô hình rollout ổn định tới 217 khung hình, tức gấp 5 lần
  • Có thể xem công trình tiếp theo tại History-Guided Video Diffusion
  • Các video ví dụ gồm sóng biển lúc hoàng hôn, khỉ trên đá, chó chuẩn bị đi ngủ, góc nhìn trên không của bãi biển nhiệt đới, cảnh lướt sóng và cảnh xe đạp leo dốc

Hướng nghiên cứu tiếp theo

  • Conditioning

    • Khi mở rộng sang chuỗi dài, conditioning dựa trên thay thế thường được sử dụng
    • “Video Diffusion Models” của Johnathan Ho bàn về lý do cách này không đúng
    • Diffusion Forcing cung cấp một cách conditioning tự nhiên hơn bằng cách xử lý context token là clean và future token là noisy, nhưng phần này chưa được khám phá sâu
  • Noise as masking

    • Cách tiếp cận này đạt được fractional masking cho token, thay vì masking nhị phân
    • Nó cũng đủ tổng quát để đưa vào các phương pháp self-supervised learning như MAE
    • Việc thêm nhiễu còn có một cách diễn giải thú vị trong frequency domain
  • Compositionality

    • Bài báo cho thấy có thể đạt compositionality bằng cách kiểm soát độ dài history
    • Khi dùng noise as masking, mô hình có thể tự quyết định khi nào nên bỏ qua history không cần thiết và chỉ conditioning trên horizon ngắn hơn
  • Non-causal version

    • Trong bài báo này, causality quan trọng đối với ra quyết định nên causal Diffusion Forcing được sử dụng
    • Ý tưởng noise as masking cũng có thể áp dụng cho mô hình non-causal
    • Nếu mask các entry mà dự đoán không nên nhìn thấy bằng pure Gaussian noise, có thể huấn luyện phiên bản non-causal rồi làm cho nó vận hành theo kiểu causal ở thời điểm lấy mẫu
  • Alternative Guidance

    • Trong khung ra quyết định được đề xuất, guidance được áp dụng lên observation để giữ thiết lập gần với Diffuser hơn
    • Một phiên bản áp dụng guidance lên learned reward cũng đã được đề xuất nhưng chưa được khám phá trong bài báo
  • Noise scheme

    • Mức nhiễu độc lập theo từng token được thiết kế nhằm hướng tới tính tổng quát, nhưng không phải lúc nào cũng tối ưu cho mọi bài toán
    • Nếu dữ liệu có tương quan rất cục bộ theo trục thời gian thì có thể giữ lại quá nhiều dư thừa
    • Điều này có thể ảnh hưởng tới signal-to-noise ratio tổng thể
  • Next few token prediction

    • Chỉ các thí nghiệm planning mới dùng next few token prediction, còn thí nghiệm video vẫn là kiểu next-token
    • Trong phiên bản RNN, cách này không hoạt động quá tốt, nhưng trong mã của phiên bản transformer thì lại hoạt động rất tốt
    • Nếu “few” quá lớn trong mô hình causal, next few token prediction có thể tạo ra inconsistency
    • Trong mô hình non-causal, hiện tượng này ít xảy ra hơn
  • Latent & DiT version

    • Sau khi phát hành, phiên bản 3D U-Net của Diffusion Forcing đã được công bố
    • Diffusion Forcing cũng có thể áp dụng cho DiT dạng causal hoặc non-causal
    • Scheme ổn định hóa phù hợp tự nhiên hơn trong latent space có VAE
    • Pixel corruption không nhất thiết là Gaussian, nhưng corruption trong VAE latent có thể gần với Gaussian hơn

Thông tin trích dẫn

@article{chen2025diffusion,
  title={Diffusion forcing: Next-token prediction meets full-sequence diffusion},
  author={Chen, Boyuan and Mart{\'\i} Mons{\'o}, Diego and Du, Yilun and Simchowitz, Max and Tedrake, Russ and Sitzmann, Vincent},
  journal={Advances in Neural Information Processing Systems},
  volume={37},
  pages={24081--24125},
  year={2025}
}

1 bình luận

 
GN⁺ 2024-07-06
Ý kiến trên Hacker News
  • Có vài ý tưởng nổi bật ở đây. Trước hết, họ kết hợp masking chuỗi, ý tưởng học cốt lõi của LLM, với mô hình khuếch tán, theo cách theo dõi mức “bất định” cho từng pixel
    Mức “bất định” này được xử lý giống như mức “nhiễu” trong mô hình khuếch tán, và mô hình được điều khiển bởi một embedding nào đó để khử nhiễu
    Nhờ vậy có thể chốt một số phần của ảnh trước những phần khác, nên chẳng hạn có thể dùng để giải mê cung. Trong bài báo, họ còn trình diễn điều khiển cánh tay robot để di chuyển trái cây, khá đáng ngạc nhiên
    Tiêu đề thậm chí có cảm giác đánh giá thấp ý tưởng này. Vì mức masking là giá trị thực, đây là một cách thực hiện masking một phần, và tôi thấy đây là một ý tưởng khá sâu sắc và thú vị
    Tuy nhiên, bài báo còn nhiều phần chưa đề cập nên tôi rất tò mò về codebase. Chưa rõ chính xác họ thiết lập tác vụ lần theo mê cung và tác vụ mở rộng video như thế nào, kết nối cánh tay robot với mô hình này ra sao và chỉ dẫn công việc mong muốn thế nào. Bản thân kiến trúc có lẽ cũng cần nhiều bài báo hoặc phần giải thích chi tiết
    • Đây có vẻ là một cách xử lý rất thanh lịch đối với mô hình hóa bất định trong lập kế hoạch và khám phá
      Điểm mạnh là trong khi biến tác vụ thành độ dài biến thiên, nó vẫn buộc agent không xem tình huống hiện tại là hiển nhiên mà phải phản ánh lại. Vì vậy, ngay cả khi có khó khăn bất ngờ, nó có thể phản ứng tốt hơn dọc theo đường đi và khái quát hóa tốt hơn
      Tôi đoán đây là thiết lập coi mọi tác vụ là chân trời biến thiên, và trạng thái hiện tại là kết quả của các hành động trước đó. Cũng muốn xem code
    • Codebase được liên kết chưa đủ sao? Tôi muốn hiểu ở đây còn thiếu gì
      https://github.com/buoyancy99/diffusion-forcing
  • Tôi tò mò liệu có nghiên cứu hay công cụ nào áp dụng kỹ thuật kiểu khuếch tán cho LLM sinh văn bản hiện có, nhưng hoạt động trên các mô hình nhỏ như GPT / Phi 3 / Gwen mà không cần tiền huấn luyện mới, hoặc chỉ cần tinh chỉnh một chút không
    Tôi biết những thứ như Tree of Thoughts kèm Monte Carlo tree search, và chúng tương tự ở mức nào đó, nhưng thường mục tiêu học bằng phần thưởng lại khác, nên tôi quan tâm đến cách gần hơn với sinh ở cấp token
    Điều này có khả thi không?
  • Tôi đang làm việc trong lĩnh vực này, và công trình này được trình bày theo cách quá khó hiểu
    Vấn đề họ muốn giải quyết là gì? Họ đang đề xuất một mô hình sinh mới à?
    • Không có nền tảng lý thuyết, nhưng video cũng khó hiểu. “Teacher Forcing” trông có vẻ tệ, còn phần còn lại tốt hay xấu thì tôi không biết. Ngay từ đầu, baseline là gì?
  • Russ giờ làm khuếch tán à? Có vẻ sẽ khá áp dụng được cho robotics
  • Có phải tôi bỏ sót điều gì liên quan đến thời gian huấn luyện không? Nếu thêm nhiễu theo từng token thì tốc độ huấn luyện có chậm đi nhiều không? Dù sao vẫn là bài báo hay
  • Công trình hay. Tôi tò mò liệu có thể áp dụng lại nó cho LLM dưới dạng mô hình khuếch tán rời rạc dùng masking một phần không
  • Rất hay, nhưng tại sao lại gọi là diffusion forcing?
    • Có trong đoạn thứ hai:
      Họ nói tên “Diffusion Forcing” xuất phát từ “teacher forcing” và “diffusion models”