https://arxiv.org/abs/1803.03635
The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks
Neural network pruning techniques can reduce the parameter counts of trained networks by over 90%, decreasing storage requirements and improving computational performance of inference without compromising accuracy. However, contemporary experience is that
arxiv.org
이 논문은 학습을 하고, 가중치가 별 역할을 하지 못하면 없애고, 다시 가중치를 원래대로 초기화 한 뒤, 다시 학습을 진행하는 방식으로 진행합니다.
LLM에 적용할 수 있을진...

| 문제 상황 | - 프루닝(pruning) 기법은 학습된 모델의 파라미터를 90% 이상 줄여도 정확도를 유지 가능 - 그러나 프루닝으로 얻은 작은 네트워크를 처음부터 학습하면 성능이 떨어짐 - “그렇다면 처음부터 잘 학습될 수 있는 작은 네트워크가 원래 큰 네트워크 안에 존재하지 않을까?” |
| 방법론 | Iterative Magnitude Pruning + Resetting 1) 무작위 초기화된 대규모 네트워크 θ_0 학습 2) 가중치 절댓값이 가장 작은 p% 연결 제거 (레이어별 프루닝) 3) 남은 가중치를 원래 초기값( θ_0 )으로 복구 4) 다시 학습 5) 위 과정을 반복하여 점점 작은 Winning Ticket 탐색 - One-shot pruning 대비 Iterative pruning이 더 작은 네트워크에서 성능 유지 가능 - 검증: 원래 초기화 유지 vs 랜덤 재초기화 vs 동일 파라미터 수의 랜덤 스파스 네트워크 비교 |
| 실험 데이터 | - MNIST: LeNet-300-100 (Fully-Connected) - CIFAR-10: Conv-2, Conv-4, Conv-6 (VGG 변형), VGG-19, ResNet-18 |
| 학습 설정 | - Optimizer: Adam, SGD, Momentum - 초기화: Gaussian Glorot - 프루닝 비율: Fully-connected 20%, Conv 10~20%, Output Layer 절반 비율 - Early Stopping: 최소 Validation Loss 시점 - 학습률 조정: 깊은 네트워크(VGG, ResNet)에서 Learning Rate Warmup 필수 |
| 주요 결과 | - LeNet(MNIST): 파라미터 10 ~ 20%만 남겨도 원본보다 빠르고 정확도 ↑ - Conv 계열(CIFAR-10): 정확도 2 ~ 3% 상승, 학습 속도 2.5~3.5배 빨라짐 - VGG-19, ResNet-18: 기본 학습률에서는 실패, Warmup 사용 시 Winning Ticket 발견 - 랜덤 재초기화 시 성능 급락 → 초기화의 중요성 입증 - Winning Ticket은 동일 파라미터 수의 랜덤 구조보다 일반화 성능 우수 |
| 기여 | 1. 처음부터 학습 가능한 소형 서브네트워크(Winning Ticket)의 존재 실험적 증명 2. Iterative pruning이 One-shot보다 효과적임을 제시 3. 초기화와 구조의 결합이 학습 성능을 결정함을 실험적으로 규명 4. Winning Ticket이 원본보다 빠르고 일반화 성능이 높을 수 있음 제시 |
| 한계 | - 소규모 데이터셋(MNIST, CIFAR-10) 중심, 대규모 데이터셋(ImageNet) 미검증 - Iterative pruning은 연산량이 매우 큼(동일 모델 반복 학습 15회 이상) - 비구조적 프루닝은 실제 하드웨어 최적화와 거리가 있음 - 초기화·구조 특성을 이론적으로 완전히 설명하지 못함 |
| 응용 포인트 | - NLP, Speech 등 다른 도메인 모델에서도 동일 아이디어 적용 가능 - Transformer에서 Attention Head, FFN 노드 단위 프루닝 + 초기화 복원 실험 가능 - Early stopping, learning rate warmup, layer-wise pruning 비율 조절이 핵심 튜닝 포인트 |
https://arxiv.org/abs/2104.15023
Post-training deep neural network pruning via layer-wise calibration
We present a post-training weight pruning method for deep neural networks that achieves accuracy levels tolerable for the production setting and that is sufficiently fast to be run on commodity hardware such as desktop CPUs or edge devices. We propose a da
arxiv.org
| 문제 상황 | - DNN은 높은 정확도를 달성하지만 연산량·메모리 사용량이 크다 → 엣지/저전력 환경에서 배포 어려움. - 기존 pruning은 학습 단계에서 진행되어 원본 학습 코드와 데이터 필요. - Post-training 환경(모델만 있고 학습 데이터 없음)에서 pruning 시 정확도 손실이 큼. - 기존 data-free pruning은 40% 이상 sparsity에서 정확도 하락 심각. - 목표: 데이터 없거나 소량만 있어도 높은 sparsity에서 정확도 손실 ≤1~3% 달성. |
| 핵심 개념 (질문 포함) | 1. 전역 sparsity 목표: 모델 전체에서 제거할 weight 비율을 설정(예: 50% → 전체 weight 절반 제거). 레이어별 sparsity는 중요도 기준(L2-normalized magnitude)으로 자동 조정. 2. Bias & Variance Correction: pruning 후 왜곡된 weight 분포(mean, var)와 출력 분포(bias)를 원래 dense 모델과 동일하게 보정해 feature 흐름 안정화. 3. Cubic sparsity schedule: 낮은 sparsity에서 시작해 목표 sparsity까지 세제곱 곡선으로 점진 증가 → 모델이 변화에 적응, 정확도 하락 최소화. |
| 방법론 | Post-training sparsity pipeline ① Layer-wise sparsity rate selection: L2-normalized magnitude로 weight 중요도 산출, 전역 sparsity 목표를 맞추면서 레이어별 비율 결정(BN fusing 대응). ② Bias & variance correction: weight 스케일·mean·var 복원, activation bias 보정(원본 dense 모델의 입력 활성값 사용, one-shot 수행). ③ Layer-wise fine-tuning (local KD loss): 원본과 pruned 레이어의 출력 activation 차이를 MSE로 최소화(Adam, lr_w=1e-5, lr_b=1e-4). ④ Cubic sparsity schedule: 초기 낮은 sparsity에서 점진적으로 증가. ⑤ Post-training quantization: INT8(activation=per-tensor, weight=per-channel) 적용, sparse weight의 양자화 노이즈 적음. ⑥ Data-free 확장: FractalDB-1k(random colorization) synthetic 이미지로 bias correction과 fine-tuning 수행. |
| 실험 | - 모델: ResNet18/50, MobileNetV1/V2, GoogleNetV4, TinyYOLOv2, RetinaFace, BERT-base, NCF 등. - 데이터 기반 / data-free 모두 테스트. - Ablation: sparsity criterion 비교, bias correction 유무, fine-tuning 하이퍼파라미터, sparsity schedule 효과. - Fine-tuning 데이터: 수백 장으로 충분, train/val 차이 없음, overfitting 거의 없음. - Data-free 입력: White noise, FractalDB(gray/colorized) 비교. |
| 결과 | - 데이터 있음: ResNet50(ImageNet) 65% sparsity + INT8, Top-1 drop ~ 1%. - 데이터 없음: 50% sparsity, Fractal 이미지 사용 시 Top-1 drop 1.53% (white noise 대비 개선). - Quantization 병행해도 정확도 손실 미미. - 다양한 모델에서 40 ~ 70% sparsity 달성, 데이터 있는 경우 정확도 손실 ≤1%. |
| 기여 | 1. 데이터 없는 post-training pruning에서도 SOTA 수준 정확도 달성. 2. BN fusing 환경에서 효과적인 L2-normalized magnitude 기반 layer-wise sparsity 결정. 3. Bias & variance correction으로 pruning 충격 완화. 4. Local KD loss 기반 레이어별 미세 보정으로 정확도 향상. 5. Fractal synthetic 이미지 활용으로 data-free pruning 성능 향상. |
| 한계 | - Unstructured pruning에만 적용, Structured pruning 검증 없음. - Data-free 성능은 real-data 대비 1~3% 낮음. - 주로 CV 중심, NLP·다른 모달리티 적용 제한적. - 초대형 모델에서 레이어별 tuning 시간이 길어질 수 있음. |
| 학습 데이터 | - 데이터 있음: 모델 학습 시 사용한 train 또는 val 이미지 일부(수백 장). - 데이터 없음: FractalDB-1k(512×512 fractal 이미지, random colorization), white noise 비교. |
| 학습법 | - Batch size=50, Adam(lr_w=1e-5, lr_b=1e-4), weight decay=0. - Loss: MSE(layerwise KD). - Sparsity: cubic schedule(초기 10%, 목표 예: 50%, 10 iteration 증가). - Quantization: symmetric per-tensor(activation), symmetric per-channel(weight). |
https://arxiv.org/abs/2301.12900
DepGraph: Towards Any Structural Pruning
Structural pruning enables model acceleration by removing structurally-grouped parameters from neural networks. However, the parameter-grouping patterns vary widely across different models, making architecture-specific pruners, which rely on manually-desig
arxiv.org
이 논문에선 의존성을 찾아서 그루핑 후 평균이 0에 가까워지도록 학습(중요하지 않도록) => 그 그룹은 없애도 된다
| 문제 상황 | - 구조적 프루닝은 채널·필터 단위로 파라미터를 제거해 속도와 메모리 효율을 높임 - 하지만 레이어 간 구조적 의존성(Dependency) 때문에 일부만 제거하면 네트워크 구조가 깨짐 (예: Residual, Dense connection) - 기존 방식은 모델별 수작업 그룹화로만 처리 가능 → 새로운 아키텍처나 복잡한 구조(CNN, RNN, GNN, Transformer)에 일반화 불가 |
| 목표 | - 모든 아키텍처에 적용 가능한 자동 의존성 분석 + 그룹 단위 프루닝 프레임워크 구축 - 프루닝 후에도 네트워크 구조와 성능을 최대한 유지 |
| 방법론 | 1. 네트워크 분해: 레이어를 입력/출력 단위(f⁻, f⁺)로 세분화 2. 의존성 규칙 정의: • Inter-layer: 레이어 간 연결 존재 시 동일 그룹 • Intra-layer: 입력과 출력이 동일 프루닝 스킴이면 동일 그룹 3. DepGraph 생성: 인접 관계 기반 그래프 작성 (Transitive Reduction) 4. 그룹화: DepGraph 순회로 최대 연결 컴포넌트 추출 → 그룹 생성 5. 그룹 단위 희소성 학습: L2-norm 규제(γk)로 그룹 전체를 0에 가깝게 학습 6. 프루닝 & 미세조정: Norm이 작은 그룹 제거 후 Fine-tuning |
| 실험 데이터 | - 이미지: CIFAR-10, CIFAR-100, ImageNet - 텍스트: AGNews - 그래프: PPI - 3D 포인트 클라우드: ModelNet40 |
| 학습 세팅 | - 사전학습 모델 → 프루닝 → 작은 LR로 Fine-tuning - Sparse learning: 그룹 단위 L2 규제 + sparsity 스케줄 - 중요도 기준: Norm 기반 |
| 주요 실험 | - CIFAR-10 ResNet-56: 2.57× 속도 향상, 정확도 +0.11% (93.53 → 93.64) - ImageNet ResNet-50: 2× 속도 향상, 정확도 -0.32% - LSTM, DGCNN, GAT 등 비이미지 모델에서도 8~16× 속도 향상, 정확도 손실 <1% |
| 주요 결과 | - 그룹 단위 일관된 sparsity가 없으면 성능 급락 - Conv-only grouping보다 Full grouping이 성능 우수 - Learned sparsity가 uniform sparsity보다 대부분의 경우 정확도 높음 |
| 기여 | - 최초의 범용 구조적 프루닝 프레임워크(CNN, RNN, GNN, Transformer 지원) - 수작업·모델 특화 의존성 분석 불필요 - 단순 Norm 기반 중요도만으로도 SOTA 수준 성능 |
| 한계 | - Norm 기반 중요도는 데이터·태스크 특화 기준보다 한계 있음 - Sparse learning 단계로 인해 학습 시간 증가 - 학습 없는 직접 프루닝에는 적용 불가 |
https://arxiv.org/abs/2203.15996
TextPruner: A Model Pruning Toolkit for Pre-Trained Language Models
Pre-trained language models have been prevailed in natural language processing and become the backbones of many NLP tasks, but the demands for computational resources have limited their applications. In this paper, we introduce TextPruner, an open-source m
arxiv.org
기존 Pruning연구는 Transformer 구조 줄이는 것에 집중했지 voca 크기 축소는 부족했다.
=> 안 쓰는 토큰 제거하여 embedding과 lm head 차원을 축소, 중요도 기반 attention head와 ffn 제거, 그리고 이 두 가지를 동시에 진행하는 파이프라인을 만들었다.
| 문제 상황 | - 대형 PLM(Pre-trained Language Model)은 NLP 성능이 뛰어나지만, 메모리·연산량 부담으로 실제 서비스에 배포가 어려움 - 기존 pruning 연구는 Transformer 구조 압축에 집중, vocabulary pruning은 상대적으로 미흡 - 모델 구조 분석과 pruning을 간단·빠르게 할 수 있는 범용 툴 부재 |
| 방법론 | TextPruner: 구조적(Structured) & Optimization-free 방식의 Pruning Toolkit ① Vocabulary Pruning: Downstream task에서 거의 쓰이지 않는 토큰 제거 → Embedding & LM head 차원 축소 ② Transformer Pruning: Attention head와 FFN neuron의 중요도(importance score) 기반 제거 - 중요도 점수: Loss 변화의 1차 테일러 근사(∂L/∂Θ × Θ) 또는 KL Divergence(Self-supervised) - Iterative pruning 지원, Uniform/Uneven 구조(UHF) 모두 가능 ③ Pipeline Pruning: Vocabulary + Transformer pruning 통합 자동 실행 - Python API & CLI 지원, HuggingFace Transformers 호환 - 설정(config)으로 pruning 전략 제어(목표 head 수, FFN 크기, iteration 수 등) |
| 학습 데이터 | - Text Classification: XNLI (영어 fine-tune 후 영어/중국어 테스트) - MRC: SQuAD (RoBERTa base) - NER: CoNLL-2003 (BERT base) - 모델: base size (12 layers, hidden=768, FFN=3072, heads=12) |
| 학습 및 Pruning 설정 | - Transformer pruning: Importance score 계산용 dev set 또는 train set subset 사용 - Iteration 수(niters): 최소 8 이상 권장 (1~2회 시 성능 급락) - Self-supervised: KL(stopgrad(q) |
| 실험 결과 | 1. Vocabulary Pruning (XNLI): 모델 크기 ~60% 감소, 성능 손실 ≤ 0.5% - ex) EN+ZH 토큰 유지 시 1060MB → 438MB 2. Transformer Pruning (XNLI): UHF(uneven heads/FFN) 구조가 성능 대비 압축률 우수 3. Self-supervised Pruning: supervised와 성능 유사, 일부 경우 더 우수 4. Iteration 영향: niters ↑ 시 성능 향상, 8 이상에서 안정화 5. Cross-lingual 영향: EN dev set 기반 pruning 시 ZH 성능도 비슷한 폭으로 유지 |
| 기여 | - Vocabulary + Transformer를 결합한 범용 pruning 툴킷 제공 - Self-supervised pruning 제안: label 없이 pruning 가능 - 다양한 모델·태스크 호환, 설정 기반 구조 탐색 가능 - 수 분 내 pruning 가능, HuggingFace 호환성 |
| 한계 | - Optimization-free 방식이라 압축률↑ 시 성능 손실 가능성 큼 - 실험은 base 모델·제한된 태스크 위주, 대규모·생성 모델(T5 등) 적용 미검증 - Vocabulary pruning은 특정 언어/도메인 전용 모델에 적합, 범용성 제한 - Hardware-aware pruning 최적화는 일부 설정에 한정 |
https://arxiv.org/abs/2301.00774
SparseGPT: Massive Language Models Can Be Accurately Pruned in One-Shot
We show for the first time that large-scale generative pretrained transformer (GPT) family models can be pruned to at least 50% sparsity in one-shot, without any retraining, at minimal loss of accuracy. This is achieved via a new pruning method called Spar
arxiv.org
보통 낮은 가중치 를 날리면서 프루닝을 진행함 => 그러나 이렇게 진행하면 큰 모델에선 힘들다
SparseGPT는 지우고나서, 변한 출력을 수학적으로 보정해서 성능을 유지한다.
전체 모델을 한번에 하면 너무 크니, Layer 별로 처리해서 계산양을 줄인다.
가중치를 줄여도 출력은 거의 동일하게 된다!
| 문제 상황 | - GPT-175B, BLOOM-176B 같은 초대형 LLM은 성능은 뛰어나지만 메모리·추론 비용이 매우 큼 - 기존 압축은 주로 양자화에 집중, 프루닝은 작은 모델에만 적용 성공 사례 - 대규모 모델 프루닝은 재학습(파인튜닝) 필요 → 수 주~수 개월 비용 불가 - 기존 one-shot 프루닝 기법은 1B↑ 모델에서 시간·메모리 한계로 비실용적 |
| 목표 | - 100B+ 파라미터 LLM을 재학습 없이(one-shot) 50~60% 희소화 - 정확도 손실을 최소화하며 단일 GPU(80GB)로 수 시간 내 처리 가능 |
| 방법론 (상세) | 1. Layer-wise Sparse Regression 기반 프루닝 - 모델 전체를 레이어 단위로 쪼개 처리 - 각 레이어에서 입력 X_ℓ와 출력 차이를 최소화하도록 희소화된 가중치 W_ℓ 재구성 2. OBS(Optimal Brain Surgeon) 기반 가중치 영향도 계산 - 각 가중치 제거 시 출력 변화 오차: ϵ_m = w_m^2 / {[H^−1]_(mm)} - H = XX^⊤ (Hessian), 영향도가 작은 가중치부터 제거 3. Partial Update 전략 - 가중치 제거 후 모든 남은 가중치를 조정하지 않고, 컬럼 이후 가중치만 조정 → 연산량 절감 4. Hessian Synchronization (역행렬 재활용) - 일반적으로 row마다 pruning mask가 달라 역행렬을 매번 새로 계산해야 함 → 비효율 - 컬럼 순서대로 프루닝하여 모든 row가 같은 역행렬을 공유 → 계산 복잡도 O(d_{hidden}^3)로 감소 (기존 exact는 O(d_{hidden}^4) 5. Adaptive Mask Selection - 128컬럼 단위(Bs = 128)로 블록 마스크 선택 - 각 컬럼마다 희소도 유연 조정 가능 (민감한 컬럼은 덜 제거) - OBS 오차값 기반으로 블록 내 가장 영향 적은 가중치 선택 6. Semi-structured 확장 - GPU 가속 친화적 n:m 패턴(예: 2:4, 4:8) 지원 - m개 중 영향도 최소 n개를 제거, 각 블록 내에서 균등하게 분포 7. Joint Pruning + Quantization - GPTQ(양자화)와 동일한 Column-wise Greedy 구조 - SparseGPT 과정 중 freeze된 가중치를 즉시 양자화 → 한 번의 패스에서 두 압축 수행 - 예: 50% 희소 + 4bit → 메모리는 3bit 모델과 같으나 정확도 우수 |
| 실험 설정 | - 모델: OPT 전 라인업(125M~175B), BLOOM-176B - 데이터: C4 데이터셋 중 128×2048 토큰 샘플 (calibration) - 평가 지표: Perplexity(raw-WikiText2, PTB, C4 subset), Zero-shot(Lambada, ARC-e/c, PIQA, StoryCloze) - 환경: NVIDIA A100 80GB 단일, 레이어 순차 처리, one-shot, no fine-tune |
| 주요 결과 | - OPT-175B, BLOOM-176B에서 50~60% 희소화 시 PPL 거의 동일 - Magnitude pruning은 10~30% 이상에서 급격한 성능 붕괴 - Semi-structured(2:4, 4:8)도 대규모 모델에서 PPL 상승 ≤0.4 수준 - 50%+4bit 조합은 동등 용량 3bit 모델보다 더 정확 - 부분 2:4 적용 시 후반 레이어 민감, 앞쪽부터 프루닝 권장 |
| 기여 | - 100B+ LLM one-shot 고정밀 프루닝 최초 달성 - Hessian 재활용·Partial Update로 기존 대비 수십~수백 배 속도 향상 - 양자화·n:m 패턴과 결합 가능, 메모리·연산 동시 절감 - “대규모 모델이 오히려 희소화에 강하다”는 실험적 근거 제시 |
| 한계 | - 소규모 모델에서 Semi-structured 시 정확도 손실 큼 - Unstructured sparsity GPU 가속은 최적화 여지 있음 - Calibration 데이터 품질·수량에 따라 성능 민감 - 실제 서비스 적용에는 커널 수준 최적화 필요 |
https://arxiv.org/abs/2306.11695
A Simple and Effective Pruning Approach for Large Language Models
As their size increases, Large Languages Models (LLMs) are natural candidates for network pruning methods: approaches that drop a subset of network weights while striving to preserve performance. Existing methods, however, require either retraining, which
arxiv.org
SparseGPT보다 빠르다는 장점을 가지고 있습니다 ㅎㅎ
Weight update는 필요없지만, 극단적으로 sparsity에선 손실이 있네요
| 문제 상황 | - LLM은 수십억~수백억 개의 파라미터로 인해 추론·저장 비용이 매우 큼 - 기존 magnitude pruning은 LLM에서 낮은 sparsity에서도 성능 급락 - SparseGPT는 정확도가 높지만 Hessian 역행렬 계산 등 고비용 연산 필요 - 재학습 없이, 빠르고 효과적으로 pruning할 방법 부족 |
| 방법론 (Wanda) | 1. Weight와 Activation 모두 고려한 중요도 계산 - 각 weight 절댓값과 해당 입력 채널의 activation 크기를 곱해 중요도 산정 - activation 크기가 크면 weight가 작아도 유지, 반대의 경우 제거 2. 출력 뉴런 단위 비교(per-output) - 한 출력 뉴런(row)에 연결된 weight들끼리만 비교하여 일정 비율 제거 - 모든 출력 뉴런에 균형 있게 sparsity 적용 3. Pruning 절차 - Calibration 데이터(예: 128개 시퀀스)로 각 layer의 입력 activation 크기 측정 - 각 layer에서 중요도 계산 후 per-output 방식으로 낮은 순서 제거 - 이전 layer pruning 반영 후 다음 layer activation 갱신 - Embedding layer와 LM head는 제외 |
| 실험 | - 모델: LLaMA(7B ~ 65B), LLaMA-2(7B ~ 70B), OPT, BLOOM, Pythia - Sparsity: Unstructured 50%, Structured 4:8, 2:4 - 평가: Zero-shot(7개 task, EleutherAI LM Harness), Language Modeling(WikiText perplexity) - Baseline: Magnitude pruning, SparseGPT |
| 결과 | - Unstructured 50% sparsity에서 magnitude pruning 대비 큰 폭 향상, SparseGPT와 유사 성능 - 대형 모델(LLaMA-65B, LLaMA-2-70B)은 dense 성능과 거의 동일 - Structured sparsity에서도 대형 모델에서는 SparseGPT와 비슷하거나 우수 - Pruning metric 계산 속도는 SparseGPT 대비 최대 300배 빠름 - Calibration 데이터가 적어도 성능 하락 적음 |
| 기여 | 1. Weight와 activation을 함께 고려한 단순하면서 효과적인 pruning 기준 제안 2. Per-output 기준 pruning 전략이 LLM에 특히 효과적임을 규명 3. 재학습·weight update 없이 단일 forward pass로 pruning 가능 4. SparseGPT 수준의 성능을 훨씬 적은 계산량으로 달성 |
| 한계 | - Structured sparsity(특히 소형 모델)에서는 일부 경우 SparseGPT가 우세 - 극단적 sparsity(70% 이상)에서는 성능 급락 - Calibration 데이터가 전혀 없는 환경에서는 metric 추정 어려움 |
'인공지능 > 논문 리뷰 or 진행' 카테고리의 다른 글
| Text Embeddings by Weakly-Supervised Contrastive Pre-training (6) | 2025.08.26 |
|---|---|
| PISCO: Pretty Simple Compression for Retrieval-Augmented Generation (2) | 2025.08.19 |
| Layer by Layer: Uncovering Hidden Representations in Language Models (8) | 2025.08.07 |
| Language Model의 Representation 능력 논문 1 (5) | 2025.08.05 |
| SHEARED LLAMA: ACCELERATING LANGUAGEMODEL PRE-TRAINING VIA STRUCTURED PRUNING (9) | 2025.08.04 |