Ryotta's Basic

LLM
๐Ÿค– LLM ๊ฒ€์ฆ์™„๋ฃŒ

KV Cache Quantization Analysis

KV Cache ์–‘์žํ™” ์‹ฌ์ธต ๋ถ„์„

KV Cache Quantization ยท Per-channel Key / Per-token Value ยท KIVI ยท KVQuant ยท FP8/INT8 ยท Mixed Precision

KV ์บ์‹œ ์–‘์žํ™”๋Š” LLM ์ถ”๋ก ์—์„œ Key/Value ์บ์‹œ์˜ ์ •๋ฐ€๋„๋ฅผ ๋‚ฎ์ถฐ(FP16 โ†’ INT8/INT4/INT2 ๋˜๋Š” FP8) ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰๊ณผ ๋Œ€์—ญํญ์„ ์ ˆ๊ฐํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. KV ์บ์‹œ๋Š” ์‹œํ€€์Šคยท๋ฐฐ์น˜์— ๋น„๋ก€ํ•ด ์ปค์ ธ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋งŒํผ์ด๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ณ , ๋””์ฝ”๋”ฉ์€ ์ด ์บ์‹œ๋ฅผ ์ฝ๋Š” ์†๋„์— ์ขŒ์šฐ๋˜๋ฏ€๋กœ, KV๋ฅผ ์ž‘๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๊ณง ๋” ํฐ ๋ฐฐ์น˜ยท๋” ๊ธด ๋ฌธ๋งฅยท๋” ๋น ๋ฅธ ๋””์ฝ”๋”ฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. KV ์บ์‹œ๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์€ ๋น„ํŠธํญ, ์ž…๋„, ์ตœ๊ทผ ํ† ํฐ ๋ณด์กด, ์ปค๋„ ์œตํ•ฉ์˜ ์กฐํ•ฉ ๋ฌธ์ œ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ 2๋น„ํŠธ๋ผ๋„ KIVI์™€ KVQuant์˜ ํ’ˆ์งˆ์ด ๋‹ค๋ฅธ ์ด์œ ๋Š” Key/Value ๋ถ„ํฌ์™€ RoPE ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์‹ค์ „์—์„œ๋Š” "๋ช‡ ๋น„ํŠธ๊นŒ์ง€ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‚˜"๋ณด๋‹ค "์–ด๋–ค KV๋ฅผ ์–ด๋–ค ์ž…๋„๋กœ ์ค„์ผ ๊ฒƒ์ธ๊ฐ€"๊ฐ€ ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Key๋Š” ์ฑ„๋„ ์ด์ƒ์น˜์— ๋ฏผ๊ฐํ•˜๊ณ , Value๋Š” ํ† ํฐ๋ณ„ ์˜ค์ฐจ ๋ˆ„์ ์— ๋ฏผ๊ฐํ•˜๋ฉฐ, ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‹ค์‹œ ์—ญ์–‘์žํ™” ์˜ค๋ฒ„ํ—ค๋“œ์™€ ์ปค๋„ ์œตํ•ฉ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ๊ฐˆ๋ฆฝ๋‹ˆ๋‹ค. ๋ณธ ๋ฌธ์„œ๋Š” KV ์บ์‹œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ โ†’ ์–‘์žํ™” ๊ธฐ์ดˆ โ†’ KV๊ฐ€ ์™œ ํŠน๋ณ„ํ•œ๊ฐ€(Key/Value ๋น„๋Œ€์นญ) โ†’ ์ฃผ์š” ๊ธฐ๋ฒ•(KIVIยทKVQuantยทFP8/INT8ยทํ˜ผํ•ฉ ์ •๋ฐ€๋„) โ†’ ์‹œ์Šคํ…œ ํ†ตํ•ฉ โ†’ ์žฅ๋‹จ์  โ†’ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ยท๋ฉ”๋ชจ๋ฆฌ ํ‹ฐ์–ด๋ง ์—ฐ๊ฒฐ์˜ ์ˆœ์„œ๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

1. KV ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ

KV ์บ์‹œ๋Š” ๊ณผ๊ฑฐ ํ† ํฐ๋“ค์˜ Key/Value๋ฅผ ์ €์žฅํ•ด ์–ดํ…์…˜ ์žฌ๊ณ„์‚ฐ์„ ํ”ผํ•˜์ง€๋งŒ, ๊ทธ ํฌ๊ธฐ๊ฐ€ ์ถ”๋ก ์˜ ๋ณ‘๋ชฉ์ด ๋ฉ๋‹ˆ๋‹ค. ํฌ๊ธฐ๋Š” ๋ฐฐ์น˜ยท์‹œํ€€์Šค ๊ธธ์ดยท๋ ˆ์ด์–ดยทํ—ค๋“œ ์ˆ˜์— ๋ชจ๋‘ ๋น„๋ก€ํ•˜๋ฏ€๋กœ, ๊ธด ๋ฌธ๋งฅ์ด๋‚˜ ํฐ ๋ฐฐ์น˜์—์„œ๋Š” ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋ฅผ ๋„˜์–ด์„œ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์šฉ๋Ÿ‰๊ณผ ๋Œ€์—ญํญ

