1 puan yazan GN⁺ 2024-10-14 | 1 yorum | WhatsApp'ta paylaş
  • DIAMOND, Atari ortamını ayrık gizil token’lara sıkıştırmadan, bunu bir diffusion dünya modeliyle simüle edip içinde bir pekiştirmeli öğrenme ajanı eğiten bir yaklaşım
  • Sonraki kare, ajanın eylemi ve önceki kareler koşul alınarak üretiliyor; bu süreç tekrarlanarak oynanabilir bir dünya modeli oluşturuluyor
  • Düşük denoising adımlarında DDPM kararsızdı, ancak EDM tek adımda bile kararlı yörüngeler oluşturdu ve DIAMOND tutarlılık için n=3 kullanıyor
  • Atari 100k’de ortalama insan normalize skoru 1.46 elde ederek, 100k kare koşulunda dünya modeli içinde eğitilen ajanlar için yeni en iyi performansı kaydetti
  • CS:GO uygulamasında 87 saatlik insan oyun verisi, 2 aşamalı düşük çözünürlüklü tahmin + upsampling hattı ve 381M parametreli bir model kullanıldı; RTX 3090’da yaklaşık 10 FPS ile oynanabiliyor

DIAMOND’un çözmeye çalıştığı dünya modelleme problemi

  • Dünya modeli, pekiştirmeli öğrenme ajanlarını daha güvenli ve örnek açısından daha verimli eğitmek için kullanılan bir yaklaşım
  • Son dönemdeki dünya modelleri çoğunlukla ortam dinamiklerini ayrık gizil değişken dizileri olarak modelliyor
  • Bu tür sıkıştırılmış temsiller, pekiştirmeli öğrenme için önemli olan görsel ayrıntıları kaçırabiliyor
  • DIAMOND, görüntü üretiminde güçlü sonuçlar veren diffusion modellerini dünya modeline uyguluyor
  • DIAMOND’un tam açılımı DIffusion As a Model Of eNvironment Dreams

Diffusion dünya modelinin çalışma biçimi

  • Diffusion modeli, oyunun bir sonraki karesini tahmin edecek şekilde eğitiliyor
  • Girdiler arasında ajanın eylemi ve önceki kareler yer alıyor
  • Ajan yeni eylemleri tekrar tekrar verdiğinde, diffusion modeli oyun durumunu güncelliyor
  • Bu otoregresif üretim süreci sayesinde diffusion modeli, ajanın öğrenip oynayabildiği bir dünya modeli rolü görüyor

Hızlı çalışma için denoising tasarımı

  • Dünya modelini hızlı hale getirmek için denoising adımı sayısını azaltmak gerekiyor
  • DDPM, düşük denoising adımı sayılarında otoregresif hataların birikmesi nedeniyle kararsız hale geliyor
  • EDM, tek adımlı denoising’de bile kararlı yörüngeler üretiyor
  • Boxing ortamında tek adımlı denoising, olası sonuçlar arasında enterpolasyon yaptığı için tahmin edilmesi zor siyah oyuncuyu bulanık şekilde üretiyor
  • Daha fazla denoising adımı, olası çoklu geçiş modları arasından belirli bir modu daha iyi seçerek zaman içindeki tutarlılığı artırıyor
  • DIAMOND’un diffusion dünya modeli n=3 denoising adımı kullanıyor
  • Beyaz oyuncunun hareketi politika tarafından kontrol edildiğinden ve bu eylem dünya modeline verildiğinden, denoising adımı sayısından bağımsız olarak doğru tahmin ediliyor

Atari 100k performansı

  • DIAMOND, ayrık token tabanlı IRIS’e göre önemli görsel ayrıntıları daha iyi modelliyor
  • Diffusion dünya modeli içinde bir pekiştirmeli öğrenme ajanı eğitildiğinde, Atari 100k’de ortalama insan normalize skoru 1.46 elde ediliyor
  • Bu skor, insan seviyesinden %46 daha yüksek
  • 100k kare koşulunda yalnızca dünya modeli içinde eğitilmiş ajanlar arasında yeni en iyi sonuç

