| ArXiv | https://arxiv.org/abs/2411.05007 |
|---|---|
| Project Page | https://hanlab.mit.edu/projects/svdquant |
| Github Code | https://github.com/mit-han-lab/nunchaku |
| Demo | https://svdquant.mit.edu/ |
| Affiliation | MIT, NVIDIA, CMU, Princeton, UC Berkeley, SJTU, Pika Labs |
Key Differentiator
โOutlier Absorption Using Singular Value Decompositionโ

Song Han?
Song Han is an associate professor at MIT EECS. He earned his PhD from Stanford, pioneering efficient AI computing techniques such as โDeep Compressionโ (pruning, quantization) and the โEfficient Inference Engine,โ which first introduced weight sparsity to modern AI chips, making it one of the top-5 most cited papers in the 50-year history of ISCA (1953-2023). His innovations, including TinyML and hardware-aware neural architecture search (Once-for-All Network), have advanced AI model deployment on resource-constrained devices.

1. Introduction

LLM๊ณผ ๋น๊ตํ์ ๋, ๋ชจ๋ธ ์ฌ์ด์ฆ์ ๋ฐ๋ผ ๊ณ์ฐ ๋น์ฉ์ด ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๋ค.
Mooreโs law๊ฐ slow down ํจ์ผ๋ก์, ์ ๋ ดํ ์ถ๋ก (low-precision inference) ์ผ๋ก ์ ํํ๋์ค
โ 4bit floating point (FP4)๊ฐ ๋์ธ์

LLM
latency๋ ์ฃผ๋ก ๊ฐ์ค์น(weight) ๋ก๋ฉ ์๋์ ์ํด ๊ฒฐ์
"๊ฐ์ค์น๋ง ์์ํ(weight-only quantization)" ํด๋ ์๋๋ฅผ ๊ฐ์
Diffusion ๋ชจ๋ธ
๋ ์ดํด์๋ ๊ฐ์ค์น๋ฅผ ๋ถ๋ฌ์ค๋ ์๋๊ฐ ์๋๋ผ, ์ฐ์ฐ๋ ์์ฒด๊ฐ ๋ณ๋ชฉ
์๋ํ๋ฉด ๊ฐ์ค์น๋ง 4๋นํธ๋ก ์ค์ฌ๋ ํ์ฑํ๊ฐ์ด 16๋นํธ์ด๋ฉด, ์ฐ์ฐ ๊ณผ์ ์์ 16๋นํธ๋ก ๋ค์ ๋ณํ(upcast)๋๋ฏ๋ก ์ฐ์ฐ๋์ด ์ค์ด๋ค์ง ์์.
๊ฒฐ๊ตญ ์ฐ์ฐ๋์ ์ค์ด๋ ค๋ฉด ๊ฐ์ค์น(weight)๋ฟ๋ง ์๋๋ผ ํ์ฑํ๊ฐ(activation)๋ ํจ๊ป 4๋นํธ๋ก ์์ํํด์ผ ํจ.

