인공지능/논문 리뷰 or 진행

Language Model 파라미터 감소(Pruning) 논문 2

이게될까 2025. 9. 2. 01:20
728x90
728x90

2025.08.08 - [인공지능/논문 리뷰 or 진행] - Language Model (LM) Pruning 논문 1

 

Language Model (LM) Pruning 논문 1

https://arxiv.org/abs/1803.03635 The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural NetworksNeural network pruning techniques can reduce the parameter counts of trained networks by over 90%, decreasing storage requirements and improving comput

yoonschallenge.tistory.com

여기서 이어지는 pruning에 관련된 논문입니다. 

 

https://arxiv.org/abs/2402.11187

 

LaCo: Large Language Model Pruning via Layer Collapse

Large language models (LLMs) based on transformer are witnessing a notable trend of size expansion, which brings considerable costs to both model training and inference. However, existing methods such as model quantization, knowledge distillation, and mode

arxiv.org

인접한 레이어의 변화량을 합산하여 이전 레이어에 넣고, 뒤쪽 레이어를 제거하는 프루닝이다. 

 

문제 상황 & 목표 LLM 규모 확대로 학습·추론 비용이 커짐.
기존 양자화·증류·프루닝은 HW 의존, 재학습 비용, 구조 변경 등 한계.
레이어 수만 줄이되 내부 차원은 보존하는 간결한 구조적 프루닝을 제안(LaCo).
방법론 요약 RDSC Layer Merge:
인접 m개 레이어의 파라미터 차분을 선행 레이어에 합산해 병합 후 뒤 레이어 제거.
동일 구조 가정하에 SAN/MLP에 독립 적용.
수식: θ_l^*=θ_l+∑_{k=1}^m(θ_{l+k}−θ_l).

Layer Collapse(Algorithm 1):
(1) 상단부터 포인터 l 설정→
(2) RDSC로 K층 병합→
(3) few-shot 집합 D에 대해 최종 레이어 은닉표현 코사인 유사도 계산→
(4) 임계 T 초과 시 채택 후 간격 I만큼 이동, 아니면 1층만 이동→ (5) l<L이면 종료.
하이퍼파라미터 C(병합 폭), [L,H](적용 범위), I(연속 병합 간격), D(보정 문장), T(유사도 임계).
유사도는 최종 레이어 은닉표현의 코사인
동기·타당성 위키 20문장으로 본 인접 레이어 은닉표현 코사인 유사도 ≈ 1(3–28층)
→ 선행 레이어가 뒤 레이어 다수를 근사 대체 가능.
또한 q/k/v·MLP(up/down) 인접 파라미터 L2 차이 작음.
4→1 병합 후에도 표현 유사도 ≥0.996.
실험 설정(모델/벤치마크/평가/환경) 모델: Llama2-7B/13B(영어), Baichuan2-7B/13B(중/영), 디코더 전용 베이스 모델.

벤치마크/평가
: OpenCompass, 5대 영역(Reasoning/Language/Knowledge/Examination/Understanding), PPL & GEN 모드(예: CHID/XSUM은 GEN, WSC는 PPL/GEN).
Dense vs Dense* 재현으로 공정성 확보.

베이스라인
: LLM-Pruner, SliceGPT(비율 동일 또는 약간 낮게 설정).

환경/보정 D
: A100 80GB×8, Llama2는 영위키 10문장, Baichuan2는 중/영위키 5문장씩.
학습 데이터 & 학습법(후학습/재프루닝) 프루닝 자체는 무학습으로 동작.
후학습(Post-training):
LaCo로 프루닝한 Llama2-7B를 영어 ~10억 토큰, Baichuan2-7B를 ~12.5억 토큰(영/중 50:50)으로 추가학습
수백 step 후 빠르게 수렴, 최종 손실이 원 모델 보고치와 유사.

학습 시간/자원 참고:
pruned 7B 후학습이 A100 80GB×4에서 ~28–35h(모델별).

재프루닝(Re-pruning):
후학습 모델을 17층(원 파라미터 55%)까지 추가 축소해도 원 성능의 ~70% 유지.
주요 결과(요약) 종합 성능:
25–30% 프루닝에서 평균 성능 비율(Per.) 80%+ (3/4 모델), 최저도 Baichuan2-7B 73%.
5대 영역 중 4개 영역 우위(Reasoning은 유사).

세부 수치 예:
Llama2-13B 24.7%→ 47.55 (Per. 85.21%), Llama2-7B 27.1%→ 37.46 (80.28%), Baichuan2-13B → 53.94 (87.94%) 등.

PPL(7B, 27%):
Dense 4.46, LaCo 13.93 < SliceGPT 14.51 < LLM-Pruner 17.30.

프루닝 시간(7B, 27%):
LaCo 14.7s, LLM-Pruner 15.9s, SliceGPT 313s.

메모리/속도(13B):
메모리 19,422MB(LaCo) < 25,902MB(Dense), 토큰/s 38.65(LaCo) > 29.98(Dense).
생성 안정성(GEN): CHID/XSUM/WSCG에서 LaCo는 정상 생성, 타 방법은 0.00·반복문 다수.

대규모(70B):
일부 벤치에서 LaCo가 베이스라인 상회.
어블레이션 & 실무 가이드 C 권장:
3–6(또는 4–7).
너무 작으면 성능↓, 너무 크면 루프 조기종료.

I 권장:
1–3.
I=4는 입력 초반층까지 영향→ 성능↓.

T 영향:
작을수록 압축↑·성능↓(예: T=0.25 ⇒ 60.1%/12층, 성능 큰 하락).

D 영향:
10문장 무작위/출처 차이에 둔감(고품질 코퍼스 전제).

유사도 지표:
KL≈0, CKA≈1로 변별력 부족코사인 채택.

Drop vs Merge:
m=1(드롭) < 머지.

Iterative vs Rule:
반복 탐색(LaCo) > 규칙 기반.
기여(Contribution) (1) 무학습으로 30–50% 레이어 직접 제거 가능, 동급 비율 대비 SOTA 상회.
(2) 내부 구조 보존(중간 차원 유지)으로 이식성↑.
(3) 후학습으로 빠른 회복, 자원 소모↓.
(4) 폭넓은 어블레이션 & 동기 분석 제시.
한계(논문 명시) 정밀한 프루닝 비율 직접 제어 불가(T 등 하이퍼로 간접 제어).
이론적 완전성 부재, 더 나은 병합 규칙 여지.

원하시면 위 표를 바로 실험 체크리스트(예: 초기값 C=4–6, I=2, T≈0.65, D=5–10문장, 상·중단 위주)와 함께 HF 가중치 병합 스크립트 템플릿으로 변환해 드릴게요.

더보기

한 줄 핵심

LaCo는 인접한 여러 레이어의 **파라미터 차분을 선행 레이어에 합산(merge)**하여 뒤쪽 레이어들을 직접 제거하는 레이어-단위 구조적 프루닝 기법입니다. 몇 개의 문장으로 얻은 출력 표현 코사인 유사도를 유지하도록 **탐욕적·반복적 병합(Algorithm 1)**을 수행하며, 모델 구조(차원) 불변, 무(또는 극소) 학습, 신속한 추론·적은 메모리를 달성합니다. 약 25–30% 깊이 프루닝에서 원모델 대비 평균 80%대 성능을 유지하며 SOTA 구조적 프루너(LLM-Pruner, SliceGPT)보다 우수합니다.


1) 문제 정의

LLM 규모 확대로 추론/학습 비용 증가. 기존 경량화:

  • 양자화: HW 의존·성능 저하 우려,
  • 지식증류: 소모적 재학습 필요,
  • 프루닝: 비구조적은 HW 의존·성능 손실, 구조적은 모델 내부 구조를 바꿈(이식성 저하).
    LaCo는 **후행 레이어를 선행 레이어로 ‘붕괴’**시켜 구조를 보존한 채 레이어 수를 줄입니다.

2) 핵심 아이디어 & 방법 (step-by-step)

2.1 RDSC Layer Merge (Reserving-Differences while Seeking-Common)

  • 동일 구조의 인접 레이어들 θl+1,…,θl+m\theta_{l+1}, \dots, \theta_{l+m}을 **선행 레이어 θl\theta_l**로 흡수:θl\*=θl+∑k=1m(θl+k−θl)\theta_l^\* = \theta_l + \sum_{k=1}^{m}(\theta_{l+k}-\theta_l)(Self-Attention의 q/k/v 등과 MLP up/down 모두 모듈별로 독립 적용).
    그 후 병합된 뒤쪽 m개 레이어는 제거. 단순 드롭(m=1)보다 머지가 성능상 유리.

2.2 Algorithm 1: Layer Collapse (탐욕적 반복)

  1. 입력: 병합 크기 C, 병합 범위 [L,H], 인접 병합 최소 간격 I, few-shot 보정 문장 집합 D, 유사도 임계치 T.
  2. 반복: 상부에서 시작해 레이어 l의 뒤 **K = min(C−1, 잔여)**개를 RDSC로 병합 → 임시 모델 MtmpM_{tmp} 획득.
  3. 검증: D에 대해 원모델 vs 임시모델의 최종 레이어 은닉표현 코사인 유사도 평균 s 계산.
  4. 수용/조정: s > T 이면 채택(모델 갱신) 후 포인터를 I만큼 하향, 아니면 1만큼만 하향. 범위를 벗어나면 포인터 재조정.
  5. 종료: l < L 이되면 반환.
    복잡도: 최악 O(H×∣D∣)O(H \times |D|) (예: Llama2-13B, H=40, |D|=10이면 최대 400 fwd). 수 분 내 가능.

왜 동작하나? (동기/근거)

  • 인접 레이어 파라미터 L2 차이가 작고(예: q/k/v, MLP up/down)
  • 인접 레이어 출력 표현 코사인 유사도 ≈ 1 (중·상단 대부분),
  • 4개 레이어를 1개로 병합해도 최종 출력 표현과의 유사도 ≥ 0.996.
    ⇒ 하나의 레이어가 여러 개의 뒤 레이어 기능을 근사 대체 가능.

3) 실험 설정

  • 모델: Llama2-7B/13B, Baichuan2-7B/13B (베이스, 디코더 전용). 추가로 70B 일부 실험.
  • 평가: OpenCompass 5대 영역(Reasoning/Language/Knowledge/Examination/Understanding) 다수 벤치마크.
    모드: PPL 우선, GEN(CHID, XSum, WSCG). Dense*는 저자 재현치.
  • 베이스라인: LLM-Pruner, SliceGPT (동일/약간 낮은 프루닝 비율로 공정 비교).
  • 보정 집합 D: 위키피디아에서 문장 10개 내외(모델·언어에 맞춤). A100 80GB×8 환경.

