- DIAMOND เป็นแนวทางที่ไม่บีบอัดสภาพแวดล้อม Atari เป็นโทเค็นแฝงแบบไม่ต่อเนื่อง แต่จำลองด้วยโมเดลโลกแบบ diffusion แล้วฝึกเอเจนต์การเรียนรู้เสริมแรงภายในนั้น
- เฟรมถัดไปถูกสร้างโดยมี การกระทำ ของเอเจนต์และเฟรมก่อนหน้าเป็นเงื่อนไข และทำซ้ำกระบวนการนี้เพื่อสร้างโมเดลโลกที่เล่นได้
- ในขั้นตอนการลบสัญญาณรบกวนจำนวนน้อย DDPM ไม่เสถียร แต่ EDM สร้างวิถีที่เสถียรได้แม้มีเพียง 1 ขั้น และ DIAMOND ใช้ n=3 เพื่อความสอดคล้อง
- บน Atari 100k ทำคะแนน normalized by human average ได้เฉลี่ย 1.46 สร้างสถิติสูงสุดใหม่สำหรับเอเจนต์ที่เรียนภายในโมเดลโลกภายใต้เงื่อนไข 100k เฟรม
- การประยุกต์ใช้กับ CS:GO ใช้ ข้อมูลการเล่นของมนุษย์ 87 ชั่วโมง, ไปป์ไลน์ 2 ขั้นแบบทำนายความละเอียดต่ำ+อัปแซมปลิง, และโมเดลขนาด 381M พารามิเตอร์ โดยเล่นได้ราว 10 FPS บน RTX 3090
ปัญหาการสร้างแบบจำลองโลกที่ DIAMOND พยายามแก้
- โมเดลโลก เป็นแนวทางเพื่อฝึกเอเจนต์การเรียนรู้เสริมแรงให้ปลอดภัยขึ้นและมีประสิทธิภาพด้านตัวอย่างมากขึ้น
- โมเดลโลกยุคหลังส่วนใหญ่มักสร้างแบบจำลองพลวัตของสภาพแวดล้อมเป็นลำดับของ ตัวแปรแฝงแบบไม่ต่อเนื่อง
- การแทนแบบบีบอัดเช่นนี้อาจพลาด รายละเอียดเชิงภาพ ที่สำคัญต่อการเรียนรู้เสริมแรง
- DIAMOND นำโมเดล diffusion ซึ่งทำผลงานได้ดีมากในงานสร้างภาพ มาใช้กับโมเดลโลก
- ชื่อเต็มของ DIAMOND คือ DIffusion As a Model Of eNvironment Dreams
วิธีทำงานของโมเดลโลกแบบ diffusion
- โมเดล diffusion ถูกฝึกให้ทำนาย เฟรมถัดไป ของเกม
- อินพุตประกอบด้วยการกระทำของเอเจนต์และเฟรมก่อนหน้า
- เมื่อเอเจนต์ป้อนการกระทำใหม่ซ้ำ ๆ โมเดล diffusion จะอัปเดตสถานะของเกม
- ด้วยกระบวนการสร้างแบบอัตโนมัติถดถอยนี้ โมเดล diffusion จึงทำหน้าที่เป็น โมเดลโลก ที่เอเจนต์สามารถใช้เรียนรู้และเล่นได้
การออกแบบการลบสัญญาณรบกวนเพื่อการทำงานที่รวดเร็ว
- หากต้องการสร้างโมเดลโลกให้ทำงานได้เร็ว ต้องลด จำนวนขั้นตอนการลบสัญญาณรบกวน
- DDPM จะไม่เสถียรเมื่อใช้จำนวนขั้นตอนการลบสัญญาณรบกวนน้อย เพราะข้อผิดพลาดแบบอัตโนมัติถดถอยสะสมขึ้น
- EDM สร้างวิถีที่เสถียรได้แม้ลบสัญญาณรบกวนเพียง 1 ขั้น
- ในสภาพแวดล้อม Boxing การลบสัญญาณรบกวน 1 ขั้นจะอินเตอร์โพเลตระหว่างผลลัพธ์ที่เป็นไปได้ ทำให้ผู้เล่นสีดำซึ่งทำนายได้ยากถูกสร้างออกมาอย่างพร่ามัว
- จำนวนขั้นตอนการลบสัญญาณรบกวนที่มากขึ้นช่วยให้เลือกโหมดการเปลี่ยนผ่านที่เป็นไปได้โหมดใดโหมดหนึ่งได้ดีขึ้น จึงเพิ่มความสอดคล้องตามเวลา
- โมเดลโลกแบบ diffusion ของ DIAMOND ใช้ขั้นตอนการลบสัญญาณรบกวน n=3
- การเคลื่อนไหวของผู้เล่นสีขาวถูกควบคุมโดยนโยบาย และเพราะการกระทำนั้นถูกป้อนให้โมเดลโลก จึงทำนายได้ถูกต้องโดยไม่ขึ้นกับจำนวนขั้นตอนการลบสัญญาณรบกวน
ประสิทธิภาพบน Atari 100k
- DIAMOND สร้างแบบจำลอง รายละเอียดเชิงภาพ ที่สำคัญได้ดีกว่า IRIS ที่ใช้โทเค็นแบบไม่ต่อเนื่อง
- ผลจากการฝึกเอเจนต์การเรียนรู้เสริมแรงภายในโมเดลโลกแบบ diffusion ทำให้ได้คะแนน normalized by human average เฉลี่ย 1.46 บน Atari 100k
- คะแนนนี้สูงกว่ามนุษย์ 46%
- เป็นสถิติสูงสุดใหม่สำหรับเอเจนต์ที่ฝึกอยู่ภายในโมเดลโลกเท่านั้น ภายใต้เงื่อนไข 100k เฟรม
วิธีขยายไปสู่ CS:GO
- โมเดลโลกแบบ diffusion ของ DIAMOND ยังถูกนำไปใช้กับการจำลองสภาพแวดล้อม 3D อย่าง Counter-Strike: Global Offensive ได้ด้วย
- เวอร์ชัน CS:GO ใช้ชุดข้อมูลคงที่จาก การเล่นของมนุษย์ 87 ชั่วโมง แทนข้อมูลที่เก็บโดยเอเจนต์การเรียนรู้เสริมแรง
- เพื่อลดต้นทุนการฝึก จึงใช้ไปป์ไลน์ 2 ขั้น
- ขั้นแรก ทำนายพลวัตที่ความละเอียดต่ำ
- จากนั้นใช้อีกโมเดลหนึ่งเพื่ออัปแซมปลิง
- ขนาดโมเดลเพิ่มจาก 4.4M พารามิเตอร์สำหรับ Atari เป็น 381M พารามิเตอร์ สำหรับ CS:GO
- ในนี้ 51M พารามิเตอร์เป็นของตัวอัปแซมเปลอร์เพิ่มเติม
- ตัวอัปแซมเปลอร์ใช้ การสุ่มตัวอย่างแบบสโตแคสติก เพื่อยกระดับคุณภาพการสร้างภาพ
- ส่วนโมเดลพลวัตไม่จำเป็นต้องใช้การสุ่มตัวอย่างแบบสโตแคสติก
- โมเดล CS:GO ถูกฝึกเป็นเวลา 12 วันบน RTX 4090 และเล่นได้ที่ประมาณ 10 FPS บน RTX 3090
การรันด้วยตนเองและข้อมูลที่เผยแพร่
- โค้ด เอเจนต์ และโมเดลโลกที่เล่นได้ ถูกเผยแพร่ไว้ใน GitHub repository
- ตัวอย่างการติดตั้งใช้คำสั่งต่อไปนี้
git clone https://github.com/eloialonso/diamond.git
cd diamond
conda create -n diamond python=3.10
conda activate diamond
pip install -r requirements.txt
python src/play.py --pretrained
git checkout csgo
python src/play.py
โหมดความล้มเหลวที่ยังเหลืออยู่และข้อจำกัดด้านการสเกล
- โมเดลโลกแบบ diffusion ของ DIAMOND ยังมีโหมดความล้มเหลวหลายแบบเหลืออยู่
- คาดว่าหากขยายข้อมูลและคอมพิวต์เพิ่มขึ้น หลายด้านจะดีขึ้นได้
- อย่างไรก็ตาม ยังมี ข้อจำกัดที่ไม่อาจแก้ได้ด้วยการสเกลเพียงอย่างเดียว เช่น ปัญหาที่เกิดจากหน่วยความจำของโมเดลที่จำกัด
- ข้อจำกัดที่น่าสนใจอย่างหนึ่งคือ โมเดลอนุญาตให้กระโดดต่อเนื่องได้
- โมเดลทำการทั่วไปผลของการกระโดดที่มีต่อเรขาคณิตของฉาก
- เพราะในข้อมูลฝึกมีกรณีกระโดดต่อเนื่องไม่บ่อยพอ จึงไม่สามารถเรียนรู้ข้อเท็จจริงที่ว่าการกระโดดต่อเนื่องควรเป็นไปไม่ได้
1 ความคิดเห็น
ความเห็นจาก Hacker News
วิดีโอนี้ https://x.com/Sentdex/status/1845146540555243615 ดูคล้ายความฝันของฉันมาก
บางครั้งเวลาในฝันพยายามกระโดดให้สูง มันจะสลับไปอีกสถานที่แบบนั้นพอดี และสิ่งของต่าง ๆ ก็เปลี่ยนไปเรื่อย ๆ แบบนั้นด้วย
น่าทึ่งที่ได้เห็นว่ามันใกล้กับ ประสบการณ์ในฝัน จริง ๆ แค่ไหน
ตอนที่ diffusion model เริ่มได้รับความสนใจ ฉันก็นึกเชื่อมโยงกับ ข้อความที่เพี้ยนแตก ในภาพที่สร้างขึ้นมาได้เหมือนกัน
มันอาจเป็นเบาะแสว่าบางส่วนของจิตไร้สำนึกมนุษย์ทำงานคล้ายกับหลักการของ diffusion model พอสมควร
ในลานสายตาจะสังเกตได้ยากกว่า แต่ใน ความสนใจและความคิดเอง จะเห็นชัดกว่า
ฝันของฉันค่อนข้างมีความสอดคล้องทางภาพอย่างสมบูรณ์ ถึงขั้นเคยใช้ Google Maps ในฝันมาแล้ว และแม้ภูมิศาสตร์จะผิด แต่ภายในฝันเองก็ยังสอดคล้องกัน
แต่ฉันไม่เคย ฝันรู้ตัว ในฝันเลย ดังนั้นความต่างนั้นอาจส่งผลก็ได้
ในสภาวะฝันมีบางอย่างที่การเชื่อมต่อขาดหายไป และที่นี่ก็เห็นความขาดตอนคล้ายกันอย่างชัดเจน
โมเดลนี้ดูเหมือนยังขาด world model แบบที่สัตว์มีอยู่ เช่น การอนุมานเชิงพื้นที่ที่แข็งแรงและความคาดหวังเรื่องความต่อเนื่อง
แน่นอนว่านั่นก็น่าจะเรียนรู้ได้เหมือนกัน
นี่เป็นโมเดล 300 ล้านพารามิเตอร์ ขนาดเพียง 1/1300 ของ llama-3 ตัวใหญ่ และฝึกด้วย 5 ล้านเฟรมบน GTX4090 เป็นเวลา 12 วัน
นี่เป็นงานระดับที่บริษัทเทคใหญ่ทำกันในปี 2015
ถ้าทำสิ่งเดียวกันในระดับอุตสาหกรรมแบบ large language model ก็คงมหาศาลมากจริง ๆ
Counter Strike ก็รันได้ลื่นกว่านี้มากอยู่แล้ว และไม่ได้สิ้นเปลืองการคำนวณมหาศาลด้วย
ความเร็วของพัฒนาการนี่น่าทึ่งจริง ๆ
เราอยู่ในยุคที่น่าสนใจมาก
เป็นผลลัพธ์ที่น่าตื่นเต้นทีเดียว
ดูเหมือนจะใช้สร้าง การประมาณฟิสิกส์ ที่สมจริงใน game engine ได้แล้ว
อาจได้ physics engine ที่หนักและสมจริงกว่า หรืออาจสร้างชิ้นส่วนเกมเพลย์ด้วย CGI จำนวนมาก แล้วฝึกให้โมเดลประมาณฟิสิกส์ จนได้ physics engine แบบเบา
อาจมีหลายโมเดลเฉพาะทางด้วยก็ได้ เช่น สำหรับพลวัตของควัน สำหรับระเบิด
ถึงจะมีอาการหลอน แต่ก็คงไม่แย่ไปกว่าบั๊กฟิสิกส์ที่พบได้บ่อยในเกม
บั๊กฟิสิกส์มีบ่อยก็จริง แต่เรายังจัดลำดับความสำคัญและแก้จากบั๊กร้ายแรงที่ทำให้เล่นต่อไม่ได้ก่อนได้
ถ้าเป็น โมเดลกล่องดำ จะทำแบบนั้นได้ยากกว่ามาก
ฟิสิกส์แบบนิวตันเป็นสิ่งที่รู้กันดีอยู่แล้ว และการคำนวณก็ค่อนข้างมีประสิทธิภาพ
การใช้ ตัวประมาณฟังก์ชัน ระดับหลายพันล้านพารามิเตอร์มาคำนวณฟิสิกส์แบบนิวตันจะถูกกว่าได้อย่างไร?
มันดูแพงกว่าและแม่นยำน้อยกว่าการจำลองฟิสิกส์ที่ทำถูกต้องเสียอีก
แต่โมเดลแมชชีนเลิร์นนิงไม่มีหลักประกันแบบนั้น
วิธีนี้น่าจะเหมาะแค่ในบริบทของเกมที่ตั้งใจทำให้หลวม ๆ เท่านั้น
ถ้าเป็นแค่เอฟเฟกต์ภาพก็คงโอเค แต่ถ้ามันส่งผลต่อเกมเพลย์ ผู้เล่นแต่ละคนจะไม่ได้ผลลัพธ์คนละแบบหรือ?
อยากรู้จากคนที่ลองจริง
ระหว่างประมวลผลมันเคารพหรือค่อย ๆ สร้าง แผนที่เกม แบบใดแบบหนึ่งขึ้นมาหรือเปล่า หรือว่าเป็นการเดินเล่นในฝันหลอน ๆ ที่กลับมาที่เดิมสองครั้งไม่ได้และมิติเชิงพื้นที่ก็ประหลาด?
แผนที่เกมมีขอบเขตจำกัดไหม?
มันไม่ได้สร้างแผนที่ใด ๆ และก็ดูไม่มีการรับรู้ที่มีความหมายเกี่ยวกับอะไรที่คล้ายสถานะเกมด้วย
คล้ายกับ RPG ที่อิง LLM
ประมาณว่าเก็บดาบใส่กระเป๋าว่าง ๆ แล้วจู่ ๆ ก็หยิบขนมปังก้อนหนึ่งออกมากินได้
ดูใกล้เคียงกับแผนที่ไร้ขอบเขตมากกว่า
มันไม่มีการรับรู้เรื่องแผนที่แบบใดเลย
มันใกล้เคียงกับ AI แบบระลึก/เล่นซ้ำ ที่จำสิ่งในชุดข้อมูลฝึกได้ค่อนข้างแม่น และถ้าทำพฤติกรรมที่ไม่มีในข้อมูล เช่น เดินชนกำแพงเข้าไป มันจะพังทันทีแล้วพร่ำเรื่องไร้สาระ
เป็นเรื่องไร้สาระที่ดูน่าเชื่อถือ แต่ก็ยังไร้สาระอยู่ดี
นี่คืองานที่กลุ่ม Schmidhuber ทำไว้ตั้งแต่ปี 2018
https://worldmodels.github.io/
แค่อยากชี้ประเด็นนี้ไว้
คำว่า ความฝัน ใช้ได้ตรงมากในที่นี้ และฉากขับรถก็คล้ายความรู้สึกเวลาขับรถในฝัน
ดูเหมือนว่าจะพอเข้าใจสมมติฐานพื้นฐานของ Stable Diffusion แล้ว กล่าวคือการสร้างภาพสมจริงด้วยการย้อนกระบวนการกำจัด noise
แต่เท่าที่รู้ สิ่งนี้เกิดขึ้นที่ระดับพิกเซลเสมอ
มีงานวิจัยที่พยายามทำแบบนี้ในระดับ 3D asset บ้างไหม?
ประมาณว่าใส่ asset ของเกมเอนจินที่มีตำแหน่งและทิศทางลงไป แล้วปรับให้เข้าที่จนสร้างฉากที่ดูสมจริงขึ้นมาได้
ถ้าทำได้ มันอาจ “ฝัน” ถึงแผนที่จริงและฟิสิกส์จริงได้ และหลีกเลี่ยงเอาต์พุตที่ดูค่อนข้างรกแบบในเดโมพวกนี้ได้หรือเปล่า?
จนถึงตอนนี้มันถูกใช้เพื่อเรียนรู้ฉากหนึ่งจากภาพถ่ายหลายมุม แล้วปรับความหนาแน่นของ point cloud เพื่อสร้างใหม่ในแบบเชิงปริมาตร
แต่ก็น่าจะเป็นไปได้ที่จะฝึกโมเดลด้วยหลายฉากที่ต่างกัน แล้วทำ diffusion บน point cloud แบบสุ่มเพื่อสร้างฉากใหม่
การเรนเดอร์ point cloud แบบเรียลไทม์ก็มีประสิทธิภาพสูงมาก จึงอาจใช้สร้างโลกเกมที่สมจริงอย่างมากแทนเรขาคณิตแบบหลายเหลี่ยมได้
ดูเหมือนว่าจะมีคนคิดเรื่องนี้ไว้แล้ว: https://ar5iv.labs.arxiv.org/html/2311.11221
diffusion เกิดขึ้นใน latent space และนี่คือหนึ่งในจุดเปลี่ยนสำคัญที่ทำให้ทุกอย่างใช้งานได้ดี
มีโมเดลที่ใช้ encode/decode ระหว่างพิกเซลกับ latent space
latent space สามารถเข้ารหัสแนวคิดที่ต้องการในมิติที่ต้องใช้ได้ และโดยทั่วไปมีมิติต่ำกว่าพื้นที่พิกเซล
ดังนั้นจึงได้ latent space ที่มี noise ปะปนอยู่ จากนั้นใช้ diffusion model เพื่อลบ noise แล้วค่อย decode กลับไปเป็นพื้นที่พิกเซลด้วยอีกโมเดลหนึ่งคือ variational autoencoder
รถพวกนี้ชนกันค่อนข้างบ่อย
ตัวอย่าง: https://github.com/NVlabs/CTG
วิธี reverse engineering ที่อธิบายมาดูน่าดึงดูดเพราะเข้าใจได้ง่าย
ถึงอย่างนั้นก็คิดว่าการโฟกัสที่การสร้างระดับพิกเซลยังเป็นแนวทางที่ถูกต้อง
เอาต์พุตที่ค่อนข้างรกน่าจะดีขึ้นได้ในเวลาไม่นาน
ทั้ง Doom(https://gamengen.github.io/) และงานนี้พิสูจน์แล้วว่าทำได้ ดังนั้นก็น่าจะมีงานวิจัยอีกมากที่กำลังหา architecture ที่เหมาะสมเพื่อขยายไปสู่ HD และลด hallucination ให้เหลือน้อยที่สุด
เรื่องแบบนี้เกิดขึ้นกับวิดีโอมาแล้ว จึงน่าจะได้เห็นจุดเปลี่ยนในระดับใกล้เคียงกันในไม่ช้า
การสร้างภาพเกิดขึ้นในพื้นที่นี้ซึ่งมีจำนวนเอาต์พุตน้อยกว่าพิกเซลของภาพสุดท้าย จากนั้นจึงแปลงเป็นพิกเซลผ่าน VAE
ผมยังคงไม่เข้าใจว่าทำไมคนถึงไม่สังเกตเห็น noise แบบนรกแตก ในภาพและวิดีโอจากโครงข่ายประสาท
สำหรับผมมันเห็นได้มาตลอดตั้งแต่แรก และให้ความรู้สึกน่ากลัว
ผมเองก็รู้สึกว่าภาพมันแทบจะประหลาดในทางใดทางหนึ่งอยู่เสมอ แต่เราอาจไม่ได้พูดถึงสิ่งเดียวกัน
ช่วยอธิบายประสบการณ์นั้นเพิ่มได้ไหม?
เมื่อกี้ลองเช็กเร็ว ๆ แล้ว มันทำงานได้ดีมากกับ การ์ด AMD และ ROCM PyTorch
ถ้ารันสั้น ๆ ก็ดูโอเคใช้ได้
แต่พอเวลาผ่านไป รายละเอียดจะหายไปค่อนข้างเร็ว และอาวุธก็มักกลายเป็นกองขยะสีฉูดฉาด
อีกอย่างที่อยากชี้คือไม่มีวิดีโอไหนแสดงให้เห็นว่าเกิดอะไรขึ้นเมื่อเดินชนกำแพง
สถานการณ์นั้นมันจัดการได้ไม่ค่อยสวยนัก
จุดที่มันจะน่าสนใจมากจริง ๆ คือเอาไปฝึกกับ GTA รุ่นใหม่รวมถึงฟุตเทจจริงที่เกี่ยวข้อง แล้วใช้มันอัปเกรดภาพของเกมเก่าอย่าง Vice City แบบเรียลไทม์
เพราะยังขาด temporal consistency มันก็คงยังให้ความรู้สึกเหมือนความฝันอยู่ แต่ด้วยฐานที่สอดคล้องกันก็น่าจะไม่ใช่ปัญหาใหญ่ และภาพที่ได้คงน่าทึ่งมาก
อย่างที่ชี้ไว้ temporal consistency ยังไม่ดี
พิกเซลสีเขียวความละเอียดต่ำของภูเขาไกล ๆ อาจถูกตีความเป็นต้นผลไม้ในเฟรมหนึ่ง และเป็นต้นสนในเฟรมถัดไป
มีเดโมที่ทำอะไรคล้ายกันตั้งแต่ปี 2021:
https://www.youtube.com/watch?v=3rYosbwXm1w
แต่ถ้าแค่ขับรถวนในเมืองแบบไม่มีจุดหมายก็น่าจะพอเป็นไปได้ และแค่นั้นก็เจ๋งมากแล้ว
ประเด็นสำคัญไม่ใช่ว่ามันสร้างโลกของวิดีโอเกมขึ้นมาใหม่ได้ แต่คือมันสามารถ จำลองโลกจริง ได้
ที่ใช้ฟุตเทจเกมมาฝึกก็เพราะมันสังเคราะห์ข้อมูลที่ต้องการได้ในราคาถูกและง่าย
ระบบนี้ไม่ได้รู้ตัวว่ามันกำลังจำลองเกมอยู่
ถ้าให้วิดีโอโลกจริงหลายพันถึงหลายล้านชั่วโมงพร้อมอินพุตของเอเจนต์ คุณก็จะได้แบบจำลองของโลกจริง
https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
มันเริ่มไปไกลจนเหลือเชื่อขึ้นเรื่อย ๆ
ถ้ามีลูปที่แรงขนาดใช้เฟรมเก่ากับอินพุตเพื่อสร้างเฟรมใหม่ แบบนี้ถ้าเริ่มจากภาพที่ไม่ใช่ Counter-Strike จะเกิดอะไรขึ้นนะ
หรือถ้าใส่แผนที่ที่โมเดลไม่เคยเห็น มันจะตามต่อได้ไหม หรือจะย้อนกลับไปเป็นแผนที่ Counter-Strike ที่รู้จัก?
ดูแล้วให้ความรู้สึกเหมือนกำลังฝันถึง Dust 2 เลยอยากเรียกมันว่า “ความฝัน”