1 पॉइंट द्वारा GN⁺ 2024-10-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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
  • Atari world model चलाना:
python src/play.py --pretrained
  • CS:GO world model चलाना:
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 टिप्पणियां

 
GN⁺ 2024-10-14
Hacker News टिप्पणियां
  • यह वीडियो https://x.com/Sentdex/status/1845146540555243615 मेरे सपनों से बहुत मिलता-जुलता लगता है
    कभी-कभी सपने में जब मैं ऊंची छलांग लगाने की कोशिश करता हूं, तो ठीक इसी तरह किसी दूसरी जगह पर शिफ्ट हो जाता हूं, और चीजें भी लगातार इसी तरह बदलती रहती हैं
    यह देखना हैरान करता है कि यह असली सपने के अनुभव के कितना करीब है

    • जब मैंने lucid dream देखा था, तो सारे अक्षर टूटे-फूटे दिख रहे थे
      जब 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 की कमी लगती है
      बेशक, वह भी शायद सीखी जाने वाली चीज ही होगी
    • यह मुझे पहले DMT-5 करने के समय जैसा बहुत लगता है
  • यह 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 भी बर्बाद नहीं करता
    • अगर RTX4090 पर 12 दिन काफी हैं, तो जल्द ही internet पर कोई भी अपना model train करना शुरू कर देगा
    • मैं लगभग यही बात कहने आया था और यह comment दिख गया
      progress की रफ्तार सचमुच चौंकाने वाली है
      हम वाकई दिलचस्प समय में जी रहे हैं
    • 4090 की दो cards हैं, लेकिन मोटे तौर पर सही है
  • यह काफी 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 से शायद बदतर नहीं होंगे

    • मुझे पक्का नहीं कि “hallucinations हों भी, तो वे games में आम physics bugs से बदतर नहीं होंगे”
      physics bugs आम हैं, लेकिन सबसे गंभीर game-breaking bugs को प्राथमिकता देकर fix किया जा सकता है
      black-box model हो तो ऐसा करना कहीं ज्यादा मुश्किल हो जाता है
    • जानना चाहूंगा कि neural network inference सस्ता है, ऐसा सोचने का आधार क्या है
      Newtonian physics पहले से ही बहुत अच्छी तरह समझी जाती है और उसका computation भी काफी efficient है
      billions of parameters वाली function approximation से Newtonian physics compute करना कैसे सस्ता हो सकता है?
      यह proper physics simulation से ज्यादा महंगा और कम accurate लगता है
    • क्या आपको लगता है कि 13 million parameters वाला neural network inference पारंपरिक physics engine चलाने से हल्का है?
    • physics bugs consistent problems होते हैं जिन्हें fix किया जा सकता है
      machine learning model में ऐसी कोई guarantee नहीं होती
      यह तरीका शायद सिर्फ जानबूझकर ढीले-ढाले बनाए गए games के संदर्भ में ठीक हो सकता है
    • क्या यह multiplayer में भी काम करेगा?
      अगर सिर्फ visual effects हैं तो ठीक है, लेकिन अगर gameplay पर असर पड़ा, तो क्या हर player को अलग result नहीं मिलेगा?
  • जिन लोगों ने सच में इसे आजमाया है, उनसे पूछना चाहूंगा
    processing के दौरान क्या यह किसी game map का सम्मान करता है या उसे बनाता जाता है, या फिर यह किसी psychedelic सपने में टहलने जैसा है जहां आप एक ही जगह पर दो बार वापस नहीं जा सकते और spatial dimensions भी अजीब हैं?
    क्या game map finite है?

    • पहला video ही देखें तो player के सामने अचानक structure प्रकट होने वाला हिस्सा है
      लगता है यह कोई map नहीं बनाता, और game state जैसी किसी चीज की meaningful understanding भी नहीं है
      LLM-based RPG जैसा है
      जैसे तलवार उठाकर खाली bag में डालने के बाद अचानक रोटी का एक लोफ निकालकर खा सकना
    • मैंने लेख को सरसरी तौर पर देखा, लेकिन शायद यह ऐसा सपने जैसा अनुभव होगा जहां 180 degree घूमकर उलटी दिशा में चलने पर भी वह जगह अभी-अभी आए रास्ते से match नहीं करती
      यह 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 करने के एहसास जैसा लगता है
    • यह paper के first reference में है और उसे उचित credit मिला है, इसलिए इसे उन लोगों के लिए सुविधा के तौर पर link देना माना जा सकता है जो references तक नहीं देखते
    • खेलकर देखा तो मजेदार था, और अगर बहुत देर तक survive कर जाएं तो यह बेहद unstable हो जाता है
  • 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 से बच सकते हैं?

    • अभी सबसे नज़दीकी चीज़ मुझे 3D Gaussian Splatting लगती है
      अब तक इसका उपयोग कई 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
    • Image models pixel level पर noise remove नहीं करते
      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 करते हैं
    • बिल्कुल 3D assets तो नहीं, लेकिन diffusion models autonomous driving algorithms की evaluation के लिए traffic generation, जैसे vehicle trajectories generate करने में इस्तेमाल होते हैं
      ये vehicles काफी अक्सर टकरा जाते हैं
      उदाहरण: https://github.com/NVlabs/CTG
    • मुझे लगता है कि इसे pixel level पर generate करना अगला कदम है
      आपने जो reverse-engineering तरीका बताया है, वह समझने में आसान है इसलिए आकर्षक लग सकता है
      फिर भी मुझे लगता है कि pixel-level generation पर focus करना ही सही approach है
      थोड़ा messy output शायद कम समय में बेहतर हो जाएगा
      Doom(https://gamengen.github.io/) और इस काम ने दिखा दिया है कि यह संभव है, इसलिए HD और minimal hallucination तक scale करने के लिए सही architecture खोजने पर शायद पहले से ही और research चल रही होगी
      video में भी ऐसा पहले हो चुका है, इसलिए जल्द ही वैसा ही breakthrough देखने को मिल सकता है
    • आम तौर पर यह pixel level पर नहीं, बल्कि VAE जैसे model के latent space level पर किया जाता है
      image generation इसी space में होता है, जहाँ outputs की संख्या final image के pixels से कम होती है, और बाद में VAE के जरिए pixels में convert किया जाता है
  • Neural network images और videos में मौजूद नर्क जैसी noise को लोग notice क्यों नहीं करते, यह मुझे अब भी समझ नहीं आता
    मुझे तो यह शुरुआत से ही हमेशा पहचान में आती रही है और डरावनी लगी है

    • यह जानना चाहूँगा कि नर्क जैसी noise से आपका मतलब具体 तौर पर क्या है
      मुझे भी लगता है कि images लगभग हमेशा किसी न किसी तरह विचित्र होती हैं, लेकिन शायद हम एक ही चीज़ की बात नहीं कर रहे हों
      यह experience कैसा है, थोड़ा और समझा सकते हैं?
    • अगर आपका मतलब subtle लेकिन बेचैन करने वाली भनभनाहट, हलचल या dissonance जैसी चीज़ से है, तो कुछ हद तक समझ सकता हूँ
    • आँखों में भी बहुत noise होती है
  • अभी जल्दी से 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 है इसलिए शायद बड़ी समस्या नहीं होगी, और देखने में यह शानदार होगा

    • मौजूदा game engine द्वारा drawn image को फिर से draw करने वाला तरीका काम करता है, और चौंकाने वाले results भी देता है
      जैसा आपने कहा, temporal consistency अच्छी नहीं है
      दूर के पहाड़ के low-resolution green pixels को एक frame में fruit tree और अगले frame में pine tree समझा जा सकता है
      2021 में ऐसा ही कुछ करने वाला demo था:
      https://www.youtube.com/watch?v=3rYosbwXm1w
    • GTA जैसे games में features बहुत ज्यादा हैं और complex branching भी बहुत है, इसलिए इसे चलाना मुश्किल होगा
      शहर में बिना लक्ष्य drive करना हो तो संभव है, और सिर्फ वही भी बहुत cool होगा
    • मुझे समझ नहीं आता कि इसे video games में इस्तेमाल करने पर ही इतना focus क्यों है
      मुख्य बात यह नहीं है कि video game world को recreate किया जा सकता है, बल्कि यह है कि real world को simulate किया जा सकता है
      game footage को training में इसलिए इस्तेमाल करते हैं क्योंकि जरूरी data सस्ते और आसान तरीके से synthesize किया जा सकता है
      इस system को नहीं पता कि वह game simulate कर रहा है
      अगर आप इसे real-world video के हजारों से लाखों घंटे और agent inputs दें, तो आपको real world का simulation मिल सकता है
    • पुराने उदाहरणों के अलावा GTA पर किया गया एक नया काम भी है
      https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
    • visual upgrade के तौर पर इसका इस्तेमाल DLSS जो करता है उससे काफी मिलता-जुलता है, इसलिए यह plausible लगता है
  • यह धीरे-धीरे बिल्कुल बेतुके level तक पहुँच रहा है
    अगर old frames और input → new frame वाला strong loop है, तो सोच रहा हूँ कि Counter-Strike की नहीं वाली image से start करें तो क्या होगा
    या अगर model ने कोई map पहले नहीं देखा है तो क्या वह उसे follow करेगा, या known Counter-Strike map पर वापस लौट जाएगा?

    • सभी “dreams” बस उसी map के लगते हैं, तो लगता है इसे सिर्फ Dust 2 ही पता है
      ऐसी चीज़ों को देखकर Dust 2 का सपना देखने जैसा लगता है, इसलिए इसे “dream” कहना चाहूँगा