1 คะแนน โดย GN⁺ 2024-07-06 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Diffusion Forcing คือวิธีสร้างลำดับที่เรียนรู้ระดับสัญญาณรบกวนของ diffusion ที่แตกต่างกันในแต่ละโทเค็น ทำให้ตอน sampling สามารถใช้งานได้ทั้งแบบโมเดลทำนายโทเค็นถัดไปและแบบโมเดล diffusion ทั้งลำดับ
  • ตีความสัญญาณรบกวนของ diffusion เป็น masking ได้ โดยคงโทเค็นในอดีตให้สะอาด และปล่อยให้เฉพาะโทเค็นในอนาคตอยู่ในสถานะมีสัญญาณรบกวน หรือจัดวางสัญญาณรบกวนระดับต่าง ๆ ทั่วทั้งลำดับได้
  • ในการทำนายวิดีโอ DMLab และ Minecraft นั้น teacher forcing กระจายออกนอกเสถียรภาพได้ง่าย ส่วน causal full-sequence diffusion มีความสอดคล้องแกว่งไกว ขณะที่ Diffusion Forcing สร้างการทำนายที่เสถียรกว่า
  • ในการตัดสินใจและการวางแผน จะนิยามโทเค็นเป็น [a_t, o_{t+1}] เพื่อโมเดลพฤติกรรมและการสังเกตหลังจากนั้นร่วมกัน และสามารถให้ระดับสัญญาณรบกวนต่างกันระหว่างอนาคตอันใกล้กับอนาคตระยะไกลได้
  • สามารถ rollout แบบยาวเกินความยาวที่ใช้ฝึกได้ โดย DMLab ฝึกด้วย 36 เฟรมแล้วสร้างได้มากกว่า 2000 เฟรม และ Minecraft ฝึกด้วย 72 เฟรมแล้วสร้างได้มากกว่า 2000 เฟรม โดยไม่ใช้ sliding window

โครงสร้างหลักของ Diffusion Forcing

  • ชื่อ Diffusion Forcing มาจาก teacher forcing และ diffusion models
  • เป้าหมายคือรวมข้อดีของโมเดล autoregressive แบบทำนายโทเค็นถัดไปกับโมเดล diffusion ทั้งลำดับไว้ในพาราไดม์การฝึกเดียวกัน
    • ข้อดีของโมเดลทำนายโทเค็นถัดไป: การสร้างความยาวแปรผัน
    • ข้อดีของโมเดล diffusion ทั้งลำดับ: guidance ระดับลำดับ ที่ชี้นำการ sampling ไปตาม trajectory ที่ต้องการ
  • โมเดลที่ฝึกครั้งเดียวสามารถนำไปใช้งานต่างรูปแบบกันได้ในช่วง sampling
    • สร้างได้อย่างยืดหยุ่นและประกอบกันได้เหมือนโมเดลทำนายโทเค็นถัดไป
    • ใช้ guidance กับทั้งลำดับได้เหมือนโมเดล diffusion ทั้งลำดับ

สัญญาณรบกวนรายโทเค็นและ “noise as masking”

  • Diffusion Forcing ฝึก sequence diffusion แต่ทำให้แต่ละโทเค็นมี ระดับสัญญาณรบกวน แตกต่างกัน
  • สัญญาณรบกวนของ diffusion มองได้เป็น masking หลายระดับความเข้ม
    • full-sequence diffusion: denoise ทุกเฟรมพร้อมกันที่ระดับสัญญาณรบกวนเดียวกัน
    • การทำนายโทเค็นถัดไป: คงโทเค็นในอดีตไว้ที่สัญญาณรบกวน 0 แล้ว denoise เฟรมถัดไปทีละเฟรม
  • เมื่อเปลี่ยนการจัดวางสัญญาณรบกวนภายในลำดับตอน sampling ก็สร้างพฤติกรรมได้หลายแบบ
    • ทำให้ autoregressive rollout เสถียรขึ้น
    • guidance สำหรับ horizon ยาว
    • planning ที่รวม causal uncertainty