ํ•ญ๋ชฉ ์–‘์žํ™” ์ „ ์–‘์žํ™” ํ›„
์ €์žฅ ์šฉ๋Ÿ‰ ์‹œํ€€์Šคยท๋ฐฐ์น˜ยท๋ ˆ์ด์–ด์— ๋น„๋ก€ํ•ด ๊ธ‰์ฆ 8/4/3/2๋น„ํŠธ๋กœ ์ถ•์†Œ
์ฝ๊ธฐ ๋Œ€์—ญํญ ๋””์ฝ”๋”ฉ๋งˆ๋‹ค ์ „์ฒด KV๋ฅผ ์ฝ์Œ ์ฝ๊ธฐ๋Ÿ‰ ๊ฐ์†Œ, dequant ๋น„์šฉ ์ถ”๊ฐ€
๋ฐฐ์น˜ ํฌ๊ธฐ HBM ์†Œ์ง„์œผ๋กœ ์ œํ•œ ๊ฐ™์€ GPU์— ๋” ๋งŽ์€ ์š”์ฒญ ์ˆ˜์šฉ
๋ฌธ๋งฅ ๊ธธ์ด ๊ธด ๋ฌธ๋งฅ์—์„œ ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ ๋” ๊ธด ๋ฌธ๋งฅ ์„œ๋น™์— ์œ ๋ฆฌ
### ๋‘ ๊ฐ€์ง€ ์ ˆ๊ฐ โ€” ์šฉ๋Ÿ‰๊ณผ ๋Œ€์—ญํญ
  • ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰(capacity) โ€” KV๊ฐ€ ์ž‘์•„์ง€๋ฉด ๊ฐ™์€ GPU์— ๋” ๊ธด ๋ฌธ๋งฅ, ๋” ํฐ ๋ฐฐ์น˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ†’ ์ฒ˜๋ฆฌ๋Ÿ‰ ํ–ฅ์ƒ(๊ฑฐ์˜ ํ•ญ์ƒ ์ด๋“).

  • ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ(bandwidth) โ€” ๋””์ฝ”๋”ฉ์€ ๋งค ์Šคํ… KV๋ฅผ ์ฝ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฐ”์šด๋“œ ์ž‘์—…์ด๋ฏ€๋กœ, ์ฝ์„ KV๊ฐ€ ์ž‘์•„์ง€๋ฉด ๋””์ฝ”๋”ฉ์ด ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค(๋‹จ ์—ญ์–‘์žํ™” ์—ฐ์‚ฐ๊ณผ ์ƒ์‡„๋  ์ˆ˜ ์žˆ์Œ).

2. ์–‘์žํ™” ๊ธฐ์ดˆ

์–‘์žํ™”๋Š” ์—ฐ์†์ ์ธ ์‹ค์ˆ˜๊ฐ’(FP16/BF16)์„ ๋” ์ ์€ ๋น„ํŠธ์˜ ์ •์ˆ˜(INT8/INT4/INT2)๋‚˜ ์ €๋น„ํŠธ ๋ถ€๋™์†Œ์ˆ˜์ (FP8)์œผ๋กœ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ scale๊ณผ zero-point๋งŒ ์žˆ์œผ๋ฉด ์ •์ˆ˜์™€ ๊ทผ์‚ฌ ์‹ค์ˆ˜๋ฅผ ์˜ค๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

KV Cache Quantization Basics

๊ทธ๋ฆผ 1. ์‹ค์ˆ˜โ†’์ •์ˆ˜ ๊ฒฉ์ž ๋งคํ•‘, affine ์–‘์žํ™” ์ˆ˜์‹, ๋น„ํŠธ๋ณ„ ๋ฉ”๋ชจ๋ฆฌ ์ ˆ๊ฐ

ํ•ต์‹ฌ ๊ฐœ๋…

  • ๊ท ๋“ฑ(affine) ์–‘์žํ™” โ€” q = round(x/s + z)๋กœ ์–‘์žํ™”, x_hat = sยท(qโˆ’z)๋กœ ์—ญ์–‘์žํ™”. s๋Š” scale, z๋Š” zero-point.

  • ๋Œ€์นญ vs ๋น„๋Œ€์นญ โ€” ๋ถ„ํฌ๊ฐ€ 0 ์ค‘์‹ฌ์ด ์•„๋‹ˆ๋ฉด zero-point zโ‰ 0์ธ ๋น„๋Œ€์นญ์ด ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…๋„(granularity) โ€” per-tensor(ํ…์„œ 1๊ฐœ scale)๋ณด๋‹ค per-channel/per-token(ํ–‰ยท์—ด๋ณ„ scale)์ด ์„ธ๋ฐ€ํ•ด ์ •ํ™•ํ•˜์ง€๋งŒ, scale ์ €์žฅ ๊ณต๊ฐ„์ด ๋Š˜์–ด ์‹คํšจ ์ ˆ๊ฐ์ด ์ด๋ก ์น˜๋ณด๋‹ค ์•ฝ๊ฐ„ ์ž‘์•„์ง‘๋‹ˆ๋‹ค(ํŠนํžˆ INT4/INT8).

  • ์ด์ƒ์น˜(outlier) โ€” ์†Œ์ˆ˜์˜ ํฐ ๊ฐ’์ด ๊ฒฉ์ž ๋ฒ”์œ„๋ฅผ ๋„“ํ˜€ ๋‚˜๋จธ์ง€ ๊ฐ’์˜ ํ•ด์ƒ๋„๋ฅผ ๋–จ์–ด๋œจ๋ฆฝ๋‹ˆ๋‹ค. KV ์–‘์žํ™”์˜ ํ•ต์‹ฌ ๋‚œ์ œ์ž…๋‹ˆ๋‹ค.

