executorch: 모바일 및 임베디드 하드웨어에 PyTorch 모델을 배포하기 위한 통합 온디바이스 AI 추론 엔진
executorch: 모바일 및 임베디드 하드웨어에 PyTorch 모델을 배포하기 위한 통합 온디바이스 AI 추론 엔진
해결하는 문제
ExecuTorch는 스마트폰부터 마이크로컨트롤러에 이르기까지 온디바이스에서 PyTorch AI 모델을 배포하는 통합된 방법을 제공합니다. 이는 수동 C++ 재작성, 중간 형식 변환(ONNX 또는 TFLite와 같은), 그리고 벤더 종속성 문제를 제거하여 개발자가 동일한 PyTorch API를 사용하여 연구에서 프로덕션으로 이동할 수 있도록 합니다.
작동 방식
ExecuTorch는 에지(edge)를 위해 모델을 준비하기 위해 AOT(ahead-of-time) 컴파일을 사용합니다. 프로세스는 세 가지 주요 단계로 구성됩니다:
- Export: PyTorch 모델 그래프는
torch.export()를 사용하여 캡처됩니다. - Compile: 모델은 양자화되고, 최적화되며, 특정 하드웨어 백엔드로 분할되어
.pte파일이 생성됩니다. - Execute: 경량 C++ 런타임(기본 풋프린트 50KB)이 디바이스에서
.pte파일을 로드하고 실행합니다.
표준화된 Core ATen 연산자 세트와 파티셔너를 사용하여 NPU 또는 GPU와 같은 특수 하드웨어에 서브그래프를 위임하고, CPU 폴백(fallback)을 지원합니다.
대상 사용자
다양한 하드웨어 백엔드(Apple, Qualcomm, ARM, MediaTek 등)를 통해 모바일 기기(Android/iOS) 및 임베디드 시스템(Linux/Windows/MCU)에 LLM, 비전, 음성 및 멀티모달 모델을 배포해야 하는 AI 개발자 및 엔지니어.
주요 특징
- Native PyTorch Export: 중간 형식 없이 PyTorch에서 직접 내보내기.
- Tiny Runtime: 극도의 이식성을 위한 최소 50KB 기본 풋프린트.
- Broad Hardware Support: CoreML, Vulkan, XNNPACK을 포함한 12개 이상의 오픈 소스 가속 백엔드.
- Production-Proven: Meta의 Instagram, WhatsApp, Quest 3의 온디바이스 AI를 구동합니다.
- Advanced Deployment Tools: 양자화(torchao를 통해), 메모리 계획, 동적 형상(dynamic shapes)에 대한 내장 지원.
Sources
- undefinedpytorch/executorch