← 목록으로
AI·데이터
#가지치기#모델 경량화#구조적/비구조적#희소성#복권가설
최종 업데이트 · 2026-11-07

신경망 가지치기(Model Pruning)

1. 개요

신경망 가지치기(Model Pruning)란 학습된 심층 신경망에서 예측 기여도가 낮은 가중치·뉴런·채널·어텐션 헤드 등 중복(redundant)·불필요 파라미터를 제거(0으로 만들거나 삭제) 하여, 정확도 손실을 최소화하면서 모델의 크기·연산량(FLOPs)·메모리·추론 지연·전력을 줄이는 대표적 모델 경량화(Model Compression) 기법이다.

딥러닝 모델은 성능을 끌어올리기 위해 파라미터 규모를 꾸준히 키워 왔다. 그러나 1980년대 말 르쿤(LeCun)의 OBD(Optimal Brain Damage) 연구에서 이미 관찰되었듯, 과대 매개변수화(over-parameterization)된 신경망에는 학습 후 실제로는 거의 쓰이지 않는 가중치가 대량으로 존재한다. 학습 과정에서 큰 모델은 수렴과 일반화를 돕지만, 추론 단계에서는 그 용량의 상당 부분이 낭비된다. 수백억 파라미터의 대형 언어모델(LLM)이나 고해상도 비전 모델을 스마트폰·IoT·자동차 ECU·엣지 서버에 그대로 올리기 어려운 이유도 여기에 있다. 가지치기는 "큰 모델로 충분히 학습한 뒤, 추론에 불필요한 연결을 잘라낸다"는 발상으로 이 간극을 메운다.

가지치기가 효과적인 근본 이유는 신경망의 표현이 희소(sparse)하게 재구성될 수 있기 때문이다. 즉 전체 가중치의 상당수를 0으로 만들어도, 남은 소수의 중요한 연결만으로 원본에 근접한 함수를 근사할 수 있다. 실제로 여러 비전 모델에서 가중치의 80~90%를 제거해도 정확도 저하가 1%p 내외에 그친 사례가 보고되며, 2019년 프랭클(Frankle)의 복권 가설(Lottery Ticket Hypothesis)은 "무작위 초기화된 큰 신경망 안에는 단독으로 학습해도 원본에 필적하는 작은 부분망(winning ticket)이 존재한다"는 관점으로 가지치기의 이론적 근거를 제시했다. 가지치기는 오늘날 양자화·지식 증류와 함께 온디바이스 AI와 경량 LLM(sLLM) 배포의 핵심 축으로 자리 잡았다.

가지치기의 기대 효과는 크게 네 가지로 정리된다. 첫째는 저장·전송 비용 절감으로, 희소 모델을 압축 포맷으로 저장하면 모델 파일 크기가 크게 줄어 배포·업데이트가 쉬워진다. 둘째는 연산량(FLOPs) 감소로, 구조적 가지치기의 경우 곱셈-덧셈 연산 자체가 줄어 추론 지연과 전력이 직접적으로 개선된다. 셋째는 에너지 효율로, 모바일·엣지처럼 배터리·발열 제약이 큰 환경에서 특히 중요하다. 넷째는 정규화 효과로, 불필요한 연결을 제거하는 과정이 일종의 모델 단순화로 작용해 과적합을 완화하고 일반화 성능을 개선하는 부수 효과를 내기도 한다. 다만 이 효과들은 가지치기 방식과 하드웨어 지원에 따라 실현 정도가 크게 달라지므로, 목표를 명확히 하고 방식을 선택하는 것이 전제가 된다.

2. 가지치기의 기본 구조와 원리

