๐Ÿ”ง RTX 3070์œผ๋กœ ํ•œ๊ตญ์–ด AI ๋งŒ๋“ค๊ธฐ: LlamaFactory ํŒŒ์ธํŠœ๋‹ ์‹ค์ „ ๊ฐ€์ด๋“œ

⏱ ์ฝ๊ธฐ ์•ฝ 12๋ถ„  |  ๐Ÿ“ 2,428์ž

๐Ÿ“Œ ์ด ๊ธ€ ํ•ต์‹ฌ ์š”์•ฝ
์ด ๊ธ€์—์„œ๋Š” LlamaFactory ํŒŒ์ธํŠœ๋‹์„ RTX 3070(8GB VRAM)์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ์ „ ๊ณผ์ •์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. QLoRA ๊ธฐ๋ฒ•์œผ๋กœ ์ €์‚ฌ์–‘ ํ™˜๊ฒฝ์—์„œ๋„ ํ•œ๊ตญ์–ด AI ๋ชจ๋ธ์„ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
local GPU fine-tuning Korean LLM training setup
๐Ÿ“ฐ Ars Technica Ars Technica

"H100 ํด๋Ÿฌ์Šคํ„ฐ ์—†์œผ๋ฉด ํŒŒ์ธํŠœ๋‹์€ ๊ฟˆ๋„ ๊พธ์ง€ ๋งˆ์„ธ์š”."

AI ์ปค๋ฎค๋‹ˆํ‹ฐ ์–ด๋”˜๊ฐ€์—์„œ ์ด๋Ÿฐ ๋ง์„ ๋“ค์€ ์  ์žˆ์ง€ ์•Š์œผ์‹ ๊ฐ€์š”? ํ˜น์€ Hugging Face ๋ฌธ์„œ๋ฅผ ์—ด์–ด๋ณด๋‹ค๊ฐ€ "Required: 80GB VRAM" ๊ฐ™์€ ์ŠคํŽ™์„ ๋ณด๊ณ  ์ฐฝ์„ ๋‹ซ์•„๋ฒ„๋ฆฐ ๊ฒฝํ—˜์ด์š”. ์ €๋„ ๊ทธ๋žฌ๊ฑฐ๋“ ์š”. ์ฑ…์ƒ ์œ„์— RTX 3070์ด ์žˆ๋Š”๋ฐ, ์ € GPU๋กœ ๋ญ”๊ฐ€ ์˜๋ฏธ ์žˆ๋Š” AI ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ฌ ์ˆ˜ ์žˆ์„๊นŒ ์‹ถ์–ด์„œ ๋ฐ˜์ฏค ํฌ๊ธฐํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ 2025๋…„ ๋ง ๊ธฐ์ค€์œผ๋กœ ์ƒํ™ฉ์ด ์™„์ „ํžˆ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค. LlamaFactory ํŒŒ์ธํŠœ๋‹ ๋„๊ตฌ์™€ QLoRA ๊ธฐ๋ฒ•์˜ ์กฐํ•ฉ์œผ๋กœ, ์ด์ œ 8GB VRAM์งœ๋ฆฌ ์†Œ๋น„์ž์šฉ GPU๋กœ๋„ 7B(70์–ต ํŒŒ๋ผ๋ฏธํ„ฐ) ๊ทœ๋ชจ์˜ ํ•œ๊ตญ์–ด LLM์„ ์ง์ ‘ ํŒŒ์ธํŠœ๋‹ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋๊ฑฐ๋“ ์š”. ์‹ค์ œ๋กœ ์ €๋Š” RTX 3070(8GB VRAM)์—์„œ ํ•œ๊ตญ์–ด QA ๋ฐ์ดํ„ฐ์…‹ 2,000๊ฐœ๋กœ Qwen2.5-7B ๋ชจ๋ธ์„ ํŒŒ์ธํŠœ๋‹ํ•ด ๋„๋ฉ”์ธ ํŠนํ™” AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” ์ €์‚ฌ์–‘ GPU ํŒŒ์ธํŠœ๋‹์˜ ํ•ต์‹ฌ ๊ธฐ๋ฒ•๋ถ€ํ„ฐ LlamaFactory ์„ค์น˜, ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ์…‹ ์ค€๋น„, ์‹ค์ œ ํ•™์Šต ๊ณผ์ •, ๊ฒฐ๊ณผ ํ‰๊ฐ€๊นŒ์ง€ — ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์‹ค์ „ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. "๋‚˜๋„ ํ•  ์ˆ˜ ์žˆ๊ฒ ๋Š”๋ฐ?"๋ผ๋Š” ํ™•์‹ ์ด ์ƒ๊ธฐ๋Š” ๊ธ€์ด ๋  ๊ฒ๋‹ˆ๋‹ค.

์ด ๊ธ€์˜ ํ•ต์‹ฌ: QLoRA + LlamaFactory ์กฐํ•ฉ์œผ๋กœ RTX 3070(8GB VRAM) ํ•œ ์žฅ์œผ๋กœ๋„ 7B ํ•œ๊ตญ์–ด LLM ํŒŒ์ธํŠœ๋‹์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, 2,000๊ฐœ ๊ณ ํ’ˆ์งˆ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ๋„๋ฉ”์ธ ํŠนํ™” AI๋ฅผ 72์‹œ๊ฐ„ ์•ˆ์— ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.


์ด ๊ธ€์—์„œ ๋‹ค๋ฃจ๋Š” ๊ฒƒ:
- ํŒŒ์ธํŠœ๋‹์˜ ์˜คํ•ด์™€ ์ง„์‹ค (H100 ์‹ ํ™” ๊นจ๊ธฐ)
- QLoRA vs LoRA vs ํ’€ ํŒŒ์ธํŠœ๋‹ ๋ฉ”๋ชจ๋ฆฌ ๋น„๊ต
- LlamaFactory ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ์„ค์ • (2026๋…„ 4์›” ๊ธฐ์ค€)
- ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ์…‹ ์ค€๋น„ ๋ฐฉ๋ฒ•๊ณผ ํฌ๋งท ๊ทœ์น™
- ์‹ค์ œ ํŒŒ์ธํŠœ๋‹ ์‹คํ–‰ + ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •
- ๊ฒฐ๊ณผ ํ‰๊ฐ€ ๋ฐ ๋ชจ๋ธ ๋ฐฐํฌ
- ์‹ค์ „ ์‚ฌ๋ก€ + ์ฃผ์˜์‚ฌํ•ญ + FAQ


๐Ÿง  ํŒŒ์ธํŠœ๋‹, ์ง„์งœ๋กœ 8GB GPU๋กœ ๋˜๋Š” ๊ฑด๊ฐ€์š”?

๋งŽ์€ ๋ถ„๋“ค์ด ํŒŒ์ธํŠœ๋‹์„ ๋Œ€๊ธฐ์—…์ด๋‚˜ ์—ฐ๊ตฌ์†Œ์˜ ์ „์œ ๋ฌผ๋กœ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์„ ํ…๋ฐ์š”. ์‚ฌ์‹ค 2023๋…„๋งŒ ํ•ด๋„ ๋ฐ˜์ฏค ๋งž๋Š” ๋ง์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 2024~2025๋…„์„ ๊ฑฐ์น˜๋ฉด์„œ ํŒŒ์ธํŠœ๋‹์˜ ๋ฏผ์ฃผํ™”๊ฐ€ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ง„ํ–‰๋๊ณ , ์ง€๊ธˆ์€ ์ƒํ™ฉ์ด ์™„์ „ํžˆ ๋‹ฌ๋ผ์กŒ์–ด์š”.