คุณสมบัติทางทฤษฎี

  • มีการพิสูจน์ว่า Diffusion Forcing เป็นการ optimize variational lower bound ของ likelihood ของลำดับย่อย ทั้งหมดของโทเค็นที่สุ่มมาจาก joint distribution จริง
  • คุณสมบัตินี้แสดงให้เห็นว่า objective ของการฝึกไม่ได้เชื่อมโยงกับประสิทธิภาพเชิงประจักษ์เท่านั้น แต่ยังเชื่อมกับ likelihood ของลำดับย่อยโดยรวมด้วย

ผลลัพธ์การทำนายวิดีโอ

  • ใช้ผลวิดีโอที่โมเดลสังเคราะห์เองโดยตรง และสร้างโดยไม่ใช้ VAE หรือ superresolution
  • ระบุไว้ว่าผลลัพธ์ถูก sampling โดยไม่มี cherry-picking
  • ในการเปรียบเทียบบนชุดข้อมูล DMLab ความแตกต่างของทั้งสามวิธีเห็นได้ชัด
    • teacher forcing กระจายออกนอกเสถียรภาพได้ง่าย
    • causal full-sequence diffusion model มีปัญหาความสอดคล้องอย่างรุนแรง
    • Diffusion Forcing ทำการทำนายวิดีโอได้อย่างเสถียรและสอดคล้อง
  • ชุดข้อมูล Minecraft ก็พบรูปแบบเดียวกัน
    • teacher forcing กระจายออกนอกเสถียรภาพได้ง่าย
    • causal full-sequence diffusion model มีปัญหาความสอดคล้องอย่างรุนแรง
    • Diffusion Forcing สร้างการทำนายที่เสถียรและสอดคล้อง

วิดีโอ rollout ยาวเกินความยาวที่ใช้ฝึก

  • Diffusion Forcing สามารถ rollout วิดีโอที่ยาวกว่าความยาวลำดับสูงสุดที่ใช้ฝึกมากได้
  • rollout นี้ทำ โดยไม่ใช้ sliding window
    • ใน RNN rollout ไม่ได้รีเซ็ต latent z เป็น latent เริ่มต้น z0
    • ผลด้านการทำให้เสถียรปรากฏใน Diffusion Forcing
  • ผลลัพธ์ DMLab:
    • ฝึกด้วย 36 เฟรม
    • rollout ได้มากกว่า 2000 เฟรม
    • ทำโดยไม่ใช้ sliding window
    • ความละเอียดของชุดข้อมูลต้นฉบับคือ 64x64
    • คุณภาพวิดีโอลดลงเพราะการบีบอัด mp4 ของวิดีโอยาว และมีการให้ภาพ PNG visualization เพื่อสะท้อนคุณภาพการสร้างต้นฉบับด้วย
  • ผลลัพธ์ Minecraft:
    • ฝึกด้วย 72 เฟรม
    • rollout ได้มากกว่า 2000 เฟรมโดยไม่ diverge
    • ทำโดยไม่ใช้ sliding window
    • ความละเอียดของชุดข้อมูลต้นฉบับคือ 128x128
    • ในบางสถานการณ์ agent จะหยุดอยู่หน้าบล็อก dirt หรือ stone block สูงสองบล็อกจนกว่าจะเปลี่ยนทิศทาง ซึ่งถูกจัดว่าเป็นปัญหาโดยธรรมชาติของการเก็บชุดข้อมูล

Diffusion Planning

  • คล้ายกับงานเดิมอย่าง Diffuser สามารถใช้ guidance ในช่วงทดสอบเพื่อใช้ลำดับ diffusion เป็น planner ได้
  • Diffusion Forcing นิยามแต่ละโทเค็นเป็น [a_t, o_{t+1}] เพื่อโมเดลความสัมพันธ์เชิงเหตุผลอย่างชัดเจน
    • มี belief เกี่ยวกับว่าจะทำ action ใด
    • มี belief ร่วมด้วยเกี่ยวกับ observation ที่ action นั้นจะนำไปสู่
    • เมื่อได้ observation ใหม่หลัง action ก็สามารถอัปเดต belief ด้วย posterior estimation ได้
  • วิดีโอกระบวนการ diffusion planning แสดงภาพกระบวนการ Diffusion Forcing planning ในฐานะเฟรมเวิร์กการตัดสินใจ
  • เพื่อโมเดล causal uncertainty ของอนาคต สามารถตั้งอนาคตอันใกล้ให้มีระดับสัญญาณรบกวนต่ำ และอนาคตระยะไกลให้มีระดับสัญญาณรบกวนสูงได้

