World model de 26k parámetros corre en un Raspberry Pi Pico

Un transformer diminuto que sueña y juega dentro de un microcontrolador

Un transformer de apenas 26.000 parámetros puede generar y jugar Breakout en tiempo real dentro de un Raspberry Pi Pico 2 W, una placa que cuesta unos pocos dólares y tiene 520 KB de SRAM. El proyecto se llama tinyworldformer, está publicado en GitHub por el desarrollador SheepSeb, y demuestra algo que hasta hace poco parecía territorio exclusivo de GPUs: un world model que aprende las reglas de un juego y un agente que aprende a jugarlo, ambos corriendo en el mismo chip.

Para un founder que construye producto, la lección no está en el juego. Está en que las técnicas que hicieron posible meter un transformer en un microcontrolador —cuantización int8 con entrenamiento consciente, reutilización de pesos y exportación a Rust sin sistema operativo— son las mismas que necesita cualquier producto de IA que deba funcionar sin nube.

Qué corre exactamente sobre la placa

El hardware es un RP2350, el chip del Pico 2 W: 4 MB de flash, 520 KB de SRAM y una FPU. Sobre eso conviven cinco juegos: Breakout, Doom-lite, Flappy Bird, Pong y Pac-Man lite.

¿Y esto cómo se aplica en tu negocio?

Dueños de negocio de Latinoamérica y España usan un agente de IA para ganar más y recuperar su tiempo. El Kit «tu mano derecha con IA» te muestra cómo en un video de 11 minutos, con una ficha para armar el tuyo. CAR está cerrada por ahora; al anotarte, te avisamos cuando abra.

👥 Quiero el Kit →

Lo interesante es la arquitectura cerrada. En el chip, ninguno de los dos cerebros usa el juego real: el actor solo ve fotogramas que genera el world model, y el world model solo recibe acciones del actor. El agente aprende a jugar dentro de su propio sueño, sin acceso a las reglas verdaderas.

Ambas redes corren en el core 1 del chip, mientras el core 0 se encarga del USB y de la pantalla. Si el core 0 todavía está ocupado con el fotograma anterior, el nuevo se descarta: el core 1 nunca espera a la pantalla.

Los dos cerebros: world model y actor

El sistema separa dos tareas que suelen ir juntas:

  • World model: recibe el fotograma actual más la acción y predice el siguiente fotograma y la recompensa. Es un looped transformer en int8, con entre 26.000 y 131.000 parámetros y un costo de 2 a 8 millones de multiply-adds por fotograma, según el juego.
  • Actor: recibe el fotograma y elige una acción. Es un MLP de dos capas ocultas en float32, con 9.000 a 16.000 parámetros y un costo de 9.000 a 16.000 multiply-adds.

La pieza clave es el looped transformer. En lugar de apilar muchas capas distintas, aplica un único bloque transformer varias veces con los mismos pesos, sumando la entrada de vuelta en cada pasada. Reutilizar pesos es barato en memoria, y por eso el modelo cabe en un microcontrolador. En el Pico se usan dos bucles, porque el número de pasadas intercambia velocidad por precisión.

Los datos del propio proyecto muestran ese intercambio con claridad. Con un solo bucle, los fotogramas exactos en datos no vistos son 99,68% en Breakout y 59,8% en Doom-lite. Con dos bucles suben a 99,99% y 83,6%. Con tres, Doom-lite llega a 85,9%, y a partir de ahí la mejora se aplana o retrocede.

Cómo se mete un transformer en 520 KB de SRAM

Aquí está la parte que un equipo de producto puede copiar. El proyecto aplica tres decisiones de ingeniería concretas:

  • Cuantización int8 con QAT. Cada matriz del world model es int8 con una escala por fila de salida (escala = max|w| / 127). Las activaciones también son int8, con una escala por tensor y por índice de bucle, porque cada pasada ve rangos distintos. Las matmuls suman int8 × int8 en int32 —dos multiply-adds por instrucción SMLAD en el RP2350— y luego aplican un único multiply en float. El entrenamiento usa el mismo redondeo (QAT con estimador straight-through), así que el modelo int8 es el modelo que se entrenó, no una aproximación posterior.
  • Todo estático, nada se asigna en runtime. El firmware es Rust no_std sobre embassy. Los pesos son arrays estáticos en flash y cada buffer es un estático de tamaño fijo en RAM.
  • Verificación bit a bit. Los pesos int8 se escriben en código Rust con cada float almacenado en sus bits exactos, y un cargo test reproduce la especificación entera de Python bit por bit.

El resultado en memoria es contundente: Breakout usa 361 KB de flash y 299 KB de SRAM; Pac-Man, el más pesado, 600 KB y 460 KB. Todo entra en los 4 MB de flash y los 512 KiB de SRAM del chip.

