deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (hnrss.org)

Mini dünya modeli bir Raspberry Pi Pico 2 W'de hayal kuruyor ve beş oyun oynuyor

tinyworldformer adlı proje, bir mikrodenetleyici üzerinde oyunları kare kare hayal eden, döngülü ve int8 ile quantize edilmiş bir transformer çalıştırıyor; ikinci bir ağ ise bu simülasyonun içinde oynamayı öğreniyor.

Mini dünya modeli bir Raspberry Pi Pico 2 W'de hayal kuruyor ve beş oyun oynuyor

Bir hayalin içinde oynayan iki ağ

tinyworldformer adlı proje, geliştirici SheepSeb tarafından GitHub'da yayımlandı ve Hacker News'in ana sayfasında öne çıktı; Raspberry Pi Pico 2 W üzerinde eksiksiz, öğrenilmiş bir simülasyon çalıştırıyor. Küçük iki sinir ağı iş birliği yapıyor: Mevcut kareyi ve bir aksiyonu alıp sonraki kareyi ve ödülünü tahmin eden bir dünya modeli, ile üretilen her kareyi okuyup sonraki aksiyonu seçen bir aktör. Mikrodenetleyicide iki ağ da gerçek oyuna hiç başvurmuyor — aktör yalnızca dünya modelinin ürettiği kareleri görüyor, dünya modeli de yalnızca aktörden aksiyon alıyor.

Neden döngülü bir transformer

Projenin README'sine göre başlangıç noktası, döngülü transformer'lara duyulan ilgiydi; burada tek bir transformer bloğu, çok katman üst üste yığmak yerine aynı ağırlıklarla birkaç kez yeniden kullanılıyor. Ağırlık yeniden kullanımı bellek tüketimini düşük tutuyor ve bu da bir dünya modelinin mikrodenetleyiciye sığabileceğini düşündürmüş. Pico 2 W'nin seçilme nedeni ucuz olması ve kayan nokta birimi içermesi; her oyun yalnızca birkaç yüz satırlık NumPy kodu olduğu için tahmin edilen her kare gerçek kurallarla karşılaştırılabiliyor.

İki ağ nasıl inşa edildi

Dünya modeli, her geçişten önce girişin geri eklendiği, bir ile dört kez uygulanan tek bir transformer bloğu (attention artı ReLU MLP). Her geçiş sonraki kareyi tahmin etmek için eğitiliyor; böylece döngü sayısı, geliştiricinin çalışma zamanında daha iyi tahminler için daha fazla işlem gücü harcamasına imkân veriyor; firmware, makul bir kare hızı korumak için iki döngü kullanıyor. Oyuna bağlı olarak model 26k ile 131k parametre içeriyor, kare başına 2–8 milyon çarpma-toplama işlemine mal oluyor ve int8'e quantize ediliyor. Aktör ise iki gizli katmanlı ve 9k–16k parametreli bir float32 MLP. İkisi de RP2350 çipinin 1 numaralı çekirdeğinde çalışırken, 0 numaralı çekirdek USB'yi ve ekranı yönetiyor. Önceden eğitilmiş aktör, kart üzerinde sıfırdan öğrenen taze bir stream-x pekiştirmeli öğrenme ajanıyla değiştirilebiliyor ve herhangi bir tuşa basıldığında kontrol insan oyuncuya geçiyor.

Beş oyun, hücre hücre ölçüldü

Kareler, durumun tamamını her zaman içeren token grid'leri: Topun yönü kendi token'ında kodlanıyor ve Doom klonu bir mini harita taşıyor. Breakout 20×16 grid'de çalışıyor (26k parametre, ayrılan geçişlerin yüzde 99,99'u her hücresi doğru tahmin edildi), Flappy Bird 24×24'te (46k, yüzde 100), Pong 20×32'de (46k, yüzde 99,45), raycast tabanlı bir Doom-lite 32×32'de (55k, yüzde 83,6) ve iki hayaletli bir Pac-Man lite 48×48'de (131k, yüzde 86,4). README, Doom-lite'ın oranının kaliteyi olduğundan düşük gösterdiği konusunda uyarıyor; çünkü birinci şahıs görünümü 768 hücre içeriyor ve tek bir yanlış gölgelenmiş piksel tüm kareyi yanlış saydırıyor. Ek döngüler mütevazı ölçüde yardımcı oluyor — üç döngü Doom-lite'ı yüzde 85,9'a çıkarıyor — sonra getiri düzleşiyor.

