콘텐츠로 이동

온디바이스 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단계 전략.

프레임워크iOSAndroidHW 가속이미지분류 추론(MobileNetV3, 보급형~플래그십)모델 크기 제약라이선스활성도
Core ML정식미지원Neural Engine(ANE), GPU, CPU3-10ms (A17 Pro) / 8-25ms (A14) (추정)1GB+ 모델도 동작Apple 독점 SDK + coremltools BSDiOS 17/18/19 매년 업데이트
LiteRT (구 TFLite)정식정식GPU delegate, NNAPI, Hexagon DSP, Core ML delegate(iOS)5-15ms / 20-50ms (보급형) (추정)100MB 권장 이하Apache 2.02024-09 LiteRT 리브랜드, 활발
ExecuTorch 1.x정식정식XNNPACK, Core ML, MPS, Vulkan, QNN, Arm VGF, Exynos NPU10-25ms / 25-60ms (추정, 1.0 GA 이후 개선 중)의존성 큼(런타임 binary)BSD2025-10 1.0 GA, 활발
MediaPipe (Google AI Edge)정식정식LiteRT 백엔드 활용 → GPU/NPU/CPU5-20ms (LiteRT와 동일 수준)Tasks API 기반 패키징 권장Apache 2.0활발, Google AI Edge 통합
ONNX Runtime Mobile정식정식iOS: Core ML EP, XNNPACK / Android: NNAPI, XNNPACK, QNN8-20ms / 20-60ms (추정)ORT 포맷 변환 필요MITMicrosoft 주도, 활발
(선택) NCNN정식정식Vulkan GPU, CPUNCNN+Vulkan은 일부 SoC에서 가변적매우 가벼움(<10MB 런타임)BSD-3 (Tencent)활발
(선택) MNN정식정식Vulkan, Metal, OpenCL, OpenGL, CUDA, NNAPI다양한 SoC에서 일관된 성능가벼움Apache 2.0 (Alibaba)활발, LLM 지원 추가

지연 시간은 공식 벤치마크 부재로 학술/업계 보고서 기반 추정치. 실측은 mobile-hw-researcher와 협업 권장.


플랫폼: 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 변환 사례


리브랜드: 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


위치: 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


위치: 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


플랫폼: 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


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개 가정)을 가정하고 정리.

기법모델 크기 절감정확도 영향적용 비용
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

  • Structured pruning (채널 단위) 권장: 실제 하드웨어에서 속도 이득.
  • Unstructured pruning (가중치 단위)은 메모리만 줄고 일반 모바일 가속기에선 속도 이득 없음.
  • 보통 50-70% sparsity까지 fine-tuning과 함께 적용해도 정확도 회복 가능.
  • 큰 teacher 모델(예: EfficientNet-B3, 99.97% 정확도)에서 작은 student 모델(MobileNetV3-Small)로 지식 전이.
  • 작은 모델이 단독 학습보다 1-3% 더 높은 정확도 달성 가능.

통합 파이프라인 (2025 권고 순서)

섹션 제목: “통합 파이프라인 (2025 권고 순서)”
1) 큰 모델 학습 → 99%대 정확도 확보 (teacher)
2) Structured Pruning (sparsity 50-70%) → fine-tuning
3) Knowledge Distillation from teacher → student
4) 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 사용자 비중이 높고 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-B0INT8 QAT~6MB99% 이상8-15ms / 25-50ms
균형MobileNetV3-LargeINT8 PTQ per-channel~5MB98-99%5-12ms / 20-40ms
속도/배터리 우선MobileNetV3-SmallINT8 PTQ per-channel~3MB96-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와 교차 검증 권장:

  1. Apple ANE int8 가속: A17 Pro 이후 int8-int8 처리량이 크게 증가. 보급형 iPhone(SE 시리즈, A14 이하)에서는 fp16 ANE가 더 안정적일 수 있음.
  2. Android NNAPI fragmentation: Android 9.0+ 권장, OEM/SoC별 NNAPI 동작 상이. 보급형 MediaTek/Unisoc 디바이스에서는 NNAPI delegate가 오히려 CPU보다 느린 경우 보고됨.
  3. Qualcomm Hexagon DSP: 전력 75% 절감 보고. 식물 병 진단처럼 카메라 연속 처리 시 배터리 영향이 크기에 우선 검토 가치.
  4. GPU delegate 트레이드오프: GPU는 모델 로드 시간이 큼(첫 추론 100-500ms). 사용자 진입 직후 첫 추론이 느릴 수 있음 → warm-up 필요.
  5. 카메라 프레임 처리: 60FPS=16ms/frame. 추론이 10ms 이내라야 메인스레드 막힘 없음. 실제로는 추론을 백그라운드 스레드로 위임 + 카메라 프레임 드롭 정책 필요.