3. KV ์บ์‹œ๋Š” ์™œ ํŠน๋ณ„ํ•œ๊ฐ€ โ€” Key์™€ Value์˜ ๋น„๋Œ€์นญ

KV ์บ์‹œ๋Š” ๊ฐ€์ค‘์น˜์™€ ๋‹ฌ๋ฆฌ ์ž…๋ ฅ๋งˆ๋‹ค ๋ถ„ํฌ๊ฐ€ ๋ณ€ํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ํ™œ์„ฑ๊ฐ’์ด๋ผ ์ด์ƒ์น˜๊ฐ€ ๋งŽ๊ณ , ๋ฌด์—‡๋ณด๋‹ค Key ์บ์‹œ์™€ Value ์บ์‹œ์˜ ๋ถ„ํฌ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ๋น„๋Œ€์นญ์„ ๋ฌด์‹œํ•˜๊ณ  ๋‹จ์ˆœ per-tensor INT4๋กœ ์–‘์žํ™”ํ•˜๋ฉด ์ •ํ™•๋„๊ฐ€ ํฌ๊ฒŒ ๋ฌด๋„ˆ์ง‘๋‹ˆ๋‹ค.

KV Cache Quantization Analysis

๊ทธ๋ฆผ 2. Key๋Š” ์ฑ„๋„ ์ด์ƒ์น˜ โ†’ per-channel, Value๋Š” โ†’ per-token (KIVI์˜ ํ•ต์‹ฌ ๋ฐœ๊ฒฌ)

Key=per-channel, Value=per-token

  • Key ์บ์‹œ โ€” ์†Œ์ˆ˜์˜ ๊ณ ์ •๋œ ์ฑ„๋„์ด ๋งค์šฐ ํฐ ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค(์ฑ„๋„ ์ด์ƒ์น˜). ๊ทธ ์ฑ„๋„์„ ์ฑ„๋„ ๋‹จ์œ„๋กœ ์–‘์žํ™”(per-channel)ํ•ด์•ผ ์ด์ƒ์น˜๊ฐ€ ๋‹ค๋ฅธ ์ฑ„๋„์˜ ํ•ด์ƒ๋„๋ฅผ ๋ง์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • Value ์บ์‹œ โ€” ๋šœ๋ ทํ•œ ์ฑ„๋„ ์ด์ƒ์น˜๋Š” ์—†์ง€๋งŒ, ์–ดํ…์…˜ ์ถœ๋ ฅ์ด Value๋“ค์˜ ๊ฐ€์ค‘ํ•ฉ(value mixer)์ด๋ฏ€๋กœ ํ† ํฐ๋ณ„๋กœ ์˜ค์ฐจ๋ฅผ ๊ฐ€๋‘๋Š” per-token ์–‘์žํ™”๊ฐ€ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

  • RoPE ๋ฌธ์ œ โ€” ํšŒ์ „ ์œ„์น˜ ์ธ์ฝ”๋”ฉ์ด ์ฑ„๋„ ์Œ์„ ์„ž์–ด Key์˜ ์ด์ƒ์น˜ ๊ตฌ์กฐ๋ฅผ ํํŠธ๋Ÿฌ๋œจ๋ฆฝ๋‹ˆ๋‹ค. KVQuant๋Š” RoPE ์ ์šฉ '์ „'์— Key๋ฅผ per-channel ์–‘์žํ™”ํ•ด ์ด ๋ฌธ์ œ๋ฅผ ํ”ผํ•ฉ๋‹ˆ๋‹ค.

  • ์ตœ๊ทผ ํ† ํฐ ๋ณด์กด โ€” ๊ฐ€์žฅ ์ตœ๊ทผ์˜ Key/Value ์ผ๋ถ€๋ฅผ full precision sliding window๋กœ ๋‚จ๊ธฐ๋ฉด ์–ด๋ ค์šด ์ถ”๋ก  ๊ณผ์ œ์˜ ์ •ํ™•๋„๊ฐ€ ํšŒ๋ณต๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด KIVI ๋…ผ๋ฌธ์—์„œ Llama-2-7B์˜ GSM8K๊ฐ€ naive 2๋น„ํŠธ์—์„œ 13.50โ†’5.76์œผ๋กœ ๋ฌด๋„ˆ์ง€์ง€๋งŒ, full-precision ์ž”์ฐจ๋ฅผ ๋‘” KIVI-2๋Š” 13.50โ†’12.74๋กœ ๋Œ€๋ถ€๋ถ„ ํšŒ๋ณตํ•ฉ๋‹ˆ๋‹ค.

4. ์ฃผ์š” KV ์–‘์žํ™” ๊ธฐ๋ฒ•

KV Cache Quantization Analysis

๊ทธ๋ฆผ 3. FP8/INT8, KIVI, KVQuant, ํ˜ผํ•ฉ ์ •๋ฐ€๋„์˜ ๋น„๊ต

KIVI โ€” ๋น„๋Œ€์นญ 2๋น„ํŠธ (ICML 2024, arXiv 2402.02750)

