Key Takeaways
- ์ถ๋ก ์์ง์ ๋ชจ๋ธ ํ์ผ์ ๋ถ๋ฌ์ ํ ํฐ์ ์์ฑํ๋ C/C++/Python ์ํํธ์จ์ด์ ๋๋ค. UI ๋๋ API ๊ณ์ธต๊ณผ๋ ๋ณ๊ฐ์ ๋๋ค.
- llama.cpp = ๊ฒฝ๋, CPU ํจ์จ์ , Ollama์ ๊ธฐ๋ฐ. ์ต์ ์ฌ์ฉ ํ๊ฒฝ: ์๋น์์ฉ ๋ ธํธ๋ถ, ๋จ์ผ ์ฌ์ฉ์, ์์กด์ฑ ์์.
- vLLM = ํ๋ก๋์ ๊ธ, ์ต๋ GPU ์ฒ๋ฆฌ๋, ๋ฐฐ์นญ ๋ฐ ๋ถ์ฐ ์ถ๋ก ์ง์. ์ต์ ์ฌ์ฉ ํ๊ฒฝ: API ์๋ฒ, ๋ค์ค ์ฌ์ฉ์, ๊ณ ์ฒ๋ฆฌ๋.
- Text-Generation-WebUI = ๋ด์ฅ ์น UI๊ฐ ์๋ ๊ธฐ๋ฅ ํ๋ถํ ์คํ ๋๊ตฌ. ์ต์ ์ฌ์ฉ ํ๊ฒฝ: ํ์ธํ๋, LoRA ํ ์คํธ, ๊ณ ๊ธ ์ค์ ์กฐ์ .
- 2026๋ 4์ ๊ธฐ์ค์ผ๋ก vLLM์ ํ๋ก๋์ ์ฌ์ฉ์, llama.cpp๋ ์๋น์ ์ฌ์ฉ์, Text-Generation-WebUI๋ ์ฐ๊ตฌ/ํ์ธํ๋ ๋ถ์ผ๋ฅผ ์ฃผ๋ํ๊ณ ์์ต๋๋ค.
์ถ๋ก ์์ง์ด๋ ๋ฌด์์ธ๊ฐ?
์ถ๋ก ์์ง์ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ ํ์ผ์ ๋ถ๋ฌ์ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๋ฐ ํ์ํ ์ํ์ ์ฐ์ฐ์ ์คํํ๋ ์ํํธ์จ์ด ์ปดํฌ๋ํธ์ ๋๋ค. ์ด๋ ์ฑํ ์ธํฐํ์ด์ค(Open WebUI ๋๋ Enchanted UI ๋ฑ)๋ API ๊ณ์ธต(Ollama REST API ๋ฑ)๊ณผ๋ ๋ค๋ฆ ๋๋ค.
์ผ๋ฐ์ ์ธ ๋ก์ปฌ LLM ๋ฐฐํฌ๋ ์ธ ๊ฐ์ง ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
1. ๋ชจ๋ธ ํ์ผ (์: llama-3.1-8b.gguf) -- ์ ๊ฒฝ๋ง ๊ฐ์ค์น.
2. ์ถ๋ก ์์ง (์: llama.cpp, vLLM) -- ๋ชจ๋ธ์ ๋ถ๋ฌ์ ํ ํฐ์ ์์ฑ.
3. ์ธํฐํ์ด์ค ๋๋ API (์: REST API, ์น ์ฑํ , VS Code ํ์ฅ) -- ์์ง๊ณผ ์ํธ์์ฉ.
Ollama ์์ฒด๋ ์ฃผ๋ก OpenAI ํธํ API๋ฅผ ๊ฐ์ถ llama.cpp์ ๋ํผ์ ๋๋ค. vLLM์ ๋ด์ฅ UI๊ฐ ์๋ ์ถ๋ก ์์ง์ ๋๋ค. Text-Generation-WebUI๋ ๋ด์ฅ ์น UI๊ฐ ์๋ ์ถ๋ก ์์ง์ ๋๋ค.
๊ธฐ๋ฅ ๋น๊ต: llama.cpp vs vLLM vs Text-Generation-WebUI
| Feature | llama.cpp | vLLM | Text-Gen-WebUI |
|---|---|---|---|
| ์ ํ | C++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (๊ฒฝ๋) | Python ํ๋ ์์ํฌ (ํ๋ก๋์ ) | Python ์ฑ (์คํ์ฉ) |
| GPU ์ง์ | NVIDIA, AMD, Apple Metal | NVIDIA๋ง (์ต๊ณ ์ง์) | NVIDIA, AMD, CPU |
| CPU ์ถ๋ก | ์ฐ์ | ๋ถ๋ | ์ํธ |
| ์ฒ๋ฆฌ๋ (ํ ํฐ/์ด) | ์ค๊ฐ (1-100) | ๋งค์ฐ ๋์ (100-1000+) | ์ค๊ฐ (1-100) |
| ๋ฐฐ์นญ ์ง์ | ์ ํ์ | ์์ ์ง์ (100๊ฐ ์ด์ ๋ฐฐ์นญ) | ์ ํ์ |
| ๋ด์ฅ ์น UI | ์์ | ์์ | ์์ |
| LoRA ํ์ธํ๋ | ์ง์ ์ง์ ๋ถ๊ฐ | ์ ํ์ | ๋ด์ฅ |
| ์์ํ ํ์ | GGUF, GGML | ์ ์ ๋ฐ๋, 8๋นํธ, 4๋นํธ | GGUF, safetensors, fp16 |
| ์ค์ ๋์ด๋ | Ollama ๊ฒฝ์ (์ฌ์) | pip install (์ค๊ฐ) | GitHub ํด๋ก (์ค๊ฐ) |
| ๊ฐ๊ฒฉ | ๋ฌด๋ฃ | ๋ฌด๋ฃ | ๋ฌด๋ฃ |
llama.cpp ์ดํดํ๊ธฐ: ๊ธฐ๋ฐ ์์ง
llama.cpp๋ GPU ๊ฐ์ ์์ด๋ ์๋น์์ฉ ํ๋์จ์ด์์ Meta์ Llama ๋ชจ๋ธ์ ์คํํ๊ธฐ ์ํด ์ฒ์ ๊ฐ๋ฐ๋ LLM ์ถ๋ก ์ C++ ๊ตฌํ์ฒด์ ๋๋ค. 2026๋ 4์ ๊ธฐ์ค์ผ๋ก๋ ๊ฐ์ฅ ๊ฐ๋ณ๊ณ ์ด์์ฑ์ด ๋์ ์ถ๋ก ์์ง์ผ๋ก ๋จ์ ์์ต๋๋ค.
llama.cpp๊ฐ ์๋น์ ์ฌ์ฉ ๋ถ์ผ๋ฅผ ์ฃผ๋ํ๋ ์ด์ :
- ์ต์ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒํค๋ -- CPU๋ง์ผ๋ก 8GB RAM์์ ์คํ ๊ฐ๋ฅ.
- ๋ค์ํ GPU ๋ฐฑ์๋ ์ง์ (NVIDIA, AMD, Apple Metal, Intel).
- GGUF ํ์: 70B ๋ชจ๋ธ์ 20-40GB๋ก ์์ถํ๋ ์์ํ ๋ชจ๋ธ ํ์.
- Ollama ๋ด๋ถ์์ ๊ตฌ๋ -- Ollama ์คํ ์ ํญ์ llama.cpp๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
llama.cpp๋ ์์ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. Ollama(๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ)๋ฅผ ํตํด ๋๋ ์ด๋ฅผ ํตํฉํ ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ํตํด ์ฌ์ฉํฉ๋๋ค. ๊ณ ๊ธ ํ๋์ ์ํด llama.cpp๋ฅผ ์ง์ ์ฌ์ฉํ๋ ค๋ฉด ์ปดํ์ผ ํ ์ปค๋งจ๋๋ผ์ธ ๋๊ตฌ๋ Python ๋ฐ์ธ๋ฉ์ผ๋ก ์ํธ์์ฉํด์ผ ํฉ๋๋ค.
vLLM ์ดํดํ๊ธฐ: ํ๋ก๋์ ํ์ค
vLLM์ GPU ํด๋ฌ์คํฐ์์ ๊ณ ์ฒ๋ฆฌ๋ ์ถ๋ก ์ ์ํด ์ค๊ณ๋ Python ํ๋ ์์ํฌ์ ๋๋ค. ๋ฐฐ์นญ, ๋ถ์ฐ ์ถ๋ก , ๊ณ ๊ธ ์ค์ผ์ค๋ง์ ์ง์ํ์ฌ API๋ฅผ ํตํ ๋ชจ๋ธ ์๋น์ ์ต์ ํ๋์ด ์์ต๋๋ค.
vLLM์ด ํ๋ก๋์ ๋ถ์ผ๋ฅผ ์ฃผ๋ํ๋ ์ด์ :
- Paged Attention: vLLM์ GPU ํ์ฉ๋ฅ ์ ~20%์์ ~70%๋ก ๊ฐ์ ํ์ฌ ์ฒ๋ฆฌ๋์ ๊ทน์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๋ ์ด์์์ ์ฌ์ฉํฉ๋๋ค.
- ๋ฐฐ์น ์ฒ๋ฆฌ: 50-100๊ฐ์ ํ๋กฌํํธ๋ฅผ ๋์์ ์ฒ๋ฆฌํ์ฌ GPU๋น ๋ ๋ง์ ์ฌ์ฉ์๋ฅผ ์๋นํฉ๋๋ค.
- ๋ถ์ฐ ์ถ๋ก : 70B ๋ชจ๋ธ์ ์ฌ๋ฌ GPU์ ์๋์ผ๋ก ๋ถ์ฐํฉ๋๋ค.
- ํญ๋์ ๋ชจ๋ธ ์ง์: HuggingFace ๋ชจ๋ธ(Llama, Qwen, Mistral, Phi ๋ฑ) ๋ชจ๋ ์ง์.
2026๋ 4์ ๊ธฐ์ค์ผ๋ก ๊ธฐ์ ์ ๋๋ถ๋ถ ํ๋ก๋์ ๋ก์ปฌ LLM ๋ฐฐํฌ์ vLLM์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋จ์ ์ vLLM์ด NVIDIA GPU๋ฅผ ํ์๋ก ํ๋ฉฐ CPU ์ฑ๋ฅ์ด ๋ฎ๋ค๋ ์ ์ ๋๋ค.
# vLLM ์ค์น
pip install vllm
# API๋ก ๋ชจ๋ธ ์คํ
vllm serve meta-llama/Llama-3.3-8B-Instruct \
--host 0.0.0.0 --port 8000 \
--gpu-memory-utilization 0.9
# http://localhost:8000/v1/completions ์์ ์ ๊ทผ ๊ฐ๋ฅText-Generation-WebUI ์ดํดํ๊ธฐ: ์ฐ๊ตฌ์์ ๋๊ตฌ
Text-Generation-WebUI(oobabooga๋ผ๊ณ ๋ ๋ถ๋ฆผ)๋ ๋ชจ๋ธ ์คํ์ ์ํ ์น ์ธํฐํ์ด์ค๊ฐ ๋ด์ฅ๋ ์์ ํ ๊ธฐ๋ฅ์ Python ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ํ์ธํ๋, LoRA ํ์ต, ์๋ฒ ๋ฉ ์์ฑ, ๊ณ ๊ธ ํ๋กฌํํธ ํ ์คํธ๋ฅผ ์ํ ๋ด์ฅ ๋๊ตฌ์ ํจ๊ป ์ถ๋ก ๊ธฐ๋ฅ์ ๊ฒฐํฉํฉ๋๋ค.
์ฐ๊ตฌ์๋ค์ด Text-Generation-WebUI๋ฅผ ์ฌ์ฉํ๋ ์ด์ :
- ๋ด์ฅ LoRA ํ์ธํ๋: ์ธ๋ถ ํ์ต ์คํฌ๋ฆฝํธ ์์ด ๋ฒ ์ด์ค ๋ชจ๋ธ ์์ ์ปค์คํ LoRA ์ด๋ํฐ๋ฅผ ํ์ต์ํต๋๋ค.
- ๋ค์ํ ์ถ๋ก ์์ง: llama.cpp, GPTQ, exllama ๋ฑ ์ฌ๋ฌ ๋ฐฑ์๋ ๊ฐ ์ ํ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์บ๋ฆญํฐ ๋กคํ๋ ์ด: ์บ๋ฆญํฐ ํ๋ฅด์๋ ์์ฑ ๋ฐ ํ ์คํธ๋ฅผ ์ํ ๋ด์ฅ ์์คํ .
- API ๋ ธ์ถ: ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ฌ์ฉ์ ์ํ FastAPI ์ธํฐํ์ด์ค ์ ๊ณต.
- ํ์ฅ ์์ฝ์์คํ : ์ปค์คํ ์ํฌํ๋ก๋ฅผ ์ํ ์ปค๋ฎค๋ํฐ ์ ์ ํ์ฅ.
Text-Generation-WebUI๋ ํ๋ก๋์ ์๋ฒ๋ณด๋ค๋ ์ฐ๊ตฌ ๋ฐ ์คํ ๋๊ตฌ์ ๊ฐ๊น์ต๋๋ค. ์ค์ ์ด ๋ ๋ณต์กํ์ง๋ง(GitHub ํด๋ก ๋ฐ Python ์์กด์ฑ ๊ด๋ฆฌ ํ์), ์ผ๋จ ์คํ๋๋ฉด ๊ฐ๋ฐ์ ๋งค์ฐ ๊ฐ๋ ฅํฉ๋๋ค.
๊ฐ ์์ง์ ์๋๋? ์ฒ๋ฆฌ๋ ๋น๊ต
์ฒ๋ฆฌ๋(์ด๋น ํ ํฐ ์)์ ๋ชจ๋ธ ํฌ๊ธฐ, ํ๋์จ์ด, ์์ง ์ต์ ํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. 2026๋ 4์ ๊ธฐ์ค ์๋น์์ฉ ํ๋์จ์ด์์์ ์ค์ ๋ฒค์น๋งํฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
| Scenario | llama.cpp | vLLM | Text-Gen-WebUI |
|---|---|---|---|
| Llama 3.3 8B (RTX 4090 GPU) | 150 ํ ํฐ/์ด | 300 ํ ํฐ/์ด (๋ฐฐ์นญ ์) | 150 ํ ํฐ/์ด |
| Llama 3.3 8B (8์ฝ์ด CPU) | 5 ํ ํฐ/์ด | 0.5 ํ ํฐ/์ด (์ฌ์ฉ ๋ถ๊ฐ) | 4 ํ ํฐ/์ด |
| Llama 3.3 70B (RTX 4090 2์ฅ) | 20 ํ ํฐ/์ด (๋จ์ผ GPU) | 100 ํ ํฐ/์ด (๋ถ์ฐ) | 20 ํ ํฐ/์ด |
| Phi-3 3.8B (M4 MacBook Pro) | 30 ํ ํฐ/์ด | ํด๋น ์์ (Metal ๋ฏธ์ง์) | 25 ํ ํฐ/์ด |
ํ๋ก๋์ ๋ฐฐํฌ์ ์ ํฉํ ์์ง์?
vLLM์ 2026๋ 4์ ๊ธฐ์ค ํ๋ก๋์ ํ์ค์ ๋๋ค. ํ๋ก๋์ ์์ ๋ก์ปฌ LLM API๋ฅผ ์ด์ํ๋ ๋๋ถ๋ถ์ ๊ธฐ์ ์ ์ฒ๋ฆฌ๋ ์ต์ ํ์ ๋ฐฐ์นญ ์ง์ ๋๋ถ์ vLLM์ ์ฌ์ฉํฉ๋๋ค. ๋จ์ผ vLLM ์ธ์คํด์ค๋ ํ๋์ GPU์์ 50๋ช ์ด์์ ๋์ ์ฌ์ฉ์๋ฅผ ์๋นํ ์ ์์ผ๋ฉฐ, llama.cpp์ ๊ฒฝ์ฐ 1-2๋ช ์ ๋ถ๊ณผํฉ๋๋ค.
๊ทธ๋ฌ๋ ํ๋ก๋์ ์ ํ์ ์ ์ฝ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค:
- ์ ํ๋ GPU๋ก ํ๋ฃจ 100๊ฑด ์ด์์ ์์ฒญ ์๋น: vLLM ์ฌ์ฉ (์ต๊ณ ์ฒ๋ฆฌ๋).
- CPU ๋๋ Apple Silicon๋ง์ผ๋ก ์๋น: Ollama ๊ฒฝ์ llama.cpp ์ฌ์ฉ (์ต๊ณ CPU ์ง์).
- Llama ๋ชจ๋ธ ์ ์ฉ ์ฌ์ฉ: llama.cpp ๋๋ vLLM ๋ชจ๋ ๊ฐ๋ฅ; vLLM์ด ๋ ๋น ๋ฆ ๋๋ค.
- ๋ค์ํ ๋ชจ๋ธ ํ์ ์ฌ์ฉ (GPTQ, GGUF, safetensors): Text-Generation-WebUI๊ฐ ๋ชจ๋ ์ง์; vLLM์ ์ ์ ๋ฐ๋ ๋๋ ํน์ ์์ํ ํ์ ํ์.
๊ฐ ์์ง์ ์ธ์ ์ ํํด์ผ ํ๋๊ฐ?
๋ค์ ์์ฌ๊ฒฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค:
- llama.cpp (Ollama ๊ฒฝ์ ): ์๋น์, ๋น๊ฐ๋ฐ์์ด๊ฑฐ๋ CPU/Apple Silicon์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ. ์ ๋ฐ์ ์ผ๋ก ๊ฐ์ฅ ์ฌ์ฉํ๊ธฐ ์ฝ์ต๋๋ค.
- vLLM: 50๋ช ์ด์์ ๋์ ์ฌ์ฉ์์๊ฒ API๋ฅผ ์๋นํ๊ณ , NVIDIA GPU๋ฅผ ๋ณด์ ํ๋ฉฐ, ์ต๋ ์ฒ๋ฆฌ๋์ด ํ์ํ ๊ฒฝ์ฐ. ํ๋ก๋์ ํ์ค.
- Text-Generation-WebUI: ๋ชจ๋ธ์ ํ์ธํ๋ํ๊ฑฐ๋, LoRA ์ด๋ํฐ๋ฅผ ํ ์คํธํ๊ฑฐ๋, ๊ณ ๊ธ ์ถ๋ก ์ค์ ์ ์คํํ๋ ๊ฒฝ์ฐ. ์ฐ๊ตฌ์ ์ต์ .
์ง์ญ๋ณ ์ถ๋ก ์์ง ์ ํ
์ถ๋ก ์์ง์ ์ ํ์ ์๋ก ๋ค๋ฅธ ๊ท์ ๊ดํ ๊ตฌ์ญ์ ๊ฑธ์ณ ์ง์ญ ์ปดํ๋ผ์ด์ธ์ค ๋ฐ ๊ธฐ์ ๋ฐฐํฌ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
- EU / GDPR: EU ๊ธฐ์ ๋ฐฐํฌ์ ๊ฒฝ์ฐ, ์จํ๋ ๋ฏธ์ค์์ ์คํ๋๋ vLLM์ ๋ชจ๋ ์ถ๋ก ์ EU ์ธํ๋ผ ๋ด์ ์ ์งํฉ๋๋ค -- ํ ํฐ, ํ๋กฌํํธ, ์ถ๋ ฅ ์ค ์ด๋ ๊ฒ๋ ์๋ฒ ์ธ๋ถ๋ก ์ ์ก๋์ง ์์ต๋๋ค. ๋ ์ผ BSI IT-Grundschutz ์ปดํ๋ผ์ด์ธ์ค๋ฅผ ์ํด vLLM์ ํ๋ก๋์ ์์ง์ผ๋ก ๊ถ์ฅ๋ฉ๋๋ค. Prometheus ๋ฉํธ๋ฆญ(/metrics ์๋ํฌ์ธํธ)์ ํตํ ๊ตฌ์กฐํ๋ ๊ฐ์ฌ ๋ก๊น ์ ์ ๊ณตํ๋ฉฐ, ๋ชจ๋ ๋ชจ๋ธ ๋ฒ์ ์ ์ปดํ๋ผ์ด์ธ์ค ๋ฌธ์ํ๋ฅผ ์ํด HuggingFace ๋ชจ๋ธ ID๋ก ๊ณ ์ ๊ฐ๋ฅํฉ๋๋ค. Mistral ๋ชจ๋ธ(Mistral AI, ํ๋์ค, Apache 2.0)์ vLLM ํ๋ก๋์ ๋ฐฐํฌ๋ฅผ ์ํ EU ์ ํธ ์ ํ์ ๋๋ค -- EU ์ถ์ฒ, ๋ช ํํ ๋ผ์ด์ ์ค, ์ฐ์ํ ์ฑ๋ฅ. vLLM ๋ช ๋ น์ด: `vllm serve mistralai/Mistral-7B-Instruct-v0.3`
- ์ผ๋ณธ (METI): METI AI ๊ฑฐ๋ฒ๋์ค๋ ์ถ๋ก ์ธํ๋ผ ๋ฌธ์ํ๋ฅผ ์๊ตฌํฉ๋๋ค. vLLM์ ๊ตฌ์กฐํ๋ Prometheus ๋ฉํธ๋ฆญ์ llama.cpp์ stdout ๋ก๊น ๋ณด๋ค ๊ฐ์ฌ ์ถ์ ์๊ฑด์ ๋ ์ ์ถฉ์กฑํฉ๋๋ค. ์ผ๋ณธ ๊ธฐ์ ๋ฐฐํฌ์ ๊ฒฝ์ฐ, vLLM์ ํตํ Qwen3 7B๊ฐ ๊ถ์ฅ ์คํ์ ๋๋ค -- ๋ค์ดํฐ๋ธ ์ผ๋ณธ์ด ํ ํฌ๋์ด์ ์ด์ ๊ณผ ํ๋ก๋์ ์ฒ๋ฆฌ๋์ ๊ฒฐํฉํฉ๋๋ค. vLLM ๋ช ๋ น์ด: `vllm serve Qwen/Qwen3-7B-Instruct`
- ์ค๊ตญ: ์ค๊ตญ ๋ฐ์ดํฐ ์์ ๋ฒ(ๆฐๆฎๅฎๅ จๆณ)์ ๋ฐ๋ผ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ์ ๋ํ ๋ชจ๋ ์ถ๋ก ์ ์จํ๋ ๋ฏธ์ค์์ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. vLLM์ Alibaba Cloud A10 ๋ฐ A100 GPU ์ธ์คํด์ค์ ํธํ๋ฉ๋๋ค. Qwen3(Alibaba) ๋ชจ๋ธ์ vLLM์ ๋ค์ดํฐ๋ธ๋ก ์ต์ ํ๋์ด ์ต๊ณ ์ ์ค๊ตญ์ด ์ฒ๋ฆฌ๋์ ์ ๊ณตํฉ๋๋ค. ์ค๊ตญ ๊ธฐ์ ํ๋ก๋์ ํ์ค: 2026๋ 4์ ๊ธฐ์ค Alibaba Cloud์์์ vLLM + Qwen3 14B.
์ถ๋ก ์์ง ์ฌ์ฉ ์ ์์ฃผ ํ๋ ์ค์
- Ollama์ ์ด๋ฌํ ์์ง ์ค์์ ์ ํํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ ๊ฒ. Ollama๋ ๋ด๋ถ์ ์ผ๋ก llama.cpp๋ฅผ ์ฌ์ฉํฉ๋๋ค. Ollama vs vLLM์ ์ ํํ๋ ๊ฒ์ด ์๋๋๋ค. vLLM์ ์ฑํ ์ฑ์ด ์๋ Ollama์ ๋์ *๋ฐฑ์๋*์ ๋๋ค. ๊ฐ๊ฐ ์ฉ๋๊ฐ ์์ต๋๋ค.
- CPU์์ vLLM์ด ๋ ๋น ๋ฅด๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ. vLLM์ CPU ์ฑ๋ฅ์ด ๋ฎ์ต๋๋ค. llama.cpp๋ CPU์์ 10๋ฐฐ ๋น ๋ฆ ๋๋ค. vLLM์ ์ ํํ๊ธฐ ์ ์ GPU ๊ฐ์ฉ์ฑ์ ํ์ธํ์ญ์์ค.
- ๋ ธํธ๋ถ GPU์์ vLLM ์คํ. vLLM์ ๋ฐ์ดํฐ์ผํฐ GPU(RTX 4090, A100)์ ์ต์ ํ๋์ด ์์ต๋๋ค. ์๋น์์ฉ GPU์์๋ vLLM์ ๋ฐฐ์นญ ์ค์ผ์ค๋ฌ ์ค๋ฒํค๋๊ฐ ๋จ์ผ ์์ฒญ ์ฑ๋ฅ์ ์คํ๋ ค ์ ํ์ํฌ ์ ์์ต๋๋ค. ๋ ธํธ๋ถ์๋ llama.cpp๋ฅผ ์ฌ์ฉํ์ญ์์ค.
- ์ถ๋ก ์ฒ๋ฆฌ๋์ด ์ฌ์ฉ์ ๊ฒฝํ ์ง์ฐ ์๊ฐ๊ณผ ๋์ผํ๋ค๊ณ ์ฐฉ๊ฐํ๋ ๊ฒ. vLLM์ 100๊ฐ์ ์์ฒญ์ ๋ฐฐ์นญํ ์ ์์ง๋ง, ๊ฐ ์์ฒญ์ ์ฌ์ ํ ํ ํฐ์ ์์ฑํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋์ ์ฒ๋ฆฌ๋์ด ๋ฎ์ ์ง์ฐ ์๊ฐ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค.
- Text-Generation-WebUI์ ์์กด์ฑ์ ์๋ชป ์ค์นํ๋ ๊ฒ. GitHub ์ง์นจ์ Git, Python 3.10+, pip๊ฐ ์ค์น๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. Windows์์๋ ์ข ์ข ์๋์ผ๋ก ์คํจํฉ๋๋ค. ํด๋ก ํ๊ธฐ ์ ์ ํญ์ Python ๋ฒ์ ์ ํ์ธํ์ญ์์ค.
์ถ๋ก ์์ง์ ๊ดํ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ
๋ชจ๋ธ์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ถ๋ก ์์ง์ ๊ต์ฒดํ ์ ์์ต๋๊น?
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ฐ๋ฅํฉ๋๋ค. GGUF ํ์์ ๋ชจ๋ธ ํ์ผ์ llama.cpp(Ollama) ๋ฐ Text-Generation-WebUI์ ํธํ๋ฉ๋๋ค. vLLM์ ์ ์ ๋ฐ๋ ๋๋ ํน์ ์์ํ ํ์์ด ํ์ํฉ๋๋ค. HuggingFace safetensors ๋ชจ๋ธ์ ์ธ ๊ฐ์ง ๋ชจ๋์ ํธํ๋ฉ๋๋ค.
Mac์ ๊ฐ์ฅ ์ ํฉํ ์์ง์ ๋ฌด์์ ๋๊น?
Ollama ๊ฒฝ์ llama.cpp์ ๋๋ค. Apple Silicon(M ์๋ฆฌ์ฆ) ์ต์ ํ๊ฐ ์ฐ์ํฉ๋๋ค. vLLM์ Metal(Apple GPU)์ ์ง์ํ์ง ์์ผ๋ฏ๋ก CPU ์ฑ๋ฅ์ด ๋ฎ์ต๋๋ค. Text-Generation-WebUI๋ Mac์์ ์๋ํ์ง๋ง Ollama๋ณด๋ค ๋๋ฆฝ๋๋ค.
vLLM์ Ollama์ ์ผ๋ถ์ ๋๊น?
์๋๋๋ค. Ollama๋ ๋ด๋ถ์ ์ผ๋ก llama.cpp๋ฅผ ์ฌ์ฉํฉ๋๋ค. vLLM์ UC Berkeley๊ฐ ๊ฐ๋ฐํ ๋ณ๋์ ์ถ๋ก ์์ง์ ๋๋ค. ๊ฐ๊ฐ ๋ค๋ฅธ ๋ชฉ์ ์ ๊ฐ์ง๋๋ค: Ollama๋ ๊ฐํธํจ์ ์ํ ๊ฒ์ด๊ณ , vLLM์ ํ๋ก๋์ ์ฒ๋ฆฌ๋์ ์ํ ๊ฒ์ ๋๋ค.
GPU ์์ด vLLM์ ์ฌ์ฉํ ์ ์์ต๋๊น?
๊ธฐ์ ์ ์ผ๋ก๋ ๊ฐ๋ฅํ์ง๋ง ์ฌ์ฉํ ์ ์์ ์ ๋๋ก ๋๋ฆฝ๋๋ค. vLLM์ GPU์ฉ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. CPU ์ ์ฉ ๋ฐฐํฌ์๋ llama.cpp(Ollama)๋ฅผ ์ฌ์ฉํ์ญ์์ค.
Text-Generation-WebUI๋ฅผ ํ๋ก๋์ ์ผ๋ก ํ์ฅํ ์ ์์ต๋๊น?
๊ถ์ฅํ์ง ์์ต๋๋ค. Text-Generation-WebUI๋ ์ฐ๊ตฌ ๋๊ตฌ์ด์ง ํ๋ก๋์ ์๋ฒ๊ฐ ์๋๋๋ค. ํ๋ก๋์ ์๋น์ค์ ํ์ํ ๋ก๋ ๋ฐธ๋ฐ์ฑ, ๋ชจ๋ํฐ๋ง, ๋ถ์ฐ ์ถ๋ก ๋ฑ์ ๊ธฐ๋ฅ์ด ๋ถ์กฑํฉ๋๋ค. ํ๋ก๋์ ์๋ vLLM์ ์ฌ์ฉํ์ญ์์ค.
Paged Attention์ด๋ ๋ฌด์์ด๋ฉฐ ์ ์ค์ํฉ๋๊น?
Paged Attention์ ์ด์ ์ฒด์ ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ์ ์ฐจ์ฉํ vLLM์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์คํ ์ ๋๋ค. ์์ฒญ๋น ๊ณ ์ ๋ ์ฐ์ GPU ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ํ ๋นํ๋ ๋์ , ์์ฒญ ๊ฐ์ ๊ณต์ ํ๊ณ ์ฌ์ฌ์ฉํ ์ ์๋ ํ์ด์ง ๋จ์๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํฉ๋๋ค. ์ด๋ฅผ ํตํด GPU ๋ฉ๋ชจ๋ฆฌ ํ์ฉ๋ฅ ์ด ~20%์์ ~70%๋ก ํฅ์๋์ด, ๋จ์ํ ์ดํ ์ ๊ตฌํ์ ๋นํด GPU๋น 3-4๋ฐฐ ๋ ๋ง์ ๋์ ์ฌ์ฉ์๋ฅผ ์๋นํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ค์ค ์ฌ์ฉ์ ์๋๋ฆฌ์ค์์ vLLM์ด llama.cpp๋ณด๋ค ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ฐํํ๋ ํต์ฌ ์ด์ ์ ๋๋ค.
RAM์ด 8GB๋ฐ์ ์๋ค๋ฉด ์ด๋ค ์์ง์ ์ฌ์ฉํด์ผ ํฉ๋๊น?
Ollama ๊ฒฝ์ llama.cpp์ ๋๋ค. ์ ์ฒด RAM 8GB ๊ธฐ์ค์ผ๋ก Q4_K_M์ 7B ๋ชจ๋ธ์ ์ฝ 4.7GB๋ฅผ ์ฌ์ฉํฉ๋๋ค. llama.cpp๋ CPU์์ ~5 tok/sec, ์ ์ฉ GPU์์ ~80 tok/sec๋ก ์ด๋ฅผ ์ ์ฒ๋ฆฌํฉ๋๋ค. vLLM์ ์๋นํ ๋ ๋ง์ ์ค๋ฒํค๋๋ฅผ ํ์๋ก ํ๋ฉฐ ์๋น์์ฉ RAM์์ ์ฑ๋ฅ์ด ๋ฎ์ต๋๋ค. Text-Generation-WebUI๋ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง Ollama๋ณด๋ค ์ค๋ฒํค๋๊ฐ ๋ ํฝ๋๋ค.
๋์ผํ ๋จธ์ ์์ vLLM๊ณผ Ollama๋ฅผ ๋์์ ์คํํ ์ ์์ต๋๊น?
VRAM์ด ์ถฉ๋ถํ๋ค๋ฉด ๊ฐ๋ฅํฉ๋๋ค. ์๋ก ๋ค๋ฅธ ํฌํธ์์ ์คํํ์ญ์์ค(vLLM ๊ธฐ๋ณธ๊ฐ: 8000, Ollama ๊ธฐ๋ณธ๊ฐ: 11434). ์ผ๋ฐ์ ์ธ ๊ตฌ์ฑ: Ollama๋ ๋น ๋ฅธ ๋จ์ผ ์ฌ์ฉ์ ์ฑํ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , vLLM์ ๋ฐฐ์น API ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ๊ทธ๋ฌ๋ VRAM์ ๋ ๋ฐฐ๋ก ๋๋ฆฌ์ง ์๊ณ ๋ ๋์ผํ ๋ชจ๋ธ์ ๋์์ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค. ์ํฌ๋ก๋์ ๋ฐ๋ผ ์ด๋ค ์๋น์ค๋ฅผ ํ์ฑํํ ์ง ๊ด๋ฆฌํ์ญ์์ค.
์ถ์ฒ
- Gerganov, G. (2024). "llama.cpp GitHub." https://github.com/ggerganov/llama.cpp -- C++ ์ถ๋ก ์์ง ์์ค ์ฝ๋ ๋ฐ ์์ํ ๋ฌธ์.
- vLLM Team. (2024). "vLLM GitHub." https://github.com/vllm-project/vllm -- ํ๋ก๋์ ์ถ๋ก ์์ง ์์ค ์ฝ๋ ๋ฐ API ์๋ฒ ๋ฌธ์.
- Kwon et al. (2023). "Efficient Memory Management for Large Language Model Serving with PagedAttention." https://arxiv.org/abs/2309.06180 -- vLLM ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ์์ ์ค๋ช ํ๋ ์๋ณธ Paged Attention ๋ ผ๋ฌธ.
- oobabooga. (2024). "Text-Generation-WebUI GitHub." https://github.com/oobabooga/text-generation-webui -- Text-Generation-WebUI ์์ค ์ฝ๋ ๋ฐ ์ค์น ๊ฐ์ด๋.