CS:GO’ya ölçeklenen yaklaşım

  • DIAMOND’un diffusion dünya modeli, Counter-Strike: Global Offensive gibi 3D ortam simülasyonlarına da uygulanıyor
  • CS:GO sürümü, pekiştirmeli öğrenme ajanının topladığı veri yerine 87 saatlik insan oyunundan oluşan sabit bir veri kümesi kullanıyor
  • Eğitim maliyetini azaltmak için 2 aşamalı bir hat uygulanıyor
    • Önce dinamikler düşük çözünürlükte tahmin ediliyor
    • Ardından ikinci bir modelle upsampling yapılıyor
  • Model boyutu, Atari için 4.4M parametreden CS:GO için 381M parametreye çıkıyor
    • Bunun 51M parametresi ek upsampler’a ait
  • Upsampler’da görsel üretim kalitesini artırmak için olasılıksal örnekleme kullanılıyor
  • Dinamik modeli için olasılıksal örnekleme gerekmiyor
  • CS:GO modeli RTX 4090 üzerinde 12 gün eğitildi ve RTX 3090’da yaklaşık 10 FPS ile oynanabiliyor

Doğrudan çalıştırma ve açık materyaller

  • Kod, ajanlar ve oynanabilir dünya modeli GitHub deposunda açık olarak paylaşılıyor
  • Kurulum örneği için şu komutlar kullanılıyor
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 dünya modelini çalıştırma:
python src/play.py --pretrained
  • CS:GO dünya modelini çalıştırma:
git checkout csgo
python src/play.py
  • Daha fazla ayrıntı için makaleye bakılabilir

Kalan başarısızlık modları ve ölçekleme sınırları

  • DIAMOND’un diffusion dünya modelinde çeşitli başarısızlık modları hâlâ mevcut
  • Veri ve hesaplama daha da ölçeklendiğinde birçok yönün iyileşmesi bekleniyor
  • Ancak yalnızca ölçeklemeyle çözülemeyecek sınırlamalar da var; örneğin model belleğinin sınırlı olmasından kaynaklanan sorunlar
  • İlginç sınırlamalardan biri, modelin art arda zıplamaya izin vermesi
    • Model, zıplamanın sahne geometrisi üzerindeki etkisini genelliyor
    • Eğitim verisinde art arda zıplama yeterince sık görülmediği için, bunun mümkün olmaması gerektiğini öğrenemiyor