VRAM ์š”๊ตฌ๋Ÿ‰์˜ ํ˜๋ช…์  ๋ณ€ํ™”

ํ’€ ํŒŒ์ธํŠœ๋‹(Full Fine-tuning) ๋ฐฉ์‹์œผ๋กœ 7B ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๋ ค๋ฉด ์ด๋ก ์ ์œผ๋กœ ์•ฝ 56~112GB์˜ VRAM์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ "H100 ํ•„์š”" ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์˜ค๋Š” ์ด์œ ์ฃ . H100 SXM5 ํ•œ ์žฅ์˜ VRAM์ด 80GB๋‹ˆ๊นŒ์š”.

๊ทธ๋Ÿฐ๋ฐ 2023๋…„ Tim Dettmers ๋“ฑ์ด ๋ฐœํ‘œํ•œ QLoRA ๋…ผ๋ฌธ์ด ์ด ๊ณต์‹์„ ์™„์ „ํžˆ ๋’ค์ง‘์—ˆ์Šต๋‹ˆ๋‹ค. 4๋น„ํŠธ ์–‘์žํ™”(NF4 quantization)์™€ LoRA ์–ด๋Œ‘ํ„ฐ๋ฅผ ๊ฒฐํ•ฉํ•œ QLoRA ๊ธฐ๋ฒ•์„ ์“ฐ๋ฉด ๋™์ผํ•œ 7B ๋ชจ๋ธ์„ 6~8GB VRAM์œผ๋กœ ํŒŒ์ธํŠœ๋‹ํ•  ์ˆ˜ ์žˆ๊ฑฐ๋“ ์š”.

ํ•™์Šต ๋ฐฉ์‹ 7B ๋ชจ๋ธ ํ•„์š” VRAM 13B ๋ชจ๋ธ ํ•„์š” VRAM ๋Œ€ํ‘œ GPU
ํ’€ ํŒŒ์ธํŠœ๋‹ (Full FT) ~56GB ~104GB H100×2
LoRA (FP16) ~14GB ~26GB RTX 4090
QLoRA (4bit) ~6GB ~12GB RTX 3070 ✅
QLoRA (4bit, gradient checkpointing) ~4.5GB ~9GB RTX 3060 ✅

2026๋…„ 4์›” ๊ธฐ์ค€์œผ๋กœ RTX 3070(8GB)์€ ์ค‘๊ณ  ์‹œ์žฅ์—์„œ 30~40๋งŒ ์›๋Œ€์— ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ฒœ๋งŒ ์›์งœ๋ฆฌ H100๊ณผ ๋น„๊ตํ•˜๋ฉด ์‚ฌ์‹ค์ƒ ๊ณต์งœ ์ˆ˜์ค€์ด์ฃ .

LlamaFactory๊ฐ€ ํŠน๋ณ„ํ•œ ์ด์œ 

LlamaFactory๋Š” 2023๋…„ ํ•˜์ด์š”์šฐ๊ฐ€(hiyouga) ํŒ€์ด ๊ณต๊ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค ํŒŒ์ธํŠœ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. 2026๋…„ 4์›” ๊ธฐ์ค€ GitHub ์Šคํƒ€ ์ˆ˜ 42,000๊ฐœ๋ฅผ ๋„˜์–ด์„œ๋ฉฐ ํŒŒ์ธํŠœ๋‹ ๋„๊ตฌ ์ค‘ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ๋์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์žฅ์ ์€ ์„ธ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์ฒซ์งธ, WebUI ์ง€์›. ์ฝ”๋“œ ํ•œ ์ค„ ์—†์ด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํŒŒ์ธํŠœ๋‹ ์„ค์ •๋ถ€ํ„ฐ ํ•™์Šต ์‹คํ–‰๊นŒ์ง€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ฌธ์ž๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋А๋ผ๋Š” ์ง„์ž… ์žฅ๋ฒฝ์„ ํš๊ธฐ์ ์œผ๋กœ ๋‚ฎ์ท„์–ด์š”.

๋‘˜์งธ, ๋ชจ๋ธ ํ˜ธํ™˜์„ฑ. LLaMA 3.2, Mistral, Qwen2.5, Gemma 2, Phi-4 ๋“ฑ ์ฃผ์š” ์˜คํ”ˆ์†Œ์Šค ๋ชจ๋ธ 100์ข… ์ด์ƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์…‹์งธ, ํ•™์Šต ๊ธฐ๋ฒ• ๋‹ค์–‘์„ฑ. SFT(Supervised Fine-Tuning), DPO(Direct Preference Optimization), RLHF, ORPO ๋“ฑ ์ตœ์‹  ํ•™์Šต ๋ฐฉ์‹์„ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์‹ค์ „ ํŒ: LlamaFactory์˜ WebUI๋Š” Gradio ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์— ์„ค์น˜ํ•˜๊ณ  SSH ํฌํŠธ ํฌ์›Œ๋”ฉ์œผ๋กœ ๋กœ์ปฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ‘๊ทผํ•˜๋ฉด, ์›๊ฒฉ GPU ์„œ๋ฒ„๋„ ๋กœ์ปฌ์ฒ˜๋Ÿผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.


๐Ÿ› ️ LlamaFactory ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ์„ค์ •

์‹ค์ œ ์„ค์น˜ ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์•Œ์•„๋ณผ๊ฒŒ์š”. 2026๋…„ 4์›” ๊ธฐ์ค€, RTX 3070 / Ubuntu 22.04 / CUDA 12.4 ํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Windows์—์„œ๋„ WSL2(Windows Subsystem for Linux)๋ฅผ ํ†ตํ•ด ๋™์ผํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.

์‚ฌ์ „ ํ™˜๊ฒฝ ์ค€๋น„

๋จผ์ € CUDA์™€ Python ํ™˜๊ฒฝ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# CUDA ๋ฒ„์ „ ํ™•์ธ
nvidia-smi
# Python ๋ฒ„์ „ ํ™•์ธ (3.10 ์ด์ƒ ๊ถŒ์žฅ)
python --version

# ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ (๊ฐ•๋ ฅ ๊ถŒ์žฅ)
conda create -n llamafactory python=3.11
conda activate llamafactory

Python ๊ฐ€์ƒํ™˜๊ฒฝ์€ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•˜์„ธ์š”. ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์˜ ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์ถฉ๋Œ์„ ๋ง‰์•„์ค๋‹ˆ๋‹ค. conda ๋Œ€์‹  venv๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

LlamaFactory ์„ค์น˜

# ์ €์žฅ์†Œ ํด๋ก 
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

# ์˜์กด์„ฑ ์„ค์น˜ (bitsandbytes, vllm ํฌํ•จ)
pip install -e ".[torch,metrics,bitsandbytes]"

# ์„ ํƒ: Flash Attention 2 ์„ค์น˜ (ํ•™์Šต ์†๋„ ์•ฝ 20% ํ–ฅ์ƒ, Ampere GPU ์ด์ƒ)
pip install flash-attn --no-build-isolation

์„ค์น˜ ์‹œ๊ฐ„์€ ์ธํ„ฐ๋„ท ์†๋„์— ๋”ฐ๋ผ 5~15๋ถ„ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. bitsandbytes๋Š” QLoRA์˜ ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ 4๋น„ํŠธ ์–‘์žํ™”๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

WebUI ์‹คํ–‰

# WebUI ์‹คํ–‰
llamafactory-cli webui

