Is Speculative Decoding Worth It? Profiling vLLM on NVIDIA Blackwell โ Akamai
ํ ์ค ํต์ฌ
speculative decoding์ ์ถ๋ก ์ง์ฐ์ ์ค์ผ ์ ์์ง๋ง, ์ถ๊ฐ ๋ชจ๋ธ ๋ฉ๋ชจ๋ฆฌ์ ์์ ํน์ฑ์ ๋ฐ๋ผ ํจ๊ณผ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ ธ ์ํฌ๋ก๋๋ณ๋ก ๋ฐ์ ธ๋ด์ผ ํ๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
์๊ฐ speculative decoding์ด ์ค์ ์ํฌ๋ก๋์์ ์ผค ๋งํ ๊ฐ์น๊ฐ ์๋์ง ํ๋จํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃฌ๋ค.
-
0:37
Prefill๊ณผ decode LLM ์์ฒญ์ ์ ๋ ฅ์ ์ฝ์ด KV cache๋ฅผ ๋ง๋๋ prefill๊ณผ, ์ด์ ํ ํฐ์ ์์กดํด ํ ํ ํฐ์ฉ ๋ต์ ์์ฑํ๋ decode๋ก ๋๋๋ค. ๊ธด ๋ต๋ณ์ ์์ฑํ๋ ๊ณผ์ ์ ๋ง์ forward pass๊ฐ ํ์ํด ์ง์ฐ ๋น์ฉ์ด ์ปค์ง๋ค.
-
1:37
speculative decoding์ ๊ฐ๋ ์์ draft model์ด ๋จผ์ ๋ช ๊ฐ์ ํ ํฐ์ ์์ธกํ๊ณ , ํฐ target model์ด ์ด๋ฅผ ํ ๋ฒ์ ๊ฒ์ฆํด ์น์ธํ๊ฑฐ๋ ๊ฑฐ์ ํ๋ค. ๋ ์์ ๋ชจ๋ธ์ด ์ด์ ์์ฑ์ ๋งก์๋ ์ต์ข ์ถ๋ ฅ์ target model์ด ๊ฒ์ฆํ๋ฏ๋ก ํ์ง์ ์ ์งํ๋ฉด์ ์์ฑ ๋น์ฉ์ ์ค์ผ ์ ์๋ค.
-
2:42
๋น์ฉ: ๋ ๋ชจ๋ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ผ ํจ ํจ๊ณผ๊ฐ ์๋๋ผ๋ ๋ ๊ฐ์ ๋ชจ๋ธ๊ณผ ๋ ๋ชจ๋ธ์ KV cache ๊ณต๊ฐ์ ๋์์ ํ๋ณดํด์ผ ํ๋ฏ๋ก VRAM ๋น์ฉ์ด ์ถ๊ฐ๋๋ค. GPU ์ฌ์ ๊ฐ ์๋ ๊ฒฝ์ฐ์ ๊ณ ๋ คํ ๋งํ๊ณ , ์ด๋ฏธ ๊ณ ๋์์ฑ์ผ๋ก ๊ฝ ์ฐฌ ํ๊ฒฝ์์๋ ์คํ๋ ค ๋ง์ง ์์ ์ ์๋ค.
-
3:26
draft model ์ ํ draft model์ target model์ ๋นํด ์ถฉ๋ถํ ์์ผ๋ฉด์๋ ์์ธก ์ ํ๋์ ์๋๊ฐ ๋ชจ๋ ์ข์์ผ ํ๋ค. ๊ฒฐ๊ตญ ๋น์ฉ, ์ ํ๋, ์๋์ ๊ท ํ์ ๋ง์ถ๋ ์ ํ์ด ํต์ฌ์ด๋ค.
-
3:56
ํ ์ฅ์ Blackwell GPU์์์ ๋ฐ๋ชจ ์ค์ ํ ์ฅ์ Blackwell GPU์์ baseline๊ณผ speculative decoding ์๋ฒ๋ฅผ ํจ๊ป ๋๋ฆฌ๊ธฐ ์ํด ์์ draft model์ ๊ณจ๋๋ค. baseline์ ์ฝ 16GB, draft model์ 2.5GB๋ฅผ ์ฌ์ฉํด KV cache๋ฅผ ์ํ ์ฌ์ ๋ฅผ ๋จ๊ฒผ๊ณ , ๊ฐ์ tokenizer์ ๊ฐ๋ฅํ๋ฉด ๊ฐ์ ๊ณ์ด ๋ชจ๋ธ์ ์ฐ๋ ์กฐ๊ฑด๋ ์ค์ํ๋ค.
-
5:41
์ด๋์ด ํฐ ์ํฌ๋ก๋ structured output์ฒ๋ผ ๋ค์ ํ ํฐ์ ํํ๊ฐ ๋น๊ต์ ์์ธก ๊ฐ๋ฅํ ์์ ์์ ํจ๊ณผ๊ฐ ํฌ๋ค. ๋ฐ๋๋ก ์, ๋ธ๋ ์ธ์คํ ๋ฐ ๊ฐ์ ์ฐฝ์์ ์์ ์ ๋ค์ ํ ํฐ์ ๋ณ๋์ฑ์ด ์ปค์ ์ด๋์ด ์ค์ด๋ ๋ค.
-
6:21
๋ฐ๋ชจ: ๊ตฌ์กฐํ๋ ์ถ๋ ฅ ๊ตฌ์กฐํ๋ ์ถ๋ ฅ ์์ ์์ acceptance rate๋ฅผ ๋น๊ตํ๋ ๋ฐ๋ชจ๋ฅผ ์๋ํ์ง๋ง, ์๋ฒ ์ฌ์์ ๋ฑ ๊ธฐ์ ์ ๋ฌธ์ ๋ก ๋ฐ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ์ง๋ ๋ชปํ๋ค. ๊ทธ๋๋ ์๋๋ ์์ ์ ํ์ ๋ฐ๋ผ ํ ํฐ ์น์ธ์จ์ด ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋์ง ํ์ธํ๋ ๋ฐ ์์๋ค.
-
9:00
๋ฐ๋ชจ: 1.6๋ฐฐ ๋ ๋น ๋ฆ speculative decoding์ ์ผ ์ชฝ์ด ์ฝ 1.6๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ๋์ํ๊ณ , ๋์ acceptance rate๊ฐ ์ฑ๋ฅ ํฅ์์ ํต์ฌ์ผ๋ก ์ ์๋๋ค. ์น์ธ๋ ํ ํฐ ๋น์จ์ด ๋์์๋ก ์ฒ๋ฆฌ๋๋ ํจ๊ป ์ข์์ง๋ค.
-
9:50
๋ฐ๋ชจ: ์ฐฝ์์ ๊ธ์ฐ๊ธฐ ์ฐฝ์์ ๊ธ์ฐ๊ธฐ์ฒ๋ผ temperature๊ฐ ๋๊ณ ๋ค์ ํ ํฐ์ ๋ค์์ฑ์ด ํฐ ์์ ์์๋ acceptance rate๊ฐ ๋ฎ์์ก๋ค. ์ด ๊ฒฝ์ฐ speculative decoding์ ์ด์ ์ด ์ค์ด๋ค๊ณ ํ ํฐ๋น ์ฒ๋ฆฌ ํจ์จ ๊ฐ์ ๋ ์ ํ์ ์ด๋ค.
-
10:55
๊ธด ์ปจํ ์คํธ๋ ์ด๋์ ์ ํํจ speculative decoding์ ํ ํฐ ์์ฑ ์๋๋ฅผ ๋์ด์ง๋ง, ๊ธด ํ๋กฌํํธ๋ฅผ ์ฝ๊ณ KV cache๋ฅผ ๋ง๋๋ prefill ์์ฒด๋ฅผ ์ค์ด์ง๋ ๋ชปํ๋ค. ๋ฐ๋ผ์ RAG๋ ๊ธด ๋ฌธ์ ๋ถ์์ฒ๋ผ ์ ๋ ฅ ์ปจํ ์คํธ๊ฐ ํฐ ์์ ์์๋ ๊ธฐ๋ํ ๋งํผ ๋นจ๋ผ์ง์ง ์์ ์ ์๋ค.
-
11:50
์ฒดํฌ๋ฆฌ์คํธ ์ํฌ๋ก๋๊ฐ ๊ตฌ์กฐ์ ์ธ์ง, VRAM ์ฌ์ ๊ฐ ์๋์ง, ์ฐฝ์์ ์์ฑ์ธ์ง, ๋์์ฑ์ด ๋์์ง, ๋ฐฐ์น๊ฐ ์์์ง ๋ฑ์ ๊ธฐ์ค์ผ๋ก ์ ์ฉ ์ฌ๋ถ๋ฅผ ํ๋จํด์ผ ํ๋ค. ์์ฝํ๋ฉด ๋ชจ๋ ์์ ์ ์ ๋ฆฌํ ๊ธฐ์ ์ด ์๋๋ผ ์กฐ๊ฑด์ด ๋ง์ ๋๋ง ํจ์จ์ด ๋๋ ์ต์ ํ๋ค.
-
12:39
Q&A: ๋๊ตฌ์ ์๋ฃ ๊ตฌํ ๋๊ตฌ๋ก๋ vLLM์ ์ฌ์ฉํ๊ณ , ๋ ๋ฐ์ ๋ ๋ฐฉ์์ผ๋ก๋ medusa์ eagle ๊ฐ์ ์ ๊ทผ์ด ์ธ๊ธ๋๋ค. ์์ํ ๋๋ vLLM ๋ฌธ์์ ๊ด๋ จ ๋ธ๋ก๊ทธ, ์ฐ๊ตฌ ๋ ผ๋ฌธ์ ์ฐธ๊ณ ํ ์ ์๊ณ , Akamai์ GitHub์ Discord์์๋ ์๋ฃ๋ฅผ ์ฐพ์ ์ ์๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- speculative decoding์ ํ๊ท ์ง์ฐ์ ์ค์ด์ง๋ง, ์ค์ ๋์ ํ๋จ์ acceptance rate์ VRAM ์ฌ์ ๋ฅผ ํจ๊ป ๋ด์ผ ํ๋ค.
- structured output, ์ฝ๋, JSON, SQL์ฒ๋ผ ์ถ๋ ฅ ํ์์ด ์์ธก ๊ฐ๋ฅํ ์ ๋ฌด์์ ์ฐ์ ์ํํด๋ณด๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค.
- ๊ธด ์ปจํ ์คํธ ์ค์ฌ ์ ๋ฌด๋ผ๋ฉด speculative decoding๋ณด๋ค prefill ์ต์ ํ๋ RAG ๊ตฌ์ฑ ๊ฐ์ ์ด ๋ ํฐ ํจ๊ณผ๋ฅผ ๋ผ ์ ์๋ค.