질문과 좋은 답변을 짝지은 데이터로 사전학습 모델을 추가 학습해, 모델이 지시를 따르고 원하는 형식과 말투로 답하게 만드는 방법이다. RLHF나 DPO 같은 선호 학습보다 먼저 거치는 첫 단계다.
| 단계 | 배우는 것 | 필요한 데이터 |
|---|---|---|
| 사전학습 | 언어와 지식 전반 | 라벨 없는 대량 텍스트 |
| SFT | 지시 따르기, 형식·스타일 | 입력-출력 쌍 |
| RLHF·DPO | 더 나은 답 고르기 | 좋은 답/나쁜 답 비교 |
사전학습 모델은 언어는 알지만 지시를 따르는 법은 모른다. 질문을 넣으면 답하는 대신 비슷한 질문을 이어 쓰기도 한다. SFT는 수천~수십만 개의 예시로 "이런 입력에는 이렇게 답한다"를 보여 주고, 정답 답변을 그대로 따라 쓰도록 학습시킨다. 손실 함수로는 크로스 엔트로피를 쓰며, 가장 표준적인 파인튜닝 방식이다.
대표적인 활용이 인스트럭션 튜닝이다. RLHF 파이프라인에서는 SFT 모델이 기준점(reference model)이 된다. 이후 강화학습 단계가 엉뚱한 방향으로 흐르지 않게 붙잡아 주는 역할이다.
가장 쉬운 방법은 Hugging Face trl의 SFTTrainer다. 대화 데이터를 Hugging Face 데이터셋 형식으로 준비하면 바로 학습을 시작할 수 있다. 가중치 전체를 바꾸기보다 LoRA를 붙여 일부만 학습하는 경우가 많아서, 작은 GPU로도 해 볼 수 있다.
| 순서 | 할 일 | 팁 |
|---|---|---|
| 1. 데이터 | 입력-출력 쌍 정리 | 실제로 받을 질문과 같은 모양으로 |
| 2. 학습 | SFTTrainer + LoRA | 작은 데이터로 먼저 시험 |
| 3. 평가 | 학습에 안 쓴 질문으로 확인 | 형식과 정확도를 같이 본다 |
SFT는 사내 스타일 가이드, Q&A 형식, 특수 출력 포맷처럼 매번 똑같이 지켜야 하는 방식을 가르칠 때 효과가 크다. 자주 바뀌는 정보를 넣는 데는 맞지 않는다.
| 하고 싶은 것 | 맞는 방법 |
|---|---|
| 응답 형식·말투 고정 | SFT |
| 최신 문서 기반 답변 | RAG |
| 예시 몇 개로 충분한 일 | 프롬프트(few-shot) |
| 여러 답 중 더 나은 쪽 선호 | DPO·RLHF |
프롬프트로 먼저 해 보고, 예시를 넣어도 형식이 흔들리거나 매번 긴 프롬프트를 보내는 게 부담될 때 SFT를 검토하면 된다.
데이터는 양보다 질이 중요하다는 점이 여러 번 확인됐다. 틀린 답이나 말투가 제각각인 예시가 섞이면 모델은 그 실수까지 그대로 배운다. 같은 데이터로 너무 오래 학습하면 예시만 외우고 원래 갖고 있던 일반 능력이 떨어질 수 있다. 그래서 학습에 쓰지 않은 질문으로 꼭 확인해야 한다.
가장 흔한 쓰임은 매번 같은 모양으로 답해야 하는 일에 모델을 맞추는 것이다. 긴 프롬프트로 형식을 매번 설명하는 대신, 예시로 한 번 학습시켜 두고 짧게 부른다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 고객 응대·사내 챗봇 | 실제 문의와 모범 답변을 쌍으로 모아 회사 말투와 답변 구조를 고정 |
| 정보 추출·자동화 | 문서를 넣으면 항상 같은 JSON 같은 정해진 포맷으로 나오도록 학습 |
| 오픈 모델 튜닝 | 베이스 모델에 대화 데이터를 SFT해 지시를 따르는 채팅 모델로 만듦 |
| 선호 학습 준비 | DPO·RLHF 전에 SFT부터 해서 기준이 되는 모델을 만듦 |