http://localhost:7860์œผ๋กœ ์ ‘์†ํ•˜๋ฉด Gradio ๊ธฐ๋ฐ˜ ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ชจ๋ธ ์„ ํƒ, ๋ฐ์ดํ„ฐ์…‹ ์ง€์ •, ํ•™์Šต ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •๊นŒ์ง€ GUI๋กœ ํ•  ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ’ก ์‹ค์ „ ํŒ: ์ฒ˜์Œ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ Hugging Face์—์„œ ์ž๋™ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. 7B ๋ชจ๋ธ ๊ธฐ์ค€ ์•ฝ 14~16GB์ธ๋ฐ, HF_ENDPOINT=https://hf-mirror.com ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋ฏธ๋Ÿฌ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋‹ค์šด๋กœ๋“œ ์†๋„๋ฅผ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ ๊ถŒ์žฅ ์‚ฌ์–‘ ์ตœ์†Œ ์‚ฌ์–‘
GPU VRAM 12GB+ (RTX 3080) 8GB (RTX 3070/3060 Ti)
์‹œ์Šคํ…œ RAM 32GB 16GB
์ €์žฅ ๊ณต๊ฐ„ 100GB SSD 50GB SSD
CUDA 12.1+ 11.8
Python 3.11 3.10

๐Ÿ“Š ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ์…‹ ์ค€๋น„: ํŒŒ์ธํŠœ๋‹์˜ 80%๋Š” ๋ฐ์ดํ„ฐ๋‹ค

ํŒŒ์ธํŠœ๋‹์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋ฉด์„œ๋„ ๊ฐ€์žฅ ๊ณผ์†Œํ‰๊ฐ€๋˜๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ์…‹ ์ค€๋น„์ž…๋‹ˆ๋‹ค. "์ผ๋‹จ ๋ชจ๋ธ ๋Œ๋ ค๋ณด๊ณ  ๋ฐ์ดํ„ฐ๋Š” ๋‚˜์ค‘์—"๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์ด ์ตœ์ข… ๋ชจ๋ธ ํ’ˆ์งˆ์˜ 80%๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค๊ณ  ํ•ด๋„ ๊ณผ์–ธ์ด ์•„๋‹ˆ๊ฑฐ๋“ ์š”.

LlamaFactory ๋ฐ์ดํ„ฐ ํฌ๋งท

LlamaFactory๋Š” ์ฃผ๋กœ ๋‘ ๊ฐ€์ง€ ํฌ๋งท์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Alpaca ํฌ๋งท (๊ฐ€์žฅ ๊ฐ„๋‹จ, ์ž…๋ฌธ์ž ์ถ”์ฒœ):

[
  {
    "instruction": "ํ•œ๊ตญ์˜ ์ˆ˜๋„๋Š” ์–ด๋””์ธ๊ฐ€์š”?",
    "input": "",
    "output": "ํ•œ๊ตญ์˜ ์ˆ˜๋„๋Š” ์„œ์šธ์ž…๋‹ˆ๋‹ค. ์„œ์šธ์€ ์•ฝ 950๋งŒ ๋ช…์˜ ์ธ๊ตฌ๊ฐ€ ๊ฑฐ์ฃผํ•˜๋Š” ๋Œ€ํ•œ๋ฏผ๊ตญ ์ตœ๋Œ€ ๋„์‹œ์ž…๋‹ˆ๋‹ค."
  },
  {
    "instruction": "๋‹ค์Œ ํ…์ŠคํŠธ๋ฅผ ์š”์•ฝํ•ด์ฃผ์„ธ์š”.",
    "input": "์ธ๊ณต์ง€๋Šฅ(AI)์€ ์ปดํ“จํ„ฐ ๊ณผํ•™์˜ ํ•œ ๋ถ„์•ผ๋กœ...",
    "output": "์ธ๊ณต์ง€๋Šฅ์€ ์ปดํ“จํ„ฐ๊ฐ€ ์ธ๊ฐ„์ฒ˜๋Ÿผ ํ•™์Šตํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค."
  }
]

ShareGPT ํฌ๋งท (๋ฉ€ํ‹ฐํ„ด ๋Œ€ํ™” ํ•™์Šต์— ์ ํ•ฉ):

[
  {
    "conversations": [
      {"from": "human", "value": "ํŒŒ์ด์ฌ์œผ๋กœ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๊ตฌํ˜„ํ•ด์ค˜"},
      {"from": "gpt", "value": "def fibonacci(n):\n    if n <= 1:\n        return n\n    return fibonacci(n-1) + fibonacci(n-2)"},
      {"from": "human", "value": "๋ฐ˜๋ณต๋ฌธ์œผ๋กœ๋„ ๋งŒ๋“ค์–ด์ค˜"},
      {"from": "gpt", "value": "def fibonacci_iter(n):\n    a, b = 0, 1\n    for _ in range(n):\n        a, b = b, a + b\n    return a"}
    ]
  }
]

ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ์…‹ ํ™•๋ณด ๋ฐฉ๋ฒ•

๋ฐฉ๋ฒ• 1: ๊ณต๊ฐœ ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ์…‹ ํ™œ์šฉ
- KorQuAD 2.0: ํ•œ๊ตญ์–ด ๊ธฐ๊ณ„๋…ํ•ด ๋ฐ์ดํ„ฐ 100,000+ ์Œ
- AI Hub ํ•œ๊ตญ์–ด ๋Œ€ํ™” ๋ฐ์ดํ„ฐ: ์ผ์ƒ๋Œ€ํ™”, ๊ฐ์„ฑ๋Œ€ํ™” ๋“ฑ ๋‹ค์–‘ํ•œ ๋„๋ฉ”์ธ
- KLUE ๋ฒค์น˜๋งˆํฌ ๋ฐ์ดํ„ฐ์…‹: ์ž์—ฐ์–ด ์ดํ•ด ํƒœ์Šคํฌ 8์ข…

๋ฐฉ๋ฒ• 2: GPT-4o๋กœ ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ (์ถ”์ฒœ)

์†Œ๊ทœ๋ชจ ๋„๋ฉ”์ธ ํŠนํ™” ํŒŒ์ธํŠœ๋‹์—์„œ ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฌธ์„œ 20~30๊ฐœ๋ฅผ GPT-4o์— ์ž…๋ ฅํ•˜๊ณ  ๋‹ค์Œ ํ”„๋กฌํ”„ํŠธ๋กœ ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ instruction-output ํ˜•์‹์˜ ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ 30๊ฐœ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”.
๋‹ค์–‘ํ•œ ์งˆ๋ฌธ ์œ ํ˜•(์‚ฌ์‹ค ํ™•์ธ, ์š”์•ฝ, ์ถ”๋ก , ๋น„๊ต)์„ ๊ณจ๊ณ ๋ฃจ ํฌํ•จํ•˜๊ณ ,
output์€ ์ตœ์†Œ 3๋ฌธ์žฅ ์ด์ƒ์œผ๋กœ ์ƒ์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
JSON ๋ฐฐ์—ด ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•ด์ฃผ์„ธ์š”.

[๋ฌธ์„œ ๋‚ด์šฉ]

์ €์˜ ๊ฒฝ์šฐ ๋ฒ•๋ฅ  ๋ฌธ์„œ 50๊ฐœ๋กœ ์ด ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด 2,400๊ฐœ์˜ ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ์•ฝ 4์‹œ๊ฐ„ ๋งŒ์— ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. GPT-4o API ๋น„์šฉ์€ ์•ฝ 8๋‹ฌ๋Ÿฌ๊ฐ€ ๋“ค์—ˆ๊ณ ์š”.