flowchart LR
  P["사전학습 모델(Dense, 과대매개변수화)"] --> SC["중요도 평가(Scoring)"]
  SC --> SEL["제거 대상 선정(기준값/비율)"]
  SEL --> PR["가지치기(가중치 0화/삭제)"]
  PR --> FT["재학습(Fine-tuning/재훈련)"]
  FT --> EV["정확도·압축률 평가"]
  EV -->|목표 미달, 반복| SC
  EV -->|목표 달성| DEP["희소 모델 배포(압축·가속)"]

가지치기의 핵심 질문은 "무엇을, 얼마나, 어떻게 자를 것인가"이다. 첫째, 무엇을 자를지는 중요도(importance) 평가로 결정한다. 가장 단순한 기준은 가중치의 절댓값 크기(magnitude)로, 값이 0에 가까운 가중치는 출력에 미치는 영향이 작다고 보고 제거한다. 더 정교한 방식은 손실 함수에 대한 기여도를 테일러 전개로 근사하거나(1차·2차 미분), OBD/OBS처럼 헤시안(Hessian) 정보를 이용해 "제거 시 손실 증가가 가장 작은" 가중치를 고른다. 둘째, 얼마나 자를지는 목표 희소율(sparsity, 예: 90%)이나 지연·메모리 예산으로 정한다. 셋째, 어떻게 자를지는 뒤에서 다룰 구조적/비구조적 방식의 선택 문제다.

가지치기 직후에는 정확도가 일시적으로 하락하므로, 남은 파라미터로 손실을 회복하는 재학습(fine-tuning) 또는 재훈련이 거의 필수적이다. 한 번에 목표 희소율까지 잘라내는 원샷(one-shot) 가지치기는 빠르지만 정확도 손실이 크고, 조금씩 잘라내고 재학습하기를 반복하는 반복적(iterative) 가지치기는 느리지만 같은 압축률에서 정확도를 훨씬 잘 보존한다. 예컨대 학습 중 희소율을 0에서 목표치까지 점진적으로 높이는 점진적 크기 가지치기(Gradual Magnitude Pruning)는 90% 희소화에서도 원본 성능을 거의 유지하는 결과를 보인다.

가지치기의 효과를 좌우하는 또 다른 축은 일회성 vs 학습 결합 여부다. 학습이 끝난 모델에 사후로 적용할 수도 있고(사후 가지치기), 학습 손실에 L1/L0 정규화나 희소성 유도 항을 넣어 학습 과정 자체에서 자연스럽게 많은 가중치가 0에 수렴하도록 유도할 수도 있다. 후자는 별도 재학습 부담이 적지만 학습 파이프라인을 바꿔야 하고 하이퍼파라미터 튜닝이 까다롭다.

마지막으로 희소율을 "어디에 얼마나" 배분할지의 문제, 즉 전역(global) vs 국소(local) 가지치기 선택도 중요하다. 국소 가지치기는 모든 층에 동일한 희소율(예: 각 층 70%)을 일괄 적용해 단순하지만, 층마다 중요도가 다른 현실을 반영하지 못한다. 전역 가지치기는 전체 네트워크의 모든 가중치를 하나의 기준값으로 평가해 자르므로, 덜 민감한 층은 많이, 민감한 층은 적게 자르는 층별 민감도(layer sensitivity)가 자동으로 반영되어 같은 평균 희소율에서 정확도가 더 잘 유지되는 경향이 있다. 실무에서는 사전에 층별로 조금씩 잘라 보며 정확도 하락 폭을 측정하는 민감도 분석(sensitivity analysis)을 수행해, 민감한 초반 층과 분류기 직전 층은 보수적으로 자르는 전략을 흔히 쓴다.

3. 가지치기의 유형

flowchart TB
  ROOT["가지치기 유형"] --> G1["단위(granularity) 기준"]
  ROOT --> G2["기준(criterion) 기준"]
  ROOT --> G3["시점(schedule) 기준"]
  G1 --> U["비구조적(Unstructured): 개별 가중치"]
  G1 --> S["구조적(Structured): 뉴런·채널·필터·헤드·층"]
  G2 --> M["크기 기반(Magnitude)"]
  G2 --> I["중요도 기반(Taylor/Hessian/Gradient)"]
  G3 --> O["원샷(One-shot)"]
  G3 --> IT["반복적(Iterative)"]
  G3 --> TR["학습중(Train-time, 희소 정규화)"]

