28.9M 파라미터 LLM, 8달러 마이크로컨트롤러서 구동
- •개발자가 8달러 규모의 ESP32-S3 마이크로컨트롤러에서 2890만 파라미터 언어 모델을 구현했다.
- •플래시 메모리의 Per-Layer Embeddings 기법을 활용해 초당 9.5 토큰의 생성 속도를 달성했다.
- •TinyStories 데이터셋으로 훈련된 모델은 제한적인 하드웨어 환경에서도 일관된 이야기 생성을 수행한다.
한 개발자가 8달러 내외의 ESP32-S3 마이크로컨트롤러에서 2890만 파라미터 규모의 언어 모델을 성공적으로 구현했다. 이 시스템은 서버 연결 없이 온칩 상태로 구동되며, 초당 약 9.5 토큰의 생성 속도를 기록했다. 모델은 기기의 512KB SRAM이 아닌 저속 플래시 메모리에 파라미터 대부분을 저장하는 방식으로 하드웨어 제약을 극복했다. 특히 구글의 Gemma 모델에서 도입된 Per-Layer Embeddings 기법을 활용해 토큰당 450바이트의 필수 데이터만 읽어오고 핵심 연산 로직은 고속 메모리에 유지하는 방식을 채택했다.
4비트 양자화를 적용한 모델의 용량은 14.9MB이며, 총 2890만 파라미터 중 2500만 개가 플래시 메모리 조회 테이블에 저장된다. 이는 기존 저가형 마이크로컨트롤러에서 구현되던 모델 규모가 약 26만 파라미터에 불과했던 점을 감안하면 비약적인 발전이다. 하드웨어 구성은 8MB PSRAM과 16MB 플래시 스토리지를 포함한다. 다만, SRAM 용량 한계로 인해 추론 능력은 제한적이며 일반적인 지시사항 수행보다는 TinyStories 데이터셋을 기반으로 한 일관된 짧은 이야기 생성에 최적화돼 있다.
이 프로젝트는 핵심 연산 로직을 SRAM에, 작업 메모리를 PSRAM에, 대규모 테이블을 플래시 메모리에 분리 배치하는 설계 원칙에 의존한다. 개발자는 오픈소스 저장소를 통해 전체 방법론과 펌웨어, 실험 결과를 공개했다. 이번 성과는 TinyStories 데이터셋 생성 연구와 C언어 기반의 모델 구동 프로젝트인 llama2.c를 기반으로 한다. 파라미터 측정 과정에서 발생한 초기 버그를 수정해 최종 결과를 검증했으며, 상세한 측정 데이터는 프로젝트 문서에서 확인할 수 있다.