핵심 요약
- 학습(트레이닝) 방식이 아니라 컴파일러로 Qwen3.5 언어 모델의 가중치를 계산해 닌텐도 NES 6502 CPU와 메모리를 모델 내부에 직접 구현했습니다.
- 모델이 토큰을 하나씩 예측하며 CPU 명령어를 연산해 슈퍼 마리오 브라더스 같은 고전 게임을 기존 에뮬레이터와 완전히 동일한 프레임으로 구동합니다.
- 다만 LLM 추론 연산 특성상 1프레임당 1~6초가 걸려 인게임 10초(600프레임) 플레이에 약 25분이 소요되는 압도적인 느림을 자랑합니다.
요약 오픈소스 LLM 모델의 가중치(Weights) 안에 닌텐도 패미컴(NES) 에뮬레이터를 직접 '컴파일'해 구동시키는 기상천외한 오픈소스 프로젝트 'nesformer'가 공개되어 개발자와 게이머들의 이목을 끌고 있습니다.
이 프로젝트는 Qwen3.5 기본 모델의 가중치 내에 NES의 6502 CPU와 2KB 작업용 RAM, 게임 팩(카트리지) ROM의 구동 회로를 통째로 이식했습니다. 놀라운 점은 머신러닝 데이터 학습(트레이닝)을 거친 것이 아니라, 컴파일러가 모델 가중치의 모든 값을 수학적으로 계산해 직접 주입했다는 사실입니다. 게임을 플레이할 때 모델은 CPU의 실행 로그를 토큰 단위로 한 글자씩 '예측'하며 연산하고, 파이썬 기반의 호스트 프로그램이 컨트롤러 입력 전달, 화면 출력, vblank 인터럽트 처리를 맡아 콘솔 환경을 완성합니다.
이 기술은 Qwen3.5-4B 모델에 CHIP-8과 RISC-V CPU를 컴파일했던 'Qwenputer' 프로젝트를 발전시킨 것으로, 모델 내부의 Gated DeltaNet 상태를 기계의 메모리로 활용하는 트릭을 재사용했습니다. 슈퍼 마리오 브라더스(World 1-1) 등의 게임 구동 시 모든 CPU 연산 토큰이 언어 모델에서 직접 생성되며, 기존의 일반적인 6502 에뮬레이터 출력과 비교 검증했을 때도 프레임 단위로 완벽하게 일치하는 결과를 보여주었습니다.
다만 언어 모델이 추론을 통해 CPU를 흉내 내는 구조인 만큼 속도는 매우 느립니다. Numba를 통한 엔진 컴파일 후에도 1프레임을 생성하는 데 약 1~6초가 걸리며, NES 기준 10초 분량(600프레임)을 플레이하려면 약 25분의 실제 구동 시간이 소요됩니다. 현재 'nesformer'는 슈퍼 마리오 브라더스, 동키콩, 익사이트바이크 등 NROM 보드(iNES 매퍼 0)를 사용하는 ROM 팩을 모델 재빌드 없이 상태에 직접 로드해 플레이할 수 있도록 지원하고 있습니다.
Sponsored · 광고