- Input Channel โ ์๋ Activation์์ ๋์จ ์ ๋ ฅ ์ฑ๋
- Channel โ Weight์ ๊ฐ ์ฑ๋
1. ๊ธฐ์กด 4๋นํธ ์์ํ(4-bit Quantization)์ ๋ฌธ์ ์
- ๊ฐ์ค์น(Weight)์ ํ์ฑํ๊ฐ(Activation) ๋ชจ๋ 4๋นํธ๋ก ์ค์ด๋ฉด ํ์ง์ด ํฌ๊ฒ ์ ํ๋ ๊ฐ๋ฅ์ฑ์ด ๋์.
- ํนํ ๊ธฐ์กด ๋ฐฉ๋ฒ(์: Smoothing)์ ๊ฐ์ค์น์ ํ์ฑํ๊ฐ ์ฌ์ด์์ Outlier๋ฅผ ์ด๋์ํค๋ ๋ฐฉ์์ ์ฌ์ฉํ์ง๋ง,Diffusion ๋ชจ๋ธ์์๋ Outlier๊ฐ ์์ชฝ(W, X) ๋ชจ๋์์ ์ฌ๊ฐํ๊ฒ ๋ฐ์ํ๋ฏ๋ก ํจ๊ณผ์ ์ด์ง ์์.
- ๊ธฐ์กด ๋ฐฉ์์ ํ์ฑํ๊ฐ(X)์์ Outlier๋ฅผ ์ ๊ฑฐํ๋ ค๊ณ ํ๋ฉด ๊ฐ์ค์น(W)๋ก ์ด๋ํ๊ณ , ๋ฐ๋๋ก ํ๋ฉด X์ Outlier๊ฐ ๋จ๋ ๋ฌธ์ ๋ฐ์.
2. SVDQuant์ ํต์ฌ ์์ด๋์ด
- Outlier๋ฅผ ๋จ์ํ ์ด๋ํ๋ ๊ฒ์ด ์๋๋ผ, "ํก์"ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํจ.
- ์ ๋น์ฉ์ "Low-Rank Branch"๋ฅผ ์ถ๊ฐํ์ฌ Outlier๋ฅผ ๊ฐ์ค์น(W)์์ ํก์ํจ.
- ์ด๋ฅผ ์ํด SVD(Singular Value Decomposition, ํน์ด๊ฐ ๋ถํด) ๊ธฐ๋ฒ์ ํ์ฉํ์ฌ ๊ฐ์ค์น๋ฅผ ๋ ๊ฐ์ ์ฑ๋ถ์ผ๋ก ๋ถํดํจ.
3. SVDQuant์ ๋จ๊ณ๋ณ ๋์ ๋ฐฉ์
1. Outlier ์ด๋ (Smoothing)
- ๋จผ์ Outlier๋ฅผ ํ์ฑํ๊ฐ(X)์์ ๊ฐ์ค์น(W)๋ก ์ด๋ํจ.
- ์ด๋ฅผ ํตํด ํ์ฑํ๊ฐ(X)์ด ๋ ๊ท ์ผํด์ ธ์ 4๋นํธ ์์ํ๊ฐ ๋ ์ฌ์์ง.
2. SVD(ํน์ด๊ฐ ๋ถํด)๋ฅผ ์ ์ฉํ์ฌ ๊ฐ์ค์น(W)๋ฅผ ๋ ๊ฐ์ ์ฑ๋ถ์ผ๋ก ๋ถํด
- W โ L1L2(์ ์์ ์ฑ๋ถ) + ์์ฌ ์ฑ๋ถ(W - L1L2)๋ก ๋ถ๋ฆฌ
- L1L2(์ ์์ ์ฑ๋ถ)์ 16๋นํธ๋ก ์ ์งํ๊ณ , W - L1L2(์์ฌ ์ฑ๋ถ)๋ง 4๋นํธ๋ก ์์ํ
- ์ฆ, ์ ์์ ์ฑ๋ถ(Low-Rank Component)์ด Outlier๋ฅผ ํก์ํ๋ฉด์ 4๋นํธ ์์ํ๊ฐ ๋ ์ฌ์์ง.
3. ์ ์์ ์ฑ๋ถ์ ๋ฐ๋ก ๊ณ์ฐํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐํ๋ ๋ฌธ์ ๋ฐ์
- ์ฆ, L1L2๋ฅผ ๋ณ๋๋ก ์ฒ๋ฆฌํ๋ฉด ์ฐ์ฐ ์๋๊ฐ ๋๋ ค์ง๋ ๋ฌธ์ ๊ฐ ์๊น.
- ๊ธฐ๋ณธ์ ์ผ๋ก 4๋นํธ ์ฐ์ฐ์ ์๋๋ฅผ ๋์ด๋ ค๊ณ ํ๋๋ฐ, ์ ์์ ์ฐ์ฐ์ด ์ถ๊ฐ๋๋ฉด ์คํ๋ ค ๋๋ ค์ง ์ ์์.
4. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์ฉ ์ถ๋ก ์์ง(Nunchaku) ์ค๊ณ
- Nunchaku ์์ง์ 4๋นํธ ์์ํ ์ฐ์ฐ๊ณผ ์ ์์ ์ฐ์ฐ์ ํจ๊ป ์ต์ ํํ์ฌ ์ค๋ฒํค๋๋ฅผ ์ค์.
- ์ฆ, L1L2(์ ์์ ์ฐ์ฐ)์ 4๋นํธ ์ฐ์ฐ์ ํจ๊ป ์ฒ๋ฆฌํ๋ ์ปค๋(fusion kernel)๋ก ๋ณํํ์ฌ ์ฑ๋ฅ์ ์ต์ ํ.
- ์ด๋ฅผ ํตํด ์ถ๊ฐ์ ์ธ ์ฐ์ฐ๋์ด ์๊ธฐ๋๋ผ๋ ์ค์ ๋ก๋ 4๋นํธ ์ฐ์ฐ์ ์๋๋ฅผ ํฅ์ํ ์ ์๋๋ก ์ค๊ณ๋จ.
๊ธฐ์กด ๋ฐฉ์(SmoothQuant, AWQ)๊ณผ SVDQuant์ ์ฐจ์ด
| ๋ฐฉ๋ฒ | ๋ฐฉ์ | Outlier ์ฒ๋ฆฌ ๋ฐฉ์ | ์ ์ฉ ๋์ | ๋ฌธ์ ์ |
| SmoothQuant (2023) | W4A4 | Input Channel(Activation) โ Channel(Weight) | LLM(๋ํ ์ธ์ด ๋ชจ๋ธ) | Outlier๊ฐ ๊ฐ์ค์น์ ๋์ ๋จ |
| AWQ (2024) | W4A4 | ๊ฐ์ค์น ์ค ์ค์ํ ๋ถ๋ถ์ ๋ณด์กดํ์ฌ ์์ํ | LLM | Diffusion ๋ชจ๋ธ์์๋ ํ๊ณ ๊ฐ๋ฅ์ฑ |
| SVDQuant (2024) | W4A4 | ์ ์์(Low-Rank) ์ฑ๋ถ์ผ๋ก Outlier ํก์ | Diffusion ๋ชจ๋ธ ์ต์ ํ | ์ถ๊ฐ ์ฐ์ฐ์ ํด๊ฒฐํด์ผ ํจ |
1. SmoothQuant (2023) โ Activation์์ Weight๋ก ์ด์์น ์ด๋
SmoothQuant์ ํต์ฌ ์์ด๋์ด๋ ํ์ฑํ๊ฐ(Activation)์์ ๋ฐ์ํ๋ ์ด์์น๋ฅผ ๊ฐ์ค์น(Weight)๋ก ์ด๋์ํด
- ๊ธฐ์กด ๋ฌธ์
- Transformer ๊ธฐ๋ฐ ๋ชจ๋ธ์์ Self-Attention ์ฐ์ฐ์ด ๋ง์์ ํ์ฑํ๊ฐ(Activation)์ ๋ฒ์๊ฐ ๋์ด์ง๊ณ ์ด์์น๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์.
- ์ด๋ฅผ 8-bit์ด๋ 4-bit๋ก ์์ํํ๋ฉด, ์์ ๊ฐ๋ค์ ๋ชจ๋ 0์ด ๋๊ณ , ์ ๋ณด ์์ค์ด ์ฌํด์ง.
- ํด๊ฒฐ ๋ฐฉ๋ฒ
- ํ์ฑํ๊ฐ(Activation)์ ์ฑ๋๋ณ ์ค์ผ์ผ๋ง์ ์ ์ฉํ์ฌ, ์ด์์น๋ฅผ ๊ฐ์ค์น(Weight) ์ชฝ์ผ๋ก ์ด๋์ํด.
- ์ฆ, ์๋ Activation ๊ฐ์ด ํฌ๋ฉด, ํด๋น ์ฑ๋์ ์ค์ผ์ผ๋งํด์ ์ค์ด๊ณ , ๋์ ๊ทธ ๊ฐ์ Weight์์ ๋ณด์ํด์ฃผ๋ ๋ฐฉ์.
- ์ด๋ ๊ฒ ํ๋ฉด, Activation ๊ฐ์ด ์์ํํ ๋ ์์ค ์์ด ๋ ๊ท ๋ฑํ๊ฒ ๋ถํฌํ ์ ์์.
- ํ๊ณ
- Weight ์ชฝ์ผ๋ก ์ด์์น๋ฅผ ๋ชฐ์๋ฃ์ผ๋ฉด, Weight์ ๊ฐ์ด ์ปค์ง๊ณ , Weight ์์ํ ์ ์ค๋ฅ๊ฐ ์ปค์ง ๊ฐ๋ฅ์ฑ์ด ์์.
- ๋ฐ๋ผ์ Weight๋ฅผ 4-bit๋ก ์์ํํ ๊ฒฝ์ฐ ์ ๋ณด ์์ค์ด ๋ฐ์ํ ์ ์์.
2. AWQ (Activation-aware Weight Quantization, 2024) โ Weight์์ Activation์ผ๋ก ์ด์์น ์ด๋
AWQ๋ Weight์ ์ด์์น๋ฅผ ์ค์ด๊ธฐ ์ํด Activation์ผ๋ก ๋ถ์ฐ์ํค๋ ๋ฐฉ์
- ๊ธฐ์กด ๋ฌธ์
- SmoothQuant ๋ฐฉ์์ฒ๋ผ ์ด์์น๋ฅผ Weight ์ชฝ์ผ๋ก ์ด๋์ํค๋ฉด, Weight์ ํฌ๊ธฐ๊ฐ ์ปค์ ธ์ Weight๋ฅผ 4-bit๋ก ์์ํํ ๋ ์ ๋ณด ์์ค์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง.
- ํนํ, Weight์ ์ด์์น๊ฐ ๋ง์ผ๋ฉด, ์ค์ผ์ผ๋ง์ ์ ์ฉํด๋ ์์ํ ์ค๋ฅ๊ฐ ์ปค์ง๊ณ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์.
- ํด๊ฒฐ ๋ฐฉ๋ฒ
- ๋์ Weight์์ Activation์ผ๋ก ์ผ๋ถ ์ด์์น๋ฅผ ์ด๋์์ผ์, Weight๊ฐ ์์ํ๋ ๋ ์ ๋ณด ์์ค์ ์ต์ํํจ.
- ์ฆ, ์ค์ํ Weight ๊ฐ์ ๋ฐ๋ก ๋ณดํธํ๊ณ , ๋ถํ์ํ ํฐ ๊ฐ์ Activation ์ชฝ์ผ๋ก ์ด๋์์ผ์ Weight๋ฅผ ๋ ๊ท ๋ฑํ ๋ถํฌ๋ก ๋ง๋ค๋๋ก ์ค๊ณ.
- ํ๊ณ
- Activation์ ๋ถํฌ๊ฐ ๋ค์ ๋์ด์ง ๊ฐ๋ฅ์ฑ์ด ์์ โ Activation์ ๋ค์ 4-bit๋ก ์์ํํ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์๋ ์์.
3. SVDQuant (2024) โ Outlier๋ฅผ Low-Rank Component๋ก ์ด๋
SVDQuant๋ SmoothQuant์ AWQ์ ๋ฌธ์ ์ ์ ๋ชจ๋ ํด๊ฒฐํ๋ ค๊ณ , ์ด์์น๋ฅผ ์ด๋์ํค๋ ๊ฒ๋ฟ๋ง ์๋๋ผ Low-Rank Component๋ก ํก์ํ๋ ๋ฐฉ์
- ํต์ฌ ์์ด๋์ด
- SmoothQuant์ฒ๋ผ Activation์ ์ด์์น๋ฅผ Weight๋ก ์ด๋ํ๋ฉด์๋,
- AWQ์ฒ๋ผ Weight์์ ๋ค์ Activation์ผ๋ก ์ด๋ํ๋ ๋์ , Low-Rank Component๋ก ๋ถ๋ฆฌํ์ฌ ์ ์ฅ.
- ์ฆ, ์ด์์น๋ฅผ ์์ํํ์ง ์๊ณ , 16-bit Low-Rank Component๋ก ์ ์งํ์ฌ ์ ๋ณด ์์ค์ ์ต์ํ.
- ์ฅ์
- SmoothQuant๋ AWQ์ฒ๋ผ ํ์ชฝ์ผ๋ก ์ด์์น๋ฅผ ๋ชฐ์๋ฃ์ง ์๊ณ , Low-Rank Branch๊ฐ ์ด์์น๋ฅผ ํก์ํด์ ์์ค์ ๋ง์.
- Weight์ Activation ๋ชจ๋ ๊ท ๋ฑํ ๋ถํฌ๋ฅผ ๊ฐ์ง๊ฒ ๋์ด, ์์ํ ์ค๋ฅ๊ฐ ์ค์ด๋ฆ.
- ์ค์ ์คํ์์๋ SmoothQuant, AWQ๋ณด๋ค 4-bit ์์ํ์์ ์ฑ๋ฅ์ด ๋ฐ์ด๋จ.
๊ฒฐ๋ก
- SmoothQuant โ Activation์ ์ด์์น๋ฅผ Weight๋ก ์ด๋ (Weight์ ์ ๋ณด ์์ค ๊ฐ๋ฅ์ฑ ์์)
- AWQ โ Weight์ ์ด์์น๋ฅผ Activation์ผ๋ก ์ด๋ (Activation์ ์ ๋ณด ์์ค ๊ฐ๋ฅ์ฑ ์์)
- SVDQuant โ Weight์ Activation์์ Low-Rank Component๋ก ์ด๋ (์ด์์น ์์ฒด๋ฅผ ์ ๊ฑฐํ์ฌ ์ ๋ณด ์์ค์ ์ต์ํ)
์ฆ, SmoothQuant๊ณผ AWQ๋ ๋ ์ค ํ๋๋ง Outlier๋ฅผ ๋ฐ์ํ์ง ์๋๋ก ํ๋ ค๊ณ ํ๋ ์ ๊ทผ๋ฒ, ๋ฐ๋ฉด SVDQuant๋ Outlier ์์ฒด๋ฅผ Low-Rank๋ก ๋นผ๋ฒ๋ฆฌ๋ ๋ฐฉ์์ด๋ผ ์ ๋ณด ์์ค์ด ๊ฐ์ฅ ์ ์.
3 QUANTIZATION PRELIMINARY
- ์์ํ(Quantization)์ ๊ธฐ๋ณธ ๊ฐ๋
- ๋ฅ๋ฌ๋์์ ์์ํ๋ ์ฐ์ฐ ์๋๋ฅผ ๋์ด๊ณ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ.
- ํ ์ X๋ฅผ ์์ํํ๋ ๊ณผ์ :
- ์ฌ๊ธฐ์ QX๋ ์์ํ๋(low-bit) ๊ฐ.
- sX๋ ์ค์ผ์ผ๋ง ํฉํฐ(Scaling Factor).
- qmax๋ ์ต๋ ์์ํ ๊ฐ(๋นํธ ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง).
- 4๋นํธ ๋ถ๋์์์ ์์ํ(4-bit FP)์์๋ qmax=6์.
- ์์ํ๋ ํ๋ ฌ ์ฐ์ฐ
- ์ ํ ๊ณ์ธต(Linear Layer)์์ ์
๋ ฅ X์ ๊ฐ์ค์น W๊ฐ ์์ ๋, ์ฐ์ฐ์ ์์ํ๋ ๊ฐ์ผ๋ก ๊ทผ์ฌ:
- ์ฆ, ์์ํ๋ ํ ์๋ผ๋ฆฌ ์ฐ์ฐํ ํ, ์ค์ผ์ผ๋ง ํฉํฐ sXsW๋ฅผ ๊ณฑํ์ฌ ๋ค์ ์๋ ๊ฐ์ ๊ฐ๊น๊ฒ ๋ณต์ํจ.
- ์ ํ ๊ณ์ธต(Linear Layer)์์ ์
๋ ฅ X์ ๊ฐ์ค์น W๊ฐ ์์ ๋, ์ฐ์ฐ์ ์์ํ๋ ๊ฐ์ผ๋ก ๊ทผ์ฌ:
- GPU์์ ๊ฐ์ ๋นํธํญ(bit width)์ ์ฌ์ฉํด์ผ ํ๋ ์ด์
- ์ต์ GPU์์๋ ์ ๋ ฅ(QX)๊ณผ ๊ฐ์ค์น(QW)์ ๋นํธ ์๊ฐ ๋์ผํด์ผ ์ฐ์ฐ ์๋๊ฐ ํฅ์๋จ.
- ๋ง์ฝ QX์ QW์ ๋นํธ ์๊ฐ ๋ค๋ฅด๋ฉด, ๋ ๋์ ๋นํธ ๊ฐ์ผ๋ก ๋ณํ(upcast)๋๋ฉด์ ์๋ ์ด์ ์ด ์ฌ๋ผ์ง.
- ์:
- ๊ฐ์ค์น(W)๋ฅผ 4๋นํธ๋ก ์์ํ(W4)ํ์ง๋ง, ํ์ฑํ๊ฐ(X)์ด 16๋นํธ(A16)๋ผ๋ฉด?
โ ์ฐ์ฐ ์ W4๊ฐ A16์ผ๋ก ์ ์บ์คํธ(Upcast)๋์ด ์ค์ ์๋ ํฅ์์ด ์์.
โ ๋ฐ๋ผ์, W4A4(๊ฐ์ค์น 4๋นํธ, ํ์ฑํ๊ฐ 4๋นํธ) ์กฐํฉ์ด ์ต์ ํ๋ ๋ฐฉ์.
- ๊ฐ์ค์น(W)๋ฅผ 4๋นํธ๋ก ์์ํ(W4)ํ์ง๋ง, ํ์ฑํ๊ฐ(X)์ด 16๋นํธ(A16)๋ผ๋ฉด?
- W4A4 ์์ํ์์์ ๋ฌธ์ ์ : Outlier(์ด์์น)
- Diffusion ๋ชจ๋ธ์์๋ ๊ฐ์ค์น(W)์ ํ์ฑํ๊ฐ(X) ์์ชฝ์์ Outlier(๊ทน๋จ์ ์ธ ๊ฐ)๊ฐ ๋ง์ด ๋ฐ์ํจ.
- Outlier๊ฐ ๋ง์ผ๋ฉด ์์ํ ํ ํ์ง์ด ํฌ๊ฒ ์ ํ๋จ.
- ๊ธฐ์กด ํด๊ฒฐ ๋ฐฉ๋ฒ:
- Quantization-Aware Training (QAT)
- ์์ํ๋ฅผ ๊ณ ๋ คํ์ฌ ๋ชจ๋ธ์ ํ๋ จํ๋ ๋ฐฉ์.
- ํ์ง๋ง, 100์ต ๊ฐ ์ด์์ ๋งค๊ฐ๋ณ์(์: FLUX.1 ๋ชจ๋ธ)๋ฅผ ์กฐ์ ํ๋ ค๋ฉด ๊ณ์ฐ ๋น์ฉ์ด ๋งค์ฐ ํผ.
- Rotation ๊ธฐ๋ฒ (Ashkboos et al., 2024; Liu et al., 2024c)
- ๊ฐ์ค์น์ ํ์ฑํ๊ฐ์ ํ์ (rotation)ํ์ฌ Outlier๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ.
- ํ์ง๋ง, Diffusion ๋ชจ๋ธ์ "Adaptive Normalization Layer"์์๋ ์ ์ฉ์ด ์ด๋ ค์.
- ์ด์ :
- Adaptive Normalization์ ์คํ ์๊ฐ(runtime) ์ค์ ์๋ก์ด ๊ฐ์ค์น๋ฅผ ์์ฑ.
- ๋ฐ๋ผ์, ์ฌ์ ๊ณ์ฐ๋ ํ์ ํ๋ ฌ์ ์ ์ฉํ ์ ์์.
- ์คํ ์๊ฐ์ ํ์ ์ ์ ์ฉํ๋ฉด ์ฐ์ฐ๋์ด ์ฆ๊ฐํ์ฌ ์๋๊ฐ ๋๋ ค์ง.
- Quantization-Aware Training (QAT)
์ด์์น(Outlier)๊ฐ ์์ผ๋ฉด ์ด๋ป๊ฒ ์ฑ๋ฅ์ด ์ ํ๋ ๊น?
1. ์ค์ผ์ผ๋ง ํฉํฐ ๋ฌธ์
- ์์ํ๋ ๋ฐ์ดํฐ์ ์ ์ฒด ๋ฒ์(min-max)๋ฅผ ๊ณ ๋ คํด์ ๊ฐ์ ์กฐ์ ํด์ผ ํ๋๋ฐ, ์ด์์น๊ฐ ์์ผ๋ฉด ์ค์ผ์ผ๋ง ํฉํฐ๊ฐ ๋น์ ์์ ์ผ๋ก ์ปค์ง.
- ๋๋ถ๋ถ์ ๊ฐ์ ์์ ๋ฒ์์ ๋ชฐ๋ ค ์๋๋ฐ, ํ๋ ๊ฐ์ ํฐ ๊ฐ(์ด์์น) ๋๋ฌธ์ ์ค์ผ์ผ์ด ์ปค์ง๋ฉด ์์ ๊ฐ๋ค์ด ๋ชจ๋ 0 ๋๋ ๋์ผํ ๊ฐ์ผ๋ก ๋งคํ๋๋ ๋ฌธ์ ๊ฐ ์๊ฒจ.
์์ :
- ์๋ ๊ฐ์ค์น ๊ฐ:
[-0.1, -0.05, 0.0, 0.05, 0.1, 5.0](์ด์์น: 5.0)
- ์ด์์น๊ฐ ์์ ๋:
s_X = 0.1, ๋ฒ์๋ฅผ[-8, 7]๋ก ๋งคํ ๊ฐ๋ฅ
- ์ด์์น(5.0)๊ฐ ํฌํจ๋ ๋:
s_X = 5.0, ์์ ๊ฐ๋ค์ ๋ชจ๋ 0์ด ๋์ด ์ ๋ณด ์์ค ๋ฐ์
- ์๋ ๊ฐ์ค์น ๊ฐ:
2. ์ ๋ณด ์์ค (Precision Loss)
- ์ด์์น๋ฅผ ๊ณ ๋ คํด ์ ์ฒด ๊ฐ์ ์กฐ์ ํ๋ฉด, ๋๋จธ์ง ๋๋ถ๋ถ์ ๊ฐ์ด ๋งค์ฐ ์์ ์ฐจ์ด๋ฅผ ๊ฐ์ง๋๋ฐ๋ ๋์ผํ ์์ํ๋ ๊ฐ์ผ๋ก ํํ๋ ๊ฐ๋ฅ์ฑ์ด ๋์.
- ์ฆ, ๋ชจ๋ธ์ด ์์ ๋ณํ(gradient ๋ฑ)๋ฅผ ๋ฐ์ํ์ง ๋ชปํ๊ณ ํํ๋ ฅ์ด ๊ธ๊ฒฉํ ๋จ์ด์ง.
3. ํ์ฑํ(Activation) ์ด์์น๋ก ์ธํด ์ฐ์ฐ๋ ์ฆ๊ฐ
- ์ด์์น๊ฐ ์์ผ๋ฉด ์์ํ๋ ๊ฐ์ ๋ค์ ๋ถ๋์์์ ์ผ๋ก ๋ณํํ ๋ FP32(32-bit)๋ก ๋ณํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์, ๊ฒฐ๊ตญ ์ฐ์ฐ ์ต์ ํ๊ฐ ๊นจ์ง.
- ํนํ Transformer ๊ธฐ๋ฐ ๋ชจ๋ธ์์๋ Self-Attention ์ฐ์ฐ์ด ํฌ๊ธฐ ๋๋ฌธ์ ํ์ฑํ๊ฐ(Activation)์ ์ด์์น๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ์ฐ์ฐ๋ ์ฆ๊ฐ๋ก ์ด์ด์ง ์ ์์.
4 Method
4.1 PROBLEM FORMULATION
์์ํ์ ์ค๋ฅ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋จ.
์๋ ํ๋ ฌ ๊ณฑ์ XW์ ์์ํ๋ ๊ฐ์ผ๋ก ์ฐ์ฐํ Q(X)Q(W)์ ์ฐจ์ด๋ฅผ ์ธก์ ํ๋ ๊ฐ
์ข ๋ ์ธ๋ถํ
์ด ์์ ์์ํ ์ค๋ฅ๋ฅผ ๊ฒฐ์ ํ๋ ๋ค ๊ฐ์ง ์์๋ฅผ ๋ณด์ฌ์ค:
- ๊ฐ์ค์น์ ํฌ๊ธฐ: ๏ปฟ
- ์ ๋ ฅ์ ํฌ๊ธฐ: ๏ปฟ
- ๊ฐ์ค์น์ ์์ํ ์ค๋ฅ: ๏ปฟ
- ์ ๋ ฅ์ ์์ํ ์ค๋ฅ: ๏ปฟ
์ฆ, ์ ์ฒด์ ์ธ ์์ํ ์ค๋ฅ๋ฅผ ์ต์ํํ๋ ค๋ฉด ์ด ๋ค ๊ฐ์ง ์์๋ฅผ ์กฐ์ ํ๋ ๊ฒ์ด ํต์ฌ์.
4.2 SVDQUANT: ABSORBING OUTLIERS VIA LOW-RANK BRANCH
Migrate outliers from activation to weight

