1300만 파라미터 ASR Conformer 모델을 마이크로컨트롤러에서 구동하기
Running a 13M ASR conformer on a microcontroller
핵심 요약
10달러 미만의 ESP32-S3 마이크로컨트롤러에서 1300만 파라미터 ASR 모델을 구동하는 프로젝트를 공유합니다.
- 하드웨어 최적화 — 10달러 미만 ESP32-S3 보드에서 1300만 파라미터 모델 구동함
- 모델 경량화 — NVIDIA의 소형 Conformer 모델을 증류 및 양자화하여 이식함
- 성능 한계 — 실시간 처리는 어렵지만 초기 시도 대비 비약적인 속도 향상을 달성함
- 연구 방향성 — 거대 모델 경쟁보다 효율적인 모델 연구의 중요성을 강조함
안녕하세요 여러분, 최근 제 프로젝트를 공유하고 싶습니다. 1310만 파라미터의 컨볼루션 트랜스포머 모델을 10달러 미만의 마이크로컨트롤러(구체적으로는 ESP32-S3)에서 구동하는 프로젝트입니다. Huggingface에 있는 NVIDIA의 소형 Conformer 모델을 증류하고 양자화한 버전입니다.
양자화 덕분에 이 모델은 14MB의 플래시 메모리에 들어갈 수 있게 되었고, 8초 분량의 오디오를 전사하기 위해 256KB의 SRAM과 4MB의 PSRAM을 사용합니다.
속도는 여전히 고통스러울 정도로 느립니다. 하지만 5초 분량의 오디오를 전사하는 데 추론 시간만 10분이 걸렸던 제 초기 시도와 비교하면 엄청나게 빠른 편입니다.
Whisper Tiny 모델도 시도해 봤지만, 5초 오디오에 50분 이상이 걸려서 더 이상 최적화할 엄두를 내지 못했습니다.
이 마이크로컨트롤러는 8비트 연산을 위한 하드웨어 가속을 지원해서, 이 플랫폼에서 ML을 하는 게 아주 절망적인 것만은 아닙니다. 증류 및 양자화 과정에서 Huggingface ASR 벤치마크 데이터셋 기준 단어 오류율(WER)이 약 3% 증가했습니다(전체 평가 결과는 github의 리드미를 참조하세요).
수많은 파라미터를 희생하면서 벤치마크 1위를 차지하는 것보다 LLM 효율성에 대한 연구가 더 많았으면 좋겠습니다. 저렴한 하드웨어에서 모델을 돌릴 수 있어야 이 취미가 계속 접근 가능하게 유지될 테니까요.