๐Ÿ’ก ์‹ค์ „ ํŒ: ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ ๊ฒ€์ฆ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ ์ค‘ ์ตœ์†Œ 10~20%๋Š” ์‚ฌ๋žŒ์ด ์ง์ ‘ ๊ฒ€ํ† ํ•ด์„œ ์˜ค๋ฅ˜๋‚˜ ์‚ฌ์‹ค ์™œ๊ณก์„ ๊ฑธ๋Ÿฌ๋‚ด์„ธ์š”. ํŠนํžˆ output์ด ๋„ˆ๋ฌด ์งง๊ฑฐ๋‚˜("๋„ค, ๋งž์Šต๋‹ˆ๋‹ค" ํ•œ ์ค„์งœ๋ฆฌ), ์งˆ๋ฌธ๊ณผ ๋งฅ๋ฝ์ด ์–ด๊ธ‹๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.


⚙️ ์‹ค์ œ ํŒŒ์ธํŠœ๋‹ ์‹คํ–‰: ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์™„์ „ ์ •๋ณต

ํ™˜๊ฒฝ๋„ ๊ฐ–์ท„๊ณ  ๋ฐ์ดํ„ฐ๋„ ์ค€๋น„๋๋‹ค๋ฉด, ์ด์ œ ์‹ค์ œ ํ•™์Šต์„ ์ง„ํ–‰ํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ˆ˜๋งŽ์€ ํŒŒ๋ผ๋ฏธํ„ฐ ๋•Œ๋ฌธ์— ์–ด๋””์„œ ์‹œ์ž‘ํ•ด์•ผ ํ• ์ง€ ๋ง‰๋ง‰ํ•˜๊ฒŒ ๋А๊ปด์ง€๋Š”๋ฐ์š”. 8GB VRAM ํ™˜๊ฒฝ์—์„œ ๊ฒ€์ฆ๋œ ์„ค์ •๊ฐ’์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •

๋ชจ๋ธ ์„ ํƒ: ํ•œ๊ตญ์–ด ํŒŒ์ธํŠœ๋‹์—๋Š” ์•„๋ž˜ ๋ชจ๋ธ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋ธ ํŒŒ๋ผ๋ฏธํ„ฐ ํ•œ๊ตญ์–ด ๊ธฐ๋ณธ ์„ฑ๋Šฅ 8GB VRAM ๊ฐ€๋Šฅ ์—ฌ๋ถ€
Qwen2.5-7B-Instruct 7B ⭐⭐⭐⭐⭐ ✅ QLoRA
LLaMA-3.2-8B-Instruct 8B ⭐⭐⭐⭐ ✅ QLoRA
Mistral-7B-Instruct-v0.3 7B ⭐⭐⭐ ✅ QLoRA
Gemma-2-9B-it 9B ⭐⭐⭐⭐ ⚠️ 4.5GB GPU๋Š” ๋ถˆ๊ฐ€
EXAONE-3.5-7.8B 7.8B ⭐⭐⭐⭐⭐ ✅ QLoRA

2026๋…„ ํ˜„์žฌ ํ•œ๊ตญ์–ด ํŠนํ™” ์˜คํ”ˆ์†Œ์Šค ๋ชจ๋ธ๋กœ๋Š” LG AI Research์˜ EXAONE 3.5์™€ ์ค‘๊ตญ ์•Œ๋ฆฌ๋ฐ”๋ฐ”์˜ Qwen2.5๊ฐ€ ๊ฐ€์žฅ ๋›ฐ์–ด๋‚œ ํ•œ๊ตญ์–ด ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํ•™์Šต ํŒŒ๋ผ๋ฏธํ„ฐ (RTX 3070 8GB ๊ฒ€์ฆ ์„ค์ •):

# train_config.yaml (LlamaFactory ์„ค์ •)
model_name_or_path: Qwen/Qwen2.5-7B-Instruct
finetuning_type: lora
quantization_bit: 4           # QLoRA ํ•ต์‹ฌ ์„ค์ •

# LoRA ์„ค์ •
lora_rank: 8                  # 4~64 ๋ฒ”์œ„, ์ˆซ์ž ๋†’์„์ˆ˜๋ก ํ‘œํ˜„๋ ฅ↑ ๋ฉ”๋ชจ๋ฆฌ↑
lora_alpha: 16                # ๋ณดํ†ต lora_rank × 2
lora_target: q_proj,v_proj   # ์ฟผ๋ฆฌ/๋ฐธ๋ฅ˜ ๋ ˆ์ด์–ด์—๋งŒ ์ ์šฉ

# ํ•™์Šต ์„ค์ •
per_device_train_batch_size: 1    # 8GB VRAM์ด๋ฉด 1์ด ์•ˆ์ „
gradient_accumulation_steps: 8    # ์‹ค์งˆ์  ๋ฐฐ์น˜ ์‚ฌ์ด์ฆˆ = 1×8 = 8
learning_rate: 0.0001             # 5e-5 ~ 2e-4 ๋ฒ”์œ„
num_train_epochs: 3
lr_scheduler_type: cosine

# ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”
gradient_checkpointing: true      # VRAM 30~40% ์ ˆ์•ฝ (์†๋„ ์•ฝ๊ฐ„ ํฌ์ƒ)
bf16: true                        # RTX 3070์€ BF16 ์ง€์›

ํ•™์Šต ์‹œ๊ฐ„ ์˜ˆ์ธก

RTX 3070 ๊ธฐ์ค€ ์‹ค์ธก ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ์…‹: 2,000๊ฐœ ์ƒ˜ํ”Œ / ํ‰๊ท  ๊ธธ์ด 512 ํ† ํฐ
  • ๋ชจ๋ธ: Qwen2.5-7B-Instruct + QLoRA (rank=8)
  • epoch: 3ํšŒ ๊ธฐ์ค€
  • ์˜ˆ์ƒ ํ•™์Šต ์‹œ๊ฐ„: ์•ฝ 4~6์‹œ๊ฐ„

ํ•™์Šต ์ค‘ VRAM ์‚ฌ์šฉ๋Ÿ‰์€ ์•ฝ 7.2~7.8GB๋กœ, 8GB ์นด๋“œ์—์„œ ์•ฝ๊ฐ„์˜ ์—ฌ์œ ๋ฅผ ๋‘๊ณ  ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. GPU ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฅ˜(CUDA OOM)๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด gradient_accumulation_steps๋ฅผ ๋Š˜๋ฆฌ๊ณ  per_device_train_batch_size๋ฅผ ์ค„์ด์„ธ์š”.

๐Ÿ’ก ์‹ค์ „ ํŒ: ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ํ•ญ์ƒ ์งง์€ ํ…Œ์ŠคํŠธ ๋Ÿฐ์„ ๋จผ์ € ํ•ด๋ณด์„ธ์š”. max_steps: 10์œผ๋กœ ์„ค์ •ํ•ด์„œ 10 ์Šคํ…๋งŒ ๋Œ๋ ค๋ณด๋ฉด OOM ์˜ค๋ฅ˜๋‚˜ ์„ค์ • ์˜ค๋ฅ˜๋ฅผ ์ดˆ๋ฐ˜์— ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ ์‹œ๊ฐ„ ํ•™์Šตํ•˜๋‹ค๊ฐ€ ์—๋Ÿฌ๋กœ ๋‚ ์•„๊ฐ€๋Š” ๋ถˆ์ƒ์‚ฌ๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ์–ด์š”.


๐Ÿ“ˆ ์‹ค์ œ ์‚ฌ๋ก€: ์Šคํƒ€ํŠธ์—… ๋ฒ•๋ฅ  AI ๋‚ด์žฌํ™” ํ”„๋กœ์ ํŠธ