After Smoothing ๋ถ๋ถ์ด ๊ธฐ์กด ๊ธฐ๋ฒ์ธ๋ฐ, ๋จ์ ์ด ์์
- โ Activation(X)์ ์ด์์น๋ฅผ ์์ ๋ ๊ฒ์ ์ฑ๊ณตํ์ง๋ง,
- โ ๋์ Weight(W)์ ์ด์์น๊ฐ ์ฆ๊ฐํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์.
- ๊ฒฐ๊ณผ์ ์ผ๋ก, ์ ์ฒด์ ์ธ ์์ํ ์ค๋ฅ๋ฅผ ์ค์ด๋ ค๋ ๋ชฉ์ ์ด ์ ๋๋ก ๋ฌ์ฑ๋์ง ์์.
Absorb magnified weight outliers with a low-rank branch.
Weight๋ฅผ ๋ฐ๋ก 4-bit๋ก ์์ํํ์ง ์๊ณ , Low-Rank Component๋ฅผ ๋ฐ๋ก ๋ถ๋ฆฌํด์ ์ด์์น๋ฅผ ํก์ํ๋ ์ ๋ต
- ๏ปฟ (์ ๋ ฅ ์ฐจ์์ ์ค์ด๋ ํ๋ ฌ)
- ๏ปฟ (์ถ๋ ฅ ์ฐจ์์ ์ค์ด๋ ํ๋ ฌ)
- ๏ปฟ (์์ฌ ํ๋ ฌ, 4-bit๋ก ์์ํ๋ ๋ถ๋ถ)
SVD(Singular Value Decomposition, ํน์ด๊ฐ ๋ถํด)
- ์๋ ํ๋ ฌ ํฌ๊ธฐ๊ฐ mรn์ด๋ฉด, ์ง์ ๊ณฑํ๋ฉด ์ฐ์ฐ๋์ด O(mn).
- ํ์ง๋ง SVD๋ก Rank r๋ง ์ ์งํ๋ฉด ์ฐ์ฐ๋์ด O(mr+rn)๋ก ์ค์ด๋ฆ.
- ๏ปฟ: ์ ๋ ฅ ์ฐจ์ ๋ณํ ํ๋ ฌ ๏ปฟ
- ๏ปฟ: ๋๊ฐ ํ๋ ฌ (ํน์ด๊ฐ๋ค์ด ๋ค์ด ์๋ ํ๋ ฌ, ๏ปฟ)
- ๏ปฟ: ์ถ๋ ฅ ์ฐจ์ ๋ณํ ํ๋ ฌ ๏ปฟ
ํฌ์ธํธ๋ ๋๊ฐ ์์(ํน์ด๊ฐ, Singular Values)
- ํฐ ํน์ด๊ฐ๋ค์ ์ค์ํ ์ ๋ณด(ํจํด)๋ฅผ ๋ํ๋.
- ์์ ํน์ด๊ฐ๋ค์ ๋ ธ์ด์ฆ(์ด์์น ํฌํจ)๋ฅผ ๋ํ๋ผ ๊ฐ๋ฅ์ฑ์ด ๋์.
Low-Rank ๋ถํด
๏ปฟ
๋๊ฐ ์์ ์ค์์ ์์ r๊ฐ์ ํน์ด๊ฐ๋ง ์ ์งํ์ฌ, ๊ฐ์ฅ ์ค์ํ ์ ๋ณด๋ง ํฌํจํ๋ L1,L2๋ฅผ ์์ฑ.
โ ๋ฐ๋ก 16-bit ์ฐ์ฐ
๋จ์ ๋ถ๋ถ(์์ ํน์ด๊ฐ) โ R์ผ๋ก ๋ถ๋ฆฌ
โ 4-bit ์ฐ์ฐ
โ ์์ ํน์ด๊ฐ๋ง ๋จ์์ผ๋ฏ๋ก R์ 4-bit๋ก ์์ํํ๋๋ผ๋ ์ ๋ณด ์์ค์ด ํฌ๊ฒ ์ค์ด๋ฆ
4.3 NUNCHAKU: Fusing Low-Rank and Low-Bit Branch Kernels

