https://github.com/FasterDecoding/TEAL
GitHub - FasterDecoding/TEAL
Contribute to FasterDecoding/TEAL development by creating an account on GitHub.
github.com
ICLR2025 spotlight 논문입니다.
Abstract
Activation sparsity는 forward에서 행렬 곱에 필요한 연산량과 메모리 이동량을 줄여서 추론속도를 높일 수 있습니다.
하지만, 기존 연구들은 ReLU기반의 모델에서만 동작되게 설계되거나, 추가 학습이 필요한 한계가 있었습니다.
이 논문에서는 TEAL(Training-Free Activatioon Sparsity in LLMs)라는 학습이 필요없는 간단한 방법을 제안합니다.
모델 전체의 hidden state에 magnitude-based activation sparsity를 적용합니다.
7B ~ 70B까지의 Llama2, Llama3, Mistral 계열 모델에서 성능 저하를 최소화하며 40~50%의 sparsity를 달성했습니다.
sparsity가 40%일때 최대 1.53배, 50%일때 최대 1.8배의 decoding 속도 향상을 보였습니다.
또한 weight quantization과도 호환이 가능하기 때문에, 더욱 효율성을 향상시킬 수 있습니다.

Introduction
LLM의 병목에는 크게 두가지가 있습니다.
- small-batch 환경에서, autoregressive inference일때 memory-bound
- 작은 batch 추론에서, 모델 파라미터를 읽어오는 시간이 연산시간보다 오래걸리게 됩니다.
- xW를 연산하는 것 보다, 모델 파라미터를 읽어오는 시간이 더 큰 병목이 되는 상황입니다.
- prefill/학습에서, compute-bound
- 처음 prompt로 KV Cache를 만들거나, 학습할 때는 모델 파라미터를 읽어오면 계속 사용하게 됩니다.
- xW를 연산하는 것이 더 큰 병목이 되는 상황입니다.
Activation이 0인 weight channel을 생략하고 읽어오면 더욱 빠르게 접근할 수 있는데, 이게 activation sparsity입니다.
과거 ReLU 기반의 transformer에서는 MLP 중간의 state가 95%의 sparsity를 갖고 있어서, 적용이 쉬웠습니다.
하지만, 현대의 transformer는 ReLU가 아닌 GLU나 SwiGLU를 사용하기 때문에, activation이 sparsity를 갖지 않습니다.
또 다른 연구에서는 activation에 sparsity를 부여하기 위해, activation function을 수정하고 추가 학습을 필요로 했습니다.
이러한 문제점들을 해결하기 위해, 논문의 저자들은 TEAL(Training-Free Activation Sparsity in LLMs)를 제안합니다.
LLaMA계열의 activation이 평균이 0인 분포를 따른다는 관찰을 바탕으로, 작은 크기의 activation을 제거하여 모델 전체에서 40~50%의 sparsity를 달성합니다.
특수 커널을 통해서 40%에서 1.53, 50%에서 1.8배의 속도 향상을 보였으며, weight quantization도 호환되는 것을 보였습니다.
Method
Motivating Study: Distributional Properties of activations in LLMs

위 그림의 LLM activation 분포를 분석했을 때, 일반적으로 평균이 0에 가깝고 unimodal(한개의 봉우리) 형태를 보였습니다.
또한, Attention block과 MLP block의 앞쪽은 Gaussian(1,3)에 가깝고, 중간은 Laplacian(2,4)에 가까운 형태입니다.
저자들은 이렇게 0 근처에 값이 몰려있는 성질이 magnitude 기반의 activation pruning이 가능하도록 만들 수 있다고 이야기합니다.
TEAL
위 Motivating Study 분석을 기반으로, magnitude-based activation pruning이라는 단순한 접근을 제안합니다.
우선, magnitude pruning에는 threshold $t_{p}$를 정해야 합니다.
간단하게 이야기하면, $x$ 절대값의 크기가 threshold 이하인 비율이 sparsity level $p$가 되도록 하는 값입니다
sparsification 함수는 threshold보다 작으면 0으로 만들어주는 함수입니다. (프루닝 함수 생각하시면 돼요)

프루닝하려고 하는 행렬들의 개수 $N$만큼 sparsity level을 갖습니다. ( $p = (p_{1}, ... , p_{N})$ )

입력 $x$를 sparsification 함수로 sparse하게 만든 후에, 연산을 수행합니다. 이를 $N$개 프루닝 대상에 모두 적용합니다.
Block-Wise Greedy Optimization
이제 최적의 $p_{i}$를 찾는 문제가 남았습니다. 저자들은 threshold를 gradient기반으로 학습하려고 했지만, optimization 문제가 있어서, 단순하게 greedy한 방법을 사용했다고 합니다.
방법은 각 출력의 $l_{2}$ activation error가 최소화되는 sparsity를 찾는 것입니다.