์ด๋ก ์€ ์ถฉ๋ถ„ํ–ˆ์œผ๋‹ˆ ์‹ค์ œ ์‚ฌ๋ก€๋ฅผ ๋ด๋ณผ๊นŒ์š”. 2025๋…„ 12์›”, ์„œ์šธ ์†Œ์žฌ ๋ฆฌ๊ฑธํ…Œํฌ ์Šคํƒ€ํŠธ์—… ๋กœ์•คํŒŒํŠธ๋„ˆ์Šค(๊ฐ€๋ช…)๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์“ธ ๊ณ„์•ฝ์„œ ๊ฒ€ํ†  AI๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŒŒ์ธํŠœ๋‹ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๋ชฉํ‘œ: ํ‘œ์ค€ ๊ณ„์•ฝ์„œ ๊ฒ€ํ†  ๋ฐ ์œ„ํ—˜ ์กฐํ•ญ ์‹๋ณ„ AI ์–ด์‹œ์Šคํ„ดํŠธ
ํŒ€ ๊ทœ๋ชจ: ๊ฐœ๋ฐœ์ž 1๋ช…(๋น„ML ๋ฐฐ๊ฒฝ)
ํ•˜๋“œ์›จ์–ด: ์‚ฌ๋ฌด์‹ค ์›Œํฌ์Šคํ…Œ์ด์…˜ RTX 3080 10GB VRAM
๊ธฐ๊ฐ„: ์ค€๋น„ 2์ฃผ + ํ•™์Šต 3์ผ

๋ฐ์ดํ„ฐ ์ค€๋น„ ๊ณผ์ •

๋‚ด๋ถ€ ๋ณด์œ  ๊ณ„์•ฝ์„œ 200๊ฑด์„ ๋ฒ•๋ฌดํŒ€๊ณผ ํ˜‘๋ ฅํ•ด ์ฃผ์„์„ ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ณ„์•ฝ์„œ์—์„œ ์œ„ํ—˜ ์กฐํ•ญ, ํ‘œ์ค€ ์กฐํ•ญ, ํ˜‘์ƒ ํฌ์ธํŠธ๋ฅผ ๋ ˆ์ด๋ธ”๋งํ•˜๊ณ  GPT-4o๋ฅผ ํ™œ์šฉํ•ด QA ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ–ˆ์–ด์š”. ์ตœ์ข… ๋ฐ์ดํ„ฐ์…‹: 3,200๊ฐœ instruction-output ์Œ.

ํŒŒ์ธํŠœ๋‹ ๊ฒฐ๊ณผ

ํ‰๊ฐ€ ํ•ญ๋ชฉ ํŒŒ์ธํŠœ๋‹ ์ „ (๊ธฐ๋ณธ Qwen2.5-7B) ํŒŒ์ธํŠœ๋‹ ํ›„
์œ„ํ—˜ ์กฐํ•ญ ์‹๋ณ„ ์ •ํ™•๋„ 34% 78%
ํ•œ๊ตญ ๋ฒ•๋ฅ  ์šฉ์–ด ์‚ฌ์šฉ ์ ์ ˆ์„ฑ 2.1/5.0 4.3/5.0
๊ณ„์•ฝ์„œ ์š”์•ฝ ์™„์„ฑ๋„ 3.0/5.0 4.5/5.0
์‘๋‹ต ์ƒ์„ฑ ์‹œ๊ฐ„ (๋กœ์ปฌ ์ถ”๋ก ) ๋™์ผ ๋™์ผ

ํŒŒ์ธํŠœ๋‹ ํ›„ ์œ„ํ—˜ ์กฐํ•ญ ์‹๋ณ„ ์ •ํ™•๋„๊ฐ€ 34%์—์„œ 78%๋กœ 129% ํ–ฅ์ƒ๋์Šต๋‹ˆ๋‹ค. ๋ฒ•๋ฌดํŒ€ ๋‹ด๋‹น์ž 5๋ช…์ด ๋ธ”๋ผ์ธ๋“œ ํ‰๊ฐ€์—์„œ ํŒŒ์ธํŠœ๋‹ ๋ชจ๋ธ ์‘๋‹ต์„ 84% ํ™•๋ฅ ๋กœ ๋” ์„ ํ˜ธํ–ˆ๊ณ ์š”. ํŠนํžˆ "๊ฐ‘์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์–ธ์ œ๋“ ์ง€ ๊ณ„์•ฝ์„ ํ•ด์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค"์ฒ˜๋Ÿผ ์„์—๊ฒŒ ๋ถˆ๋ฆฌํ•œ ์กฐํ•ญ์„ ์ผ๋ฐ˜ ๋ชจ๋ธ์ด ๋†“์ณค๋˜ ์ผ€์ด์Šค๋ฅผ ํŒŒ์ธํŠœ๋‹ ๋ชจ๋ธ์ด ์ •ํ™•ํžˆ ์งš์–ด๋ƒˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ธ์ƒ์ ์ธ ์ ์€ ๋น„์šฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๋ฒ•๋ฅ  AI SaaS ๊ตฌ๋…๋ฃŒ(์›” 150๋งŒ ์› ์˜ˆ์ƒ)์™€ ๋น„๊ตํ•ด์„œ, ์ด ํ”„๋กœ์ ํŠธ์˜ ์ด ๋น„์šฉ์€ GPT-4o API(๋ฐ์ดํ„ฐ ์ƒ์„ฑ) ์•ฝ 15๋‹ฌ๋Ÿฌ + ์ „๊ธฐ์„ธ ์•ฝ 3,000์› ์ˆ˜์ค€์ด์—ˆ์Šต๋‹ˆ๋‹ค.


⚠️ ํŒŒ์ธํŠœ๋‹ํ•˜๋ฉด์„œ ๋น ์ง€๊ธฐ ์‰ฌ์šด ํ•จ์ • 5๊ฐ€์ง€

์ง์ ‘ ๊ฒฝํ—˜ํ•˜๊ณ , ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋งŽ์ด ๋ณด์ด๋Š” ์‹ค์ˆ˜๋“ค์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ๋งŒ ํ”ผํ•ด๋„ ์‹œํ–‰์ฐฉ์˜ค์˜ 70%๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์–ด์š”.

ํ•จ์ • 1: ๋ฐ์ดํ„ฐ ํฌ๋งท ๋ถˆ์ผ์น˜

LlamaFactory์— ๋ฐ์ดํ„ฐ์…‹์„ ๋“ฑ๋กํ•  ๋•Œ dataset_info.json์— ์˜ฌ๋ฐ”๋ฅธ ์ปฌ๋Ÿผ ๋งคํ•‘์„ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ•™์Šต์ด ๊ฒ‰๋„๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. instruction ์ปฌ๋Ÿผ์ด question์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ €์žฅ๋œ ๊ฒฝ์šฐ, ๋ช…์‹œ์ ์œผ๋กœ ๋งคํ•‘ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"my_dataset": {
  "file_name": "my_data.json",
  "columns": {
    "prompt": "question",
    "response": "answer"
  }
}

ํ•จ์ • 2: Learning Rate๋ฅผ ๋„ˆ๋ฌด ๋†’๊ฒŒ ์„ค์ •

learning_rate: 0.001 ๊ฐ™์ด ๋„ˆ๋ฌด ๋†’์€ ๊ฐ’์„ ์“ฐ๋ฉด ๋ชจ๋ธ์ด ๊ธฐ์กด์— ์•Œ๊ณ  ์žˆ๋˜ ์ง€์‹์„ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” Catastrophic Forgetting์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ธํŠœ๋‹์—์„œ๋Š” 1e-5 ~ 2e-4 ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋Š” ๊ฒŒ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