KV ์บ์‹œ ๋ถ„ํฌ ๋ถ„์„์—์„œ ์ถœ๋ฐœํ•ด, Key๋Š” per-channelยทValue๋Š” per-token์œผ๋กœ ์–‘์žํ™”ํ•˜๋Š” ๋น„๋Œ€์นญ 2๋น„ํŠธ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ํŠœ๋‹์ด ํ•„์š” ์—†๊ณ (plug-and-play), ์ตœ๊ทผ ํ† ํฐ์€ full precision ์ž”์ฐจ๋กœ ์œ ์ง€ํ•˜๋ฉฐ, ์—ญ์–‘์žํ™”๋ฅผ matmul๊ณผ ์œตํ•ฉํ•œ ํ•˜๋“œ์›จ์–ด ์นœํ™”์  ๊ตฌํ˜„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฌธ์— ๋”ฐ๋ฅด๋ฉด Llama-2ยทFalconยทMistral์—์„œ ๊ฑฐ์˜ ๊ฐ™์€ ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ (๊ฐ€์ค‘์น˜ ํฌํ•จ) ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 2.6๋ฐฐ ์ค„์ด๊ณ , ์ด๋กœ์จ ์ตœ๋Œ€ 4๋ฐฐ ํฐ ๋ฐฐ์น˜์™€ 2.35~3.47๋ฐฐ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

KVQuant โ€” 3๋น„ํŠธ (NeurIPS 2024, arXiv 2401.18079, UC Berkeley)

๋„ค ๊ฐ€์ง€ ๊ธฐ๋ฒ•์„ ๊ฒฐํ•ฉํ•ด sub-4-bit ์ •๋ฐ€๋„๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•ฉ๋‹ˆ๋‹ค: (i) per-channel Key ์–‘์žํ™”, (ii) RoPE ์ ์šฉ ์ „ Key ์–‘์žํ™”(pre-RoPE), (iii) ๋ฏผ๊ฐ๋„ ๊ฐ€์ค‘ ๋น„๊ท ๋“ฑ ์–‘์žํ™”(NUQ), (iv) per-vector dense-and-sparse(์ด์ƒ์น˜๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌ). LLaMAยทLlama-2/3ยทMistral์—์„œ 3๋น„ํŠธ๋กœ perplexity ์ €ํ•˜ 0.1 ๋ฏธ๋งŒ์„ ๋‹ฌ์„ฑํ•˜๋ฉฐ, LLaMA-7B ๊ธฐ์ค€ ๋‹จ์ผ A100-80GB์—์„œ 100๋งŒ(1M) ํ† ํฐ, 8-GPU์—์„œ 1000๋งŒ(10M) ํ† ํฐ ๋ฌธ๋งฅ์„ ์„œ๋น™ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ปค์Šคํ…€ CUDA ์ปค๋„๋กœ ์•ฝ 1.7๋ฐฐ speedup๋„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

FP8 / INT8 โ€” 8๋น„ํŠธ (ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ณธ)

  • FP8 โ€” OCP๊ฐ€ ์ •์˜ํ•œ E4M3(4์ง€์ˆ˜ยท3๊ฐ€์ˆ˜, ยฑ240 ๋ฒ”์œ„, FP32 scale ํ•„์š”)์™€ E5M2(5์ง€์ˆ˜ยท2๊ฐ€์ˆ˜) ๋‘ ํ˜•์‹. vLLM์€ kv_cache_dtype="fp8"(E4M3/E5M2)์„ ์ง€์›ํ•˜๋ฉฐ, E4M3๋Š” ์ •ํ™•๋„ ์ €ํ•˜๊ฐ€ ๋Œ€์ฒด๋กœ ๋ฏธ๋ฏธํ•ฉ๋‹ˆ๋‹ค. NVIDIA Hopper/Ada, AMD MI300 ๋“ฑ์ด ํ•˜๋“œ์›จ์–ด ๋ณ€ํ™˜์„ ๊ฐ€์†ํ•ฉ๋‹ˆ๋‹ค.

  • INT8 โ€” TensorRT-LLM์€ FP8(E4M3)๊ณผ INT8 KV ์บ์‹œ๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ INT8/INT4๋Š” scale ์ €์žฅ์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•ด FP8๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ ์ด๋“์ด ์•ฝ๊ฐ„ ์ค„๊ณ , FP8์€ ์Šค์ผ€์ผ ๋ถ€๋‹ด์ด ์ž‘์•„ ๊ตฌํ˜„์ด ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.

ํ˜ผํ•ฉ ์ •๋ฐ€๋„ (Mixed Precision)

์ค‘์š”ํ•œ ํ† ํฐยท์ด์ƒ์น˜๋Š” ๊ณ ์ •๋ฐ€๋กœ, ๋‚˜๋จธ์ง€๋Š” ์ €๋น„ํŠธ๋กœ ์ฐจ๋“ฑ ์ ์šฉํ•˜๋Š” ๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค. MiKV๋Š” ์ค‘์š” KV๋Š” ๊ณ ์ •๋ฐ€๋กœ ์œ ์ง€ํ•˜๊ณ  Q์™€ attention map์€ ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ๋‘๋ฉฐ, KVmix๋Š” ๋ ˆ์ด์–ด ์ค‘์š”๋„(gradient ๊ธฐ๋ฐ˜)์— ๋”ฐ๋ผ ๋น„ํŠธํญ์„ ํ• ๋‹นํ•ด Key 2.19๋น„ํŠธยทValue 2.38๋น„ํŠธ ๊ฐ™์€ ๊ทน์ €๋น„ํŠธ์—์„œ 4.9๋ฐฐ ์••์ถ•ยท5.3๋ฐฐ ์†๋„๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. attention sink(์•ž์ชฝ ํ•ต์‹ฌ ํ† ํฐ) ๋ณด์กด์ด ๊ณตํ†ต ์—ด์‡ ์ž…๋‹ˆ๋‹ค.

