LLM Inference Engine Analysis
LLM ์ถ๋ก ์์ง ์ฌ์ธต ๋ถ์
vLLM ยท TensorRT-LLM ยท SGLang ยท TGI ยท llama.cpp โ ์ํคํ ์ฒ ๋น๊ต์ ์ ํ ๊ธฐ์ค
LLM ์ถ๋ก ์์ง์ ํ์ต๋ ๋ชจ๋ธ์ ์ค์ ์๋น์ค๋ก ์ฐ๊ฒฐํ๋ ํต์ฌ ์ธํ๋ผ์ ๋๋ค. ๋์ผํ ๋ชจ๋ธ์ด๋ผ๋ ์์ง์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋, ์ง์ฐ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋ฉฐ, ์์ง ์ ํ์ ๊ณง ์๋น์ค ํ์ง๊ณผ ์ด์ ๋น์ฉ์ ๊ฒฐ์ ํฉ๋๋ค. ๋ณธ ๋ฌธ์๋ ์ฃผ์ ์คํ์์ค ์ถ๋ก ์์ง๋ค์ ์ํคํ ์ฒ, ํต์ฌ ์ต์ ํ ๊ธฐ๋ฒ, ์ด์ ๊ด์ ์ ํธ๋ ์ด๋์คํ๋ฅผ ๋ถ์ํฉ๋๋ค.
2026๋ ๊ธฐ์ค์ผ๋ก vLLM๊ณผ SGLang์ด ๊ฐ์ฅ ํ๋ฐํ ์ปค๋ฎค๋ํฐ๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ, TensorRT-LLM์ NVIDIA ์ํ๊ณ์์ ์ต๊ณ ์์ค์ ๋จ์ผ GPU ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. TGI๋ Hugging Face ์ํ๊ณ์์ ๊ธด๋ฐํ ํตํฉ์ผ๋ก ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ ๊ฐ์ ์ด ์์ผ๋ ํ์ฌ maintenance ๋ชจ๋๋ก ์ ํ๋์์ต๋๋ค. llama.cpp๋ CPU/์ฃ์ง ์ถ๋ก ์ ํนํ๋์ด ์์ด ๋ฆฌ์์ค ์ ์ฝ ํ๊ฒฝ์์ ๋ ์์ ์ธ ์์ญ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
ํต์ฌ ๊ฐ๋
- PagedAttention: KV ์บ์๋ฅผ ๊ณ ์ ํฌ๊ธฐ ๋ธ๋ก์ผ๋ก ๋๋ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ์ค์ด๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ผ๋ก, vLLM์ด ์ฒ์ ๋์ ํ๊ณ ์ดํ ๋๋ถ๋ถ์ ์์ง์ด ์ฑํํ์ต๋๋ค.
- Continuous Batching: ํ ํฐ ์คํ ๋ง๋ค ์๋ฃ๋ ์์ฒญ์ ์ ๊ฑฐํ๊ณ ์ ์์ฒญ์ ์ฑ์ ๋ฃ๋ ๋์ ๋ฐฐ์น ๊ธฐ๋ฒ์ผ๋ก, GPU utilization์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
- Tensor Parallelism: ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ์ฌ๋ฌ GPU์ ๋ถ์ฐํ์ฌ ๋จ์ผ ์์ฒญ์ ์ง์ฐ์๊ฐ์ ์ค์ด๋ ๊ธฐ๋ฒ์ ๋๋ค.
- Speculative Decoding: ์์ ๋ชจ๋ธ(draft)์ด ๋ฏธ๋ฆฌ ํ ํฐ์ ์์ธกํ๊ณ ํฐ ๋ชจ๋ธ(target)์ด ๊ฒ์ฆํ์ฌ throughput์ ๋์ด๋ ๊ธฐ๋ฒ์ ๋๋ค.
- Prefix Caching: ๊ณตํต ํ๋กฌํํธ์ KV ์บ์๋ฅผ ์ฌ์ฌ์ฉํ์ฌ ๋ฐ๋ณต์ ์ธ prefill ๋น์ฉ์ ์ค์ด๋ ๊ธฐ๋ฒ์ ๋๋ค.
- Quantization: ๊ฐ์ค์น๋ ํ์ฑํ๋ฅผ ์ ์ ๋ฐ ํ์ ์ผ๋ก ๋ณํํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์ฐ๋์ ์ค์ด๋ ๊ธฐ๋ฒ์ผ๋ก, FP8/INT8/INT4/GPTQ/AWQ ๋ฑ ๋ค์ํ ๋ฐฉ์์ด ์์ต๋๋ค.
1. ์์ง ์ํคํ ์ฒ ๊ฐ์
๊ฐ ์ถ๋ก ์์ง์ Python ํ๋ก ํธ์๋, C++/CUDA ๋ฐํ์, ์ปค๋ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์์ง์ ๋ฐ๋ผ PyTorch ๊ธฐ๋ฐ(vLLM, SGLang)์ธ์ง TensorRT ๊ธฐ๋ฐ(TensorRT-LLM)์ธ์ง์ ๋ฐ๋ผ ๋น๋ ์๊ฐ, ๋ชจ๋ธ ํธํ์ฑ, ์ปค์คํฐ๋ง์ด์ง ์ฉ์ด์ฑ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค.
vLLM์ PyTorch ์์ ๊ตฌ์ถ๋์ด Hugging Face ๋ชจ๋ธ๊ณผ์ ํธํ์ฑ์ด ๋ฐ์ด๋๋ฉฐ, PagedAttention๊ณผ continuous batching์ผ๋ก ๋์ throughput์ ๋ฌ์ฑํฉ๋๋ค. SGLang์ RadixAttention์ผ๋ก prefix caching์ ๊ฐ์ํ๊ณ , zero-overhead CPU ์ค์ผ์ค๋ฌ๋ก ๋ฐํ์ ์ค๋ฒํค๋๋ฅผ ์ต์ํํฉ๋๋ค. TensorRT-LLM์ TensorRT ์์ง ๋น๋๋ฅผ ํตํด NVIDIA GPU์์ ์ต์ ํ๋ ์ปค๋์ ์์ฑํ๋ฏ๋ก ๋จ์ผ ๋ ธ๋ ์ฑ๋ฅ์ ๊ฐ์ฅ ๋ฐ์ด๋ฉ๋๋ค.
๊ทธ๋ฆผ 1. ์ฃผ์ LLM ์ถ๋ก ์์ง์ ์ ์ฒด ์ํคํ ์ฒ ๋น๊ต
2. ํต์ฌ ์ต์ ํ ๊ธฐ๋ฒ ๋น๊ต
๋ชจ๋ ์ถ๋ก ์์ง์ด ๊ณตํต์ ์ผ๋ก ์ถ๊ตฌํ๋ ๊ฒ์ ๋ค์ ์ธ ๊ฐ์ง์ ๋๋ค: (1) GPU memory๋ฅผ ์ต๋ํ ํ์ฉํ์ฌ ๋ ๋ง์ ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , (2) ๊ฐ ์์ฒญ์ ์ฒซ ํ ํฐ ์ง์ฐ์๊ฐ(TTFT)๊ณผ ํ ํฐ ๊ฐ ์ง์ฐ์๊ฐ(ITL)์ ์ค์ด๊ณ , (3) ๋ค์ํ ์์ํ์ ๋ถ์ฐ ์ ๋ต์ ์ง์ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์ง๋ง๋ค ์ด ์ธ ๊ฐ์ง๋ฅผ ํธ๋ ๋ฐฉ์์ด ๋ค๋ฆ ๋๋ค.
vLLM์ PagedAttention์ผ๋ก KV ์บ์์ ์กฐ๊ฐํ๋ฅผ ํด๊ฒฐํ๊ณ , chunked prefill๋ก ๊ธด ํ๋กฌํํธ๊ฐ decode์ ๋ฏธ์น๋ ์ํฅ์ ์ค์ ๋๋ค. SGLang์ RadixAttention์ผ๋ก ํ๋กฌํํธ ๊ฐ ๊ณต์ ์ ๋์ฌ๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ์ฌ KV ์บ์๋ฅผ ์ฌ์ฌ์ฉํฉ๋๋ค. TensorRT-LLM์ ๋ชจ๋ธ์ TensorRT ์์ง์ผ๋ก ๋น๋ํ์ฌ ์ปค๋ ์์ค์ ์ต์ ํ๋ฅผ ์ํํ๊ณ , Inflight Batching์ผ๋ก continuous batching์ ๊ตฌํํฉ๋๋ค.
๊ทธ๋ฆผ 2. PagedAttention, RadixAttention, TensorRT ์ต์ ํ์ ๋์ ์๋ฆฌ
PagedAttention๊ณผ RadixAttention์ ์ฐจ์ด
PagedAttention์ KV ์บ์๋ฅผ ๊ณ ์ ํฌ๊ธฐ ๋ธ๋ก(์ผ๋ฐ์ ์ผ๋ก 16๊ฐ ํ ํฐ ๋จ์)์ผ๋ก ๊ด๋ฆฌํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋จํธํ๋ฅผ ์ค์ ๋๋ค. ๊ฐ ์ํ์ค๋ ์ฌ๋ฌ ๋ธ๋ก์ ๊ฑธ์ณ KV ์บ์๋ฅผ ํ ๋น๋ฐ์ผ๋ฉฐ, ํ ํฐ์ด ์ถ๊ฐ๋ ๋๋ง๋ค ์ ๋ธ๋ก์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด ๋ฐฉ์์ ์ผ๋ฐ์ ์ธ serving์์ ๋ฐ์ด๋ ํจ์จ์ ๋ณด์ ๋๋ค.
RadixAttention์ ํ๋กฌํํธ์ ์ ๋์ฌ trie๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์์ฒญ ๊ฐ์ ๊ณตํต๋ KV ์บ์๋ฅผ ๊ณต์ ํฉ๋๋ค. ๋์ผํ๊ฑฐ๋ ์ ์ฌํ ์์คํ ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋ฌ ์ธ์ ์์ prefill ๋น์ฉ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. SGLang์ ์ด ๊ธฐ์ ์ ํตํด LLM serving์์ ์ต๋ 5x๊น์ง ์ถ๋ก ์๋๋ฅผ ํฅ์์์ผฐ๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค.
3. ๋ถ์ฐ ์ถ๋ก ๊ณผ ๋ณ๋ ฌํ
๋๊ท๋ชจ ๋ชจ๋ธ(70B ์ด์)์ ๋จ์ผ GPU์ ์์ ํ ๋ก๋ํ ์ ์์ผ๋ฏ๋ก, ๋ชจ๋ธ ๋ณ๋ ฌํ๊ฐ ํ์์ ๋๋ค. ์์ง์ ๋ฐ๋ผ ์ง์ํ๋ ๋ณ๋ ฌํ ์ ๋ต๊ณผ ๊ตฌํ ๋ฐฉ์์ด ๋ค๋ฆ ๋๋ค.
Tensor Parallelism(TP)์ ๋ชจ๋ธ์ ๊ฐ์ค์น ํ๋ ฌ์ ์ฌ๋ฌ GPU์ ์ธ๋ก๋ก ๋๋๋๋ค. ๊ฐ GPU๊ฐ ์ ์ฒด ๋ ์ด์ด์ ์ผ๋ถ๋ฅผ ๋ด๋นํ๋, forward pass๋ง๋ค all-reduce ํต์ ์ ์ํํฉ๋๋ค. Pipeline Parallelism(PP)์ ๋ ์ด์ด๋ฅผ ์ฌ๋ฌ ์คํ ์ด์ง๋ก ๋๋์ด ๊ฐ GPU์ ํ ๋นํฉ๋๋ค. TP๋ ํต์ ๋น๋๊ฐ ๋์ง๋ง ์ง์ฐ์๊ฐ์ด ๋ฎ๊ณ , PP๋ ํต์ ์ด ์ ์ง๋ง ํ์ดํ๋ผ์ธ ๋ฒ๋ธ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
Expert Parallelism(EP)์ MoE ๋ชจ๋ธ์์ ๊ฐ expert๋ฅผ ๋ค๋ฅธ GPU์ ๋ถ์ฐํ๋ ์ ๋ต์ ๋๋ค. DeepSeek-V3์ฒ๋ผ ์๋ฐฑ ๊ฐ์ expert๋ฅผ ๊ฐ์ง ๋ชจ๋ธ์์๋ EP๊ฐ ํ์์ ์ด๋ฉฐ, vLLM๊ณผ SGLang ๋ชจ๋ ์ด๋ฅผ ์ง์ํฉ๋๋ค.
๊ทธ๋ฆผ 3. Tensor Parallelism, Pipeline Parallelism, Expert Parallelism ๋น๊ต
4. ์ถ๋ก ์์ง๋ณ ์์ธ ๋ถ์
vLLM
vLLM์ UC Berkeley์์ ๊ฐ๋ฐ๋ ์คํ์์ค LLM ์ถ๋ก ์์ง์ผ๋ก, 85k ์ด์์ GitHub ์คํ๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค. PagedAttention์ ์ฒ์ ๋์ ํ์ฌ LLM serving์ ํ์ค์ ๋ง๋ค์์ผ๋ฉฐ, ํ์ฌ 200๊ฐ ์ด์์ ๋ชจ๋ธ ์ํคํ ์ฒ๋ฅผ ์ง์ํฉ๋๋ค.
ํต์ฌ ํน์ง์ผ๋ก๋ PagedAttention ๊ธฐ๋ฐ KV ๊ด๋ฆฌ, continuous batching, chunked prefill, prefix caching, ๋ค์ํ ์์ํ(FP8/INT8/INT4/GPTQ/AWQ/GGUF) ์ง์์ด ์์ต๋๋ค. ๋ํ speculative decoding(n-gram, suffix, EAGLE, DFlash), disaggregated prefill/decode, ๋ฉํฐ LoRA ์ง์ ๋ฑ ๊ณ ๊ธ ๊ธฐ๋ฅ๋ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
ํ๋์จ์ด ๊ด์ ์์๋ NVIDIA GPU๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ง์ํ๋ฉฐ, AMD GPU, x86/ARM CPU, Google TPU, Intel Gaudi ๋ฑ ๋ค์ํ ํ๋ซํผ์ ์ง์ํฉ๋๋ค. OpenAI ํธํ API ์๋ฒ๋ฅผ ์ ๊ณตํ์ฌ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์์์ ๋ง์ด๊ทธ๋ ์ด์ ์ด ์ฉ์ดํฉ๋๋ค.
TensorRT-LLM
TensorRT-LLM์ NVIDIA๊ฐ ๊ฐ๋ฐํ LLM ์ถ๋ก ์ต์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, TensorRT ์์ง ๋น๋๋ฅผ ํตํด NVIDIA GPU์์ ์ต๊ณ ์์ค์ ์ฑ๋ฅ์ ๋ฌ์ฑํฉ๋๋ค. 14k ์ด์์ GitHub ์คํ๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ, v1.x ๋ฒ์ ๋ถํฐ๋ ์์ ํ ์คํ์์ค๋ก ์ ํ๋์์ต๋๋ค.
ํต์ฌ ํน์ง์ Python API๋ฅผ ํตํ ๋ชจ๋ธ ์ ์, TensorRT ์์ง ๋น๋, ์ปค์คํ CUDA ์ปค๋, PyTorch ๊ธฐ๋ฐ ๋ฐํ์์ ๋๋ค. DeepSeek-R1/V3, Llama 4 ๊ฐ์ ์ต์ ๋ชจ๋ธ์ ๋ํ Day-0 ์ง์์ ์ ๊ณตํ๋ฉฐ, Blackwell GPU์์ 40,000+ tokens/s ์ด์์ ์ฑ๋ฅ์ ๋ฌ์ฑํฉ๋๋ค.
๋จ์ ์ ๋น๋ ์๊ฐ์ด ๊ธธ๊ณ , ๋ชจ๋ธ ๋ณ๊ฒฝ ์ ์์ง์ ๋ค์ ๋น๋ํด์ผ ํ๋ฉฐ, NVIDIA GPU ์ธ์ ํ๋์จ์ด๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. Triton Inference Server์์ ํตํฉ์ด ์ ๋์ด ์์ด ํ๋ก๋์ ๋ฐฐํฌ์ ๊ฐ์ ์ด ์์ต๋๋ค.
SGLang
SGLang์ LMSYS์์ ๊ฐ๋ฐํ ๊ณ ์ฑ๋ฅ LLM ์๋น ํ๋ ์์ํฌ๋ก, 29.9k ์ด์์ GitHub ์คํ๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค. RadixAttention๊ณผ zero-overhead CPU ์ค์ผ์ค๋ฌ๋ก ๋น ๋ฅธ ์ถ๋ก ์ ์ ๊ณตํ๋ฉฐ, 400,000๊ฐ ์ด์์ GPU์์ ํ๋ก๋์ ์ฌ์ฉ์ด ๋ณด๊ณ ๋์์ต๋๋ค.
ํต์ฌ ํน์ง์ RadixAttention ๊ธฐ๋ฐ prefix caching, zero-overhead ๋ฐฐ์น ์ค์ผ์ค๋ฌ, prefill-decode ๋ถ๋ฆฌ(disaggregation), ๋ค์ํ ์์ํ(FP4/FP8/INT4/AWQ/GPTQ) ์ง์์ ๋๋ค. ๋ฅ์ํฌ ์ต์ ํ๋ฅผ ํฌํจํ ์ต์ ๋ชจ๋ธ์ ๋ํ day-0 ์ง์์ด ๊ฐ์ ์ด๋ฉฐ, RL/ํฌ์คํธํธ๋ ์ด๋ ๋ฐฑ์๋๋ก๋ ์ฌ์ฉ๋ฉ๋๋ค.
ํ๋์จ์ด ๊ด์ ์์๋ NVIDIA GPU(GB200/B300/H100/A100), AMD GPU(MI355/MI300), Intel CPU, Google TPU, Ascend NPU๋ฅผ ์ง์ํฉ๋๋ค. OpenAI API ํธํ์ฑ์ ์ ๊ณตํ๋ฉฐ, ํ๋ก ํธ์๋ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ(SGLang DSL)๋ก ๋ณต์กํ LLM ํ์ดํ๋ผ์ธ์ ํํํ ์ ์์ต๋๋ค.
TGI (Text Generation Inference)
TGI๋ Hugging Face๊ฐ ๊ฐ๋ฐํ LLM ์๋น ํดํท์ผ๋ก, Hugging Face ์ํ๊ณ์์ ๊ธด๋ฐํ ํตํฉ์ด ๊ฐ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ 2026๋ ๊ธฐ์ค์ผ๋ก maintenance ๋ชจ๋์ ์ง์ ํ์ฌ, ๋ฒ๊ทธ ์์ ๊ณผ ๋ฌธ์ ๊ฐ์ ์ ๊ตญํ๋์ด ์์ต๋๋ค.
ํต์ฌ ํน์ง์ ๊ฐ๋จํ ๋ฐ์ฒ, Tensor Parallelism, continuous batching, Flash Attention/Paged Attention ํตํฉ, bitsandbytes/GPT-Q ์์ํ, Server-Sent Events ์คํธ๋ฆฌ๋ฐ์ ๋๋ค. Hugging Chat, OpenAssistant ๋ฑ ์ฌ๋ฌ ํ๋ก์ ํธ์์ ํ๋ก๋์ ์ฌ์ฉ๋์์ต๋๋ค.
maintenance ๋ชจ๋ ์ ํ์ ์ฃผ์ ์์ธ์ vLLM, SGLang ๊ฐ์ ์์ง๋ค์ด transformers ๋ชจ๋ธ ์ํคํ ์ฒ ๊ธฐ๋ฐ ์ต์ ํ๋ฅผ ์ฑํํ๋ฉด์, TGI์ ๋ ์์ ์ธ ์ต์ ํ ๋ฐฉ์์ด ๊ฒฝ์๋ ฅ์ ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. Hugging Face ์์ฒด์์๋ vLLM๊ณผ SGLang์ ์ถ์ฒํ๊ณ ์์ต๋๋ค.
llama.cpp
llama.cpp๋ CPU/์ฃ์ง ๋๋ฐ์ด์ค์์์ LLM ์ถ๋ก ์ ํนํ๋ ์์ง์ผ๋ก, GGUF ํ์์ ์์ํ๋ ๋ชจ๋ธ์ ์ง์ํฉ๋๋ค. GPU๊ฐ ์๋ ํ๊ฒฝ์ด๋ ์ ํ๋ ๋ฆฌ์์ค์์๋ LLM์ ์คํํ ์ ์๊ฒ ํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
ํต์ฌ ํน์ง์ ์์ C/C++ ๊ตฌํ, GGUF ๋ชจ๋ธ ํ์, ๋ค์ํ ์์ํ(Q4_0, Q4_K_M, Q5_K_M, Q8_0 ๋ฑ), Metal/CUDA/Vulkan ๋ฐฑ์๋ ์ง์, extremely low memory footprint์ ๋๋ค. mlx ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด Apple Silicon์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋จ์ ์ ๋๊ท๋ชจ ๋ชจ๋ธ์ serving throughput์ด ์ ๋ฌธ ์์ง์ ๋นํด ๋ฎ๊ณ , distributed inference ์ง์์ด ์ ํ์ ์ด๋ฉฐ, ์ต์ ๋ชจ๋ธ ์ํคํ ์ฒ ์ง์์ด ๋๋ฆฌ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ํ๋กํ ํ์ดํ, ๋ก์ปฌ ๊ฐ๋ฐ, ์ฃ์ง ๋ฐฐํฌ์์๋ ์ฌ์ ํ ๊ฐ๋ ฅํ ์ ํ์ง์ ๋๋ค.
๋น๊ต/๋ถ์
| ํญ๋ชฉ | vLLM | TensorRT-LLM | SGLang | TGI | llama.cpp |
|---|---|---|---|---|---|
| GitHub Stars | 85k+ | 14k+ | 29.9k+ | 10k+ | 80k+ |
| ๋น๋ ๋ฐฉ์ | pip ์ค์น | ์์ง ๋น๋ ํ์ | pip ์ค์น | pip ์ค์น | ์์ค ๋น๋ |
| KV ๊ด๋ฆฌ | PagedAttention | Paged KV Cache | RadixAttention | Paged Attention | GGUF ๊ธฐ๋ฐ |
| Continuous Batching | ์ง์ | ์ง์ (Inflight) | ์ง์ | ์ง์ | ์ ํ์ |
| TP/PP/EP | TP, PP, EP | TP, PP, EP | TP, PP, EP | TP | ๋ฏธ์ง์ |
| ์์ํ | FP8/INT8/INT4/GPTQ/AWQ/GGUF | FP8/FP4/INT8/INT4 | FP4/FP8/INT4/AWQ/GPTQ | bitsandbytes/GPTQ | GGUF ๋ค์ํ ๋นํธ |
| ํ๋์จ์ด | NVIDIA/AMD/CPU/TPU/Gaudi | NVIDIA ์ ์ฉ | NVIDIA/AMD/CPU/TPU/NPU | NVIDIA | CPU/Metal/CUDA/Vulkan |
| OpenAI API ํธํ | ์ง์ | ์ง์ (Triton ํตํฉ) | ์ง์ | ์ง์ | ์ ํ์ |
| ๋ชจ๋ธ ํธํ์ฑ | 200+ ๋ชจ๋ธ | ๊ด๋ฒ์ | ๊ด๋ฒ์ | Hugging Face ๋ชจ๋ธ | GGUF ๋ณํ ํ์ |
| ๋ฐํ์ ์ธ์ด | Python + C++/CUDA | Python + C++/CUDA | Python + Rust/CUDA | Rust + Python | C/C++ |
| ํ์ฌ ์ํ | ํ๋ฐํ ๊ฐ๋ฐ | ํ๋ฐํ ๊ฐ๋ฐ | ํ๋ฐํ ๊ฐ๋ฐ | Maintenance ๋ชจ๋ | ํ๋ฐํ ๊ฐ๋ฐ |
๊ทธ๋ฆผ 4. ์ฃผ์ ์ถ๋ก ์์ง์ ํน์ง๋ณ ๋น๊ต ๋งคํธ๋ฆญ์ค
5. ์์ง ์ ํ ๊ธฐ์ค
์์ง ์ ํ์ ๋ค์๊ณผ ๊ฐ์ ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค:
๋ชจ๋ธ ๊ท๋ชจ์ ํ๋์จ์ด: 70B ์ด์์ ๋๊ท๋ชจ ๋ชจ๋ธ์ TP/PP๊ฐ ํ์์ ์ด๋ฏ๋ก vLLM, TensorRT-LLM, SGLang์ด ์ ํฉํฉ๋๋ค. 7B-13B ์คํ ๋ชจ๋ธ์ ์ด๋ค ์์ง์ด๋ ๋จ์ผ GPU์์ ๋์ํฉ๋๋ค. CPU-only ํ๊ฒฝ์์๋ llama.cpp๊ฐ ์ ์ผํ ์ค์ฉ์ ์ ํ์ ๋๋ค.
์ฑ๋ฅ ์ฐ์ ์์: ์ต๊ณ ์ ๋จ์ผ GPU ์ฑ๋ฅ์ด ํ์ํ๋ฉด TensorRT-LLM์ด ๊ฐ์ฅ ์ ๋ฆฌํฉ๋๋ค. ๋์ throughput์ด ํ์ํ๋ฉด vLLM์ด๋ SGLang์ด ์ข์ ์ ํ์ ๋๋ค. ๋ฎ์ latency๊ฐ ์ค์ํ๋ฉด SGLang์ zero-overhead ์ค์ผ์ค๋ฌ๊ฐ ๋์์ด ๋ฉ๋๋ค.
์ด์ ํธ์์ฑ: ๋น ๋ฅธ ํ๋กํ ํ์ดํ๊ณผ ์ฌ์ด ๋ฐฐํฌ๊ฐ ์ค์ํ๋ฉด vLLM์ด๋ SGLang์ด pip๋ก ์ค์น ๊ฐ๋ฅํ๊ณ Hugging Face ๋ชจ๋ธ๊ณผ ์ฆ์ ํธํ๋ฉ๋๋ค. ๋ฐ๋๋ก ๋ชจ๋ธ ์ข ๋ฅ๋ ์ ๋๋ผ๋ ๋น๋๋ ์์ง ์ด๋ฏธ์ง๋ก ์์ธก ๊ฐ๋ฅํ ์ฑ๋ฅ์ ์ป๊ณ ์ถ๋ค๋ฉด TensorRT-LLM + Triton ์กฐํฉ์ด ํ๋ก๋์ ์ ์ ํฉํฉ๋๋ค.
์ปค๋ฎค๋ํฐ์ ์ํ๊ณ: vLLM๊ณผ SGLang์ด ๊ฐ์ฅ ํ๋ฐํ ์ปค๋ฎค๋ํฐ๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ, ๋น ๋ฅธ ๋ชจ๋ธ ์ง์๊ณผ ๋ฒ๊ทธ ์์ ์ด ์ด๋ฃจ์ด์ง๋๋ค. TensorRT-LLM์ NVIDIA์ ๊ณต์ ์ง์์ ๋ฐ์ต๋๋ค.
6. ์ฅ๋จ์
์ฅ์
ํ๋ LLM ์ถ๋ก ์์ง๋ค์ ๋ชจ๋ continuous batching, PagedAttention ๊ณ์ด์ KV ๊ด๋ฆฌ, ๋ค์ํ ์์ํ๋ฅผ ์ง์ํ์ฌ, ๋ช ๋ ์ ์ ๋นํด ๋์ผํ ํ๋์จ์ด์์ ํจ์ฌ ๋ ๋์ throughput๊ณผ ๋ฎ์ latency๋ฅผ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ์คํ์์ค ์ํ๊ณ๊ฐ ์ฑ์ํ์ฌ ํ๋ก๋์ ์์ค์ serving์ ๋ผ์ด์ ์ค ๋น์ฉ ์์ด ๊ตฌ์ถํ ์ ์์ต๋๋ค.
๋ถ์ฐ ์ถ๋ก (TP/PP/EP)์ด ๋ชจ๋ ์ฃผ์ ์์ง์์ ์ง์๋๋ฏ๋ก, ์๋ฐฑ B ํ๋ผ๋ฏธํฐ ์ด์์ ๋ชจ๋ธ๋ ์ฌ๋ฌ GPU์ ๊ฑธ์ณ ํจ์จ์ ์ผ๋ก ๋ฐฐํฌํ ์ ์์ต๋๋ค. OpenAI ํธํ API๋ฅผ ์ ๊ณตํ๋ ์์ง์ด ๋ง์ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์์์ ์ ํ ๋น์ฉ์ด ๋ฎ์ต๋๋ค.
๋จ์
์์ง ๊ฐ ์ ํ์ด ์ ์ ์ด๋ ค์์ง๊ณ ์์ต๋๋ค. vLLM๊ณผ SGLang์ ๊ธฐ๋ฅ ์ฐจ์ด๊ฐ ์ค์ด๋ค๊ณ ์์ผ๋ฉฐ, TensorRT-LLM์ ์ฑ๋ฅ์ ๋ฐ์ด๋์ง๋ง ๋น๋ ์๊ฐ๊ณผ ์ ์ฐ์ฑ์์ trade-off๊ฐ ์์ต๋๋ค. TGI๋ maintenance ๋ชจ๋๋ก ์ ํ๋์ด ์ ํ๋ก์ ํธ์์์ ์ฌ์ฉ์ด ์ ํ๋ฉ๋๋ค.
๊ฐ ์์ง์ ์ต์ ํ๊ฐ ํน์ ํ๋์จ์ด(NVIDIA)์ ์์กดํ๋ ๊ฒฝํฅ์ด ์์ด, AMD๋ ๋ค๋ฅธ ๊ฐ์๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ง์ ์์ค์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ๋ํ ์ต์ ๋ชจ๋ธ์ ๋ํ ์ง์ ์๋๊ฐ ์์ง๋ง๋ค ๋ค๋ฅด๋ฏ๋ก, ํน์ ๋ชจ๋ธ์ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํด์ผ ํ๋ ๊ฒฝ์ฐ ์์ง ์ ํ์ด ์ค์ํฉ๋๋ค.
๊ด๋ จ ๊ธฐ์
| ์๋ฃ | ๋งํฌ | ์ฐ๊ฒฐ์ |
|---|---|---|
| Continuous Batching Analysis | llm_0065_continuous_batching_analysis.html | ํ ํฐ ์คํ ๋จ์ ๋์ ๋ฐฐ์น ์ค์ผ์ค๋ง |
| PagedAttention Analysis | llm_0010_pagedattention_analysis.html | KV ์บ์ ํ์ด์ง ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ |
| Disaggregated LLM Serving Analysis | llm_0080_disaggregated_llm_serving_analysis.html | prefill/decode ๋ถ๋ฆฌ ์๋น |
| Prefix Caching Analysis | llm_0045_prefix_caching_analysis.html | ์ ๋์ฌ ๊ธฐ๋ฐ KV ์บ์ ์ฌ์ฌ์ฉ |
| Speculative Decoding Analysis | llm_0070_speculative_decoding_analysis.html | draft-verify ์ถ๋ก ๊ฐ์ |
| Quantization Analysis | llm_0090_quantization.html | ์ ์ ๋ฐ ์์ํ ๊ธฐ๋ฒ |
| MoE Analysis | llm_0005_moe_analysis.html | Expert Parallelism์ MoE ์๋น |
| vLLM | https://github.com/vllm-project/vllm | PagedAttention ๊ธฐ๋ฐ ๋ฒ์ฉ ์ถ๋ก ์์ง |
| TensorRT-LLM | https://nvidia.github.io/TensorRT-LLM/ | NVIDIA ์ต์ ํ ์ถ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
| SGLang | https://github.com/sgl-project/sglang | RadixAttention ๊ธฐ๋ฐ ๊ณ ์ฑ๋ฅ ์๋น |
| TGI | https://huggingface.co/docs/text-generation-inference | Hugging Face ์๋น ํดํท |
| llama.cpp | https://github.com/ggerganov/llama.cpp | CPU/์ฃ์ง ์ถ๋ก ์์ง |
7. ํต์ฌ ์ ๋ฆฌ
LLM ์ถ๋ก ์์ง์ continuous batching๊ณผ PagedAttention์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ, ๋์ผํ ํ๋์จ์ด์์ ์ด์ ์ธ๋ ๋๋น ์๋ฐฐ ๋์ throughput์ ๋ฌ์ฑํ๊ฒ ๋์์ต๋๋ค. vLLM์ ๋ฒ์ฉ์ฑ๊ณผ ์ปค๋ฎค๋ํฐ ๊ท๋ชจ์์, TensorRT-LLM์ ๋จ์ผ GPU ์ฑ๋ฅ์์, SGLang์ ๋ฐํ์ ํจ์จ์ฑ์์ ๊ฐ๊ฐ ๊ฐ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์์ง ์ ํ์ ๋ชจ๋ธ ๊ท๋ชจ, ํ๋์จ์ด ํ๊ฒฝ, ์ด์ ํธ์์ฑ, ์ปค๋ฎค๋ํฐ ์ง์์ ์ข ํฉ์ ์ผ๋ก ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๋ชจ๋ ์์ง์ด OpenAI ํธํ API๋ฅผ ์ ๊ณตํ๋ฏ๋ก, ์ค์ ์๋น์ค์ bottleneck๊ณผ SLA์ ๋ง์ถฐ ์์ง์ ๊ต์ฒดํ๋ ๊ฒ์ด ๊ณผ๊ฑฐ๋ณด๋ค ํจ์ฌ ์ฌ์์ก์ต๋๋ค.