4) 주요 결과

  • 메인(≈25–30% 프루닝)
    평균 성능(전체 벤치마크 평균 / Dense* 대비 %)
    • Llama2-13B: 47.55 / 85.21% (LaCo) vs 36.19 (LLM-Pruner), 34.97 (SliceGPT) — 4/5 카테고리 우위.
    • Llama2-7B: 37.46 / 80.28% (LaCo) vs 32.36, 31.87.
    • Baichuan2-13B: 53.94 / 87.94% (LaCo) vs 36.40, 23.43.
    • Baichuan2-7B: 41.79 / 73.26% (LaCo) vs 38.78, 24.36.
  • GEN 모드 안정성: CHID/XSum/WSCG에서 LaCo는 정상 생성 유지, 베이스라인은 반복/무의미 출력(0점도 다수) 사례.
  • PPL(위키 500문장): Dense 4.46, LaCo 13.93 < SliceGPT 14.51 < LLM-Pruner 17.30 (낮을수록 좋음).
  • 프루닝 시간(7B, 27%): LaCo 14.7s vs LLM-Pruner 15.9s vs SliceGPT 313s (가장 빠름).
  • 메모리/속도(13B): 메모리(MB) LaCo 19,422 < Dense 25,902, 토큰/s LaCo 38.65 > Dense 29.98 (타 프루너는 속도 하락도 관측).
  • 대규모(70B, 30%): 평균 점수 LaCo 57.91 > LLM-Pruner 53.78 > SliceGPT 51.36.

5) 추가 분석

  • Post-training(소규모 추가학습): LaCo로 7B/7B-Bai를 프루닝 후 수억~10억 토큰대로 후학습 시,
    • Llama2-7B는 유의미한 회복(전체 평균 37.46→40.33),
    • Baichuan2-7B는 혼합적(분포 불일치 추정). 학습 커브 급수렴(수백 step 이후 안정).
  • Re-pruning(2단계): 후학습한 7B를 **17층(원의 55%)**까지 추가 축소해도 원성능의 ~70% 유지.
  • 프루닝 비율 변화: 10–25% 구간은 성능 안정, ~50%에서도 대체로 70% 수준 유지(크래시 없음).
  • Ablation:
    • C(한 번에 합치는 레이어 수): 3–6 권장(너무 작으면 성능↓, 너무 크면 루프 조기종료).
    • I(병합 간격): 1–3 양호(입력 초반 레이어 과도 변경 시 성능↓).
    • T(유사도 임계): 작을수록 압축↑/성능↓ — 직관과 일치.
    • D(문장 집합): **출처·크기(5~200)**에 둔감(고품질 코퍼스면 유사).
    • 유사도 지표: KL≈0, CKA≈1로 변별력 부족코사인 채택.
    • Drop vs Merge: 단순 드롭(m=1) < 머지.
    • Rule-based vs Iterative: 규칙 기반도 쓸만하나 반복 탐색(LaCo) 우수.

6) 장점·한계·실무 팁

  • 장점
    • 구조 보존(중간 차원 동일) → 기존 파이프라인 무수정 탑재 용이.
    • **무학습(or 극소 학습)**로 빠른 경량화 + 속도/메모리 개선.
    • 안정성: 높은 비율에서도 모델 붕괴(crash) 없음.
  • 한계
    • 정밀 비율 제어 어려움(하이퍼파라미터로 간접 제어),
    • 엄밀 이론 부재, 더 나은 병합 규칙 여지.
  • 실무 팁(논문 근거 기반)
    • 상·중단 레이어부터 진행, I=2 전후 권장(초반층 과변형 지양).
    • C=4~6, T는 0.65 전후에서 25~30% 근방 달성(모델별 튜닝).
    • D는 5–10문장으로 시작(도메인 대표성만 확보).
    • 생성 안정성이 중요하면 **병합 후 GEN 벤치(요약/상식)**로 룰-아웃.

7) 한 장 요약 표

항목 내용
문제 대규모 LLM의 추론·학습 비용 급증. 기존 양자화/증류/프루닝의 HW 의존·재학습 비용·구조 변경 이슈.
아이디어 인접 레이어 파라미터 차분을 선행 레이어에 합산하여 뒤 레이어를 제거(RDSC Merge). 최종 표현 코사인 유사도 유지 조건으로 반복 병합.
알고리즘 하이퍼파라미터 C,[L,H],I,D,T; s>T면 채택·포인터 I 이동, 아니면 1 이동; 범위 관리. **복잡도 O(H·
근거 인접 레이어 파라미터/표현 유사(cos≈1), 4→1 병합 후 표현 cos≥0.996.
셋업 Llama2/Baichuan 7B·13B(추가 70B), OpenCompass(Reasoning/Language/Knowledge/Exam/Understanding), PPL/GEN, A100×8.
베이스라인 LLM-Pruner, SliceGPT(동등 비율).
정량 결과 25~30%에서 평균 80%대 유지(L2-13B 85.21% 등), GEN 모드 반복/무의미 출력 최소화, PPL/속도/메모리 우위, 70B에서도 우수.
Ablation C(3–6 권장), I(1–3 권장), T(↓→압축↑/성능↓), D(출처·크기 둔감), Merge>Drop, Iterative>Rule.
파이프라인 (선택) 소규모 후학습으로 회복 → (선택) 재프루닝으로 50%대 파라미터까지 축소해도 ~70% 성능.
장점/한계 구조보존·무학습·속도/메모리 이점 / 비율 정밀제어 곤란·이론적 정당화 여지.

8) 재현·적용 체크리스트 (Step-by-Step)

  1. D 준비: 도메인 대표 문장 5–10개.
  2. 초기 하이퍼파라미터: C=4~6, I=2, T≈0.65, [L,H]는 상·중단 위주.
  3. 반복 병합 & 검증: 최종 레이어 은닉표현 코사인 평균 s>T 유지하며 진행.
  4. 안정성 검증: PPL + GEN(요약/상식) 스폿 체크.
  5. (옵션) 후학습 수십수백만수억 토큰으로 빠른 회복 → (옵션) 재프루닝.

필요하면, 위 절차를 HuggingFace 모델 가중치(dict) 레벨에서 q/k/v, MLP up/down을 키별로 병합하는 유틸 스크립트 형태로 바로 만들어 드릴게요.

 

좋아요. 업로드하신 LaCo: Large Language Model Pruning via Layer Collapse방법론을 논문 근거로만, 단계별로 분해해 설명하고, 이어서 타당성 검증(동기·이론적 근거·실험적 근거·어블레이션)까지 정리하겠습니다.


방법론 한눈에 보기

LaCo는 인접한 여러 레이어의 **파라미터 차분(parameter differences)**을 **선행 레이어에 합산(merge)**하여 뒤쪽 레이어들을 직접 제거하는 구조적 프루닝입니다. 병합 후에도 중간 차원 등 내부 구조는 그대로 유지되므로, 기존 시스템에 무수정으로 붙이기 쉽습니다.


Step-by-Step: LaCo의 두 축

(A) RDSC Layer Merge (Reserving-Differences-while-Seeking-Common)

  • 표기: 레이어 ll의 모든 파라미터(자기주목 SAN의 q,k,vq,k,v와 MLP 포함)를 θl\theta_l로 둡니다. θl+1,…,θl+m\theta_{l+1},\dots,\theta_{l+m}θl \theta_l에 병합해 θl\*\theta_l^\*를 만듭니다.
  • 병합식(식 (1)):θl\*  =  θl  +  ∑k=1m(θl+k−θl)\theta_l^\* \;=\; \theta_l \;+\; \sum_{k=1}^{m} (\theta_{l+k}-\theta_l)여기서 (θl+k−θl)(\theta_{l+k}-\theta_l)레이어 간 파라미터 차분입니다. 동일한 구조를 전제로 SAN과 MLP에 독립적으로 적용한 뒤, 병합된 mm개 레이어는 제거합니다.
  • 직관: (a) 먼저 **차이를 보존(Reserving-Differences)**하고, (b) 이를 선행 레이어에 **공통화(Seeking-Common)**하여 여러 레이어의 기능을 대체한다는 발상입니다(그림 1).

작은 예시
예를 들어 C=4C=4일 때, 레이어 ll의 뒤 **3개(l+1,l+2,l+3l+1,l+2,l+3)**를 ll로 흡수합니다. 즉
θl\*=θl+(θl+1−θl)+(θl+2−θl)+(θl+3−θl)\theta_l^\*=\theta_l+(\theta_{l+1}-\theta_l)+(\theta_{l+2}-\theta_l)+(\theta_{l+3}-\theta_l).
이 연산을 **SAN(q,k,v)**와 MLP(up/down) 각각의 가중치에 적용하고, 흡수된 l+1,l+2,l+3l+1,l+2,l+3 레이어는 제거합니다.


(B) Layer Collapse (Algorithm 1): “안전한” 반복 병합 루프

하이퍼파라미터

  • C: 한 번에 합칠(=뒤에서 없앨) 레이어 수 + 1
  • [L,H]: 병합을 수행할 레인지(보통 상·중단을 우선)
  • I: 연속 병합 사이의 최소 간격(급격한 성능 붕괴 방지)
  • D: 소수의 보정 문장(few-shot calibration samples)
  • T: 원 모델과 최종 레이어 표현의 코사인 유사도 임계값

루프 절차

  1. 초기화: M\*←MM^\* \leftarrow M, 포인터 l←H−Cl \leftarrow H-C.
  2. 병합 제안: K=min⁡(C−1, Layer_Count(M\*)−l)K=\min(C-1,\ \text{Layer\_Count}(M^\*)-l)를 계산하고, ll 뒤의 KK개 레이어를 RDSC 병합하여 임시 모델 MtmpM_{\text{tmp}}을 만듭니다.
  3. 유사도 평가: DD의 각 문장에 대해 원 모델 M과 **임시 모델 MtmpM_{\text{tmp}}**로 추론하고, **“최종 레이어 출력(hidden-states)”**의 코사인 유사도를 계산해 평균 ss를 얻습니다.
  4. 수용/조정:
    • s>Ts>T면 병합 채택(M\*←MtmpM^\*\leftarrow M_{\text{tmp}}), 포인터 l←l−Il\leftarrow l-I.
    • s≤Ts\le T면 병합 거절, 포인터 l←l−1l\leftarrow l-1.
    • 연속 채택으로 ll이 현재 레이어 수 범위를 벗어나면 l←Layer_Count(M\*)−Cl\leftarrow \text{Layer\_Count}(M^\*)-C리셋.
  5. 종료 조건: l<Ll<L이면 루프 종료, M\*M^\* 반환. 최악 시간복잡도O(H×∣D∣)O(H\times |D|)로, 예시(Llama2-13B, 40층, ∣D∣=10|D|=10)에서도 수 분 내 완료됩니다.

