- Speculative Decoding์ ์์ Draft ๋ชจ๋ธ์ด ์ฌ๋ฌ ํ ํฐ์ ๋ฏธ๋ฆฌ ์์ธกํ๊ณ , ํฐ Target ๋ชจ๋ธ์ด ํ ๋ฒ์ Forward Pass๋ก ๊ฒ์ฆํ๋ ์ถ๋ก ๊ฐ์ ๊ธฐ๋ฒ
- ์ถ๋ ฅ ํ์ง ์ ํ ์์ด ๋ค์ ํ ํฐ์ ๋์ ์์ฑํ์ฌ ์ง์ฐ ์๊ฐ์ ์ค์ด๋ ๋ณ๋ ฌํ ์ ๋ต
- ๊ธฐ์กด ์์ฐจ ๋์ฝ๋ฉ ๋๋น ์ต๋ 3๋ฐฐ ์๋ ํฅ์์ ๋ฌ์ฑํ๋ ๋ฌด์์ค(lossless) ์ต์ ํ ๋ฐฉ์
ํด๋น ๊ฐ๋ ์ด ํ์ํ ์ด์
- LLM ์ถ๋ก ์ memory-bound โ GPU ์ฐ์ฐ ๋ฅ๋ ฅ์ ๋จ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ด ๋ณ๋ชฉ
- ๊ธฐ์กด autoregressive ๋์ฝ๋ฉ์ ํ ํฐ 1๊ฐ๋น Forward Pass 1ํ ํ์ โ ์์ฐจ์ ์ด๋ผ ๋๋ฆผ
- ์ฌ์ด ํ ํฐ(โtheโ, โisโ ๋ฑ)๋ ๊ฑฐ๋ ๋ชจ๋ธ์ด ๋งค๋ฒ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋นํจ์จ
AS-IS (๊ธฐ์กด Autoregressive Decoding)
sequenceDiagram autonumber participant LLM as Target ๋ชจ๋ธ (70B) participant Out as ์ถ๋ ฅ LLM->>Out: Forward Pass 1 โ "์ค๋" LLM->>Out: Forward Pass 2 โ "๋ ์จ" LLM->>Out: Forward Pass 3 โ "๊ฐ" LLM->>Out: Forward Pass 4 โ "์ข" LLM->>Out: Forward Pass 5 โ "์ต๋๋ค" Note over LLM: 5๊ฐ ํ ํฐ = 5๋ฒ์ Forward Pass<br/>(๋งค๋ฒ ๊ฑฐ๋ ๋ชจ๋ธ ์ ์ฒด ์คํ)
TO-BE (Speculative Decoding)
sequenceDiagram autonumber participant Draft as Draft ๋ชจ๋ธ (1B) participant Target as Target ๋ชจ๋ธ (70B) participant Out as ์ถ๋ ฅ Draft->>Draft: ๋น ๋ฅด๊ฒ 4ํ ํฐ ์์ธก Note over Draft: "๋ ์จ", "๊ฐ", "์ข", "์ต๋๋ค" Draft->>Target: 4๊ฐ Draft ํ ํฐ ์ ๋ฌ Target->>Target: ํ ๋ฒ์ Forward Pass๋ก<br/>4๊ฐ ํ ํฐ ๋์ ๊ฒ์ฆ Note over Target: "๋ ์จ" โ ์ฑํ<br/>"๊ฐ" โ ์ฑํ<br/>"์ข" โ ์ฑํ<br/>"์ต๋๋ค" โ ์ฑํ Target->>Out: 4๊ฐ ํ ํฐ ํ๊บผ๋ฒ์ ์ถ๋ ฅ Note over Out: Forward Pass 1ํ๋ก<br/>4ํ ํฐ ์์ฑ ์๋ฃ
๋์ ์๋ฆฌ โ 4๋จ๊ณ
1๋จ๊ณ: Draft ์์ฑ
์์ ๋ชจ๋ธ(์: 1B)์ด ๋ค์ K๊ฐ ํ ํฐ์ ๋น ๋ฅด๊ฒ ์์ธก
2๋จ๊ณ: ๋ณ๋ ฌ ๊ฒ์ฆ
ํฐ ๋ชจ๋ธ(์: 70B)์ด K๊ฐ ํ ํฐ์ ํ ๋ฒ์ Forward Pass๋ก ๋์์ ๊ฒ์ฆ. ๊ฐ ํ ํฐ์ ํ๋ฅ ๋ถํฌ๋ฅผ ๋น๊ต
3๋จ๊ณ: ์ฑํ ๋๋ ๊ฑฐ๋ถ
- Target ๋ชจ๋ธ์ ํ๋ฅ ๊ณผ ์ผ์นํ๋ ๊ฐ์ฅ ๊ธด ์ ๋์ฌ(prefix)๋ฅผ ์ฑํ
- ๋ถ์ผ์นํ๋ ์ฒซ ํ ํฐ๋ถํฐ Target ๋ชจ๋ธ์ด ์ง์ ์์ฑ
4๋จ๊ณ: ๋ฐ๋ณต
์ฑํ๋ ํ ํฐ๋ถํฐ ์ด์ด์ Draft ๋ชจ๋ธ์ด ๋ค์ K๊ฐ ์์ธก โ ๊ฒ์ฆ ๋ฐ๋ณต
์ ํ์ง ์ ํ๊ฐ ์๋๊ฐ? (๋ฌด์์ค ๋ณด์ฅ)
- Draft ํ ํฐ์ ์ ์์ผ ๋ฟ, ์ต์ข ํ๋จ์ ํญ์ Target ๋ชจ๋ธ์ด ์ํ
- ๊ฑฐ๋ถ๋ ํ ํฐ์ Target ๋ชจ๋ธ์ด ์ง์ ์์ฑ โ ๊ฒฐ๊ณผ์ ์ผ๋ก Target ๋ชจ๋ธ๋ง ์ฌ์ฉํ ๊ฒ๊ณผ ๋์ผํ ์ถ๋ ฅ
- ์ํ์ ์ผ๋ก ๋์ผํ ํ๋ฅ ๋ถํฌ๋ฅผ ๋ณด์ฅ
ํต์ฌ ์งํ: Acceptance Rate (ฮฑ)
| ฮฑ ๊ฐ | ์๋ฏธ | ํจ๊ณผ |
|---|---|---|
| ๋์ (0.8+) | Draft ํ ํฐ ๋๋ถ๋ถ ์ฑํ | ์๋ ๋ํญ ํฅ์ |
| ์ค๊ฐ (0.5) | ์ ๋ฐ ์ฑํ, ์ ๋ฐ ๊ฑฐ๋ถ | ์ ๋นํ ์๋ ํฅ์ |
| ๋ฎ์ (0.2) | ๋๋ถ๋ถ ๊ฑฐ๋ถ | ์คํ๋ ค ์ค๋ฒํค๋ ๋ฐ์ ๊ฐ๋ฅ |
ฮฑ ๊ฐ์ Draft ๋ชจ๋ธ๊ณผ Target ๋ชจ๋ธ์ ๋ฅ๋ ฅ ์ฐจ์ด์ ์ ๋ ฅ ๋์ด๋์ ๋ฐ๋ผ ๊ฒฐ์ ๋จ.