Qué tan fiel es el sueño y dónde falla

Un world model no necesita ser perfecto en datos grabados: necesita aguantar cuando un agente lo lleva a estados que nunca vio. El proyecto lo mide con 5.000 pasos soñados por juego a dos bucles. Flappy Bird y Pong prácticamente no fallan; Pac-Man acumula 742 estados de juego incorrectos sobre 5.000 pasos.

El caso más ilustrativo es el de los agentes que explotan el sueño. Un agente entrenado solo dentro del dream llegó a 210 puntos ahí, cuando el máximo real del juego es 56, y apenas 28 en el juego real. Es exactamente el fenómeno que describe el paper World Models de Ha y Schmidhuber. La solución fue iterativa: recolectar partidas reales con ese agente y afinar el world model con todo, ronda tras ronda, hasta cerrar cada exploit.

Otra corrección útil: el sueño de Doom-lite a veces perdía el sprite del enemigo y nunca lo volvía a dibujar, porque el modelo copiaba la vista anterior en lugar de redibujarla desde el minimapa. Se arregló con aumentación de ruido en la entrada, la misma técnica que usa GameNGen.

¿Qué significa esto para tu startup?

El contexto de mercado acompaña. Según ResearchAndMarkets, el mercado global de chips para IA en el edge superará los US$80.000 millones en 2036, impulsado por automoción, smartphones con IA, PCs con IA, robots humanoides y sensores industriales. Y según TechTarget, ejecutar inferencia en un microcontrolador consume típicamente menos de 5 milivatios, frente a unos 800 milivatios de enviar los datos a la nube por red celular.

Esa diferencia de consumo es la que decide si un producto puede funcionar con una batería pequeña durante meses o si depende de conectividad permanente. El proyecto de SheepSeb muestra que el techo técnico es más alto de lo que muchos equipos asumen.

Tres acciones concretas que puedes implementar:

  • Antes de subir de gama de hardware, prueba cuantización int8 con QAT. El proyecto demuestra que un transformer puede vivir en cientos de KB si el redondeo se entrena desde el inicio en lugar de aplicarse al final. Medir eso primero puede ahorrarte el salto a un chip con NPU.
  • Reutiliza pesos antes de agregar capas. Un bloque aplicado en bucle con los mismos pesos reduce memoria de forma drástica. Es una palanca de arquitectura, no solo de compresión.
  • Valida tu modelo en el entorno donde va a operar, no solo con accuracy offline. El caso del agente que sacó 210 puntos en el sueño y 28 en la realidad es la advertencia perfecta: un modelo que solo se evalúa sobre datos grabados esconde los atajos que un agente real encontrará.

El pipeline de exportación del proyecto —de PyTorch a Rust no_std, con verificación bit a bit— está separado en un módulo que solo importa numpy y torch, pensado explícitamente para que otros proyectos lo reutilicen. También compila a WebAssembly, y con la misma semilla genera los mismos episodios que la versión nativa, a 1–5 ms por fotograma, lo que permite probar el modelo en un navegador antes de flashear hardware.

Conclusión

tinyworldformer no es una demo de fin de semana: es una demostración de que la brecha entre un modelo de IA moderno y un microcontrolador de pocos dólares se puede cerrar con cuantización entrenada, reutilización de pesos y un pipeline de exportación verificado. Para un founder, la pregunta relevante no es si tu modelo cabe en el edge, sino cuánto de tu arquitectura actual está sobredimensionada por falta de esas tres decisiones.

Fuentes

¿te gustó o sirvió lo que leíste?, Por favor, comparte.

¿Y esto cómo se aplica en tu negocio?

Dueños de negocio de Latinoamérica y España usan un agente de IA para ganar más y recuperar su tiempo. El Kit «tu mano derecha con IA» te muestra cómo en un video de 11 minutos, con una ficha para armar el tuyo. CAR está cerrada por ahora; al anotarte, te avisamos cuando abra.

👥 Quiero el Kit →

Daily Shot: Tu ventaja táctica

Lo que pasó en las últimas 24 horas, resumido para que tú no tengas que filtrarlo.

Suscríbete para recibir cada mañana la curaduría definitiva del ecosistema startup e inversionista. Sin ruido ni rodeos, solo la información estratégica que necesitas para avanzar:

  • Venture Capital & Inversiones: Rondas, fondos y movimientos de capital.
  • IA & Tecnología: Tendencias, Web3 y herramientas de automatización.
  • Modelos de Negocio: Actualidad en SaaS, Fintech y Cripto.
  • Propósito: Erradicar el estancamiento informativo dándote claridad desde tu primer café.

📡 El Daily Shot Startupero

Noticias del ecosistema startup en 2 minutos. Gratis, todos los días.

Share to...