LLM ์๋น ๊ด๋ จ ์ ๋ฆฌ
๐ LLM ์๋น ๊ด๋ จ ํต์ฌ ์ ๋ฆฌ
๊ฐ์
- LLM ์๋น ๋๊ตฌ(MLC, CTranslate2, vLLM, TensorRT-LLM ๋ฑ)๋ ์คํ์์ค LLM ๊ฐ์ค์น๋ฅผ GPU/CPU/๋ชจ๋ฐ์ผ ๋ฑ ๋ค์ํ ํ๊ฒฝ์์ ๊ณ ์ฑ๋ฅยท์ ์ง์ฐ์ผ๋ก ์ ๊ณตํ๊ธฐ ์ํ ํ๋ ์์ํฌ.
- ํ์ํ ๋ชจ๋ธ(OpenAI GPT, Claude, Gemini ๋ฑ)์ ๊ฐ์ค์น ๋น๊ณต๊ฐ โ ์ง์ ์๋น ๋ถ๊ฐ๋ฅ, API ๊ธฐ๋ฐ์ผ๋ก๋ง ์ฌ์ฉ.
- Azure OpenAI / AWS Bedrock: ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ์ ๊ณตํ์ง ์๋ ๊ด๋ฆฌํ LLM ์๋น์ค. ์ง์ ์์ ์ ๋ถ๊ฐ, ์ ํ๋ Fine-tuning API๋ง ์ ๊ณต.
- ์์ฒด ์๋น ์ด์ : ๋ณด์, ๋ฐ์ดํฐ ์์ ๊ถ, ๋น์ฉ ์ ๊ฐ, ์ปค์คํฐ๋ง์ด์ง, ์ฑ๋ฅ ์ ์ด.
- ๋ชจ๋ธ ์์ ๋ฐฉ์:
- ๊ฐ์ค์น ์์ : ๋ชจ๋ธ์ ๋ฏ์ด์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ ๊ณ ์น๋ ๊ฒ. ์ง์ weight๋ฅผ ๋ณ๊ฒฝ โ ๊ด๋ฆฌํ LLM ๋ถ๊ฐ.
- Fine-tuning: ์ ํ๋ API๋ก ํน์ ํ์คํฌ/๋๋ฉ์ธ ํ์ต.
- RAG: ์ธ๋ถ ์ง์์ ๊ฒ์ํด ๋ชจ๋ธ ์ ๋ ฅ์ ์ฃผ์ .
1. LLM ์๋น ๋๊ตฌ ์ฑ๋ฅ/๋ฉ๋ชจ๋ฆฌ/๋์์ฑ/ํ๋์จ์ด ์ง์ ๋น๊ต
๋๊ตฌ | ์ฑ๋ฅ(์ถ๋ก ์๋) | ๋ฉ๋ชจ๋ฆฌ ํจ์จ | ๋์์ฑ ์ฒ๋ฆฌ | ํ๋์จ์ด ์ง์ |
---|---|---|---|---|
MLC-LLM | ์ค~์ (ํ๋์จ์ด๋ณ ์ต์ ํ ํ์) | ์ฐ์ (์์ํ, ์คํ๋ก๋ ์ง์) | ์ค๊ฐ ์์ค | CPU, GPU, NPU, WebGPU, ๋ชจ๋ฐ์ผ |
CTranslate2 | ์ค๊ฐ (CPU ์ต์ ํ ๊ฐ์ ) | ๋งค์ฐ ์ฐ์ (์ ๋ฉ๋ชจ๋ฆฌ ์ด์) | ์ ํ์ | CPU, GPU (NVIDIA, Intel) |
vLLM | ๋งค์ฐ ๋์ (PagedAttention) | ์ฐ์ (ํจ์จ์ KV ์บ์) | ๋งค์ฐ ๋์ (๋๊ท๋ชจ ๋์ ์์ฒญ ์ฒ๋ฆฌ) | GPU ์ค์ฌ (CUDA) |
TensorRT-LLM | ์ต๊ณ (NVIDIA GPU ์ ์ฉ ์ต์ ํ) | ์ฐ์ (FP8, INT4) | ๋์ | NVIDIA GPU ์ ์ฉ |
TGI | ๋์ (FlashAttention) | ์ฐ์ | ๋์ | GPU ์ค์ฌ |
llama.cpp | ๋ฎ์~์ค๊ฐ (CPU ๊ธฐ๋ฐ) | ๋งค์ฐ ์ฐ์ (int4/int8 ์์ํ) | ๋ฎ์ | CPU, ๋ชจ๋ฐ์ผ, WebAssembly |
2. API ๊ธฐ๋ฐ vs ์์ฒด ์๋น ๊ธฐ๋ฐ ๋น๊ต
ํญ๋ชฉ | API ๊ธฐ๋ฐ (OpenAI, Claude API ๋ฑ) | ์์ฒด ์๋น (vLLM, TensorRT-LLM ๋ฑ) |
---|---|---|
๋ณด์ | ์ธ๋ถ ์ ์ก ํ์ โ ๊ธฐ๋ฐ ์ ์ถ ์ํ | ์ฌ๋ด๋ง/์จํ๋ ๋ฏธ์ค โ ๋์ ๋ณด์์ฑ |
๋น์ฉ | ์๊ท๋ชจ ์ ๋ ด, ๋๊ท๋ชจ ๊ณ ๋น์ฉ | ์ด๊ธฐ ๋น์ฉโ, ๋๊ท๋ชจ ์ฅ๊ธฐ ์ ๋ ด |
์ด์ ๋์ด๋ | ์ฌ์ (์๋น์ค ์ ๊ณต์ฌ ๊ด๋ฆฌ) | ๋์ (๋ชจ๋ธ ๋ฐฐํฌยท๋ชจ๋ํฐ๋ง ํ์) |
์ ์ฐ์ฑ | ๋ชจ๋ธ ๊ตฌ์กฐ/๊ฐ์ค์น ์์ ๋ถ๊ฐ | ์์ ๋ก์ด ์์ ยท์ต์ ํ ๊ฐ๋ฅ |
์ฑ๋ฅ ์ ์ด | ์ ๊ณต์ฌ SLA ์์กด | ํ๋์จ์ดยท์ํํธ์จ์ด ์ง์ ํ๋ ๊ฐ๋ฅ |
์ ๋ฐ์ดํธ | ์๋ ์ต์ ๋ชจ๋ธ ์ ๊ณต | ์ง์ ์ ๊ทธ๋ ์ด๋ ํ์ |
3. ๊ฐ์ค์น ์์ vs Fine-tuning vs RAG ๋น๊ต
- ๊ด๋ฆฌํ LLM์์์ Fine-tuning ์ ํ ์ฌํญ
- ์๋ณธ ๊ฐ์ค์น ์ ๊ทผ ๋ถ๊ฐ
- ์ปค์คํ ํ์ต ๋ฐ์ดํฐ ์ ๋ก๋๋ง ๊ฐ๋ฅ
- ํ์ต๋ ๊ฒฐ๊ณผ๋ฌผ์ API ํํ๋ก๋ง ํธ์ถ ๊ฐ๋ฅ
๊ตฌ๋ถ | ๊ฐ์ค์น ์์ (Weight Editing) | Fine-tuning | RAG (๊ฒ์๊ฒฐํฉ์์ฑ) |
---|---|---|---|
์ ์ | ํน์ ๋ ์ด์ด ํ๋ผ๋ฏธํฐ ์ง์ ๋ณ๊ฒฝ | ์ ๋ฐ์ดํฐ๋ก ๋ชจ๋ธ ์ฌํ์ต | ์ธ๋ถ ์ง์ ๊ฒ์ ํ ์ ๋ ฅ์ ๊ฒฐํฉ |
๋ชฉ์ | ํน์ ์ง์/ํธํฅ ์์ , ๋ฏธ์ธ ๋ณ๊ฒฝ | ๋๋ฉ์ธ/ํ์คํฌ ํนํ | ์ต์ ์ ๋ณด ๋ฐ์, ์ง์ ํ์ฅ |
์์ ๋ฒ์ | ๋จ์ผ ํ๋ผ๋ฏธํฐ~์ ์ฒด ๊ฐ๋ฅ | ์ ์ฒด/๋ถ๋ถ ๋ ์ด์ด | ๋ชจ๋ธ ๊ฐ์ค์น ๋ณ๊ฒฝ ์์ |
๋ฐ์ดํฐ ํ์ | ์์ ๋๋ ์๋ | ํ์ต ๋ฐ์ดํฐ ํ์ | ๋ฌธ์ยทDB ๋ฑ ์ธ๋ถ ์๋ฃ |
์๋/๋น์ฉ | ๋น ๋ฆ(์๊ท๋ชจ ๋ณ๊ฒฝ) | ๋๋ฆผ(ํ์ต ํ์) | ๋น ๋ฆ(๊ฒ์+์ถ๋ก ) |
๊ด๋ฆฌํ LLM์์ ๊ฐ๋ฅ ์ฌ๋ถ | โ ๋ถ๊ฐ | โ ์ผ๋ถ ๊ฐ๋ฅ (API ์ ๊ณต ๋ฒ์ ๋ด) | โ ๊ฐ๋ฅ |
์์ | ๋ชจ๋ธ์ ์ ์ฅ๋ ์๋ชป๋ ์ฌ์ค ์์ | GPT-3.5๋ฅผ ๋ฒ๋ฅ ๋ฌธ์ ์์ฑ ํนํ | ๋ด๋ถ ๋ฌธ์ ๊ฒ์ ํ ๋ต๋ณ |
์๋น ์ฑ๋ฅ ์ต์ ํ ์ค์ต
๋ค์ด๋ก๋ ๋งํฌ serving_extensions_vllm_tensorrtllm.ipynb
vLLM๊ณผ TensorRT-LLM์ ์ด์ฉํ ๊ณ ์ฑ๋ฅ LLM ์๋น ํ๊ฒฝ ๊ตฌ์ถ ๊ฐ์ด๋์ ์ฑ๋ฅ ํ๋ ์ค์ต.
์ฃผ์ ๋ด์ฉ:
- vLLM Python API ๋ฐ OpenAI ํธํ ์๋ฒ ์คํ ๋ฐฉ๋ฒ
- ๋์์ฑ/๋ฐฐ์น/๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ์ต์
(
max_num_batched_token
,gpu_memory_utilization
๋ฑ) - TensorRT-LLM ๋ณํ/์์ง ๋น๋ ๋ช
๋ น์ด ์์ (
fp16
,fp8
,int8
์ ๋ฐ๋ ์ ํ) - ๋ฐํ์ ์ถ๋ก , ์๋ฒ ๋ชจ๋ ๊ตฌ์ฑ, ๋ณ๋ ฌํ ์ ๋ต
- OpenAI ํธํ ์๋ํฌ์ธํธ ์ฑ๋ฅ ์ธก์ ๋ฏธ๋ ๋ฒค์น๋งํฌ ์ฝ๋
- ์ค์ ์ฑ๋ฅ ์ต์ ํ ์ฒดํฌ๋ฆฌ์คํธ
GPT-5, Claude-4 ๋ฅผ ํตํด ์์ฑ๋ ๋ฌธ์๋ฅผ ์์
LLM ์๋น ๊ด๋ จ ์ ๋ฆฌ
https://kimjj81.github.io/2025/08/12/LLM-์๋น-๊ด๋ จ-์ ๋ฆฌ/