Low-Rank Branch์์ ๋ฐ์ํ๋ ์ฑ๋ฅ ์ ํ ๋ฌธ์
- QKV Projection๊ณผ ๊ฐ์ ์ฐ์ฐ์์๋ Low-Rank Branch๊ฐ L2 ์บ์๋ฅผ ์ด๊ณผํ๋ฉด์ DRAM์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์์ผ ํจ.
- ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๋น์ฉ์ด ์ฆ๊ฐํ์ฌ ์ฐ์ฐ ์๋๊ฐ ๋จ์ด์ง๋ ์์ธ.
- Figure 6(a)์์ ๋ณด๋ฏ์ด, Low-Rank Branch๋ ์ ์ฒด 4-bit ์ฐ์ฐ ์ง์ฐ์ 50%๋ฅผ ์ฐจ์ง.
NUNCHAKU: ํด๊ฒฐ ๋ฐฉ๋ฒ
- ๋ ผ๋ฌธ์์๋ Low-Rank Branch์ Low-Bit Branch์ ์ฐ์ฐ์ ํ๋๋ก ํฉ์ณ(fusing) ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์ ์.
- Figure 6(b)์์ ๋ณด๋ฏ์ด, ๋ ๊ฐ์ Kernel์ ํฉ์ณ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํจ:
- Down Projection ์ฐ์ฐ์ Quantization Kernel๊ณผ ํฉ์นจ.
- Up Projection ์ฐ์ฐ์ 4-bit ์ฐ์ฐ Kernel๊ณผ ํฉ์นจ.
- ์ด๋ฅผ ํตํด Low-Rank Branch๊ฐ Low-Bit Branch์ ํ์ฑํ๊ฐ์ ๊ณต์ ํ ์ ์์ด, ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ ๊ฑฐ.
- ๊ฒฐ๊ณผ์ ์ผ๋ก, Kernel ํธ์ถ ํ์๊ฐ ์ ๋ฐ์ผ๋ก ์ค์ด๋ค์ด ์๋ ๊ฐ์ ํจ๊ณผ๊ฐ ์์.
5 Experiments
Benchmark models
| Model | Architecture | Parameters | Special Features |
| FLUX.1-dev | DiT | 12B | 50-step guidance-distilled |
| FLUX.1-schnell | DiT | 12B | 4-step timestep-distilled |
| PixArt-ฮฃ | DiT | 600M | 20-step default |
| SANA | DiT | 1.6B | 32ร compression autoencoder, Linear Attention |
| SDXL | UNet | 2.6B | 30-step |
Baselines Quantization
| Method | Description | Usage in Benchmarking |
| NF4 (4-bit NormalFloat) | Optimized 4-bit weight-only quantization assuming normal distribution | Used as a weight-only quantization baseline for FLUX.1 |
| ViDiT-Q | Per-token quantization + smoothing to reduce outliers | Achieves lossless 8-bit quantization on PixArt-ฮฃ |
| MixDQ | Detects outliers in text embeddings and protects them with 16-bit pre-computation | Enables W4A8 quantization with minimal performance drop on SDXL-Turbo |
| TensorRT | Industry-standard PTQ toolkit for 8-bit quantization | Uses smoothing + percentile calibration over specific timesteps |