Kod çözmek, öğrenmek kadar önemliydi

Hücre başına skorları tek bir kareye dönüştürmek için üç elle yazılmış kural gerekti. Arka plan hücreleri en olası token'larını bağımsız olarak alıyor. Tek öğeler — top, oyuncu, her hayalet — tüm hücre-token çiftleri üzerinden yapılan tek bir global seçimle yerleştiriliyor ve her birinden tam olarak bir tane olması garanti ediliyor; yalnızca bu kural, erken bir model iki top çizdikten sonra Breakout'u yüzde 91,6'dan yüzde 99,7 tam kareye çıkardı. Servis ve yeniden doğuş gibi rastgele olaylardan sonra seçim, en iyi adaylara yakın adaylar arasından örnekleniyor; böylece model bir ortalama yerine çeşitlilik icat ediyor. Pac-Man sprite'ları durumu belirlenmiş tek bir hücrede tahmin ediyor ve diğer üçünü oradan damgalıyor.

Hayalin doğrulanması

Yazar, çevrimdışı doğruluğun yeterli olmadığını yazıyor; çünkü ajanlar simülasyonu eğitim verisinin hiç kapsamadığı durumlara sürüyor ve her hatayı sömürüyor. Bu nedenle ana denetim bir ajan oynarken koşuluyor: Oyun durumu her hayal edilen kareden geri okunuyor, gerçek kurallar uygulanıyor ve sonuç bir sonraki hayal edilen kareyle karşılaştırılıyor. Oyun başına iki döngüyle 5.000 hayali adım boyunca Flappy Bird ve Pong fiilen kusursuzdu, Doom-lite tek yanlış durum üretti, Pac-Man lite ise 742 yanlış durum ve 38 yanlış ödül biriktirdi — en büyük model en az güvenilir olanı.

Eğitim ve dağıtım

Eğitim verisi gerçek oyunları oynayan ajanlardan geldi: Oyun başına bir ile üç milyon kaydedilmiş geçiş, bir kısmı karıştırılmış durumlarla başlayan. Dünya modeli hücre başına cross-entropy ile 30k adım eğitiliyor ve quantization-aware training olarak ilk birkaç bin adımdan sonra int8 yuvarlaması devreye giriyor. Nihai ağırlıklar, tam bit desenleri olarak Rust kaynağına yazılıyor ve flash'lamadan önce testlerle bit bit doğrulanıyor. Simülasyon içinde eğitilen ajanlar yeni durumlara ulaştığı için oyunları kaydedilip modeli ince ayar yapmak için geri katılıyor. README ince bir başarısızlığı da belgeliyor: Bir hücrenin değişip değişmediğine göre kaybı ağırlıklandırmak, modeli değişiklik tahmin etmeye yanlılık soktu ve yinelenen top ve tuğlalar üretti; bu, değişimin mümkün olduğu yerleri ağırlıklandırma artı tek öğe kuralıyla düzeltildi.

Neden önemli

Bu, öğrenilmiş dinamik modellerinin ne kadar küçüldüğünün kompakt bir gösterimi: On binlerce parametre, bir pekiştirmeli öğrenme ajanının simülasyon içinde, çevrimdışında, hobi amaçlı bir mikrodenetleyici üzerinde eğitim alabileceği kadar iyi oyun fiziğini yakalıyor. Ayrıca bununla gelen iki pratik sorunu da ortaya koyuyor. Öğrenilmiş simülatörler dikkatli kod çözme ve kapalı döngü doğrulama gerektiriyor; çünkü ajanlar her halüsinasyonu bulup sömürecek. Buradaki reçete — kaydet, eğit, ajanları hayalin içinde yeniden konuşlandır, yeniden kaydet — çok daha büyük dünya modeli araştırmalarının ardındaki geri bildirim döngüsünü yansıtıyor; hem de herkesin bir masa üstünde yeniden üretebileceği bir ölçekte.

  • #world-models
  • #raspberry-pi
  • #transformers
  • #reinforcement-learning
  • #edge-ai