모델/시스템 최적화: 경량화 기법 – Weight Pruning
ㅁ 경량화 기법
ㅇ 정의:
– 모델의 파라미터(가중치) 중 중요도가 낮은 값을 제거하여 연산량과 메모리 사용량을 줄이는 기법.
– 신경망의 희소성을 높여 모델을 단순화.
ㅇ 특징:
– 성능 저하를 최소화하면서 모델 크기와 추론 속도를 개선.
– 구조적 프루닝(채널/필터 단위)과 비구조적 프루닝(개별 가중치 단위)로 구분.
– 학습 전/중/후 모두 적용 가능하나, 재학습(Fine-tuning)이 필요한 경우가 많음.
ㅇ 적합한 경우:
– 리소스 제약이 있는 모바일/엣지 디바이스에 모델을 배포할 때.
– 실시간 추론이 필요한 응용(예: 자율주행, 실시간 영상 분석).
ㅇ 시험 함정:
– 모든 가중치 제거가 아닌, 중요도가 낮은 가중치만 제거.
– 프루닝 후 반드시 성능 검증 및 필요 시 재학습 필요.
– 희소화된 모델이 항상 하드웨어 가속기에서 속도 향상을 보장하지 않음.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “Weight Pruning은 중요도가 낮은 가중치를 제거하여 모델을 경량화한다.”
– X: “Weight Pruning은 모든 가중치를 제거하여 모델을 재구성한다.”
ㅁ 추가 학습 내용
Weight Pruning은 가중치의 중요도를 측정하는 방법에 따라 모델 성능에 미치는 영향이 달라진다. 중요도 측정 방법에는 가중치 절대값 기반, 그래디언트 기반, Hessian 기반 등이 있다.
구조적 프루닝은 채널, 필터 등 구조 단위로 제거하여 하드웨어 최적화에 유리하다.
비구조적 프루닝은 개별 가중치를 제거하여 높은 압축률을 얻을 수 있지만 실제 연산 속도 향상은 제한적일 수 있다.
희소성(Sparsity)은 전체 파라미터 중 0이 된 가중치의 비율을 의미하며, 프루닝 후에는 일반적으로 재학습(Fine-tuning)을 통해 성능 회복이 필요하다.
프루닝 비율이 높아질수록 정확도 손실이 커질 수 있으므로 비율 조절이 중요하다.
프루닝은 불필요한 가중치를 제거하는 것이고, 양자화(Quantization)는 가중치나 연산을 더 낮은 비트 수로 표현하여 모델 크기와 연산량을 줄이는 방법이라는 점에서 차이가 있다.