Imitation learning แบบ horizon ยาว

  • งานในโลกจริงจำนวนมากไม่ใช่แบบ Markovian และต้องใช้ หน่วยความจำ horizon ยาว เพื่อทำให้สำเร็จ
  • ในงานหุ่นยนต์จริง แขนหุ่นยนต์ต้องใช้สล็อตที่สามเพื่อสลับสล็อตของผลไม้สองชิ้นกัน
    • ผลไม้ถูกวางในสล็อตแบบสุ่มตอนเริ่มต้น
    • จาก observation เพียงครั้งเดียวไม่สามารถรู้การจัดวางผลไม้เริ่มต้นได้ จึงตัดสินใจขั้นถัดไปไม่ได้
  • ในการทดลอง planning ได้นำ guidance ออก และทำ feedback control โดย diffusing ลำดับ action-observation ร่วมกัน
  • วิดีโอที่นำเสนอแสดงความสำเร็จต่อเนื่องหลายครั้งก่อนเกิดความล้มเหลว
    • แม้ตำแหน่งผลไม้จะถูกสุ่มใหม่จากการรันก่อนหน้า หุ่นยนต์ก็ยังทำงานได้
  • เพื่อให้ทนทานต่อ distraction ที่ไม่เคยเห็นในช่วงทดสอบ สามารถ prompting ให้ปฏิบัติต่อ observation ที่เข้ามาเป็น noisy observation ได้
    • ตัวอย่างใช้วิธี distraction โดยสุ่มโยนถุงช้อปปิ้งเข้ามาในมุมมอง

อัปเดตปี 2025: Scaling Up Diffusion Forcing

  • ในอัปเดตปี 2025 ได้ finetuning Wan2.1-T2V-1.3B ระดับ state-of-the-art เพียง 20k step และ 49 เฟรม
  • จากนั้น rollout 5 เท่าเพื่อสร้างได้อย่างเสถียรถึง 217 เฟรม
  • งานต่อเนื่องดูได้ที่ History-Guided Video Diffusion
  • วิดีโอตัวอย่างรวมถึงคลื่นยามอาทิตย์ตก ลิงบนโขดหิน สุนัขที่กำลังเตรียมตัวนอน มุมมองทางอากาศของชายหาดเขตร้อน ฉากเล่นเซิร์ฟ และฉากจักรยานขึ้นเนิน เป็นต้น