왜 이게 동작하나? (방법론의 동기와 설계 타당성)

1) 인접 레이어의 유사성이 높다 → 병합해도 표현이 크게 안 바뀜

  • 인접 레이어의 파라미터 L2 변화량(SAN의 q,k,vq,k,v, MLP up/down)이 전반적으로 작다(예: 거대 행렬 크기를 고려하면 원소 수준 변화는 미미).
  • 위키 문장 20개로 본 인접 레이어 간 은닉표현 코사인 유사도(3~28층 구간) 거의 1에 가깝다. ⇒ 하나의 레이어가 뒤의 여러 레이어를 근사 대체할 수 있다는 가설을 뒷받침.

2) “최종 레이어 표현”을 지표로 삼는 합리성

  • KL/CKA 같은 분포 거리를 써보면, 결과가 상수 수준으로 구분력이 거의 없다(KL≈0, CKA≈1). 그래서 코사인 유사도가 더 변별력 있는 안전판으로 채택됨.

3) 구조 보존(차원 불변) → 시스템 이식성이 높다

  • 레이어 수만 줄이고 중간 차원 등 내부 구조는 유지하므로, 프루닝 모델을 기존 응용에 그대로 붙일 수 있다.

실험적 타당성: 재현 가능한 검증들

(1) 평가 설계 & 공정성

  • OpenCompass의 공식 스크립트로 zero/few-shot 평가, PPLGEN 모드 사용(예: CHID, XSum은 GEN; WSC는 PPL/GEN 모두). Dense(공식)와 Dense* (저자 재현)를 비교해 오차가 대부분 5% 이내임을 보여 세팅의 건전성을 확인. 베이스라인은 LLM-Pruner, SliceGPT(동일 또는 더 낮은 프루닝 비율로 설정)로 공정 비교를 수행.

(2) 메인 결과: 평균 성능·안정성

  • 4개 모델(LLama2-7B/13B, Baichuan2-7B/13B) 전반에서 LaCo가 평균 점수·범주별 평균에서 대체로 우수. Dense* 대비 평균 성능 비율(Per.)이 4모델 중 3모델에서 80% 이상(최저 Baichuan2-7B도 73%). 크래시 없이 대부분 70% 이상 유지.

(3) 생성(Generation) 안정성

  • GEN 모드(예: CHID, XSUM, WSCG)에서도 LaCo가 정상 출력을 유지하며, 베이스라인 대비 반복/무의미 출력 문제가 적음을 보고.

(4) 후학습(Post-training) & 재프루닝(Re-pruning) 파이프라인

  • 후학습으로 LaCo-프루닝 모델의 성능을 낮은 비용으로 회복 가능(LLM-Pruner 대비도 우위). 이어 재프루닝으로 Llama2-7B를 **원 파라미터의 55%**만 남겨도 원 성능의 ~70% 유지.

(5) 어블레이션: 하이퍼파라미터의 합리적 영역

  • C(한 번에 합치는 폭): 너무 작으면 성능 하락, 36/47 권장.
  • I(최소 간격): 1~3이 안전, 4면 입력 초반 레이어까지 영향을 주어 성능 하락.
  • D(보정 문장): 10문장 안팎 무작위 샘플 결과 차이 미미.
  • T(임계값): 작을수록 압축↑/성능↓ — 직관과 일치(예: T=0.65T=0.65 vs 0.85/0.45/0.250.85/0.45/0.25 결과 비교).
  • Drop vs Merge: **단순 드롭(m=1)**은 머지보다 일관되게 열세.
  • Iterative vs Rule-based: 규칙 기반 병합보다 LaCo 반복 탐색이 우수.
  • 대표 설정 예시(Llama2-7B/13B, 비율별): 논문 표 8/9 참고.

(6) 계산 비용

  • 루프의 최악 복잡도 O(H×∣D∣)O(H\times|D|). 예시(40층, 문장 10개)도 단일 GPU 수 분 수준.

정리: 방법론의 타당성 평가

타당합니다.

  • 설계 근거: 인접 레이어의 파라미터/표현 유사성(“거의 1”) 관찰 → 차분을 모아 선행 레이어로 흡수해도 최종 표현을 잘 보존(코사인 기준)한다는 가정이 데이터로 뒷받침됩니다.
  • 지표 선택의 정당성: KL/CKA는 상수에 가까워 변별력이 부족하여, 코사인 유사도를 안전판으로 쓰는 선택이 합리적입니다.
  • 실험 검증: OpenCompass 대규모 벤치마크에서 동일/낮은 비율의 SOTA 구조적 프루너들일관되게 능가했고, 평균 80%+ 성능을 유지하는 구간이 넓습니다. 후학습/재프루닝까지 포함한 파이프라인에서도 실용적입니다.
  • 공학적 강점: 모델 구조를 보존해 이식성 높음, 추가 학습 없이도 큰 폭(30~50%) 프루닝 가능.

유의점(논문 근거 기반)
T를 과도하게 낮추면 압축은 늘지만 성능이 급락합니다(비율 60% 시 큰 하락).
I가 너무 크면 입력 초반 레이어를 흔들어 성능 하락 위험(예: I=4).
• **Drop(m=1)**은 비추, Merge 전략이 일관되게 우수합니다.


바로 적용하려는 연구자용 체크리스트

  1. D: 도메인을 대표하는 문장 5–10개부터 시작.
  2. 초기 하이퍼파라미터: C=4∼6C=4\sim6, I=2I=2, T≈0.65T\approx0.65, [L,H][L,H]상·중단 위주. (표 8/9 & 어블레이션 권장범위)
  3. 평가: PPL + 소규모 GEN 과제(요약/상식)로 안정성 점검.
  4. 필요시 소규모 후학습 → 재프루닝으로 목표 크기까지 단계적 접근.

 

짧게 말하면 **“거의 맞지만, 조건부”**입니다.

  • LaCo는 윗(뒤) 레이어들을 한꺼번에 ‘선행 레이어 l’로 흡수(파라미터 차분을 합산)해서 그 뒤 레이어들을 제거합니다. 즉, θl\*=θl+∑k=1m(θl+k−θl)\theta_l^\*=\theta_l+\sum_{k=1}^m(\theta_{l+k}-\theta_l)가중치 공간에서 여러 층의 기능을 근사 대체한 뒤, 병합된 K개 층을 드롭합니다. 이때 SAN(q/k/v)와 MLP(up/down)에 모듈별로 독립 적용하며 내부 차원 등 구조는 유지됩니다.
  • 다만 “모든 레이어”를 없애는 게 아니라:
    (1) 보통 상·중단에서 시작해 아래로 진행하고(포인터 l을 위에서 아래로 이동),
    (2) 병합 때마다 few-shot 문장 D에 대해 “원 모델 vs 임시 모델”의 최종 레이어 은닉표현 코사인 유사도 s를 계산해 임계치 T를 넘으면 채택, 아니면 한 층만 이동합니다(안전장치).
    (3) 입력 쪽 초기 레이어는 민감하므로 과도한 진입을 피하려고 간격 I(예: 2) 같은 규칙을 둡니다(I가 4면 성능 하락 관측).
  • 이 방식이 가능한 근거: 인접 레이어들은 **파라미터 변화(L2)**와 출력 표현아주 유사해서(3–28층 구간 코사인≈1), 한 레이어가 그 뒤 여러 레이어를 대체할 여지가 확인됩니다. 실제로 4개를 1개로 합쳐도 최종 표현 유사도는 **≈0.996+**로 유지됩니다.
  • 정리하면: “윗 레이어의 ‘출력 값’을 직접 바꿔서 아래가 그걸 흉내 내는” 게 아니라, **윗 레이어들의 ‘가중치 변화를 선행 레이어에 누적’**해서 함수 구성을 가중치 공간에서 근사하고, 유사도 검증을 통과한 범위에서만 뒤 레이어들을 제거하는 겁니다. 그래서 모든 레이어가 불필요하다는 뜻은 아니고, 유사도가 높은 구간의 여러 층안전하게 접어(bypass) 없앤다고 보는 게 정확합니다.
  • 실무 감각으로는 보통 25–30% 깊이 프루닝에서 원모델 대비 평균 80%+ 성능을 유지(4개 중 3개 모델)하고, 세팅에 따라 **30–50%**까지도 가능하지만 T를 과도하게 낮추면 성능 하락이 큽니다.

원하면, 지금 쓰는 모델에 맞춰 C(머지 폭)/I/T 초기값과 [L,H] 범위를 제안해서 바로 돌릴 수 있게 체크리스트도 뽑아줄게요.

https://arxiv.org/abs/2311.04902

 

Beyond Size: How Gradients Shape Pruning Decisions in Large Language Models

Large Language Models (LLMs) with billions of parameters are prime targets for network pruning, removing some model weights without hurting performance. Prior approaches such as magnitude pruning, SparseGPT, and Wanda, either concentrated solely on weights

arxiv.org

 

 

문제 상황 LLM은 매개변수가 방대해 추론 비용·메모리 부담이 큼. 기존 프루닝은 가중치 크기(또는 활성값) 위주였고, 사전학습 모델에서 얻는 그래디언트 정보를 충분히 활용하지 못함.
본 논문은 훈련 없이(oneshot) 정규화된 그래디언트를 쓰는 간단한 지표로 SparseGPT·Wanda 등을 광범위하게 능가한다고 주장.
프루닝 지표를 개선해 정확도 손실을 최소화하는 첫 단계로 사용.
방법론(핵심 아이디어) 가중치 크기 + 정규화된 그래디언트 + 활성값을 결합한 단일 중요도 점수로, 출력 뉴런(column) 단위 비교에서 최적.
그래디언트는 캘리브레이션 샘플에서 정규화해 사용, 활성값 대비 크기 차는 스케일링 α로 보정(검증 세트로 선정).
실전에서는 (output,1) 비교군을 기본값으로 채택.
α는 검증으로 조정하되 논문은 100을 사용.
알고리즘/절차 ① C4에서 128개×2048토큰 캘리브레이션을 뽑아 LM 목적 함수로 활성값·그래디언트 수집 →
② 각 선형층에서 출력 뉴런별로 가중치 중요도를 계산 →
작은 p%를 마스킹(임베딩/최종 헤드는 제외) →
재학습·가중치 업데이트 없이 사용.
동일 절차를 모든 선형층에 균등 적용. 필요 시 N:M 패턴에도 그대로 사용.
비교군(그룹) Layer-wise·Global 등 다양한 비교군 중, 출력 채널 단위(output,1)가 가장 낮은 PPL로 최적.
표에서 output,1이 6.86로 최저.
기본 설정을 output,1로 고정해 재현성↑.
실험 설정 모델: LLaMA-1(7B/13B/30B), LLaMA-2(7B/13B/70B).

