ESP32-S3 마이크로컨트롤러에서 28.9M 파라미터 LLM 실행하기

ESP32-S3 마이크로컨트롤러에서 28.9M 파라미터 LLM 실행하기

$8 마이크로컨트롤러에서의 로컬 LLM 실행

연구자들은 ESP32-S3 마이크로컨트롤러에 28.9백만 파라미터 언어 모델을 성공적으로 배포하여 초당 약 9.5 토큰의 생성 속도를 달성했습니다. 이는 이전 모델이 유사한 칩에서 약 260천 파라미터로 제한되었던 것에 비해 이 하드웨어 클래스의 모델 용량이 크게 증가한 것을 의미합니다.

Per-Layer Embeddings를 통한 메모리 제약 극복

마이크로컨트롤러에서 LLM을 실행하는 주요 장벽은 빠른 메모리(SRAM)의 심각한 제한입니다. ESP32-S3는 단지 512KB의 SRAM만을 제공하며, 이는 일반적으로 실행을 위해 전체 모델을 빠른 메모리에 로드해야 함을 의미합니다.

이를 우회하기 위해 프로젝트는 Google의 Gemma 모델에서 파생된 Per-Layer Embeddings 기법을 활용합니다. 전체 모델을 SRAM에 로드하는 대신, 시스템은 파라미터의 대부분—구체적으로 25백만 행 임베딩 테이블—to 느린 플래시 메모리에 저장합니다. 모델이 토큰당 몇 행(약 450바이트)만 읽어야 하기 때문에, 시스템은 전체 테이블을 RAM에 로드하지 않고 플래시 메모리에서 실시간으로 샘플링할 수 있습니다.

메모리 아키텍처 레이아웃

  • SRAM (빠르고 작음): 모든 토큰에 사용되는 "생각" 코어를 포함합니다.
  • PSRAM (중간): 출력 헤드와 작업 메모리에 사용됩니다.
  • FLASH (거대하고 느림): 25M-파라미터 테이블을 저장하며, 토큰당 약 6행만 읽습니다.

모델 성능 및 기능

모델은 4비트로 양량화 시 14.9MB 크기이며, 서버 연결 없이 온디바이스에서 완전히 실행됩니다.

기술 사양

측정항목
파라미터 28.9M (플래시 lookup 테이블에 25M)
하드웨어 ESP32-S3 (512KB SRAM, 8MB PSRAM, 16MB Flash)
속도 ~9.5 토큰/초 엔드투엔드
모델 크기 14.9MB (4비트)

기능적 제한

모델의 "추론" 부분이 작기 때문에 모델의 유용성이 제한됩니다. 이 모델은 TinyStories 데이터셋에서 훈련되었으며, 이는 짧고 일관성 있는 간단한 이야기를 생성할 수 있음을 의미합니다. 다음 작업은 수행할 수 없습니다:

  • 사실 질문에 답변하기
  • 복잡한 지시사항 따르기
  • 코드 작성하기

커뮤니티 통찰 및 잠재적 응용

개발자들 사이의 논의에 따르면, 이 아키텍처는 텍스트 생성을 넘어 다른 소규모 AI 작업으로 확장될 수 있습니다.

"또한 TTS 모델이 약 20-30M 파라미터로 viable하다는 점을 언급할 가치가 있습니다. 이는 네트워크 접근이 없는 ESP32가 실시간에 가까운 속도로 정보를 읽어줄 수 있음을 의미할 수 있습니다!"

다른 커뮤니티 구성원들은 이러한 모델을 치아 위생 기기와 같은 일상적인 객체에 통합할 잠재력을 강조했으며, 다른 이들은 256MB 메모리와 유사한 가격대의 TPU를 제공하는 Milk-V Duo와 같은 더욱 강력한 저비용 보드가 이용 가능하다고 지적했습니다.

Sources