edge computing 기반 DL 모델 경량화 & serving
제조 환경에서 실시간 추론이 가능한
AI 모델 경량화 및 서빙 방법을 탐색한 실험 기반 프로젝트입니다.
1. 프로젝트 개요
- Member : 김경록 외 1명
- Status : Complete
- 사용언어 : Python, Shell
- 핵심 기술 : PyTorch, TensorRT, ONNX, Flask, NVIDIA Triton, Docker
- 대상 디바이스 : Jetson Nano, x86 Desktop
2. Why
왜 Edge + 경량화가 중요한가?
- 전통적인 AI 모델 서빙은 중앙 집중형 서버(클라우드) 구조를 기반으로 합니다.
- 그러나 제조 환경에서는 네트워크 지연이나 불안정성으로 인해 AI 추론 응답 시간 요구를 충족하지 못할 수 있습니다.
- 특히 Edge Device(예: 센서, IoT 기기 등)가 늘어날수록 네트워크 병목 발생 가능성이 높아집니다.
따라서, Edge 단에서 직접 추론이 가능한 경량화된 모델 + 서빙 구조의 필요성이 대두됩니다.
3. 문제 정의
- Edge Device(예: Jetson Nano)는 리소스(메모리/연산 능력)가 매우 제한됨
- 경량화 없이 일반 AI 모델을 배포할 경우 추론 속도 저하, 과부하 발생
- 다양한 논문 기반 모델 압축 기법은 실험 조건이 달라 Base Line으로 사용이 어려움
4. 실험 설계 및 아키텍처
(a) 실험 대상 및 구성 요소
- 디바이스: Nvidia Jetson Nano, x86 Desktop
- 모델: ResNet, MobileNet, EfficientNet(b0, b7) (TorchHub 기반)
- 압축 방식: Pruning, Quantization, ONNX 변환, TensorRT 최적화
- 서빙 방식: Flask API, NVIDIA Triton Inference Server
(b) 실험 아키텍처
- Server Process (Jetson 내부 혹은 Docker 컨테이너 기반)
- Client Process (이미지 전송 및 추론 결과 수신)
- Monitor Process (리소스 사용량 및 응답시간 측정)
[Client] → [Server (Flask/Triton)] → [Optimized DL Model]
5. 실험 결과 요약 및 인사이트
Lesson Learned
TensorRT 최적화는 실질적인 추론 속도 향상에 매우 효과적임.
다만, TensorRT는 Nvidia 계열 디바이스에서만 사용 가능하며, 실제 사용 디바이스에서 변환을 수행해야 효과가 최대화됨
Pruning & Quantization은 메모리 사용량을 크게 줄일 수 있으나,
정확도 저하가 발생할 수 있어 모델에 따라 선택적 적용이 필요
+ Jetson Nano의 경우 fp16으로 경량화를 시도 하였지만
실질적인 적용이 int8만 사용이 되었기에
Computing 자원 자체의 문제도 고려하여서 적용 필요.