지식 증류 및 가지치기 (Distillation & Pruning)
양자화 외에도 모델의 파라미터 구조를 직접적으로 다루어 성능을 최적화하는 두 가지 핵심 기법인 지식 증류와 가지치기를 소개합니다.
1. 지식 증류 (Knowledge Distillation)
- 핵심 원리: 거대한 고성능 모델(Teacher)이 학습한 확률 분포나 중간 레이어의 특징을 작은 모델(Student)에게 전수하여, 작은 모델이 거대 모델의 성능을 모사하게 만드는 기술입니다.
- 특징:
- 성능 유지: 파라미터 수가 훨씬 적음에도 불구하고, 단순한 직접 학습보다 훨씬 높은 정확도를 보여줍니다.
- 추론 속도: Student 모델은 크기가 작아 추론 속도가 매우 빠르며, 모바일이나 엣지 디바이스에서도 구동이 가능합니다.
- 활용 사례: OpenAI의 GPT-4o-mini나 Google의 Gemini Flash 등이 지식 증류 기법을 활용하여 경량화와 성능을 동시에 잡은 대표적 사례입니다.
2. 가지치기 (Pruning)
- 핵심 원리: 모델 내부에서 출력값에 큰 영향을 주지 않는 불필요한 가중치(Weights)들을 제거(0으로 설정)하는 기술입니다.
- 주요 방식:
- 비정형 가지치기 (Unstructured Pruning): 가중치 행렬 내의 개별 요소를 무작위로 제거합니다. 압축률은 높지만 하드웨어 가속이 어렵습니다.
- 정형 가지치기 (Structured Pruning): 뉴런이나 전체 레이어, 또는 특정 패턴(N:M) 단위로 제거합니다. 실제 하드웨어 추론 속도 향상에 직접적인 도움이 됩니다.
- 최근 트렌드 (Wanda 등): 최근에는 별도의 재학습 없이도 중요도가 낮은 가중치를 효과적으로 제거하는 알고리즘들이 개발되어 대형 모델에도 빠르게 적용되고 있습니다.
최적화 기법 간 선택 가이드
| 상황 | 추천 기법 |
|---|---|
| 모델 구조 변경 없이 빠르게 용량 절감 | 양자화 (Quantization) |
| 작고 빠른 전용 모델을 새로 만들고 싶을 때 | 지식 증류 (Distillation) |
| 모델 내부의 불필요한 계산을 근본적으로 제거 | 가지치기 (Pruning) |
| 최고의 성능과 속도 조합 | 세 기법의 병행 적용 (예: 지식 증류 후 양자화) |