1️⃣ 범용 모델은 모든 걸 잘하진 않기 때문
=> 내 회사의 서비스, 특수한 말투, 특정 도메인 지식에는 부족할 수 있다.
2️⃣ 내가 원하는 방식으로 정확히 동작하게 하려면
=> " 나는 "공손한 응답"이 항상 필요해"," 나는 "답변을 짧게" 해줬으면 좋겠어" 같은 명확한 요구사항을 반영하려면, 파인튜닝이 필수이다.
1️⃣ 일관성 부족
프롬프트를 써도 응답이 매번 다를 수 있고 , 프롬프트를 빼먹으면 말투나 방식이 흐트러진다.
2️⃣ 복잡한 작업에선 prompt만으로 부족
특정 형식(JSON, Markdown 등)으로 출력하길 원하거나 복잡한 규칙이나 조건을 내장시켜야 할 때는 그걸 매번 프롬프트로 다 쓰기엔 너무 길고 불안정하다.
3️⃣ 프롬프트는 지시사항일 뿐, 모델의 ‘성향’을 바꾸진 못함
프롬프트는 "지금만 이렇게 해줘"이고 , 파인튜닝은 "앞으로 계속 이렇게 해"라고 할 수 있다.
| 분류 기준 | 종류 | 설명 |
|---|---|---|
| 적용 범위 | Full fine-tuning | 전체 파라미터를 모두 학습시킴 (비용 큼) |
| Partial fine-tuning | LoRA 등으로 일부분만 학습 (효율적) | |
| 지도 여부 | Supervised Fine-tuning (SFT) | 정답 데이터를 기준으로 학습 |
| Unsupervised Fine-tuning | 정답 없이 문장 생성 스타일 위주 학습 |
파인튜닝은 “어디를 얼마나 학습하느냐”와 “정답을 주느냐”로 나뉜다
두 개의 답변(chosen vs rejected)을 비교하여
좋은 답변을 더 높은 확률로 선택하도록 훈련
{
"prompt": "학생 질문 내용",
"chosen": "정확한 설명",
"rejected": "틀린 설명"
}
_revised.md로 저장)GPT 모델을 OpenAI API처럼 빠르게 서빙하는 고속 추론 엔진
[ 문제 생성 ]
↓
[ 질문 생성 ]
↓
[ 틀린 답변 → 정답 답변 생성 ]
↓
[ prompt / chosen / rejected 저장 ]
↓
[ DPO 학습 → 파인튜닝된 모델 ]
↓
[ vLLM으로 API처럼 서빙 ]
DPO는 좋은 답변 vs 나쁜 답변을 비교해서
"사람 선호"를 직접 반영할 수 있는 간단하고 강력한 파인튜닝 방법이다.→ vLLM을 활용하면 이 모델을 빠르게 서비스로 제공할 수 있다.