Limitation
์์ฒญ๋ ๊ธฐ์ ์ด๊ณ ๊ธฐ์ ๋ฉด์์๋ ํ๊ณ๊ฐ ์๋ค๊ณ ์๊ฐํจ.
ํ์ง๋ง, ๊ตณ์ด ํ๊ณ์ ์ ๋ฝ์๋ฉด, Song Han์ด NVIDIA์์๋ ์ฐ๊ตฌ๋ฅผ ์งํํ๊ธฐ ๋๋ฌธ์ NVIDIA chip๋ง์ ์ํด์ ์ฝ๋๋ฅผ ์งฐ๊ณ , ์ด์ ์ต์ ํ๋์ด์๋ค.
์ฌ์ง์ด CUDA 12.2 ์ด์์์๋ง ์๋ ๊ฐ๋ฅํด์ ๋ด ํ๊ต ์๋ฒ๋ก ๋๋ ค๋ณด๋ ค๊ณ ํ๋๋ฐ, GPU Driver version์ด ๋ฎ์์ ์๋์๊ฐ๋๋ผ.

๋ฌผ๋ก NVIDIA chip์์ ๊ทนํ์ ์ต์ ํ๋ฅผ ์ํด์ ์์ง๋ง, ๋ค๋ฅธ GPU ์ฅ๋น์์๋ ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ฐ์ ๋ฐฉ์์ ๋ค๋ฅธ GPU ์ฅ๋น์ Mobile edge device๋ค์ ์ ์ฉํ๋ค๋ฉด ์ข์ ๊ฒ์ด๋ค.
๋ฉ๋ชจ๋ฆฌ๋ ์ถ๋ก ์๊ฐ๋ง ์ค์ธ๊ฒ ์๋๊ฐ? ์ ํ๋๋ฅผ ์ ์ธ๊ธ?
Memory, Latency?
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด SVD์์ํ๋ก ์ธํด ๋ฉ๋ชจ๋ฆฌ์ latency ์ด์ ์ ์ป์๊ฒ ํฌ์ธํธ ์๋๊ฐ?

