AI 시스템 구축: 서빙 최적화 – ONNX
ㅁ 서빙 최적화
ㅇ 정의:
모델을 다양한 플랫폼과 하드웨어에서 효율적으로 실행하기 위해 최적화된 형태로 변환·배포하는 과정.
ㅇ 특징:
– 추론 속도 향상과 리소스 절감을 목표로 함
– 하드웨어 가속기(GPU, NPU 등)와 호환성 고려
– 모델 변환, 경량화, 런타임 최적화 포함
ㅇ 적합한 경우:
– 대규모 트래픽 환경에서 지연 시간을 줄여야 하는 경우
– 다양한 디바이스 환경(서버, 모바일, 엣지)에서 동일 모델을 배포해야 하는 경우
ㅇ 시험 함정:
– 학습 단계의 최적화와 혼동하기 쉬움 (서빙 최적화는 추론 단계)
– 특정 프레임워크 종속성 제거 목적을 간과하는 경우
ㅇ 시험 대비 “패턴 보기” 예시:
O: “서빙 최적화는 추론 단계의 성능 향상을 위한 모델 변환과 경량화를 포함한다.”
X: “서빙 최적화는 학습 속도를 높이기 위한 GPU 병렬 처리 기법이다.”
================================
1. ONNX
ㅇ 정의:
Open Neural Network Exchange의 약자로, 서로 다른 딥러닝 프레임워크 간 모델을 호환·이식하기 위해 만든 개방형 표준 형식.
ㅇ 특징:
– PyTorch, TensorFlow, MXNet 등 다양한 프레임워크 간 모델 변환 지원
– 런타임(ONNX Runtime)에서 최적화된 추론 가능
– 하드웨어 가속 최적화 기능 내장
ㅇ 적합한 경우:
– 특정 프레임워크에 종속되지 않고 다양한 환경에 모델을 배포해야 하는 경우
– 클라우드, 엣지, 모바일 등 이기종 환경에서 동일 모델을 실행해야 하는 경우
ㅇ 시험 함정:
– ONNX는 학습을 위한 포맷이 아니라 추론 및 배포를 위한 포맷임을 혼동하는 경우
– 모델의 정확도를 높여주는 기술로 오해하는 경우
ㅇ 시험 대비 “패턴 보기” 예시:
O: “ONNX는 서로 다른 프레임워크 간 모델 호환을 위한 개방형 표준이다.”
X: “ONNX는 GPU 학습 속도를 높이기 위한 병렬 처리 라이브러리이다.”
ㅁ 추가 학습 내용
ONNX는 단순한 모델 포맷 변환 도구가 아니라, 런타임 최적화 기능을 제공하여 CPU, GPU, TPU 등 다양한 하드웨어 환경에서 최적의 성능을 발휘할 수 있도록 지원한다. ONNX Runtime의 주요 장점에는 그래프 최적화, 연산자 퓨전, 양자화 지원이 포함된다. 시험에서는 이러한 장점과 함께 TensorRT, OpenVINO 등 다른 추론 최적화 도구와의 비교가 출제될 수 있다. 또한 ONNX의 opset 버전 호환성 문제, 변환 과정에서 지원되지 않는 연산의 처리 방식, 그리고 모델 크기와 지연 시간 최적화를 위한 프루닝 및 양자화 기법과의 연계 방법에 대해서도 숙지해야 한다.