온디바이스 ML 프레임워크 리서치
작성일: 2026-05-15
담당: ml-framework-researcher
관련 스코프: _workspace/00_scope.md — 온디바이스 AI 식물 병 진단 기술 타당성
- 식물 이미지 분류(MobileNet/EfficientNet 계열 CNN)는 2026년 현재 주요 5개 프레임워크 모두 실용 수준으로 지원된다.
- 크로스플랫폼 단일 코드베이스가 필요하면 LiteRT(구 TensorFlow Lite) 또는 ONNX Runtime Mobile, iOS 단독 최고 성능이 목표이면 Core ML + Neural Engine, PyTorch 워크플로 유지라면 ExecuTorch 1.x가 권장된다.
- 이미지 분류(MobileNet급)의 추론 지연은 최신 플래그십에서 5-15ms, 보급형 기기에서 20-50ms 범위로, MVP 60FPS 카메라 피드 처리에 충분하다.
- INT8 양자화는 모델 크기 75% 절감, 정확도 손실 1% 미만(QAT 적용 시)이라는 합의된 결과가 있다.
- 추천: 첫 출시에는 LiteRT를 단일 백엔드로 채택해 iOS/Android 동시 지원, 추후 iOS에서 Core ML로 마이그레이션해 Neural Engine 가속을 활용하는 2단계 전략.
프레임워크 비교표
섹션 제목: “프레임워크 비교표”| 프레임워크 | iOS | Android | HW 가속 | 이미지분류 추론(MobileNetV3, 보급형~플래그십) | 모델 크기 제약 | 라이선스 | 활성도 |
|---|---|---|---|---|---|---|---|
| Core ML | 정식 | 미지원 | Neural Engine(ANE), GPU, CPU | 3-10ms (A17 Pro) / 8-25ms (A14) (추정) | 1GB+ 모델도 동작 | Apple 독점 SDK + coremltools BSD | iOS 17/18/19 매년 업데이트 |
| LiteRT (구 TFLite) | 정식 | 정식 | GPU delegate, NNAPI, Hexagon DSP, Core ML delegate(iOS) | 5-15ms / 20-50ms (보급형) (추정) | 100MB 권장 이하 | Apache 2.0 | 2024-09 LiteRT 리브랜드, 활발 |
| ExecuTorch 1.x | 정식 | 정식 | XNNPACK, Core ML, MPS, Vulkan, QNN, Arm VGF, Exynos NPU | 10-25ms / 25-60ms (추정, 1.0 GA 이후 개선 중) | 의존성 큼(런타임 binary) | BSD | 2025-10 1.0 GA, 활발 |
| MediaPipe (Google AI Edge) | 정식 | 정식 | LiteRT 백엔드 활용 → GPU/NPU/CPU | 5-20ms (LiteRT와 동일 수준) | Tasks API 기반 패키징 권장 | Apache 2.0 | 활발, Google AI Edge 통합 |
| ONNX Runtime Mobile | 정식 | 정식 | iOS: Core ML EP, XNNPACK / Android: NNAPI, XNNPACK, QNN | 8-20ms / 20-60ms (추정) | ORT 포맷 변환 필요 | MIT | Microsoft 주도, 활발 |
| (선택) NCNN | 정식 | 정식 | Vulkan GPU, CPU | NCNN+Vulkan은 일부 SoC에서 가변적 | 매우 가벼움(<10MB 런타임) | BSD-3 (Tencent) | 활발 |
| (선택) MNN | 정식 | 정식 | Vulkan, Metal, OpenCL, OpenGL, CUDA, NNAPI | 다양한 SoC에서 일관된 성능 | 가벼움 | Apache 2.0 (Alibaba) | 활발, LLM 지원 추가 |
지연 시간은 공식 벤치마크 부재로 학술/업계 보고서 기반 추정치. 실측은 mobile-hw-researcher와 협업 권장.
각 프레임워크 상세
섹션 제목: “각 프레임워크 상세”1. Core ML (Apple)
섹션 제목: “1. Core ML (Apple)”플랫폼: iOS 11+, iPadOS, macOS, watchOS, tvOS, visionOS (Apple 생태계 전용).
하드웨어 가속:
- Neural Engine(ANE), GPU(Metal), CPU 세 가지 컴퓨트 유닛에 자동 분배.
- iPhone 15 Pro / A17 Pro 이후 int8-int8 연산 처리량이 크게 늘어나, 가중치+활성 양자화 모델에서 추가 지연 개선.
- Vision 프레임워크와 결합하면
VNCoreMLRequest로 카메라 프레임을 직접 입력 가능 → 실시간 카메라 파이프라인에 최적.
모델 변환 도구 (coremltools 8.x):
- 4-bit 가중치 양자화, 3-bit/6-bit 팔레타이제이션 지원 (iOS 18/macOS 15 신규).
- 벡터 팔레타이제이션, 채널별 스케일, blockwise quantization, joint compression(INT8 + 팔레트) 지원.
- 활성 양자화(experimental) API 추가,
torchao양자화 모델 import 지원.
식물 병 진단 관점:
- YOLO11을 Core ML로 변환 시 21FPS → 85FPS로 4배 가속(PyTorch on-device 대비) 사례 존재. MobileNet/EfficientNet 류 분류 모델은 더 단순해 추가 여유.
- Vision 프레임워크의
VNGenerateImageFeaturePrintRequest등 사전 처리 파이프라인을 그대로 활용 가능.
제약:
- iOS 전용 → Android 동시 지원 시 다른 프레임워크 별도 필요.
- mlmodel/mlpackage 포맷이 Apple 종속 → 다른 플랫폼 이식 불가.
라이선스: Core ML SDK는 Apple Developer 라이선스 하 무료 사용, coremltools는 BSD.
출처: Apple Core ML Overview, coremltools Performance, coremltools What’s New, Roboflow Core ML 변환 사례
2. LiteRT (구 TensorFlow Lite)
섹션 제목: “2. LiteRT (구 TensorFlow Lite)”리브랜드: 2024-09-04 Google이 TFLite를 LiteRT로 리브랜드. .tflite 포맷·기존 API는 그대로 유지(하위 호환 보장). Google AI Edge 스위트의 핵심 런타임.
플랫폼: Android, iOS, Linux, Windows, macOS, 임베디드(MCU), 웹(LiteRT.js).
하드웨어 가속 (delegate API):
- Android: GPU delegate(OpenCL/OpenGL ES), NNAPI delegate(NPU/DSP/GPU 자동 선택), Hexagon delegate(Qualcomm DSP, 전력 75% 절감 보고), QNN delegate(Qualcomm AI Engine).
- iOS: Core ML delegate(ANE 활용), Metal GPU delegate.
- 신규: LiteRT Compiled Model API — 자동 가속기 선택, 비동기 실행, I/O 버퍼 최적화.
- 2025년 MediaTek 칩셋에 대한 NPU 가속 확장, Qualcomm NPU GenAI 가속 강화.
모델 호환성:
- 원래 TensorFlow/Keras 출발이지만, PyTorch, JAX 모델도 변환 가능(ai-edge-torch 등). PyTorch → tflite 컨버터가 안정화.
성능 (대표적 보고):
- GPU delegate 적용 시 신경망 추론 최대 5배 지연 개선.
- Hexagon delegate 적용 시 전력 소비 최대 75% 절감.
- INT8 양자화 시 대부분 연산이 가속되나, padding/element-wise는 양자화로 오히려 손해 → 모델 설계 시 유의.
식물 병 진단 관점:
- PlantVillage 학습 MobileNetV3/EfficientNet 모델은 TFLite 변환 사례 다수, 보급형 안드로이드(Snapdragon 6 시리즈)에서도 30-50ms 안에 추론 가능 추정.
- 크로스플랫폼 단일 코드베이스 가능 → 개발 비용 절감.
라이선스: Apache 2.0.
활성도: Google AI Edge 일환으로 매우 활발. GitHub 별도 리포 google-ai-edge/LiteRT.
출처: LiteRT High-Performance On-Device ML, TFLite → LiteRT 리브랜드 공지, LiteRT Delegates Guide, GPU acceleration delegate, Hexagon delegate blog
3. ExecuTorch (PyTorch 진영 후속작)
섹션 제목: “3. ExecuTorch (PyTorch 진영 후속작)”위치: PyTorch Mobile은 공식 지원 종료(deprecated). 후속작 ExecuTorch가 PyTorch 표준 온디바이스 런타임.
릴리즈 타임라인:
- 2024-10 Beta 발표.
- 2025-10 ExecuTorch 1.0 GA — CPU/GPU/NPU 광범위 지원, 프로덕션 안정성.
- 최신 v1.2.0(2025-말) — 실시간 음성 추론, Cortex-M 1st-class, 백엔드 개선, 바이너리 크기 축소.
플랫폼: iOS, Android, 임베디드/MCU, Linux, macOS.
백엔드(Backend, 가속기 통합):
- iOS: Core ML, MPS(Metal Performance Shaders), XNNPACK.
- Android: XNNPACK, Vulkan, QNN(Qualcomm), MediaTek, Samsung Exynos NPU/GPU.
- 신규 추가(1.0): Arm VGF, NXP eIQ Neutron NPU, Samsung Exynos NPU/GPU, OpenVINO(Intel).
프로덕션 사용 사례:
- Meta 자사 앱(Facebook, Instagram, WhatsApp, Messenger)에 ExecuTorch가 온디바이스 추론 엔진으로 전면 도입됨 → 프로덕션 검증 완료.
모델 호환성:
- PyTorch 그래프(torch.export) 기반. 학습 코드와 동일한 PyTorch 워크플로 유지 가능.
- 모델 변환 단계가 LiteRT/CoreML 대비 1단계 적음(PyTorch → torch.export → ExecuTorch program).
식물 병 진단 관점:
- PyTorch에서 학습한 EfficientNet-B0/B1 모델을 변환 없이(또는 최소 변환으로) 그대로 배포 가능 → 연구-프로덕션 갭 최소.
- 1.0 직후 성숙도. LiteRT/CoreML 대비 보급형 디바이스 실측 데이터가 부족 → 실측 필요.
라이선스: BSD.
활성도: 2025-말 1.0/1.2 연속 릴리즈, Meta 사내 프로덕션. 매우 활발.
출처: Introducing ExecuTorch 1.0 (PyTorch Blog), executorch.ai, ExecuTorch GitHub, Meta Engineering: ExecuTorch on-device ML, Releases
4. MediaPipe (Google AI Edge)
섹션 제목: “4. MediaPipe (Google AI Edge)”위치: Google AI Edge 산하 솔루션/파이프라인 레이어. 내부 추론 엔진은 LiteRT. 즉, “LiteRT + 카메라/그래프 파이프라인 + 사전·후처리 calculator” 묶음.
플랫폼: Android, iOS, Linux, Windows, macOS, Web(JS).
아키텍처: 그래프 기반 파이프라인(calculator). 각 calculator가 전처리/추론/후처리 같은 단일 책임을 가지고 데이터가 흐른다. 카메라 프레임 → 전처리 → 추론 → 시각화를 한 그래프로 묶을 수 있어 실시간 비디오 처리가 강점.
즉시 사용 가능한 솔루션 (MediaPipe Tasks):
- Image Classification, Object Detection, Image Segmentation, Hand/Pose Landmark, Face Detection 등.
- 자체 분류 모델(예: 식물 병 진단)도 Image Classifier Task에 plug-in 가능 —
.tflite모델만 교체하면 카메라 파이프라인 무료.
식물 병 진단 관점:
- 카메라 캡처-추론-결과 시각화까지 보일러플레이트가 거의 없어 MVP 개발 속도 가장 빠름.
- Android/iOS 모두 동일 API. ML 코드는 LiteRT 동일 성능.
- 단, 모델 자체 최적화는 LiteRT 레벨에서 별도로 수행해야 함.
라이선스: Apache 2.0.
활성도: 2025년 현재 Google AI Edge 핵심 SDK. GitHub google-ai-edge/mediapipe.
출처: MediaPipe Solutions Guide, MediaPipe GitHub, LearnOpenCV intro
5. ONNX Runtime Mobile
섹션 제목: “5. ONNX Runtime Mobile”플랫폼: iOS, Android, Linux, Windows, Web(ORT Web), MAUI/Xamarin.
Execution Provider (EP):
- Android: NNAPI EP(Android 8.1+, 9.0+ 권장), XNNPACK EP, QNN EP(Qualcomm), ArmNN.
- iOS: Core ML EP, XNNPACK EP.
모델 포맷:
- 표준 ONNX 모델 사용. 더 가벼운 추론용 ORT 포맷(
.ort)으로 변환 권장 — 바이너리 크기·메모리 절감. - PyTorch/TensorFlow/Keras/scikit-learn 등 거의 모든 학습 프레임워크에서 ONNX export 가능 → 가장 폭넓은 모델 호환성.
성능 가이드 (공식):
- 양자화 모델 → CPU EP 우선, 그 다음 NNAPI/Core ML EP 검토.
- 부동소수점 모델 → XNNPACK 우선.
- 모델이 EP 지원 op로만 구성되도록 조정해야 partition으로 인한 성능 저하 회피.
식물 병 진단 관점:
- 데이터 사이언스 팀이 PyTorch에서 학습 후 ONNX export → 모바일 단일 배포 가능.
- iOS·Android 모두 단일 모델 파일/단일 코드 경로로 처리 가능(EP만 다르게 설정).
제약:
- 같은 모델이 모든 EP에서 동일 속도를 내지는 않음. 특히 NNAPI는 Android 버전·SoC에 따라 fragmentation 큼 → mobile-hw-researcher와 실측 결과 공유 필요.
라이선스: MIT.
활성도: Microsoft가 메인, 매우 활발. Hugging Face Optimum과 통합도 잘 됨.
출처: ONNX Runtime Mobile Tutorials, NNAPI Execution Provider, Execution Providers, Mobile Performance Tuning
6. (선택) NCNN, MNN
섹션 제목: “6. (선택) NCNN, MNN”NCNN (Tencent):
- C++ 헤더-온리, 런타임 매우 가벼움(<10MB), 의존성 없음.
- Vulkan GPU 백엔드 지원. SqueezeNet v1.1 기준 Snapdragon 865에서 13.91ms 측정(MNN 대비 18% 빠름)이라는 보고. 단 모델별 정확도 손실(7-13%)이 비교적 큼.
- 라이선스: BSD-3.
MNN (Alibaba):
- Vulkan, Metal, OpenCL, OpenGL, CUDA, NNAPI 등 폭넓은 백엔드. 다양한 SoC에서 일관된 성능이 강점.
- 최근 온디바이스 LLM 지원 추가.
- 라이선스: Apache 2.0.
의의: 두 프레임워크 모두 중국 제조사 디바이스(Xiaomi, Huawei, Vivo, Oppo) 환경 검증이 잘 되어 있음. 글로벌 시장에선 LiteRT/Core ML이 표준이지만, 보급형 안드로이드의 성능 최적화 옵션으로 가치 있음. 단, Hexagon/QNN 같은 최신 가속기는 LiteRT/ONNX보다 통합 속도가 늦을 수 있음.
출처: A Comprehensive Benchmark of DL Libs on Mobile (arxiv 2202.06512), MNN paper (arxiv 2002.12418), MNN GitHub
모델 최적화 기법
섹션 제목: “모델 최적화 기법”식물 병 진단 모델(MobileNetV3/EfficientNet 기반, 입력 224x224, 클래스 30-100개 가정)을 가정하고 정리.
Quantization (양자화)
섹션 제목: “Quantization (양자화)”| 기법 | 모델 크기 절감 | 정확도 영향 | 적용 비용 |
|---|---|---|---|
| PTQ INT8 (per-tensor) | ~75% | MobileNet/EfficientNet에서 손실 큼 — per-channel 권장 | 매우 낮음(보정 데이터셋만 필요) |
| PTQ INT8 (per-channel) | ~75% | 통상 <1% Top-1 손실 | 낮음 |
| QAT INT8 | ~75% | 손실 거의 없음(0~0.3% 수준) | 높음(재학습) |
| 4-bit weight only (Core ML/LLM 류) | ~87% | 분류 CNN에선 검증 부족, LLM에 주로 사용 | 중간 |
| Mixed precision (INT8 + FP16) | 50-70% | EfficientNet에 특히 유리 | 중간 |
핵심 권고:
- MobileNetV3·EfficientNet은 per-channel quantization이 거의 필수(per-tensor PTQ는 batch norm fold와 결합해 정확도 손실 큼).
- 정확도 99%대를 유지하려면 QAT 채택, MVP에선 PTQ per-channel로 시작.
출처: Edge AI Vision: CNN Quantization Analysis, arxiv 2004.09602 Integer Quantization, Syllepsis: Testing Quantization 2025
Pruning (가지치기)
섹션 제목: “Pruning (가지치기)”- Structured pruning (채널 단위) 권장: 실제 하드웨어에서 속도 이득.
- Unstructured pruning (가중치 단위)은 메모리만 줄고 일반 모바일 가속기에선 속도 이득 없음.
- 보통 50-70% sparsity까지 fine-tuning과 함께 적용해도 정확도 회복 가능.
Knowledge Distillation (지식 증류)
섹션 제목: “Knowledge Distillation (지식 증류)”- 큰 teacher 모델(예: EfficientNet-B3, 99.97% 정확도)에서 작은 student 모델(MobileNetV3-Small)로 지식 전이.
- 작은 모델이 단독 학습보다 1-3% 더 높은 정확도 달성 가능.
통합 파이프라인 (2025 권고 순서)
섹션 제목: “통합 파이프라인 (2025 권고 순서)”1) 큰 모델 학습 → 99%대 정확도 확보 (teacher)2) Structured Pruning (sparsity 50-70%) → fine-tuning3) Knowledge Distillation from teacher → student4) Quantization-Aware Training INT8 (per-channel)5) 프레임워크별 변환 (TFLite/Core ML/ExecuTorch)6) On-device 벤치마크 (mobile-hw-researcher 협업)이 순서가 2025년 학술/업계 합의(예: Cluster-Quantized Knowledge Distillation, Prune-Quantize-Distill 파이프라인)에 부합.
출처: Frontiers: Model compression survey 2025, CQKD Wiley 2025, Createbytes Model Compression 2025 Guide
식물 병 진단 태스크 추천
섹션 제목: “식물 병 진단 태스크 추천”권장 1순위: LiteRT 단일 백엔드 (MVP)
섹션 제목: “권장 1순위: LiteRT 단일 백엔드 (MVP)”이유:
- iOS/Android 동시 지원, 단일
.tflite파일. - iOS에서는 Core ML delegate 활용해 ANE 가속 가능 → “iOS=Core ML 정도, Android=NNAPI” 수준의 hybrid 가속.
- MediaPipe Image Classifier Task를 그대로 사용하면 카메라 파이프라인 코드 거의 없이 데모 가능.
- Apache 2.0 라이선스, 가장 큰 커뮤니티/벤치마크 자료.
모델: MobileNetV3-Large 또는 EfficientNet-B0, INT8 PTQ per-channel, 모델 크기 5-10MB 예상.
권장 2순위: ExecuTorch 1.x (PyTorch 워크플로가 이미 있을 때)
섹션 제목: “권장 2순위: ExecuTorch 1.x (PyTorch 워크플로가 이미 있을 때)”이유:
- PyTorch에서 학습 후 변환 1단계로 끝.
- 2025-10 1.0 GA + Meta 자사 앱 프로덕션 검증.
- iOS는 Core ML 백엔드, Android는 XNNPACK/QNN.
리스크: LiteRT 대비 실측 데이터 부족, 보급형 안드로이드(Snapdragon 6 시리즈, Helio G) 검증 필요.
iOS 전용 최적화: Core ML
섹션 제목: “iOS 전용 최적화: Core ML”언제 도입:
- iOS 사용자 비중이 높고 ANE 활용으로 발열/배터리 추가 개선이 필요할 때.
- 이미 LiteRT로 MVP 출시 후 iOS 전용 네이티브 구현 단계.
비권장: PyTorch Mobile (deprecated), 순수 NCNN/MNN
섹션 제목: “비권장: PyTorch Mobile (deprecated), 순수 NCNN/MNN”- PyTorch Mobile은 공식 비활성, ExecuTorch로 마이그레이션 권장.
- NCNN/MNN은 일부 SoC에서 빠르지만 정확도 보존이 변환 도구·모델별로 들쭉날쭉. 글로벌 시장 표준이 아님.
정확도 vs 모델 크기 vs 추론 속도 권장 조합
섹션 제목: “정확도 vs 모델 크기 vs 추론 속도 권장 조합”| 우선순위 | 모델 | 양자화 | 예상 크기 | 예상 정확도 (PlantVillage 기준) | 예상 지연 (플래그십 / 보급형) |
|---|---|---|---|---|---|
| 정확도 우선 | EfficientNet-B0 | INT8 QAT | ~6MB | 99% 이상 | 8-15ms / 25-50ms |
| 균형 | MobileNetV3-Large | INT8 PTQ per-channel | ~5MB | 98-99% | 5-12ms / 20-40ms |
| 속도/배터리 우선 | MobileNetV3-Small | INT8 PTQ per-channel | ~3MB | 96-98% | 3-8ms / 12-25ms |
예상 지연은 LiteRT GPU/NNAPI 가속 기준 추정. 실측은 mobile-hw-researcher와 협업 권장.
중요 주의: 위 정확도는 PlantVillage 등 통제된 데이터셋 기준. 실제 가정 환경 카메라 입력에서는 정확도가 40%대까지 떨어질 수 있다는 연구 결과 존재 — 데이터셋 다양화·도메인 적응이 plant-ai-researcher의 핵심 과제.
프레임워크-하드웨어 조합 핵심 발견 (mobile-hw-researcher 공유용)
섹션 제목: “프레임워크-하드웨어 조합 핵심 발견 (mobile-hw-researcher 공유용)”다음 항목을 mobile-hw-researcher와 교차 검증 권장:
- Apple ANE int8 가속: A17 Pro 이후 int8-int8 처리량이 크게 증가. 보급형 iPhone(SE 시리즈, A14 이하)에서는 fp16 ANE가 더 안정적일 수 있음.
- Android NNAPI fragmentation: Android 9.0+ 권장, OEM/SoC별 NNAPI 동작 상이. 보급형 MediaTek/Unisoc 디바이스에서는 NNAPI delegate가 오히려 CPU보다 느린 경우 보고됨.
- Qualcomm Hexagon DSP: 전력 75% 절감 보고. 식물 병 진단처럼 카메라 연속 처리 시 배터리 영향이 크기에 우선 검토 가치.
- GPU delegate 트레이드오프: GPU는 모델 로드 시간이 큼(첫 추론 100-500ms). 사용자 진입 직후 첫 추론이 느릴 수 있음 → warm-up 필요.
- 카메라 프레임 처리: 60FPS=16ms/frame. 추론이 10ms 이내라야 메인스레드 막힘 없음. 실제로는 추론을 백그라운드 스레드로 위임 + 카메라 프레임 드롭 정책 필요.
공식 문서
섹션 제목: “공식 문서”- Apple Core ML Overview — 2026-05 조회
- coremltools Guide — 양자화 성능, 2026-05 조회
- coremltools What’s New — iOS 18 신규 기능
- LiteRT 공식 — Google AI Edge
- LiteRT Migration — TFLite→LiteRT
- LiteRT Delegates — GPU/NNAPI/Hexagon
- GPU Acceleration Delegate
- Hexagon Delegate (TF Blog) — 전력 75% 절감
- MediaPipe Solutions Guide
- MediaPipe GitHub
- ExecuTorch 1.0 발표 (PyTorch Blog) — 2025-10
- ExecuTorch GitHub
- executorch.ai
- ONNX Runtime Mobile
- ONNX Runtime NNAPI EP
학술/벤치마크
섹션 제목: “학술/벤치마크”- arxiv 2202.06512 — Comprehensive Benchmark of DL Libraries on Mobile — NCNN/MNN/PyTorch Mobile/TFLite/Mace/SNPE 비교
- arxiv 2002.12418 — MNN paper — Alibaba MNN 아키텍처
- arxiv 2004.09602 — Integer Quantization for DL Inference
- Edge AI Vision: CNN Quantization Analysis
- Frontiers: Model Compression Survey 2025
- Cluster-Quantized KD (Wiley 2025)
- Createbytes: Model Compression 2025 Guide
식물 병 진단 모델 (참고)
섹션 제목: “식물 병 진단 모델 (참고)”- Nature Scientific Reports: Optimised MobileNet for plant leaf disease
- RTR_Lite_MobileNetV2 (Smart Ag Tech 2025) — 99.89% PlantVillage
- arxiv 2508.10817: Lightweight CNN Benchmark across 101 classes — EfficientNet-B1 94.7% 다중 작물
- PMC: Plant disease classification in the wild (ViT + MoE) — 실제 환경 일반화
- PMC: PlantVillage dataset 한계 — 99%→40% accuracy drop — 실환경 성능 저하