환경: A100 40/80GB, HF Transformers.

데이터: C4 캘리브레이션(128×2048).

α=100.

비교군: Magnitude, SparseGPT, Wanda(공개 구현).

지표: WikiText Perplexity, lm-eval-harness Zero-shot.
 
주요 결과 – Perplexity Unstructured 50%에서 제안법(ℓ1)이 LLaMA-1/2 전반에서 Wanda·SparseGPT보다 일관되게 낮은 PPL.
예) LLaMA-2-13B: 5.88(제안) vs 5.97(Wanda) vs 6.03(SparseGPT).
N:M에서는 2:4는 SparseGPT가 우세한 경우가 있으나, 4:8에선 제안법이 다수 모델에서 우세.
추론 손실 최소화가 중요하면 Unstructured 또는 4:8부터 검토.
주요 결과 – Zero-shot 6개 과제 BoolQ/RTE/HellaSwag/WinoGrande/ARC-e/OBQA에서 Dense 대비 하락폭은 있으나 Wanda·SparseGPT와 동급~근소 우세 평균.
다만 Zero-shot은 노이즈가 큰 것으로 알려져, 집계 평균으로 해석.
PPL과 복수 과제 평균을 함께 보고 의사결정.
Ablation·하이퍼 그래디언트만 사용해도 Magnitude보다 유의한 개선.
그래디언트 집계는 accumulation보다 L1/L2 정규화가 안정적 패턴을 줌.
α=100이 최적 범주. 캘리브레이션 구성·샘플 수 변화둔감(강건).
 
Chat-모델 LLaMA-2-chat(7B/13B)에도 일반화 확인. Unstructured에서 일관된 우수성,
N:M에서도 Wanda 대비 우수(2:4는 SparseGPT 최저).
동일한 캘리브레이션·비교군 설정을 적용.
기여 (1) 훈련 없이 그래디언트를 활용한 간단·효율적 프루닝,
(2) LLaMA-1/2 전반 광범위 벤치마크 우수성,
(3) OBS 기반 이론 분석으로 정당성 제시,
(4) 해석 가능성 및 ViT로 확장.
 
한계·주의 (1) 2:4 N:M은 제약 강해 SparseGPT가 더 나은 경우 존재,
(2) Zero-shot 평가는 노이즈 큼 → 절대값 해석 주의.
하드웨어·엔진 제약이 있다면 4:8 또는 Unstructured를 우선 고려.
재현 체크리스트 C4 128×2048 캘리브레이션, α≈100, 출력-기준 비교군, 임베딩·LM-헤드 제외하고 모든 선형층 균등 프루닝. 평가는 WikiText PPL + Harness 평균.  

 

더보기

 

한줄 핵심

가중치 크기(‖W‖)만 보던 기존 프루닝을 넘어, ‘정규화된 그래디언트(‖G‖)’와 ‘활성값(‖X‖)’을 결합한 단순 지표로, 재학습 없이도 LLaMA 계열에서 SparseGPT·Wanda를 광범위하게 능가하는 일발(oneshot) 프루닝을 제안.


1) 문제 설정 (Problem)

  • LLM 추론비용과 메모리 부담을 줄이기 위해 프루닝이 필요하지만, 기존 방식은 (a) 단순 크기 기반(오류), (b) 2차 정보(Hessian) 기반은 비용 큼, (c) 활성값만 보거나 재구성 기반 등 한계가 있음. 본 논문은 **“사이즈만 보지 말고, 프리트레인된 모델에서 얻은 ‘그래디언트’가 담고 있는 중요도 정보를 활용하자”**는 관점 제시.

2) 방법 (GBLM-Pruner) — Step-by-Step

핵심 아이디어

  • 프루닝 지표 Wm을 “가중치 크기 × (정규화된 그래디언트 + 활성값)”으로 설계:
    • 먼저, 보정된(정규화된) 그래디언트를 샘플 단위로 L1/L2 규범으로 집계(gradient accumulation은 노이즈 큼)
    • 최종 지표:Wm[i,j]  =  ∣W[i,j]∣⋅∥X[:,j]∥2  +  α⋅∣W[i,j]∣⋅∥G[:,i,j]∥pW_m[i,j] \;=\; |W[i,j]|\cdot\|X[:,j]\|_2 \;+\; \alpha\cdot|W[i,j]|\cdot\|G[:,i,j]\|_p(p∈{1,2}, α=100이 최적)

알고리즘(훈련 불필요, one-shot)

  1. 캘리브레이션 데이터(C4 128 시퀀스 × 2048 토큰)에서 언어모델링 목표활성값 X와 그래디언트 G를 수집(프리트레인 목적과 동일; 다운스트림 불문)
  2. 각 선형층에서 출력 뉴런(column, output-wise)별 비교 그룹으로 Wm을 계산(이 그룹이 가장 성능 좋음)
  3. Wm가 작은 p% 가중치를 해당 열에서 마스크로 설정해 0으로 만듦(레이어 전역 일괄, 임베딩/LM-head 제외)
  4. 재학습/재가중치 업데이트 없음(단순성 유지)

직관: OBS(Optimal Brain Surgeon) 관점에서 1차 테일러 항을 반영해 오차 증가 δE를 근사하면, 가중치·활성·그래디언트가 결합된 형태가 유도되고(정리 시 (w∥x∥2)2+w(−g)(w\|x\|_2)^2 + w(-g)), 여기서 정규화된 그래디언트와 활성값을 더하는 단순 지표가 실제로 가장 안정적이었음.


3) 실험 설정 (Setup)

  • 모델: LLaMA-1(7B/13B/30B), LLaMA-2(7B/13B/70B)
  • 캘리브레이션: C4에서 128×2048, LM objective로 G/X 계산, α=100 사용
  • 비교군: Magnitude, SparseGPT, Wanda(공개 구현 사용)
  • 지표: WikiText Perplexity + LM Harness Zero-shot(6개: BoolQ/RTE/HellaSwag/WinoGrande/ARC-e/OBQA)

4) 주요 결과 (Results)

  • Unstructured 50%: GBLM-Pruner(L1) > Wanda ≥ SparseGPT across LLaMA-1/2 (PPL↓). 예: LLaMA-2-13B에서 5.88(ours) vs 5.97(Wanda) vs 6.03(SparseGPT). LLaMA-2-70B에서도 ours 4.17로 최저.
  • N:M(2:4): 제약이 커서 SparseGPT가 다소 유리. 4:8에서는 ours가 다수 설정에서 우세.
  • Zero-shot: 50% 스패시티에서 Dense 대비 하락은 있으나, 우리 방법이 Wanda/SparseGPT와 동급~근소 우세(특히 13B/70B) 평균 점수.
  • α 스케일링: α=100에서 최적 PPL(6.858). α 너무 작거나 크면 성능 저하.
  • 캘리브레이션 강건성: 샘플 셋을 바꿔도 PPL 변동이 작고(6.86~6.89), 샘플 수 변화에 상대적으로 둔감.
  • 채팅 모델(LLaMA-2-chat): Unstructured에서 일관된 우수성, N:M에서도 Wanda 대비 우수(2:4/4:8).

5) 왜 잘 작동하나? (이론·직관)

  • OBS 프레임워크의 폐형식 해를 단순화(대각 Hessian, gradient 제곱항 무시)하면, 오차 증분 δE가 가중치·활성·그래디언트의 결합 형태로 유도됨 → 지표 설계 근거.
  • Gradient accumulation은 노이즈가 커서 좋지 않고, L1/L2 정규화 집계가 구조적 패턴을 잘 드러냄(시각화/표로 확인).

6) 재현 체크리스트 (실전 팁)

  • 캘리브레이션: C4 128×2048 토큰, LM loss로 X/G 계산 → 레이어별 선형층에서 output-wise(column) 기준으로 Wm 산출 후 p% 마스킹.
  • 정규화: G는 샘플 차원 L1/L2 정규화 후 사용(‘accum’ 금지).
  • 스케일링: α=100 권장(검증으로 미세 조정).
  • 패턴: 2:4보단 4:8 또는 Unstructured가 손실이 작음.

7) 기여(Contribution) & 한계(Limitations)

기여

  • 훈련 없이(Training-free), 간단한 지표일발 프루닝 가능(대형 모델에도 실용적).
  • 그래디언트 정보의 중요성을 이론·실험으로 체계화, 크기/활성만 보던 관행을 확장.
  • 다양한 스패시티/모델/태스크에서 Wanda·SparseGPT 대비 광범위 우위(특히 Unstructured, 4:8).

한계

  • 2:4 N:M에서는 SparseGPT가 더 낫기도 함(제약 강함).
  • Zeroshot 평가는 노이즈가 있어 절대값 해석엔 주의(집계 평균으로 보완).

8) 한 페이지 표(재실험용 요약)

항목 내용
문제 LLM 추론·메모리 비용을 줄일 효과적·훈련불필요 프루닝 필요
핵심 아이디어 **Wm =
비교 단위 출력 뉴런(column, output-wise) 기준이 최적(= (output,1))
캘리브레이션 C4에서 128×2048, LM objective로 X/G 수집
프루닝 범위 모든 선형층 균등 프루닝(임베딩·최종 분류층 제외), 재학습 없음
Unstructured(50%) ours가 LLaMA-1/2 전반에서 SparseGPT·Wanda보다 낮은 PPL
N:M(2:4/4:8) 2:4: SparseGPT 우위; 4:8: ours 우위 경향
Zero-shot Dense 대비 하락은 있으나 동급~근소 우세 평균(13B/70B에서 견고)
민감도 α=100 최적, 캘리브레이션 샘플 구성·개수에 상대적 강건
이론 근거 OBS 기반 1차 항(δE) 분석 → W, X, G 결합 지표 도출

