Skip to content
research

8달러짜리 칩에서 구동되는 29M 파라미터 LLM

90년대 PC보다 적은 RAM을 가진 8달러짜리 마이크로컨트롤러에서 29M 파라미터 언어 모델이 완전히 오프라인으로 구동되고 있습니다. Google의 Gemma에서 영감을 받아 불가능해 보이던 이 위업을 현실로 만든 영리한 메모리 해킹 기술을 확인해 보세요.

Aki Tanaka
8달러짜리 칩에서 구동되는 29M 파라미터 LLM

불가능한 위업: 8달러짜리 칩에서 구동되는 29M LLM

우크라이나 개발자 Slava S.는 8달러짜리 ESP32-S3 마이크로컨트롤러에서 2,890만 개의 파라미터를 가진 언어 모델을 성공적으로 구동하는 놀라운 성과를 거두었습니다. 이 획기적인 시스템은 Wi-Fi나 서버 연결 없이 완전히 오프라인으로 작동하며 로컬에서 텍스트를 생성합니다. 이는 임베디드 AI 기능의 비약적인 발전을 보여주며, 클라우드 인프라 없이도 최소한의 하드웨어에서 강력한 언어 처리가 가능함을 입증했습니다.

이번 성과는 마이크로컨트롤러의 가능성을 극적으로 재정의합니다. 이전까지 이러한 칩에서 성공적으로 배포된 최대 언어 모델은 약 26만 개의 파라미터 수준이었습니다. Slava S.의 혁신은 이를 무려 110배나 확장하여 온디바이스 AI의 지형을 근본적으로 바꾸었으며, 심각한 크기 제한이 항상 극복 불가능한 것은 아님을 증명했습니다.

ESP32-S3의 기본 사양을 고려하면 이 성과는 더욱 놀랍습니다. 이 칩은 1990년대 일반적인 개인용 컴퓨터보다도 적은 512KB의 SRAM만을 제공합니다. 이러한 심각한 제약에도 불구하고 시스템은 초당 9토큰의 준수한 속도로 텍스트를 생성합니다. 이는 정교한 엔지니어링을 통해 하드웨어의 한계를 극복하고 초저전력, 오프라인 환경에서도 정교한 AI 추론을 가능하게 할 수 있음을 보여줍니다.

메모리 해킹: RAM이 아닌 Flash 활용

우크라이나 개발자 Slava S.는 Google의 Gemma 모델에서 영감을 받은 영리한 우회 방법을 활용했습니다. '레이어별 임베딩(per-layer embeddings)'이라 불리는 이 기술은 대규모 언어 모델의 파라미터 작동 방식을 재해석합니다. 핵심 통찰은 LLM 파라미터의 대부분이 실시간 계산에 활발히 참여하는 것이 아니라, 단어 표현을 담은 거대한 사전인 정적 조회 테이블에 존재한다는 점을 인식하는 것입니다.

이러한 근본적인 구분은 급진적인 메모리 전략을 가능하게 합니다. 전체 모델을 ESP32-S3의 미세한 512KB 고속 SRAM에 억지로 넣으려 하는 대신, 약 15MB에 달하는 2,500만 행의 거대한 임베딩 테이블을 전략적으로 재배치했습니다. 이 테이블은 칩의 훨씬 크지만 속도가 느린 16MB의 저렴한 Flash 메모리에 저장됩니다.

추론 과정에서 시스템은 현재 토큰에 반드시 필요한 몇 개의 임베딩 행만 동적으로 가져옵니다. 예를 들어, 약 450바이트에 불과한 6개의 행만 Flash 메모리에서 SRAM으로 불러옵니다. 이 독창적인 접근 방식 덕분에 제한된 고속 SRAM은 모델의 실제 계산 작업인 어텐션 헤드와 피드포워드 레이어가 다음 토큰을 처리하고 생성하는 데 주로 사용될 수 있게 됩니다.

현실 점검: 이것은 ChatGPT가 아닙니다

Slava S.의 성과는 획기적이지만 범용 대규모 언어 모델을 만들어낸 것은 아닙니다. 이 2,890만 파라미터 모델은 Microsoft의 TinyStories 데이터셋으로만 학습되었습니다. 이 큐레이션된 컬렉션은 수백만 개의 파라미터만 가진 작은 모델이라도 더 넓은 데이터셋에서 기대할 수 있는 일반적인 횡설수설 없이 일관된 텍스트 생성을 학습할 수 있도록 특별히 설계된 단순하고 일관된 이야기들로 구성되어 있습니다.

