AI VIDEO BRIEFING
ExecuTorch 마이크로컨트롤러 배포: 50KB 런타임과 int8 양자화로 밀리와트 AI를 굴리는 법
생성형 AI에 가려졌던 타이니ML이 다시 주목받고 있다. 메타 엔지니어들이 파이토치 콘퍼런스에서 공개한 ExecuTorch의 마이크로컨트롤러 지원 현황과, 램이 10MB도 안 되는 기기에서 쓰는 실전 용량 절감 요령을 정리했다.

핵심 메시지
쉽게 이해하기
파이토치 콘퍼런스 라이트닝 토크에서 메타 ExecuTorch 팀의 RJ 애스카니와 리얼리티랩스의 마티아스 크레몽이 마이크로컨트롤러 위에서 파이토치 모델을 돌리는 이야기를 꺼냈다. ExecuTorch는 파이토치의 온디바이스 추론 프레임워크이며, 발표자들이 내세운 가치 제안은 '끝까지 파이토치 안에 머문다'는 것이다. 파이토치로 학습하고 torch.export 로 내보낸 뒤 ExecuTorch 도구로 컴파일·최적화해 파일 하나로 직렬화하면, 기기 위의 런타임이 그 파일로 추론한다. 프레임워크를 갈아타는 변환 단계가 없다는 뜻이다. 현재 XNNPACK, CUDA, 메탈, 벌컨 등 12개가 넘는 하드웨어 백엔드를 지원한다.
왜 하필 마이크로컨트롤러냐는 질문에 발표자는 타이니ML이 새 분야는 아니지만 생성형 AI에 관심이 쏠리면서 조명받지 못했다고 말한다. 그가 꼽은 세 가지 이유는 전력, 비용, 연결성이다. 마이크로컨트롤러는 밀리와트 수준의 전력 예산으로 상시 감지를 가능하게 해, 작은 배터리 하나로 몇 달에서 몇 년을 버티는 기기를 만든다. 휴대폰에서 애플리케이션 프로세서를 재운 채 호출어만 감지하는 상시 센서 허브가 대표적이다. 값싼 애플리케이션 프로세서조차 고성능 MCU보다 몇 배 비싸기 때문에, 원래는 지능을 넣을 여지가 없던 제품에도 넣을 수 있게 된다. 그리고 세계 상당 지역에는 안정적인 클라우드 접속이 없다.
대상 하드웨어는 크게 두 갈래다. 한쪽은 Arm 코어텍스-M 계열 프로세서와 케이던스 하이파이·비전 DSP 같은 임베디드의 주력이고, 다른 쪽은 마이크로컨트롤러급 가속기인 마이크로 NPU다. 후자는 휴대폰이나 노트북에 들어가는 것보다 훨씬 작고 MCU 옆에서 밀리와트 예산 안에 함께 붙어 동작하며, 현재 Arm 에토스-U 와 NXP 뉴트론을 지원한다. 이런 기기들의 공통 제약은 대개 램이 10MB 미만이고 연산 성능은 한 자릿수 GOPS에서 많아야 몇 TOPS라는 점이다.
이 제약을 감당하는 방식은 가능한 모든 일을 실행 전에 끝내 두는 것이다. torch.export 로 그래프를 뽑고, 엣지에서는 선택이 아닌 필수인 양자화를 torchao 도구로 적용하는데 그래프의 노드 하나하나까지 다른 양자화 방식과 파라미터를 지정할 수 있다. 이어 EXIR 이라 부르는 내부 표현 위에서 융합·분해·재배치 같은 최적화 패스를 돌려 백엔드에 맞게 그래프를 다듬는다. 런타임 쪽은 운영체제를 가리지 않고 50KB 미만이라는 조건을 지키며, 베어메탈이든 RTOS든 리눅스든 시스템 의존성 없이 돌아간다. malloc 도, 파일 시스템 접근도, 스레드도 쓰지 않고 필요한 할당자와 데이터 소스는 사용자가 넣어 준다. 메모리 배치도 전부 사전에 계획해, 밀결합 메모리와 온칩 SRAM, 때로는 외부 DRAM 중 어디에 어떤 활성화 텐서를 둘지 지정한다.
발표 후반은 실전 요령이다. int8 로 내리는 것만으로 모델 크기가 4분의 1이 되고 모든 MCU 백엔드가 이를 지원한다. 입출력까지 양자화하면 추론 경계에서 부동소수점 변환을 없앨 수 있는데, 하드웨어 부동소수점 유닛이 없는 저가 MCU에서는 이 변환 비용이 성능과 바이너리 크기 양쪽에서 무시할 수 없다. 선택적 연산 빌드를 켜면 모델 파일을 분석해 쓰지 않는 커널 코드를 걷어내고, 커널 레지스트리 크기를 기본값 2000에서 실제 필요한 수로 줄이면 20KB 넘게 아낄 수 있다. 로깅을 끄면 50KB, 프로그램 검증을 끄면 20KB가 더 줄지만 검증 해제는 모델을 펌웨어와 함께 묶어 같이 검증할 때만 권한다.
주요 인사이트
- 이 정도 기기에서 실제로 돌아가는 모델로 오디오 처리, 영상 처리, 분류 계열이 제시됐다. 플래시 사용량은 곧 모델 크기인데, 작은 기기에서는 수십 KB 수준이고 수백 KB까지 커지며 ResNet 이나 컨포머급이면 10MB 안팎이 된다.
- 상수 가중치 텐서를 플래시에서 복사 없이 곧바로 읽는 설계가 눈에 띈다. 시작할 때 버퍼를 잡고 램으로 가중치를 옮기는 과정이 통째로 사라지므로, 킬로바이트 단위로 다투는 환경에서 의미가 크다.
- 빌드가 커널 단위뿐 아니라 자료형 단위로도 선택적이다. 모델이 int8 만 쓴다면 FP32 커널 코드를 끌고 다니지 않아도 된다.
- 제퍼 RTOS 지원을 본체 저장소에 반영한 것이 중요한 이유는, 제퍼가 임베디드 업계의 사실상 표준 RTOS가 됐기 때문이다. 이제 제퍼 기반 프로젝트라면 웨스트 빌드 시스템의 외부 모듈로 ExecuTorch 를 가져다 쓸 수 있다.
- 발표자들은 Arm, NXP, 케이던스를 주요 파트너이자 실제 기여자로 언급했고, 리얼리티랩스는 레이밴 메타 안경의 실시간 통역 등 자사 기기에 ExecuTorch 를 쓰고 있다고 이미 공개했다고 덧붙였다.
자주 묻는 질문
ExecuTorch 는 기존 온디바이스 배포와 무엇이 다른가?
프레임워크를 갈아타는 변환 단계가 없다는 점이다. 파이토치로 학습한 모델을 torch.export 로 내보내고 ExecuTorch 도구로 컴파일·최적화해 파일 하나로 만들면 기기 위의 런타임이 그대로 실행한다. 같은 내보내기·컴파일 흐름으로 GPU부터 램이 수백 KB인 마이크로컨트롤러까지 겨냥할 수 있다.
마이크로컨트롤러에서 AI를 돌리는 실익은 무엇인가?
전력, 비용, 연결성 세 가지가 꼽혔다. 밀리와트 예산으로 상시 감지가 가능해 작은 배터리로 몇 달에서 몇 년을 버티고, 저가 애플리케이션 프로세서보다도 몇 배 저렴해 지능을 넣을 여지가 없던 제품에 넣을 수 있으며, 클라우드 접속이 불안정한 환경에서도 기기 안에서 완결된다.
용량을 줄이려면 무엇부터 손대야 하나?
int8 양자화가 우선이다. 그것만으로 모델 크기가 4분의 1이 되고 모든 MCU 백엔드가 지원한다. 이어 입출력까지 양자화해 추론 경계의 부동소수점 변환을 없애고, 선택적 연산 빌드로 쓰지 않는 커널을 걷어내며, 커널 레지스트리 크기를 실제 필요한 수로 줄이면 20KB 이상을 아낄 수 있다. 로깅을 끄면 50KB가 더 줄어든다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