โมเดลดิฟฟิวชันคือเอนจินเกมแบบเรียลไทม์
(gamengen.github.io)- 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 ความคิดเห็น
ความคิดเห็นจาก Hacker News
น่าประหลาดใจที่ดูเหมือนว่าโมเดล diffusion จะมี เหตุและผล·ลำดับเวลา อยู่มากกว่าที่คิด
การที่ Google ใช้ SD 1.4 เป็นแกนหลักของโมเดล diffusion ก็เป็น reminder ที่ดีว่าโมเดลแบบเปิดก็มีประโยชน์แม้กับบริษัทผูกขาดคลาวด์ขนาดใหญ่
สิ่งที่น่าประทับใจในสรุปคือ 1) ให้เอเจนต์เล่น Doom จนได้ข้อมูลฝึกแทบไม่จำกัด 2) ใส่ Gaussian noise ลงในเฟรมต้นฉบับ แล้วให้รางวัลกับการ “แก้กลับ” เฟรมถัด ๆ ไป ซึ่งเป็นหัวใจของ “การเรนเดอร์” ที่เสถียรในระยะยาว
โดยเฉพาะข้อหลังนั้นน่าสนใจ เพราะเป็น intuition ว่ากำลังสอนให้โมเดลรู้จักการแก้ข้อผิดพลาดและความเสถียร
ผมยังสงสัยว่าถ้ามองโมเดลนี้เหมือนเป็น “โมเดลฐาน Doom” แล้ว fine-tune ให้เป็นสไตล์ photorealistic หรือ ray tracing อาจทำให้ได้การเรนเดอร์ที่ดูดีขึ้นได้ง่ายหรือไม่
ผู้เล่นแทบไม่เดินย้อนกลับ แต่เมื่อในเกมตัวละครหันกลับไปดูสิ่งเดิมอีกครั้งจริง ๆ มันเปลี่ยนไปมาก ห้องที่มีกำแพงสีเทาและป้ายสามเหลี่ยมเห็นชัดเป็นพิเศษ
นี่สอดคล้องกับพฤติกรรมที่คาดได้จากโมเดล 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 ก็มีอยู่ตัวเดียวในไม่กี่เวอร์ชันเท่านั้น
แค่ตัวมันทำงานได้ก็เหลือเชื่ออย่างไม่น่าเชื่อแล้ว และการที่ยัง เรนเดอร์ได้ถึง 20fps ก็ยอดเยี่ยมมาก
เพราะต้องเข้ารหัสเฟรมก่อนหน้าและการกระทำแล้วป้อนเข้าโมเดลในทุกขั้นตอน เลยดูเหมือนเป็นการผสมโมเดล diffusion กับ recurrent neural network
ในเชิงนามธรรม เหมือนโมเดลกำลังฝันถึงเกมที่มันเล่นมาอย่างมากมาย และอินพุตแบบเรียลไทม์ก็เปลี่ยนสถานะของความฝันนั้น
ทำให้น่าสงสัยว่ามนุษย์ก็เป็นเครื่องทำนายช่วงเวลาถัดไปที่มีความทรงจำฝังอยู่มากกว่านิดหน่อยหรือเปล่า
ถ้ากลับตรรกะแล้วมองว่าเฟรมถัดไปเป็นสมมติฐานที่คาดว่าจะเป็นผลจากเฟรมปัจจุบัน การเปรียบเทียบ “สมมติฐาน” นี้กับประสาทสัมผัสจริงน่าจะประมวลผลส่วนต่างได้ง่ายกว่าการประมวลผลอินพุตทางประสาทสัมผัสทั้งหมด
อย่างที่ Richard Dawkins พูดไว้ในพอดแคสต์ล่าสุด[1] ยีนเป็นเครื่องทำนายที่ยอดเยี่ยม เพราะการอยู่รอดขึ้นอยู่กับการทำนาย เมื่อคิดถึงปริมาณทรัพยากรที่ใช้กับการมองเห็น ความสามารถในการสร้างการทำนายทางสายตาก็ดูสอดคล้องกันดี
ถ้าอย่างนั้น ภาวะนึกภาพในใจไม่ได้ บอกอะไรเราได้บ้าง?
[1] https://podcasts.apple.com/dk/podcast/into-the-impossible-wi...
พอดแคสต์ของ 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
ยังไม่ชัดเจนว่าเทียบกับ GPU ระดับผู้บริโภคไฮเอนด์อย่าง 3090 แล้วเป็นอย่างไร แต่ INT8 TFLOPS ดูใกล้เคียงกัน TPU มีหน่วยความจำน้อยกว่า (16GB เทียบกับ 24GB) และสเปกอื่น ๆ ก็ไม่แน่ใจ
ถึงอย่างนั้นก็ยังมีอะไรบางอย่างไม่ลงตัว ปกติ SD แม้บน 3090 ก็ต้องใช้เวลาอย่างน้อยหลายวินาทีในการสร้างผลลัพธ์คุณภาพสูงหนึ่งภาพ แต่กรณีนี้เร็วกว่าเกือบเป็นหลักสิบเท่า ดูเหมือนหมายความว่า TPU เหนือกว่า GPU แบบขาดลอยสำหรับงานนี้
ดูเหมือนจะสร้างภาพความละเอียดต่ำ (320x240) แต่ก็ยังรู้สึกว่าเร็วเกินไปอยู่ดี
ให้ความรู้สึกว่าเริ่มจาก AI แล้วย้อนกลับขึ้นไป จากนั้นก็พยายามยัด cognition ทั้งหมดให้อยู่ในกรอบ “ตัวทำนายอะไรสักอย่างถัดไป”
สุดท้ายก็เป็นการถกเถียงเรื่อง stochastic parrot ซ้ำอีกครั้ง
หลังจากอ่านเธรดนี้แล้ว ผมคิดว่าควรชี้ให้ชัดว่าเปเปอร์นี้ ไม่ได้ อธิบายระบบที่รับอินพุตจากผู้ใช้แบบเรียลไทม์แล้วสะท้อนออกมาในผลลัพธ์
แต่ถ้อยคำในบทคัดย่อทำให้รู้สึกว่าเป็นการสื่อเป็นนัยอย่างแรงว่ามีสิ่งนั้นเกิดขึ้น
ระบบถูกฝึกด้วยข้อมูลขนาดใหญ่ที่เอเจนต์เล่น DOOM และมีตัวอย่างวิดีโอสำหรับให้ผู้ใช้ประเมิน แต่ไม่ใช่วิธีที่ผู้ใช้ใส่อินพุตเข้าไปในซิมูเลชันแบบเรียลไทม์แล้ว “เล่น DOOM” ที่ราว 20FPS
ในเปเปอร์มีข้อความที่เป็นเบาะแสอย่าง “ยังมีคำถามสำคัญเหลืออยู่ เช่น จะสร้างเกมขึ้นมาอย่างมีประสิทธิภาพตั้งแต่แรกได้อย่างไร และจะใช้ประโยชน์จากอินพุตของมนุษย์ได้ดีที่สุดอย่างไร”, “เป้าหมายสุดท้ายคือให้ผู้เล่นมนุษย์โต้ตอบกับซิมูเลชันได้”
เหนือสิ่งอื่นใด ไม่มีส่วนที่อธิบายการเล่นเกมของผู้ใช้แบบเรียลไทม์
วิดีโอด้านบนของ 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 แต่ก็เป็นเดโมเทคโนโลยีที่เท่มาก
มีข้อความว่า “เมื่อเล่นโมเดลด้วยตนเอง บางพื้นที่ง่ายมากสำหรับทั้งสองฝ่าย บางพื้นที่ยากมากสำหรับทั้งสองฝ่าย และในบางพื้นที่เอเจนต์ทำได้ดีกว่ามาก”
อาจเป็นเพราะผมจินตนาการไม่พอก็ได้ แต่ผมนึกวิธีตีความ “เล่นโมเดลด้วยตนเอง” ให้สมเหตุสมผลแบบอื่นไม่ออก
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 เอง
anti-Doom ขั้นถัดไปคือโมเดลที่สร้างโมเดล แล้วโมเดลนั้นสร้างเอาต์พุต Doom
ข้อกำหนดระบบของ 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 และสร้างประสบการณ์วิดีโอเกมแบบใดก็ตามที่จินตนาการได้
ในความเป็นจริง นี่คือรูปแบบของ Doom ที่ไม่มีประสิทธิภาพและไม่น่าเชื่อถือที่สุดเท่าที่เคยมีมา มันใช้การคำนวณมากกว่า PC x86 ยุคแรก ๆ ที่สามารถเรนเดอร์และเล่น Doom แบบเรียลไทม์ได้อย่างแท้จริงหลายล้านเท่า
แน่นอนว่ามันเป็นโชว์ความสามารถที่สนุกดี
ก็มีด้านที่หลีกเลี่ยงไม่ได้อยู่เหมือนกัน ค่าครองชีพแพงขึ้นเรื่อย ๆ และการโรแมนติไซส์ผู้ประกอบการราวกับเป็นร็อกสตาร์ ก็พาไปสู่ mindset แบบ hustle นี้
แต่ผมจำยุคที่เริ่มมีบทความเกี่ยวกับความเป็นไปได้ของ “วิทยุอินเทอร์เน็ต” ได้ แทนที่จะยิงคลื่นออกอากาศขึ้นไปในอากาศเหมือนเดิมแล้วให้วิทยุนับพันเครื่องจูนรับฟัง กลับเป็นวิธีที่เซิร์ฟเวอร์บางตัวส่งแพ็กเก็ตมหาศาลผ่านสายทองแดงที่ยาวมากไปยังปลายทางนับพัน
แถมปลายทางยังส่งแพ็กเก็ต ACK กลับขึ้นไปหาเซิร์ฟเวอร์ผู้น่าสงสารเพื่อรักษาการเชื่อมต่อ ซึ่งดูเหมือนเป็นการสิ้นเปลืองพลังประมวลผล สายไฟ และพลังงาน
แต่ตอนนี้เรากำลังดูหนัง Netflix แบบมาราธอนผ่านสายทองแดงแบบนั้น
ไม่ได้จะบอกว่าเกมจะถูกแทนที่ด้วยโมเดล diffusion ที่ฝันภาพถัดไปตามอินพุตของผู้ใช้ แต่รูปแบบดัดแปลงของมันอาจกลายเป็น การสร้างสรรค์ศิลปะแบบโต้ตอบ หรือความบันเทิงรูปแบบใหม่ได้
แม้จะน่าประทับใจ แต่เห็นด้วยได้ยาก โมเดลดิฟฟิวชันไม่ใช่เกมเอนจิน
เกมเอนจินคือองค์ประกอบที่ขับเคลื่อนเกมไปตามแกนเวลา ดังนั้นจึงคล้ายกับเครื่องยนต์รถยนต์ และชื่อนี้ก็มาจากตรงนั้น
เครื่องยนต์ไม่จำเป็นต้องมีรถยนต์ที่ประกอบเสร็จแล้วหรือถนนให้วิ่งถึงจะทำงานได้
สิ่งข้างต้นใกล้เคียงกับการจำลองแบบโต้ตอบเชิงไดนามิกของสิ่งที่เกิดขึ้นเมื่อนำรถไปวางบนถนนที่กำหนดให้ และต้องทดลองขับด้วยยานพาหนะที่ใช้งานได้เป็นล้านครั้ง
ถ้าเป็นเอนจิน ก็ควรทำงานแบบออฟโรดได้ด้วย
แทนที่จะพูดในรูปปัจจุบันว่า “ต้องมีรถที่ใช้งานได้อยู่บนถนนเพื่อทำงาน” ควรพูดในรูปอดีตว่า “จำเป็นต้องมีสิ่งนั้นเพื่อฝึกให้มันทำงานนั้น” มากกว่า
และก็ยังไม่ชัดเจนว่าทำไมเกมเอนจินที่ใช้แนวคิดจากวิธีที่เอนจินอื่นทำงาน ถึงจะไม่ใช่เกมเอนจินอีกต่อไป
ถ้ามองโมเดลดิฟฟิวชันโดยทั่วไป เช่นเดียวกับที่โมเดลดิฟฟิวชันมักไม่ได้สร้างได้เฉพาะสิ่งที่เหมือนกับภาพฝึกแบบเป๊ะ ๆ แต่สามารถแทรกค่าระหว่างตัวอย่างหรือประยุกต์แนวคิดแต่ละอย่างเพื่อสร้างเอาต์พุตใหม่ได้ ก็ไม่เห็นมีเหตุผลให้สันนิษฐานว่าแนวทางนี้จะทำงานนอก “สนามทดสอบ” ที่ฝึกมาไม่ได้
ในแง่หนึ่ง มันคือ เกมเอนจินที่ถูกจำลองขึ้น ซึ่งฝึกจากข้อมูลของเกมเอนจินจริง
แต่ถ้าเกมเอนจินจำลองที่ใช้งานได้สามารถ “ขับเคลื่อนเกม” ได้ ผมก็มองว่ามันเป็นเกมเอนจินในตัวเอง วิธีที่ทำให้สำเร็จไม่สำคัญ
ฝั่งหนึ่งมีมนุษย์สร้างคอนเทนต์ ส่วนอีกฝั่งเลียนแบบคอนเทนต์เกมที่มีอยู่ แต่ผู้เล่นไม่ได้สนใจเรื่องนั้น
เราจินตนาการได้ว่า “เกมเอนจินเชิงกำเนิด” แบบนี้ก็ออฟโรดได้เช่นกัน ด้วยการอนุมานขยายออกไปว่าจะเกิดอะไรขึ้นเมื่อไปยังสถานที่ที่ไม่เคยเห็น
เผลอ ๆ ความสามารถในการอนุมานขยายของโมเดลแบบนี้อาจดีกว่าเกมเอนจินแบบดั้งเดิมด้วยซ้ำ ในเกมเอนจินทั่วไป ถ้าบังเอิญทะลุกำแพงออกไป หน้าจอจะว่างเปล่า แต่โมเดลนี้สามารถแต่งเติมขึ้นมาระหว่างเดินหน้าต่อได้
ในโมเดล SD มีการเอา เงื่อนไขข้อความ ออกไป จึงไม่ถูกรวมเข้ามา แต่ในอนาคตอันใกล้ เราสามารถจินตนาการได้ว่าจะสร้างเกมใหม่ที่สนุกได้ด้วยพรอมป์ต์ข้อความเพียงอย่างเดียว
เพื่อเรียนรู้ว่า DOOM หน้าตาเป็นอย่างไรและทำงานอย่างไร ต้องใช้ reinforcement learning แต่สิ่งนี้ไม่ได้แปลว่าต้องเป็นปัญหาไก่กับไข่เสมอไป
คล้ายกับที่ LLM แม้จะฝึกจากข้อความที่มีอยู่เท่านั้น ก็ยังเขียนเรื่องราวใหม่ได้
หนึ่งในความท้าทายใหญ่ที่สุดของแนวทางนี้น่าจะเป็น เกมโอเพนเวิลด์ ที่จำนวนสถานะที่เป็นไปได้แทบจะไม่มีที่สิ้นสุด
งานวิจัยเองก็บอกว่าพวกเขาประสบปัญหาในการทำให้เอเจนต์ reinforcement learning สำรวจทุกซอกทุกมุมของ DOOM ได้อย่างครบถ้วน
Factorio หรือ Dwarf Fortress คงยังไม่ถูกจำลองในเร็ว ๆ นี้ อาจจะนะ
บางทีมันอาจเล็กกว่าซอร์สโค้ดเองด้วยซ้ำ คนในสายนี้น่าจะแก้ให้ถูกได้
ถึงจุดนั้น โดยพื้นฐานแล้วก็คือการ “เรนเดอร์” เกมด้วยการแทรกค่าใน latent space ของซอร์สโค้ด เท่ากับมีคอมพิวเตอร์ใน latent space ทั้งเครื่องที่มีเอนจิน แอสเซ็ต เท็กซ์เจอร์ และซอฟต์แวร์เรนเดอเรอร์
ถ้ามีคอมพิวเตอร์ที่ทรงพลังพอ ก็จินตนาการถึงการแทรกค่าใน latent space ระหว่างเกมอย่าง Factorio กับ TF2 ได้ด้วย และสามารถปรับ latent space นี้โดยใส่เงื่อนไขด้านเกมเพลย์ที่ต้องการ
อนาคตแบบนี้จะมาถึงเร็วมากในบางส่วนของไปป์ไลน์ เช่นขั้นตอนสุดท้ายของการเรนเดอร์ ตัวอย่างเช่น DLSS ก็วางขายเชิงพาณิชย์แล้ว
สักวันหนึ่ง เมื่อทุกคนถูกยึดติดอยู่กับเมตาเวิร์สของนิวรัลเน็ตเวิร์ก รายได้ของ Nvidia อาจกลับมาจากเกมอีกครั้งก็ได้
ดีมากจริง ๆ ที่เลือก DOOM
เป็นวิธีที่ทุ่มความพยายามทั้งหมดไปที่กลไกของเกมเท่านั้น ไม่ใช่คุณภาพภาพ
คาดว่าวิธีนี้จะช่วยลด ความไม่สอดคล้องทางภาพ ได้ดีกว่า เช่นกรณีหันหน้าไปทางอื่นแล้วหันกลับมาอีกที ปีศาจสีแดงกลายเป็นพวกสีน้ำเงิน
เริ่มจากเกมแพลตฟอร์มที่ค่อนข้างเรียบง่ายอย่าง Mario ก็ได้
พอเขียนไปได้ราว 300 หน้า แล้วยังอธิบายได้แค่ประมาณครึ่งเดียว คุณจะเข้าใจว่าทำไมเรื่องนี้ถึงเป็นความคิดเชิงหวังมากกว่าความจริง
คนคนหนึ่งอาจคุยกับโมเดลแล้วสร้างสิ่งที่อยู่ในระดับเดียวกับเกม AAA ในปัจจุบันได้
ลองนึกถึงกระแสเกม 2D side-scroller บน Steam แต่ให้เป็นเกม 3D แบบภาพสมจริงชวนดื่มด่ำ มีฟิสิกส์เหนือจริง (การไหลของน้ำ ไฟที่ลาม พายุทอร์นาโด) และมีความสามารถในการดัดแปลง·ก่อสร้างได้อย่างสมบูรณ์
ในทำนองว่าโมเดลถูก pretrain ด้วยวิดีโอจากโลกจริง และเกมเป็นเพียง “สไตล์” ที่ปรับ prior distribution เกี่ยวกับรูปลักษณ์ ฉาก และเรื่องราวเล็กน้อย
ถ้าต้องสร้างเกมไว้ก่อนแล้ว โมเดลดิฟฟิวชันถึงจะเป็นเกมเอนจินหรือ? การฝึกโมเดลต้องมีเกมก่อน นี่ไม่ใช่ปัญหาไก่กับไข่เหรอ?
อาจสร้างเกมเอนจินเวอร์ชันที่ไม่ใช่เรียลไทม์ แล้วใช้นิวรัลเน็ตเวิร์กเป็นการประมาณค่าแบบเรียลไทม์ได้
หรืออาจตัดต่อสิ่งอย่าง HUD เข้าไปในวิดีโอที่ถ่ายจากโลกจริง แล้วฝึกให้นิวรัลเน็ตเวิร์กจำลองโลกจริงแทนที่จะเป็น Doom ก็ได้
งานวิจัยนี้ใช้ 900 ล้านเฟรม ซึ่งถ้าเป็น 30fps ก็น่าจะเท่ากับวิดีโอประมาณ 1 ปี การปรับปรุงอัลกอริทึมอาจลดปริมาณข้อมูลที่ต้องใช้ในการฝึกได้
วิดีโอ 1 ปีก็ไม่ได้มากขนาดนั้นในความเป็นจริง ตัวอย่างเช่น ถ้ารับสมัครคน 500 คน ติด GoPro มาตรวัดความเร่ง และไจโรไว้ที่ศีรษะกับปืนเพนต์บอล แล้วให้เล่นเพนต์บอลกันช่วงสุดสัปดาห์ ก็อาจได้วิดีโอ 1 ปีแล้ว
แล้วโมเดลอื่น ๆ ที่อยู่ด้านบนค่อย fine-tune รายละเอียดเพื่อปรับแต่งเกมให้เฉพาะเจาะจง
โมเดล diffusion ไม่อาจเป็นเกมเอนจินได้ เพราะเกมเอนจินต้องสามารถสร้างเกมใหม่ และเปลี่ยนกฎของเกมเดิมได้แบบเรียลไทม์
แม้แต่กฎที่ไม่ปรากฏบนหน้าจอก็ต้องเปลี่ยนได้ด้วย
เครื่องมือแบบนี้น่าสนใจ แต่ก็เหมือนกับกระแสโฆษณาเกินจริงของ AI ทั้งหมด คือควรมีข้อความปฏิเสธความรับผิดชอบกำกับไว้
เครื่องมือนี้ไม่ได้สร้างเกมขึ้นมา เพียงแต่สุ่มตัวอย่างจากเกมที่มนุษย์สร้าง แล้วสร้างเฟรมกับรูปลักษณ์ของกลไกการเล่นขึ้นมาเท่านั้น
บอกว่า “แค่” สร้างขึ้นมาอย่างนั้นหรือ? ผมเข้าใจว่าในเชิงกลไกมันอาจเรียบง่ายได้ แต่ข้อเท็จจริงที่ว่ามันบีบอัด การแจกแจงแบบมีเงื่อนไข ที่อุดมสมบูรณ์ขนาดนั้น ดูไม่เรียบง่ายเลยสักนิด
หากฝึกด้วยหลายเกมและฝังข้อมูลของแต่ละเกมให้มากขึ้นมาก ๆ ก็อาจเป็นไปได้ที่จะระบุพรอมป์ตที่อธิบายเกมแล้วเล่นได้
แบบนั้นจะได้ประโยชน์จริง ขณะเดียวกันก็แก้ ปัญหาความสอดคล้อง ได้ด้วย