상호작용 중에 상당한 한계가 나타납니다. 이 모델은 사용자의 초기 프롬프트와 관계없이 일관되게 어린 소녀에 관한 특정 이야기로 되돌아갑니다. 예를 들어, "로봇에 관한 이야기"나 "Star Wars" 테마의 시작 문구와 같은 입력을 넣어도 몇 문장 뒤에는 금방 이 기본 서사로 방향이 바뀌며, 이는 매우 좁은 이해도와 새로운 대화 흐름을 유지할 수 없는 능력을 보여줍니다. 이러한 동작은 모델의 제한된 학습 패턴을 강조합니다.

게다가 동적인 상호작용은 불가능합니다. 프롬프트를 조정하려면 ESP32-S3 마이크로컨트롤러의 완전한 reflash가 필요하며, 이 과정에서 장치의 메모리가 덮어쓰여집니다. 시스템은 한 번에 하나의 미리 구워진 프롬프트만 실행할 수 있으므로, 범용적인 텍스트 생성을 위한 다재다능하고 동적인 도구라기보다는 흥미롭지만 제약이 많은 개념 증명(proof of concept)에 가깝습니다. 기본 코드와 방법론을 탐구하는 데 관심이 있는 분들은 프로젝트의 GitHub 저장소를 참조하십시오: Running a 28.9M parameter LLM on an $8 microcontroller - GitHub.

이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.

하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음

Karpathy 청사진: 구축 방법

이 인상적인 프로젝트는 Andrej Karpathy의 기념비적인 'llama2.c' 연구를 직접적으로 기반으로 합니다. Karpathy는 Python이나 복잡한 종속성 없이 순수하고 이식 가능한 C 코드로 효율적인 LLM(거대 언어 모델) 추론이 가능하다는 것을 입증했습니다. 그의 청사진은 LLM이 최소한의 시스템에서도 실행될 수 있음을 증명했으며, 이는 이 ESP32-S3 구현의 기초적인 통찰력이자 전체 개념을 가능하게 했습니다.

이 저비용 LLM을 복제하려면 성공을 위해 타협할 수 없는 특정 하드웨어가 필요합니다. 넉넉한 메모리 구성 때문에 선택된 ESP32-S3 N16R8 변형이 필수적입니다. 이 특정 모델은 16MB의 flash와 8MB의 PSRAM을 특징으로 합니다. 학습된 15MB 모델 파일 자체가 이 더 큰 flash 용량을 결정적으로 요구하므로, 일반적인 4MB 또는 8MB 버전과 같이 16MB 미만의 flash를 가진 보드에는 전체 모델을 저장할 수 없습니다.

Slava S.의 원본 GitHub 저장소에는 구현 세부 사항과 기본 메커니즘을 탐구하려는 사람들을 위한 모든 필요한 코드가 있습니다. 배포를 위한 더 직접적인 경로를 위해, 영상 제작자는 설정을 크게 간소화하는 one-shot script를 제공합니다. 이 포괄적인 스크립트는 전체 빌드 과정을 자동화하여 툴체인 설치, 데이터 준비, TinyStories 데이터셋에 대한 모델 학습, 그리고 마지막으로 컴파일된 모델을 ESP32-S3에 플래싱하는 작업을 처리합니다.

자주 묻는 질문

28.9M 파라미터 LLM이 어떻게 512KB SRAM만 있는 마이크로컨트롤러에 들어갈 수 있나요?

이 모델은 가장 큰 부분인 25M 파라미터 임베딩 테이블을 칩의 더 크고 느린 16MB flash 메모리에 저장하는 메모리 해킹을 사용합니다. 작은 연산 부분과 현재 토큰에 필요한 특정 임베딩 행만 빠른 512KB SRAM으로 로드됩니다.

이 프로젝트를 복제하려면 어떤 특정 하드웨어가 필요한가요?

최소 16MB의 flash 메모리와 8MB의 PSRAM이 있는 ESP32-S3 마이크로컨트롤러 변형이 필요합니다. 이는 일반적으로 N16R8 변형으로 알려져 있습니다.

ESP32에서 실행되는 LLM의 한계는 무엇인가요?

TinyStories 데이터셋으로 학습된 매우 단순한 모델이기 때문에 간단한 서사만 생성할 수 있으며 복잡한 작업은 수행할 수 없습니다. 또한 기본 이야기로 되돌아가는 경향이 있으며 초기 프롬프트를 변경하려면 전체 칩을 다시 플래싱해야 합니다.

어떤 오픈 소스 프로젝트가 이를 가능하게 했나요?

개발자 Slava S.가 만든 이 프로젝트는 일반 C 언어로 LLM 추론을 실행하는 것을 보여준 Andrej Karpathy의 llama2.c 프로젝트를 기반으로 합니다. 모델 자체는 Microsoft Research에서 개발한 TinyStories 데이터셋으로 학습되었습니다.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only