On-device Feasibility

MobileCLIP2-S4 artifact 벤치마크

Sprint 1에서 만든 FP32 ONNX, dynamic INT8 ONNX, AI Hub w8a16 NPU 측정 결과를 한 문서로 압축한다. 핵심은 “팀원 실행 모델”과 “NPU latency evidence”를 구분하는 것이다.

983MB dynamic INT8 ONNX total
0.99941 INT8 vs FP32 cosine mean
314ms INT8 ORT CPU warm median
374-518ms AI Hub NPU warm latency range

최종 해석

팀원 실행과 시연 기본값은 dynamic INT8 ONNX다. 이 artifact는 PC ONNX Runtime 회귀에서 FP32와 거의 같은 embedding을 냈고, PyTorch checkpoint를 다시 로드하지 않아 Windows paging file 오류를 피한다.

AI Hub w8a16은 Snapdragon NPU에 1014/1014 layer가 탑재되고 latency가 측정됐다는 근거로만 사용한다. 정확도는 calibration 15장과 260장 모두에서 붕괴했으므로 Sprint 1 시연 모델로 쓰지 않는다.

Artifact 비교

경로 크기 정확도/동치성 실행 의미
mobile_artifacts/ FP32 ONNX 약 1.23GB PyTorch 대비 Top-3 parity 확인. 원본 ONNX 기준선. 용량과 메모리 부담 큼.
mobile_artifacts_int8/ dynamic INT8 약 983MB top-1 agreement 100%, embedding cosine mean 0.99941. 팀원 실행/시연 기본값.
mobile_artifacts_int8_qdq/ static QDQ 약 316MB 계열 mode collapse 확인. 실패 실험으로 보존. 배포 금지.
AI Hub w8a16 AI Hub 내부 산출물 cos 약 0.08, top-1 13.3% 수준으로 붕괴. NPU latency evidence로만 사용.
AI Hub FP32 AI Hub 내부 산출물 cos 0.9995. 그래프 변환 자체는 무손실임을 증명.

NPU latency 측정

디바이스 SoC warm latency NPU layer
Samsung Galaxy S23 Family Snapdragon 8 Gen 2 517.91 ms 1014 / 1014
Samsung Galaxy S24 Family Snapdragon 8 Gen 3 389.67 ms 1014 / 1014
Snapdragon 8 Elite QRD Snapdragon 8 Elite 374.10 ms 1014 / 1014

위 수치는 QAIRT 2.45, Hexagon v73, qnn_context_binary, compute_unit=npu 기준이다. 정확도 모델이 아니라 NPU feasibility 근거로 해석한다.

팀원에게 전달할 파일

mobile_artifacts_int8/
  landmark_encoder.onnx
  landmark_encoder.onnx.data
  preprocessing.json
  prototype_index.json
  labels_master.json
  manifest.json
  quantization_regression_report.json

이 폴더는 GitHub에 올리지 않는다. 압축해서 별도 전달한다. 데모 앱은 config.int8.tomlpython run.py --int8로 이 폴더를 읽는다.

발표 문구 주의

“NPU에서 374-518ms로 돌아갔다”와 “그 모델이 정확했다”는 같은 말이 아니다. Sprint 1 발표에서는 정확한 데모는 dynamic INT8 ONNX/PC 경로, 스마트폰 NPU 가능성은 AI Hub latency 실측으로 분리해서 말한다.