Tinyworldformer: en verdensmodell på 26k parametere lager og spiller Breakout på en Pico 2 W
fredag 30. oktober · KI-generert · Kilde: GitHub
Flash Tinyworldformer på en Raspberry Pi Pico 2 W hvis du vil se to små nettverk lage og spille Breakout, Pong, Flappy Bird, Doom-lite og Pac-Man uten at den ekte spillkoden kjører.
«Gjenbruk av vekter er billig på minne, så jeg ville se om en loopet verdensmodell kunne bli liten nok til å kjøre på en mikrokontroller», skriver utvikleren SheepSeb i README-en til prosjektet på GitHub. Resultatet er to nettverk på RP2350-brikken. Det første er en transformer i int8 som tar nåværende bilde og knappetrykk og spår neste bilde og belønningen. Det andre er en liten MLP på 9 000 til 16 000 parametere som velger handling ut fra bildet verdensmodellen har generert. Ingen av dem ser det ekte spillet.
Verdensmodellen er én transformer-blokk med ett sett vekter som kjøres 1 til 4 ganger, og antall runder bytter fart mot presisjon. På Picoen brukes 2 runder. Da treffer Breakout-modellen på 26 000 parametere 99,99 % av testbildene eksakt, Flappy Bird 100 % og Pac-Man, den største med 131 000 parametere, 86,4 %. Pac-Man bruker 600 KB av 4 MB flash og 460 KB SRAM.
Den mest overførbare lærdommen gjelder agenter som trenes i en simulert verden. Aktører som bare ble trent inne i «drømmen», fikk 210 poeng der, selv om maks i ekte Breakout er 56, og bare 28 i det ekte spillet. Utvikleren tettet hullene ved å ta opp ekte spill med agenten og finjustere verdensmodellen på nytt, én runde per utnyttet feil.
To begrensninger: utvikleren har ikke målt bildefrekvensen på selve Picoen ennå, og repoet har ingen lisensfil. Uten lisens har du ikke rett til å gjenbruke koden i egne prosjekter.
Hva bør du gjøre?
- Spill de ekte spillene i terminalen først med
uv run python -m tinyworldformer.games.play --game pacmanfor å se hva modellen etterligner. - Flash brettet med
./flash.sh --env breakout --displayfratinyworldformer-rsmens du holder BOOTSEL inne, eller bruk--hostfor å kjøre drømmen i terminalen uten maskinvare. - Spør utvikleren om lisens før du bygger videre på eksportkoden i
rustexport.