모델/시스템 최적화: 추론 기술
ㅁ 추론 기술
ㅇ 정의:
– 학습된 모델을 실제 서비스 환경에서 빠르고 효율적으로 실행하기 위해 사용하는 기술 집합.
ㅇ 특징:
– 모델 구조 변경 없이 실행 환경과 연산 최적화를 통해 성능 향상.
– 하드웨어 가속기와 호환성을 고려.
ㅇ 적합한 경우:
– 실시간 응답이 필요한 서비스(예: 음성 인식, 실시간 번역).
ㅇ 시험 함정:
– 학습 단계 최적화와 추론 단계 최적화를 혼동.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: 추론 속도를 높이기 위해 연산자 병합을 적용한다.
– X: 추론 속도를 높이기 위해 학습률을 조정한다.
================================
1. ONNX Runtime
ㅇ 정의:
– 다양한 프레임워크에서 학습된 모델을 ONNX(Open Neural Network Exchange) 형식으로 변환하여 다양한 하드웨어에서 최적화된 추론을 수행할 수 있는 런타임 엔진.
ㅇ 특징:
– 다중 플랫폼 지원(Windows, Linux, MacOS).
– CPU, GPU, 전용 AI 가속기 지원.
– 다양한 최적화 패스 제공.
ㅇ 적합한 경우:
– 프레임워크 종속성을 줄이고 다양한 환경에서 동일 모델을 배포해야 할 때.
ㅇ 시험 함정:
– ONNX Runtime은 학습을 지원하지 않고 추론에 특화됨.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: ONNX Runtime은 PyTorch, TensorFlow 모델을 변환해 실행할 수 있다.
– X: ONNX Runtime은 모델 학습 속도를 높이기 위한 라이브러리이다.
================================
2. TensorRT
ㅇ 정의:
– NVIDIA GPU 환경에서 딥러닝 추론을 최적화하기 위한 고성능 딥러닝 추론 SDK.
ㅇ 특징:
– FP16, INT8 정밀도 지원으로 연산 속도 향상.
– 레이어 융합, 커널 자동 튜닝 기능 제공.
– NVIDIA 하드웨어에 최적화.
ㅇ 적합한 경우:
– NVIDIA GPU 기반 서버에서 초저지연 응답이 필요한 서비스.
ㅇ 시험 함정:
– TensorRT는 CPU 전용 환경에서는 성능 향상이 크지 않음.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: TensorRT는 NVIDIA GPU에서 INT8 연산을 지원한다.
– X: TensorRT는 모든 CPU 환경에서 GPU 수준의 속도를 제공한다.
================================
3. Distillation
ㅇ 정의:
– 큰 모델(Teacher)의 지식을 작은 모델(Student)로 전이하여 경량화와 성능 유지 모두를 달성하는 기법.
ㅇ 특징:
– Teacher 모델의 Soft target을 사용.
– 모델 크기와 추론 시간 감소.
ㅇ 적합한 경우:
– 모바일, 임베디드 환경에서 고성능 모델을 사용해야 할 때.
ㅇ 시험 함정:
– Distillation은 데이터 없이도 가능하다고 오해하는 경우가 있으나, 일반적으로 데이터 필요.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: Distillation은 Teacher 모델의 예측 확률 분포를 활용한다.
– X: Distillation은 모델의 가중치를 직접 복사하여 크기를 줄인다.
================================
4. Operator Fusion
ㅇ 정의:
– 여러 개의 연산자를 하나로 결합하여 메모리 접근과 연산 횟수를 줄이는 최적화 기법.
ㅇ 특징:
– CPU, GPU 모두에서 성능 향상 가능.
– 메모리 대역폭 절감.
ㅇ 적합한 경우:
– 동일 데이터에 대해 연속된 연산이 많은 경우.
ㅇ 시험 함정:
– Operator Fusion은 모델 구조 변경이 아닌 실행 그래프 최적화임.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: Operator Fusion은 연속된 연산을 하나로 합쳐 메모리 접근을 줄인다.
– X: Operator Fusion은 모델의 레이어 수를 줄여서 성능을 높인다.
ㅁ 추가 학습 내용
추론 기술 관련 추가 학습 정리
1. ONNX Runtime의 Execution Provider
– CPU, GPU, TensorRT 등 다양한 백엔드를 선택 가능
– 하드웨어별 최적화를 적용할 수 있음
2. TensorRT의 Calibration 과정
– FP32 모델을 INT8로 변환 시 사용
– 정확도 손실을 최소화하는 방법 이해 필요
3. Distillation 기법 종류와 차이점
– Knowledge Distillation
– Feature-based Distillation
– Response-based Distillation
– Relation-based Distillation
4. Operator Fusion과 다른 그래프 최적화 기법 비교
– Operator Fusion: 연산을 합쳐 성능 향상
– Constant Folding: 상수 연산을 사전 계산
– Dead Code Elimination: 사용되지 않는 코드 제거
5. 추론 최적화 기법의 조합
– 여러 최적화 기법이 함께 사용될 수 있음
– 하드웨어 환경과 서비스 요구사항에 따라 조합이 달라짐