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-์„œ๋น™-๊ด€๋ จ-์ •๋ฆฌ/
Author
๊น€ ์ •์ง„
Posted on
August 12, 2025
Licensed under