근거: 지표/알고리즘 , 비교단위 , 캘리브레이션/α , Unstructured/N:M/Zero-shot 결과 , 민감도 .


 

1) 핵심 아이디어(한 줄)

가중치의 크기(‖W‖)만 보지 말고, ‘정규화된 그래디언트(‖G‖)’와 ‘활성값(‖X‖)’을 함께 보자. 프리트레인 LLM에서 소량의 캘리브레이션 텍스트로 얻은 G/X를 이용해 훈련 없이(oneshot) 중요도를 매기면, SparseGPT·Wanda 등 기존 SOTA를 광범위하게 능가한다는 것이 논문의 주장입니다.


2) 방법론 — 무엇을 어떻게 계산하나?

(a) 프루닝 지표 설계

논문은 단일 가중치 W[i,j]W[i,j]중요도 점수 Wm[i,j]W_m[i,j]를 아래처럼 정의합니다.

  1. 그래디언트만 쓴 기본형

Wm[i,j]=∣W[i,j]∣  ⋅  ∥G[:,i,j]∥p(p∈{1,2})W_m[i,j] = |W[i,j]|\;\cdot\;\|G[:,i,j]\|_p\quad (p\in\{1,2\})

여기서 G[:,i,j]G[:,i,j]캘리브레이션 배치를 가로질러 샘플 축으로 정규화(L1/L2)한 그래디언트입니다.

  1. 최종 제안형(활성값 결합)

Wm[i,j]=∣W[i,j]∣  ⋅  ∥X[:,j]∥2⏟활성값 항  +  α  ∣W[i,j]∣  ⋅  ∥G[:,i,j]∥p⏟그래디언트 항W_m[i,j] = \underbrace{|W[i,j]|\;\cdot\;\|X[:,j]\|_2}_{\text{활성값 항}} \;+\; \alpha\;\underbrace{|W[i,j]|\;\cdot\;\|G[:,i,j]\|_p}_{\text{그래디언트 항}}

그래디언트 크기가 작아 활성값 항에 묻히는 문제를 막기 위해 스케일링 α\alpha 를 둡니다(검증으로 선택).

α는 검증으로 고르며, 실험상 α=100이 최적이었습니다.

(b) 비교 그룹(Comparison group)

“어떤 집합 안에서 작은 가중치를 지우느냐”가 중요합니다. 논문은 다양한 비교 단위를 실험한 끝에, 열(column) 단위(= 출력 뉴런 기준, (output,1))가 최적임을 보고합니다. (PPL 6.86로 최저)

(c) 실제 프루닝 절차(훈련 없이, oneshot)

  1. 캘리브레이션 셋 수집: C4에서 128개 시퀀스 × 2048 토큰을 뽑아 LM 목적 함수로 활성값 X그래디언트 G를 계산(모델 사전학습 목적과 동일).
  2. 지표 계산: 각 선형층에서 위 공식으로 WmW_m을 계산(샘플 축 정규화된 GG, L2 노름의 XX).
  3. 마스킹: 출력 뉴런(열)마다 WmW_m작은 p% 가중치를 0으로 만듭니다(일반 선형층 일괄 적용; 임베딩·최종 헤드는 제외).
  4. 스킴: Unstructured 뿐 아니라 2:4·4:8 N:M 반구조적 스패시티도 지원(하드웨어 친화).

3) 작은 예시(직관)

가령 한 선형층의 **출력 뉴런 o₁(행 1)**이 입력 차원 3개에 연결되어 있고, ∣W[1,:]∣|W[1,:]|[0.2, 0.05, 0.1][0.2,\,0.05,\,0.1], ∥X[:,:]∥2=[5.0, 2.0, 1.0]\|X[:,:]\|_2=[5.0,\,2.0,\,1.0], ∥G[:,1,:]∥1=[0.03, 0.20, 0.01]\|G[:,1,:]\|_1=[0.03,\,0.20,\,0.01], α=100\alpha=100이라면

Wm[1,:]=∣W∣⋅∥X∥2+α∣W∣⋅∥G∥1W_m[1,:]=|W|\cdot\|X\|_2+\alpha|W|\cdot\|G\|_1

⇒\Rightarrow [0.2⋅5+100⋅0.2⋅0.03,  0.05⋅2+100⋅0.05⋅0.20,  0.1⋅1+100⋅0.1⋅0.01][0.2\cdot5+100\cdot0.2\cdot0.03,\;0.05\cdot2+100\cdot0.05\cdot0.20,\;0.1\cdot1+100\cdot0.1\cdot0.01]
⇒\Rightarrow [1+0.6,  0.1+1.0,  0.1+0.1]=[1.6,  1.1,  0.2][1+0.6,\;0.1+1.0,\;0.1+0.1]=[1.6,\;1.1,\;0.2].
o₁ 열에서 가장 작은 0.2(세 번째)를 먼저 자릅니다. 열마다 이렇게 상대 비교하니, 같은 레이어라도 출력 뉴런별 ‘필요한 연결’을 보존하는 경향이 생깁니다(논문이 column-wise를 권장한 이유).


4) 왜 타당한가? — 이론 검증

논문은 **OBS(Optimal Brain Surgeon)**의 1차 테일러 항을 포함해, 특정 가중치 wmw_m 제거 시 오차 증가가

δEm=(wm  ∥xm∥2)2+wm(−gm)\delta E_m = (w_m\;\|x_m\|_2)^2 + w_m(-g_m)

형태로 귀결됨을 보입니다. 여기서 xmx_m은 해당 연결의 입력 활성, gmg_m은 그 가중치에 대한 그래디언트입니다. 즉, 가중치·활성·그래디언트 결합 지표가 이론적으로 정당화됩니다. 실제로 여러 변형을 실험한 결과, 활성값 항 + (스케일된) 그래디언트 항을 더하는 현재의 단순 지표가 가장 안정적으로 좋은 결과를 냈습니다.

또한 “그래디언트 집계 방식”도 분석했는데, 샘플별 L1/L2 정규화가 누적합(accumulation)보다 훨씬 덜 노이즈이며 구조적 패턴을 잘 드러냅니다(시각화 포함).


5) 정말 잘 되나? — 실증 검증

  • PPL(언어모델 정확도): WikiText 검증에서 Unstructured 50% 스패시티 기준, GBLM-Pruner(ℓ1)가 LLaMA-1/2 전반에서 Wanda·SparseGPT보다 일관되게 낮은 PPL을 보입니다(예: LLaMA-2-13B에서 5.88로 최저).
  • N:M(2:4/4:8): 2:4는 제약이 커서 SparseGPT가 종종 유리하지만, 4:8에서는 제안법이 다수 모델에서 우세합니다.
  • Zero-shot Harness(6개 과제): 단일 과제 점수는 노이즈가 크지만, 집계 평균에서 Dense 대비 하락폭을 줄이며 Wanda·SparseGPT 수준~근소우세를 보입니다(특히 13B/30B). 또한 ‘노이즈함’ 자체도 기존 연구에서 지적된 바 있습니다.
  • 캘리브레이션 강건성: 샘플 구성을 바꿔도 PPL이 6.86~6.89로 거의 동일하며, 샘플 수(1~512) 변화에도 타법 대비 민감도가 낮음을 보입니다.
  • 비교 그룹: (output,1) column-wise가 최적(PPL 6.86) → 논문 전체 실험의 기본 설정으로 채택.
  • Chat 모델(LLaMA-2-chat)에도 적용 가능: Unstructured와 N:M에서 Wanda 대비 경쟁력 확인.
  • 추가 갱신 불필요: SparseGPT식 OBS weight update를 얹어도 제안법 성능이 유의미하게 좋아지지 않았습니다(단순성 유지).

6) 실전 재현 체크리스트(요점만)

  • 데이터: C4에서 128×2048 캘리브레이션, LM objective로 G/X 수집.
  • 지표: Wm=∣W∣⋅∥X∥2+α∣W∣⋅∥G∥pW_m=|W|\cdot\|X\|_2 + \alpha|W|\cdot\|G\|_p (p=1/2), α≈100.
  • 정규화: G는 샘플 축 L1/L2로 집계(누적합 ×).
  • 비교 단위: **열(column) 단위(output,1)**로 p% 마스킹.
  • 범위: 선형층 균등 프루닝(임베딩/LM head 제외); Unstructured 먼저, 필요 시 4:8, 그다음 2:4.

7) 한계와 적용 팁

  • 2:4 제약이 강한 환경에선 SparseGPT가 더 나을 수 있음(하드웨어 요구에 따라 트레이드오프 선택).
  • Zero-shot 평가는 노이즈 → 반드시 복수 과제 평균PPL을 함께 보세요.
  • RAG/임베딩 품질이 민감하면, 먼저 Unstructured 또는 4:8로 손실을 최소화하고, 도메인 텍스트로 캘리브레이션을 구성하세요.

 

맞아요—가중치를 0으로 “마스킹”만 하면 파라미터 텐서의 형상(shape) 은 그대로라서, 기본적인 dense GEMM(행렬곱)을 쓰는 한 연산량·지연시간은 거의 줄지 않습니다. 그래서 “프루닝=속도 향상”이 되려면 아래 셋 중 하나 이상이 필요합니다.

프루닝이 실제 “가벼워지는” 3가지 길

타입 핵심 아이디어 실제로 줄어드는 것 속도 조건 장단점
구조화(Structured) (채널/뉴런/헤드 제거) 아예 열/행 자체를 삭제해 작은 행렬로 다시 저장 파라미터 수, FLOPs, KV 캐시, 메모리 아무 런타임이나 바로 효과(행렬이 작아짐) 구현이 까다로움(연결층 의존성 정리 필요), 보통 소폭 재미세튜닝 권장
반구조화(N:M) (예: 2:4, 4:8) 고정된 패턴으로 N개 중 M개만 0 FLOPs(하드웨어가 지원 시), 메모리(압축 저장 시) GPU/RT가 해당 패턴 가속을 지원해야 실속도↑ 정확도 손실 대비 속도/메모리 이득의 균형 좋음
비구조화(Unstructured) (랜덤 0) 자릿수 상관없이 많이 0으로 메모리(희소 저장 시), FLOPs(희소 커널 사용 시) 희소 커널을 써야만 효과. 보통 >90% sparsity부터 의미 정확도 유지 쉽지만, 일반 dense 커널에선 속도 이득 거의 X

