A tiny world model running games on a Raspberry Pi Pico 2 W

(github.com)

165 points | by airinei 8 hours ago ago

9 comments

  • boustrophedon 6 hours ago ago

    I might have missed it in the readme, but what hardware did the training take place on? This is really neat.

    • sheepseb 6 hours ago ago

      For the world model training I've used an RTX 4060, but for the agent playing the game that was directly on the pico using stream-ac

  • cchance an hour ago ago

    If this runs on a PI... can it run on webgpu ?

  • dannyw 8 hours ago ago

    This is incredibly cool! Fascinating to see looped transformers be necessary for mini-Doom, but not for simpler games.

  • andai 7 hours ago ago

    Very cool. I didn't know NNs were capable of such determinism, that's very interesting. Is this a similar effect to overfitting? Also, it's the same model for all the games, right?

    • svantana 7 hours ago ago

      > Also, it's the same model for all the games, right

      It's a bit unclear but it looks like different models, since they all have different parameter and MAC counts. It would be much more impressive with a single world model that could maybe dream up new games inbetween the games in the training set.

    • sheepseb 7 hours ago ago

      It's a self contained net for each game but the data used for training doesn't overlap with the validation. I think it would be easy to merge them into a single model

  • xpct 4 hours ago ago

    Is the actor trained on world model's mistakes as well? If so, it should learn to force hallucinations that force it into an easier state.

  • nater5000 7 hours ago ago

    Honestly fascinating. I almost feel like you'd be better off avoiding any discussion of the fact that this runs on a Raspberry Pi Pico 2 W because it takes away from the crazy world model capabilities (of course, the fact that this does run on a Pico 2 makes the whole thing much more impressive).

    There's gotta be a good way to incorporate this logic into a larger, more "traditional" game in a meaningful way. Seems like an approach for procedural generation that could solve some of the issues usually found with actual procedural generation.