Tinyworldformer: Raspberry Pi Pico 2 W에서 루프형 트랜스포머 실행하기

개요

Tinyworldformer는 루프형 트랜스포머와 int8 양자화를 사용하여 복잡한 월드 모델과 강화 학습 에이전트를 자원이 제한된 하드웨어에서 실행할 수 있음을 보여줍니다. 이 시스템을 통해 Raspberry Pi Pico 2 W는 게임 프레임을 생성하고 실시간으로 게임을 플레이하는 방법을 학습할 수 있으며, 마이크로컨트롤러가 자체 시뮬레이션 환경 내에서 "꿈을 꾸고" 행동할 수 있게 합니다.

아키텍처: 루프형 트랜스포머 및 액터

이 시스템은 RP2350 칩에서 실행되는 두 개의 서로 다른 신경망에 의존합니다:

  • 월드 모델: 현재 프레임과 행동을 기반으로 다음 프레임과 보상을 예측하는 루프형 트랜스포머입니다. 동일한 가중치를 가진 단일 트랜스포머 블록을 여러 번 재사용함으로써 모델은 상당한 메모리 절감 효과를 얻어 마이크로컨트롤러에서 실행 가능하게 합니다. 게임 복잡도에 따라 26k~131k개의 파라미터를 사용합니다.
  • 액터: 생성된 프레임을 관찰하고 행동을 선택하는 다층 퍼셉트론(MLP)입니다. 9k~16k개의 파라미터만 사용하는 경량 모델입니다.

두 네트워크 모두 RP2350의 코어 1에서 작동하며, 코어 0은 USB 통신 및 디스플레이 출력을 관리합니다. 이 시스템은 추론 중에 "실제" 게임 로직을 사용하지 않고 전적으로 월드 모델의 예측에 의존합니다.

게임 구현 및 성능

이 프로젝트는 Breakout, Doom-lite, Flappy Bird, Pong, Pac-Man 등 5가지 게임을 지원합니다. 각 게임은 수백 줄의 NumPy 코드로 구현되어 있으며, 토큰 ID의 작은 그리드로 렌더링됩니다. 월드 모델의 정확도는 게임마다 다르며, Flappy Bird와 같은 단순한 게임에서는 높은 충실도(프레임 예측 정확도 100%)를 달성하고, Pac-Man과 같은 복잡한 게임에서는 2회 루프 시 86.4%의 정확도를 보입니다.

모델의 안정성을 유지하기 위해 이 프로젝트는 모델이 동일한 객체의 여러 인스턴스를 환각하지 않도록 "싱글톤" 객체(공이나 플레이어 등)를 배치하는 것과 같은 특정 디코딩 규칙을 사용합니다. 월드 모델은 에이전트 학습 중에 실제 게임 규칙과 예측을 비교하여 검증됩니다.

양자화 및 배포

Pico 2 W의 512 KB SRAM과 4 MB 플래시 메모리에 맞추기 위해 이 프로젝트는 양자화 인식 학습(QAT)을 사용합니다. 월드 모델의 모든 행렬은 int8 형식으로 변환됩니다. 펌웨어는 no_std Rust로 작성되어 동적 메모리 할당 없이 결정론적인 성능을 보장합니다.

가장 큰 게임인 Pac-Man의 성능 지표를 보면, 시스템이 약 600 KB의 플래시와 460 KB의 SRAM을 소비하여 하드웨어 제한 내에 충분히 들어옵니다. RP2350의 FPU를 사용하여 정규화 및 잔차를 효율적으로 처리하며, 정수 기반 내적은 특정 어셈블리 명령어(SMLAD)를 사용하여 최적화됩니다.

마이크로컨트롤러 AI에 대한 통찰

커뮤니티 토론에서는 향후 AI 애플리케이션에서 이 접근 방식의 잠재력을 강조합니다. 댓글 작성자들은 최소한의 로컬 실행 모델에 초점을 맞춘 이러한 프로젝트가 임베디드 AI의 미래를 위한 중요한 방향을 제시한다고 언급했습니다.

"저는 개인적으로 이러한 깔끔한 프로젝트들(가장 작고 로컬에서 실행되는 LLM)이 장기적으로 AI의 진정한 미래라고 믿습니다." — skrellm

다른 이들은 하드웨어 제약이 인상적이지만, 기본 로직을 기존 게임 개발에 통합할 수 있다고 지적했습니다. 이러한 모델을 절차적 생성이나 적응형 NPC 행동에 사용함으로써 개발자들은 표준 절차적 생성 기술에서 흔히 발생하는 제한 사항을 해결할 수 있을 것입니다.

Sources

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • Dispatch
  • 프로젝트