ทิศทางการวิจัยในอนาคต

  • Conditioning

    • เมื่อขยายไปสู่ลำดับยาว มักใช้ conditioning แบบอิงการแทนที่
    • “Video Diffusion Models” ของ Johnathan Ho อภิปรายว่าทำไมวิธีนี้จึงผิด
    • Diffusion Forcing ให้แนวทาง conditioning ที่เป็นธรรมชาติกว่า โดยถือว่า context token เป็น clean และ future token เป็น noisy แต่ส่วนนี้ยังไม่ได้ถูกสำรวจอย่างละเอียด
  • Noise as masking

    • วิธีนี้ทำให้เกิด fractional masking ของโทเค็น ไม่ใช่ binary masking
    • มีความทั่วไปพอที่จะใส่ในวิธี self-supervised learning อย่าง MAE ได้
    • การเพิ่มสัญญาณรบกวนมีการตีความที่น่าสนใจใน frequency domain
  • Compositionality

    • ใน论文แสดงให้เห็นว่าสามารถได้ compositionality ด้วยการควบคุม history length
    • เมื่อใช้ noise as masking โมเดลอาจตัดสินใจเองได้ว่าเมื่อใดควรละเลย history ที่ไม่จำเป็น และ condition เฉพาะกับ horizon ที่สั้นกว่า
  • Non-causal version

    • งานวิจัยนี้ใช้ causal Diffusion Forcing เพราะ causality สำคัญในการตัดสินใจ
    • แนวคิด noise as masking สามารถนำไปใช้กับโมเดล non-causal ได้เช่นกัน
    • หาก mask entry ที่การทำนายไม่ควรมองเห็นด้วย pure Gaussian noise ก็สามารถฝึกเวอร์ชัน non-causal แล้วทำให้เป็น causal ในช่วง sampling ได้
  • Alternative Guidance

    • ในเฟรมเวิร์กการตัดสินใจที่เสนอ ใช้ guidance กับ observation เพื่อคงเซ็ตอัปให้ใกล้กับ Diffuser มากขึ้น
    • มีการเสนอเวอร์ชันที่ใช้ guidance กับ learned reward ด้วย แต่ไม่ได้สำรวจใน论文
  • Noise scheme

    • ระดับสัญญาณรบกวนอิสระรายโทเค็นถูกออกแบบโดยมีเป้าหมายด้านความทั่วไป แต่ไม่ได้เหมาะที่สุดกับทุกงาน
    • หากข้อมูลมีความสัมพันธ์เฉพาะที่มากตามแกนเวลา อาจคงความซ้ำซ้อนมากเกินไป
    • สิ่งนี้อาจส่งผลต่อ signal-to-noise ratio โดยรวม
  • Next few token prediction

    • ใช้ next few token prediction เฉพาะในการทดลอง planning ส่วนการทดลองวิดีโอยังเป็นแบบ next-token
    • ในเวอร์ชัน RNN ทำงานได้ไม่ดีนัก แต่ในโค้ดเวอร์ชัน transformer ทำงานได้ดีมาก
    • ในโมเดล causal หาก “few” มีขนาดใหญ่มาก next few token prediction อาจสร้าง inconsistency ได้
    • ในโมเดล non-causal ปรากฏการณ์นี้เกิดน้อยกว่า
  • Latent & DiT version

    • หลังจาก release มีการเผยแพร่ Diffusion Forcing เวอร์ชัน 3D U-Net
    • Diffusion Forcing สามารถใช้กับ DiT แบบ causal หรือ non-causal ได้
    • scheme การทำให้เสถียรเข้ากันได้เป็นธรรมชาติกว่าใน latent space ที่มี VAE
    • pixel corruption ไม่จำเป็นต้องเป็น Gaussian แต่ corruption ของ latent ใน VAE อาจใกล้เคียง Gaussian มากกว่า

ข้อมูลการอ้างอิง