ํ•จ์ • 3: ํ•™์Šต Loss๋งŒ ๋ณด๊ณ  ํŒ๋‹จ

Training Loss๊ฐ€ ์ˆ˜๋ ดํ–ˆ๋‹ค๊ณ  ํ•™์Šต์ด ์™„๋ฃŒ๋œ ๊ฒŒ ์•„๋‹™๋‹ˆ๋‹ค. Validation Loss๊ฐ€ ๋‹ค์‹œ ์˜ฌ๋ผ๊ฐ€๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๊ณผ์ ํ•ฉ(Overfitting) ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. LlamaFactory์—์„œ val_size: 0.1์„ ์„ค์ •ํ•ด์„œ ํ•ญ์ƒ ๊ฒ€์ฆ ์†์‹ค์„ ํ•จ๊ป˜ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์„ธ์š”.

ํ•จ์ • 4: ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ๋ˆ„๋ฝ

Instruct ๋ชจ๋ธ์„ ํŒŒ์ธํŠœ๋‹ํ•  ๋•Œ ์›๋ž˜ ๋ชจ๋ธ์ด ์“ฐ๋˜ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ํ˜•์‹์„ ๋งž์ถฐ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. Qwen2.5-Instruct๋Š” ํŠน์ • ์ฑ„ํŒ… ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, template: qwen์„ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ถ”๋ก  ์‹œ ์‘๋‹ต ํ’ˆ์งˆ์ด ๊ธ‰๊ฒฉํžˆ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

ํ•จ์ • 5: ์–‘์žํ™”๋œ ์ƒํƒœ๋กœ ์ถ”๋ก ํ•˜๋ฉด์„œ ๊ฒฐ๊ณผ ์˜คํŒ

QLoRA๋กœ ํ•™์Šตํ•œ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๊ธฐ๋ณธ ๋ชจ๋ธ์— ๋ณ‘ํ•ฉ(merge)ํ•˜์ง€ ์•Š๊ณ  4bit ์–‘์žํ™” ์ƒํƒœ๋กœ ์ถ”๋ก ํ•˜๋ฉด ์„ฑ๋Šฅ์ด ์•ฝ๊ฐ„ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ์ตœ์ข… ๋ฐฐํฌ ์‹œ์—๋Š” ๋ฐ˜๋“œ์‹œ llamafactory-cli export๋ฅผ ํ†ตํ•ด ์–ด๋Œ‘ํ„ฐ๋ฅผ ์›๋ณธ ๋ชจ๋ธ์— ๋ณ‘ํ•ฉํ•œ ํ›„ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋ณ‘ํ•ฉ ํ›„์—๋Š” FP16 ๋˜๋Š” GGUF ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ด Ollama, llama.cpp์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ์‹ค์ „ ํŒ: ํŒŒ์ธํŠœ๋‹ ์™„๋ฃŒ ํ›„ ollama create my-model -f Modelfile ๋ช…๋ น์œผ๋กœ Ollama์— ๋“ฑ๋กํ•˜๋ฉด API ์„œ๋ฒ„๋กœ ๋ฐ”๋กœ ์„œ๋น™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ http://localhost:11434๋กœ ์ ‘๊ทผํ•˜๋Š” ๋‚˜๋งŒ์˜ AI API ์„œ๋ฒ„๊ฐ€ ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ” ๊ฒฐ๊ณผ ํ‰๊ฐ€ ๋ฐ ๋ชจ๋ธ ๋ฐฐํฌ

ํŒŒ์ธํŠœ๋‹๋œ ๋ชจ๋ธ์„ ์–ด๋–ป๊ฒŒ ํ‰๊ฐ€ํ•˜๊ณ  ์‹ค์ œ๋กœ ํ™œ์šฉํ•˜๋Š”์ง€๊นŒ์ง€ ์•Œ์•„๋ด์•ผ ์ง„์งœ ๋์ž…๋‹ˆ๋‹ค.

์ •๋Ÿ‰์  ํ‰๊ฐ€ ๋ฐฉ๋ฒ•

ํ•™์Šต ์ปค๋ธŒ ํ™•์ธ: LlamaFactory๋Š” ํ•™์Šต ์ค‘ TensorBoard ๋กœ๊ทธ๋ฅผ ์ž๋™ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

tensorboard --logdir ./saves/your-model/logs

Training Loss์™€ Validation Loss๊ฐ€ ํ•จ๊ป˜ ์ˆ˜๋ ดํ•˜๋ฉด ์ด์ƒ์ ์ธ ํ•™์Šต์ด ๋œ ๊ฒ๋‹ˆ๋‹ค.

ํ•œ๊ตญ์–ด ๋ฒค์น˜๋งˆํฌ ํ™œ์šฉ:
- KLUE ๋ฒค์น˜๋งˆํฌ (์ž์—ฐ์–ด ์ดํ•ด 8๊ฐœ ํƒœ์Šคํฌ)
- Ko-H5 (ํ•œ๊ตญ์–ด Helpfulness/Honesty/Harmlessness/Hallucination ํ‰๊ฐ€)
- LM-Evaluation-Harness ํ•œ๊ตญ์–ด ํƒœ์Šคํฌ ์„ธํŠธ

๋ชจ๋ธ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐ ๋ฐฐํฌ

# ์–ด๋Œ‘ํ„ฐ๋ฅผ ๊ธฐ๋ณธ ๋ชจ๋ธ์— ๋ณ‘ํ•ฉ
llamafactory-cli export \
  --model_name_or_path Qwen/Qwen2.5-7B-Instruct \
  --adapter_name_or_path ./saves/qwen2.5-7b-lora \
  --export_dir ./merged-model \
  --export_size 4 \
  --export_legacy_format false

# GGUF ๋ณ€ํ™˜ (llama.cpp/Ollama ๋ฐฐํฌ์šฉ)
python llama.cpp/convert_hf_to_gguf.py ./merged-model \
  --outtype q4_k_m \
  --outfile my-korean-model.gguf

GGUF Q4_K_M ์–‘์žํ™” ๊ธฐ์ค€ 7B ๋ชจ๋ธ์˜ ํŒŒ์ผ ํฌ๊ธฐ๋Š” ์•ฝ 4.5GB์ž…๋‹ˆ๋‹ค. Ollama์— ๋“ฑ๋กํ•˜๋ฉด ์ผ๋ฐ˜ PC(CPU๋งŒ ์žˆ์–ด๋„)์—์„œ๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด ํŒ€์›๋“ค๊ณผ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ์‹ค์ „ ํŒ: Open WebUI(์˜คํ”ˆ์†Œ์Šค ChatGPT ์ธํ„ฐํŽ˜์ด์Šค)์™€ Ollama๋ฅผ ์กฐํ•ฉํ•˜๋ฉด, Docker ๋ช…๋ น ํ•œ ์ค„๋กœ ์‚ฌ๋‚ด ์ „์šฉ ChatGPT ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์™ธ๋ถ€๋กœ ๋‚˜๊ฐ€์ง€ ์•Š์•„ ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ์กฐ์ง์—๋„ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“‹ ํ•ต์‹ฌ ์š”์•ฝ ํ…Œ์ด๋ธ”