๋น๊ต๊ฐ ๊ธฐ์กด 16bit / W4A16 / W4A4(SVD) ์๊ธฐ ๋๋ฌธ์ ํฐ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ค ๊ฒ ๊ฐ๋ค.
Inference time๊ณผ Memory ์ค์ธ๊ฒ ํฌ์ธํธ์ธ์ค ์์๋๋ฐ ์์ ์๋ชป ์๊ฐํ๊ฒ ๊ฐ๊ธฐ๋ ํฉ๋๋ค.
๋ฌผ๋ก Outlier๋๋ฌธ์ 32bit๋ก ์ฒ๋ฆฌํ๋ ๋ถ๋ถ๋ค์ด ์์ด์ง๊ณ 16bit๋ก low rank๋ก ๋ฐ๋ก ๋นผ๋๊น ํฅ์์ ๋์ ๊ฒ์ด์ง๋ง, ์ ์๊ฐ์๋ SVD ์๋ W4A4๋ ๋น๊ตํ๋ค๋ฉด, Memory์ ์ถ๋ก ์๊ฐ์ด 3๋ฐฐ ์ด์ ์ฐจ์ด๋์ง๋ ์์ ๊ฒ์ ๋๋ค.

์ ํ๋?
๊ธฐ์กด ์์ํ์์ ์ ํ๋๋ฅผ ์ ์งํ๋ ๋ถ๋ถ์ด ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๋ง์ด ๋จ์ด์ก์๋ค.
(๋๋ฒ์งธ๊ฐ ๊ธฐ์กด ์์ํ ๊ธฐ๋ฒ, ์ฌ์ง์ด W4A4๊ฐ ์๋ W4A16์ธ๋ฐ๋ ๋ ๋จ์ด์ง๋ ๋ชจ์ต์ ๋ณด์)

