AI 시스템 구축: 서빙 최적화
ㅁ 서빙 최적화
ㅇ 정의:
AI 모델을 실제 서비스 환경에서 빠르고 효율적으로 동작시키기 위해 모델 변환, 경량화, 하드웨어 최적화 등을 수행하는 기술.
ㅇ 특징:
– 추론 속도 향상과 메모리 사용량 감소가 목적
– GPU, CPU, NPU 등 다양한 하드웨어에 맞춰 변환 가능
– 모델 정확도와 성능 사이에서 균형 조정 필요
ㅇ 적합한 경우:
– 대규모 실시간 추론 서비스(챗봇, 검색, 추천)
– 엣지 디바이스에서의 AI 모델 배포
– 클라우드 환경에서 비용 절감을 목표로 하는 경우
ㅇ 시험 함정:
– “서빙 최적화”를 학습 최적화와 혼동
– 모델 압축과 서빙 최적화를 동일 개념으로 이해하는 오류
– 추론 최적화 기술이 항상 모델 정확도를 높인다고 착각
ㅇ 시험 대비 “패턴 보기” 예시:
O: 서빙 최적화는 추론 성능 향상을 위해 모델 변환과 하드웨어 최적화를 수행한다.
X: 서빙 최적화는 학습 속도를 높이기 위한 데이터 증강 기법이다.
================================
1. ONNX
ㅇ 정의:
Open Neural Network Exchange의 약자로, 다양한 딥러닝 프레임워크 간 모델을 호환 가능하게 변환하기 위한 오픈포맷.
ㅇ 특징:
– PyTorch, TensorFlow, scikit-learn 등 다양한 프레임워크 지원
– 하드웨어 가속 라이브러리(TensorRT, OpenVINO 등)와 연동 가능
– 표준화된 그래프 구조 사용
ㅇ 적합한 경우:
– 여러 프레임워크를 혼합해 사용하는 프로젝트
– 모델을 다양한 하드웨어 환경에 배포할 때
– 프레임워크 종속성을 줄이고 싶은 경우
ㅇ 시험 함정:
– ONNX가 모델 학습 프레임워크라고 오해
– ONNX 변환이 항상 성능 향상을 보장한다고 착각
– ONNX는 단일 하드웨어 전용이라고 잘못 이해
ㅇ 시험 대비 “패턴 보기” 예시:
O: ONNX는 프레임워크 간 모델 호환을 위한 표준 포맷이다.
X: ONNX는 GPU에서만 실행 가능한 모델 변환 포맷이다.
================================
2. TensorRT
ㅇ 정의:
NVIDIA에서 제공하는 딥러닝 추론 최적화 라이브러리로, NVIDIA GPU에서 모델 실행 속도를 극대화.
ㅇ 특징:
– FP32, FP16, INT8 등 다양한 정밀도 지원
– 레이어 병합, 커널 최적화, 메모리 관리 자동화
– ONNX 모델을 입력받아 최적화 가능
ㅇ 적합한 경우:
– NVIDIA GPU 기반 추론 서비스
– 초저지연 응답이 필요한 서비스(자율주행, 영상 스트리밍)
– 배치 처리량 극대화 목적
ㅇ 시험 함정:
– TensorRT가 CPU에서도 동일 성능을 제공한다고 착각
– TensorRT가 학습 과정도 최적화한다고 오해
– TensorRT가 ONNX 변환 없이도 모든 프레임워크 모델을 지원한다고 잘못 이해
ㅇ 시험 대비 “패턴 보기” 예시:
O: TensorRT는 NVIDIA GPU에서 추론 속도를 높이기 위해 사용된다.
X: TensorRT는 CPU 환경에서도 GPU와 동일한 추론 성능을 제공한다.
================================
3. TorchScript
ㅇ 정의:
PyTorch 모델을 직렬화하여 Python 환경 없이도 실행할 수 있도록 하는 PyTorch 전용 모델 변환 기술.
ㅇ 특징:
– Script 모드와 Trace 모드 제공
– C++ 런타임에서 모델 실행 가능
– 디버깅과 최적화에 유용
ㅇ 적합한 경우:
– Python이 없는 환경(C++ 서버, 모바일 앱)에서 PyTorch 모델 배포
– 모델 추론 속도를 높이고 싶은 경우
– PyTorch 학습 모델을 프로덕션 환경에 그대로 적용
ㅇ 시험 함정:
– TorchScript가 프레임워크 간 변환 기술이라고 오해
– Trace 모드가 모든 동적 연산을 기록한다고 착각
– TorchScript 변환이 항상 모델 정확도를 높인다고 잘못 이해
ㅇ 시험 대비 “패턴 보기” 예시:
O: TorchScript는 PyTorch 모델을 Python 없이 실행 가능하도록 직렬화한다.
X: TorchScript는 TensorFlow 모델을 PyTorch로 변환하는 기술이다.
================================
4. Distillation
ㅇ 정의:
지식 증류(Knowledge Distillation)는 큰 모델(Teacher)의 지식을 작은 모델(Student)에 전이하여 경량화 및 성능 유지.
ㅇ 특징:
– Teacher 모델의 출력 확률 분포(Soft Target)를 활용
– 모델 크기와 추론 속도 개선
– 정확도 손실 최소화 목표
ㅇ 적합한 경우:
– 경량 디바이스 배포용 모델 개발
– 대규모 모델의 응답 속도 개선
– 비용 절감 및 에너지 효율성 목표
ㅇ 시험 함정:
– Distillation이 데이터 증강 기법이라고 오해
– Teacher와 Student 모델이 반드시 동일 구조여야 한다고 잘못 이해
– Distillation이 항상 정확도 향상을 보장한다고 생각
ㅇ 시험 대비 “패턴 보기” 예시:
O: 지식 증류는 큰 모델의 지식을 작은 모델에 전이하여 경량화한다.
X: 지식 증류는 학습 데이터 양을 줄이는 데이터 전처리 기법이다.
================================
제가 원하시면 다음 단계로 **각 세부 용어별 하위 주요 기술**까지 상세하게 확장해서 정리해 드릴 수 있습니다.
원하시나요?