1 คะแนน โดย GN⁺ 2024-08-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • GameNGen สร้างการเปลี่ยนผ่านของภาพในเกมคลาสสิก DOOM โดยใช้เพียงโมเดลโครงข่ายประสาท ทำให้โต้ตอบแบบเรียลไทม์ได้โดยไม่ต้องมีเอนจินแบบดั้งเดิมแยกต่างหาก
  • ทำงานได้ที่ มากกว่า 20fps บน TPU เพียงตัวเดียว และมีเป้าหมายเพื่อรักษาคุณภาพภาพกับการตอบสนองไว้แม้ในเส้นทางการเล่นที่ยาวนาน
  • การทำนายเฟรมถัดไปทำได้ PSNR 29.4 และผู้ประเมินที่เป็นมนุษย์สามารถแยกคลิปสั้น ๆ ระหว่างเกมจริงกับการจำลองได้ดีกว่าการเดาสุ่มเพียงเล็กน้อย
  • การฝึกอาศัยบันทึกการกระทำและการสังเกตที่สร้างโดยเอเจนต์ RL โดย โมเดลดิฟฟิวชัน จะสร้างเฟรมถัดไปจากลำดับของเฟรมก่อนหน้าและการกระทำ
  • เพื่อลด drift แบบออโตรีเกรสซีฟที่สะสมระหว่างการอนุมาน จึงเพิ่ม Gaussian noise ให้กับเฟรมบริบทระหว่างการฝึก ซึ่งมีบทบาทสำคัญต่อความเสถียรเชิงภาพในระยะยาว

การจำลอง DOOM ที่ทำงานด้วยโครงข่ายประสาทเพียงอย่างเดียว

  • GameNGen คือเอนจินเกมที่อิงกับโมเดลโครงข่ายประสาท ซึ่งทำให้โต้ตอบแบบเรียลไทม์ตามเส้นทางที่ยาวนานในสภาพแวดล้อมที่ซับซ้อนได้
  • เดโมนี้เป็นผลลัพธ์จากการจำลองการบันทึกแบบเรียลไทม์ของคนที่เล่น DOOM โดยใช้เพียง โมเดลโครงข่ายประสาทของ GameNGen
  • ประสิทธิภาพและคุณภาพมุ่งเน้นไปที่การทำให้แยกจากการเล่นจริงได้ยาก
    • จำลอง DOOM แบบโต้ตอบได้ที่ มากกว่า 20fps บน TPU เพียงตัวเดียว
    • การทำนายเฟรมถัดไปทำได้ PSNR 29.4
    • ค่า PSNR นี้อยู่ในระดับใกล้เคียงกับการบีบอัด JPEG แบบสูญเสียข้อมูล
    • ผู้ประเมินที่เป็นมนุษย์สามารถแยกคลิปเกมสั้น ๆ กับคลิปที่จำลองได้ดีกว่าการเดาสุ่มเพียงเล็กน้อย
  • ดูข้อมูลที่เกี่ยวข้องได้ใน Paper และ Arxiv

โครงสร้างของข้อมูลฝึกและโมเดลสร้างภาพ

  • การเก็บข้อมูลทำโดยฝึก เอเจนต์ RL แบบอัตโนมัติ แทนการรวบรวมการเล่นของมนุษย์จำนวนมาก
    • บันทึกการกระทำและการสังเกตจากเอพิโซดการฝึกของเอเจนต์
    • บันทึกการกระทำและการสังเกตที่เก็บไว้กลายเป็นข้อมูลฝึกของโมเดลสร้างภาพ
  • โมเดลสร้างภาพนำดิฟฟิวชันโมเดลขนาดเล็ก Stable Diffusion v1.4 กลับมาใช้ใหม่
    • สร้างเฟรมถัดไปโดยมีลำดับของการกระทำก่อนหน้าและเฟรมการสังเกตเป็นเงื่อนไข
    • เพื่อลด drift ที่เกิดจากการอนุมานแบบออโตรีเกรสซีฟ จึงเพิ่ม Gaussian noise ให้กับเฟรมบริบทที่ถูกเข้ารหัสระหว่างการฝึก
    • การฉีด noise นี้ช่วยให้โมเดลปรับแก้ข้อมูลที่สุ่มมาจากเฟรมก่อนหน้า ซึ่งสำคัญต่อการรักษาความเสถียรเชิงภาพในช่วงเวลาที่ยาวนาน
  • ออโตเอนโคเดอร์ที่ผ่านการพรีเทรนของ Stable Diffusion v1.4 บีบอัดแพตช์ขนาด 8x8 พิกเซลให้เป็น 4 latent channels
    • ในการทำนายเฟรมของเกม จะเกิดอาร์ติแฟกต์ที่สังเกตได้ในรายละเอียดเล็ก ๆ และโดยเฉพาะแถบ HUD ด้านล่าง
    • เพื่อยกระดับคุณภาพของภาพ จึงฝึกเฉพาะดีโคเดอร์ของ latent autoencoder ด้วย MSE loss เทียบกับพิกเซลของเฟรมเป้าหมาย

