개요
Model Pruning (모델 가지치기)은 신경망에서 중요도가 낮은 가중치, 뉴런, 또는 구조를 제거하여 모델을 경량화하는 압축 기법입니다. 모델의 **희소성(sparsity)**을 높여 메모리 사용량과 연산량을 줄이면서도 성능 저하를 최소화합니다. Large Language Models (LLMs) 시대에 추론 비용 절감의 핵심 기술 중 하나입니다.
프루닝 유형
비구조적 프루닝 (Unstructured Pruning)
개별 가중치(파라미터) 단위로 제거
가중치를 0으로 설정 → 희소 행렬
장점 : 높은 압축률 가능 (90%+ 희소성)
단점 : 표준 하드웨어에서 속도 이득 제한적 (희소 행렬 연산 필요)
구조적 프루닝 (Structured Pruning)
필터, 채널, 레이어, 어텐션 헤드 단위로 제거
모델 구조 자체가 변경됨
장점 : 표준 하드웨어에서 직접 속도 향상
단점 : 비구조적 대비 압축률 낮음
반구조적 프루닝 (Semi-Structured / N:M Sparsity)
N개 중 M개 가중치만 유지 (예: 2:4 sparsity)
NVIDIA Ampere+ GPU에서 하드웨어 가속 지원
구조적과 비구조적의 장점 결합
주요 기법
기법 방식 특징 Magnitude Pruning 절대값이 작은 가중치 제거 가장 기본, 간단 Movement Pruning 학습 중 0으로 이동하는 가중치 제거 파인튜닝에 효과적 Lottery Ticket Hypothesis ”당첨 티켓” 서브네트워크 탐색 초기화 + 구조 중요 SparseGPT 원샷 프루닝 (재학습 불필요) LLM에 적합 Wanda 가중치 크기 × 활성화 기반 매우 빠름, LLM용
프루닝 파이프라인
[학습된 모델] → [중요도 평가] → [프루닝 적용] → [파인튜닝/복구] → [경량 모델]
반복 프루닝 : 소량씩 여러 번 가지치기 + 재학습 (품질 우수)
원샷 프루닝 : 한 번에 가지치기 (빠르지만 품질 하락 가능)
관련 기법 비교
관련 항목