์ •ํ™•๋„ vs ๋น„ํŠธํญ ์ •๋ฆฌ

๋น„ํŠธํญ ๋Œ€ํ‘œ ๋ฐฉ์‹ ์ •ํ™•๋„ ๊ฒฝํ–ฅ ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝํ–ฅ
8๋น„ํŠธ FP8 / INT8 ๊ฑฐ์˜ ๋ฌด์†์‹ค ์•ฝ 2๋ฐฐ ์ ˆ๊ฐ
4๋น„ํŠธ ๊ทธ๋ฃน/ํ˜ผํ•ฉ ์–‘์žํ™” ๋Œ€์ฒด๋กœ ์–‘ํ˜ธ ์•ฝ 4๋ฐฐ ์ ˆ๊ฐ
3๋น„ํŠธ KVQuant < 0.1 perplexity ์ €ํ•˜ ์ˆ˜์ค€๊นŒ์ง€ ๊ฐ€๋Šฅ ๊ฐ•ํ•œ ์ ˆ๊ฐ
2๋น„ํŠธ KIVI residual window๊ฐ€ ์žˆ์œผ๋ฉด ์‹ค์šฉ์  ๋งค์šฐ ๊ฐ•ํ•œ ์ ˆ๊ฐ
2๋น„ํŠธ ๋ฏธ๋งŒ mixed precision ์ค‘์š” ํ† ํฐ ๋ณด์กด์ด ํ•„์ˆ˜ ์ •์ฑ… ๋ณต์žก๋„ ์ฆ๊ฐ€

5. ์‹œ์Šคํ…œ ํ†ตํ•ฉ

์–‘์žํ™”๋Š” ์ถ”๋ก  ํŒŒ์ดํ”„๋ผ์ธ์˜ ์–ด๋””์—์„œ, ์–ด๋–ค ๋น„์šฉ์œผ๋กœ ์ผ์–ด๋‚˜๋Š”์ง€๊ฐ€ ์‹ค์ œ ์ด๋“์„ ์ขŒ์šฐํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ €์žฅ์€ ์ €๋น„ํŠธ๋กœ ํ•˜๋˜ ์–ดํ…์…˜ ์—ฐ์‚ฐ ์ž์ฒด๋Š” ๊ณ ์ •๋ฐ€๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

KV Cache Quantization Analysis

๊ทธ๋ฆผ 4. ๋””์ฝ”๋”ฉ ์Šคํ…์—์„œ ์–‘์žํ™”/์—ญ์–‘์žํ™” ์œ„์น˜์™€ ์šฉ๋Ÿ‰ยท๋Œ€์—ญํญ ๋‘ ์ธก๋ฉด

๊ตฌํ˜„ยท์‹œ์Šคํ…œ ๊ณ ๋ ค์‚ฌํ•ญ

  • ์–‘์žํ™” ์œ„์น˜ โ€” ์ƒˆ ํ† ํฐ์˜ K,V๋ฅผ ๊ณ„์‚ฐํ•œ ์งํ›„ ์–‘์žํ™”ํ•ด ์บ์‹œ์— ์ €์žฅํ•˜๊ณ , ์–ดํ…์…˜ ์ง์ „์— ์—ญ์–‘์žํ™”(๋˜๋Š” ์ €๋น„ํŠธ matmul)ํ•ฉ๋‹ˆ๋‹ค.

  • ์—ญ์–‘์žํ™” ์˜ค๋ฒ„ํ—ค๋“œ โ€” dequant๋ฅผ matmul๊ณผ ์œตํ•ฉ(fused kernel)ํ•˜์ง€ ์•Š์œผ๋ฉด ๋Œ€์—ญํญ ์ ˆ๊ฐ์œผ๋กœ ์–ป์€ ์ง€์—ฐ ์ด๋“์ด ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • vLLM โ€” kv_cache_dtype="fp8". ํ˜„์žฌ ์ฃผ ์ด๋“์€ ์šฉ๋Ÿ‰(โ‰ˆ2๋ฐฐ ํ† ํฐ)์ด๋ฉฐ, ์ง€์—ฐ ์ด๋“์€ ๋ฐฑ์—”๋“œ ์˜์กด์ž…๋‹ˆ๋‹ค(๊ณผ๊ฑฐ์—๋Š” fused dequant ๋ฏธ๊ตฌํ˜„์œผ๋กœ ์ง€์—ฐ ์ด๋“์ด ์ œํ•œ์ ์ด์—ˆ๊ณ , FlashAttention-3 ๋ฐฑ์—”๋“œ์—์„œ๋Š” ์–ดํ…์…˜๋„ FP8๋กœ ์ˆ˜ํ–‰). LLM Compressor๋กœ ๋ณด์ •(calibration)๋œ scale์„ ์“ฐ๋ฉด ํ’ˆ์งˆ์ด ์ข‹์•„์ง‘๋‹ˆ๋‹ค.

  • TensorRT-LLM โ€” FP8ยทINT8 KV ์บ์‹œ ์ง€์›. SqueezeBits ๋ฒค์น˜๋งˆํฌ์—์„œ vLLM์˜ FP8๋Š” ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ฐœ์„ ์ด ๊ฑฐ์˜ ์—†์—ˆ๋˜ ๋ฐ˜๋ฉด(ํ”„๋ฆฌํ•„ ์œ„์ฃผ์—์„  ์†Œํญ ์ €ํ•˜), TensorRT-LLM์˜ FP8ยทINT8์€ ์ฒ˜๋ฆฌ๋Ÿ‰ ํ–ฅ์ƒ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌยท์›Œํฌ๋กœ๋“œ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ํฌ๊ฒŒ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  • PagedAttention๊ณผ ์ง๊ต โ€” ๋ธ”๋ก ์•ˆ์˜ K,V๋ฅผ ์ €๋น„ํŠธ๋กœ ๋‹ด์œผ๋ฉด ๋ธ”๋ก๋‹น ๋” ๋งŽ์€ ํ† ํฐ์ด ๋“ค์–ด๊ฐ€๋ฏ€๋กœ, ๋‘ ๊ธฐ๋ฒ•์„ ํ•จ๊ป˜ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ •ํ™•๋„ ํ‰๊ฐ€ โ€” perplexity์™€ ํ•จ๊ป˜ ์žฅ๋ฌธ๋งฅ ๋ฒค์น˜๋งˆํฌ(LongBenchยทpasskey retrievalยทRULER), GSM8K ๊ฐ™์€ ์ถ”๋ก  ๊ณผ์ œ๋กœ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