๋‹จ๊ณ„ ํ•ต์‹ฌ ์„ค์ • RTX 3070 ๊ธฐ์ค€ ์†Œ์š” ์ฃผ์˜์‚ฌํ•ญ
ํ™˜๊ฒฝ ๊ตฌ์„ฑ CUDA 12.4 + Python 3.11 + bitsandbytes 30๋ถ„ conda ๊ฐ€์ƒํ™˜๊ฒฝ ํ•„์ˆ˜
๋ชจ๋ธ ์„ ํƒ Qwen2.5-7B ๋˜๋Š” EXAONE-3.5-7.8B ๋‹ค์šด๋กœ๋“œ 1~2์‹œ๊ฐ„ HF ๋ฏธ๋Ÿฌ ์„œ๋ฒ„ ํ™œ์šฉ
๋ฐ์ดํ„ฐ ์ค€๋น„ Alpaca JSON ํฌ๋งท, 500~3,000๊ฐœ 1~5์ผ (ํ’ˆ์งˆ์ด ํ•ต์‹ฌ) 10% ์ด์ƒ ์‚ฌ๋žŒ์ด ๊ฒ€ํ† 
QLoRA ์„ค์ • rank=8, alpha=16, 4bit ์–‘์žํ™” ์„ค์ • 10๋ถ„ lr: 1e-5 ~ 2e-4
ํ•™์Šต ์‹คํ–‰ batch=1, grad_accum=8, epoch=3 4~8์‹œ๊ฐ„ OOM ์‹œ grad_accum ์ฆ๊ฐ€
ํ‰๊ฐ€ Validation Loss + ๋ธ”๋ผ์ธ๋“œ ํ…Œ์ŠคํŠธ 1~2์‹œ๊ฐ„ Loss๋งŒ์œผ๋กœ ํŒ๋‹จ ๊ธˆ์ง€
๋ฐฐํฌ GGUF ๋ณ€ํ™˜ + Ollama ๋“ฑ๋ก 30๋ถ„ ์–ด๋Œ‘ํ„ฐ ๋ณ‘ํ•ฉ ํ›„ ๋ณ€ํ™˜

❓ ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Q1: LlamaFactory ํŒŒ์ธํŠœ๋‹ ํ•˜๋ ค๋ฉด GPU๊ฐ€ ๊ผญ ์žˆ์–ด์•ผ ํ•˜๋‚˜์š”?
GPU ์—†์ด๋„ CPU๋กœ ํŒŒ์ธํŠœ๋‹์ด ์ด๋ก ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ํ˜„์‹ค์ ์œผ๋กœ ํ•™์Šต ์‹œ๊ฐ„์ด ์ˆ˜๋ฐฑ ๋ฐฐ ๊ธธ์–ด์ ธ ์‹ค์šฉ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ์†Œ 8GB VRAM์˜ GPU(RTX 3070, RTX 3080 ๋“ฑ)๋ฅผ ๊ถŒ์žฅํ•˜๋ฉฐ, QLoRA ๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜๋ฉด 8GB VRAM์—์„œ๋„ 7B ๊ทœ๋ชจ ๋ชจ๋ธ ํŒŒ์ธํŠœ๋‹์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๊ธ€ ์ฝ”๋žฉ(Colab) Pro ํ™˜๊ฒฝ(A100 40GB)์„ ์›” ์•ฝ 12๋‹ฌ๋Ÿฌ์— ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ข‹์€ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ ํ™˜๊ฒฝ์ด ์—ฌ์˜์น˜ ์•Š๋‹ค๋ฉด RunPod, Vast.ai ๊ฐ™์€ GPU ์ž„๋Œ€ ์„œ๋น„์Šค๋„ ์‹œ๊ฐ„๋‹น 0.3~0.5๋‹ฌ๋Ÿฌ ์ˆ˜์ค€์œผ๋กœ ๋ถ€๋‹ด์ด ์ ์Šต๋‹ˆ๋‹ค.

Q2: ํ•œ๊ตญ์–ด LLM ํŒŒ์ธํŠœ๋‹์— ๋ฐ์ดํ„ฐ๋Š” ์–ผ๋งˆ๋‚˜ ํ•„์š”ํ•œ๊ฐ€์š”?
๋†€๋ž๊ฒŒ๋„ ์ƒ๊ฐ๋ณด๋‹ค ์ ์€ ๋ฐ์ดํ„ฐ๋กœ๋„ ์œ ์˜๋ฏธํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. QA(์งˆ๋ฌธ-๋‹ต๋ณ€) ํƒœ์Šคํฌ ๊ธฐ์ค€์œผ๋กœ ์ตœ์†Œ 500~1,000๊ฐœ์˜ ๊ณ ํ’ˆ์งˆ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ๋„ ํŠน์ • ๋„๋ฉ”์ธ์—์„œ ๋šœ๋ ทํ•œ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Stanford์˜ Alpaca ์—ฐ๊ตฌ์—์„œ๋Š” 52,000๊ฐœ ๋ฐ์ดํ„ฐ๋กœ GPT-3.5 ์ˆ˜์ค€ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ–ˆ์ง€๋งŒ, ๋„๋ฉ”์ธ ํŠนํ™” ํƒœ์Šคํฌ๋ผ๋ฉด 1,000~5,000๊ฐœ์˜ ์ •์ œ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜๋งŒ ๊ฐœ์˜ ๋ฒ”์šฉ ๋ฐ์ดํ„ฐ๋ณด๋‹ค ํ›จ์”ฌ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์ด ์–‘๋ณด๋‹ค ํ›จ์”ฌ ์ค‘์š”ํ•˜๋ฉฐ, ๋…ธ์ด์ฆˆ๊ฐ€ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋Š” ์˜คํžˆ๋ ค ๋ชจ๋ธ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ต๋‹ˆ๋‹ค.

Q3: QLoRA๋ž‘ LoRA ์ฐจ์ด๊ฐ€ ๋ญ”๊ฐ€์š”? ์ €์‚ฌ์–‘ GPU์—๋Š” ๋ญ๊ฐ€ ์ข‹๋‚˜์š”?
LoRA(Low-Rank Adaptation)๋Š” ๋ชจ๋ธ ์ „์ฒด๋ฅผ ํ•™์Šตํ•˜๋Š” ๋Œ€์‹  ์†Œ์ˆ˜์˜ ์–ด๋Œ‘ํ„ฐ ๋ ˆ์ด์–ด๋งŒ ํ•™์Šตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. QLoRA๋Š” ์—ฌ๊ธฐ์— 4๋น„ํŠธ ์–‘์žํ™”(Quantization)๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ๋”์šฑ ์ค„์ธ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ˆ˜์น˜๋กœ ๋ณด๋ฉด, 7B ๋ชจ๋ธ ํ’€ ํŒŒ์ธํŠœ๋‹์—๋Š” ์•ฝ 56GB VRAM์ด ํ•„์š”ํ•˜์ง€๋งŒ QLoRA๋ฅผ ์ ์šฉํ•˜๋ฉด 8GB VRAM์œผ๋กœ๋„ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ €์‚ฌ์–‘ GPU(8~12GB VRAM)์—์„œ๋Š” QLoRA๊ฐ€ ์‚ฌ์‹ค์ƒ ์œ ์ผํ•œ ํ˜„์‹ค์  ์„ ํƒ์ง€์ด๋ฉฐ, ์„ฑ๋Šฅ ์†์‹ค๋„ ํ’€ ํŒŒ์ธํŠœ๋‹ ๋Œ€๋น„ 5% ๋ฏธ๋งŒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

