---
title: "Raspberry Pi Pico 2 W Üzerinde Oyun Çalıştıran Küçük Bir Dünya Modeli (Tiny World Model)"
url: https://blog.edumints.com/raspberry-pi-pico-2-w-uzerinde-oyun-calistiran-kucuk-bir-dunya-modeli
category: "Makine Öğrenmesi"
date: 2026-10-30T08:07:09.370Z
publisher: Edumints Blog
lang: tr-TR
source_name: "Hacker News"
source_url: https://github.com/SheepSeb/tinyworldformer
---

# Raspberry Pi Pico 2 W Üzerinde Oyun Çalıştıran Küçük Bir Dünya Modeli (Tiny World Model)

**tinyworldformer** projesi, bir **Raspberry Pi Pico 2 W** mikrodenetleyicisi üzerinde aynı anda hem oyun üreten hem de bu oyunu oynayan iki küçük yapay sinir ağının nasıl çalıştırılabileceğini gösteriyor. Birinci ağ oyunu oluşturur: mevcut kareyi (frame) ve eylemi (action) alarak bir sonraki kareyi ve ödülü tahmin eder. İkinci ağ ise oyunu oynar: üretilen kareyi kullanarak bir sonraki eylemi seçer. Üretilen her kare dünya modeli (world model) ağı tarafından örneklenir ve eylemler aktör (actor) ağı tarafından gerçekleştirilir.

## Neden (Why)

Projenin çıkış noktası, farklı katmanları üst üste yığmak yerine tek bir transformer bloğunun aynı ağırlıklarla (weights) birkaç kez uygulandığı **döngüsel transformer (looped transformer)** mimarisidir. Ağırlıkları yeniden kullanmak bellek açısından oldukça ekonomiktir; bu da döngüsel bir dünya modelinin bir mikrodenetleyici üzerinde çalışacak kadar küçük olup olamayacağı sorusunu doğurmuştur.

Donanım olarak ucuz olması ve kayan nokta birimine (**FPU**) sahip olması nedeniyle **Pico 2 W** tercih edilmiştir. Küçük oyunların seçilme nedeni ise gerçek oyun versiyonlarının doğrudan `numpy` ile yazılıp üretilen her karenin gerçekleriyle karşılaştırılabilmesidir. Sonrasında eklenen akış tabanlı pekiştirmeli öğrenme (**streaming RL**) ajanı sayesinde kart, kendi üretimi olan "rüya" (dream) ortamının içinde oyun oynamayı sıfırdan öğrenebilmektedir.

## Dünya Modeli ve Aktör (The World Model and the Actor)

Sistemde görev yapan iki temel ağın teknik özellikleri ve yazılım mimarisi açısından karşılaştırması şöyledir:

- **Görev (Job):** Ağ 1 (Dünya Modeli) `kare + eylem → sonraki kare + ödül` tahmini yapar. Ağ 2 (Aktör) ise `kare → eylem` dönüşümünü gerçekleştirir.
- **Mimari (Architecture):** Dünya modeli `q int8` nicemlenmiş (quantized) döngüsel transformer kullanırken; aktör ağı `float32` formatında iki gizli katmanlı bir **MLP** (Çok Katmanlı Algılayıcı) yapısındadır.
- **Boyut (Size):** Dünya modeli oyunun karmaşıklığına göre **26k–131k parametre** arasında değişirken, aktör ağı **9k–16k parametre** boyutundadır.
- **Kare Başına Maliyet (Cost per frame):** Dünya modeli **2–8M çarpma-toplama (MACs)** işlemi gerektirirken, aktör ağı **9k–16k MACs** ile çalışır.
- **Eğitim (Trained):** Dünya modeli kaydedilmiş gerçek oyunlar üzerinde eğitilir; aktör ise `stream-x` algoritmasıyla gerçek oyunda veya doğrudan modelin rüyası içinde eğitilir.

Çip üzerinde (RP2350) hiçbir ağ gerçek oyun motorunu kullanmaz: aktör yalnızca dünya modelinin ürettiği kareleri görür, dünya modeli ise yalnızca aktörden gelen eylemleri alır. Her iki ağ da **RP2350** işlemcisinin **Core 1** çekirdeğinde çalışırken, **Core 0** USB iletişimini ve ekranı yönetir. Önceden eğitilmiş aktör, kart üzerinde sıfırdan öğrenen yeni bir `stream-x` ajanıyla değiştirilebilir veya herhangi bir tuşa basılarak kontrol doğrudan kullanıcıya devredilebilir.

## Oyunlar (The Games)

Her oyun, `src/tinyworldformer/games/` dizininde birkaç yüz satırlık `numpy` kodu olarak yer alır. Küçük bir token ID ızgarasına (grid) dönüştürülür ve tek bir kare tüm oyun durumunu (state) barındırır. Bu nedenle gizli durumların (hidden state) doğrudan kare içine çizilmesi gerekir: örneğin topun yönü kendi token bilgisinin bir parçasıdır ve **Doom-lite** oyununda bir mini harita (minimap) bulunur.

- **Breakout:** `20×16` kare boyutundadır. Raket, top, 56 tuğla ve 5 candan oluşur; rastgele olay kaçırılan top sonrası yapılan servistir. **26k parametre** ve **4.3M MACs** ile 2 döngüde **%99.99** tam kare doğruluğuna ulaşır.
- **Doom-lite:** `32×32` kare boyutundadır. `8×8` boyutundaki bir labirentin ışın izleme (raycast) ile oluşturulmuş birinci şahıs görünümüdür; düşman size en kısa yoldan yürür ve siz düşmana ateş edersiniz.

## Geliştiriciler İçin Pratik Çıkarımlar

- **Ağırlık Paylaşımı ve Niceleme:** Bellek kısıtlı gömülü sistemlerde (`Edge Runtime`) `int8` niceleme ve döngüsel katman mimarisi, model boyutunu kilobayt seviyesine indirerek uç cihazlarda üretken modellerin çalışmasını sağlar.
- **Durum Temsili (State Representation):** Markov özelliğini korumak adına hız, yön veya harita gibi gizli durum verilerini doğrudan gözlem karesinin (token grid) içine kodlamak, modelin geçmiş bağlama olan bağımlılığını azaltır.

---

**Kaynak:** Hacker News (https://github.com/SheepSeb/tinyworldformer)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/raspberry-pi-pico-2-w-uzerinde-oyun-calistiran-kucuk-bir-dunya-modeli
