파인튜닝 7단계 완전 절차
← 전체 목차 · 이전: SFT와 RLHF는 무엇이 다른가
파인튜닝은 7개의 실행 가능한 단계로 나뉜다: 목표 명확화 → 데이터 준비 → 세정과 형식화 → 파인튜닝 방식 선택 → 학습 → 평가 → 이터레이션.
핵심 결론: 파인튜닝은 모델에게 지식을 주입하는 것이 아니라(그것은 RAG의 일이다) "당신의 방식대로 일하는 법"을 가르치는 것이다. 바꾸는 것은 출력 스타일·형식·작업 습관이지 지식 경계가 아니다. 성패를 진짜로 결정하는 것은 알고리즘의 선진성이 아니라 목표가 명확한지, 데이터가 깨끗한지다 — 기준이 명확한 100건이 뒤죽박죽인 1만 건을 이긴다.
Step 1: 파인튜닝 목표 명확화 — 먼저 "해야 하는가"를 가린다
| 겪고 있는 문제 | 무엇을 쓸 것인가 |
|---|
| 모델이 어떤 지식을 모른다(회사 제도, 제품 문서, 최신 자료) | 먼저 RAG 고려 |
| 출력 스타일이 불안정하다 | 파인튜닝 |
| 답변 형식이 자주 틀린다 | 파인튜닝 |
| 어떤 유형의 작업을 늘 잘 못한다 | 파인튜닝 |
| 고정 템플릿 / 고정 어조 / 고정 사고방식으로 출력하기를 원한다 | 파인튜닝 |
판단 기준 한 줄: "나는 모델이 더 많이 알기를 원하는가, 아니면 내가 원하는 모습에 더 가깝게 행동하기를 원하는가?"
Step 2: 학습 데이터 준비 — 형식과 "질 > 양"
데이터 형식의 본질은 한 조씩의 「입력 → 이상적 출력」 쌍이다.
{
"instruction": "사용자가 던지는 질문 / 요구 사항",
"input": "",
"output": "표준 답안 / 요구에 부합하는 답변"
}
핵심 수치 대비: 매우 표준적이고 매우 명확한 100건 > 뒤죽박죽인 1만 건.
데이터의 네 가지 지뢰밭
| 지뢰밭 | 설명 |
|---|
| 스타일 불통일 | 답변의 앞뒤 스타일이 일치하지 않음 |
| 형식 혼란 | 형식이 이랬다저랬다 함 |
| 잘못된 답안 | 오답이 학습셋에 섞임 |
| 저품질 워터마크 | 저품질 워터마크 내용이 학습셋에 섞임 |
한 줄 경고: 먹인 대로 학습한다.
Step 3: 데이터 세정과 형식화
"많은 사람의 파인튜닝 효과가 나쁜 것은 모델이 나빠서가 아니라 데이터가 너무 더럽기 때문이다." 전형적인 더러움은 같은 작업에서 답변들이 서로 일치하지 않는 것이다.
- 어떤 답은 매우 짧고 / 어떤 답은 매우 길다
- 어떤 것은 구어체 / 어떤 것은 문어체
- 어떤 것은 설명이 붙고 / 어떤 것은 결과만 준다
정리 목표는 세 단 구조의 통일이다: 사용자 지시는 무엇인가 / 컨텍스트는 무엇인가 / 표준 답변은 무엇인가. 대화형 모델이라면 다중 턴 대화 형식으로도 정리해야 한다.
{
"instruction": "다음 글의 핵심 논점을 요약해 주세요...",
"context": "글 내용: 인공지능이 바꾸고 있는...",
"response": "이 글의 핵심 논점은 AI 기술이..."
}
목표 두 가지: 입출력 형식 통일, 모델의 학습 목표 명확화.
Step 4: 파인튜닝 방식 선택 — 전량 파인튜닝 vs 파라미터 효율 파인튜닝(LoRA)
| 비교 항목 | 전량 파인튜닝 | 파라미터 효율 파인튜닝(LoRA) |
|---|
| 방식 | 모델의 대량 파라미터를 변경 | 베이스 모델을 동결하고 옆에 소량의 작은 파라미터를 추가 |
| 효과 | 더 강할 수 있음 | 대다수 업무 시나리오에 충분 |
| 비용 | 매우 높음 | 낮음 |
| 학습 속도 | 느림 | 빠름 |
| 배포 | 유연하지 않음 | 유연함 |
| 문턱 | GPU·데이터량·학습 경험 모두 높은 요구 | 개인 개발자 / 중소 팀에 친화적 |
이런 방법들은 **PEFT(파라미터 효율 파인튜닝)**로 분류된다. 구조는 「베이스 대규모 모델(파라미터 동결, 수정하지 않음) + LoRA 모듈(소량의 작은 파라미터 신규 추가)」이며, 세 가지 셀링 포인트는 비용 저렴 / 학습 빠름 / 배포 유연이다.
Step 5: 학습 시작과 과적합 리스크
학습의 본질적 순환: 샘플을 먹인다 → 모델이 스스로 답을 생성한다 → 표준 답안과 대조한다 → 계속 파라미터를 조정한다.
세 가지 학습 파라미터: 학습률, 배치 크기, 학습 에폭 수. (예시값: 학습률 1e-4, 배치 크기 16, 에폭 3)
초보자가 기억할 유일한 원칙: 처음부터 너무 오래 학습시키지 말 것.
- 학습이 너무 적음 → 모델이 배우지 못한다
- 학습이 너무 많음 → 과적합
과적합의 정의: 모델이 학습 데이터를 통째로 외웠지만 새 문제를 만나면 응용할 줄 모른다(암기 → 응용 불가).
Step 6: 효과 평가 — 테스트셋은 학습셋과 겹치면 안 된다
"파인튜닝이 끝났다고 곧바로 출시하는 것이 아니라 테스트해야 한다." 평가 규율: 테스트셋은 학습 데이터와 겹치지 않는 것이 가장 좋다. 모델이 본 적 없는 문제로 물어야 한다.
다섯 가지 핵심 평가 지표:
- 답변 형식이 안정적인가
- 스타일이 기대에 부합하는가
- 오류율이 떨어졌는가
- 헛소리가 나타나지 않는가
- 원래의 범용 능력을 희생하지 않았는가
첫 파인튜닝의 효과가 특별히 완벽하지 않은 것은 정상이다.
Step 7: 결과에 따른 이터레이션 — 네 가지 증상, 네 가지 처방
| 증상 | 가능한 원인 / 처방 |
|---|
| 모델이 여전히 불안정 | 고품질 샘플을 더 보충 |
| 모델의 답변이 너무 경직 | 데이터가 너무 단일하다 |
| 모델이 헛소리를 시작 | 데이터에 오류가 있거나 학습이 과도하다 |
| 모델의 형식이 자주 틀림 | 형식 예시를 더 추가 |
7단계 복기와 RAG와의 관계
목표 정하기 → 데이터 만들기 → 학습 → 평가 → 이터레이션 최적화의 순환 고리로 이상적 효과에 계속 접근한다.
최종 결론: 파인튜닝은 모델에게 지식을 주입하는 것이 아니라 당신의 방식대로 일하는 법을 가르치는 것이다. 많은 업무 시나리오에서 파인튜닝과 RAG는 서로를 대체하는 것이 아니라 함께 쓰이는 경우가 많다.
핵심 통찰
- "더 많이 아는 것"인가 "더 비슷하게 행동하는 것"인가 — 이것이 파인튜닝 vs RAG를 가르는 유일한 판별 질문이다 — 기술 선택을 그 자리에서 스스로에게 물을 수 있는 한 문장으로 압축한 것이 대조표를 외우는 것보다 유용하다. 지식 결손은 RAG(외부 검색), 행동 결손은 파인튜닝(출력 습관 변경). 방향을 잘못 고르면 나머지 여섯 단계를 아무리 잘해도 헛수고다.
- 파인튜닝이 바꾸는 것은 "행동"이지 "지식"이 아니다 — 이 문서에서 가장 반직관적이면서 가장 중요한 한 줄이다. 파인튜닝을 "회사 문서를 모델에 부어 넣는 것"으로 여기면 돈과 GPU를 태우고도 최신 자료에 답하지 못하며, 과적합으로 범용 능력까지 망칠 수 있다.
- 데이터 품질의 수익은 초선형이다: 깨끗한 100건 > 더러운 1만 건 — 100배의 수량 차이가 품질 차이에 역전당한다는 것은, 파인튜닝 프로젝트에서 인력을 **"데이터를 더 긁는 것"이 아니라 "라벨링과 세정"**에 우선 투입해야 한다는 뜻이다.
- 모델은 무차별 모방기다 — 먹인 대로 학습한다 — 더러운 데이터는 "희석"되는 것이 아니라 "오염"시킨다. 오답, 스타일 불일치, 저품질 워터마크가 그대로 학습되므로 세정 단계에서 해야 할 일은 "보태기"가 아니라 **"지우기"**다.
- 불일치가 오류보다 은밀하고 치명적이다 — 나열된 더러움의 증상(어떤 건 짧고 어떤 건 길다, 어떤 건 구어체 어떤 건 문어체, 어떤 건 설명이 붙고 어떤 건 결과만)은 개별적으로 보면 "틀린" 것이 아니지만, 섞이면 모델이 안정적인 패턴을 배우지 못한다. 형식 통일의 본질은 학습 목표의 분산을 낮추는 것이다.
- 학습 시간은 양방향 리스크이며 많을수록 좋은 것이 아니다 — 적으면 배우지 못하고 많으면 과적합이며 중간이 최적이다. 초보자가 에폭 수를 가장 보수적으로 설정해야 하는 이유다.
- 테스트셋은 학습셋과 격리되어야 하며, 그렇지 않으면 평가는 자기기만이다 — 학습 데이터로 테스트하면 "외웠는지"만 측정할 수 있고 "응용할 줄 아는지"는 측정할 수 없는데, 후자야말로 파인튜닝이 원하는 것이다.
- 파인튜닝은 순환 공정이지 일회성 납품이 아니다 — 목표 정하기 → 데이터 만들기 → 학습 → 평가 → 데이터 고치기 → 다시 학습. 일회성 작업이 아니라 프로젝트 일정으로 잡아야 첫 결과가 완벽하지 않은 것을 감내할 수 있다.
엔지니어링 실전 Tips
- 먼저 RAG를 하고 나서 파인튜닝을 고려할 것: 지식성 요구에 파인튜닝은 비싸고 효과도 검색만 못하며, 지식이 갱신될 때마다 다시 학습해야 한다.
- "데이터 규범"을 문서로 쓰고 나서 라벨링을 시작할 것: Step 3의 세정 비용 대부분이 Step 2에서 규범을 정하지 않은 데서 온다. 답변 길이 구간, 문체, 설명 포함 여부를 먼저 약정하는 편이 사후 재작업보다 훨씬 싸다.
- LoRA 우선: 베이스 모델 파라미터가 동결된다는 것은 하나의 베이스에 여러 LoRA 모듈을 걸 수 있다는 뜻이며, 배포 시 업무별로 전환할 수 있다 — 이것이 "배포 유연"의 실체다.
- 에폭 수는 작게 시작해서 늘릴 것: 예시값은 3에폭(학습률 1e-4, 배치 16). 작은 에폭으로 추세를 본 뒤 늘릴지 결정할 것.
- 평가셋은 데이터를 라벨링할 때 함께 분리해 둘 것: 학습이 끝난 뒤에 나누면 학습 샘플이 섞여 들어가기 쉽다.
- "범용 능력을 희생하지 않았는가"를 필수 측정 항목으로: 가장 놓치기 쉬운 회귀 리스크다 — 업무 작업은 좋아졌는데 모델이 다른 것을 못하게 되는 것.
- 헛소리 ≠ 데이터를 더 넣어야 한다는 뜻: 먼저 데이터에 오답이 있는지 의심하고, 그다음 학습 과도를 의심하고, 마지막에 샘플 부족을 의심할 것.
- 더 파고들 방향: LoRA의 구체적 하이퍼파라미터(rank, alpha, target_modules) 선택, 데이터 세정 자동화(대규모 모델로 학습 데이터에 품질 점수 매기기, 중복 제거, 스타일 드리프트 탐지), 파인튜닝 + RAG 혼합 아키텍처(파인튜닝은 형식과 어조를, RAG는 사실과 시효를), 전량 파인튜닝의 메모리·비용 추산.