지도 미세조정(SFT)은 AI에게 "이런 질문에는 이렇게 답해야 해"라고 정답 예시를 보여주며 가르치는 방법입니다. 학교에서 선생님이 문제와 모범 답안을 함께 알려주는 것과 똑같습니다.
예를 들어, "서울의 날씨 알려줘"라는 질문에 "오늘 서울은 맑고 기온은 15도입니다"라는 좋은 답변 예시를 수천, 수만 개 준비합니다. AI는 이 예시들을 반복 학습하면서, 질문을 받았을 때 어떤 식으로 대답해야 하는지 패턴을 익힙니다.
이것은 자기회귀 사전학습과 중요한 차이가 있습니다. 사전학습에서 AI는 "텍스트를 그럴싸하게 계속 이어 쓰는 법"을 배웁니다. 하지만 그것만으로는 좋은 대화 상대가 되지 않습니다. "오늘 날씨는?"이라는 질문에 "오늘 날씨는 매우 중요한 주제입니다. 기상에 관한 역사를 살펴보면..." 같은 엉뚱한 답변도 나올 수 있습니다. SFT는 이 AI에게 "질문에는 짧고 명확하게 답하는 것이 좋은 방식"임을 가르칩니다.
ChatGPT가 만들어진 과정이 대표적인 예입니다. OpenAI는 전문 작성자들이 만든 수만 개의 질문-답변 예시로 SFT를 했습니다. Meta도 자사 AI인 LLaMA를 대화형으로 만들 때 SFT를 적용했고(Llama-2-chat), 구글 역시 Gemini를 사용자 질문에 잘 답하도록 대규모 SFT를 수행했습니다.
SFT는 대화형 AI를 만드는 첫 번째 필수 관문이지만, 단독으로는 "나쁜 답변을 피하는 법"은 가르쳐주지 못합니다. 이 한계를 채우는 것이 DPO나 RLHF 같은 선호도 정렬 기법입니다.
📚 선수학습: Fine-tuning 개념을 먼저 숙지하세요. SFT 이후 단계로 DPO, RLHF가 이어집니다.
SFT와 일반 언어 모델 파인튜닝의 결정적 차이는 프롬프트 부분의 손실을 마스킹한다는 점이다:
여기서 는 인스트럭션(프롬프트), 는 인간이 작성한 응답이다. 인덱스 가 부터 시작하므로, 프롬프트 토큰에는 그래디언트가 계산되지 않는다. 이 설계의 이유:
SFT 데이터는 (instruction, input, output) 3-tuple 또는 (prompt, response) 2-tuple 형식이다:
[INST] 다음 텍스트를 세 줄로 요약해주세요:
{텍스트 내용} [/INST]
요약 결과는 다음과 같습니다:
1. ...
2. ...
3. ...
LLaMA-2의 경우 [INST], Alpaca는 `#
OpenAI는 {"role": "user", "content": ...} JSON 형식을 사용한다.
LIMA(Zhou et al., 2023)의 핵심 발견은 AI 정렬 연구의 패러다임을 바꿨다: 단 1,000개의 신중하게 선별된 고품질 데이터로 SFT한 모델이 52K개의 Alpaca 데이터로 학습한 모델을 대부분의 평가에서 능가했다.
이는 "Superficial Alignment Hypothesis"1를 뒷받침한다:
정렬 학습은 새로운 지식을 주입하는 것이 아니라, 이미 사전학습에서 획득한 지식을 적절한 형식으로 표현하도록 유도하는 것이다.
따라서 SFT 데이터 큐레이션의 핵심은 **다양성(diversity)**과 **일관성(consistency)**이지, 양이 아니다.
| 파라미터 | 권장 범위 | 주의사항 |
|---|---|---|
| Learning Rate | ~ | 너무 크면 파국적 망각 |
| Epochs | 2~5 | 과적합 위험 시 Early Stopping |
| Batch Size | 32~128 (gradient accumulation 활용) | 작으면 학습 불안정 |
| Warmup | 전체 스텝의 3~5% | Cosine decay 스케줄 권장 |
전체 파인튜닝은 70B 모델 기준 840GB 옵티마이저 메모리가 필요하다. 실무에서는 LoRA(r=1664)를 SFT와 결합하여 파라미터의 0.1~1%만 학습:
# PEFT + SFT 표준 레시피
model = AutoModelForCausalLM.from_pretrained(base_model)
model = get_peft_model(model, LoraConfig(r=16, target_modules=["q_proj","v_proj"]))
trainer = SFTTrainer(model, train_dataset=dataset, ...)
QLoRA까지 결합하면 단일 소비자용 GPU로도 13B 이상 모델의 SFT가 가능하다.
사전학습 LLM
↓ SFT (지시 따르기 학습)
Instruction-tuned 모델
↓ DPO / RLHF (선호도 정렬)
Chat 모델 (e.g., LLaMA-3-Instruct)
↓ (선택) ORPO / Constitutional AI
최종 배포 모델
SFT가 "형식"을 가르친다면, DPO는 "어떤 답이 더 좋은가"를 가르친다. 두 단계를 거칩니다.
Zhou, C. et al. (2023). LIMA: Less Is More for Alignment. NeurIPS 2023. 1,000개의 고품질 SFT 데이터로 GPT-4에 근접한 응답 품질 달성, 정렬은 지식이 아닌 형식의 문제임을 주장. ↩