structured-based pruning
OBS는 pruning & quant 둘다 적용가능
pruning or quant로 인한 error를 Inverse Hessian M을 구하여 다른 weight에 그 에러를 반영
row-hessan challenge
pruning 할때마다 Hessan matrix을 새로 구해됨 --> 이미 pruned 된 wieght는 freeze시키고 Hesaian M를 특정 부분만 사용해서 업데이트하자

wanda는 인풋을 importance로 가정하고 pruning하는 기법
pruning 50%까지는 준수하지만 이상으로 가면 망가짐
LoRA
fine-tuning에서 메모리를 절약
SPP: Sparsity-Preserved PEFT
PTP (Post-Training Pruning)
weight에 비해 activation 분포가 normalized하지 않음
Activation에 있는 outlier르 어떻게 컨트롤 할지가 메인 이슈
특징
weights & activations 모두 int8 quantizaton
Group-wised Quant for weight
Token-wise Quant for Acitivation
only int8로 동작가능
clipping하는 범위를 학습해보자
vector를 rotation 시키면 x1, x2, 값이 분산되는 특징을 이용
activation은 어쩔수 없이 runtime에 이용
모델size에서 대부분 Weight가 차지하는 비율이 높음
그래서 W4A16와 같이 사용해보자. (어쩔수 없이 activation은 FP16이기 때문에 float연산의 오버해드가 들어감) 그럼에도 불구하고 빠름
one-shot inverse Hessian동작과 동일
outlier weights(라기보단 important weight)는 high precision 유지, 그렇지 않으면 quant시켜줌
sensitivity를 찾아냄
sensitive pattern도 찾아낼 수 잇음
spQR idea그대로 1%의 important weight찾아내자! 어떻게? activation(X)값이 큰 백터는 FP16으로 계산하자 (spQR대비 얘는 weight에만 quant)
NF4 Quantization: NormalFloat(NF) dat type을 정의했는데 NormalDist를 바탕으로 분포가 많은 영역에 더 촘촘하게 구간을 나누는 것
Double Quant: Quant를 2번하여 압축을 2번, 대신에 dequant할때도 2번해야하는 overhead가 존재
prefill: Gemm, Decode: GemV 연산
decode가 너무 비효율적
거대 언어 모델(LLM)의 추론 속도를 획기적으로 높여주는 가속화 기술(Speculative Decoding)에 관한 최신 논문입니다.
논문의 전체 제목은 "EAGLE-3: Scaling up Inference Acceleration of Large Language Models via Training-Time Test"입니다. 이 기술은 모델의 성능 저하 없이(Lossless) 텍스트 생성 속도를 최대 6.5배까지 높였다는 점에서 큰 주목을 받았습니다.
핵심 내용을 알기 쉽게 3가지 포인트로 정리해 드립니다.
중요한 토큰을 찾아내서 cached에 둔다
중간 결과(activation)을 메모리로 가져오는게 아닌 GPU VRAM상에서 바로 처리하는 방법, activation이 너무 크면 Tiling 발생이 잦음, 이 TH를 적절히 컨트롤..
softmax결과를 알아야하는 것을 해결하기 위한 방안?
tiling되는것을 방지하기 위해 tiled 범위를 조정