순정 게임보이 컬러에서 실제 트랜스포머 언어 모델을 구동했습니다!
핵심 요약
게임보이 컬러의 제한된 하드웨어 환경에서 TinyStories 모델을 구동하는 데 성공한 기술적 성과.
- 하드웨어 구동 — 별도의 외부 장치 없이 순정 게임보이 컬러에서 모델을 직접 실행함.
- 최적화 기술 — TinyStories-260K 모델을 INT8로 양자화하고 고정 소수점 연산을 적용함.
- 메모리 관리 — 부족한 작업 메모리를 보완하기 위해 카트리지 SRAM에 KV 캐시를 저장함.
- 개발 도구 — GBDK-2020을 사용하여 MBC5 게임보이 ROM으로 모델을 빌드함.
폰, PC, Wi-Fi, 링크 케이블, 클라우드 추론 없이 구동했습니다.
• 카트리지가 ROM을 부팅하고, 게임보이 컬러가 직접 모델을 실행합니다.
• 모델은 Andrej Karpathy의 TinyStories-260K이며, 부동 소수점 없이 실행되도록 고정 소수점 연산을 사용해 INT8 가중치로 변환했습니다.
• GBDK-2020을 사용하여 MBC5 게임보이 ROM으로 빌드했습니다.
• 모델 가중치는 뱅크 스위칭 카트리지 ROM에 저장됩니다. 프롬프트 입력은 기기에서 D-패드/버튼과 화면 키보드를 사용합니다.
• 프롬프트는 게임보이에서 토큰화되며, ROM이 트랜스포머 프리필(prefill)과 자기회귀(autoregressive) 생성을 실행합니다. 게임보이 컬러의 작업 메모리가 너무 작기 때문에 KV 캐시는 카트리지 SRAM에 저장됩니다.
매우 느리고, 수학 연산이 심하게 양자화/근사화되어 결과물은 횡설수설하지만, 핵심 기능은 작동합니다!
하드웨어: 순정 게임보이 컬러 + EZ Flash Junior + microSD.
구축 과정의 상당 부분은 Codex를 사용했습니다!
