vLLM v1 Engine ์๊ฐ ๐ง
vLLM ์ํคํ ์ฒ ์ค๋ช
vLLM v1 Engine ์๊ฐ ๐ง
vLLM v1 Engine ์๊ฐ ๐ง
โ v1 Engine์ด๋?
- vLLM v1 engine์ ๊ธฐ์กด v0 ์์ง์ ๋์ฒดํ๋ ์๋ก์ด ํต์ฌ ์ํคํ ์ฒ๋ก, ์ค์ผ์ค๋ฌ, KV ์บ์ ๋งค๋์ , ์์ปค, ์ํ๋ฌ, API ์๋ฒ ๋ฑ์ด ๋ชจ๋ ์ฌ์ค๊ณ๋ ๊ตฌ์กฐ์ ๋๋ค. ๊ธฐ์กด์ ์ฝ๋ ๋ณต์ก์ฑ์ ์ค์ด๊ณ ์ ์ง๋ณด์์ฑ์ ๋์ธ ๋ชจ๋ํ ์ค๊ณ๊ฐ ํน์ง์ ๋๋ค
- v1์ CPU ์ค๋ฒํค๋๋ฅผ ๊ทน์ํํ๊ณ , ๋์ฝ๋์ ํ๋ฆฌํ(prefill)์ ๋จ์ผ ์ค์ผ์ค๋ฌ ์์์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ์ ์ฒด์ ์ธ ์ฒ๋ฆฌ ์๋์ ์์ ์ฑ์ ํฅ์์์ผฐ์ต๋๋ค
โ๏ธ v0 vs v1 ๋น๊ต
| ํญ๋ชฉ | v0 Engine | v1 Engine (ํ์ฌ ๊ถ์ฅ) |
|---|---|---|
| ์ํคํ ์ฒ | ๋ณต์กํ ๊ฐ๋ณ ๊ตฌ์ฑ ์์ | ํตํฉ๋ ๋จ์ผ ์ค์ผ์ค๋ฌ ๋ฐ ๋ชจ๋ํ ๊ตฌ์กฐ docs.vllm.aivLLM Blog |
| ์ฑ๋ฅ | ์์ ์ ์ด๋ ์ค์ผ์ผ์ ๋ฐ๋ผ CPU ์ค๋ฒํค๋ ๋ฐํ | ์ต๋ 1.7๋ฐฐ ๋์ ์ฒ๋ฆฌ๋, ๊ณ QPS ํ๊ฒฝ์์ ์ผ๊ด๋ ๋ฎ์ ๋ ์ดํด์ vLLM BlogRed Hat DeveloperRed Hat Developer |
| ํ๋ฆฌํ ๋ฐฉ์ | ์ ๋ ฅ ์ ์ฒ๋ฆฌ ์ดํ ๋์ฝ๋ฉ | chunked-prefill์ผ๋ก ์ ๋ ฅ๊ณผ ๋์ฝ๋ฉ ๋์ ์ฒ๋ฆฌ ๊ฐ๋ฅ โ TTFT ๊ฐ์ kaitchup.substack.comrocm.blogs.amd.com |
| Prefix Caching | ์ ํ์ ์ฌ์ฉ | VLM ํฌํจ prefix-caching์ด ๊ธฐ๋ณธ ํ์ฑํ ๋ฐ ์ต์ ํ vLLM Blogrocm.blogs.amd.com |
| ์ง์ ๋ชจ๋ธ | ํญ๋์ ๋ชจ๋ธ ์ง์ | Decoder-only, MoE, ์ผ๋ถ VLM ์ง์. ์์ง embedding, encoder-decoder ๋ฐ Mamba ๊ณ์ด์ ์ ํ์ ์ง์ vLLM Blogdocs.vllm.ai |
| ์ง์ ๊ธฐ๋ฅ | LoRA, speculative decoding, structured output ๋ฑ ๋ฒ์ ๋์ | ์ผ๋ถ ๊ธฐ๋ฅ์ ์์ง ๋ถ์กฑ (pipeline parallelism, best_of, structured decoding ๋ฑ deprecated) docs.vllm.aidocs.vllm.ai |
| ํ๋์จ์ด ํธํ์ฑ | ๋ค์ํ GPU ๋ฐ TPU ์ง์ | ํ์ฌ๋ Ampere ์ด์ NVIDIA GPU๋ง ๊ณต์ ์ง์ (TPU, AMD ๋ฑ์ WIP) docs.vllm.airocm.blogs.amd.com |
๐ ์ v1์ ๋ง๋ค์๋?
1. ์ฝ๋ ๋ณต์ก์ฑ ํด๊ฒฐ ๋ฐ ํ์ฅ์ฑ ํ๋ณด
v0 ์์ง์ด ์ฑ์ฅํ๋ฉด์ ๋ค์ํ ๊ธฐ๋ฅ์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ถ๊ฐ๋์ด ์์คํ ๋ณต์ก์ฑ์ด ๋์์ก๊ณ , ์ ์ง๋ณด์ ๋ฐ ์ ๊ท ๊ธฐ๋ฅ ์ถ๊ฐ๊ฐ ์ด๋ ค์์ก์ต๋๋ค. v1์ ์ด๋ฅผ ๋จ์ํํ๊ณ ๊ตฌ์กฐํ๋ ์ค๊ณ๋ฅผ ํตํด ๊ฐ๋ฐ ์์ฐ์ฑ์ ๋์์ต๋๋ค docs.vllm.aiGitHub.
2. ์ฑ๋ฅ ์ต์ ํ
- CPU ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ณ , chunked-prefill๊ณผ FlashAttention 3๋ฅผ ํ์ฉํด ๋์ QPS ํ๊ฒฝ์์๋ 1.7๋ฐฐ ๋น ๋ฅธ ์ฒ๋ฆฌ๋์ ์ ์งํ๋๋ก ์ค๊ณ๋์์ต๋๋ค
- ํนํ VLM(vision-language) ์์
์์ prefix caching, ๋ฉํฐ๋ชจ๋ฌ ์ค์ผ์ค๋ง ๋ฑ์ด ์ต์ ํ๋์ด ์ฑ๋ฅ ํฅ์์ด ๋์ฑ ๋๋๋ฌ์ง๋๋ค
3. ์๋ก์ด ๊ธฐ๋ฅ์ ๊ธฐ๋ฐ
๋จ์ผ ์ค์ผ์ค๋ฌ ๊ธฐ๋ฐ ์ค๊ณ, ์ผ๊ด์ ๋ก์ง ํ๋ฆ, ์บ์ ์ํคํ ์ฒ ๊ฐํธ ๋ฑ์ ํตํด ํฅํ speculative decoding, ๊ตฌ์กฐํ ์ถ๋ ฅ, ๋ก์ง์ธ ํ๋ก์ธ์ ๋ฑ ์ ๊ท ๊ธฐ๋ฅ ๋์ ์ ์ ๋ฆฌํ ๊ตฌ์กฐ๋ฅผ ๋ง๋ จํ์ต๋๋ค
โ ์ฌ์ฉ ๋ฐฉ๋ฒ ์์ฝ
vLLM_USE_V1=1ํ๊ฒฝ๋ณ์ ์ค์ VLLM_WORKER_MULTIPROC_METHOD=spawn๋ฑ multiprocessing ๋ฐฉ์ ์ค์ - Python API ๋๋
vllm serve <๋ชจ๋ธ๋ช >์คํ ์ ์๋์ผ๋ก v1 ์์ง ํ์ฑํ (v0 ๋ก ๋ฐฑ์๋ ํธํ ์ ์ง ๊ฐ๋ฅ)โ ๏ธ ํ์ฌ ์ ์ฝ ๋ฐ ํฅํ ๊ณํ
- ํ์ฌ ์ ํ๋ ์ง์: encoder-decoder ๋ชจ๋ธ, embedding ๋ชจ๋ธ, ์ผ๋ถ Mamba ๊ณ์ด ๋ฏธ์ง์
- ๊ธฐ๋ฅ ๊ฒฉ์ฐจ: best_of, structured decoding, pipeline parallelism, ์ผ๋ถ ๋ก๋ผ ๋ฐ speculative decoding ๊ธฐ๋ฅ์ ์ฌ์ ํ v0์ ๋นํด ์ ํ์ ์ ๋๋ค (ํ์ฌ ์งํ ์ค)
- ํฅํ ๊ฐ์ ๋ฐฉํฅ: FP8 KV ์บ์, LoRA ์ต์ ํ, embedding ๋ฐ encoder-decoder ๋ชจ๋ธ ์ง์ ํ๋, VLM ๋ฐ TPU/AMD์์ ํธํ์ฑ ํ์ฅ
๐ ์ฐธ๊ณ ๋งํฌ
- vLLM ๋ธ๋ก๊ทธ: โvLLM V1: A Major Upgrade to vLLMโs Core Architectureโ vllm-ascend.readthedocs.io+14vLLM Blog+14docs.vllm.ai+14
- ๊ณต์ ๋ฌธ์: v1 User Guide, Deprecated/Feature ๋น๊ต, ๋ชจ๋ธ ์ง์ ํํฉ Red Hat Developer+2docs.vllm.ai+2docs.vllm.ai+2
- ์ฑ๋ฅ ๋ฒค์น๋งํฌ: v0.8.1 ๋น๊ต ๊ฒฐ๊ณผ ๋ฐ v1 ๊ธฐ๋ฐ ์๋ฒ ์ฑ๋ฅ ๋ถ์ Red Hat DeveloperRed Hat Developer
This post is licensed under CC BY 4.0 by the author.