지금 보신 논문은 정확도 보존 기준의 “어떤 가중치를 0으로 둘 것인가”를 잘 정하는 법(지표 설계)을 제안합니다. 이건 **속도/메모리 이득을 얻기 위한 “첫 단계”**이고, 실제 경량화(속도↑/메모리↓)로 이어가려면 위 표의 구조화 또는 N:M, 혹은 희소 커널 적용이 추가로 필요합니다.


1) 구조화 프루닝으로 “진짜 작은 모델” 만들기 (추천)

행/열 자체를 없애 모델을 재배선(rewire) 하면, 텐서 크기와 연산이 실제로 줄어듭니다. 트랜스포머에서 안전하게 줄일 수 있는 대표 위치는:

  • MLP(FFN):
    • up_proj/gate_proj의 열(=intermediate 차원) 중에서 제거할 인덱스를 고르고,
    • 같은 인덱스를 down_proj의 에서도 제거 → d_ff가 줄어 두 행렬 모두 작아짐.
  • Attention:
    • 헤드 단위(d_head의 묶음 크기)로 q_proj, k_proj, v_proj의 과 o_proj의 을 함께 제거 → #heads 감소, d_model 유지 or 재조정
    • KV 캐시도 헤드 수에 비례해 줄어 추론 메모리↓, 속도↓.
  • LayerNorm/Residual: 보통 차원 고정(손대지 않음).
  • 임베딩/LM-Head: 보통 유지(어휘 size 연쇄 영향).

절차(요약)

  1. 논문 지표(또는 당신의 중요도 점수)로 **“제거할 열/행 인덱스”**를 확정
  2. 쌍 맞추기: FFN(up/gate ↔ down), Attn(q/k/v ↔ o)처럼 대응 층끼리 같은 인덱스로 자르기
  3. 가중치 잘라 저장 + config 업데이트(intermediate_size, num_heads 등)
  4. (선택) 0.1~1 epoch 정도 소규모 재미세튜닝으로 손실 복구

이렇게 만들면 텐서 크기 자체가 줄어, 어떤 프레임워크에서도 바로 속도/메모리 이득을 얻습니다. (Dense 행렬이 작아졌기 때문)


2) N:M 반구조화로 하드웨어 가속 활용

  • 2:4(4개 중 2개 0) 같은 패턴은 일부 GPU(예: NVIDIA Ampere/Hopper의 Sparse Tensor Core)와 엔진이 실제 연산 단축을 제공합니다.
  • 이 경우는 행렬 크기는 같지만, 커널이 0 패턴을 활용해 실효 연산량을 절반 수준까지 낮춥니다.
  • 단, 런타임/엔진에서 N:M 가속을 지원해야 벤치마크상의 속도 이득이 납니다(엔진 예: 특정 커스텀 커널, 일부 상용 추론 엔진 등).

3) 비구조화 + 희소 커널

  • 무작위 희소 패턴은 일반 dense 커널에선 이득이 거의 없습니다.
  • CSR/CSC/COO 등으로 압축하고 SpMM(희소×밀집) 커널을 써야 속도 이득이 생기는데, GPU에선 **매우 높은 sparsity(보통 90%+)**여야 dense보다 유리해지는 경우가 많습니다.
  • 연구·엔진별 편차가 커서 운영 난이도가 있습니다.

구조화 프루닝 “수술 가이드”(Transformer에 안전한 매핑)

아래는 FFNAttention의 의존성만 잘 지키면 “형상 축소=실연산↓”가 되는 최소 규칙입니다.

  • FFN(게이트형, Qwen류)
    • up_proj(W_up: d_model × d_ff), gate_proj(W_gate: d_model × d_ff), down_proj(W_down: d_ff × d_model)
    • 같은 인덱스 집합 S를 W_up[:, S], W_gate[:, S], W_down[S, :]에서 동시에 제거 → d_ff' = d_ff - |S|.
  • Attention(멀티헤드)
    • q_proj/k_proj/v_proj: d_model × d_model, o_proj: d_model × d_model
    • 헤드 단위 묶음(연속한 d_head 폭)을 선택해 q/k/v의 해당 열 구간과 o_proj의 해당 행 구간을 제거 → num_heads' = num_heads - |removed_heads|.
    • KV 캐시도 헤드 수만큼 줄어 추론 메모리/속도 이득.

실행 순서: (1) 중요도 점수→인덱스 선정 → (2) 가중치 자르기 → (3) config 갱신 → (4) 저장/검증 → (5) (선택) 짧은 재튜닝.


“논문 지표”는 어디에 쓰나?

  • 이 논문의 강점은 “무엇을 자를지”를 정확도 손실 최소화 관점에서 잘 고르는 점수입니다.
  • 속도는 구조화·N:M·희소 커널이 결정하고, 정확도는 좋은 점수가 좌우합니다.
  • 즉, **점수(논문) + 형태(구조화/N:M/희소)**를 조합해야 “빠르고 정확한” 경량화를 얻습니다.

https://arxiv.org/abs/2407.14679

 

Compact Language Models via Pruning and Knowledge Distillation

Large language models (LLMs) targeting different deployment scales and sizes are currently produced by training each variant from scratch; this is extremely compute-intensive. In this paper, we investigate if pruning an existing LLM and then re-training it

arxiv.org

figure가 상당히 좋아서 이 것 만으로도 이해하기 좋다.

문제 상황 LLM 제품군을 스케일별로 만들 때 각 크기를 매번 처음부터 학습하는 비용이 막대함.
이 논문은 이미 학습된 대형 모델(예: 15B)을 구조적으로 줄이고(pruning), 원 데이터의 <3%지식증류(KD) 재학습만으로 성능을 회복하는 실용 가이드를 제시.
그 결과, 모델당 학습 토큰 최대 40× 절감, 모델군 전체 1.8× 연산 절감, MMLU 최대 +16% 개선을 보고.
방법론(요약) + Pruning 과정(순서) 전반 설계:
깊이(레이어)·너비(헤드/MLP 뉴런/임베딩 채널) 구조적 프루닝 →
실제 행렬 차원 축소(트리밍) →
소량 데이터 KD 재훈련
.
중요도는 순전파만으로 활성값 기반으로 계산.

프루닝 절차(순서)
1) 교사 모델/목표 크기 결정: 15B 기준, 타깃 8B/4B 등. (모델군과 비용 논의 맥락)
2) 캘리브레이션 준비: 전체 데이터에서 1024 샘플만 뽑아 중요도 산정에 사용(순전파 전용).
3) 중요도 산정:
너비 축은 MHA/MLP/LN 활성값으로 헤드·뉴런·임베딩 채널 중요도 계산(배치/시퀀스 집계 함수는 (batch=L2, seq=mean) 권장).
깊이 축은 PPL 또는 Block Importance(입·출력 코사인 거리)로 레이어 민감도 평가.
4) 랭킹→트리밍: 중요도 하위 n%를 제거하고 가중치 행렬을 실제로 축소(trim)해 FLOPs/메모리 동시 절감(방법 섹션 도식).
5) 재훈련(KD): 로짓 KLD 중심으로 교사 분포를 학생(프루닝 모델)이 모사(τ=1.0 권장, top-K 미사용). 깊이 축소가 크지 않으면 로짓만으로 충분.
6) 경량 NAS + 랭킹 안정화: 목표 파라미터(±5%) 내 feasible 후보(수십 개)를 만들고 ~1.8B 토큰(≈400 step)만 재훈련하여 초기 200~300 step의 순위 뒤집힘을 지나 안정화된 뒤 최종 선택.
실험 설정 데이터/예산:
Nemotron-4의 8T 코퍼스 기반으로, 경량 재훈련은 ~1.8B 토큰(기본).
캘리브레이션 1024 샘플.
다운스트림 평가는 MMLU, HellaSwag, HumanEval, Winogrande, ARC-C, TruthfulQA, XL-Sum 등.
손실/온도/Top-K: KLD가 일관 우수, τ=1.0 최적, Top-K 제한은 성능 저하 → 미사용.
핵심 결과 토큰·연산 절감 & 정확도: 15B→8B/4B 파생 시 모델당 토큰 최대 40×↓, 모델군 1.8× 연산↓, MMLU 최대 +16%.
증류의 우월성(iso-compute): 4B 기준 랜덤초기화 < 프루닝 후 일반학습 < 프루닝 후 KD, MMLU +13.5pt, HellaSwag +4.8pt.
너비가 유리(재훈련 후): 너비 프루닝(헤드·뉴런·임베딩) > 깊이 단독, 또는 깊이+너비 조합(동일 예산에서).초기 순위는 재훈련 200 step 전후에 뒤집힘.
원샷 vs 반복: 동일 토큰 예산에서는 원샷이 깊이/다축 모두 우세(도표 7,8). 단, 매우 큰 축소(15B→4B, 73.3% 감축)에는 2단계(15B→8B→4B) 반복MMLU +12%로 더 좋았음(맥락 의존).
기여 (1) 다축 구조적 프루닝+재훈련실증적으로 비교·정리(지표/하이퍼/축 결합/재훈련 데이터 효율)한 가이드를 제안. (2) 베스트 프랙티스 10항을 명시(중요도 집계, 너비 우선, KLD 단독, 경량 NAS 등). (3) MINITRON(8B/4B) 공개—동급 커뮤니티 모델과 경쟁·우위, 기존 압축법 대비 우수.
한계/주의(논문 범위 내) KD 오버헤드: 교사 순전파가 추가되어 학습당 연산이 증가 → 실험은 iso-compute로 공정 비교.
캘리브·집계 의존성: 1024 샘플과 집계 함수[(L2, mean) 권장] 선택에 따라 초기 순위가 달라지며, 재훈련 전 구간에서 순위가 뒤집힘 경량 재훈련으로 안정화 필요.
중간표현 손실(Lis)의 한계: 깊이 축소가 크지 않으면 로짓-KLD 단독이 더 좋음(Lis 추가 이득 제한).
반복 vs 원샷의 맥락성: 일반적으론 원샷 우세지만, 아주 공격적 축소에서는 단계적 반복이 유리(데이터/교사 선택에 영향).

 

더보기

업로드해주신 논문 **“Compact Language Models via Pruning and Knowledge Distillation (MINITRON)”**을 바탕으로, 핵심 아이디어→방법론(step-by-step)→실험 결과→베스트 프랙티스→한계 순으로 체계적으로 정리했습니다. 모든 내용은 논문 본문에 근거합니다.


핵심 한 줄 요약

