- DIAMOND एक ऐसा तरीका है जो Atari वातावरण को discrete latent tokens में compress किए बिना, उसे diffusion world model के रूप में simulate करता है और फिर उसके भीतर reinforcement learning agent को train करता है
- अगला frame, agent के action और पिछले frame को condition के रूप में लेकर generate किया जाता है, और इस प्रक्रिया को दोहराकर एक playable world model बनाया जाता है
- कम denoising steps पर DDPM अस्थिर था, लेकिन EDM ने 1 step पर भी स्थिर trajectory बनाई, और DIAMOND ने consistency के लिए n=3 का उपयोग किया
- Atari 100k में इसने औसत human-normalized score 1.46 हासिल किया, जो 100k frame सेटिंग में world model के भीतर train किए गए agent के लिए नया सर्वश्रेष्ठ प्रदर्शन है
- CS:GO पर लागू करने में 87 घंटे का human play data, 2-stage low-resolution prediction + upsampling pipeline, और 381M parameter model का उपयोग हुआ, और यह RTX 3090 पर लगभग 10 FPS पर playable है
DIAMOND जिस world modeling समस्या को हल करना चाहता है
- World model reinforcement learning agent को अधिक सुरक्षित और sample-efficient तरीके से train करने का एक तरीका है
- हाल के world models मुख्य रूप से environment dynamics को discrete latent variables की sequence के रूप में model करते हैं
- ऐसे compressed representation, reinforcement learning के लिए महत्वपूर्ण visual details को खो सकते हैं
- DIAMOND image generation में मजबूत प्रदर्शन देने वाले diffusion model को world model पर लागू करता है
- DIAMOND का पूरा नाम DIffusion As a Model Of eNvironment Dreams है
Diffusion world model कैसे काम करता है
- Diffusion model को गेम के अगले frame की prediction के लिए train किया जाता है
- Input में agent के action और पिछले frames शामिल होते हैं
- जब agent बार-बार नए action देता है, diffusion model गेम की state को update करता है
- इस autoregressive generation process की वजह से diffusion model एक world model की तरह काम करता है, जिसमें agent सीख और खेल सकता है
तेज़ execution के लिए denoising design
- World model को तेज़ बनाने के लिए denoising steps की संख्या कम करनी पड़ती है
- DDPM कम denoising steps पर autoregressive errors जमा होने की वजह से अस्थिर हो जाता है
- EDM 1-step denoising पर भी स्थिर trajectories बनाता है
- Boxing environment में 1-step denoising संभव परिणामों के बीच interpolate करता है, इसलिए predict करना कठिन काले रंग का player धुंधला बनता है
- अधिक denoising steps कई संभावित transition modes में से किसी खास mode को बेहतर चुनते हैं, जिससे समय के साथ consistency बढ़ती है
- DIAMOND का diffusion world model n=3 denoising steps का उपयोग करता है
- सफेद player की movement policy नियंत्रित करती है, और क्योंकि उसका action world model को दिया जाता है, इसलिए denoising steps की संख्या से अलग वह सही तरह predict होता है
Atari 100k प्रदर्शन
- DIAMOND, discrete token-आधारित IRIS की तुलना में महत्वपूर्ण visual details को बेहतर model करता है
- Diffusion world model के भीतर reinforcement learning agent को train करने पर, इसने Atari 100k में औसत human-normalized score 1.46 हासिल किया
- यह score इंसानों से 46% बेहतर स्तर दर्शाता है
- 100k frame सेटिंग में केवल world model के भीतर train किए गए agents में यह नया सर्वश्रेष्ठ प्रदर्शन है
CS:GO तक विस्तार का तरीका
- DIAMOND का diffusion world model Counter-Strike: Global Offensive जैसे 3D environment के simulation पर भी लागू होता है
- CS:GO संस्करण reinforcement learning agent द्वारा इकट्ठा किए गए data की जगह 87 घंटे के human play से बने fixed dataset का उपयोग करता है
- Training cost कम करने के लिए 2-stage pipeline लागू की गई
- पहले low resolution पर dynamics की prediction की जाती है
- उसके बाद दूसरे model से upsampling किया जाता है
- Model size, Atari के लिए 4.4M parameters से बढ़कर CS:GO के लिए 381M parameters हो जाती है
- इनमें से 51M parameters अतिरिक्त upsampler के लिए हैं
- Upsampler में visual generation quality बढ़ाने के लिए stochastic sampling का उपयोग किया जाता है
- Dynamics model में stochastic sampling की आवश्यकता नहीं होती
- CS:GO model को RTX 4090 पर 12 दिनों तक train किया गया, और यह RTX 3090 पर लगभग 10 FPS पर playable है
सीधे चलाना और सार्वजनिक सामग्री
- Code, agent, और playable world model GitHub repository में उपलब्ध हैं
- Installation उदाहरण के लिए ये commands उपयोग की जाती हैं
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
- अधिक जानकारी paper में देखी जा सकती है
बचे हुए failure modes और scaling limits
- DIAMOND के diffusion world model में अभी भी कई failure modes बचे हुए हैं
- Data और compute को और scale करने पर कई पहलुओं में सुधार की उम्मीद है
- लेकिन कुछ सीमाएँ ऐसी भी हैं जो सिर्फ scaling से हल नहीं होंगी, जैसे सीमित model memory से पैदा होने वाली समस्याएँ
- एक दिलचस्प सीमा यह है कि model लगातार jump की अनुमति देता है
- Model, scene geometry पर jump के प्रभाव को generalize कर देता है
- Training data में लगातार jump पर्याप्त बार नहीं दिखते, इसलिए यह नहीं सीख पाता कि लगातार jump संभव नहीं होने चाहिए
1 टिप्पणियां
Hacker News टिप्पणियां
यह वीडियो https://x.com/Sentdex/status/1845146540555243615 मेरे सपनों से बहुत मिलता-जुलता लगता है
कभी-कभी सपने में जब मैं ऊंची छलांग लगाने की कोशिश करता हूं, तो ठीक इसी तरह किसी दूसरी जगह पर शिफ्ट हो जाता हूं, और चीजें भी लगातार इसी तरह बदलती रहती हैं
यह देखना हैरान करता है कि यह असली सपने के अनुभव के कितना करीब है
जब diffusion models चर्चा में आने लगे, तो generated images में दिखने वाले टूटे-फूटे text से भी मुझे वैसा ही संबंध लगा
शायद यह इस बात का संकेत हो कि इंसानी अवचेतन का कोई हिस्सा diffusion model के सिद्धांतों से काफी मिलता-जुलता काम करता है
दृष्टि में यह कम नजर आता है, लेकिन ध्यान और विचारों खुद में ज्यादा साफ दिखता है
मेरे सपने visually पूरी तरह consistent होते हैं; मैंने सपने में Google Maps भी इस्तेमाल किया है, और geography गलत थी, लेकिन internally consistent थी
हालांकि मैंने सपने के अंदर कभी lucid dream नहीं देखा, इसलिए यह फर्क असर डाल सकता है
सपने की अवस्था में कुछ disconnect रहता है, और यहां भी वैसा ही disconnect साफ है
इस model में जानवरों के पास मौजूद मजबूत spatial reasoning और continuity expectations जैसे world model की कमी लगती है
बेशक, वह भी शायद सीखी जाने वाली चीज ही होगी
यह 300 million parameters वाला model है, बड़े llama-3 के आकार का 1/1300, और इसे 5 million frames पर GTX4090 से 12 दिन तक train किया गया है
2015 में यह बड़े tech companies के स्तर का काम था
अगर बड़े language models की तरह industrial scale पर यही किया जाए, तो सच में जबरदस्त होगा
Counter Strike तो पहले से ही इससे कहीं ज्यादा smooth चलता है, और भारी-भरकम compute भी बर्बाद नहीं करता
progress की रफ्तार सचमुच चौंकाने वाली है
हम वाकई दिलचस्प समय में जी रहे हैं
यह काफी exciting result है
यह पहले से ही game engines में realistic physics approximations generate करने के लिए इस्तेमाल हो सकता है
भारी और ज्यादा realistic physics engine, शायद CGI से gameplay के बहुत सारे टुकड़े बनाएं, और model को physics approximate करने के लिए train करें, तो एक हल्का physics engine मिल सकता है
smoke dynamics के लिए, explosions के लिए जैसे कई specialized models भी रखे जा सकते हैं
hallucinations हों भी, तो वे games में आम physics bugs से शायद बदतर नहीं होंगे
physics bugs आम हैं, लेकिन सबसे गंभीर game-breaking bugs को प्राथमिकता देकर fix किया जा सकता है
black-box model हो तो ऐसा करना कहीं ज्यादा मुश्किल हो जाता है
Newtonian physics पहले से ही बहुत अच्छी तरह समझी जाती है और उसका computation भी काफी efficient है
billions of parameters वाली function approximation से Newtonian physics compute करना कैसे सस्ता हो सकता है?
यह proper physics simulation से ज्यादा महंगा और कम accurate लगता है
machine learning model में ऐसी कोई guarantee नहीं होती
यह तरीका शायद सिर्फ जानबूझकर ढीले-ढाले बनाए गए games के संदर्भ में ठीक हो सकता है
अगर सिर्फ visual effects हैं तो ठीक है, लेकिन अगर gameplay पर असर पड़ा, तो क्या हर player को अलग result नहीं मिलेगा?
जिन लोगों ने सच में इसे आजमाया है, उनसे पूछना चाहूंगा
processing के दौरान क्या यह किसी game map का सम्मान करता है या उसे बनाता जाता है, या फिर यह किसी psychedelic सपने में टहलने जैसा है जहां आप एक ही जगह पर दो बार वापस नहीं जा सकते और spatial dimensions भी अजीब हैं?
क्या game map finite है?
लगता है यह कोई map नहीं बनाता, और game state जैसी किसी चीज की meaningful understanding भी नहीं है
LLM-based RPG जैसा है
जैसे तलवार उठाकर खाली bag में डालने के बाद अचानक रोटी का एक लोफ निकालकर खा सकना
यह infinite map के ज्यादा करीब लगता है
किसी भी तरह की map awareness नहीं है
यह training dataset में मौजूद चीजों को काफी accurately याद कर लेने वाली recall/replay-type AI के ज्यादा करीब है, और अगर आप data में न होने वाली action करें, जैसे दीवार में चलते चले जाना, तो यह पूरी तरह collapse होकर बकवास उगलता है
believable बकवास, लेकिन फिर भी बकवास
यह वही काम है जो 2018 में Schmidhuber group ने किया था
https://worldmodels.github.io/
मैं यह point बताना चाहता हूं
यहां dream शब्द बिलकुल सही है, और driving scene भी सपने में driving करने के एहसास जैसा लगता है
Stable Diffusion की मूल धारणा—यानी noise removal प्रक्रिया को उल्टा चलाकर realistic images बनाना—मुझे मोटे तौर पर समझ में आ गई लगती है
हालांकि मेरी जानकारी में यह हमेशा pixel level पर होता है
क्या इसे 3D asset level पर आज़माने वाली कोई research है?
मतलब position और direction वाले game engine assets डालकर, उन्हें तब तक fit करना जब तक कोई plausible scene reconstruct न हो जाए
अगर यह संभव हो, तो क्या हम वास्तविक maps और real physics को “dream” कर सकते हैं, और ऐसे demos में दिखने वाले थोड़े messy output से बच सकते हैं?
अब तक इसका उपयोग कई angles से ली गई photos से एक scene को learn करने और point cloud की density adjust करके volumetrically reconstruct करने में हुआ है
लेकिन कई अलग-अलग scenes पर model train करके, random point cloud पर diffusion चलाकर नए scenes generate करना भी संभव हो सकता है
point cloud को real-time render करना भी बहुत efficient है, इसलिए इसे polygon geometry के बजाय बेहद realistic game worlds बनाने में इस्तेमाल किया जा सकता है
लगता है किसी ने यह पहले ही सोच लिया है: https://ar5iv.labs.arxiv.org/html/2311.11221
diffusion latent space में होता है, और यही उन बड़े breakthroughs में से एक था जिसने सब कुछ ठीक से काम करने लायक बनाया
pixels और latent space के बीच encode/decode करने वाला model होता है
latent space जरूरी concepts को जरूरी dimensions में encode कर सकता है, और आम तौर पर pixel space से कम dimensions वाला होता है
इसलिए आप noisy latent space लेते हैं, diffusion model से noise remove करते हैं, फिर एक अलग model यानी variational autoencoder से उसे pixel space में decode करते हैं
ये vehicles काफी अक्सर टकरा जाते हैं
उदाहरण: https://github.com/NVlabs/CTG
आपने जो reverse-engineering तरीका बताया है, वह समझने में आसान है इसलिए आकर्षक लग सकता है
फिर भी मुझे लगता है कि pixel-level generation पर focus करना ही सही approach है
थोड़ा messy output शायद कम समय में बेहतर हो जाएगा
Doom(https://gamengen.github.io/) और इस काम ने दिखा दिया है कि यह संभव है, इसलिए HD और minimal hallucination तक scale करने के लिए सही architecture खोजने पर शायद पहले से ही और research चल रही होगी
video में भी ऐसा पहले हो चुका है, इसलिए जल्द ही वैसा ही breakthrough देखने को मिल सकता है
image generation इसी space में होता है, जहाँ outputs की संख्या final image के pixels से कम होती है, और बाद में VAE के जरिए pixels में convert किया जाता है
Neural network images और videos में मौजूद नर्क जैसी noise को लोग notice क्यों नहीं करते, यह मुझे अब भी समझ नहीं आता
मुझे तो यह शुरुआत से ही हमेशा पहचान में आती रही है और डरावनी लगी है
मुझे भी लगता है कि images लगभग हमेशा किसी न किसी तरह विचित्र होती हैं, लेकिन शायद हम एक ही चीज़ की बात नहीं कर रहे हों
यह experience कैसा है, थोड़ा और समझा सकते हैं?
अभी जल्दी से check किया, और यह AMD cards और ROCM PyTorch पर बहुत अच्छे से काम करता है
छोटे runs में यह काफी अच्छा दिखता है
समय बीतने पर details काफी जल्दी गायब हो जाती हैं, और weapons रंग-बिरंगे कचरे जैसे बन जाते हैं
मैं यह भी बताना चाहूँगा कि videos में कोई भी यह नहीं दिखाता कि अगर आप wall में चलते चले जाएँ तो क्या होता है
वह स्थिति यह बहुत gracefully handle नहीं करता
असली मज़ेदार बात तब होगी जब इसे नए GTA और उससे जुड़ी real footage पर train करके Vice City जैसे पुराने games के visuals को real-time में upgrade करने के लिए इस्तेमाल किया जाए
temporal consistency की कमी के कारण यह अब भी dream जैसा लगेगा, लेकिन base consistent है इसलिए शायद बड़ी समस्या नहीं होगी, और देखने में यह शानदार होगा
जैसा आपने कहा, temporal consistency अच्छी नहीं है
दूर के पहाड़ के low-resolution green pixels को एक frame में fruit tree और अगले frame में pine tree समझा जा सकता है
2021 में ऐसा ही कुछ करने वाला demo था:
https://www.youtube.com/watch?v=3rYosbwXm1w
शहर में बिना लक्ष्य drive करना हो तो संभव है, और सिर्फ वही भी बहुत cool होगा
मुख्य बात यह नहीं है कि video game world को recreate किया जा सकता है, बल्कि यह है कि real world को simulate किया जा सकता है
game footage को training में इसलिए इस्तेमाल करते हैं क्योंकि जरूरी data सस्ते और आसान तरीके से synthesize किया जा सकता है
इस system को नहीं पता कि वह game simulate कर रहा है
अगर आप इसे real-world video के हजारों से लाखों घंटे और agent inputs दें, तो आपको real world का simulation मिल सकता है
https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
यह धीरे-धीरे बिल्कुल बेतुके level तक पहुँच रहा है
अगर old frames और input → new frame वाला strong loop है, तो सोच रहा हूँ कि Counter-Strike की नहीं वाली image से start करें तो क्या होगा
या अगर model ने कोई map पहले नहीं देखा है तो क्या वह उसे follow करेगा, या known Counter-Strike map पर वापस लौट जाएगा?
ऐसी चीज़ों को देखकर Dust 2 का सपना देखने जैसा लगता है, इसलिए इसे “dream” कहना चाहूँगा