가지치기를 나누는 가장 중요한 축은 제거 단위(granularity)다. 비구조적 가지치기는 개별 가중치를 하나하나 0으로 만든다. 세밀하게 중요도 낮은 연결만 골라 제거하므로 같은 정확도에서 더 높은 희소율을 달성할 수 있다는 장점이 있다. 그러나 결과물은 0이 불규칙하게 흩어진 희소 행렬이 되어, 희소 연산을 가속하지 못하는 일반 GPU·CPU에서는 메모리는 줄어도 실제 추론 속도가 거의 빨라지지 않는 한계가 있다. 밀집(dense) 하드웨어는 0을 곱하는 연산도 그대로 수행하기 때문이다.

구조적 가지치기는 뉴런·합성곱 필터(채널)·어텐션 헤드·블록·층 같은 구조 단위 전체를 통째로 제거한다. 예컨대 합성곱 신경망에서 기여도가 낮은 필터 하나를 제거하면 해당 출력 채널과 다음 층의 대응 입력 연결이 함께 사라져, 모델 자체가 더 작은 밀집 모델로 바뀐다. 따라서 별도 희소 가속 하드웨어 없이도 즉시 FLOPs와 지연이 줄어든다는 실무적 이점이 크다. 대신 한 단위를 통째로 자르므로 손실되는 정보가 많아, 같은 압축률에서는 비구조적 방식보다 정확도 손실이 큰 경향이 있다. 실무에서는 "하드웨어가 희소 연산을 지원하는가"가 두 방식 선택의 1차 기준이 된다.

두 가지 방식의 차이는 결국 "정확도 보존이냐, 범용 하드웨어에서의 실측 가속이냐"라는 상충에서 비롯된다. 비구조적 방식은 자를 대상의 자유도가 높아 손실을 덜 주면서 많이 자를 수 있지만 그 이득이 전용 하드웨어가 있어야만 속도로 실현되고, 구조적 방식은 자유도가 낮아 정확도 손실이 크지만 그 즉시 밀집 연산량이 줄어 어떤 장치에서도 빨라진다. 둘 사이를 메우려는 것이 뒤에서 다룰 N:M 반구조적 희소성으로, 이 상충 관계를 이해하는 것이 방식 선택의 핵심이다.

두 번째 축인 기준(criterion)은 앞서 설명한 크기 기반과 중요도 기반으로 나뉜다. 크기 기반은 구현이 단순하고 비용이 낮아 널리 쓰이지만, 가중치가 작다고 반드시 덜 중요한 것은 아니라는 한계가 있다. 이를 보완해 활성값(activation)과 가중치를 함께 고려하거나(예: LLM용 Wanda 기법), 2차 정보로 상호작용까지 반영하는 방식이 발전해 왔다. 예컨대 입력 분포가 특정 뉴런을 거의 활성화하지 않는다면 그 뉴런의 가중치가 커도 실제 출력 기여는 작으므로, 활성값을 함께 보는 기준이 더 합리적일 수 있다. 세 번째 축인 시점(schedule)은 학습 후 한 번에 자르는 원샷, 자르고 재학습을 되풀이하는 반복적, 학습 과정에 희소성을 녹이는 학습중 방식으로 구분된다. 세 축은 독립적이어서, 실제로는 "구조적 × 중요도 기반 × 반복적"처럼 조합해 설계한다.

