ExecuTorch Overview
<aside>
✨
ExecuTorch = Executing Pytorch on the Edge
Pytorch 모델을 온디바이스(on-device)로 추론(inference) 가능하게 만드는 배포 솔루션
</aside>
Why ExecuTorch?
- Executorch는 pyTorch이다 → export, quantization, core ATen Ops 지원
- 기존 pyTorch → Edge 복잡한 파이프라인을 단일화된 export → transform → execute 파이프라인으로 해결
Focus on..
- Portability → 넓은 범주의 디바이스에서 실행 가능한가?
- Productivity → 개발자가 빠르게 deploy 가능한가?
- Performance → 좋은 user experience를 제공할 수 있는가?
ExecuTorch Keywords
Quantization
- 모델을 더 가볍고 빠르게 만들기 위해 숫자의 정밀도를 낮추는 과정
- Pytorch에서 실행하는 3단계
- Eager mode quantization (사용자가 수동으로 추가) →
torch.quantization
- FX graph mode quantization (Torch FX를 이용해 자동으로 그래프 변환) →
torch.ao.quantization.quantize_fx
- Post-Training quantization / Quantization aware training (학습 중/후 양자화) →
prepare_fx, convert_fx, prepare_qat_fx
- Pytorch에서 양자화된 모델을 Executorch에서 추론용으로 실행
- Executorch에서 지원하는 quantized 연산
- XNNPACKPartitioner → CPU용 int8 연산
- QNNPartitioner → Qualcomm DSP용
- CoreMLPartitioner → Apple NPU용
Ahead-of-Time (AOT)
| 구분 |
Ahead-of-Time (AOT) |
Just-in-Time (JIT) |
| 컴파일 시점 |
미리 컴파일 → 모델 실행 전에 미리 변환 |
실행 시점에 컴파일 → 모델 실행 중에 동적으로 변환 |
| 장점 |
빠른 실행 속도, 모바일 배포 용이 |
유연성, 동적 구조 지원 |
| 단점 |
동적 모델에 부적합, 컴파일 시간 필요 |
런타임 오버헤드, 속도 느림 |
Executorch Core Functionalities