[논문 리뷰] SparseGPT: Massive Language Models Can Be Accurately Pruned in One-Shot

smj·2026년 3월 31일

review

목록 보기
17/30

한줄 요약: 재학습 없이 단 한 번의 프루닝으로 GPT-175B의 가중치 60%를 제거하면서도 perplexity 증가를 최소화하는 최초의 대규모 LLM 프루닝 방법.

항목내용
저자Elias Frantar, Dan Alistarh
소속IST Austria
발표ICML 2023
링크arxiv.org/abs/2301.00774
키워드Pruning, Sparsity, One-Shot, Unstructured

1. 문제 정의

LLM 프루닝의 어려움:

전통적 프루닝:
  1. 학습된 모델에서 작은 가중치 제거 (magnitude pruning)
  2. 남은 가중치로 재학습 (fine-tuning)
  3. 1-2를 반복하며 점진적으로 희소화

LLM에 적용 불가한 이유:
  - 175B 모델의 재학습: 수백만 달러 비용
  - Iterative pruning: 여러 번 재학습해야 하므로 비용 배가
  - 단순 magnitude pruning: 50% 이상에서 성능 붕괴

핵심 질문:
  재학습 없이(one-shot), 한 번에 LLM을 정확하게 프루닝할 수 있는가?

2. 제안 방법

문제 정의: 레이어별 재구성

각 레이어에서의 목표:
  min_Ŵ ||WX - ŴX||²₂   subject to: Ŵ의 일부 원소 = 0

  W: 원래 가중치, Ŵ: 프루닝된 가중치
  X: 캘리브레이션 데이터의 입력 활성화
  → 프루닝 후에도 레이어 출력이 최대한 유사하게 유지

GPTQ와의 연결

SparseGPT의 핵심 관찰:
  GPTQ(양자화)의 행 단위 최적 보상 기법이 프루닝에도 적용 가능

GPTQ: 가중치를 양자화할 때 발생하는 오차를 아직 처리 안 한 가중치에 분배
SparseGPT: 가중치를 제거(0으로)할 때 발생하는 오차를 남은 가중치에 분배

공통 수학적 구조:
  Hessian H = 2XX^T를 활용한 최적 보상
  → 열 단위 순차 처리로 O(d³) 대신 효율적 계산

프루닝 + 보상 알고리즘

열 j를 처리할 때:
  1. 마스크 결정: |w_j| / [H⁻¹]_jj 기준으로 프루닝할 원소 선택
     → 단순 크기가 아니라 Hessian 가중 크기 사용
     → "제거 비용이 적은" 가중치를 선택

  2. 선택된 원소를 0으로 설정

  3. 보상 업데이트: 나머지 열(j+1, j+2, ...)의 가중치를 조정
     δ = -w_pruned / [H⁻¹]_jj × H⁻¹_j,:
     → 제거로 인한 출력 오차를 미처리 가중치에 최적 분배

→ GPTQ와 동일한 구조, 양자화 대신 프루닝을 적용

효율적 구현

128열씩 블록 처리:
  - 블록 내에서 Hessian 역행렬 업데이트
  - 블록 간 lazy batch update
  → 175B 모델도 단일 GPU에서 수 시간 내 완료

반구조적(semi-structured) 희소성 지원:
  N:M 패턴 (예: 2:4 — 4개 중 2개를 0으로)
  → NVIDIA A100의 Sparse Tensor Core에서 2배 가속 가능

3. 실험 결과

3.1 OPT-175B Perplexity (WikiText-2)

방법50% 희소60% 희소2:4 반구조적
Dense (원본)8.348.348.34
Magnitude Pruning22.451875.618.32
SparseGPT8.529.129.43

60% 제거해도 perplexity 0.78만 증가 — Magnitude pruning은 완전 붕괴

3.2 다양한 모델 크기

OPT 모델 시리즈, 50% 비구조적 프루닝:

모델Dense PPLSparseGPT PPL증가량
OPT-125M27.6532.12+4.47
OPT-1.3B14.6215.89+1.27
OPT-6.7B10.8611.24+0.38
OPT-30B9.569.72+0.16
OPT-175B8.348.52+0.18

모델이 클수록 프루닝에 강건 — 대형 모델이 더 많은 중복성 보유

3.3 양자화와 결합

설정OPT-175B PPL
Dense FP168.34
50% sparse8.52
4-bit quantized8.78
50% sparse + 4-bit9.15

프루닝 + 양자화 결합 가능 — 메모리 절감 효과 배가

3.4 프루닝 속도

모델MagnitudeSparseGPT
OPT-175B즉시~4시간 (A100 1대)

→ 재학습(수주) 대비 압도적으로 빠름


4. 한계점

  • 비구조적 희소성의 하드웨어 활용: 임의 위치의 0은 일반 GPU에서 속도 향상 없음 → 2:4 구조적 패턴 또는 전용 라이브러리 필요
  • 70% 이상에서 성능 저하: 175B에서도 70% 이상 프루닝하면 perplexity 급증
  • 태스크별 효과 차이: Perplexity 유지 ≠ 모든 다운스트림 태스크 유지 → 일부 태스크에서 불균형적 성능 하락 가능
  • 캘리브레이션 데이터 의존: 128개 샘플의 캘리브레이션 데이터 선택에 따라 결과 변동
  • Hessian 계산 비용: 레이어별 Hessian 계산이 필요하므로 단순 magnitude pruning보다 느림
  • 동적 희소성 미지원: 프루닝 마스크가 고정 → 입력에 따라 다른 가중치를 활용하는 방식 아님

5. 의의와 영향

  • LLM 프루닝이 가능하다는 existence proof: 이전에는 "LLM은 프루닝하면 망가진다"는 인식이 지배적
  • GPTQ(양자화)와 동일한 수학적 프레임워크 → 양자화와 프루닝의 통합 이론 기여
  • 후속 연구 Wanda(더 단순한 기준), LoRAPrune, ShortGPT 등의 직접적 기반
  • 프루닝 + 양자화 결합으로 극한 모델 압축 가능성 제시
  • NVIDIA의 2:4 Sparse Tensor Core와 연결 → 실용적 가속 경로 존재

6. 💬 리뷰어 코멘트

SparseGPT의 가장 놀라운 결과는 "175B 모델의 가중치 60%를 제거해도 거의 동일한 품질"이라는 것이다. 이는 LLM이 엄청난 양의 중복성(redundancy)을 가지고 있음을 시사한다. 모델의 실제 유효 파라미터 수는 명목 파라미터 수보다 훨씬 적을 수 있다.

GPTQ와의 관계가 흥미롭다. GPTQ의 저자(Frantar)가 SparseGPT도 저술했으며, 동일한 Hessian 기반 보상 프레임워크를 양자화에서 프루닝으로 확장했다. 이는 "모델 압축의 수학적 통합 이론"을 향한 진전이다. 이후 Wanda가 이 프레임워크를 더 단순화하여, AWQ가 GPTQ를 단순화한 것과 정확히 대응되는 패턴이 나타난다.

실용적 관점에서, 비구조적 프루닝의 가장 큰 걸림돌은 하드웨어 가속이다. 임의 위치의 0은 일반 GPU에서 건너뛰지 못한다. 이 문제가 해결되지 않으면 프루닝은 양자화보다 실전 영향이 제한적일 수 있다.


관련 논문: GPTQ, Wanda, Magnitude Pruning, Movement Pruning, AWQ

0개의 댓글