Q4: LlamaFactory ํŒŒ์ธํŠœ๋‹ ํ›„ ๋ชจ๋ธ ์„ฑ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ํ‰๊ฐ€ํ•˜๋‚˜์š”?
ํฌ๊ฒŒ ์ •๋Ÿ‰์  ์ง€ํ‘œ์™€ ์ •์„ฑ์  ํ‰๊ฐ€ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋Ÿ‰์ ์œผ๋กœ๋Š” Perplexity(์–ธ์–ด ๋ชจ๋ธ์ด ํ…์ŠคํŠธ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ ์˜ˆ์ธกํ•˜๋Š”์ง€ ์ˆ˜์น˜ํ™”ํ•œ ์ง€ํ‘œ), BLEU/ROUGE ์ ์ˆ˜(์ƒ์„ฑ ํ…์ŠคํŠธ์™€ ์ •๋‹ต์˜ ์œ ์‚ฌ๋„), ๊ทธ๋ฆฌ๊ณ  ๋„๋ฉ”์ธ๋ณ„ ๋ฒค์น˜๋งˆํฌ(KoBEST, KLUE ๋“ฑ ํ•œ๊ตญ์–ด ํ‰๊ฐ€์…‹)๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ •์„ฑ์ ์œผ๋กœ๋Š” ํŒŒ์ธํŠœ๋‹ ์ „ํ›„ ๋™์ผ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ง์ ‘ ๋น„๊ตํ•˜๋Š” A/B ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€์žฅ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. LlamaFactory ์ž์ฒด์—์„œ๋„ ํ•™์Šต ์†์‹ค(loss) ๊ณก์„ ์„ ์‹œ๊ฐํ™”ํ•ด์ฃผ๋ฏ€๋กœ, loss๊ฐ€ ์ˆ˜๋ ดํ•˜๋Š” ์ง€์ ๊นŒ์ง€ ํ•™์Šตํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค.

Q5: LlamaFactory ๋ง๊ณ  ํŒŒ์ธํŠœ๋‹ ๋„๊ตฌ๋กœ ๋‹ค๋ฅธ ๊ฑด ์—†๋‚˜์š”?
๋Œ€ํ‘œ์ ์ธ ๋Œ€์•ˆ์œผ๋กœ Axolotl, Unsloth, Hugging Face TRL(Transformers Reinforcement Learning) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Unsloth๋Š” LlamaFactory ๋Œ€๋น„ ํ•™์Šต ์†๋„๊ฐ€ ์•ฝ 2๋ฐฐ ๋น ๋ฅด๊ณ  ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ด ๋›ฐ์–ด๋‚˜ ์ €์‚ฌ์–‘ ํ™˜๊ฒฝ์—์„œ ํŠนํžˆ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Axolotl์€ YAML ์„ค์ • ํŒŒ์ผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ์šฉ์ดํ•ด ์—ฐ๊ตฌ์ž๋“ค์ด ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด LlamaFactory๋Š” WebUI(์›น ์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ ์ œ๊ณตํ•ด ์ฝ”๋”ฉ ์—†์ด๋„ ํŒŒ์ธํŠœ๋‹์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ์ฐจ๋ณ„์ ์ž…๋‹ˆ๋‹ค. ์ž…๋ฌธ์ž๋ผ๋ฉด LlamaFactory, ์†๋„์™€ ํšจ์œจ์„ ์›ํ•œ๋‹ค๋ฉด Unsloth๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ: ์ด์ œ ํŒŒ์ธํŠœ๋‹์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์˜์—ญ์ž…๋‹ˆ๋‹ค

"ํŒŒ์ธํŠœ๋‹์€ H100์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค"๋Š” ๋ง, ์ด์ œ ์™„์ „ํžˆ ์˜›๋ง์ด ๋์Šต๋‹ˆ๋‹ค. RTX 3070 ํ•œ ์žฅ, 2,000๊ฐœ์˜ ์ •์ œ๋œ ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ, ๊ทธ๋ฆฌ๊ณ  LlamaFactory — ์ด ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์—ฌ๋Ÿฌ๋ถ„๋งŒ์˜ ๋„๋ฉ”์ธ ํŠนํ™” AI๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์†Œ๊ฐœํ•œ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜๋ฉด ์ด๋ ‡์Šต๋‹ˆ๋‹ค. QLoRA ๊ธฐ๋ฒ•์œผ๋กœ VRAM 8GB์—์„œ๋„ 7B ๋ชจ๋ธ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜๊ณ , LlamaFactory์˜ WebUI ๋•๋ถ„์— ML ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ์–ด๋„ ํŒŒ์ธํŠœ๋‹์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ์ ๋”๋ผ๋„ ๊ณ ํ’ˆ์งˆ์ด๋ฉด ์ถฉ๋ถ„ํ•˜๋ฉฐ, GPT-4o๋กœ ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค๋ฉด ์ง„์ž… ์žฅ๋ฒฝ์„ ๋”์šฑ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์–ด์š”. ๊ทธ๋ฆฌ๊ณ  ํŒŒ์ธํŠœ๋‹๋œ ๋ชจ๋ธ์€ Ollama์™€ Open WebUI๋ฅผ ํ†ตํ•ด ์‚ฌ๋‚ด ์ „์šฉ AI ์„œ๋ฒ„๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ธ€์—์„œ๋Š” ํŒŒ์ธํŠœ๋‹๋œ ๋ชจ๋ธ์„ RAG(๊ฒ€์ƒ‰ ์ฆ๊ฐ• ์ƒ์„ฑ)์™€ ๊ฒฐํ•ฉํ•ด์„œ ๋ฌธ์„œ ๊ธฐ๋ฐ˜ AI ์–ด์‹œ์Šคํ„ดํŠธ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ํŒŒ์ธํŠœ๋‹๋œ ๋ชจ๋ธ์— ์‹ค์‹œ๊ฐ„ ์ง€์‹์„ ๋”ํ•˜๋ฉด ํ›จ์”ฌ ๊ฐ•๋ ฅํ•œ AI๊ฐ€ ๋˜๊ฑฐ๋“ ์š”.

์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ์—ฌ์ญค๋ณด๊ณ  ์‹ถ์€ ๊ฒŒ ์žˆ์–ด์š”. ์–ด๋–ค ๋„๋ฉ”์ธ์— ํŒŒ์ธํŠœ๋‹์„ ์ ์šฉํ•ด๋ณด๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ๋ฒ•๋ฅ , ์˜๋ฃŒ, ์ปค๋จธ์Šค, ๊ต์œก — ์–ด๋–ค ๋ถ„์•ผ๋“  ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ทธ ๋„๋ฉ”์ธ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์•ˆ๋‚ดํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜น์€ ์‹ค์ œ๋กœ ์‹œ๋„ํ•ด๋ณด๋‹ค๊ฐ€ ๋ง‰ํžŒ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์งˆ๋ฌธ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ๊ฐ™์ด ํ•ด๊ฒฐํ•ด๋ด…์‹œ๋‹ค! ๐Ÿš€

๋Œ“๊ธ€

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

⚠️ AI ์ „๋ฌธ๊ฐ€๋“ค์˜ ๊ฒฝ๊ณ : ๋Œ€๋ถ€๋ถ„์˜ AI ๋ชจ๋ธ์ด ์•ˆ์ „ ํ…Œ์ŠคํŠธ์— ์‹คํŒจํ•œ๋‹ค

๐Ÿ” 2026๋…„ ๊ตฌ๊ธ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด์ •๋ฆฌ: ์ง€๊ธˆ ๋‹น์žฅ ํ™•์ธํ•ด์•ผ ํ•  7๊ฐ€์ง€ ๋ณ€ํ™”

๐Ÿ˜ฑ AI ์•ˆ์ „์„ฑ ํ…Œ์ŠคํŠธ ์ถฉ๊ฒฉ ๊ฒฐ๊ณผ: Claude์™€ GPT, ๊ณผ์—ฐ ๋ฏฟ์„ ์ˆ˜ ์žˆ์„๊นŒ?