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를 구동하고 있습니다.
작동 방식
- 내보내기 –
torch.export()로 모델 그래프를 캡처합니다. - 컴파일 – 양자화, 최적화를 적용하고 그래프를 하드웨어별 하위 그래프로 분할하여
.pte파일을 생성합니다. - 실행 – 경량 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 |
자료
- 전체 문서: https://docs.pytorch.org/executorch/main/index.html
examples/폴더에 Llama, Qwen, Phi-4, Llava, Whisper, YOLO 등 다양한 예제 모델 포함- 커뮤니티: Discord, GitHub Discussions, Issues, BSD 스타일 라이선스.
결론 – 이미 PyTorch로 모델을 개발하고 있으며, 코드를 재작성하거나 프로퍼라이어터 포맷을 다루지 않고도 에지 디바이스에 배포하고 싶다면, ExecuTorch는 연구에서 디바이스 배포까지 통합적이고 프로덕션 수준의 경로를 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트