지도 미세조정
더 많은 작업
지도 미세조정(Supervised Fine-Tuning, SFT)은 사전학습된 인공지능 모델에 입력과 원하는 출력으로 구성된 정답 데이터를 추가로 학습시켜 특정 지시·작업·응답 방식을 따르도록 조정하는 미세조정 기법이다.
지도 미세조정은 대형 언어 모델과 파운데이션 모델의 대표적인 후속 학습(Post-training) 방법이다. Hugging Face는 SFT를 파운데이션 모델의 후속 학습에서 가장 일반적이고 효과적인 단계 가운데 하나로 설명한다.[1]
대규모 언어 모델은 사전학습 과정에서 방대한 텍스트를 이용해 언어와 지식, 추론에 필요한 기본적인 패턴을 습득한다. 그러나 사전학습만 끝난 기반 모델(Base Model)은 사용자의 질문에 답하거나 지시를 따르는 대화형 AI로 최적화되어 있지 않다.
SFT에서는 사람이 작성하거나 검증한 모범 응답 등의 데이터를 이용해 모델에게 어떤 입력에 어떤 출력을 생성하는 것이 바람직한지 직접 학습시킨다.
대규모 데이터
↓
사전학습(Pre-training)
↓
기반 모델(Base Model)
↓
질문·지시 + 모범 응답
↓
지도 미세조정(SFT)
↓
지시 모델(Instruct Model)
예를 들어 다음과 같은 학습 데이터를 사용할 수 있다.
사용자: 대한민국의 수도는 어디야? 모범 응답: 대한민국의 수도는 서울특별시입니다.
모델은 이러한 입력과 출력의 관계를 반복해서 학습하면서 질문에 답하거나 지시를 수행하는 방식을 습득한다.
SFT의 기본 원리는 일반적인 지도 학습과 같다.
학습 데이터에는 모델에 주어지는 입력과 이에 대해 생성해야 할 목표 출력(Target)이 존재한다.
입력 X → 정답 Y
언어 모델에서는 이를 토큰 단위의 다음 토큰 예측 문제로 처리할 수 있다.
예를 들어 학습 데이터가 다음과 같다고 가정할 수 있다.
입력: 다음 문장을 영어로 번역하라. "오늘 날씨가 좋다." 출력: "The weather is nice today."
모델이 출력해야 할 정답 토큰을 알고 있으므로 생성한 토큰의 확률과 정답 사이의 손실(Loss)을 계산하고, 역전파를 통해 모델의 매개변수를 조정한다.
대화형 모델에서는 다음과 같이 역할이 구분된 데이터도 사용한다.
System: You are a helpful assistant. User: 사과 세 개가 있는데 두 개를 먹으면 몇 개가 남아? Assistant: 한 개가 남습니다.
이러한 데이터를 다양한 지시와 작업에 대해 대규모로 학습하면 모델이 새로운 질문에서도 유사한 지시 수행 방식을 일반화할 수 있다.
사전학습과 SFT는 모두 모델의 매개변수를 학습하지만 목적과 데이터의 성격이 다르다.
| 구분 | 사전학습 | 지도 미세조정 |
|---|---|---|
| 영문 | Pre-training | Supervised Fine-Tuning |
| 약칭 | - | SFT |
| 주요 목적 | 언어·지식·일반 능력 습득 | 지시 수행과 원하는 행동 학습 |
| 데이터 규모 | 매우 큼 | 상대적으로 작음 |
| 데이터 형태 | 주로 대규모 원문 데이터 | 입력과 목표 출력 |
| 사람의 정답 작성 | 일반적으로 필수 아님 | 일반적으로 사용 |
| 출발 모델 | 초기 모델 | 사전학습된 모델 |
| 결과 | Base Model | Instruct·Chat·특화 모델 |
사전학습에서는 인터넷 문서나 책, 논문, 소스코드와 같은 원문 자체에서 다음 토큰을 예측하도록 학습할 수 있다.
반면 SFT에서는 모델에게 원하는 행동의 사례를 명시적으로 보여준다.
따라서 사전학습이 모델의 기본적인 능력과 지식을 형성하는 단계라면 SFT는 이를 사용자가 원하는 방식으로 사용하는 방법을 가르치는 단계에 가깝다.
대형 언어 모델에서 SFT의 대표적인 용도는 지시 미세조정(Instruction Fine-Tuning 또는 Instruction Tuning)이다.
다양한 자연어 지시와 모범 응답을 학습하여 모델이 새로운 지시도 수행할 수 있도록 한다.
예를 들어 학습 데이터에는 다음과 같은 여러 종류의 작업이 포함될 수 있다.
- 질문에 답하기
- 문서 요약
- 번역
- 문장 분류
- 정보 추출
- 문체 변환
- 수학 문제 풀이
- 소스코드 작성
- 주어진 형식으로 출력
- 여러 단계의 지시 수행
특정 질문의 답을 하나씩 암기시키는 것이 아니라 다양한 지시와 응답의 관계를 학습시켜 처음 보는 지시에도 대응하도록 만드는 것이 중요하다.
SFT는 대화형 LLM을 만드는 데 특히 중요하다.
사전학습만 끝난 언어 모델은 기본적으로 이전 문맥에 이어질 가능성이 높은 텍스트를 생성하도록 학습된 모델이다.
예를 들어 사용자가 질문을 입력했을 때 질문에 직접 답하기보다는 비슷한 질문을 이어서 생성하거나 웹 문서와 비슷한 문장을 생성할 수도 있다.
대화 데이터를 이용한 SFT에서는 다음과 같은 구조를 학습한다.
사용자 질문
↓
도움이 되는 답변
사용자 지시
↓
지시에 맞는 결과
사용자 후속 질문
↓
앞선 대화를 고려한 답변
또한 System, User, Assistant와 같은 역할을 구분하는 특수 토큰이나 채팅 템플릿을 사용할 수 있다. Hugging Face의 SFT 도구 역시 대화형 모델 학습에서 역할별 메시지를 구분하는 채팅 형식을 지원한다.[1]
SFT에서 반드시 입력 전체에 대해 손실을 계산해야 하는 것은 아니다.
Prompt-Completion 형식에서는 다음과 같이 입력 부분과 모델이 생성해야 할 부분을 나눌 수 있다.
Prompt: 대한민국의 수도는 Completion: 서울이다.
Completion Only 방식에서는 Prompt 부분이 아니라 Completion에 해당하는 토큰에 대해서만 손실을 계산할 수 있다.[1]
대화형 데이터에서도 사용자 메시지는 모델이 생성해야 하는 내용이 아니므로 Assistant의 응답 부분만 학습 대상으로 삼는 방식을 사용할 수 있다.
현대적인 대화형 LLM의 후속 학습 과정에서 SFT가 사용된 대표적인 초기 사례가 OpenAI의 InstructGPT이다.
OpenAI 연구진은 2022년 발표한 《Training language models to follow instructions with human feedback》에서 GPT-3를 사람의 의도에 더 잘 맞도록 학습하는 방법을 제시했다.[2]
첫 번째 단계에서는 사람이 직접 작성한 모범 응답(Demonstration)을 이용해 GPT-3를 지도학습 방식으로 미세조정했다.[2]
사전학습 GPT-3
↓
사람이 작성한 모범 응답
↓
SFT
↓
SFT 모델
↓
사람의 선호도 데이터
↓
보상 모델 + RLHF
↓
InstructGPT
즉 InstructGPT에서 SFT는 인간 피드백 기반 강화학습(RLHF)에 들어가기 전에 모델에게 기본적인 지시 수행 방식을 가르치는 단계로 사용됐다.[2]
SFT와 인간 피드백 기반 강화학습(Reinforcement Learning from Human Feedback, RLHF)은 모델의 행동을 조정한다는 목적은 비슷하지만 학습 방식이 다르다.
| 구분 | SFT | RLHF |
|---|---|---|
| 학습 정보 | 정답·모범 응답 | 사람의 선호도 |
| 데이터 예시 | 질문 → 모범 답변 | 답변 A와 B 중 어느 것이 좋은가 |
| 기본 방식 | 지도 학습 | 보상 모델·강화학습 |
| 역할 | 원하는 행동을 직접 시범 | 응답의 상대적인 선호도 최적화 |
예를 들어 다음 데이터는 SFT에 사용할 수 있다.
질문: 태양계에서 가장 큰 행성은? 정답: 목성입니다.
반면 선호도 학습에는 다음과 같은 데이터가 사용될 수 있다.
질문: 태양계에서 가장 큰 행성은? 응답 A: 목성입니다. 응답 B: 지구입니다. 사람의 선호: A > B
SFT는 이렇게 답하라는 모범 답안을 직접 제공하는 반면 선호도 기반 학습은 이 답변이 저 답변보다 낫다는 정보를 이용한다.
DPO(Direct Preference Optimization)도 SFT 이후 사용되는 대표적인 선호도 최적화 방법이다.
SFT 데이터가 일반적으로 하나의 원하는 응답을 제공한다면 DPO 데이터에는 선호 응답(Chosen)과 비선호 응답(Rejected)이 포함된다.
SFT Prompt → Desired Response DPO Prompt ├─ Chosen Response └─ Rejected Response
따라서 SFT와 DPO는 경쟁 관계라기보다 후속 학습 파이프라인에서 서로 다른 역할을 수행할 수 있다.
SFT와 미세조정은 같은 의미가 아니다.
미세조정(Fine-tuning)은 사전학습된 모델을 추가 학습하는 방법 전체를 가리키는 더 넓은 개념이고, SFT는 그 가운데 정답이 있는 지도 데이터를 이용하는 방식이다.
미세조정(Fine-tuning) ├─ 지도 미세조정(SFT) ├─ 선호도 기반 미세조정 │ ├─ DPO │ └─ 기타 Preference Optimization └─ 기타 목적별 미세조정
또한 SFT를 수행할 때 반드시 모델의 모든 매개변수를 학습할 필요는 없다.
전체 매개변수를 변경하는 Full Fine-Tuning을 사용할 수도 있고, LoRA와 같은 매개변수 효율적 미세조정(PEFT)을 이용해 일부 추가 매개변수만 학습할 수도 있다. Hugging Face의 SFTTrainer 역시 PEFT 구성을 지원한다.[1]
따라서 SFT는 어떤 학습 신호를 사용하는가에 관한 개념이고, LoRA는 모델의 매개변수를 어떤 방식으로 효율적으로 조정하는가에 관한 기법이므로 서로 함께 사용할 수 있다.
SFT 모델의 품질은 학습 데이터의 품질에 크게 좌우된다.
일반적인 SFT 데이터는 다음과 같은 형태를 가진다.
| 유형 | 구성 |
|---|---|
| Instruction-Response | 지시 + 모범 응답 |
| Question-Answer | 질문 + 정답 |
| Prompt-Completion | 입력 문장 + 이어질 목표 문장 |
| Conversation | 여러 차례의 User·Assistant 대화 |
| Task Dataset | 분류·번역·요약 등 작업 입력 + 정답 |
모범 응답은 사람이 직접 작성할 수도 있고 다른 모델을 이용해 생성한 뒤 품질을 검증할 수도 있다.
데이터의 양뿐 아니라 정확성, 다양성, 일관성, 난이도와 모델이 실제 사용될 환경을 얼마나 잘 반영하는지가 중요하다.
SFT는 모델이 원하는 행동을 직접 학습하도록 만들 수 있다는 장점이 있다.
- 기반 모델을 대화형 모델로 변환할 수 있다.
- 사용자의 지시를 따르는 능력을 강화할 수 있다.
- 특정 출력 형식이나 문체를 학습시킬 수 있다.
- 전문적인 작업 수행 방식을 학습시킬 수 있다.
- LoRA 등과 결합하면 비교적 적은 자원으로 수행할 수 있다.
- 선호도 학습이나 강화학습을 적용하기 전 기본적인 행동을 형성할 수 있다.
특히 정답이 비교적 명확한 작업에서는 사람이 원하는 행동을 직접 보여줄 수 있기 때문에 단순한 선호도 신호보다 효율적일 수 있다.
SFT는 제공된 모범 응답을 정답으로 학습한다.
따라서 데이터에 잘못된 정보나 나쁜 응답 방식이 포함돼 있으면 모델도 이를 학습할 수 있다.
고품질 SFT 데이터를 사람이 직접 작성하고 검증하려면 상당한 비용이 필요하다.
특히 전문적인 법률·의료·과학·코딩 데이터에서는 해당 분야 전문가의 검토가 필요할 수 있다.
실제 사용자가 입력할 수 있는 모든 질문과 상황에 대한 모범 답변을 미리 작성하는 것은 불가능하다.
따라서 SFT 모델은 학습한 예시에서 새로운 상황으로 행동을 일반화해야 한다.
하나의 절대적인 모범 응답을 작성하기 어려운 작업도 많다.
예를 들어 창작, 문체, 설명의 상세도와 같이 여러 답변이 모두 타당할 수 있는 경우에는 두 응답의 상대적인 선호도를 학습하는 DPO나 RLHF 등의 방법이 유용할 수 있다.
SFT에 문서나 사실을 포함하면 모델이 해당 정보를 학습할 수 있지만 SFT를 데이터베이스처럼 사용하는 것은 적합하지 않을 수 있다.
예를 들어 회사의 최신 규정을 모델이 답하도록 만들기 위해 모든 규정을 SFT 데이터로 학습하면 규정이 변경될 때마다 모델을 다시 학습해야 하며, 특정 답변이 어느 문서에서 나온 것인지 추적하기도 어렵다.
이런 경우에는 검색 증강 생성(RAG)을 통해 최신 문서를 검색해 모델에 제공하는 방식이 더 적합할 수 있다.
반대로 다음과 같은 것은 SFT가 적합할 수 있다.
- 질문에 답하는 방식
- 원하는 문체
- 일정한 출력 형식
- 특정 업무의 처리 절차
- 분류 기준
- 도구를 사용하는 패턴
따라서 SFT는 단순히 모델에 새로운 지식을 넣는 방법이라기보다 모델이 어떤 입력에 어떻게 행동해야 하는지를 학습시키는 방법으로 이해하는 것이 적절하다.
- ↑ 1.0 1.1 1.2 1.3 Hugging Face, 「Supervised Fine-tuning Trainer」, https://huggingface.co/docs/trl/main/sft_trainer, 확인일: 2026-10-04.
- ↑ 2.0 2.1 2.2 Long Ouyang et al., 「Training language models to follow instructions with human feedback」, https://arxiv.org/abs/2203.02155, 확인일: 2026-10-04.