6. ์žฅ๋‹จ์ 

์žฅ์ 

  • ๋ฉ”๋ชจ๋ฆฌ ์ ˆ๊ฐ ํšจ๊ณผ๊ฐ€ ์ง์ ‘์ ์ž…๋‹ˆ๋‹ค. FP8/INT8๋งŒ์œผ๋กœ๋„ ๋Œ€์ฒด๋กœ ์•ฝ 2๋ฐฐ, INT4/INT2 ๊ณ„์—ด์€ ๊ทธ๋ณด๋‹ค ๋” ํฐ ์ ˆ๊ฐ์ด ๊ฐ€๋Šฅํ•ด ๊ธด ๋ฌธ๋งฅ๊ณผ ํฐ ๋ฐฐ์น˜๋ฅผ ๊ฐ™์€ GPU์— ๋‹ด๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

  • ๋Œ€์—ญํญ ๋ณ‘๋ชฉ ์™„ํ™”์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋””์ฝ”๋”ฉ ๋‹จ๊ณ„๋Š” ๋งค ์Šคํ… ๊ณผ๊ฑฐ KV๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์ฝ๊ธฐ ๋•Œ๋ฌธ์—, KV ํฌ๊ธฐ๊ฐ€ ์ค„๋ฉด HBM ์ฝ๊ธฐ๋Ÿ‰๊ณผ ์˜คํ”„๋กœ๋”ฉ ์ „์†ก๋Ÿ‰๋„ ํ•จ๊ป˜ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•๊ณผ ๊ฒฐํ•ฉํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. PagedAttention, KV offloading, ๋ฉ”๋ชจ๋ฆฌ ํ‹ฐ์–ด๋ง๊ณผ ์ง๊ต์ ์ด๋ผ ๊ธฐ์กด ์„œ๋น™ ์Šคํƒ ์œ„์— ๋ง๋ถ™์—ฌ ํšจ๊ณผ๋ฅผ ๋ˆ„์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ 

  • ๋‚ฎ์€ ๋น„ํŠธํญ์—์„œ๋Š” ์ •ํ™•๋„ ์ €ํ•˜ ์œ„ํ—˜์ด ํฝ๋‹ˆ๋‹ค. ํŠนํžˆ Key/Value ๋น„๋Œ€์นญ, RoPE, ์ตœ๊ทผ ํ† ํฐ ๋ณด์กด์„ ๋ฌด์‹œํ•˜๋ฉด 2๋น„ํŠธ ๊ทผ์ฒ˜์—์„œ ํ’ˆ์งˆ์ด ๊ธ‰๊ฒฉํžˆ ๋ฌด๋„ˆ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ตฌํ˜„ ๋ณต์žก๋„๊ฐ€ ๋†’์•„์ง‘๋‹ˆ๋‹ค. per-channel/per-token scale ๊ด€๋ฆฌ, ์ด์ƒ์น˜ ๋ถ„๋ฆฌ, fused dequant kernel, backend๋ณ„ dtype ์ œ์•ฝ์„ ํ•จ๊ป˜ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์›Œํฌ๋กœ๋“œ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ์ด๋“์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์šฉ๋Ÿ‰ ์ ˆ๊ฐ์€ ๋น„๊ต์  ์•ˆ์ •์ ์ด์ง€๋งŒ, ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ฐœ์„ ์€ kernel fusion, attention backend, batch ํฌ๊ธฐ์— ํฌ๊ฒŒ ์ขŒ์šฐ๋ฉ๋‹ˆ๋‹ค.

7. ํŠธ๋ ˆ์ด๋“œ์˜คํ”„์™€ ๋ฉ”๋ชจ๋ฆฌ ํ‹ฐ์–ด๋ง ์—ฐ๊ฒฐ

KV Cache Quantization Analysis

๊ทธ๋ฆผ 5. ์ •ํ™•๋„-๋น„ํŠธ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„, ๊ทธ๋ฆฌ๊ณ  precision tiering(ํ‹ฐ์–ด๋ณ„ ์ •๋ฐ€๋„ ์ฐจ๋“ฑ)

