SparseDecoding: 디코딩을 아는 프루닝, 그리고 디코딩을 위해 태어난 커널
한 줄 요약 (TL;DR)
LLM의 자기회귀 디코딩이 메모리 바운드라는 점에 착안해, 프루닝의 캘리브레이션을 “고정 텍스트"가 아니라 “모델 스스로 생성한 토큰"에서 수집하고, 여기에 디코딩(SpMV) 전용 $N{:}M$ 커널을 붙여 최대 $1.48\times$ 의 end-to-end 디코딩 가속을 얻은 연구다.
핵심 아이디어
기존 학습-불필요(training-free) 프루닝의 헛점은 두 갈래다. 하나는 데이터 분포의 괴리다. SparseGPT 같은 OBS 계열 프루닝은 C4·WikiText 같은 고정 텍스트에서 수집한 활성화로 헤시안(Hessian)을 계산한다. 하지만 실제 추론에서는 모델이 자신이 방금 생성한 토큰을 이어서 입력받는다. 고정 텍스트로 계산한 헤시안과 생성 토큰으로 계산한 헤시안이 달라지고, 그 결과 프루닝된 모델의 활성화 분포가 프루닝 시점의 그것에서 점점 벗어난다 (근거: §1, Fig. 1a).
또 하나는 시스템 계층의 공백이다. 기존 $2{:}4$ Sparse Tensor Core 커널(cuSPARSELt 등)은 SpMM(행렬×행렬)에 최적화되어 있어 prefill 단계에선 $1.31\sim1.46\times$ 속도를 내지만, 디코딩을 지배하는 SpMV(행렬×벡터)에서는 dense 대비 $0.85\sim0.87\times$ 로 오히려 느려진다 (근거: §1, Fig. 1b).
SparseDecoding은 이 두 문제를 알고리즘 축(decoding-aware calibration) 과 시스템 축(N:M SpMV 커널) 으로 동시에 해결한다.
배경: 그들이 해결한 문제
문서 작성·코드 생성 같은 long-output 응용에서 LLM 추론 비용의 대부분은 자기회귀 디코딩이 차지한다. 디코딩은 한 토큰씩 숨겨진 상태를 처리하므로 메모리 대역폭에 묶여 있다. 프루닝은 중요도가 낮은 가중치를 0으로 만들어 디코딩 중 메모리에서 읽어야 할 0이 아닌 원소 수를 줄이는, 가장 자연스러운 해법이다 (근거: §1).
문제는 학습 비용과 데이터 제약 때문에 LLM에는 학습-불필요(one-shot) 프루닝이 사실상 표준이라는 점이다. 이 계열의 대표 주자인 OBS(Optimal Brain Surgeon) 프레임워크는 레이어별 재구성 오차를 2차 테일러 근사로 최소화하는데, 여기서 캘리브레이션 활성화가 헤시안 $H = 2X_\ell X_\ell^\top$ 을 통해 “어떤 가중치를 제거하고, 남은 가중치를 어떻게 보정할지"를 결정한다 (근거: §3.1). 즉 캘리브레이션 데이터가 곧 프루닝 품질을 좌우한다.
그런데 기존 방식은 teacher forcing으로 고정 시퀀스를 흘려 활성화를 모은다. 정적 입력 추론에는 적합하지만, 자기회귀 디코딩에서는 초기 단계의 프루닝 오류가 이후 컨텍스트를 바꾸고 그 효과가 누적되어 활성화 분포가 서서히 이탈한다. 저자들은 모든 레이어가 디코딩 12스텝 안에 정점의 90% 에 도달할 정도로 이 괴리가 빠르게 커진다는 것을 실측했다 (근거: §1, Fig. 1a).
새로운 접근법: SparseDecoding
알고리즘 축: Decoding-Aware Calibration
핵심 아이디어는 단순하다. 프루닝에 쓸 활성화를 dense 모델의 자기회귀 생성 과정에서 수집하라 — 단, prefill 단계의 활성화는 버리고 디코딩 단계의 활성화만 남겨라 (근거: §3.2).
구체적으로, 타깃 태스크의 프롬프트 집합 $\mathcal{C}=\{q_m\}_{m=1}^{K}$ 에 대해 dense 모델이 각 프롬프트의 continuation을 스스로 생성한다.
$$ y_t^{(m)} \sim P_\theta\big(\cdot \mid q_m,\, y_{그 다음엔 기존과 동일한 레이어별 재구성 목적을 이 활성화 위에서 정의한다.
$$ \widehat{W}_{\ell} = \operatorname_{argmin}_{\widetilde{W}_{\ell}} \left\lVert \left( W_{\ell} - \widetilde{W}_{\ell} \right) X_{\ell}^{\mathrm{AR}} \right\rVert_{F}^{2} \quad \text{s.t.} \quad \operatorname{sparsity}(\widetilde{W}_{\ell}) = S_{\ell} $$프루닝 솔버 자체는 그대로 두고 캘리브레이션 행렬만 바꾼다. 저자들은 SparseGPT·Wanda 어느 솔버를 써도 동일한 이득이 나온다는 것을 확인했다 (근거: §4.4, Tab. 5). 추가 학습도, 새로운 옵티마이저도 필요 없다.
시스템 축: N:M SpMV 커널
프루닝이 실제 속도로 이어지려면 하드웨어에서 희소 패턴을 효율적으로 실행해야 한다. 디코딩은 batch-one 또는 소배치에서 벡터 하나를 처리하므로 GEMV/SpMV에 가깝다. 저자들은 nmSPARSE에 영감을 받아 디코딩 전용 $N{:}M$ SpMV 커널을 설계했다 (근거: §3.3). 두 가지 설계 원칙이 있다.
- 비트마스크 인덱싱: 각 행의 희소 패턴을 비트마스크로 표현해, 0이 아닌 원소마다 32비트
int32인덱스를 따로 저장하는 대신 비트 1개당 한 열을 대응시킨다. 50% 희소성에서 0이 아닌 원소당 메타데이터는 2비트면 충분하다. nmSPARSE의int32대비 16배,uint8오프셋 대비 4배 줄어들어, 메모리 바운드인 batch-one 디코딩에 특히 유리하다 (근거: §3.3). - 고정 스텝 순회: 50%
$N{:}M$이고 $M\le32$ 이면 정렬된 32비트 마스크마다 정확히 16개의 set bit가 있다. 모든 행이 동일한 순회 스텝 수를 갖게 되어 GPU 스레드 간 워크로드가 균일해지고, 컴파일러가 루프를 완전히 풀 수 있다. 각 스텝은 bit-scan으로 다음 nonzero의 열을 찾고 해당 비트를 지운다.
작동 원리: 구체적인 예시로 살펴보기
비트마스크 순회의 직관
가중치 행의 한 행에 8개 가중치가 있고 $4{:}8$ 희소성(4개 그룹마다 2개 유지)을 적용한다고 하자. 원래 가중치가 다음과 같다고 치자.
열 인덱스: 0 1 2 3 4 5 6 7
가중치: 0.8 0.1 0.9 0.2 0.7 0.3 0.6 0.4프루닝 후 0.1, 0.2, 0.3, 0.4를 제거하고 0.8, 0.9, 0.7, 0.6만 남겼다면, 비트마스크는 “유지=1, 제거=0"으로 다음처럼 된다.
비트마스크: 1 0 1 0 1 0 1 0 → 10101010 (0xAA)
저장된 값: [0.8, 0.9, 0.7, 0.6] (열 오름차순)디코딩 시 이 행은 입력 벡터와 곱해진다. 기존 방식이라면 각 저장 값에 대해 열 인덱스를 따로 읽어야 하지만, 비트마스크 방식에서는 set bit의 위치가 곧 열 인덱스다. 커널은 고정 길이 루프에서 bit-scan으로 최하위 set bit를 찾아 열을 알아내고, 그 비트를 지운 뒤 다음으로 넘어간다. 한 행의 순회가 저장된 값 수(=16개)만큼으로 고정되므로 모든 스레드가 같은 작업량을 갖는다.
캘리브레이션의 직관
기존 C4 캘리브레이션은 “정답 텍스트"를 흘려 활성화를 모은다. 반면 SparseDecoding은 프롬프트(“장편 판타지 소설의 서문을 써줘”)를 주고 dense 모델이 실제로 소설을 쓰게 한 뒤, 그 생성 과정의 디코딩 활성화로 헤시안을 만든다. 프루닝은 “모델이 실제로 만나는 상태"에 맞춰진다. prefill 활성화를 버리는 이유는, 디코딩은 토큰 단위 자기 조건화라는 특수한 상태이기 때문이다 (근거: §3.2).
성능 검증: 주요 결과
1) 디코딩 가속 (속도)
| N:M | Llama-3.1-8B (tok/s) | Llama-3.3-70B | Qwen3-14B | Qwen3-32B |
|---|---|---|---|---|
| Dense | 96.26 | 21.67 | 39.76 | 19.15 |
| 2:4 | 136.30 (1.42×) | 30.17 (1.39×) | 53.18 (1.34×) | 27.69 (1.45×) |
| 4:8 | 136.43 (1.42×) | 31.64 (1.46×) | 53.86 (1.35×) | 27.83 (1.45×) |
| 8:16 | 136.89 (1.42×) | 29.90 (1.38×) | 53.42 (1.34×) | 27.77 (1.45×) |
| 16:32 | 136.89 (1.42×) | 32.13 (1.48×) | 53.73 (1.35×) | 27.81 (1.45×) |
모든 패턴이 50% 가중치를 유지하므로 패턴 간 차이는 커널 효율의 차이이고, 전 패턴이 dense보다 빠르다. 컨텍스트 512, A100 80GB, GPT-Fast 기준 (근거: §4.3, Tab. 3). 기존 $2{:}4$ Sparse Tensor Core가 디코딩에서 dense보다 느렸던 것(Fig. 1b)과 정반대다.
2) 생성 품질 (WritingBench, 1–10점)
WritingBench는 6개 도메인·100개 서브도메인·1,000개 프롬프트의 장문 글쓰기 벤치마크다 (근거: §4.1). SparseDecoding이 모든 모델·모든 희소성에서 C4 캘리브레이션을 앞선다.
| 모델 | Dense | C4 (50%) | Ours (50%) | C4 (2:4) | Ours (2:4) |
|---|---|---|---|---|---|
| Llama-3.1-8B | 3.70 | 2.25 | 2.54 | 1.34 | 1.52 |
| Llama-3.3-70B | 4.65 | 3.82 | 4.01 | 3.10 | 3.29 |
| Qwen3-14B | 5.97 | 4.62 | 5.35 | 1.85 | 4.18 |
| Qwen3-32B | 6.48 | 5.34 | 6.09 | 2.99 | 5.31 |
가장 극적인 지점은 Qwen 계열의 $2{:}4$ 희소성이다. C4는 Qwen3-14B에서 1.85, Qwen3-32B에서 2.99로 품질이 사실상 무너지지만, SparseDecoding은 각각 4.18, 5.31 로 끌어올린다 (근거: Tab. 1). Llama 계열에서는 이득이 비교적 작은데(1.34→1.52 등), 이는 후술할 한계와 연결된다.
3) 코드 생성 일반화 (ClassEval)
코드 생성에서도 동일한 절차가 통한다(캘리브레이션 프롬프트만 LiveCodeBench 문제로 교체). 8개 모델-희소성 조합 전부에서 4~15포인트 앞선다. 특히 $2{:}4$ 희소성에서 C4가 Llama-3.1-8B·Qwen3-14B에서 Pass@1 = 0.0% 인 반면, SparseDecoding은 4.0%·6.0%를 회복한다 (근거: §4.2, Tab. 2). 이는 “캘리브레이션이 어떤 텍스트인가” 못지않게 “어떻게 수집되는가"가 결정적이라는 방증이다.
4) 이론적 정당화
부록에서 저자들은 캘리브레이션 불일치(discrepancy) $\epsilon_{\ell,C}^{(k)}$ 를 정의하고, 이것이 “캘리브레이션 목적과 디코딩 시점 재구성 목적의 최악의 상대 오차"와 정확히 같음을 증명한다 (근거: Appx. A, Thm. 1). 실측 결과, AR 캘리브레이션이 C4보다 작은 불일치를 보이는 모듈이 87%~99% 에 달하고, 중앙 불일치 비율 $\hat{\epsilon}_{\mathrm{C4}}/\hat{\epsilon}_{\mathrm{AR}}$ 은 1.81~3.26 이었다. 디코딩-인지 캘리브레이션이 고정 텍스트보다 디코딩 목적에 일관되게 더 가깝다는 정량 근거다 (근거: Appx. A, Tab. 6–7).
5) Ablation: 이득의 원천은 “무엇"이 아니라 “누구·어떻게”
- 자기 생성 vs 교차 생성: 14B 모델을 32B의 생성 토큰으로 프루닝하면 자기 생성 대비 열세(2:4에서 4.13 vs 4.18)다. 다른 모델이 만든 시퀀스는 분포 괴리를 재도입한다 (근거: Tab. 4).
- 솔버 불변: Wanda를 써도 SparseDecoding이 일관되게 앞선다(Qwen3-14B 2:4에서 C4 2.41 vs 3.30). 이득은 솔버가 아니라 캘리브레이션 활성화에서 온다 (근거: Tab. 5).
- 코퍼스 불변: Pile·RedPajama 같은 고정 코퍼스보다도 SparseDecoding이 우세하다 (근거: Tab. 9).
우리의 관점: 강점, 한계, 그리고 이 연구가 중요한 이유
강점
가장 칭찬할 점은 문제를 정확히 겨냥했다는 것이다. 프루닝이 “정적 입력"을 전제로 한다는, 오랫동안 당연하게 여겨졌던 가정을 무너뜨리고 “프루닝은 디코딩 상태에 맞춰져야 한다"는 관점으로 전환했다. 여기에 속도까지 챙기기 위해 SpMM이 아닌 SpMV에 집중한 시스템 설계는 학계 연구에서 흔히 빠뜨리는 “실측 wall-clock"을 놓치지 않은 모범 사례다. 기존 $2{:}4$ 커널이 디코딩에서 느려졌던 사실을 데이터로 보여주고(Fig. 1b), 그 간극을 자기 커널로 메운 흐름이 깔끔하다.
또, 캘리브레이션 행렬만 교체하면 SparseGPT·Wanda 어느 솔버에든 얹을 수 있다는 낮은 도입 장벽이 실용적 가치를 높인다. 이론(Thm. 1)까지 붙여 “왜 되는지"를 정량화한 점도 돋보인다.
한계
몇 가지 공정하게 지적할 지점이 있다.
- Llama 계열에서 이득이 작다.
$2{:}4$에서 Llama-3.1-8B는 1.34→1.52, Llama-3.3-70B는 3.10→3.29로, Qwen 계열의 수 포인트 도약과 대비된다. 모델 계열·크기에 따라 캘리브레이션 민감도가 크게 다르다는 뜻이며, “언제 효과적인가"에 대한 조건 분석이 부족하다 (근거: Tab. 1). - 캘리브레이션 비용이 은근히 비싸다. dense 모델로 1M 토큰을 실제 생성해야 하므로, C4를 흘리는 것보다 사전 단계가 무겁다. 이 비용 대비 이득의 정량 비교는 제시되지 않았다.
- 평가 judge 의존성. WritingBench는 DeepSeek-V4-Flash를 judge로 쓰는 LLM-as-judge 벤치마크라, 절대 점수(3.70 등 낮은 값) 자체의 해석에 주의가 필요하다. 다만 같은 judge·세팅 안의 상대 비교는 유효하다.
- 희소성 한정.
$N{:}M$50%와 비구조 50%만 다뤘다. 더 공격적인 희소성(예: 75%+)에서도 이 프레임워크가 버티는지는 열려 있다. - 단일 GPU·A100 한정. 70B도 A100에서 돌렸지만, 다중 GPU 텐서 병렬 환경에서 SpMV 커널의 이득이 유지되는지는 확인되지 않았다 (근거: §4.1).
이 연구가 중요한 이유
LLM 추론 비용이 실사용의 병목으로 자리잡은 지금, “프루닝은 속도만 빠르고 품질은 망가뜨린다"는 인식에 반격을 가하는 연구다. 특히 프루닝의 품질 문제를 “데이터 선택"이 아니라 “데이터 수집 방식"의 문제로 재구성한 발상은, 향후 프루닝·증류·양자화 등 모든 “캘리브레이션 기반 압축” 연구에 재사용될 수 있는 일반적인 통찰이다.
다음 단계는?: 앞으로의 길
저자들은 명시적인 향후 계획을 길게 늘어놓지는 않지만, 위 한계를 비추어보면 자연스러운 다음 단계가 보인다.
- 희소성 확장: 50%를 넘어 2/3·3/4 희소성에서 품질-속도 파레토를 탐색. 비트마스크 순회의 고정 스텝 성질은 여전히 활용 가능하다.
- 조건 분석: “어떤 모델·과제에서 decoding-aware 캘리브레이션이 특히 중요한가"를 이론적 프레임(Thm. 1의 불일치)으로 예측하고 검증.
- 다중 GPU 확장: 텐서 병렬·파이프라인 병렬에서 SpMV 커널의 성능을 검증해 실서빙 스택(vLLM 등)과의 통합 여부를 확인.
- 다른 압축 기법과의 결합: 양자화와 동시 적용, 또는 speculative decoding과의 상호작용 등 “디코딩-인지” 원칙을 더 넓은 파이프라인에 적용.
캘리브레이션을 “모델이 실제로 살아가는 상태"에서 수집한다는 단순한 원칙 하나가 품질과 속도 양쪽을 함께 끌어올린 이 연구는, 추론 최적화에서 “이론적 FLOPs"보다 “실측 wall-clock"이 진짜 목표임을 다시 한번 상기시킨다.
논문 원문의 표
arXiv e-print 의 LaTeX 원본에서 기계적으로 옮긴 표입니다. 숫자는 논문의 값이며 모델을 거치지 않았습니다.
표 1. Results on the WritingBench benchmark under $50\%$ and $2{:}4$ sparsity. SparseDecoding (ours) calibrates on autoregressive generations conditioned on LongWriter prompts; C4 uses fixed C4 sequences. densegrayDense is the unpruned reference. Columns report the overall score, the six domain scores, and the three requirement scores for style (R1), format (R2), and length (R3); ``C’’ indicates the corresponding category-specific score. The six domains are Academic & Engineering (D1), Finance & Business (D2), Politics & Law (D3), Literature & Arts (D4), Education (D5), and Advertising & Marketing (D6). All scores are on a scale of 1-10. Bold marks the better overall score between SparseDecoding and C4 within each sparsity setting, based on unrounded values.
| Model | Sparsity | Method | Overall | Domains D1 | Domains D2 | Domains D3 | Domains D4 | Domains D5 | Domains D6 | Requirements R1 | Requirements C | Requirements R2 | Requirements C | Requirements R3 | Requirements C |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Llama-3.1-8B | densegray0% | densegrayDense | densegray3.70 | densegray3.7 | densegray3.6 | densegray3.5 | densegray3.3 | densegray4.1 | densegray4.3 | densegray3.8 | densegray3.9 | densegray3.7 | densegray4.3 | densegray3.8 | densegray3.6 |
| 2-16 | $50\%$ | C4 | 2.25 | 2.4 | 2.2 | 2.1 | 1.9 | 2.4 | 2.6 | 2.2 | 2.2 | 2.2 | 2.5 | 2.2 | 2.1 |
| SparseDecoding | 2.54 | 2.7 | 2.5 | 2.5 | 2.0 | 2.7 | 3.0 | 2.5 | 2.5 | 2.5 | 2.9 | 2.5 | 2.4 | ||
| 2-16 | $2{:}4$ | C4 | 1.34 | 1.5 | 1.3 | 1.3 | 1.1 | 1.4 | 1.6 | 1.3 | 1.3 | 1.3 | 1.4 | 1.3 | 1.2 |
| SparseDecoding | 1.52 | 1.7 | 1.6 | 1.5 | 1.3 | 1.5 | 1.6 | 1.5 | 1.5 | 1.5 | 1.5 | 1.4 | 1.4 | ||
| Llama-3.3-70B | densegray0% | densegrayDense | densegray4.65 | densegray4.6 | densegray4.5 | densegray4.5 | densegray4.5 | densegray5.1 | densegray5.2 | densegray4.7 | densegray4.9 | densegray4.6 | densegray5.2 | densegray4.8 | densegray4.5 |
| 2-16 | $50\%$ | C4 | 3.82 | 3.7 | 3.8 | 3.7 | 3.5 | 4.1 | 4.3 | 3.8 | 4.0 | 3.8 | 4.3 | 3.8 | 3.7 |
| SparseDecoding | 4.01 | 4.0 | 3.9 | 3.8 | 3.8 | 4.4 | 4.5 | 4.0 | 4.2 | 4.0 | 4.5 | 4.1 | 3.8 | ||
| 2-16 | $2{:}4$ | C4 | 3.10 | 3.1 | 3.2 | 3.0 | 2.6 | 3.3 | 3.5 | 3.1 | 3.0 | 3.1 | 3.6 | 3.0 | 2.8 |
| SparseDecoding | 3.29 | 3.2 | 3.3 | 3.0 | 3.1 | 3.7 | 3.8 | 3.3 | 3.4 | 3.2 | 3.6 | 3.3 | 2.9 | ||
| Qwen3-14B | densegray0% | densegrayDense | densegray5.97 | densegray6.0 | densegray5.8 | densegray6.1 | densegray5.7 | densegray6.3 | densegray6.1 | densegray6.1 | densegray6.4 | densegray6.0 | densegray6.8 | densegray6.0 | densegray6.3 |
| 2-16 | $50\%$ | C4 | 4.62 | 4.6 | 4.4 | 4.6 | 4.0 | 5.4 | 5.2 | 4.8 | 5.0 | 4.6 | 5.2 | 4.5 | 4.6 |
| SparseDecoding | 5.35 | 5.3 | 5.3 | 5.4 | 4.9 | 5.9 | 5.6 | 5.5 | 5.8 | 5.4 | 6.2 | 5.4 | 5.6 | ||
| 2-16 | $2{:}4$ | C4 | 1.85 | 2.0 | 1.8 | 1.7 | 1.6 | 2.0 | 2.3 | 1.9 | 1.9 | 1.8 | 1.7 | 1.9 | 1.7 |
| SparseDecoding | 4.18 | 4.2 | 4.3 | 4.3 | 3.3 | 4.8 | 4.6 | 4.2 | 4.4 | 4.2 | 4.9 | 4.1 | 4.2 | ||
| Qwen3-32B | densegray0% | densegrayDense | densegray6.48 | densegray6.5 | densegray6.4 | densegray6.5 | densegray6.3 | densegray6.7 | densegray6.6 | densegray6.6 | densegray6.8 | densegray6.5 | densegray7.2 | densegray6.6 | densegray6.8 |
| 2-16 | $50\%$ | C4 | 5.34 | 5.2 | 5.2 | 5.4 | 4.9 | 5.9 | 5.8 | 5.5 | 5.7 | 5.3 | 6.0 | 5.3 | 5.4 |
| SparseDecoding | 6.09 | 6.0 | 6.0 | 6.1 | 5.8 | 6.5 | 6.3 | 6.2 | 6.5 | 6.1 | 6.8 | 6.1 | 6.4 | ||
| 2-16 | $2{:}4$ | C4 | 2.99 | 3.0 | 2.9 | 2.9 | 2.3 | 3.5 | 3.9 | 3.0 | 3.1 | 3.0 | 3.3 | 2.9 | 2.8 |
| SparseDecoding | 5.31 | 5.2 | 5.3 | 5.4 | 4.7 | 5.8 | 5.7 | 5.4 | 5.6 | 5.3 | 6.0 | 5.3 | 5.5 |
표 2. End-to-end decoding throughput and speedup over the dense baseline. All of the $N{:}M$ patterns retain $50\%$ of the weights, so differences reflect kernel efficiency rather than compression. Every evaluated pattern decodes faster than the dense baseline, with speedups ranging from \(1.34\) to \(1.48\times\). Measurements use a context length of 512 and report the median after 50 warmup and 50 measured iterations on NVIDIA A100 GPUs with GPT-Fast.
| $N{:}M$ | Llama-3.1-8B Token/s | Llama-3.1-8B Speedup | Llama-3.3-70B Token/s | Llama-3.3-70B Speedup | Qwen3-14B Token/s | Qwen3-14B Speedup | Qwen3-32B Token/s | Qwen3-32B Speedup |
|---|---|---|---|---|---|---|---|---|
| densegrayDense | densegray96.26 | densegray1.00$\times$ | densegray21.67 | densegray1.00$\times$ | densegray39.76 | densegray1.00$\times$ | densegray19.15 | densegray1.00$\times$ |
| 1-9 $2{:}4$ | 136.30 | 1.42$\times$ | 30.17 | 1.39$\times$ | 53.18 | 1.34$\times$ | 27.69 | 1.45$\times$ |
| $4{:}8$ | 136.43 | 1.42$\times$ | 31.64 | 1.46$\times$ | 53.86 | 1.35$\times$ | 27.83 | 1.45$\times$ |
| $8{:}16$ | 136.89 | 1.42$\times$ | 29.90 | 1.38$\times$ | 53.42 | 1.34$\times$ | 27.77 | 1.45$\times$ |
| $16{:}32$ | 136.89 | 1.42$\times$ | 32.13 | 1.48$\times$ | 53.73 | 1.35$\times$ | 27.81 | 1.45$\times$ |
표 3. Empirical comparison of AR and C4 calibration discrepancy on Qwen3 14B. For each retained eigenvector fraction, we report the number and percentage of prunable modules (out of 280) where \(\epsilon_\ell,AR^(k) < \epsilon_\ell,C4^(k)\), together with the median of the discrepancy ratio \(\epsilon_C4/\epsilon_AR\).
| Retained eigenvectors | Modules with \(\epsilon_AR < \epsilon_C4\) | Percentage | Median ratio \(\epsilon_C4/\epsilon_AR\) |
|---|---|---|---|
| 1% | 274 | 97.9% | 2.30 |
| 2% | 271 | 96.8% | 2.39 |
| 5% | 266 | 95.0% | 2.65 |
| 10% | 264 | 94.3% | 2.83 |
| 20% | 261 | 93.2% | 3.06 |
| 50% | 248 | 88.6% | 3.26 |
표 4. Empirical comparison of AR and C4 calibration discrepancy on Qwen3 32B. For each retained eigenvector fraction, we report the number and percentage of prunable modules (out of 448) where \(\epsilon_\ell,AR^(k) < \epsilon_\ell,C4^(k)\), together with the median of the discrepancy ratio \(\epsilon_C4/\epsilon_AR\).
| Retained eigenvectors | Modules with \(\epsilon_AR < \epsilon_C4\) | Percentage | Median ratio \(\epsilon_C4/\epsilon_AR\) |
|---|---|---|---|
| 1% | 390 | 87.1% | 1.81 |
| 2% | 419 | 93.5% | 1.92 |
| 5% | 440 | 98.2% | 2.08 |
| 10% | 439 | 98.0% | 2.16 |
| 20% | 444 | 99.1% | 2.17 |
| 50% | 442 | 98.7% | 2.19 |
표 5. Results on WritingBench for Qwen3-14B and Qwen3-32B under unstructured $50\%$ and semi-structured $8{:}16$ sparsity. SparseDecoding (ours) calibrates on autoregressive generations conditioned on LongWriter prompts; C4 uses fixed C4 sequences. densegrayDense is the unpruned reference. ``C’’ indicates the corresponding category-specific score. Bold marks the best overall score within each sparsity setting.
| Model | Sparsity | Method | Overall | Domains D1 | Domains D2 | Domains D3 | Domains D4 | Domains D5 | Domains D6 | Requirements R1 | Requirements C | Requirements R2 | Requirements C | Requirements R3 | Requirements C |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Qwen3-14B | densegray$0\%$ | densegrayDense | densegray5.97 | densegray6.0 | densegray5.8 | densegray6.1 | densegray5.7 | densegray6.3 | densegray6.1 | densegray6.1 | densegray6.4 | densegray6.0 | densegray6.8 | densegray6.0 | densegray6.3 |
| 2-16 | $50\%$ | C4 | 4.62 | 4.6 | 4.4 | 4.6 | 4.0 | 5.4 | 5.2 | 4.8 | 5.0 | 4.6 | 5.2 | 4.5 | 4.6 |
| SparseDecoding | 5.35 | 5.3 | 5.3 | 5.4 | 4.9 | 5.9 | 5.6 | 5.5 | 5.8 | 5.4 | 6.2 | 5.4 | 5.6 | ||
| 2-16 | $8{:}16$ | C4 | 4.50 | 4.5 | 4.4 | 4.5 | 3.8 | 5.0 | 5.2 | 4.6 | 4.8 | 4.5 | 5.0 | 4.3 | 4.2 |
| SparseDecoding | 5.31 | 5.2 | 5.3 | 5.3 | 4.7 | 5.9 | 5.7 | 5.4 | 5.6 | 5.4 | 6.1 | 5.2 | 5.4 | ||
| Qwen3-32B | densegray0% | densegrayDense | densegray6.48 | densegray6.5 | densegray6.4 | densegray6.5 | densegray6.3 | densegray6.7 | densegray6.6 | densegray6.6 | densegray6.8 | densegray6.5 | densegray7.2 | densegray6.6 | densegray6.8 |
| 2-16 | $50\%$ | C4 | 5.34 | 5.2 | 5.2 | 5.4 | 4.9 | 5.9 | 5.8 | 5.5 | 5.7 | 5.3 | 6.0 | 5.3 | 5.4 |
| SparseDecoding | 6.09 | 6.0 | 6.0 | 6.1 | 5.8 | 6.5 | 6.3 | 6.2 | 6.5 | 6.1 | 6.8 | 6.1 | 6.4 | ||
| 2-16 | $8{:}16$ | C4 | 5.20 | 5.2 | 5.1 | 5.3 | 4.5 | 5.6 | 5.7 | 5.3 | 5.5 | 5.2 | 5.8 | 5.1 | 5.2 |
| SparseDecoding | 5.91 | 5.8 | 5.9 | 5.9 | 5.5 | 6.3 | 6.3 | 6.0 | 6.3 | 5.9 | 6.7 | 6.0 | 6.1 |
표 6. Results on WritingBench benchmark under $50\%$ and $2{:}4$ sparsity with different calibration data for the Qwen3 model family. Pile and RedPajama use fixed pretraining-corpus sequences; SparseDecoding calibrates on autoregressive generations conditioned on LongWriter prompts.
| Model | Sparsity | Calibration | Overall | Domains D1 | Domains D2 | Domains D3 | Domains D4 | Domains D5 | Domains D6 | Requirements R1 | Requirements C | Requirements R2 | Requirements C | Requirements R3 | Requirements C |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Qwen3-14B | densegray$0\%$ | densegrayDense | densegray5.97 | densegray6.0 | densegray5.8 | densegray6.1 | densegray5.7 | densegray6.3 | densegray6.1 | densegray6.1 | densegray6.4 | densegray6.0 | densegray6.8 | densegray6.0 | densegray6.3 |
| 2-16 | $50\%$ | Pile | 5.00 | 5.2 | 5.1 | 5.1 | 4.0 | 5.7 | 5.3 | 5.0 | 5.2 | 5.0 | 5.6 | 4.8 | 5.0 |
| RedPajama | 5.04 | 5.0 | 5.0 | 5.1 | 4.4 | 5.6 | 5.6 | 5.2 | 5.4 | 5.1 | 5.7 | 4.9 | 5.0 | ||
| SparseDecoding | 5.35 | 5.3 | 5.3 | 5.4 | 4.9 | 5.9 | 5.6 | 5.5 | 5.8 | 5.4 | 6.2 | 5.4 | 5.6 | ||
| 2-16 | $2{:}4$ | Pile | 2.68 | 3.0 | 2.7 | 2.6 | 1.9 | 3.0 | 3.1 | 2.7 | 2.7 | 2.7 | 2.9 | 2.4 | 2.2 |
| RedPajama | 2.62 | 2.8 | 2.6 | 2.5 | 2.1 | 2.7 | 3.3 | 2.7 | 2.7 | 2.6 | 2.7 | 2.4 | 2.2 | ||
| SparseDecoding | 4.18 | 4.2 | 4.3 | 4.3 | 3.3 | 4.8 | 4.6 | 4.2 | 4.4 | 4.2 | 4.9 | 4.1 | 4.2 | ||
| Qwen3-32B | densegray0% | densegrayDense | densegray6.48 | densegray6.5 | densegray6.4 | densegray6.5 | densegray6.3 | densegray6.7 | densegray6.6 | densegray6.6 | densegray6.8 | densegray6.5 | densegray7.2 | densegray6.6 | densegray6.8 |
| 2-16 | $50\%$ | Pile | 5.80 | 5.8 | 5.8 | 5.8 | 5.3 | 6.2 | 6.2 | 5.9 | 6.1 | 5.8 | 6.5 | 5.8 | 6.0 |
| RedPajama | 5.72 | 5.7 | 5.7 | 5.8 | 5.3 | 6.1 | 6.1 | 5.8 | 6.1 | 5.7 | 6.4 | 5.7 | 5.7 | ||
| SparseDecoding | 6.09 | 6.0 | 6.0 | 6.1 | 5.8 | 6.5 | 6.3 | 6.2 | 6.5 | 6.1 | 6.8 | 6.1 | 6.4 | ||
| 2-16 | $2{:}4$ | Pile | 3.32 | 3.6 | 3.3 | 3.3 | 2.6 | 3.6 | 3.9 | 3.4 | 3.4 | 3.3 | 3.6 | 3.2 | 3.2 |
| RedPajama | 3.74 | 3.8 | 3.7 | 3.7 | 3.0 | 4.2 | 4.5 | 3.8 | 3.9 | 3.8 | 4.3 | 3.7 | 3.5 | ||
| SparseDecoding | 5.31 | 5.2 | 5.3 | 5.4 | 4.7 | 5.8 | 5.7 | 5.4 | 5.6 | 5.3 | 6.0 | 5.3 | 5.5 |
댓글