pytorch/executorch

On-device AI across mobile, embedded and edge for PyTorch

ExecuTorch – PyTorch 기반의 디바이스 내 AI 추론

무엇인가요 – ExecuTorch는 Meta가 개발한 오픈소스 런타임으로, 일반적인 PyTorch 모델을 torch.export()로 내보낸 후, 타겟 에지 디바이스용으로 사전에 컴파일하고, 초소형 C++/Python/Swift/Kotlin 런타임으로 실행할 수 있게 해줍니다. 스마트폰부터 마이크로컨트롤러까지, 개인정보 보호와 낮은 지연 시간을 갖춘 추론을 위한 설계입니다.

왜 중요한가요

  • 네이티브 PyTorch 워크플로우 – ONNX, TFLite 등으로 변환할 필요 없이 익숙한 PyTorch 생태계에서 작업 가능.
  • 극소형 풋프린트 – 기본 런타임은 약 50KB로, MCU에도 적합합니다.
  • 다양한 백엔드 지원.pte 파일 하나로 코드 한 줄만 바꾸면 12개 이상의 하드웨어 백엔드(XNNPACK, CoreML, Qualcomm QNN, Vulkan, ARM Ethos-U 등)에서 실행 가능.
  • 프로덕션 검증됨 – Meta의 Instagram, WhatsApp, Quest 3, Ray-Ban 스마트글래스 등에서 디바이스 내 AI를 구동하고 있습니다.

작동 방식

  1. 내보내기torch.export()로 모델 그래프를 캡처합니다.
  2. 컴파일 – 양자화, 최적화를 적용하고 그래프를 하드웨어별 하위 그래프로 분할하여 .pte 파일을 생성합니다.
  3. 실행 – 경량 ExecuTorch 런타임(파이썬 pybind, C++, Swift, Kotlin을 통해 이용 가능)으로 파일을 로드하고 추론을 실행합니다.

빠른 시작

pip install executorch
import torch
from executorch.exir import to_edge_transform_and_lower
from executorch.backends.xnnpack.partition.xnnpack_partitioner import XnnpackPartitioner

model = MyModel().eval()
example = (torch.randn(1,3,224,224),)
exported = torch.export.export(model, example)
program = to_edge_transform_and_lower(
    exported,
    partitioner=[XnnpackPartitioner()]
).to_executorch()
open('model.pte','wb').write(program.buffer)

README에 나와 있는 C++/Swift/Kotlin API로 디바이스에서 실행하거나, 파이썬 런타임으로 로컬에서 실행할 수 있습니다.

LLM 지원export_llm 스크립트 또는 HuggingFace의 Optimum-ExecuTorch 통합을 사용해 Llama 스타일 모델(예: Llama 3.2)을 내보내고 실행할 수 있습니다. 전용 LLM 러너 API는 텍스트 생성과 멀티모달 입력을 처리합니다.

주요 기능

  • torchao를 통한 내장 8비트/4비트 양자화
  • 메모리 계획 및 AOT 할당으로 RAM 사용량 최소화
  • 프로파일링 도구 (ETDump, ETRecord)
  • 선택적 오퍼레이터 제거로 바이너리 크기 축소
  • 사용자 정의 오퍼레이터 확장 및 동적 형태 지원

실행 가능한 플랫폼

플랫폼 백엔드
Android XNNPACK, Vulkan, Qualcomm, MediaTek, Samsung Exynos
iOS XNNPACK, CoreML (Neural Engine)
Linux/Windows XNNPACK, OpenVINO, CUDA (실험적)
macOS XNNPACK, Metal (실험적), MLX (실험적)
임베디드/MCU XNNPACK, ARM Ethos-U, NXP, Cadence DSP

자료

결론 – 이미 PyTorch로 모델을 개발하고 있으며, 코드를 재작성하거나 프로퍼라이어터 포맷을 다루지 않고도 에지 디바이스에 배포하고 싶다면, ExecuTorch는 연구에서 디바이스 배포까지 통합적이고 프로덕션 수준의 경로를 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트