구분 제거 단위 장점 단점·유의점
비구조적 개별 가중치 높은 희소율, 정확도 보존 우수 전용 희소 HW 없으면 가속 미미
구조적 필터·채널·헤드·층 HW 무관 즉시 가속, 크기↓ 같은 압축률서 정확도 손실 큼
크기 기반 (기준) 절댓값 단순·저비용 작은 값≠덜 중요 가능성
중요도 기반 (기준) 손실 기여도 정밀한 선별 헤시안·그래디언트 계산 비용

4. 가지치기 절차와 반복적 재학습

구조적 가지치기에서는 한 요소를 제거할 때 그와 연결된 다른 층의 차원까지 일관되게 맞춰 줘야 하는 의존성(dependency) 처리가 까다롭다. 예컨대 어떤 합성곱 필터를 지우면 다음 층의 입력 채널 수가 그만큼 줄어야 하고, 잔차 연결(residual)로 묶인 블록은 함께 보폭을 맞춰야 한다. 이를 자동으로 추적·정리해 주는 도구(예: 의존성 그래프 기반 가지치기 라이브러리)가 실무 생산성을 좌우한다.

실무의 가지치기 파이프라인은 대체로 "① 사전학습 → ② 중요도 평가 → ③ 제거 → ④ 재학습 → ⑤ 평가"의 순환으로 구성되며, 이를 목표 압축률에 도달할 때까지 반복한다. 이때 핵심 설계 변수는 희소율 스케줄과 재학습 강도다. 희소율을 너무 급격히 올리면 네트워크가 회복할 여지 없이 성능이 무너지고, 너무 느리면 학습 비용이 과도해진다. 그래서 초기에는 빠르게, 목표 희소율에 가까워질수록 완만하게 올리는 다항식(polynomial) 스케줄이 널리 쓰인다.

반복적 가지치기의 효과를 극적으로 보여 준 것이 복권 가설이다. 프랭클 등은 큰 네트워크를 학습한 뒤 작은 가중치를 제거하고, 남은 가중치를 "학습 시작 시점의 초기값"으로 되돌려(rewind) 다시 학습하면, 전체 대비 10~20% 규모의 부분망만으로도 원본 정확도를 재현할 수 있음을 보였다. 이는 단순히 "큰 모델을 작게 만드는" 공학 기법을 넘어, 신경망 학습의 성공이 특정 초기화를 가진 희소 부분망에 달려 있다는 통찰로, 이후 가지치기 연구의 이론적 토대가 되었다. 다만 대형 모델에서는 초기값으로 되돌리는 대신 학습 중반의 가중치로 되돌리는 변형(late rewinding)이 더 안정적임이 알려져 있다.

하드웨어 친화적 절충안으로는 N:M 반구조적 희소성(semi-structured sparsity)이 있다. 연속된 M개 가중치 중 반드시 N개만 남기는 규칙(대표적으로 2:4, 즉 4개 중 2개 제거)을 강제하면, 희소 패턴이 규칙적이어서 전용 가속기가 이를 효율적으로 처리할 수 있다. 엔비디아 암페어 이후 GPU의 희소 텐서 코어가 2:4 패턴에서 이론상 2배 처리량을 제공하는 것이 그 예로, 비구조적의 정확도 이점과 구조적의 가속 이점을 절충한다. 이처럼 "자유로운 희소성은 가속이 어렵고, 규칙적 희소성은 정확도를 희생한다"는 근본 긴장 속에서, N:M은 규칙성을 최소한으로 강제해 양쪽을 동시에 취하려는 설계라고 볼 수 있다.

가지치기의 적정 정도를 판단하려면 압축률과 정확도의 관계 곡선을 그려 보는 것이 유용하다. 희소율을 0에서 높여 가면 처음에는 정확도가 거의 유지되다가(완만 구간), 어느 임계점을 넘어서면 급격히 무너지는(절벽 구간) 특성을 보인다. 이 임계점은 모델·데이터·태스크마다 다르므로, 실무에서는 여러 희소율로 가지치기해 곡선을 확보하고 "정확도 손실 허용치 안에서 최대 압축" 지점을 운영 목표로 선택한다. 재학습을 충분히 하면 이 임계점(절벽)이 더 높은 희소율 쪽으로 밀려나므로, 재학습 예산과 목표 압축률은 함께 결정해야 한다.