대형 LLM을 **구조적 프루닝(깊이·너비·임베딩 채널)**으로 줄이고, 소량(≲3%) 데이터로 지식증류만으로 재훈련하면, 15B→8B/4B 계열 모델을 훈련 토큰 40× 절감하며 동급 모델과 견줄 성능을 낼 수 있음.


Step-by-Step 방법론

1) 중요도(살리에시) 추정: 완전 활성값 기반, 순전파만

  • 목표: 그라디언트 없이(메모리·시간 절감) 레이어/헤드/뉴런/임베딩 채널의 민감도 추정.
  • 방법: 1,024 샘플의 작은 캘리브레이션 데이터로 순전파를 여러 번 돌려 각 축의 활성 통계로 중요도를 계산:
    • 헤드: MHA 출력의 L2,
    • 뉴런(MLP): 1차 선형층 행(row) 기반,
    • 임베딩 채널: LayerNorm 출력 기반.
      집계(mean/L2/var)를 비교해 축별·레이어별 점수를 네트워크 전역 점수로 합산.
  • 깊이(레이어) 중요도: (a) PPL 기반 단일 레이어 제거 영향, (b) Block Importance(BI) = 입력/출력 코사인 거리(한 번의 순전파로 전 레이어 계산 가능). 인접 다중 레이어 확장도 가능.

2) **랭킹→트리밍(가중치 리셰이핑)**으로 실제 크기 감소

  • 각 축의 요소를 중요도 순으로 정렬해 해당 가중치 행렬을 직접 잘라(reshape/trim) 구조를 줄임. 임베딩 채널을 줄일 때는 MLP·MHA·LayerNorm의 임베딩 차원을 일관되게 축소.
  • 헤드 프루닝 시, 제거된 헤드의 잔차 정보를 남은 헤드에 재분배(Layer Collapse의 MHA 버전)하여 정확도 보전.

💡 “0으로 만들면 FLOPs는 그대로 아닌가요?” — 본 작업은 비구조적 제로잉이 아니라, **구조적 차원 축소(행/열 삭제)**로 행렬 크기 자체를 줄입니다. 논문은 “트리밍(리셰이핑)”을 명시합니다.

3) **경량 NAS + 경량 재훈련(≈1.8B 토큰)**으로 아키텍처 선정

  • 탐색 축: 레이어 수, 헤드 수, MLP 확장 비율, 임베딩 차원. 목표 파라미터(8B/4B, ±5%)를 만족하는 **feasible candidates(≤20)**를 전수 열거하고 각 후보를 1.8B 토큰 정도로 짧게 재훈련해 랭킹을 안정화한 뒤 최종 후보를 선택.

4) 재훈련(Accuracy Recovery): 지식증류가 기본

  • 용어상 “retraining” 단계에서 (1) 표준 학습과 **(2) 지식증류(KD)**를 비교. KD는 교사(원본) 분포/중간표현을 학생(프루닝 모델)이 모사. 손실은 **로짓 기반(KLD)**을 중심으로 설계.
  • 레이어 매핑 & 손실 구성: 로짓 손실 L_logit + 선택적 중간층 손실(L_emb, L_o, L_i, L_att). 마지막 1–2층 대응(last-2:last-2), 코사인 기반이 효과적이라는 관찰 포함. 다만 깊이 프루닝이 크지 않다면(8B/4B), 로짓 손실 단독이 가장 잘 먹힘.
  • 증류 하이퍼파라미터: KLD가 R-KLD/코사인/MSE보다 우수, 온도 τ=1.0이 최적, top-K 로짓 제한은 성능 하락으로 비권장.

5) Pruning 스케줄(One-shot vs Iterative)

  • **깊은 축소(15B→4B, 73.3% 가중치 감축)**처럼 공격적일 때는 2단계(15B→8B→4B) 반복 프루닝+재훈련이 **일괄(원샷)**보다 MMLU +12% 유리하다는 결과(테이블 11의 맥락)도 보고됨.
  • 반면, 순수 깊이 프루닝/차원별 비교에서는 원샷이 반복보다 우수하다는 도표 결과도 제시—맥락(축/토큰 예산)에 따라 최적 전략이 달라짐을 시사.

실험 및 주요 결과

  • 토큰/코스트 절감 & 성능 유지/개선
    • Nemotron-4 15B에서 8B/4B 파생 모델을 만들 때, 모델당 훈련 토큰 최대 40× 절감, 전체 계열 훈련 대비 1.8× 계산비용 절약. MMLU 최대 +16% 개선 사례.
  • 증류의 이점(iso-compute 비교)
    • 4B 모델: 무작위 초기화 < 프루닝 후 표준 재훈련 < 프루닝 후 증류 재훈련 순. HellaSwag +4.8pt, MMLU +13.5pt 향상(15B를 교사로). 8B를 교사로 쓰면 MMLU 추가 +4.6pt.
  • 축 조합 효과(너비 vs 깊이)
    • 재훈련 후 너비만 프루닝한 8B깊이만/혼합보다 낮은 파라미터로도 LM Loss가 더 낮음(좋음).
  • 경량 재훈련의 필요성
    • 프루닝 선택 간 순위가 ~300스텝까지 뒤바뀌다가 안정화 → 후보 비교 전 **짧은 재훈련(≈1.8B 토큰)**이 필수.
  • 실사용 벤치마크
    • MINITRON-4B-instruct가 ChatRAG-Bench, BFCL v2에서 동급·상위 베이스라인 대비 우수.

베스트 프랙티스(논문 결론의 실전 가이드)

  1. 손실 함수: 증류는 로짓-KLD 단독이 기본값. CLM+로짓 가중합보다 안정적. τ=1.0, top-K 사용 X.
  2. 중간표현 매핑: 깊이 프루닝이 크지 않으면 중간 손실 생략. 필요 시 (last-2):(last-2) 매핑·코사인 손실.
  3. 헤드 프루닝: 잔차 재분배(pruned→remaining)로 정확도 회복.
  4. 중요도 추정: 활성값 기반 + 1,024 샘플 캘리브레이션, 다차원 집계(평균/L2/분산) 비교.
  5. 축 조합 순서: 초기엔 뉴런·헤드(너비) 단독이 좋아 보여도, 재훈련 후 순위가 뒤집힐 수 있으니 짧게 재훈련하며 판단.
  6. NAS: 목표 파라미터(±5%)로 전수 열거 → 1.8B 토큰 경량 재훈련 → 최종 후보 선정.
  7. 원샷 vs 반복: **깊은 축소/다단계 사이즈 전환(15B→8B→4B)**에는 반복 프루닝+증류가 유리할 수 있음(+12% MMLU). 하지만 단일 축/깊이 프루닝에선 원샷이 우세. 맥락별 선택.
  8. 데이터: **원본 훈련 토큰의 <3%**로도 충분. 계열 전체 훈련 대비 1.8× compute 절감.

한 장 요약 표

구분 내용
문제 상황 LLM 사이즈 스케일링마다 매번 초기화→전훈련은 비용 막대. 기존 모델을 구조적으로 줄이고 소량 데이터로 복구할 수 있는가?
핵심 아이디어 활성값 기반 중요도로 깊이·헤드·뉴런·임베딩을 구조적 프루닝 → 가중치 리셰이핑 → **지식증류(KLD)**로 성능 복구.
중요도 추정 1,024 샘플 캘리브레이션, 순전파만. 깊이: PPL/BI, 너비: MHA/MLP/LN 활성 통계(평균, L2, 분산 비교).
프루닝 & 트리밍 랭킹 후 가중치 행렬을 실제로 축소. 헤드는 잔차 재분배로 지식 보전.
NAS/후보 선택 목표 파라미터(8B/4B, ±5%) 만족 후보 전수 열거 → 후보별 1.8B 토큰 경량 재훈련 → 최종 선정.
재훈련(증류) 로짓-KLD 단독 기본, τ=1.0, top-K 미사용 권장. 깊이 축소가 크지 않으면 중간표현 손실은 생략.
스케줄 맥락별: 15B→8B→4B 같은 단계적 축소에서는 반복 프루닝+증류가 MMLU +12%. 단일 축(깊이) 비교에서는 원샷 우세.
데이터/코스트 모델당 훈련 토큰 40× 절감, 계열 전체 1.8× compute 절약, 동급 대비 최대 +16% MMLU.
대표 결과 4B(증류) ≫ 4B(무증류/랜덤초기화), HellaSwag +4.8, MMLU +13.5 (iso-compute). 너비 프루닝 8B가 LM Loss 최저.
기여 (1) 다축 구조적 프루닝+재훈련의 실증 가이드, (2) 베스트 프랙티스 정리, (3) MINITRON 8B/4B 공개 및 타 모델 대비 경쟁력.
한계/주의 원샷↔반복의 우열은 축/깊이/토큰 예산/교사 선택에 따라 달라짐(논문 내 맥락별 결과 공존). 경량 재훈련 없이 비교하면 오판 가능.

 

아래 내용은 업로드하신 “Compact Language Models via Pruning and Knowledge Distillation (MINITRON)” 논문만을 근거로, 방법론을 단계별로 풀어쓴 것입니다. 각 주장에는 논문 내 근거를 달았고, 마지막에 타당성(실험적 검증)과 한계도 정리했습니다.


방법론: “프루닝(구조 축소) → 가중치 트리밍 → 경량 재훈련(증류) → 경량 NAS”

핵심은 대형 LLM(예: 15B)을 구조적으로 줄여(깊이·너비·임베딩 채널) 파라미터/연산 자체를 감소시키고, **소량 데이터(원학습의 <3%)**로 **지식증류(KD)**만으로 성능을 회복하는 실무 가이드입니다. 이로써 모델당 학습 토큰을 최대 40× 줄이고, 계열 전체(15B→8B→4B) 학습을 ~1.8× 연산 절감합니다.

1) 중요도(살리에시) 추정: “순전파만으로, 1,024 샘플”

  • 왜? LLM에서 그래디언트 기반 민감도는 비용이 큼 → 그래디언트 없이 활성값(activations)만으로 축(axes)별 민감도를 계산. **작은 캘리브레이션 데이터(1,024 샘플)**로 충분.
  • 너비 축(Heads / Neurons / Embedding channels):
    MHA/MLP/LayerNorm이 만들어내는 활성값 통계로 각 요소 중요도를 산출(배치/시퀀스 방향으로 집계: mean, L2, var 비교). 레이어별 점수를 합산해 네트워크 전역 중요도를 만든다.
  • 깊이 축(레이어):
    (a) PPL 기반: 해당 레이어 1개 제거 후 퍼플렉시티 변화량을 민감도로 사용, (b) Block Importance(BI): 레이어 입·출력 코사인 거리(한 번의 순전파로 전 레이어 동시 계산 가능). 연속 구간까지 확장 가능.