1 yorum

 
GN⁺ 2024-10-14
Hacker News görüşleri
  • Bu video https://x.com/Sentdex/status/1845146540555243615 rüyalarıma çok benziyor gibi görünüyor
    Bazen rüyamda yükseğe zıplamaya çalışınca tam böyle başka bir yere geçiliyor, nesneler de sürekli böyle değişiyor
    Gerçek rüya deneyimine ne kadar yakın olduğunu görmek şaşırtıcı

    • Lucid rüya gördüğümde tüm harfler bozuk görünüyordu
      Diffusion modelleri ilgi görmeye başladığında, üretilen görüntülerdeki bozuk metinlerle de benzer bir bağlantı aklıma geldi
      İnsan bilinçdışının bir kısmının diffusion modellerinin ilkelerine oldukça benzer şekilde çalıştığına dair bir ipucu olabilir
    • Yakından gözlemlerseniz, uyanıkken de zihnin sık sık aynı şeyi yaptığı görülüyor
      Görüş alanında daha az göze çarpıyor ama dikkatin ve düşüncenin kendisinde daha belirgin
    • Rüyaların kişiden kişiye ne kadar farklı olduğu ilginç
      Benim rüyalarım görsel olarak tamamen tutarlı olma eğiliminde; rüyamda Google Maps kullandığım bile oldu, coğrafya yanlıştı ama kendi içinde tutarlıydı
      Ancak rüyamda hiç lucid rüya görmedim, bu yüzden bu fark etkili olabilir
    • Bu yüzden sınırlı ölçüde umut verici
      Rüya durumunda bir şeylerin bağlantısı kopuk oluyor; burada da buna benzer bir kopukluk açıkça var
      Bu modelde, hayvanların sahip olduğu güçlü uzamsal akıl yürütme ve süreklilik beklentisi gibi bir dünya modeli eksik görünüyor
      Elbette o da muhtemelen öğrenilen bir şeydir
    • Eskiden DMT-5 yaptığım zamana fazlasıyla benziyor
  • Bu, 300 milyon parametreli bir model; büyük llama-3’ün 1/1300 ölçeğinde ve 5 milyon kareyle GTX4090 üzerinde 12 gün eğitilmiş
    2015’te büyük teknoloji şirketlerinin yaptığı düzeyde bir işti
    Büyük dil modellerinde olduğu gibi aynı şeyi endüstriyel ölçekte yaparsanız gerçekten muazzam olur

    • Bunun tam olarak ne avantajı var?
      Counter Strike zaten bundan çok daha akıcı çalışıyor ve devasa hesaplamayı da boşa harcamıyor
    • RTX4090 ile 12 gün yeterliyse, yakında internetteki herhangi biri kendi modelini eğitmeye başlayacak gibi
    • Neredeyse aynı şeyi söylemeye gelmiştim, sonra bu yorumu gördüm
      Gelişme hızı gerçekten şaşırtıcı
      Çok ilginç zamanlarda yaşıyoruz
    • İki adet 4090 ama genel olarak doğru
  • Oldukça heyecan verici bir sonuç
    Oyun motorlarında gerçekçi fizik yaklaşımları üretmek için şimdiden kullanılabilir gibi görünüyor
    Daha ağır ve gerçekçi bir fizik motoru, belki CGI ile çok sayıda oynanış parçası üretüp modeli fiziği yaklaştıracak şekilde eğitirseniz hafif bir fizik motoru elde edersiniz
    Duman dinamiği için, patlamalar için gibi birden çok uzmanlaşmış model de olabilir
    Halüsinasyonlar olsa bile oyunlarda sık görülen fizik bug’larından daha kötü olmayacağını düşünüyorum

    • “Halüsinasyonlar olsa bile oyunlarda sık görülen fizik bug’larından daha kötü olmayacağı”ndan pek emin değilim
      Fizik bug’ları yaygındır ama en ciddi, oyunun ilerlemesini engelleyen bug’lardan başlayarak önceliklendirip düzeltebilirsiniz
      Kara kutu model olursa bunu yapmak çok daha zorlaşır
    • Sinir ağı çıkarımının daha ucuz olduğunu düşünmenizin dayanağını merak ediyorum
      Newton fiziği zaten çok iyi biliniyor ve hesaplaması da oldukça verimli
      Milyarlarca parametreli bir fonksiyon yaklaşımıyla Newton fiziğini hesaplamak nasıl daha ucuz olabilir?
      Düzgün bir fizik simülasyonundan daha pahalı ve daha az doğru görünüyor
    • 13 milyon parametreli bir sinir ağı çıkarımının geleneksel bir fizik motorunu çalıştırmaktan daha hafif olduğunu mu düşünüyorsunuz?
    • Fizik bug’ları düzeltilebilen tutarlı sorunlardır
      Makine öğrenimi modellerinde böyle bir garanti yoktur
      Bu yaklaşım muhtemelen ancak özellikle dağınık yapılmış oyun bağlamlarında uygun olabilir
    • Çok oyunculuda da çalışır mı?
      Sadece görsel efektse sorun değil ama oynanışı etkiliyorsa her oyuncuda farklı sonuçlar çıkmaz mı?
  • Bunu gerçekten denemiş birine sormak isterim
    İşleme sırasında herhangi bir oyun haritasına saygı gösteriyor ya da bir harita mı oluşturuyor; yoksa aynı yere iki kez dönemediğiniz, uzamsal boyutları da tuhaf olan psikedelik bir rüya yürüyüşü gibi mi?
    Oyun haritası sonlu mu?

    • Sadece ilk videoya bakınca bile oyuncunun önünde yapıların aniden belirdiği bir bölüm var
      Herhangi bir harita oluşturmuyor ve oyun durumuna benzer bir şey hakkında anlamlı bir farkındalığı da yok gibi görünüyor
      LLM tabanlı RPG’ye benziyor
      Bir kılıcı alıp boş bir çantaya koyduktan sonra aniden bir somun ekmek çıkarıp yiyebilmek gibi
    • Yazıyı kabaca gözden geçirdim ama 180 derece dönüp ters yöne yürüdüğünüzde az önce geldiğiniz yerle eşleşmeyen rüya benzeri bir deneyim olacak gibi
      Daha çok sonsuz haritaya benziyor
    • Kendim denedim, hayır değildi
      Herhangi bir tür harita farkındalığı yok
      Eğitim veri kümesinde olanları oldukça doğru şekilde hatırlayan hatırlama/yeniden oynatma tipi bir AI’a daha yakın; duvara doğru yürümek gibi veride olmayan bir hareket yaparsanız tamamen dağılıp saçmalamaya başlıyor
      İnandırıcı saçmalık ama yine de saçmalık
  • Bu, Schmidhuber grubunun 2018’de yaptığı işti
    https://worldmodels.github.io/
    Bunu belirtmek istedim

    • Kesinlikle zamanının ötesindeydi
      Burada rüya ifadesi tam isabet ve sürüş sahnesi de rüyada araba kullanma hissine benziyor
    • Makalenin ilk referansında yer alıyor ve hak ettiği takdiri alıyor; dolayısıyla bunu, referanslara kadar bakmayanlar için kolaylık olsun diye verilen bir bağlantı olarak görebiliriz
    • Oynayınca eğlenceliydi ve çok uzun süre hayatta kalırsanız inanılmaz derecede kararsızlaşıyor
  • Stable Diffusion’ın temel varsayımını, yani gürültü giderme sürecini tersine çevirerek gerçekçi görüntüler ürettiğini kabaca anladığımı düşünüyorum
    Ancak bildiğim kadarıyla bu her zaman piksel düzeyinde yapılıyor
    Bunu 3D varlık düzeyinde denemeye yönelik araştırmalar var mı?
    Konum ve yöne sahip oyun motoru varlıklarını yerleştirip, makul bir sahne yeniden kurulana kadar ayarlamak gibi
    Mümkünse gerçek haritaları ve gerçek fiziği “rüyada görebilir” ve bu tür demolarda çıkan biraz dağınık çıktılardan kaçınamaz mıyız?

    • Şu anda buna en yakın şeyin 3D Gaussian Splatting olduğunu düşünüyorum
      Şimdiye kadar bir sahneyi farklı açılardan çekilmiş fotoğraflarla öğrenmek ve nokta bulutunun yoğunluğunu ayarlayarak hacimsel olarak yeniden oluşturmak için kullanıldı
      Ancak modeli birçok farklı sahneyle eğitip rastgele bir nokta bulutu üzerinde difüzyon uygulayarak yeni sahneler üretmek de mümkün olabilir
      Nokta bulutlarını gerçek zamanlı render etmek de çok verimli olduğundan, çokgen geometrisi yerine inanılmaz gerçekçi oyun dünyaları yapmak için kullanılabilir
      Görünüşe göre biri bunu zaten düşünmüş: https://ar5iv.labs.arxiv.org/html/2311.11221
    • Görüntü modelleri piksel düzeyinde gürültü gidermez
      Difüzyon latent uzayda gerçekleşir; bu da her şeyin iyi çalışmasını sağlayan büyük atılımlardan biriydi
      Piksel ile latent uzay arasında kodlama/kod çözme yapan bir model vardır
      Latent uzay, gerekli kavramları gerekli boyutlara kodlayabilir ve genellikle piksel uzayından daha düşük boyutludur
      Bu yüzden gürültülü bir latent uzay elde eder, difüzyon modeliyle gürültüyü giderir, ardından başka bir model olan varyasyonel otokodlayıcıyla piksel uzayına kod çözersiniz
    • Tam olarak 3D varlık olmasa da difüzyon modelleri, otonom sürüş algoritmalarını değerlendirmek için trafik üretiminde, örneğin araç yörüngesi üretiminde kullanılıyor
      Bu araçlar oldukça sık çarpışıyor
      Örnek: https://github.com/NVlabs/CTG
    • Bunu piksel düzeyinde üretmenin bir sonraki adım olduğunu düşünüyorum
      Anlattığın tersine mühendislik yaklaşımı anlaşılması kolay olduğu için çekici görünebilir
      Yine de piksel düzeyinde üretime odaklanmanın doğru yaklaşım olduğunu düşünüyorum
      Biraz dağınık çıktılar muhtemelen kısa süre içinde iyileşecek
      Doom(https://gamengen.github.io/) ve bu çalışmayla bunun mümkün olduğu kanıtlandığına göre, HD’ye ve minimum halüsinasyona ölçeklenecek doğru mimariyi bulmak için muhtemelen şimdiden daha fazla araştırma yapılıyordur
      Videoda da bunun benzeri zaten yaşandığı için yakında benzer düzeyde bir atılım göreceğiz gibi duruyor
    • Genellikle piksel düzeyinde değil, VAE gibi bir modelin latent uzayı düzeyinde yapılır
      Görüntü üretimi, nihai görüntünün piksellerinden daha az çıktı sayısına sahip bu uzayda gerçekleşir ve ardından VAE üzerinden piksellere dönüştürülür
  • İnsanların sinir ağı görüntü ve videolarındaki cehennemi gürültüyü fark etmemesini hâlâ anlayamıyorum
    Benim için en başından beri hep fark edilebilir ve korkutucu gelmişti

    • Cehennemi gürültü derken tam olarak neyi kastettiğini merak ediyorum
      Görüntülerin neredeyse her zaman bir şekilde tekinsiz olduğunu ben de hissediyorum ama aynı şeyden bahsediyor olmayabiliriz
      Nasıl bir deneyim olduğunu biraz açabilir misin?
    • İnce ama huzursuz eden bir uğultu, karmaşa, kakofoni gibi bir şeyse, ne demek istediğini bir ölçüde anladığımı sanıyorum
    • Gözlerde de çok gürültü var
  • Az önce hızlıca denedim; AMD kartlar ve ROCM PyTorch üzerinde çok iyi çalışıyor
    Kısa çalıştırmalarda oldukça iyi görünüyor
    Zaman geçtikçe ayrıntılar epey hızlı kayboluyor ve silah rengârenk çöpe dönüşme eğilimi gösteriyor
    Videolardan hiçbirinin duvara doğru yürüyünce ne olduğunu göstermediğini de belirtmek isterim
    O durumu pek zarif biçimde ele almıyor

  • Gerçekten ilginç hâle geleceği nokta, en yeni GTA ve ilgili gerçek videolarla da eğitildikten sonra, Vice City gibi eski oyunların görsellerini gerçek zamanlı yükseltmek için kullanılması
    Zamansal tutarlılık eksikliği yüzünden hâlâ rüya gibi hissettirecektir ama temel tutarlı olduğu için büyük bir sorun olmaz gibi ve görüntü muhteşem olur

    • Mevcut oyun motorunun çizdiği görüntüyü yeniden çizme yöntemi çalışıyor ve şaşırtıcı sonuçlar da veriyor
      Belirttiğin gibi zamansal tutarlılık iyi değil
      Uzaktaki bir dağın düşük çözünürlüklü yeşil pikselini bir karede meyve ağacı, sonraki karede çam ağacı olarak yorumlayabilir
      2021’de buna benzer bir şey yapan bir demo var:
      https://www.youtube.com/watch?v=3rYosbwXm1w
    • GTA gibi oyunlar çok fazla özelliğe ve karmaşık dallanmaya sahip olduğundan çalışması zor olabilir
      Şehirde amaçsızca araba sürmek düzeyinde mümkün olur; sadece bu bile çok havalı olurdu
    • Bunun yalnızca video oyunlarında kullanılmasına odaklanılmasını anlamıyorum
      Asıl mesele video oyunu dünyalarını yeniden oluşturabilmek değil, gerçek dünyayı simüle edebilmek
      Gerekli veriler ucuz ve kolay sentezlenebildiği için eğitimde oyun videoları kullanılıyor
      Bu sistem bir oyunu simüle ettiğini bilmiyor
      Gerçek dünyadan binlerce ila milyonlarca saatlik video ve ajan girdisi verirsen gerçek dünyanın bir simülasyonunu elde edebilirsin
    • Daha eski örneklerin yanında GTA ile yapılmış yeni bir çalışma da var
      https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
    • Görsel yükseltme için kullanmak DLSS’in yaptığı şeye oldukça yakın, bu yüzden makul geliyor
  • Giderek saçma derecede iyi hâle geliyor
    Eski kareler ve girdi → yeni kare şeklinde güçlü bir döngüyse, Counter-Strike olmayan bir görüntüyle başlatınca ne olacağını merak ediyorum
    Ya da modelin hiç görmediği bir harita verilirse onu takip eder mi, yoksa bilinen Counter-Strike haritalarına mı geri döner?

    • Tüm “rüyalar”ın sadece o haritadan ibaret olmasına bakılırsa yalnızca Dust 2’yi biliyor gibi
      Böyle şeylere bakınca Dust 2 rüyası görüyormuş hissi verdiği için buna “rüya” demek istiyorum