5. 유사 경량화 기법과의 비교 및 적용 사례

가지치기는 모델 경량화의 한 축이며, 실무에서는 양자화(Quantization)·지식 증류(Knowledge Distillation)와 상호보완적으로 결합된다. 세 기법은 접근이 근본적으로 다르다. 가지치기는 파라미터의 "수"를 줄여 모델을 희소·소형화하고, 양자화는 각 파라미터의 표현 "비트수"를 낮춰(FP32→INT8/INT4) 저장·연산 정밀도를 줄이며, 증류는 큰 교사의 지식을 작은 학생이 모방하도록 "다시 가르친다". 서로 공략 지점이 달라, 실제 배포 파이프라인에서는 "증류로 소형 학생을 얻고 → 가지치기로 불필요 연결을 제거하고 → 양자화해 정수 가속기(NPU)에 올리는" 순차 결합이 흔하다.

구체적 사례로, 비전 분야의 VGG·ResNet 계열에서 필터 가지치기로 FLOPs를 30~50% 줄이면서 정확도 손실을 1%p 이내로 억제한 연구가 다수 보고되었고, 자연어 분야에서는 BERT의 어텐션 헤드를 상당수 제거해도 다운스트림 성능이 거의 유지되는 '헤드 중복성'이 관찰되었다. 최근 대형 언어모델에서는 재학습 없이 한 번의 패스로 50% 안팎을 가지치기하는 SparseGPT, 가중치와 입력 활성값의 곱을 기준으로 삼아 간단하면서도 강력한 Wanda 같은 사후 가지치기 기법이 등장해, 수십억 파라미터 모델을 제한된 자원에서 압축하는 길을 열었다.

기법 핵심 원리 정확도 영향 대표 효과
가지치기 불필요 가중치·구조 제거 과도 시 급락, 재학습으로 회복 희소율 80~90%, FLOPs·크기↓
양자화 표현 비트수 축소 소폭 손실 메모리 ~4배↓, NPU 가속
지식 증류 큰 모델 지식을 작은 모델에 전이 낮은 손실로 회복 원본 성능 95~97% 유지

6. 심화: 최신 동향과 하드웨어 공진화

가지치기의 가치는 결국 하드웨어가 희소성을 얼마나 활용할 수 있는가에 달려 있다. 과거 비구조적 가지치기는 "메모리는 줄지만 속도는 그대로"라는 벽에 부딪혔는데, 최근에는 이 간극을 좁히는 소프트웨어·하드웨어 공진화가 두드러진다. 앞서 언급한 엔비디아의 2:4 구조적 희소 텐서 코어가 대표적이며, 희소 행렬 곱셈을 가속하는 전용 라이브러리(cuSPARSE 등)와 컴파일러 최적화가 함께 발전하고 있다. 이로써 "규칙적 희소성 → 실측 가속"의 선순환이 가능해졌다.

LLM 시대에는 재학습 비용을 감당할 수 없다는 제약이 가지치기 연구의 방향을 바꾸었다. 수천 GPU로 학습한 모델을 다시 미세조정하기란 비현실적이므로, SparseGPT·Wanda처럼 소규모 교정 데이터만으로 1회 패스에 희소화하는 재학습 불필요(one-shot, training-free) 접근이 각광받는다. 이들은 층 단위로 가지치기 후 남은 가중치를 국소적으로 보정(update)해 오차를 흡수함으로써, 전체 재학습 없이도 성능 저하를 억제한다는 공통점이 있다.

