모델/시스템 최적화: 경량화 기법 – Structured Sparsity
ㅁ 경량화 기법
1. Structured Sparsity
ㅇ 정의:
모델의 가중치나 뉴런을 개별적으로 제거하는 것이 아니라, 채널, 필터, 레이어 단위처럼 구조적으로 묶어서 제거하는 희소화 기법.
ㅇ 특징:
– 하드웨어 가속기(GPU, TPU)에서 병렬 연산 최적화에 유리.
– 비정형 희소화(Unstructured Sparsity)보다 실제 추론 속도 향상 효과가 큼.
– 학습 중 정규화 항(L1/L2) 또는 구조적 제약을 추가하여 희소 패턴 유도.
ㅇ 적합한 경우:
– 모바일, 임베디드 환경에서 실시간 추론이 필요한 경우.
– 메모리 대역폭이 제한된 환경.
– 하드웨어 친화적인 최적화가 필요한 경우.
ㅇ 시험 함정:
– Unstructured Sparsity와 혼동: Unstructured는 개별 가중치 제거, Structured는 그룹 단위 제거.
– 희소화 비율이 높아도 구조적이지 않으면 속도 향상 효과가 미미함.
– 구조적 희소화는 모델 정확도 하락 폭이 클 수 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “채널 단위로 필터를 제거하는 것은 Structured Sparsity에 해당한다.”
X: “개별 가중치를 무작위로 제거하는 것은 Structured Sparsity이다.”
ㅁ 추가 학습 내용
Structured Sparsity는 하드웨어 친화적인 희소화 기법으로, 실제 연산 속도 향상과 메모리 절감을 동시에 달성할 수 있다. 주로 모델 재학습(Fine-tuning) 과정에서 적용되며, pruning mask를 구조 단위로 생성한다. 예를 들어 Conv2D 계층에서는 커널 필터 단위로 제거하고, RNN 계열에서는 hidden unit 단위로 제거하는 등 아키텍처에 맞춘 다양한 적용 방법이 있다. 시험에서는 Structured Sparsity와 Weight Quantization, Low-rank Approximation 등의 경량화 기법 비교 문제가 자주 출제되므로, 각 기법의 장단점과 적용 사례를 함께 정리해 두는 것이 중요하다.