작은 예시
32-레이어 모델, 각 블록에 32-헤드, MLP hidden=8192, d_model=5120이라면:
헤드 중요도: 각 headi의 Attn 출력의 L2 크기를 모아 랭킹. 중요도 하위 8개 헤드를 삭제 대상 후보로 표시.
뉴런 중요도: 1차 선형층(W1)의 각 **행(row)**이 만드는 활성값 규모로 랭킹해 하위 20% 뉴런 삭제 후보.
임베딩 채널 중요도: LayerNorm 출력의 채널별 통계로 하위 10% 채널 삭제 후보.
레이어 중요도: PPL/BI로 5개의 약한 레이어를 찾음(예: PPL 상승폭/BI가 큰 레이어).

2) 랭킹→트리밍(가중치 리셰이핑): “0으로 두지 말고, 아예 행·열을 줄인다”

  • 각 축의 하위 요소를 제거하면서, 해당 가중치 행렬 크기를 실제로 줄이는(reshape/trim) 방식으로 구조를 축소합니다. (MLP/Attention/LayerNorm의 임베딩 차원도 일관되게 축소.) 이것이 비구조적 ‘제로잉’과 달리 FLOPs/메모리도 함께 줄어드는 이유입니다.
  • 헤드 프루닝 보정: 제거된 헤드의 잔차 정보를 남은 헤드에 재분배(MHA 버전의 Layer Collapse)해 정확도 하락을 줄임. 수식적으로는 새 headi ← headi + (headi − head2K−i+1).

예시(위 구성 계속):
• 헤드 32→24로 축소 시, WQ/ WK/ WV의 [d_model × d_head] 블록 8개와 WO의 **[24·d_head × d_model]**만 남김 → 행렬 연산 자체가 작아짐.
• 뉴런 8192→6553(−20%)면 W1, W2의 행/열을 직접 제거 → MLP FLOPs가 바로 감소.
• 임베딩 채널 5120→4608(−10%)이면 MLP/Attention/LayerNorm의 임베딩 축을 전부 일관되게 줄임.

3) 재훈련(Accuracy Recovery): “로짓-KLD 중심의 지식증류”

  • 용어상 재훈련은 프루닝 후 정확도 회복 단계. 두 전략 비교: (1) 일반학습, (2) 지식증류(KD). 본 연구는 **교사(원본, unpruned) → 학생(프루닝된)**으로 출력분포(로짓) 및 중간표현을 모사하도록 설계.
  • KD 구성(그림 4): 로짓 손실(L_logit) + 선택적 중간 손실(임베딩, 블록 출력 등). 학생 N층교사 M층 매핑은 보통 **(last-2):(last-2)**가 잘 맞음.
  • 베스트 프랙티스(손실/온도/Top-K)
    • **KLD(Forward KL)**가 R-KLD/코사인/MSE/WSL-KD보다 우수 → 로짓-KLD 단독을 권장.
    • 온도 τ=1.0이 최적.
    • Top-K 로짓 제한은 성능 저하 → 사용하지 않음.
    • 깊이 축소가 크지 않다면 로짓-KLD만으로 충분, 깊게 줄였다면 중간표현 손실 추가.

4) 경량 NAS(Search): “후보를 전수 나열 → 1.8B 토큰 단기 재훈련으로 랭킹 안정화”

  • **목표 파라미터 예산(±5%)**을 정하고, 헤드/MLP/임베딩/레이어 조합으로 **feasible 후보(보통 <20개)**를 전수 열거. 각 후보는 ~1.8B 토큰만 경량 재훈련해 랭킹을 안정화시킨 뒤 최종 아키텍처를 선택.
  • 왜 1.8B 단기 재훈련이 필요? 프루닝 선택 간 우열이 초기 수백 스텝에서 뒤바뀌다가 일정 스텝 이후에야 안정화되기 때문(랭킹 뒤집힘 현상).

5) 원샷 vs 반복 프루닝

  • 깊이 축(레이어): 원샷 프루닝+재훈련이 반복식보다 MMLU/HellaSwag/HumanEval에서 더 좋았음(동일 토큰 예산 대비).
  • 다축(임베딩→MLP·ATT): 동일 토큰 예산이면 원샷이 반복식보다 유리(LM val loss).

타당성(실험 근거) & 한계

타당성(검증 포인트)

  1. 토큰/연산 절감과 성능 유지/개선
    • 15B→8B/4B 파생 시 모델당 학습 토큰 최대 40× 절감, 계열 전체 1.8× 연산 절감, MMLU 최대 +16% 개선.
  2. 증류의 우월성(iso-compute 조건)
    • 4B에서 랜덤 초기화 < 프루닝 후 일반학습 < 프루닝 후 증류(HellaSwag +4.8pt, MMLU +13.5pt). 또한 8B를 교사로 쓰면 MMLU 추가 +4.6pt.
  3. 너비 vs 깊이(재훈련 후 결과)
    • **너비 단독 프루닝(헤드·뉴런·임베딩)**이 파라미터가 더 적음에도 LM Loss가 더 낮음(좋음).
  4. 단기 재훈련의 필요성(랭킹 안정화)
    • 프루닝 후보 간 우열이 ~200스텝 전후에 뒤바뀌며 이후 안정화 → 경량 재훈련 단계가 필수.
  5. 원샷>반복(동일 토큰 예산)
    • 깊이 및 다축 프루닝 모두 원샷이 반복식보다 일관되게 우수.
  6. 실사용 벤치마크
    • ChatRAG-Bench / BFCL v2에서 동급 대비 우수(특히 4B-instruct).

한계(논문에 비춘 주의점)

  • 활성값 기반 중요도 한계: 그라디언트/테일러 기반과 달리 상호작용(레이어 간 보상)이나 과업별 민감도를 충분히 반영 못할 수 있음. 논문도 기존 지표(가중치 크기 등)의 한계를 지적하면서 대안을 제시하지만, 활성값만으로 완전한 정답은 아님.
  • 캘리브레이션 데이터 의존: 1,024 샘플로 순위가 결정되므로, 도메인/분포 차이가 크면 랭킹이 왜곡될 위험.
  • 중간손실의 효용은 맥락 의존: 깊이 축소가 크지 않으면 로짓-KLD만이 최선이고, 크면 중간 손실을 섞으라고 하지만, 정량 최적 조합은 태스크/축소량에 따라 달라짐.
  • KD 오버헤드: 교사 모델 순전파가 추가되어 학습당 시연산은 증가(그래도 iso-compute에서 이득 확인).
  • 반복 프루닝 일반성: 본 연구 스케일(≤15B)과 예산에서 원샷 우세를 보였으나, 초대형/극단 축소나 다른 데이터셋에선 결과가 달라질 수 있음(그 자체로 NAS+경량 재훈련 스텝을 두는 이유).
  • 특정 벤치마크 편향 가능성: 표준 지표(MMLU/HellaSwag 등) 외 수학/코딩 일부 항목에서의 절대 성능은 여전히 과제(표 2,3 개별 수치 참조).

실무 적용 체크리스트(요지)

  • 중요도: 너비 축은 (batch=L2, seq=mean) 집계 + 깊이는 PPL/BI.
  • 프루닝: 실제 행렬을 트리밍(임베딩 축 일관 축소), 헤드는 잔차 재분배.
  • 재훈련: 로짓-KLD 단독, τ=1.0, Top-K 미사용. 깊이 축소가 크면 중간 손실 추가.
  • NAS: 목표 파라미터(±5%)로 후보 전수 열거 → 각 후보 ~1.8B 토큰 재훈련 → 최종 선정.
  • 전략: 동등 예산이면 원샷 프루닝+재훈련을 기본값으로.

 

맞아요—핵심 흐름은 정확히 그렇게 이해하신 겁니다. 다만 논문에서 딱 두 가지를 더 덧붙입니다:

  1. 중요도 계산 방식(축별)
  • 작은 **캘리브레이션 세트(≈1,024 샘플)**로 순전파만 돌려 활성값 기반 중요도를 뽑습니다. 너비축(헤드·뉴런·임베딩 채널)은 MHA/MLP/LN의 활성 통계를 집계하고, 깊이축(레이어)은 PPL 변화나 **Block Importance(입·출력 코사인 거리)**로 평가합니다.
  • 이렇게 랭킹한 뒤 하위 n%를 제거하는데, 단순 “0으로 두기”가 아니라 가중치 행렬을 실제로 잘라(reshape/trim) FLOPs와 메모리까지 줄입니다. 헤드 프루닝 시에는 제거된 헤드의 잔차 정보를 남은 헤드에 재분배해 정확도 손실을 보전합니다.
  1. 재학습(정확도 복구)은 ‘교사 로짓 따라가기(KD)’가 기본값
  • 학생(프루닝된 모델)은 원본 LLM의 로짓 분포를 KLD로 모사합니다. 온도는 τ=1.0이 가장 좋고, top-K로 로짓을 자르는 건 성능 저하라 비권장입니다. 깊이 축소가 크지 않다면 로짓-KLD만 쓰는 게 가장 안정적입니다.
  • 같은 연산 예산(iso-compute)에서 “랜덤 초기화” < “프루닝+일반 재학습” < “프루닝+증류(KD)” 순으로 성능이 올라갑니다(MMLU +13.5pt 등).

보너스(실무 팁 한 줄):

  • 후보 아키텍처를 몇 개 만들면 각각 **경량 재훈련(~1.8B 토큰)**으로 빠르게 성능을 확인해 순위를 안정화시킨 뒤 최종안을 고릅니다. 원샷 프루닝+재훈련이 보통 반복식보다 효율적이었습니다(동일 토큰 예산 비교).

즉, **“작은 캘리브레이션으로 중요도→하위 n% 구조적 제거→교사 로짓을 따르는 증류로 복구”**라는 요약은 정확하고, 논문은 여기에 (i) 실제 행렬 트리밍, (ii) 헤드 잔차 재분배, (iii) τ=1.0·top-K 미사용, (iv) 원샷 선호 같은 실전 규칙을 더해줍니다.

원하시면, 이 규칙 그대로 **HEGA/RAG용 프루닝·증류 체크리스트(축별 n% 가이드, 집계함수 설정, KD 손실 템플릿)**를 코드 스니펫과 함께 바로 뽑아드릴게요.

 

 

 

728x90