- 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
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ı
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
Görüş alanında daha az göze çarpıyor ama dikkatin ve düşüncenin kendisinde daha belirgin
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
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
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
Counter Strike zaten bundan çok daha akıcı çalışıyor ve devasa hesaplamayı da boşa harcamıyor
Gelişme hızı gerçekten şaşırtıcı
Çok ilginç zamanlarda yaşıyoruz
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
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
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
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
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?
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
Daha çok sonsuz haritaya benziyor
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
Burada rüya ifadesi tam isabet ve sürüş sahnesi de rüyada araba kullanma hissine benziyor
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?
Ş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
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
Bu araçlar oldukça sık çarpışıyor
Örnek: https://github.com/NVlabs/CTG
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
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
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?
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
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
Şehirde amaçsızca araba sürmek düzeyinde mümkün olur; sadece bu bile çok havalı olurdu
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
https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
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?
Böyle şeylere bakınca Dust 2 rüyası görüyormuş hissi verdiği için buna “rüya” demek istiyorum