- DIAMOND adalah pendekatan yang mensimulasikan lingkungan Atari dengan model dunia berbasis diffusion tanpa mengompresnya menjadi token laten diskret, lalu melatih agen reinforcement learning di dalamnya
- Frame berikutnya dihasilkan dengan mengondisikan pada aksi agen dan frame sebelumnya, dan proses ini diulang untuk membangun model dunia yang dapat dimainkan
- Pada jumlah langkah denoising yang rendah, DDPM tidak stabil, tetapi EDM menghasilkan trajektori yang stabil bahkan dalam 1 langkah, dan DIAMOND menggunakan n=3 demi konsistensi
- Di Atari 100k, metode ini mencapai skor normalisasi manusia rata-rata 1.46, mencatat performa terbaik baru untuk agen yang dilatih di dalam model dunia pada kondisi 100k frame
- Untuk penerapan di CS:GO digunakan 87 jam data permainan manusia, pipeline dua tahap prediksi resolusi rendah + upsampling, dan model berparameter 381M, serta dapat dimainkan di RTX 3090 pada sekitar 10 FPS
Masalah pemodelan dunia yang ingin dipecahkan DIAMOND
- Model dunia adalah pendekatan untuk melatih agen reinforcement learning dengan lebih aman dan lebih efisien dalam penggunaan sampel
- Model dunia terbaru umumnya memodelkan dinamika lingkungan sebagai urutan variabel laten diskret
- Representasi terkompresi seperti ini bisa kehilangan detail visual yang penting bagi reinforcement learning
- DIAMOND menerapkan model diffusion, yang telah menunjukkan hasil kuat dalam generasi gambar, ke model dunia
- Nama lengkap DIAMOND adalah DIffusion As a Model Of eNvironment Dreams
Cara kerja model dunia diffusion
- Model diffusion dilatih untuk memprediksi frame berikutnya dari game
- Input mencakup aksi agen dan frame-frame sebelumnya
- Saat agen berulang kali memberikan aksi baru, model diffusion memperbarui status game
- Berkat proses generasi autoregresif ini, model diffusion berperan sebagai model dunia tempat agen dapat belajar dan bermain
Desain denoising untuk eksekusi cepat
- Untuk membuat model dunia berjalan cepat, jumlah langkah denoising harus dikurangi
- DDPM menjadi tidak stabil pada jumlah langkah denoising yang rendah karena kesalahan autoregresif terakumulasi
- EDM menghasilkan trajektori yang stabil bahkan dengan 1 langkah denoising
- Di lingkungan Boxing, denoising 1 langkah menginterpolasi di antara hasil-hasil yang mungkin, sehingga pemain berwarna hitam yang sulit diprediksi dihasilkan secara buram
- Lebih banyak langkah denoising membantu memilih mode tertentu dari berbagai mode transisi yang mungkin, sehingga meningkatkan konsistensi dari waktu ke waktu
- Model dunia diffusion DIAMOND menggunakan n=3 langkah denoising
- Pergerakan pemain putih dikendalikan oleh kebijakan, dan karena aksinya diberikan ke model dunia, pergerakannya diprediksi dengan benar terlepas dari jumlah langkah denoising
Kinerja Atari 100k
- DIAMOND memodelkan detail visual penting dengan lebih baik dibanding IRIS yang berbasis token diskret
- Hasil pelatihan agen reinforcement learning di dalam model dunia diffusion mencapai skor normalisasi manusia rata-rata 1.46 di Atari 100k
- Skor ini setara dengan performa 46% lebih tinggi daripada manusia
- Ini merupakan performa terbaik baru di antara agen yang dilatih hanya di dalam model dunia pada kondisi 100k frame
Cara diperluas ke CS:GO
- Model dunia diffusion DIAMOND juga diterapkan untuk simulasi lingkungan 3D seperti Counter-Strike: Global Offensive
- Versi CS:GO menggunakan dataset tetap yang terdiri dari 87 jam permainan manusia, bukan data yang dikumpulkan oleh agen reinforcement learning
- Untuk menurunkan biaya pelatihan, digunakan pipeline dua tahap
- Pertama, dinamika diprediksi pada resolusi rendah
- Setelah itu, dilakukan upsampling dengan model kedua
- Ukuran model meningkat dari 4.4M parameter untuk Atari menjadi 381M parameter untuk CS:GO
- Dari jumlah ini, 51M parameter adalah upsampler tambahan
- Upsampler menggunakan sampling stokastik untuk meningkatkan kualitas generasi visual
- Model dinamika tidak memerlukan sampling stokastik
- Model CS:GO dilatih selama 12 hari di RTX 4090, dan dapat dimainkan pada sekitar 10 FPS di RTX 3090
Menjalankan langsung dan materi publik
- Kode, agen, dan model dunia yang dapat dimainkan dipublikasikan di repositori GitHub
- Contoh instalasi menggunakan perintah berikut
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
- Menjalankan model dunia Atari:
python src/play.py --pretrained
- Menjalankan model dunia CS:GO:
git checkout csgo
python src/play.py
- Detail lebih lanjut dapat dilihat di makalah
Mode kegagalan yang tersisa dan batas penskalaan
- Model dunia diffusion DIAMOND masih memiliki berbagai mode kegagalan
- Diharapkan banyak aspek akan membaik jika data dan komputasi diperluas lebih jauh
- Namun, ada juga batas yang tidak bisa diselesaikan hanya dengan penskalaan, seperti masalah yang berasal dari memori model yang terbatas
- Salah satu batas yang menarik adalah model ini memungkinkan lompatan beruntun
- Model menggeneralisasi efek lompatan terhadap geometri adegan
- Karena lompatan beruntun tidak cukup sering muncul dalam data pelatihan, model gagal mempelajari bahwa lompatan beruntun seharusnya tidak dimungkinkan
1 komentar
Pendapat di Hacker News
Video ini https://x.com/Sentdex/status/1845146540555243615 terlihat sangat mirip dengan mimpi saya
Kadang saat saya mencoba melompat tinggi dalam mimpi, tempatnya berpindah persis seperti itu, dan benda-benda juga terus berubah seperti itu
Mengejutkan melihat betapa dekatnya dengan pengalaman mimpi yang sebenarnya
Ketika model difusi mulai mendapat perhatian, saya terpikir kaitannya bahwa teks rusak dalam gambar yang dihasilkan juga mirip
Mungkin ini petunjuk bahwa sebagian alam bawah sadar manusia bekerja cukup mirip dengan prinsip model difusi
Di bidang penglihatan hal itu kurang terlihat, tetapi lebih jelas pada perhatian dan pikiran itu sendiri
Mimpi saya secara visual cenderung sepenuhnya konsisten, jadi saya pernah memakai Google Maps di dalam mimpi; geografinya salah, tetapi secara internal konsisten
Namun saya belum pernah mengalami lucid dream di dalam mimpi, jadi perbedaan itu mungkin berpengaruh
Dalam kondisi mimpi ada sesuatu yang terputus, dan di sini juga jelas ada keterputusan serupa
Model ini tampaknya kekurangan model dunia seperti penalaran spasial yang kuat dan ekspektasi kontinuitas yang dimiliki hewan
Tentu saja, itu mungkin juga sesuatu yang akan dipelajari
Ini adalah model dengan 300 juta parameter, berukuran 1/1300 dari llama-3 besar, dan dilatih dengan 5 juta frame selama 12 hari di GTX4090
Ini setara tingkat pekerjaan yang dilakukan perusahaan teknologi besar pada 2015
Kalau hal yang sama dilakukan pada skala industri seperti model bahasa besar, hasilnya pasti luar biasa
Counter Strike sudah berjalan jauh lebih mulus daripada ini, dan tidak membuang komputasi besar-besaran
Laju kemajuannya benar-benar mencengangkan
Kita hidup di era yang sangat menarik
Ini hasil yang cukup menggembirakan
Tampaknya sudah bisa dipakai di game engine untuk menghasilkan aproksimasi fisika yang realistis
Jika banyak potongan gameplay dibuat dengan physics engine yang lebih berat dan realistis, mungkin bahkan CGI, lalu model dilatih untuk mengaproksimasi fisikanya, kita akan mendapat physics engine yang ringan
Bisa juga ada beberapa model khusus, misalnya untuk dinamika asap atau ledakan
Sekalipun ada halusinasi, rasanya tidak akan lebih buruk daripada bug fisika yang umum di game
Bug fisika memang umum, tetapi bug pemutus progres game yang paling parah bisa diprioritaskan dan diperbaiki lebih dulu
Dengan model kotak hitam, melakukan itu akan jauh lebih sulit
Fisika Newton sudah sangat dipahami dan komputasinya juga cukup efisien
Bagaimana menghitung fisika Newton dengan aproksimasi fungsi berparameter miliaran bisa lebih murah?
Tampaknya lebih mahal dan kurang akurat daripada simulasi fisika yang benar
Pada model machine learning tidak ada jaminan seperti itu
Pendekatan semacam ini kemungkinan hanya cocok dalam konteks game yang memang sengaja dibuat asal-asalan
Kalau hanya efek visual, mungkin tidak apa-apa, tetapi kalau memengaruhi gameplay, bukankah hasilnya bisa berbeda untuk tiap pemain?
Saya penasaran dari orang yang sudah benar-benar mencobanya
Dalam prosesnya, apakah ia menghormati atau membangun semacam peta game, atau ini seperti jalan-jalan dalam mimpi psikedelik yang aneh, di mana kita tidak bisa kembali ke tempat yang sama dua kali dan dimensi ruangnya juga kacau?
Apakah peta gamenya terbatas?
Sepertinya tidak membuat peta apa pun, dan juga tidak punya pemahaman bermakna tentang sesuatu seperti state game
Mirip RPG berbasis LLM
Misalnya setelah mengambil pedang dan memasukkannya ke tas kosong, tiba-tiba kita bisa mengeluarkan sepotong roti dan memakannya
Lebih mirip peta tak terbatas
Tidak ada kesadaran peta dalam bentuk apa pun
Ini lebih dekat ke AI tipe mengingat/memutar ulang yang mengingat hal-hal di dataset pelatihan dengan cukup akurat, dan ketika melakukan tindakan yang tidak ada di data, seperti berjalan menabrak dinding, ia benar-benar runtuh dan mengeluarkan omong kosong
Omong kosong yang tampak meyakinkan, tapi tetap omong kosong
Ini adalah pekerjaan yang dilakukan grup Schmidhuber pada 2018
https://worldmodels.github.io/
Saya ingin menegaskan poin ini
Di sini istilah mimpi memang tepat, dan adegan mengemudinya juga terasa seperti mengemudi dalam mimpi
Saya rasa saya kurang lebih memahami premis dasar Stable Diffusion, yaitu menghasilkan gambar realistis dengan membalik proses penghilangan noise
Namun setahu saya, ini selalu dilakukan pada tingkat piksel
Apakah ada riset yang mencoba ini pada tingkat aset 3D?
Semacam memasukkan aset game engine yang punya posisi dan arah, lalu menyesuaikannya sampai sebuah adegan yang masuk akal berhasil direkonstruksi
Jika memungkinkan, bukankah kita bisa “memimpikan” peta nyata dan fisika nyata, sekaligus menghindari keluaran yang agak berantakan seperti pada demo-demo ini?
Sejauh ini, teknik ini dipakai untuk mempelajari satu adegan dari foto yang diambil dari berbagai sudut, lalu merekonstruksinya secara volumetrik dengan menyesuaikan kepadatan point cloud
Namun mungkin juga model dilatih dengan banyak adegan berbeda, lalu melakukan difusi pada point cloud acak untuk menghasilkan adegan baru
Merender point cloud secara real-time juga sangat efisien, sehingga bisa dipakai untuk membuat dunia game yang luar biasa realistis alih-alih geometri poligonal
Sepertinya sudah ada yang memikirkan hal itu: https://ar5iv.labs.arxiv.org/html/2311.11221
Difusi terjadi di ruang laten, dan ini adalah salah satu terobosan besar yang membuat semuanya bekerja dengan baik
Ada model yang melakukan encoding/decoding antara piksel dan ruang laten
Ruang laten dapat mengodekan konsep yang dibutuhkan dalam dimensi yang diperlukan, dan biasanya dimensinya lebih rendah daripada ruang piksel
Jadi kita mendapatkan ruang laten yang bercampur noise, menghilangkan noise dengan model difusi, lalu mendekodekannya kembali ke ruang piksel dengan model lain, yaitu variational autoencoder
Kendaraan-kendaraan semacam ini cukup sering bertabrakan
Contoh: https://github.com/NVlabs/CTG
Pendekatan reverse engineering yang dijelaskan memang menarik karena mudah dipahami
Meski begitu, saya pikir berfokus pada generasi tingkat piksel adalah pendekatan yang benar
Keluaran yang agak berantakan mungkin akan membaik dalam waktu singkat
Dengan Doom(https://gamengen.github.io/) dan pekerjaan ini sudah membuktikan bahwa hal itu mungkin, kemungkinan besar sudah ada lebih banyak riset untuk menemukan struktur yang tepat agar bisa diskalakan ke HD dengan halusinasi minimal
Hal serupa juga sudah terjadi pada video, jadi sepertinya kita akan segera melihat terobosan pada tingkat yang mirip
Generasi gambar dilakukan di ruang ini, yang jumlah keluarannya lebih sedikit daripada piksel pada gambar akhir, lalu setelah itu dikonversi menjadi piksel melalui VAE
Saya masih tidak mengerti bagaimana orang-orang tidak menyadari noise neraka dalam gambar dan video jaringan saraf
Bagi saya, sejak awal itu selalu terlihat jelas dan terasa menyeramkan
Saya juga merasa gambar-gambar itu hampir selalu aneh dalam satu atau lain cara, tapi mungkin kita tidak membicarakan hal yang sama
Bisa jelaskan lebih lanjut seperti apa pengalamannya?
Saya baru saja mengeceknya sekilas, dan ini bekerja sangat baik di kartu AMD dengan ROCM PyTorch
Saat dijalankan sebentar, hasilnya tampak cukup bagus
Seiring waktu, detailnya menghilang cukup cepat, dan senjatanya cenderung berubah menjadi sampah warna-warni
Saya juga ingin menunjukkan bahwa tidak ada video yang memperlihatkan apa yang terjadi jika berjalan masuk ke tembok
Situasi itu tidak ditangani dengan terlalu elegan
Bagian yang benar-benar menarik adalah jika ini dilatih dengan GTA terbaru dan video nyata terkait, lalu dipakai untuk meningkatkan visual game lama seperti Vice City secara real-time
Karena kurangnya konsistensi temporal, hasilnya mungkin masih terasa seperti mimpi, tetapi karena dasarnya konsisten, saya rasa itu bukan masalah besar, dan tampilannya akan luar biasa
Seperti yang sudah disebutkan, konsistensi temporalnya kurang baik
Piksel hijau beresolusi rendah dari gunung di kejauhan bisa ditafsirkan sebagai pohon buah pada satu frame, lalu sebagai pohon pinus pada frame berikutnya
Ada demo dari 2021 yang melakukan hal serupa:
https://www.youtube.com/watch?v=3rYosbwXm1w
Kalau hanya mengemudi tanpa tujuan di kota mungkin bisa, dan itu saja sudah akan sangat keren
Intinya bukan bahwa kita bisa menciptakan ulang dunia video game, melainkan bahwa kita bisa mensimulasikan dunia nyata
Video game dipakai untuk pelatihan hanya karena data yang dibutuhkan bisa disintesis dengan murah dan mudah
Sistem ini tidak tahu bahwa ia sedang mensimulasikan sebuah game
Jika diberi ribuan hingga jutaan jam video dunia nyata dan input agen, kita bisa mendapatkan simulasi dunia nyata
https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
Ini makin lama makin tidak masuk akal tingkatannya
Kalau ada loop kuat berupa frame lama dan input → frame baru, saya penasaran apa yang terjadi jika dimulai dari gambar yang bukan Counter-Strike
Atau kalau memasukkan peta yang belum pernah dilihat model, apakah ia akan mengikutinya, atau kembali ke peta Counter-Strike yang dikenal?
Melihat hal seperti ini terasa seperti memimpikan Dust 2, jadi saya ingin menyebutnya “mimpi”