C.W.K.
Stream
Lesson 11 of 12 · published

Prompting vs RAG vs Fine-tuning — 언제 뭘 쓰나

~12 min · prompting, rag, fine-tuning

Level 0Token
0 XP0/94 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

base 모델을 본인 task에 맞추는 세 전략. 상호 배타 아냐 — 대부분 production 시스템이 혼합 사용. 질문은 뭐로 시작하느냐.

Prompting (zero-shot / few-shot / in-context learning)

모델 변경 없음. 더 좋은 prompt 엔지니어링, 예시 포함, 시스템 메시지 설정, 입력 구조화. 가장 빠르고, 싸고, 유연. 적합: 프로토타입, 일반 task, 모델이 이미 충분히 '아는데' 방향만 필요한 task.

Retrieval-Augmented Generation (RAG)

쿼리 시점에 관련 문서 검색해서 prompt에 포함. 모델 변경 없음. 적합: 지식 집약 task, 정보가 변하는 도메인(fine-tune이 stale), 인용/근거 필요한 task, 관련 데이터가 모델의 사전학습 분포에 안 맞는 task.

Fine-tuning (full 또는 LoRA / QLoRA)

본인 데이터에 모델 가중치 업데이트. LoRA(Low-Rank Adaptation)는 작은 adapter 행렬만 업데이트, full fine-tune보다 훨씬 적은 compute 필요. 적합: prompt에서 못 잡는 일관된 스타일/포맷, prompt 엔지니어링 + RAG로 부족한 task, 큰 모델 동작을 작은 모델로 distill.

결정 트리

  1. 먼저 prompting 시도. 보통 필요의 80% 해결.
  2. 모델이 특정 지식 부족해서 prompting 실패면 RAG 시도.
  3. 일관된 스타일/포맷이나 전문화 동작 필요해서 둘 다 실패면, 그때 fine-tune. fine-tune은 비싸고 유지보수 부담(base 모델 업데이트마다 재학습), 일반 능력 감소 가능.

Code

LoRA fine-tuning skeleton (PEFT)·python
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Meta-Llama-3-8B",
    torch_dtype=torch.bfloat16, device_map="auto",
)
config = LoraConfig(
    r=16, lora_alpha=32,
    target_modules=["q_proj","k_proj","v_proj","o_proj"],
    lora_dropout=0.05, task_type="CAUSAL_LM",
)
model = get_peft_model(model, config)
# Now only the LoRA adapter (~30M params for Llama 3 8B) is trainable.
# Train normally with HuggingFace Trainer or your own loop.
# Save the adapter, swap in/out without retraining the full model.

External links

Exercise

본인이 작업한 실제 task 골라. 세 버전 구현 — (a) prompting만, (b) prompting + 작은 지식 base 위 RAG, (c) 500 예시로 LoRA fine-tune. 품질(본인 eval), latency, 쿼리당 비용 측정. 셋 다 플롯. 각 전략이 어디서 이기나?

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.