Speculative Decoding Analysis
Speculative Decoding ์ฌ์ธต ๋ถ์
Draft Model ยท Verification ยท Acceptance Rate ยท Medusa/EAGLE ยท Throughput vs TTFT
Speculative decoding์ ์์ draft๊ฐ ์ฌ๋ฌ ํ ํฐ์ ๋จผ์ ์ ์ํ๊ณ , ํฐ target model์ด ์ด๋ฅผ ํ ๋ฒ์ ๊ฒ์ฆํจ์ผ๋ก์จ autoregressive decoding์ step ์๋ฅผ ์ค์ด๋ ๊ธฐ๋ฒ์ ๋๋ค. ๊ณ์ฐ๋์ ์์ ํ ์์ ๋ ๊ฒ์ ์๋์ง๋ง, acceptance๊ฐ ์ถฉ๋ถํ ๋์ผ๋ฉด target model์ ๋น์ผ ํ ํ ํฐ๋น ํ ๋ฒ forward ๋ฃจํ๋ฅผ ์์ถํ ์ ์์ต๋๋ค.
์ด ๋ฐฉ์์ ๋ชจ๋ธ ์ถ๋ ฅ ๋ถํฌ๋ฅผ ์ ์งํ ์ฑ ๋ณ๋ ฌ ํ๋ณด๋ฅผ ๋ํ๋ ๋ฐ ์ด์ ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ draft์ target์ ๋ถํฌ๊ฐ ์ผ๋ง๋ ๊ฐ๊น์ด์ง, ๊ทธ๋ฆฌ๊ณ ์๋น ์คํ์ด accept/reject ๊ฒฝ๊ณ๋ฅผ ์ผ๋ง๋ ๊ฐ๋ณ๊ฒ ์ฒ๋ฆฌํ๋์ง๊ฐ ์ค์ ์ฑ๋ฅ์ ์ข์ฐํฉ๋๋ค.
1. ๊ธฐ๋ณธ ์์ด๋์ด โ ์ฌ๋ฌ ํ ํฐ์ ํ ๋ฒ์ ์ ์งํ๋ ค๋ ์๋
์ผ๋ฐ ๋์ฝ๋ฉ์์๋ target model์ด ํ ํฐ ํ ๊ฐ๋ฅผ ๋ผ ๋๋ง๋ค ํ ๋ฒ์ decode step์ด ํ์ํฉ๋๋ค. Speculative decoding์ ๋ ์์ draft model์ด ๋จผ์ k๊ฐ ํ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ํ๊ณ , target model์ด ์ด ํ๋ณด ๊ตฌ๊ฐ์ ๋ณ๋ ฌ์ ์ผ๋ก ๊ฒ์ฆํฉ๋๋ค.
์ด๋ฐ ํ๋ณด๋ค์ด ๊ธธ๊ฒ ๋ง์ผ๋ฉด ๊ทธ๋งํผ ์ฌ๋ฌ ํ ํฐ์ ํ ๋ฒ์ ์ ์งํ ์ ์์ต๋๋ค. ๊ฒฐ๊ตญ ์๋ ํฅ์์ 'draft๊ฐ ์ผ๋ง๋ ์ธ๊ฒ ๋ง์ ํ๋ณด๋ฅผ ๋ง๋ค ์ ์๋๊ฐ'์ '๊ทธ ํ๋ณด๊ฐ ์ผ๋ง๋ ์์ฃผ ๋ง๋๊ฐ'์ ๊ณฑ์ผ๋ก ๊ฒฐ์ ๋ฉ๋๋ค.
๊ทธ๋ฆผ 1. draft propose -> target verify -> multi-token advance์ ๊ฐ๋
2. ํต์ฌ ๊ฐ๋
- draft model: ๋น ๋ฅด๊ฒ ํ๋ณด ํ ํฐ์ ๋ง๋๋ ์์ ๋ชจ๋ธ์ ๋๋ค.
- target model: ์ต์ข ์ถ๋ ฅ์ ์ฑ ์์ง๋ ํฐ ๋ชจ๋ธ์ด์ verifier์ ๋๋ค.
- speculative window: ํ ๋ฒ์ ์ ์ํ๋ ํ๋ณด ๊ธธ์ด k์ ๋๋ค.
- acceptance rate: ์ ์๋ ํ๋ณด ์ค ์ค์ ๋ก ์ฑํ๋๋ ๋น์จ์ ๋๋ค.
- rollback: mismatch ์ดํ ํ๋ณด๋ฅผ ๋ฒ๋ฆฌ๊ณ , KV cache์ ์ํ๋ง ์ํ๋ฅผ ๊ฒฝ๊ณ์ ๋ง๊ฒ ๋๋๋ฆฌ๋ ๋์์ ๋๋ค.
- shared prefix KV: ์ฑํ๋ prefix๋ ์ฌ์ฌ์ฉํ๊ณ , ๋ถ๊ธฐ์ ์์๋ง ์ ๊ฒฝ๋ก๋ฅผ ๋ง๋ญ๋๋ค.
3. ๋น๊ต/๋ถ์
| ๋ฐฉ์ | ์ ์ ์ฃผ์ฒด | ์ถ๊ฐ ๋ชจ๋ธ/ํ์ต | KV ๊ตฌ์กฐ | ์ฅ์ | ์ฃผ์์ |
|---|---|---|---|---|---|
| Independent draft model | ๋ณ๋ draft model | ๋ณดํต ํ์ต ์์ด ์ฌ์ฉ | draft/target ๋ถ๋ฆฌ | ๊ตฌํ์ด ์ง๊ด์ ์ด๋ค | ๋ชจ๋ธ 2๊ฐ ์ด์๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋ถ๋ด์ด ์๋ค |
| Self-speculation | ๊ฐ์ ๋ชจ๋ธ์ ์์ ์ธต | ๋ณดํต ๊ตฌ์กฐ ์กฐ์ ์์ฃผ | ์ผ๋ถ ๊ณต์ | ๋ฐฐํฌ ๋ถ๋ด์ด ์ค์ด๋ ๋ค | early exit์ ํ์ง ์กฐ์ ์ด ํ์ํ๋ค |
| Medusa / EAGLE | ์ถ๊ฐ head ๋๋ feature predictor | fine-tuning์ด ์๊ฑฐ๋ ์ ๋ค | backbone ๊ณต์ | ๋ณ๋ draft ์์ด ๋ณ๋ ฌ ํ๋ณด๋ฅผ ๋ง๋ ๋ค | training recipe์ acceptance ํ๋์ด ์ค์ํ๋ค |
Medusa๋ ๋ณ๋ draft model ๋์ backbone ์์ multiple decoding heads๋ฅผ ๋ถ์ด๊ณ tree attention์ผ๋ก ํ๋ณด๋ฅผ ๋์์ ๊ฒ์ฆํฉ๋๋ค. Medusa-1์ frozen backbone ์์์ lossless acceleration์ ๋ ธ๋ฆฌ๊ณ , Medusa-2๋ backbone๊น์ง ํจ๊ป fine-tuningํด ๋ ๋์ speedup์ ์ป๋ ๋ฐฉํฅ์ ๋๋ค. EAGLE์ feature level autoregression์ผ๋ก uncertainty๋ฅผ ์ค์ฌ speculative sampling์ ์์ ํํฉ๋๋ค. Medusa ์ชฝ์ typical acceptance์ self-distillation๋ ํจ๊ป ์ ์ํด acceptance rate์ ํ์ต ๋ฐ์ดํฐ ๋ฌธ์ ๋ฅผ ๋ณด์ํฉ๋๋ค.
4. ๋์ ์๋ฆฌ โ accept/reject์ rollback
์ผ๋ฐ์ ์ธ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- draft model์ด k๊ฐ ํ๋ณด๋ฅผ ์์ฑํฉ๋๋ค.
- target model์ด ํ๋ณด prefix๋ฅผ ํ ๋ฒ์ ๊ฒ์ฆํฉ๋๋ค.
- ์ผ์นํ prefix๋ ์ฆ์ ์ฑํํฉ๋๋ค.
- ์ฒซ mismatch ์ง์ ์ดํ ํ ํฐ์ ํ๊ธฐํฉ๋๋ค.
- ํ์ํ ๊ฒฝ์ฐ fallback decode๋ก ๋ค์ ํ ํฐ์ ๋ค์ ์์ํฉ๋๋ค.
๊ทธ๋ฆผ 2. accept๊ฐ ๊ธธ๊ฒ ์ด์ด์ง ๋์ ์ค๊ฐ reject๊ฐ ๋ฐ์ํ ๋์ ์ฐจ์ด
Rollback๊ณผ Sampling
์ค์ ์์คํ ์ accepted prefix์ rejected suffix๋ฅผ ์ ํํ ๊ตฌ๋ถํด์ผ ํ๊ณ , ์ํ๋ง ์ํ์ KV cache๋ ๊ทธ ๊ฒฝ๊ณ์ ๋ง์ถฐ ๋ณด์กดํ๊ฑฐ๋ ํ๊ธฐํด์ผ ํฉ๋๋ค. ๊ทธ๋์ speculative decoding์ ๋จ์ํ ๋ ๋ชจ๋ธ์ ๋ถ์ด๋ ๊ฒ์ด ์๋๋ผ, accept-aware KV ๊ด๋ฆฌ๊ฐ ํจ๊ป ํ์ํฉ๋๋ค.
5. ์ฅ๋จ์
| ์ฅ์ | ๋จ์ |
|---|---|
| target step ์๋ฅผ ์ค์ฌ latency๋ฅผ ๋ฎ์ถ ์ ์๋ค | draft ๋น์ฉ์ด ํฌ๋ฉด ์ด๋์ด ์ค์ด๋ ๋ค |
| ๊ธด ์๋ต์์ ๋์ ์ด๋์ด ์ปค์ง๊ธฐ ์ฝ๋ค | acceptance rate๊ฐ ๋ฎ์ผ๋ฉด ์คํ๋ ค ์ํด๊ฐ ๋ ์ ์๋ค |
| ๊ธฐ์กด ๋ชจ๋ธ์ ๊ทธ๋๋ก ํ์ฉํ ์ ์๋ค | draft/target ๋์ ์ด์์ผ๋ก KV ๊ด๋ฆฌ๊ฐ ๋ณต์กํด์ง๋ค |
| Medusa/EAGLE์ฒ๋ผ ๋ณํ์ ํตํด ์ด์ ๋ถ๋ด์ ์ค์ผ ์ ์๋ค | ์ํฌ๋ก๋ ๋ถํฌ๊ฐ ๋ฐ๋๋ฉด ์ฑ๋ฅ ํธ์ฐจ๊ฐ ์ปค์ง๋ค |
draft model์ด ์ถฉ๋ถํ ์๊ณ , target๊ณผ ๋ถํฌ๊ฐ ๋น์ทํ๋ฉฐ, acceptance rate๊ฐ ๋๋ค๋ฉด speculative decoding์ target step ์๋ฅผ ํฌ๊ฒ ์ค์ ๋๋ค. ํนํ ๊ธด ์๋ต ์์ฑ์์ ์ด์ต์ด ์ปค์ง๋๋ค.
๋ฐ๋๋ก draft ์์ฒด๊ฐ ๋น์ธ๊ฑฐ๋ acceptance rate๊ฐ ๋ฎ์ผ๋ฉด, draft ๋น์ฉ๊ณผ verification ๋น์ฉ์ด ํฉ์ณ์ ธ ์คํ๋ ค ์ํด๊ฐ ๋ ์ ์์ต๋๋ค. ์ฆ speculative decoding์ ๊ณต์ง ๊ฐ์์ด ์๋๋ผ, distribution match๊ฐ ๋ง์ ๋๋ง ์ด์ต์ด ๋๋ ์กฐ๊ฑด๋ถ ์ต์ ํ์ ๋๋ค.
๊ทธ๋ฆผ 3. draft ๋น์ฉ, acceptance rate, ์๋ต ๊ธธ์ด์ ๋ฐ๋ฅธ ์ด๋/์ํด ์์ญ
6. ์ฃผ์ ๋ณํ
๊ฐ์ฅ ์ง๊ด์ ์ธ ๋ฐฉ์์ ๋ ๋ฆฝ๋ ์์ draft model์ ๋๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ด์ ๋ณต์ก๋๊ฐ ์ปค์, ๊ฐ์ ๋ชจ๋ธ์ ์์ ์ธต์ด๋ ์ถ๊ฐ head๋ฅผ ํ์ฉํ๋ self-speculation, Medusa, EAGLE ๊ณ์ด๋ ๋ง์ด ์ฐ๊ตฌ๋ฉ๋๋ค.
์ด ๋ณํ๋ค์ ๊ณตํต์ ์ผ๋ก ์ ์์ ๋ ์ธ๊ฒ, ๊ฒ์ฆ์ ๊ฐ๋ฅํ ํ ์ฌํ์ฉํ๋ ์ชฝ์ ๋ ธ๋ฆฝ๋๋ค. ๋ค๋ง ๊ฐ ๋ฐฉ์์ ํ์ต ํ์์ฑ, acceptance ํน์ฑ, KV ๊ณต์ ๊ตฌ์กฐ๊ฐ ๋ฌ๋ผ ์๋น ๊ด์ ์ ์ฅ๋จ์ ๋ ๋ค๋ฆ ๋๋ค.
๊ทธ๋ฆผ 4. ๋ ๋ชจ๋ธ ๋ฐฉ์, self-speculation, multi-head ๋ฐฉ์์ ๋น๊ต
7. ๊ด๋ จ ๊ธฐ์
์ค์ ์์๋ speculative decoding๋ batch scheduler์ ํจ๊ป ๋์๊ฐ์ผ ํฉ๋๋ค. ์ด๋ค ์์ฒญ์ draft ์ค์ด๊ณ , ์ด๋ค ์์ฒญ์ verify ์ค์ด๋ฉฐ, ์ด๋ค ์์ฒญ์ reject๋ก ์ธํด fallback decode๋ฅผ ์ํํ ์ ์์ผ๋ฏ๋ก active set์ ์ํ๊ฐ ๋ ๋ณต์กํด์ง๋๋ค.
๋ฐ๋ผ์ throughput์ ๋์ด๋ ค๋ฉด draft executor, verifier executor, KV manager, sampler๋ฅผ ํ๋์ ํ์ดํ๋ผ์ธ์ผ๋ก ๋ฌถ์ด์ผ ํฉ๋๋ค. ํนํ verify์ fallback์ด ๋ค๋ฅธ latency ํน์ฑ์ ๊ฐ์ง๋ฏ๋ก continuous batching ์ ์ฑ ๊ณผ ์ถฉ๋ํ๊ฑฐ๋ ์๋์ง๋ฅผ ๋ผ ์ ์์ต๋๋ค.
๊ทธ๋ฆผ 5. speculative decoding์ด ๋ค์ด๊ฐ ์๋น ์คํ
| ์๋ฃ | ํต์ฌ |
|---|---|
| Continuous Batching Analysis | verify/fallback์ ํฌํจํ ๋ฐฐ์น ์ค์ผ์ค๋ง์ ๊ธฐ๋ฐ |
| PagedAttention Analysis | accepted prefix๋ฅผ ํจ์จ์ ์ผ๋ก ๋ด๋ KV block ๊ด๋ฆฌ |
| KV Cache Offloading Analysis | KV budget ํ์ฅ๊ณผ long-context ์ฒ๋ฆฌ ๋ณด์ |
| LLM Inference Scheduler Analysis | queue, backpressure, admission์ ํจ๊ป ๋ณด๋ ์์ ๊ด์ |
Accelerating Large Language Model Decoding with Speculative Sampling |
speculative decoding ์ ๋ ผ๋ฌธ, T5X์์ 2x-3x ๊ฐ์ ๋ณด๊ณ |
Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads |
multiple decoding heads, Medusa-1/2, 2.2x~3.6x ๋ณด๊ณ |
EAGLE: Speculative Sampling Requires Rethinking Feature Uncertainty |
feature-level speculative sampling, 2.7x~3.5x ๋ณด๊ณ |
8. ํต์ฌ ์ ๋ฆฌ
Speculative decoding์ ๋ณธ์ง์ ์์ ๋ชจ๋ธ์ ์ถ์ ์ ์ด์ฉํด ํฐ ๋ชจ๋ธ์ step ์๋ฅผ ์ค์ด๋ ๊ฒ์ ๋๋ค. ์ค์ ์ด์ต์ acceptance rate์ draft ๋น์ฉ์ ํจ์์ด๋ฉฐ, ๋ชจ๋ธ๊ณผ ์ํฌ๋ก๋์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค.
๊ทธ๋์ ์ด ๊ธฐ๋ฒ์ ๋จ์ผ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ธฐ๋ณด๋ค, draft ์ค๊ณยทverification ์ปค๋ยทKV ๊ด๋ฆฌยทbatch scheduler๊ฐ ํจ๊ป ์ต์ ํ๋์ด์ผ ์๋ฏธ ์๋ ์์คํ ๊ธฐ๋ฒ์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ๋ง์ต๋๋ค.
Speculative decoding์ ์๋ ํฅ์์ draft ๋น์ฉ, acceptance rate, fallback ์ฒ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ์ค์ผ์ค๋ฌ/KV ๊ด๋ฆฌ๊ฐ ํจ๊ป ๋ง๋ฌผ๋ฆด ๋ ํ์ค์ ์ธ ์ด๋์ผ๋ก ์ด์ด์ง๋๋ค. ๊ทธ๋์ ์ค์ ์๋น์์๋ ๋จ์ผ ์๊ณ ๋ฆฌ์ฆ ๋น๊ต๋ณด๋ค๋, ์ด๋ค speculative window์ verify ๊ฒฝ๋ก๋ฅผ ์ด๋ค ๋ฐฐ์น ์ ์ฑ ์์ ์น์ ๊ฒ์ธ์ง๊ฐ ๋ ์ค์ํฉ๋๋ค.