ํ•ต์‹ฌ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„

  • ์ •ํ™•๋„ โ†” ์••์ถ•๋ฅ  โ€” ๋น„ํŠธ๊ฐ€ ๋‚ฎ์„์ˆ˜๋ก ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ค„์ง€๋งŒ ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. 8๋น„ํŠธ๋Š” ๊ฑฐ์˜ ๊ณต์งœ, 4๋น„ํŠธ๋Š” ์‹ค์šฉ์ , 2๋น„ํŠธ ์ดํ•˜๋Š” ์ •๊ตํ•œ ๊ธฐ๋ฒ•์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

  • ์šฉ๋Ÿ‰ ์ด๋“ โ†” dequant ๋น„์šฉ โ€” ๋Œ€์—ญํญ ์ ˆ๊ฐ๊ณผ ์—ญ์–‘์žํ™” ์—ฐ์‚ฐ์ด ์ƒ์‡„๋  ์ˆ˜ ์žˆ์–ด, ์ปค๋„ ์œตํ•ฉ ์—ฌ๋ถ€๊ฐ€ ์ง€์—ฐ ์ด๋“์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ์ •๋ฐ€๋„ โ†” scale ์ €์žฅ โ€” ์„ธ๋ฐ€ํ•œ ์ž…๋„(per-channel/per-token)์ผ์ˆ˜๋ก ์ •ํ™•ํ•˜์ง€๋งŒ scale ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋Š˜๊ณ , GQA/MQAยทFlashAttention๊ณผ์˜ ํ˜ธํ™˜์„ฑ๋„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ํ‹ฐ์–ด๋งยท์˜คํ”„๋กœ๋”ฉ๊ณผ์˜ ๊ฒฐํ•ฉ (์ง๊ต์ ยท์ƒ๋ณด์ )

์–‘์žํ™”๋Š” KV๋ฅผ '์ค„์ด๊ณ ', ํ‹ฐ์–ด๋ง์€ KV๋ฅผ '์˜ฎ๊น๋‹ˆ๋‹ค'. ๋‘ ๊ธฐ๋ฒ•์€ ์ง๊ต์ ์ด๋ฉฐ ํ•จ๊ป˜ ์“ฐ๋ฉด ํšจ๊ณผ๊ฐ€ ๋ฐฐ๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์–‘์žํ™”๋กœ KV๋ฅผ ์ค„์ด๋ฉด CXL/PCIe๋กœ ์˜ฎ๊ธธ ๋ฐ์ดํ„ฐ์™€ ๋Œ€์—ญํญ ๋ถ€๋‹ด์ด ํ•จ๊ป˜ ๊ฐ์†Œํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • precision tiering โ€” hot KV๋Š” GPU์—์„œ ๊ณ ์ •๋ฐ€(FP16/FP8), warm KV๋Š” CPU DRAM์—์„œ INT8/INT4, cold KV๋Š” CXL/NVMe์—์„œ ๋” ๊ณต๊ฒฉ์ ์ธ INT4/INT2๋กœ ๋‘๋Š” ์‹์˜ ํ‹ฐ์–ด๋ณ„ ์ •๋ฐ€๋„ ์ฐจ๋“ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ์ „์†ก๋Ÿ‰ ์ ˆ๊ฐ โ€” ์•„๋ž˜ ํ‹ฐ์–ด๋กœ ์˜ฎ๊ธฐ๋Š” KV๋ฅผ ๋” ๊ณต๊ฒฉ์ ์œผ๋กœ ์–‘์žํ™”ํ•˜๋ฉด, ๋А๋ฆฐ ๋งํฌ(PCIe/CXL)๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Ÿ‰ ์ž์ฒด๊ฐ€ ์ค„์–ด ์˜คํ”„๋กœ๋”ฉ์˜ ๋Œ€์—ญํญ ๋ณ‘๋ชฉ์„ ์™„ํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • ์‹ ๋ขฐ์„ฑ ๊ด€์  โ€” ์ €๋น„ํŠธ์ผ์ˆ˜๋ก ๋น„ํŠธ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๋ฏผ๊ฐ๋„๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ, ํ‹ฐ์–ด๋ณ„ ์ •๋ฐ€๋„์™€ ECC(์˜ค๋ฅ˜ ์ •์ •)๋ฅผ ํ•จ๊ป˜ ์„ค๊ณ„ํ•˜๋Š” ๊ณต๋™ ์„ค๊ณ„ ์—ฌ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

8. ๊ด€๋ จ ๊ธฐ์ˆ 

๋ฌธ์„œ/์—ฐ๊ตฌ ์—ฐ๊ฒฐ์ 
PagedAttention Analysis KV ๋ธ”๋ก ๋‹จ์œ„ ๊ด€๋ฆฌ์™€ block table ๊ธฐ๋ฐ˜ ์„œ๋น™
KV Cache Offloading Analysis KV๋ฅผ GPU ๋ฐ–์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ์˜คํ”„๋กœ๋”ฉ๊ณผ์˜ ๊ฒฐํ•ฉ
StreamingLLM Analysis attention sink์™€ ์ตœ๊ทผ ํ† ํฐ ๋ณด์กด ์•„์ด๋””์–ด
KIVI (arXiv 2402.02750) 2-bit asymmetric KV quantization
KVQuant (arXiv 2401.18079) pre-RoPE, NUQ, dense-and-sparse, 3-bit KV quantization
MiKV / KVmix mixed precision๊ณผ ์ค‘์š” ํ† ํฐ ๋ณด์กด