@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 ความคิดเห็น

 
GN⁺ 2024-07-06
ความคิดเห็นบน Hacker News
  • มีไอเดียบางอย่างในนี้ที่สะดุดตา อย่างแรกคือการนำ sequence masking ซึ่งเป็นแนวคิดหลักในการฝึก LLM มาผสานกับโมเดล diffusion และใช้วิธีติดตามระดับ ‘ความไม่แน่นอน’ ของแต่ละพิกเซล
    ระดับ ‘ความไม่แน่นอน’ นี้ถูกปฏิบัติเหมือนระดับ ‘noise’ ในโมเดล diffusion และโมเดลจะถูกควบคุมด้วย embedding บางอย่างเพื่อกำจัด noise
    สิ่งนี้ทำให้สามารถสรุปบางส่วนของภาพให้แน่นอนก่อนส่วนอื่นได้ เช่น นำไปใช้แก้เขาวงกตได้ ในเปเปอร์ยังสาธิตไปถึงการควบคุมแขนกลให้ย้ายผลไม้ ซึ่งน่าทึ่งทีเดียว
    ชื่อเรื่องกลับให้ความรู้สึกว่าประเมินไอเดียนี้ต่ำไปด้วยซ้ำ เพราะระดับ masking เป็นค่าจำนวนจริง จึงเป็นวิธีทำ partial masking และผมมองว่าเป็นไอเดียที่ลึกและน่าสนใจมาก
    อย่างไรก็ตาม ในเปเปอร์ยังมีหลายส่วนที่ไม่ได้กล่าวถึง เลยอยากเห็น codebase มาก ๆ เช่น งานติดตามเขาวงกตกับงานขยายวิดีโอนั้นจัดรูปแบบอย่างไรแน่ชัด เชื่อมแขนกลเข้ากับโมเดลนี้อย่างไร และสั่งให้ทำงานที่ต้องการอย่างไร ก็ยังไม่ชัดเจน ตัวสถาปัตยกรรมเองก็ดูเหมือนต้องมีเปเปอร์อีกหลายฉบับหรือคำอธิบายละเอียด ๆ ประกอบ
    • นี่ดูเป็นวิธีที่จัดการ uncertainty modeling ในการวางแผนและการค้นหาได้อย่างสง่างามมาก
      จุดที่ทรงพลังคือการทำให้งานมีความยาวแปรผันได้ ขณะเดียวกันก็บังคับให้เอเจนต์ไม่ถือว่าสถานการณ์ปัจจุบันเป็นเรื่องแน่นอน แต่ต้องสะท้อนมันเข้าไปด้วย ดังนั้นแม้จะเจอความยากที่ไม่คาดคิด ก็สามารถตอบสนองตามเส้นทางและ generalize ได้ดีขึ้น
      ผมเดาว่าเป็นการตั้งค่าให้ทุกงานถูกมองเป็น variable horizon และให้สถานะปัจจุบันเป็นผลลัพธ์ของการกระทำก่อนหน้า ถ้าได้ดูโค้ดด้วยก็คงดี
    • codebase ที่ลิงก์ไว้ยังไม่พอหรือ? อยากเข้าใจว่ามีอะไรที่ขาดไป
      https://github.com/buoyancy99/diffusion-forcing
  • สงสัยว่ามีงานวิจัยหรือเครื่องมือที่นำเทคนิคคล้าย diffusion ไปใช้กับ LLM สร้างข้อความแบบเดิม โดยไม่ต้อง pretrain ใหม่ หรือใช้แค่ fine-tuning เล็กน้อย แล้วให้ทำงานได้กับโมเดลอย่าง GPT ขนาดเล็ก / Phi 3 / Gwen หรือไม่
    รู้จักพวก Tree of Thoughts ที่ใช้ Monte Carlo tree search ประกอบ และก็คล้ายกันอยู่บ้าง แต่โดยปกติเป้าหมายที่ฝึกด้วย reward มักต่างออกไป เลยสนใจวิธีที่ใกล้กับการสร้างในระดับ token มากกว่า
    แบบนี้เป็นไปได้ไหม?
  • ผมทำงานในสายนี้อยู่ แต่งานนี้ถูกนำเสนอในรูปแบบที่ เข้าใจยากเกินไป
    ปัญหาที่พยายามแก้คืออะไร? กำลังเสนอ generative model แบบใหม่หรือ?
    • ไม่มีพื้นฐานทฤษฎี แต่ดูวิดีโอแล้วก็ยังไม่ค่อยเข้าใจ “Teacher Forcing” ดูเหมือนจะแย่ แต่ที่เหลือดีหรือแย่ก็ไม่รู้ด้วยซ้ำ แล้ว baseline คืออะไรตั้งแต่แรก?
  • Russ ตอนนี้หันมาทำ diffusion แล้วหรือ? ดูน่าจะประยุกต์ใช้กับ robotics ได้พอสมควร
    • Diffusion policy เริ่มถูกใช้ใน robotics ช่วงหลังจริง ๆ ดู https://diffusion-policy.cs.columbia.edu/ และงานวิจัยที่เกี่ยวข้องได้
  • ผมพลาดอะไรเกี่ยวกับเวลาฝึกไปหรือเปล่า? ถ้าเติม noise แยกตาม token จะทำให้ ความเร็วในการฝึก ช้าลงมากไหม? แต่ก็เป็นเปเปอร์ที่เจ๋งอยู่ดี
  • งานเจ๋งมาก สงสัยว่าจะนำสิ่งนี้กลับไปใช้กับ LLM ในฐานะโมเดล discrete diffusion ที่ใช้ partial masking ได้ไหม
  • เจ๋งมาก แต่ทำไมถึงชื่อ diffusion forcing?
    • อยู่ในย่อหน้าที่สอง:
      เขาบอกว่าชื่อ “Diffusion Forcing” มาจาก “teacher forcing” และ “diffusion models”