๋ณด์กด ํ ์ ์์๋ ์ด์ โ Low-Rank Branch
- ๊ธฐ์กด 4-bit ์์ํ ๋ฐฉ์์์๋ Weight ์ ์ฒด๋ฅผ 4-bit๋ก ๋ณํํ๋ฏ๋ก ์ ๋ณด ์์ค์ด ํผ.
- SVDQuant๋ Weight๋ฅผ Low-Rank Component (L1L2) ์ ์์ฌ (R)๋ก ๋ถํดํ๋ค.
- L1L2๋ 16-bit precision์ผ๋ก ์ ์ง โ ์ค์ํ ์ ๋ณด๋ ๊ณ ์ ๋ฐ๋๋ก ๋จ๊ฒจ๋ .
- ์์ฌ R๋ง 4-bit๋ก ์์ํํ์ฌ ์ ๋ณด ์์ค์ ์ต์ํํจ
- ํ ๋ฒ๋ง Low-Rank ๋ถํดํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฐ๋ณต์ ์ผ๋ก R์ ์ต์ ํํ์ฌ ์์ํ ์ค๋ฅ๋ฅผ ์ต์ํ
quantization error
์ด ์์์ L1L2+R๋ก ๋ถํดํจ์ผ๋ก์ Quantization์ ์งํํ๋ฉด์ ๋ฐ์ํ๋ Error๋ฅผ ์ต๋ํ ์ค์ธ๊ฑฐ์.
Quantization ์์ฒด๊ฐ Outlier๋ก ์ธํด์ ์ ํ๋๋ฅผ ๋จ์ด๋จ๋ฆด ์ ๋ฐ์ ์๋๋ฐ, ์ด๋ฅผ ์ต๋ํ ๋ณด์กดํ๋ค๋ ์ ์ด ์์ฒญ๋ ์ฐ๊ตฌ์ธ ๊ฒ์!!!!
SVD๋ฅผ LLM์ ์จ๋ ๋๋๊ฐ? ์ Diffusion์ผ๋ก ๋ ผ๋ฌธ์?
๊ธฐ์กด ์ ์๊ฐ : ์ ์ฉ ํ ์๋ ์์ ๊ฒ ๊ฐ์ผ๋, LLM์ ๋ณ๋ชฉํ์์ด ๋ฌด๊ฑฐ์ด ๋ชจ๋ธ์ ๋ถ๋ฌ์ค๋ ๊ณผ์ ์์ ๋ํ๋๋ฏ๋ก ๋ค์ ์ฐ์ฐ์ ์ค์ฌ๋ Diffusion๋งํผ ํฐ ํจ๊ณผ๋ ๋ํ๋ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. (Diffusion์ ์ฐ์ฐ์ด ๋ณ๋ชฉ์)
๋ฌผ๋ก ๊ธฐ์กด ์ ์๊ฐ๋ ์ฐพ์๋ณด๋ ๋ง๋ ๊ฒ ๊ฐ์ผ๋, ์ค์ ๋ก ํ์ฉํ๋ค๋ฉด, ๋ฐ๋ก ์ ์ง๋ฌธ์์ ๋ค๋ค๋ ์ ํ๋ ํฅ์์๋ ๋์์ด ๋๊ธฐ ๋๋ฌธ์, ์คํ๋ ค ์ ํ๋ ๋ถ๋ถ์์ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ธฐ์กด ์์ํ
- GPTQ โ Post-training quantization ๋ฐฉ์, Weight๋ง 4-bit ๋ณํ.
- AWQ โ Weight ์ค์๋๋ฅผ ๋ถ์ํด ์ ํ์ ์ผ๋ก 4-bit ๋ณํ.
- SmoothQuant โ Activation ์ด์์น๋ฅผ Weight๋ก ์ด๋์์ผ ์์ํ ์ค๋ฅ๋ฅผ ์ค์ด๋ ๋ฐฉ์.
SVDQuant ์ฌ์ฉํ๋ค๋ฉด?
Weight๋ฅผ Low-Rank(16-bit) + Residual(4-bit)๋ก ๋๋์ด ์ค์ํ ์ ๋ณด๋ ์ ์งํ๋ฉด์ ์์ถํ๋ฏ๋ก
Diffusion์ฒ๋ผ ์ ํ๋ ํฅ์์ ๋์์ด ๋ ๋ฏ !!!
For an explanation from the author, Song Han

Demo