9. ํ•ต์‹ฌ ์ •๋ฆฌ

KV ์บ์‹œ ์–‘์žํ™”๋Š” Key/Value์˜ ์ •๋ฐ€๋„๋ฅผ ๋‚ฎ์ถฐ ์šฉ๋Ÿ‰๊ณผ ๋Œ€์—ญํญ์„ ๋™์‹œ์— ์ค„์ด๋Š” ๊ฐ€์žฅ ์ง์ ‘์ ์ธ KV ์ ˆ๊ฐ ์ˆ˜๋‹จ์ด๋‹ค. ํ•ต์‹ฌ์€ Key์™€ Value์˜ ๋ถ„ํฌ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ์ ์œผ๋กœ, Key๋Š” ์ฑ„๋„ ์ด์ƒ์น˜ ๋•Œ๋ฌธ์— per-channel, Value๋Š” per-token์œผ๋กœ ์–‘์žํ™”ํ•ด์•ผ ํ•˜๋ฉฐ(KIVI), RoPE ์ „ ์–‘์žํ™”ยท๋น„๊ท ๋“ฑ ์–‘์žํ™”ยท์ด์ƒ์น˜ ๋ถ„๋ฆฌ(KVQuant)์™€ ์ตœ๊ทผ/์ค‘์š” ํ† ํฐ์˜ ๊ณ ์ •๋ฐ€ ๋ณด์กด์ด ์ €๋น„ํŠธ ์ •ํ™•๋„์˜ ์—ด์‡ ๋‹ค. 8๋น„ํŠธ(FP8/INT8)๋Š” ๊ฑฐ์˜ ๋ฌด์†์‹ค๋กœ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ธฐ๋ณธ ์ง€์›ํ•˜๊ณ , 3๋น„ํŠธ๋Š” KVQuant, 2๋น„ํŠธ๋Š” KIVI์˜ ๋น„๋Œ€์นญ+์ž”์ฐจ, 2๋น„ํŠธ ๋ฏธ๋งŒ์€ ํ˜ผํ•ฉ ์ •๋ฐ€๋„๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์–‘์žํ™”๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ‹ฐ์–ด๋งยท์˜คํ”„๋กœ๋”ฉ๊ณผ ์ง๊ต์ ์ด์–ด์„œ, hot KV๋Š” ๊ณ ์ •๋ฐ€ยทcold KV๋Š” ์ €๋น„ํŠธ๋กœ ๋‘๋Š” precision tiering์œผ๋กœ ๊ฒฐํ•ฉํ•˜๋ฉด CXL/PCIe ์ „์†ก๋Ÿ‰๊นŒ์ง€ ํ•จ๊ป˜ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

์ฃผ์˜ โ€” ๋ณธ๋ฌธ ์ˆ˜์น˜๋Š” ๊ฐ ๋…ผ๋ฌธ(KIVI arXiv 2402.02750, KVQuant arXiv 2401.18079, MiKV arXiv 2402.18096, KVmix arXiv 2506.08018)๊ณผ ๊ด€๋ จ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ณด๊ณ ๊ฐ’์œผ๋กœ, ๋ชจ๋ธยท๋ฐ์ดํ„ฐ์…‹ยทํ•˜๋“œ์›จ์–ดยท๋ฐฐ์น˜ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค. KIVI์˜ 2.6๋ฐฐ๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ํฌํ•จํ•œ peak memory ๊ธฐ์ค€์ด๊ณ , KVQuant์˜ 1M/10M ๋ฌธ๋งฅ ์ˆ˜์น˜๋Š” ํŠน์ • ๋ชจ๋ธ๊ณผ GPU ๊ตฌ์„ฑ์„ ์ „์ œ๋กœ ํ•œ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ๊ฐ๊ฐ

KV_bytes โ‰ˆ 2 ร— L ร— n_kv_heads ร— head_dim ร— seq_len ร— batch ร— bytes
bytes: FP16=2, FP8/INT8=1, INT4=0.5, INT2=0.25

๋น„ํŠธํญ๋ณ„ ์š”์•ฝ

๋น„ํŠธํญ ์ •ํ™•๋„ ํ•„์š” ๊ธฐ๋ฒ•
8๋น„ํŠธ(FP8/INT8) ๊ฑฐ์˜ ๋ฌด์†์‹ค per-tensor scale๋กœ ์ถฉ๋ถ„, ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ณธ
4๋น„ํŠธ ๋Œ€์ฒด๋กœ ์–‘ํ˜ธ ๊ทธ๋ฃน ์–‘์žํ™”(group-wise)
3๋น„ํŠธ ์ •๊ตํ•˜๋ฉด ๊ฑฐ์˜ ๋ฌด์†์‹ค KVQuant(pre-RoPEยทNUQยทdense-and-sparse)
2๋น„ํŠธ ์ฃผ์˜ ํ•„์š” ๋น„๋Œ€์นญ(์ฑ„๋„/ํ† ํฐ)+full-precision ์ž”์ฐจ(KIVI)
2๋น„ํŠธ ๋ฏธ๋งŒ ์–ด๋ ค์›€ ํ˜ผํ•ฉ ์ •๋ฐ€๋„(์ค‘์š” ํ† ํฐ ๊ณ ์ •๋ฐ€)