1 ความคิดเห็น

 
GN⁺ 2024-08-29
ความคิดเห็นจาก Hacker News
  • น่าประหลาดใจที่ดูเหมือนว่าโมเดล diffusion จะมี เหตุและผล·ลำดับเวลา อยู่มากกว่าที่คิด
    การที่ Google ใช้ SD 1.4 เป็นแกนหลักของโมเดล diffusion ก็เป็น reminder ที่ดีว่าโมเดลแบบเปิดก็มีประโยชน์แม้กับบริษัทผูกขาดคลาวด์ขนาดใหญ่
    สิ่งที่น่าประทับใจในสรุปคือ 1) ให้เอเจนต์เล่น Doom จนได้ข้อมูลฝึกแทบไม่จำกัด 2) ใส่ Gaussian noise ลงในเฟรมต้นฉบับ แล้วให้รางวัลกับการ “แก้กลับ” เฟรมถัด ๆ ไป ซึ่งเป็นหัวใจของ “การเรนเดอร์” ที่เสถียรในระยะยาว
    โดยเฉพาะข้อหลังนั้นน่าสนใจ เพราะเป็น intuition ว่ากำลังสอนให้โมเดลรู้จักการแก้ข้อผิดพลาดและความเสถียร
    ผมยังสงสัยว่าถ้ามองโมเดลนี้เหมือนเป็น “โมเดลฐาน Doom” แล้ว fine-tune ให้เป็นสไตล์ photorealistic หรือ ray tracing อาจทำให้ได้การเรนเดอร์ที่ดูดีขึ้นได้ง่ายหรือไม่

    • ถ้าดูวิดีโอเดโมอย่างละเอียด คงต้องลดความคาดหวังเรื่อง “เหตุและผล·ลำดับเวลา” ลงเล็กน้อย
      ผู้เล่นแทบไม่เดินย้อนกลับ แต่เมื่อในเกมตัวละครหันกลับไปดูสิ่งเดิมอีกครั้งจริง ๆ มันเปลี่ยนไปมาก ห้องที่มีกำแพงสีเทาและป้ายสามเหลี่ยมเห็นชัดเป็นพิเศษ
      นี่สอดคล้องกับพฤติกรรมที่คาดได้จากโมเดล diffusion มันถูกฝึกด้วยเฟรมเกมเพลย์หลายพันล้านเฟรม จึงสร้างเฟรม “ถัดไป” ที่ดูสมเหตุสมผลจากเฟรมก่อนหน้าสองสามเฟรมได้ดี แต่ไม่ได้เข้าใจ ข้อจำกัดเชิงตรรกะของเกม อย่างลึกซึ้งในแบบที่จดจำโครงสร้างของเลเวลได้
    • ขอแก้ความเข้าใจผิดบางอย่างก่อน: ตัวโมเดล diffusion เอง ไม่ได้รักษาสถานะ
      แม้แนวคิดอย่างเหตุและผลอาจถูก encode อยู่ใน weights บางส่วน แต่โมเดลเรนเดอร์ทีละเฟรมเท่านั้น เดิมทีมันเป็นโมเดล text-to-image ไม่ใช่ text-to-video
      แทนที่จะใช้ข้อความ สถานะก่อนหน้าและเฟรมก่อนหน้าจะถูกป้อนเข้าไปเป็นอินพุตเพื่อทำนายเฟรมถัดไป
      noise ถูกเติมลงในเฟรมก่อนหน้าก่อนป้อนเข้าโมเดล SD และเอเจนต์ reinforcement learning ไม่ได้เป็นผู้ “แก้” สิ่งนั้น
      เป้าหมายการกำจัด noise ถูกใช้อย่างแพร่หลายใน machine learning และโดย intuition คือการบังคับให้โมเดลพยากรณ์ใช้บริบท เช่น เฟรมหรือคำที่อยู่รอบ ๆ
      ในกรณีนี้ มันช่วยป้องกันข้อผิดพลาดเล็ก ๆ ที่เกิดจากความสุ่มของโมเดล diffusion เชิงสร้างสรรค์ไม่ให้สะสมจนเกิดการ drift แบบ autoregressive ใน Figure 4 จะเห็น drift แบบนั้นเมื่อผู้เล่นยืนนิ่ง
    • นี่ใกล้เคียงกับ ความทรงจำของวิดีโอเกม ที่ทำนายเฟรมถัดไปจากเฟรมก่อนหน้าไม่กี่เฟรม มากกว่าจะเป็นเกมจริง ๆ
      ประมาณว่า “จินตนาการได้ว่าน่าจะเกิดอะไรขึ้นต่อไป”
      ผมอยากเรียกมันว่า video compression ที่ไร้ประสิทธิภาพที่สุดในโลก
      สิ่งที่อยากเห็นจริง ๆ คือพลังในการทำนายจริง ๆ หรือก็คือจินตนาการ ใน abstract ยังไม่เห็นชัดนัก
      โมเดลถูกฝึกด้วยชุดแผนที่คลาสสิก ถ้าป้อนเฟรมเกมเพลย์ไม่กี่เฟรมจากแผนที่ที่ไม่คุ้นเคยเข้าไป มันจะทำอะไร? มันจะจินตนาการสิ่งที่จะเกิดขึ้นต่อได้ดีแค่ไหน?
    • เป็นความเข้าใจผิดที่พบได้บ่อยว่าบริษัทใหญ่จะทุ่มทรัพยากรทั้งหมดให้กับทุกโปรเจกต์
      paper นี้มีผู้เขียนร่วมสี่คน พวกเขาคงได้ทรัพยากรไม่น้อย แต่ก็น่าจะยังต้องแบ่งใช้ภายใน pool ทรัพยากรที่จัดสรรให้ฝ่ายวิจัย
      แม้แต่ Google เอง Gemini ก็มีอยู่ตัวเดียวในไม่กี่เวอร์ชันเท่านั้น
    • ถ้าเป็น Google ก็น่าจะรู้เรื่องนี้ดีที่สุดหลัง memo เรื่อง LLM เมื่อก่อนนั้น เนื้อหาประมาณว่า “เรากำลังแพ้ในการพยายามสู้หรือแข่งขันกับโมเดลเปิด”: https://www.semianalysis.com/p/google-we-have-no-moat-and-ne...
  • แค่ตัวมันทำงานได้ก็เหลือเชื่ออย่างไม่น่าเชื่อแล้ว และการที่ยัง เรนเดอร์ได้ถึง 20fps ก็ยอดเยี่ยมมาก
    เพราะต้องเข้ารหัสเฟรมก่อนหน้าและการกระทำแล้วป้อนเข้าโมเดลในทุกขั้นตอน เลยดูเหมือนเป็นการผสมโมเดล diffusion กับ recurrent neural network
    ในเชิงนามธรรม เหมือนโมเดลกำลังฝันถึงเกมที่มันเล่นมาอย่างมากมาย และอินพุตแบบเรียลไทม์ก็เปลี่ยนสถานะของความฝันนั้น
    ทำให้น่าสงสัยว่ามนุษย์ก็เป็นเครื่องทำนายช่วงเวลาถัดไปที่มีความทรงจำฝังอยู่มากกว่านิดหน่อยหรือเปล่า

    • การที่มนุษย์มีความสามารถแบบนี้ก็สมเหตุสมผลอยู่มาก
      ถ้ากลับตรรกะแล้วมองว่าเฟรมถัดไปเป็นสมมติฐานที่คาดว่าจะเป็นผลจากเฟรมปัจจุบัน การเปรียบเทียบ “สมมติฐาน” นี้กับประสาทสัมผัสจริงน่าจะประมวลผลส่วนต่างได้ง่ายกว่าการประมวลผลอินพุตทางประสาทสัมผัสทั้งหมด
      อย่างที่ Richard Dawkins พูดไว้ในพอดแคสต์ล่าสุด[1] ยีนเป็นเครื่องทำนายที่ยอดเยี่ยม เพราะการอยู่รอดขึ้นอยู่กับการทำนาย เมื่อคิดถึงปริมาณทรัพยากรที่ใช้กับการมองเห็น ความสามารถในการสร้างการทำนายทางสายตาก็ดูสอดคล้องกันดี
      ถ้าอย่างนั้น ภาวะนึกภาพในใจไม่ได้ บอกอะไรเราได้บ้าง?
      [1] https://podcasts.apple.com/dk/podcast/into-the-impossible-wi...
    • มนุษย์อาจเป็นสิ่งมีชีวิตแบบนั้นจริง ๆ อย่างน้อย Lisa Feldman Barrett ก็มองเช่นนั้น
      พอดแคสต์ของ Lex Fridman ตอน “Counterintuitive Ideas About How the Brain Works”[2] น่าฟัง เธออธิบายว่า สมองทำงานด้วยการทำนายอย่างต่อเนื่องมากกว่าการตอบสนองนั้นมีประสิทธิภาพที่สุด เป็นต้น
      เธอยังเป็นนักสื่อสารวิทยาศาสตร์ที่ยอดเยี่ยมด้วย ฟังแล้วอยากฟังต่อเรื่อย ๆ
      [1] https://en.wikipedia.org/wiki/Lisa_Feldman_Barrett
      [2] https://www.youtube.com/watch?v=NbdRIVCBqNI&t=1443s
    • ใช่แล้ว ลองดู predictive coding: https://en.wikipedia.org/wiki/Predictive_coding
    • มันรันอยู่บน v5 TPU ทั้งตัว: https://cloud.google.com/blog/products/ai-machine-learning/i...
      ยังไม่ชัดเจนว่าเทียบกับ GPU ระดับผู้บริโภคไฮเอนด์อย่าง 3090 แล้วเป็นอย่างไร แต่ INT8 TFLOPS ดูใกล้เคียงกัน TPU มีหน่วยความจำน้อยกว่า (16GB เทียบกับ 24GB) และสเปกอื่น ๆ ก็ไม่แน่ใจ
      ถึงอย่างนั้นก็ยังมีอะไรบางอย่างไม่ลงตัว ปกติ SD แม้บน 3090 ก็ต้องใช้เวลาอย่างน้อยหลายวินาทีในการสร้างผลลัพธ์คุณภาพสูงหนึ่งภาพ แต่กรณีนี้เร็วกว่าเกือบเป็นหลักสิบเท่า ดูเหมือนหมายความว่า TPU เหนือกว่า GPU แบบขาดลอยสำหรับงานนี้
      ดูเหมือนจะสร้างภาพความละเอียดต่ำ (320x240) แต่ก็ยังรู้สึกว่าเร็วเกินไปอยู่ดี
    • การมองมนุษย์เป็น “เครื่องทำนายช่วงเวลาถัดไป” ดู ลดทอนนิยม เกินไป
      ให้ความรู้สึกว่าเริ่มจาก AI แล้วย้อนกลับขึ้นไป จากนั้นก็พยายามยัด cognition ทั้งหมดให้อยู่ในกรอบ “ตัวทำนายอะไรสักอย่างถัดไป”
      สุดท้ายก็เป็นการถกเถียงเรื่อง stochastic parrot ซ้ำอีกครั้ง
  • หลังจากอ่านเธรดนี้แล้ว ผมคิดว่าควรชี้ให้ชัดว่าเปเปอร์นี้ ไม่ได้ อธิบายระบบที่รับอินพุตจากผู้ใช้แบบเรียลไทม์แล้วสะท้อนออกมาในผลลัพธ์
    แต่ถ้อยคำในบทคัดย่อทำให้รู้สึกว่าเป็นการสื่อเป็นนัยอย่างแรงว่ามีสิ่งนั้นเกิดขึ้น
    ระบบถูกฝึกด้วยข้อมูลขนาดใหญ่ที่เอเจนต์เล่น DOOM และมีตัวอย่างวิดีโอสำหรับให้ผู้ใช้ประเมิน แต่ไม่ใช่วิธีที่ผู้ใช้ใส่อินพุตเข้าไปในซิมูเลชันแบบเรียลไทม์แล้ว “เล่น DOOM” ที่ราว 20FPS
    ในเปเปอร์มีข้อความที่เป็นเบาะแสอย่าง “ยังมีคำถามสำคัญเหลืออยู่ เช่น จะสร้างเกมขึ้นมาอย่างมีประสิทธิภาพตั้งแต่แรกได้อย่างไร และจะใช้ประโยชน์จากอินพุตของมนุษย์ได้ดีที่สุดอย่างไร”, “เป้าหมายสุดท้ายคือให้ผู้เล่นมนุษย์โต้ตอบกับซิมูเลชันได้”
    เหนือสิ่งอื่นใด ไม่มีส่วนที่อธิบายการเล่นเกมของผู้ใช้แบบเรียลไทม์

    • โมเดลไม่ได้ถูกเปิดเผย จึงไม่สามารถประเมินคุณภาพเกมเพลย์ได้โดยตรง แต่ผู้เขียนคนหนึ่งบอกว่า “เล่นได้ และวิดีโอบนหน้าโปรเจกต์คือเกมเพลย์จริง”: https://x.com/shlomifruchter/status/1828850796840268009
      วิดีโอด้านบนของ https://gamengen.github.io/ ก็เริ่มด้วยคำว่า “นี่คือการบันทึกแบบเรียลไทม์ของคนที่กำลังเล่นเกม”
      จากคำกล่าวเหล่านี้ ดูเหมือนว่าช่วงท้ายของโปรเจกต์จะได้สร้าง ระบบที่เล่นได้ ซึ่งสามารถนำไปวางต่อหน้ามนุษย์ได้แล้ว เพียงแต่ว่าในตอนที่อัปโหลดร่างขึ้น arXiv อาจยังไม่ใช่อย่างนั้น
    • ตอนแรกผมก็คิดแบบนั้นเหมือนกัน แต่ถ้ากลับไปดูตัวเปเปอร์แทนที่จะดูแค่บทคัดย่อ จะเห็นว่าต่างออกไป
      มีข้อความว่า “A คือชุดของการกดปุ่มและการเคลื่อนไหวเมาส์…” และ “…เราเรียนรู้ embedding A_emb สำหรับแต่ละการกระทำ เพื่อใช้การกระทำเป็นเงื่อนไข”
      กล่าวคือ กระบวนการ diffusion ของโมเดลนี้ไม่ได้ถูก condition ด้วยคำ แต่ถูก condition ด้วย action embedding A ที่มาจากการกระทำของผู้ใช้
      จากนั้นจะเข้ารหัสเฟรมเริ่มต้นที่มี noise ปนอยู่ให้เป็น latent representation แล้วนำไปต่อเข้ากับ noisy latent representation เป็นเงื่อนไขตัวที่สอง
      สุดท้ายมันคือ diffusion model ที่ฝึกจากภาพ Doom เท่านั้น และสร้างเฟรมถัดไปโดยมีเงื่อนไขเป็นเฟรม Doom ปัจจุบันกับการกระทำของผู้ใช้
      ดังนั้นผู้ใช้จึงถือว่ากำลังเล่นอยู่จริง ๆ
      เพียงแต่ว่าการที่สิ่งนี้เป็นไปได้ก็ไม่ใช่เรื่องน่าประหลาดใจนัก โดยพื้นฐานแล้วมันคือบันทึกเกมในรูปแบบ neural network แต่ก็เป็นเดโมเทคโนโลยีที่เท่มาก
    • จริงอยู่ที่เปเปอร์ควรเขียนส่วนนี้ให้ชัดกว่านี้ แต่จากประโยคในหัวข้อ 5.2.3 ผมมองว่า มันเล่นได้ และมีคนเล่นแล้ว
      มีข้อความว่า “เมื่อเล่นโมเดลด้วยตนเอง บางพื้นที่ง่ายมากสำหรับทั้งสองฝ่าย บางพื้นที่ยากมากสำหรับทั้งสองฝ่าย และในบางพื้นที่เอเจนต์ทำได้ดีกว่ามาก”
      อาจเป็นเพราะผมจินตนาการไม่พอก็ได้ แต่ผมนึกวิธีตีความ “เล่นโมเดลด้วยตนเอง” ให้สมเหตุสมผลแบบอื่นไม่ออก
    • สิ่งที่อธิบายมาทำให้นึกถึงโปรเจกต์เจ๋ง ๆ นี้:
      https://www.youtube.com/watch?v=udPY5rQVoW0
      “Playing a Neural Network's version of GTA V: GAN Theft Auto”
    • นั่นไม่ถูกต้อง นี่คือ ซิมูเลชันแบบโต้ตอบ ที่มนุษย์เล่นได้
      “Figure 1: a human player is playing DOOM on GameNGen at 20 FPS.”
      ประโยคในบทคัดย่อคลุมเครือ ทำให้เกิดความสับสนกันมากตรงนี้ แต่ตัวเปเปอร์ชัดเจนในประเด็นนี้
      ค่อนข้างน่าผิดหวังที่ข้อมูลผิดแบบนี้ได้รับการโหวตสูงในฟอรัมที่มีผู้เชี่ยวชาญด้านเทคนิคจำนวนมาก
  • การเสาะหาวิธีรัน Doom บนทุกสิ่งยังคงดำเนินต่อไป
    ถ้าพูดในเชิงเทคนิค นี่ไม่ใช่ anti-Doom ที่ยิ่งใหญ่ที่สุดเท่าที่เป็นไปได้ หรือก็คือ Doom ที่ต้องการฮาร์ดแวร์สูงที่สุดหรอกหรือ?
    ถ้าวางสเปกฮาร์ดแวร์เป็นแกนเส้นตรง ก็น่าขำที่ตอนนี้ Doom อยู่ได้ทั้งสองปลายแล้ว

    • ตอนอ่านส่วนนี้ ผมนึกว่ากำลังจะบอกว่า เพราะในเชิงเทคนิคแล้วมันไม่ได้รัน Doom เลยแม้แต่น้อย
      กล่าวคือ ไม่ใช่การพอร์ตไปรันโดยไม่มีสภาพแวดล้อมฮาร์ดแวร์/ซอฟต์แวร์ดั้งเดิมของ Doom แต่เป็นการรัน Doom โดยไม่มี Doom เอง
    • ถ้าเป็น Doom ที่ต้องการฮาร์ดแวร์สูงที่สุด ตั้งเป้าการเรนเดอร์แบบ ray casting ให้สูงตามใจชอบก็ทำได้ไม่ใช่หรือ?
    • อันนี้คือ No-Doom
    • anti-Doom ที่ยิ่งใหญ่อย่างแท้จริงคงเป็นโครงสร้างที่โมเดลพวกนี้ซ้อนกันไม่รู้จบ โดยโมเดลทำนายโมเดล และปลายทางสุดท้ายจึงทำนาย Doom
      anti-Doom ขั้นถัดไปคือโมเดลที่สร้างโมเดล แล้วโมเดลนั้นสร้างเอาต์พุต Doom
    • อุปมาที่ใกล้เคียงกว่าน่าจะเป็น “รัน Minecraft ข้างใน Minecraft”: https://news.ycombinator.com/item?id=32901461
  • ข้อกำหนดระบบของ Doom:
    RAM 4MB, พื้นที่ดิสก์ 12MB
    Stable Diffusion v1 มี UNet 860M และ CLIP ViT-L/14 (540M), ขนาดเช็กพอยต์ 4.27GB, EMA ทั้งหมด 7.7GB
    รันบน TPU-v5e โดยชิปหนึ่งตัวมีสมรรถนะสูงสุด bf16 197 TFLOPs, Int8 393 TFLOPs, ความจุและแบนด์วิดท์ของ HBM2 คือ 16GB และ 819GBps, แบนด์วิดท์การเชื่อมต่อระหว่างชิปคือ 1600Gbps
    เมื่อคำนึงถึงความเร็วแล้วก็น่าประทับใจทีเดียว แต่ยังมีช่องให้ปรับปรุงได้มหาศาล ดูเหมือนมันยังไม่ได้จำเกมได้ทั้งหมด ทั้งที่ตามความจุแล้วน่าจะท่องจำได้เป็นร้อย ๆ รอบ
    ดังนั้นจึงมีพื้นที่ให้หาวิธี optimize ได้อย่างแน่นอน เพียงแต่ในกรณีนี้เป้าหมายคือการท่องจำ จึงไม่รู้ว่าเทคนิคเหล่านั้นจะส่งผลต่อเทคโนโลยีเดิมอย่างไร
    จุดที่น่าสนใจคือ นี่หมายความว่าหาก “เล่น” มากพอ ทำให้เป็นอัตโนมัติ และใช้พื้นที่เก็บข้อมูลกับการประมวลผลมากขึ้นมาก ก็สามารถแกะเกมออกมาได้
    อยากรู้ว่าถ้าเทียบต้นทุนและเวลากับการจ้างวิศวกรมาทำ reverse engineering Doom จะเป็นอย่างไร และก็คลุมเครือว่าจะอนุญาตให้ใช้ความรู้ล่วงหน้าได้แค่ไหน เมื่อคำนึงถึงโมเดลที่ pretrain มาและสภาพแวดล้อม ViZDoom ก็อยากรู้ด้วยว่าซอร์สของ Doom เคยอยู่ใน T5 หรือไม่ และใช้เช็กพอยต์ ViT ตัวไหน
    อยากเห็นเช็กพอยต์ของโมเดลนี้จริง ๆ ถ้าผู้คนเอาไปแยกวิเคราะห์ น่าจะพบอะไรที่น่าสนใจมาก
    https://www.reddit.com/r/gaming/comments/a4yi5t/original_doo...
    https://huggingface.co/CompVis/stable-diffusion-v-1-4-origin...
    https://cloud.google.com/tpu/docs/v5e
    https://github.com/Farama-Foundation/ViZDoom
    https://zdoom.org/index

    • ข้อทักท้วงนั้นสมเหตุสมผล แต่ในบริบทของงานวิจัยนี้ไม่ใช่ประเด็นหลัก
      เมื่อเทียบกับเกมต้นฉบับ ต้นทุนการคำนวณสูงแบบไร้เหตุผล และก็จริงที่ยังขาดองค์ประกอบพื้นฐานอย่างการคำนวณล่วงหน้าหรือการจัดเก็บ
      แต่สิ่งเหล่านั้นอาจถูกแก้ได้รอบ ๆ การค้นพบนี้, ดีขึ้นเองตามเวลา, หรือมีความสำคัญน้อยลงในฐานะคอขวด
      จุดทะลุทะลวงจริง ๆ คือการที่มันสามารถโมเดล ลำดับเฟรมที่รับรู้บริบท แบบนั้นได้โดยไม่ต้องเข้ารหัสไว้อย่างชัดเจน ทั้งจากมุมมองของเกมล้วน ๆ และจากมุมมองการจำลองทั่วไป
    • การ “แกะเกมออกมา” เป็นแค่ส่วนเล็ก ๆ
      ความหมายที่ใหญ่กว่าคือการสามารถ สร้างเกมจากวิดีโอโลกจริง ได้
      ถ้าต้องการ flight simulator ที่สมบูรณ์แบบ ก็แค่ติด GoPro ในห้องนักบินของเครื่องบินโดยสารทุกลำเป็นเวลา 1 ปี
  • การอ่านคอมเมนต์ที่ถูกซ่อนในบทความแบบนี้สนุกเสมอ ชอบที่มีคนชี้ว่ามันไร้ความหมายแค่ไหน
    บางคนควรเรียนรู้ที่จะสร้างอะไรบางอย่างเพียงเพราะความสนุกในการสร้าง
    มันมีประโยชน์ไหม? จริง ๆ ก็ไม่เท่าไร น่าสนใจไหม? แน่นอนว่าใช่
    ไม่ใช่ทุกอย่างจำเป็นต้องถูกสร้างขึ้นเพื่อกำไร หรือเพื่อทำให้โลกดีขึ้น
    บางครั้งเป้าหมายอาจเป็นการเรียนรู้ ความท้าทาย และการตรวจสอบความเป็นไปได้
    เวลาที่ใช้ไปกับความสนุกไม่เคยเป็นความสูญเปล่า ตอนใกล้ตายคงมีคนที่เสียใจว่าไม่ได้สนุกให้มากกว่านี้

    • ความกังขาและคำวิจารณ์ในเธรดนี้มุ่งไปที่ กระแสอวย AI เกินจริง
      คำว่า “นี่สุดยอดจริง ๆ” มีนัยว่าคิดว่าในอนาคตอันใกล้ ซอฟต์แวร์ทั้งหมดจะถูกแทนที่ด้วยโมเดล AI และสร้างประสบการณ์วิดีโอเกมแบบใดก็ตามที่จินตนาการได้
      ในความเป็นจริง นี่คือรูปแบบของ Doom ที่ไม่มีประสิทธิภาพและไม่น่าเชื่อถือที่สุดเท่าที่เคยมีมา มันใช้การคำนวณมากกว่า PC x86 ยุคแรก ๆ ที่สามารถเรนเดอร์และเล่น Doom แบบเรียลไทม์ได้อย่างแท้จริงหลายล้านเท่า
      แน่นอนว่ามันเป็นโชว์ความสามารถที่สนุกดี
    • จริงมาก วัฒนธรรม hustle ดูเหมือนโรคระบาดที่เข้ามาแทนที่วัฒนธรรม maker สนุก ๆ ในยุค 80–90
      ก็มีด้านที่หลีกเลี่ยงไม่ได้อยู่เหมือนกัน ค่าครองชีพแพงขึ้นเรื่อย ๆ และการโรแมนติไซส์ผู้ประกอบการราวกับเป็นร็อกสตาร์ ก็พาไปสู่ mindset แบบ hustle นี้
    • ตอนนี้การทดลองนี้ดูไร้ความหมาย
      แต่ผมจำยุคที่เริ่มมีบทความเกี่ยวกับความเป็นไปได้ของ “วิทยุอินเทอร์เน็ต” ได้ แทนที่จะยิงคลื่นออกอากาศขึ้นไปในอากาศเหมือนเดิมแล้วให้วิทยุนับพันเครื่องจูนรับฟัง กลับเป็นวิธีที่เซิร์ฟเวอร์บางตัวส่งแพ็กเก็ตมหาศาลผ่านสายทองแดงที่ยาวมากไปยังปลายทางนับพัน
      แถมปลายทางยังส่งแพ็กเก็ต ACK กลับขึ้นไปหาเซิร์ฟเวอร์ผู้น่าสงสารเพื่อรักษาการเชื่อมต่อ ซึ่งดูเหมือนเป็นการสิ้นเปลืองพลังประมวลผล สายไฟ และพลังงาน
      แต่ตอนนี้เรากำลังดูหนัง Netflix แบบมาราธอนผ่านสายทองแดงแบบนั้น
      ไม่ได้จะบอกว่าเกมจะถูกแทนที่ด้วยโมเดล diffusion ที่ฝันภาพถัดไปตามอินพุตของผู้ใช้ แต่รูปแบบดัดแปลงของมันอาจกลายเป็น การสร้างสรรค์ศิลปะแบบโต้ตอบ หรือความบันเทิงรูปแบบใหม่ได้
    • ผมไม่ได้มองว่าสิ่งนี้ไม่มีประโยชน์ มันเป็นก้าวหนึ่งไปสู่ การสร้างเกมใหม่ทั้งหมด
    • อยากรู้ว่า คาร์บอนฟุตพรินต์ ของความสนุกนี้เป็นเท่าไร
  • แม้จะน่าประทับใจ แต่เห็นด้วยได้ยาก โมเดลดิฟฟิวชันไม่ใช่เกมเอนจิน
    เกมเอนจินคือองค์ประกอบที่ขับเคลื่อนเกมไปตามแกนเวลา ดังนั้นจึงคล้ายกับเครื่องยนต์รถยนต์ และชื่อนี้ก็มาจากตรงนั้น
    เครื่องยนต์ไม่จำเป็นต้องมีรถยนต์ที่ประกอบเสร็จแล้วหรือถนนให้วิ่งถึงจะทำงานได้
    สิ่งข้างต้นใกล้เคียงกับการจำลองแบบโต้ตอบเชิงไดนามิกของสิ่งที่เกิดขึ้นเมื่อนำรถไปวางบนถนนที่กำหนดให้ และต้องทดลองขับด้วยยานพาหนะที่ใช้งานได้เป็นล้านครั้ง
    ถ้าเป็นเอนจิน ก็ควรทำงานแบบออฟโรดได้ด้วย

    • นี่ดูจะเป็นคำวิจารณ์ต่อโมเดลผลลัพธ์ที่ถูกฝึกมาแบบเฉพาะเจาะจง มากกว่าจะเป็นโมเดลดิฟฟิวชันโดยทั่วไป
      แทนที่จะพูดในรูปปัจจุบันว่า “ต้องมีรถที่ใช้งานได้อยู่บนถนนเพื่อทำงาน” ควรพูดในรูปอดีตว่า “จำเป็นต้องมีสิ่งนั้นเพื่อฝึกให้มันทำงานนั้น” มากกว่า
      และก็ยังไม่ชัดเจนว่าทำไมเกมเอนจินที่ใช้แนวคิดจากวิธีที่เอนจินอื่นทำงาน ถึงจะไม่ใช่เกมเอนจินอีกต่อไป
      ถ้ามองโมเดลดิฟฟิวชันโดยทั่วไป เช่นเดียวกับที่โมเดลดิฟฟิวชันมักไม่ได้สร้างได้เฉพาะสิ่งที่เหมือนกับภาพฝึกแบบเป๊ะ ๆ แต่สามารถแทรกค่าระหว่างตัวอย่างหรือประยุกต์แนวคิดแต่ละอย่างเพื่อสร้างเอาต์พุตใหม่ได้ ก็ไม่เห็นมีเหตุผลให้สันนิษฐานว่าแนวทางนี้จะทำงานนอก “สนามทดสอบ” ที่ฝึกมาไม่ได้
    • เป็นประเด็นที่น่าสนใจ
      ในแง่หนึ่ง มันคือ เกมเอนจินที่ถูกจำลองขึ้น ซึ่งฝึกจากข้อมูลของเกมเอนจินจริง
      แต่ถ้าเกมเอนจินจำลองที่ใช้งานได้สามารถ “ขับเคลื่อนเกม” ได้ ผมก็มองว่ามันเป็นเกมเอนจินในตัวเอง วิธีที่ทำให้สำเร็จไม่สำคัญ
      ฝั่งหนึ่งมีมนุษย์สร้างคอนเทนต์ ส่วนอีกฝั่งเลียนแบบคอนเทนต์เกมที่มีอยู่ แต่ผู้เล่นไม่ได้สนใจเรื่องนั้น
      เราจินตนาการได้ว่า “เกมเอนจินเชิงกำเนิด” แบบนี้ก็ออฟโรดได้เช่นกัน ด้วยการอนุมานขยายออกไปว่าจะเกิดอะไรขึ้นเมื่อไปยังสถานที่ที่ไม่เคยเห็น
      เผลอ ๆ ความสามารถในการอนุมานขยายของโมเดลแบบนี้อาจดีกว่าเกมเอนจินแบบดั้งเดิมด้วยซ้ำ ในเกมเอนจินทั่วไป ถ้าบังเอิญทะลุกำแพงออกไป หน้าจอจะว่างเปล่า แต่โมเดลนี้สามารถแต่งเติมขึ้นมาระหว่างเดินหน้าต่อได้
  • ในโมเดล SD มีการเอา เงื่อนไขข้อความ ออกไป จึงไม่ถูกรวมเข้ามา แต่ในอนาคตอันใกล้ เราสามารถจินตนาการได้ว่าจะสร้างเกมใหม่ที่สนุกได้ด้วยพรอมป์ต์ข้อความเพียงอย่างเดียว
    เพื่อเรียนรู้ว่า DOOM หน้าตาเป็นอย่างไรและทำงานอย่างไร ต้องใช้ reinforcement learning แต่สิ่งนี้ไม่ได้แปลว่าต้องเป็นปัญหาไก่กับไข่เสมอไป
    คล้ายกับที่ LLM แม้จะฝึกจากข้อความที่มีอยู่เท่านั้น ก็ยังเขียนเรื่องราวใหม่ได้
    หนึ่งในความท้าทายใหญ่ที่สุดของแนวทางนี้น่าจะเป็น เกมโอเพนเวิลด์ ที่จำนวนสถานะที่เป็นไปได้แทบจะไม่มีที่สิ้นสุด
    งานวิจัยเองก็บอกว่าพวกเขาประสบปัญหาในการทำให้เอเจนต์ reinforcement learning สำรวจทุกซอกทุกมุมของ DOOM ได้อย่างครบถ้วน
    Factorio หรือ Dwarf Fortress คงยังไม่ถูกจำลองในเร็ว ๆ นี้ อาจจะนะ

    • ถ้ามีคอมพิวต์มากพอ น้ำหนักของนิวรัลเน็ตเวิร์กจะลู่เข้าไปเป็น latent representation ที่ถูกบีบอัดอย่างมากของซอร์สโค้ด DOOM
      บางทีมันอาจเล็กกว่าซอร์สโค้ดเองด้วยซ้ำ คนในสายนี้น่าจะแก้ให้ถูกได้
      ถึงจุดนั้น โดยพื้นฐานแล้วก็คือการ “เรนเดอร์” เกมด้วยการแทรกค่าใน latent space ของซอร์สโค้ด เท่ากับมีคอมพิวเตอร์ใน latent space ทั้งเครื่องที่มีเอนจิน แอสเซ็ต เท็กซ์เจอร์ และซอฟต์แวร์เรนเดอเรอร์
      ถ้ามีคอมพิวเตอร์ที่ทรงพลังพอ ก็จินตนาการถึงการแทรกค่าใน latent space ระหว่างเกมอย่าง Factorio กับ TF2 ได้ด้วย และสามารถปรับ latent space นี้โดยใส่เงื่อนไขด้านเกมเพลย์ที่ต้องการ
      อนาคตแบบนี้จะมาถึงเร็วมากในบางส่วนของไปป์ไลน์ เช่นขั้นตอนสุดท้ายของการเรนเดอร์ ตัวอย่างเช่น DLSS ก็วางขายเชิงพาณิชย์แล้ว
      สักวันหนึ่ง เมื่อทุกคนถูกยึดติดอยู่กับเมตาเวิร์สของนิวรัลเน็ตเวิร์ก รายได้ของ Nvidia อาจกลับมาจากเกมอีกครั้งก็ได้
      ดีมากจริง ๆ ที่เลือก DOOM
    • ในทำนองเดียวกัน อาจรันเกมเอนจินที่เรียบง่ายมาก ให้ส่งออกแค่ไวร์เฟรมความละเอียดต่ำ แล้วนำไปอัปสเกลก็ได้
      เป็นวิธีที่ทุ่มความพยายามทั้งหมดไปที่กลไกของเกมเท่านั้น ไม่ใช่คุณภาพภาพ
      คาดว่าวิธีนี้จะช่วยลด ความไม่สอดคล้องทางภาพ ได้ดีกว่า เช่นกรณีหันหน้าไปทางอื่นแล้วหันกลับมาอีกที ปีศาจสีแดงกลายเป็นพวกสีน้ำเงิน
    • ถ้าคิดว่าสามารถสร้าง “เกมใหม่ที่สนุกได้ด้วยพรอมป์ต์ข้อความเพียงอย่างเดียว” ก็ลองเขียนพรอมป์ต์แบบนั้นเองดูได้
      เริ่มจากเกมแพลตฟอร์มที่ค่อนข้างเรียบง่ายอย่าง Mario ก็ได้
      พอเขียนไปได้ราว 300 หน้า แล้วยังอธิบายได้แค่ประมาณครึ่งเดียว คุณจะเข้าใจว่าทำไมเรื่องนี้ถึงเป็นความคิดเชิงหวังมากกว่าความจริง
    • จริง ๆ แล้วไม่ใช่ นี่คือการสร้างเลเวลแรกของ Doom ขึ้นมาใหม่ ไม่ได้สร้าง สิ่งใหม่ ขึ้นมา
    • วิดีโอเกมในอนาคตอันใกล้จะเปลี่ยนไปอย่างมหาศาล
      คนคนหนึ่งอาจคุยกับโมเดลแล้วสร้างสิ่งที่อยู่ในระดับเดียวกับเกม AAA ในปัจจุบันได้
      ลองนึกถึงกระแสเกม 2D side-scroller บน Steam แต่ให้เป็นเกม 3D แบบภาพสมจริงชวนดื่มด่ำ มีฟิสิกส์เหนือจริง (การไหลของน้ำ ไฟที่ลาม พายุทอร์นาโด) และมีความสามารถในการดัดแปลง·ก่อสร้างได้อย่างสมบูรณ์
      ในทำนองว่าโมเดลถูก pretrain ด้วยวิดีโอจากโลกจริง และเกมเป็นเพียง “สไตล์” ที่ปรับ prior distribution เกี่ยวกับรูปลักษณ์ ฉาก และเรื่องราวเล็กน้อย
  • ถ้าต้องสร้างเกมไว้ก่อนแล้ว โมเดลดิฟฟิวชันถึงจะเป็นเกมเอนจินหรือ? การฝึกโมเดลต้องมีเกมก่อน นี่ไม่ใช่ปัญหาไก่กับไข่เหรอ?

    • มีไอเดียอยู่หลายอย่าง
      อาจสร้างเกมเอนจินเวอร์ชันที่ไม่ใช่เรียลไทม์ แล้วใช้นิวรัลเน็ตเวิร์กเป็นการประมาณค่าแบบเรียลไทม์ได้
      หรืออาจตัดต่อสิ่งอย่าง HUD เข้าไปในวิดีโอที่ถ่ายจากโลกจริง แล้วฝึกให้นิวรัลเน็ตเวิร์กจำลองโลกจริงแทนที่จะเป็น Doom ก็ได้
      งานวิจัยนี้ใช้ 900 ล้านเฟรม ซึ่งถ้าเป็น 30fps ก็น่าจะเท่ากับวิดีโอประมาณ 1 ปี การปรับปรุงอัลกอริทึมอาจลดปริมาณข้อมูลที่ต้องใช้ในการฝึกได้
      วิดีโอ 1 ปีก็ไม่ได้มากขนาดนั้นในความเป็นจริง ตัวอย่างเช่น ถ้ารับสมัครคน 500 คน ติด GoPro มาตรวัดความเร่ง และไจโรไว้ที่ศีรษะกับปืนเพนต์บอล แล้วให้เล่นเพนต์บอลกันช่วงสุดสัปดาห์ ก็อาจได้วิดีโอ 1 ปีแล้ว
    • หากฝึกด้วยหลายเกม ก็สามารถสร้าง เกมใหม่ที่ไม่เคยมีอยู่ ได้ เช่นเดียวกับที่โมเดลสร้างภาพสามารถสร้างภาพใหม่ที่ไม่เคยมีอยู่ได้
    • ขั้นตอนต่อไปอาจเป็นการเพิ่ม text guidance เพื่อสร้างเกมที่ไม่เคยมีอยู่
    • พูดแบบเดียวกันกับภาพที่สร้างขึ้นไม่ได้หรือ?
    • ในอนาคต เทคนิค scientific machine learning ที่สามารถเข้ารหัสฟิสิกส์และกฎที่รู้จักเข้าไปในโมเดล อาจกลายเป็นโมเดลพื้นฐานก็ได้
      แล้วโมเดลอื่น ๆ ที่อยู่ด้านบนค่อย fine-tune รายละเอียดเพื่อปรับแต่งเกมให้เฉพาะเจาะจง
  • โมเดล diffusion ไม่อาจเป็นเกมเอนจินได้ เพราะเกมเอนจินต้องสามารถสร้างเกมใหม่ และเปลี่ยนกฎของเกมเดิมได้แบบเรียลไทม์
    แม้แต่กฎที่ไม่ปรากฏบนหน้าจอก็ต้องเปลี่ยนได้ด้วย
    เครื่องมือแบบนี้น่าสนใจ แต่ก็เหมือนกับกระแสโฆษณาเกินจริงของ AI ทั้งหมด คือควรมีข้อความปฏิเสธความรับผิดชอบกำกับไว้
    เครื่องมือนี้ไม่ได้สร้างเกมขึ้นมา เพียงแต่สุ่มตัวอย่างจากเกมที่มนุษย์สร้าง แล้วสร้างเฟรมกับรูปลักษณ์ของกลไกการเล่นขึ้นมาเท่านั้น

    • ถ้ากฎที่ไม่มีวันปรากฏบนหน้าจอถูกเปลี่ยนไป มันเปลี่ยนไปจริงหรือ?
      บอกว่า “แค่” สร้างขึ้นมาอย่างนั้นหรือ? ผมเข้าใจว่าในเชิงกลไกมันอาจเรียบง่ายได้ แต่ข้อเท็จจริงที่ว่ามันบีบอัด การแจกแจงแบบมีเงื่อนไข ที่อุดมสมบูรณ์ขนาดนั้น ดูไม่เรียบง่ายเลยสักนิด
    • พวกเขาฝึกด้วยเกมเพียงเกมเดียว และฝังแค่ข้อมูลอินพุตควบคุมเท่านั้น
      หากฝึกด้วยหลายเกมและฝังข้อมูลของแต่ละเกมให้มากขึ้นมาก ๆ ก็อาจเป็นไปได้ที่จะระบุพรอมป์ตที่อธิบายเกมแล้วเล่นได้
    • อยากเห็นการนำเกมที่เรนเดอร์ด้วยแอสเซ็ต low-poly หรือถูกแยกส่วนด้วยวิธีใดวิธีหนึ่ง มาเพิ่มรายละเอียดภาพแบบสมจริงหรือแบบมีสไตล์ด้วยโมเดล diffusion
      แบบนั้นจะได้ประโยชน์จริง ขณะเดียวกันก็แก้ ปัญหาความสอดคล้อง ได้ด้วย
    • ชื่อเรื่องควรเป็น “โมเดล diffusion สามารถใช้เรนเดอร์เฟรมเมื่อมีอินพุตจากผู้ใช้ให้มา”
    • สุดท้ายแล้ว นี่ก็แค่สร้างวิดีโอ gameplay ที่ต่างจากวิดีโอที่ใช้ฝึกเล็กน้อยเท่านั้นหรือเปล่า?