최근에는 개별 가중치가 아니라 트랜스포머의 구조 단위를 통째로 줄이는 구조적 가지치기도 활발하다. 어텐션 헤드, FFN의 중간 차원, 나아가 층(layer) 자체를 제거해 모델의 폭과 깊이를 줄이는 방식으로, LLaMA 계열에서 층을 솎아 내고 소량 재학습으로 복원하는 깊이 가지치기(depth pruning) 사례가 보고된다. 또한 추론 시점에 입력에 따라 사용할 뉴런만 동적으로 켜는 동적 희소성(dynamic sparsity)·활성 희소성, 전문가 혼합(MoE)에서 일부 전문가만 활성화하는 조건부 계산도 넓은 의미의 희소화 흐름에 포함된다. 표준·생태계 측면에서는 PyTorch의 torch.nn.utils.prune 모듈, 반구조적 희소성 API, ONNX·TensorRT의 희소 모델 지원 등이 실무 적용의 저변을 넓히고 있다.

7. 고려사항 및 시사점

기술사 관점에서 가지치기 도입은 단일 알고리즘 선택이 아니라 정확도·추론 비용·하드웨어 제약·운영 리스크를 아우르는 종합 설계 의사결정으로 접근해야 한다.

  • 적용 전략(목표에서 역산): 압축의 목적이 "메모리 절감"인지 "지연 단축"인지에 따라 방식이 갈린다. 메모리가 병목이고 전용 희소 HW가 있다면 비구조적·N:M을, 범용 HW에서 실측 속도 향상이 목표라면 구조적 가지치기를 택해야 한다. 하드웨어 지원 없이 비구조적 가지치기를 적용하면 "줄었는데 빨라지지 않는" 흔한 실패에 빠진다.

  • 트레이드오프와 검증 체계: 가지치기된 모델은 평균 정확도는 보존해도 롱테일·희귀 케이스, 공정성, 강건성(적대적 입력)에서 원본과 특성이 달라질 수 있다. 따라서 대표 지표뿐 아니라 취약 시나리오·편향·안전성에 대한 별도 회귀 검증을 배포 게이트에 포함해야 한다.

  • 운영·거버넌스: 희소 모델은 버전·형상 관리가 복잡해진다. 희소 패턴, 마스크, 재학습 데이터, 하드웨어 종속성까지 함께 추적하는 MLOps 체계가 필요하며, 규제 산업에서는 가지치기로 인한 성능 변화에 대한 설명가능성·추적성 확보가 요구된다.

  • 비용-효과 산정과 의사결정: 가지치기는 재학습 비용(GPU 시간), 엔지니어링 공수, 검증 부담이라는 선행 투자를 요구한다. 따라서 "압축으로 절감되는 추론 비용 × 기대 호출량"이 선행 투자를 상회하는지, 즉 손익분기를 먼저 추정해야 한다. 호출량이 적은 모델을 무리하게 가지치기하는 것은 오히려 비효율이며, 대량 추론 서비스에서야 가지치기의 TCO 절감 효과가 분명해진다.

  • 전망(통합 경량화·자동화): 향후에는 가지치기·양자화·증류·저순위 적응(LoRA)을 하나의 파이프라인에서 공동 최적화하는 통합 경량화와, 신경망 구조 탐색(NAS)과 결합해 희소 구조를 자동 설계하는 방향이 강화될 전망이다. 온디바이스·엣지 AI 및 경량 LLM 수요가 커질수록, 가지치기는 파운데이션 모델의 능력을 제한된 자원으로 끌어내리는 핵심 통로가 될 것이다.

참고자료


한 줄 요약: 신경망 가지치기는 과대매개변수화된 모델에서 기여도 낮은 가중치·구조를 제거해 정확도 손실을 최소화하며 크기·연산·지연을 줄이는 경량화 기법으로, 비구조적/구조적·크기/중요도·원샷/반복 축으로 설계하고 양자화·증류와 결합하되 하드웨어의 희소성 지원 여부를 1차 기준으로 삼아야 한다.