LLM inference serving์ ํ์ต์ด ๋๋ ์ธ์ด ๋ชจ๋ธ์ ์ค์ ์ฌ์ฉ์ ์์ฒญ์ ๋ง์ถฐ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์คํํ๋ ์ผ์ ๋๋ค. ๋ชจ๋ธ์ด โ๋๋ํ๊ฐโ์ ๋ณ๊ฐ๋ก, ์๋น์ค๋ฅผ ์ด์ํ๋ ์ชฝ์์๋ ํ token์ ์ผ๋ง๋ ๋นจ๋ฆฌ ๋ง๋ค๊ณ , ๋์์ ๋ช ๋ช ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ฉฐ, token ๋น์ฉ๊ณผ ๋ฉ๋ชจ๋ฆฌยท์ ๋ ฅ ๋ถ๋ด์ ์ผ๋ง๋ ์ค์ผ ์ ์๋์ง๊ฐ ํต์ฌ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค.
ํ ์ค๋ก ๋งํ๋ฉด
LLM inference serving์ ์ด๋ฏธ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉ์ ์์ฒญ๋ง๋ค ์คํํด ๋ต์ ์์ฑํ๊ณ , ๊ทธ ๊ณผ์ ์ ์ง์ฐ์๊ฐยท์ฒ๋ฆฌ๋ยท๋ฉ๋ชจ๋ฆฌยท๋น์ฉ์ ๊ด๋ฆฌํ๋ ์ธํ๋ผ ๋ฌธ์ ์ ๋๋ค.
๋น์ ๋ก ์ดํดํ๊ธฐ
๋ชจ๋ธ ํ์ต์ ์ ๊ณต์ฅ์ ์ง๋ ์ผ์ ๋น์ ํ๋ค๋ฉด, inference serving์ ๊ทธ ๊ณต์ฅ์ด ๋งค์ผ ์ฃผ๋ฌธ์ ๋ฐ์ ์ ํ์ ๋ง๋ค์ด ๋ณด๋ด๋ ์ด์์ ๋๋ค.
๊ณต์ฅ์ ์ง์ ๋๋ ์ค๊ณ์ ๋๊ท๋ชจ ํฌ์๊ฐ ์ค์ํฉ๋๋ค. ํ์ง๋ง ์ฃผ๋ฌธ์ด ๋ฐ๋ ค๋๋ ์๊ฐ์๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์ค์ํด์ง๋๋ค. ์์ฌ๋ฃ๊ฐ ์ ๋ ๋ค์ด์ค๋์ง, ์ปจ๋ฒ ์ด์ด๊ฐ ๋งํ์ง ์๋์ง, ์์ ์์ ์ฅ๋น๊ฐ ๋์ง ์๋์ง, ์ ๊ธฐ์ ๋๊ฐ ๋น์ฉ์ด ๊ฐ๋น๋๋์ง, ์ฃผ๋ฌธ๋ง๋ค ๋ฉ๊ธฐ๊ฐ ๋ง๋์ง๊ฐ ๊ด๊ฑด์ ๋๋ค.
์ด ๋น์ ์ ํ๊ณ๋ ์์ต๋๋ค. LLM inference๋ ๋ฌผ๋ฆฌ ์ ํ์ ๋ณต์ ํ๋ ์ผ์ด ์๋๋ผ, ๋งค ์์ฒญ๋ง๋ค token์ ํ๋์ฉ ๊ณ์ฐํด ๋ค์ token ํ๋ฅ ์ ๋ง๋๋ ๊ณผ์ ์ ๋๋ค. ๊ทธ๋์ ์ค์ ๋ณ๋ชฉ์ ๊ณต์ฅ ๋ฐ๋ฅ์ ๋ฌผ๋ฅ๋ณด๋ค GPU/AI chip, HBM, KV cache, memory bandwidth, interconnect, batching, software scheduler ๊ฐ์ ๊ณ์ฐ ์์คํ ์์์ ์๊น๋๋ค.
์ ํํ ์ ์
LLM inference๋ ํ์ต๋ ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ณ ์ ํ ๋ค, ์ ๋ ฅ prompt๋ฅผ ๋ฐ์ ๋ค์ token์ ์์ธกํ๊ณ ๊ทธ token์ ๋ค์ ์ ๋ ฅ์ ๋ถ์ฌ ๋ค์ token์ ์์ฑํ๋ ์คํ ๊ณผ์ ์ ๋๋ค. Serving์ ์ด ๊ณผ์ ์ ๋ง์ ์ฌ์ฉ์ ์์ฒญ์ ๋ํด ์์ ์ ์ผ๋ก ์ด์ํ๋ ์์คํ ์ ์ฒด๋ฅผ ๋ปํฉ๋๋ค.
์ค์ LLM serving์ ๋ณดํต ๋ ๋จ๊ณ๋ฅผ ๋๋ ๋ด ๋๋ค.
- Prefill: ์ฌ์ฉ์๊ฐ ๋ณด๋ธ prompt์ context๋ฅผ ํ ๋ฒ์ ์ฝ์ด ๋ชจ๋ธ ๋ด๋ถ ์ํ๋ฅผ ๋ง๋๋ ๋จ๊ณ์ ๋๋ค. ์ ๋ ฅ์ด ๊ธธ์๋ก ๋ง์ token์ ์ฒ๋ฆฌํด์ผ ํ๋ฏ๋ก ๊ณ์ฐ๋๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ปค์ง๋๋ค.
- Decode: ์ดํ ๋ต๋ณ token์ ํ๋์ฉ ์์ฑํ๋ ๋จ๊ณ์ ๋๋ค. ๊ฐ ์ token์ ์ด์ ์ ์์ฑ๋ token์ ์ฐธ๊ณ ํด์ผ ํ๋ฏ๋ก, ์ง์ฐ์๊ฐ๊ณผ KV cache ์ ๊ทผ์ด ์ค์ํด์ง๋๋ค.
์ฌ๊ธฐ์ KV cache๋ ์ด์ token๋ค์ key/value ํํ์ ์ ์ฅํด ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค. ๋งค token์ ์์ฑํ ๋ ๊ณผ๊ฑฐ context๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ๊ณ์ฐํ๋ฉด ๋๋ฌด ๋น์ธ๊ธฐ ๋๋ฌธ์, ์ด๋ฏธ ๊ณ์ฐํ attention ์ฌ๋ฃ๋ฅผ ์ ์ฅํ๊ณ ์ฌ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง context๊ฐ ๊ธธ๊ณ ๋์ ์์ฒญ์ด ๋ง์์ง์๋ก KV cache ์์ฒด๊ฐ ํฐ ๋ฉ๋ชจ๋ฆฌ ๋ถ๋ด์ด ๋ฉ๋๋ค.
์ ์ค์ํ๊ฐ
1. AI ๋น์ฉ์ ์ค์ฌ์ด ํ์ต์์ ์ฌ์ฉ๋์ผ๋ก ์ด๋ํ๋ค
๋ํ ๋ชจ๋ธ์ ํ ๋ฒ ํ์ตํ๋ ๋น์ฉ์ ์ฌ์ ํ ํฝ๋๋ค. ํ์ง๋ง ๋ชจ๋ธ์ด ์ ํ์ ๋ค์ด๊ฐ ๋งค์ผ ์๋ฐฑ๋ง ๋ฒ ํธ์ถ๋๋ฉด, ์ด๋น์ฉ์ inference ์ชฝ์์ ๊ณ์ ์์ ๋๋ค. ์ฌ์ฉ์๊ฐ ๋์๋ก ์ ๋ ฅ, ๋ฉ๋ชจ๋ฆฌ, chip ์, networking, ๋๊ฐ, scheduler ํจ์จ์ด ๋ชจ๋ ๋น์ฉ ๊ตฌ์กฐ์ ์ํฅ์ ์ค๋๋ค. ์ด ๋น์ฉ์ด ๋ฐ์ดํฐ์ผํฐยท์ ๋ ฅยท์ฅ๋น ํฌ์๋ก ๋ฒ์ง๋ ํ๋ฆ์ AI capex cycle๋ก ๋ฐ๋ก ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋์ AI ์ธํ๋ผ๋ฅผ ๋ณผ ๋๋ โ์ด๋ค ๋ชจ๋ธ์ ํ์ตํ๋๊ฐโ๋ง ๋ณด๋ฉด ๋ถ์กฑํฉ๋๋ค. ๊ทธ ๋ชจ๋ธ์ ์ค์ ์ ํ์์ ์ผ๋ง๋ ์ธ๊ณ ๋น ๋ฅด๊ฒ ์ ๊ณตํ ์ ์๋์ง๊ฐ ๋ณ๋์ ๊ฒฝ์ ์ถ์ด ๋ฉ๋๋ค.
2. ๋ณ๋ชฉ์ด FLOPS๋ง์ด ์๋๋ค
LLM serving์์๋ ์ฐ์ฐ ์ฑ๋ฅ๋ ์ค์ํ์ง๋ง, ๋ชจ๋ ๋ฌธ์ ๊ฐ FLOPS๋ก ํด๊ฒฐ๋์ง๋ ์์ต๋๋ค. ๊ธด context์ ๋ง์ ๋์ ์์ฒญ์์๋ memory bandwidth, HBM capacity, KV cache ๋ฐฐ์น, chip ๊ฐ interconnect ์ง์ฐ, request batching์ด ์ค์ ์๋์ ๋น์ฉ์ ํฌ๊ฒ ๋ฐ๊ฟ๋๋ค.
Etched๊ฐ ์ธํฐ๋ทฐ์์ rack-scale inference system๊ณผ cluster-scale memory๋ฅผ ๊ฐ์กฐํ ์ด์ ๋ ์ด ์ง์ ๊ณผ ์ฐ๊ฒฐ๋ฉ๋๋ค. ํ์ฌ์ ์ฃผ์ฅ์ด ๊ฒ์ฆ๋๋ค๋ ๋ป์ ์๋์ง๋ง, inference ๊ฒฝ์์ด ๋จ์ผ chip benchmark๋ฅผ ๋์ด rack ๋จ์ memory์ interconnect ์ค๊ณ๋ก ์ด๋ํ ์ ์๋ค๋ ์ ํธ๋ก ์ฝ์ ์ ์์ต๋๋ค.
3. ๋ชจ๋ธ ์ํคํ ์ฒ์ serving system์ ๋ค๋ฅธ ์ธต์ด๋ค
Transformer ์ํคํ ์ฒ๋ token ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๊ณ์ฐํ๋ ๋ชจ๋ธ ๋ด๋ถ ๊ตฌ์กฐ์ ๋๋ค. ๋ฐ๋ฉด LLM inference serving์ ๊ทธ ๋ชจ๋ธ์ ์ค์ ์์ฒญ ์ฒ๋ฆฌ ์์คํ ์ผ๋ก ์ด์ํ๋ ์ธ๋ถ ์ธํ๋ผ์ ๋๋ค.
๋์ ์ฐ๊ฒฐ๋์ด ์์ง๋ง ๊ฐ์ ๋ง์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด self-attention์ ๊ธด context์์ ๊ณ์ฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋ถ๋ด์ ํค์ธ ์ ์๊ณ , serving system์ ๊ทธ ๋ถ๋ด์ KV cache, batching, parallelism, memory hierarchy๋ก ๋ค๋ฃน๋๋ค. ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ์ดํดํด์ผ serving ๋ณ๋ชฉ์ ์ค๋ช ํ ์ ์์ง๋ง, ์ข์ ๋ชจ๋ธ ๊ตฌ์กฐ๊ฐ ์๋์ผ๋ก ์ผ serving์ ๋ณด์ฅํ์ง๋ ์์ต๋๋ค.
์ค์ ์์
Etched์ rack-scale inference ์ฃผ์ฅ
Etched์ rack-scale inference system ์ธํฐ๋ทฐ์์ ํ์ฌ๋ inference๋ฅผ prefill๊ณผ decode๋ก ๋๋๊ณ , ์ฌ๋ฌ chip์ด HBM/SRAM์ ๋ฎ์ ์ง์ฐ์ผ๋ก ํจ๊ป ์ฐ๋ cluster-scale memory๋ฅผ ๊ฐ์กฐํ์ต๋๋ค.
์ด ์ฃผ์ฅ์ ํ๊ฐํ ๋ ์ง๋ฌธ์ ๋จ์ํ โNVIDIA GPU๋ณด๋ค ๋น ๋ฅธ๊ฐ?โ๊ฐ ์๋๋๋ค. ๋ ์ข์ ์ง๋ฌธ์ ๋ค์์ ๊ฐ๊น์ต๋๋ค.
- ์ด๋ค model๊ณผ workload์์ latency๊ฐ ์ค์ด๋๋๊ฐ?
- prefill๊ณผ decode ์ค ์ด๋๊ฐ ๊ฐ์ ๋๋๊ฐ?
- KV cache๊ฐ ์ปค์ง๋ ์ํฉ์์ memory capacity์ bandwidth๊ฐ ์ถฉ๋ถํ๊ฐ?
- chip ๊ฐ interconnect ์ง์ฐ์ด token ์์ฑ ์๋๋ฅผ ์ผ๋ง๋ ๋ฐ๊พธ๋๊ฐ?
- software stack๊ณผ ๊ธฐ์กด serving framework์ ์ด๋ป๊ฒ ๋ถ๋๊ฐ?
- ์ ๋ ฅ, ๋๊ฐ, rack density, ๊ณ ๊ฐ ์ ํ ๋น์ฉ๊น์ง ํฌํจํ serving economics๊ฐ ์ข์์ง๋๊ฐ?
Transformer ๊ณ์ด ๋ชจ๋ธ์ ๊ธด context
Attention Is All You Need๋ self-attention์ด sequence ์์ token ๊ด๊ณ๋ฅผ ์ง์ ๊ณ์ฐํ๊ฒ ๋ง๋ค์์ต๋๋ค. ์ด ๊ตฌ์กฐ๋ ๋ณ๋ ฌํ์ ๊ธด ์์กด์ฑ ์ฒ๋ฆฌ์ ๊ฐํ์ง๋ง, sequence ๊ธธ์ด๊ฐ ๊ธธ์ด์ง์๋ก ๋ชจ๋ token ์์ ๋น๊ตํ๋ ๋น์ฉ์ด ์ปค์ง๋๋ค.
ํ๋ LLM serving์์ ๊ธด context๋ฅผ ๋ค๋ฃฐ ๋ memory์ cache๊ฐ ์ค์ํด์ง๋ ์ด์ ๋ ์ฌ๊ธฐ์ ์ถ๋ฐํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๊ธด ๋ฌธ์, ์ฝ๋๋ฒ ์ด์ค, ๋ํ ๊ธฐ๋ก์ ๋ฃ์์๋ก prefill ๊ณ์ฐ๊ณผ KV cache๊ฐ ์ปค์ง๊ณ , ์ฌ๋ฌ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํ๋ scheduler์ ์ ํ์ด ๋น์ฉ๊ณผ ์๋ต ์๋๋ฅผ ๋ฐ๊ฟ๋๋ค.
ํท๊ฐ๋ฆฌ์ง ๋ง์์ผ ํ ์
- Inference๋ ํต๊ณํ์ ์ถ๋ก (inference)๊ณผ ๊ฐ์ ๋จ์ด์ง๋ง, ์ฌ๊ธฐ์๋ ๋ชจ๋ธ ์คํ์ ๋ปํฉ๋๋ค. Wansook.World์ AI ์ธํ๋ผ ๋ฌธ๋งฅ์์๋ ํ์ต๋ LLM์ด prompt๋ฅผ ๋ฐ์ token์ ์์ฑํ๋ runtime ๊ณผ์ ์ ๊ฐ๋ฆฌํค๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- Inference serving์ ๋ชจ๋ธ ํ์ต(training)์ด ์๋๋๋ค. Training์ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๊พธ๋ ๊ณผ์ ์ด๊ณ , inference๋ ํ์ต๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํด ๋ต์ ์์ฑํ๋ ๊ณผ์ ์ ๋๋ค.
- ๋น ๋ฅธ chip ํ๋๊ฐ ๊ณง ์ข์ serving system์ ์๋๋๋ค. Memory, networking, software scheduler, reliability, power/cooling, ๊ณ ๊ฐ์ ๊ธฐ์กด stack๊ณผ์ ํธํ์ฑ์ด ํจ๊ป ๋ง์์ผ ํฉ๋๋ค.
- Rack-scale system์ด๋ผ๋ ๋ง์ ๊ฒ์ฆ ๊ฒฐ๊ณผ๊ฐ ์๋๋ผ ์ค๊ณ ์ฃผ์ฅ์ผ ์ ์์ต๋๋ค. ํ์ฌ ์ธํฐ๋ทฐ๋ ๋ฐํ๋ ์ค์ํ ์ ํธ์ง๋ง, ์ฑ๋ฅยท์ ๋ ฅยท๋น์ฉ ๋น๊ต๋ ๋ ๋ฆฝ benchmark์ ๊ณ ๊ฐ ์ฌ๋ก๊ฐ ํ์ํฉ๋๋ค.
- KV cache๋ ๋ฌด๋ฃ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋๋ค. ์ฌ๊ณ์ฐ์ ์ค์ฌ์ฃผ์ง๋ง, ๊ธด context์ ๋ง์ ๋์ ์์ฒญ์์๋ cache ์์ฒด๊ฐ HBM์ ์ก์๋จน๋ ๋ณ๋ชฉ์ด ๋ฉ๋๋ค.