위 행렬들에 대해서, sparsity를 0으로 초기화 시키고, sparsity를 조금씩 증가시킵니다.
메모리가 큰 행렬은 작은 폭으로 올리고, 메모리가 작은 행렬은 큰 폭으로 올리면서 오차를 측정하고, 제일 오차가 적은 layer만 sparsity를 증가시킵니다. (단순하게 sparsity 비율로 접근하면, 아무래도 파라미터가 많은 행렬이 영향을 더 크게 받을테니까요)
이런 greedy optimization을 통해서, 모든 transformer block에 같은 block-level sparsity 목표를 부여하지만, 각 block 내부의 저 일곱 행렬에 분배되는 sparsity는 달라질 수 있습니다.
이 과정은 Llama-3-8B기준 A100 한장에서 1GPU-hour정도가 소요된다고 합니다.
Hardware-aware Acceleration

내용을 잘 이해 못했는데, 대충 triton based sparse GEMV 커널에 여러 개선을 더해서 가속을 걸었다는 의미같습니다.
필요하신 분은 참고하시면 될 것 같습니다.
Experiments
모든 실험내용을 다루지 않았으니, 필요하신분은 논문을 참고해주세요.

비교대상은 CATS인데, 얘는 attention에는 적용하지 않고, MLP에만 적용하는 방법입니다. 둘 다 fine-tuning 없는 training-free 설정입니다.
TEAL이 CATS보다 잘되는 이유는 CATS랑 다르게, TEAL은 모든 행렬을 sparsify하기 때문에 특정 부분에 과하게 높은 sparsity가 적용되지 않아서라고 이야기합니다.
End-To-End Decoding Speed-Up

TEAL은 40%에서 최대 1.53배, 50%에서 최대 1.8배의 속도 향상을 보였습니다.
Llama3-8B가 Llama2-7B보다 속도향상이 작은데, 이는 LM head를 sparsify하지 않기 때문이라고 합니다.
Compatibility with Quantization

8-bit channelwise RTN, 4-bit AWQ, 2/3-bit QuIP#를 적용했을때, perplexity가 급격하게 악화되는 지점이 quantization bit와 상관없이 비슷하게 나왔습니다.
이는, activation sparsity와 weight quantization의 오차가 어느정도는 독립적으로 누적되는 것이라고 주장하며, 함께 사용할 수 있다고 이야기합니다.다만, 제대로 활용하려면 sparse + quantized 전용 커널이 필요할 것이라고도 이야기합니다.
Batched Sparsification

논문에서는 single-batch를 가정하고 설계되어있지만, 실제 배치로 inference가 이루어질때도 분석합니다.
가장 큰 문제는 입력마다 선호하는 sparsity pattern이 다를 수 있다는 것 입니다. (행렬 $W$마다 적절한 sparsity level $p$를 찾았다고 해도, 실제 입력에서 어떤 패턴으로 0이 될지는 다 다르게 되고, 이러면 weight column를 읽어올때 이점을 확보하기가 어렵습니다.)
이를 해결하기 위해서, 배치차원에서 activation magnitude의 평균을 기준으로 sparsify합니다. (마치 single-batch inference 처럼요)
위 Figure 8을 보면, batch 1보다 약간 큰 (2, 4, 8) 정도에서는 어느정도의 효과를 볼 수 있었다고 합니다. 하지만, batch가 커질수록 activation-aware structured channel-wise pruning처럼 동작하게 되고, activation-dependent한 이점이 사라지게 됩니다.
이렇게 큰 batch가 지원이 안되는 것이 이 논문의 한계점이기도 합니다. 이는 나중에 후속연구에서 학습하면서 최적화할 수 있도록 바꿔야할 것이라고 이야기합니다.
Summary
- 학습없이 activation sparsity를 적용해서, 속도 향상을 할 수 있는 방법을 제안했다.
- Layer별 sparsity를 최적화하고, spase kernel을 개선했으며, quantization과 같이 사용할 수 있음을 보였다.
'Papers > Compression' 카테고리의 다른 글
| TOKEN MERGING: YOUR VIT BUT FASTER (0) | 2026.03.17 |
|---|---|
| DynamicViT: Efficient Vision Transformers with Dynamic Token Sparsification (0) | 2026.03.16 |
| Sparse Structure Exploration and Re-optimization for Vision Transformer (0) | 2026.02.19 |
| ParetoQ: Improving Scaling Laws in Extremely Low-bit LLM Quantization (0) | 2026.01.02 |
| BitNet: Scaling 1-bit Transformers for Large Language Models (0) | 2025.11.21 |






























