파인튜닝 • 챕터 1 / 7
Fine-tuning 은 새로운 데이터를 추가 학습하여 LLM의 성능을 향상시키는 방법입니다.
| 방식 | 설명 |
|---|---|
| Prompt 안에서 Context 추가 | 프롬프트에 직접 정보를 포함 |
| Tool 연결 | 외부 도구를 활용한 작업 처리 |
| Fine-tuning | 모델 파라미터 자체를 직접 수정 |
Fine-tuning은 Prompt 바깥에서 모델 자체를 조정 하며, LLM의 사고 회로 구조를 변경하여 출력 생성 방식을 개선합니다.
입력: "근육통 치료에 좋은 약물 3개 이름만 알려주세요."
출력: (이부프로펜, 애페리스, 아세타미노펜)
→ 구조화된 출력 생성 가능정의: 다양한 데이터에 대해서 모델을 처음부터 학습 시키는 과정
특징:
데이터 소스:
정의: 이미 만들어진 모델을 추가로 학습 시키는 과정
특징:
| 구분 | Training | Fine-tuning |
|---|---|---|
| 데이터량 | 초대량 | 상대적으로 적음 |
| 비용 | 매우 높음 ($$$) | 상대적으로 낮음 |
| 목적 | 일반적 언어 이해 | 특정 목적 최적화 |
| 학습 방식 | 처음부터 학습 | 기존 모델 기반 추가 학습 |
| 모델 타입 | 설명 |
|---|---|
| Base Model | 채팅 기능 미포함 (7B) |
| Instruct Model | 채팅 기능이 탑재된 Fine Tuning 모델 (7B-Instruct) |
| Quantized Model | 양자화로 크기 축소 (7B-Instruct-GGUF) |
Pretraining(사전 학습)
👤 입력: 거대 언어 모델은
🤖 출력: 대량의 파라미터의 인공 신경망 구조로 구성된 언어 모델입니다...
👤 입력: 거대 언어 모델이 뭐야?
🤖 출력: 요즘 뉴스에 너무 많이 나오더라구, LLM이랑 같은 거야?→ 단순 다음 단어 예측으로는 제대로 된 질의응답 불가
질의응답과 지시사항의 데이터로 Fine Tuning한 모델
Llama 3 Series Template 예시:
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
당신은 도움을 주는 비서입니다.
<|eot_id|><|start_header_id|>user<|end_header_id|>
What can you help me with?
<|eot_id|><|start_header_id|>assistant<|end_header_id|><|start_header_id|>assistant<|end_header_id|> 이후부터 생성!
| 방식 | 목적 |
|---|---|
| 새로운 Corpus 학습 | 언어 패턴 변화, '언어의 토양' 바꾸기 |
| 입력-출력 형식 데이터 학습 | 특정 작업으로 모델 특화 |
| RL (강화 학습) | 모델 보상 주기 |
정의: 추가 학습을 진행하자, 모델의 기존 능력이 감소 하는 현상
코딩 학습 → 언어 능력 감소
한국어 학습 → 영어 능력 감소해결책: 기존 지식의 복습 데이터 포함 필요
LLM에서도 ML의 Train/Test, Generalization 관련 내용은 그대로 성립
예시 상황:
👤 입력: "정사각형의 넓이가 6일 때, 한 변의 길이는 무엇입니까?"
🤖 과적합된 의료 모델: "안녕하세요, 증상이 많이 심하시군요.
환부의 면적이 16이라면 추가 검사가 필요합니다..."→ 풍부한 데이터 준비 또는 기존 지식의 복습 데이터 포함 필요
┌─────────────────────────────────────────────┐
│ Fine-tuning 파이프라인 (5단계) │
├─────────────────────────────────────────────┤
│ │
│ 1️⃣ Continuous Pretraining (CPT) │
│ → 도메인 지식 주입 │
│ │
│ 2️⃣ Instruction Tuning │
│ → 지시사항/질의응답 학습 │
│ │
│ 3️⃣ Rejection Sampling + SFT │
│ → 출력 성능 개선 │
│ │
│ 4️⃣ DPO/PPO/GRPO │
│ → 선호 패턴 학습 │
│ │
│ 5️⃣ Alignment │
│ → 모델 안전성 높이기 │
│ │
└─────────────────────────────────────────────┘준비물: Base Model(또는 Instruct Model), Fine Tuning 데이터
| 항목 | 설명 |
|---|---|
| 정의 | 사전 학습된 모델을 특정 목적에 맞게 추가 학습시키는 과정 |
| 장점 | 비용 효율적, 특정 태스크 최적화, 빠른 학습 |
| 주의사항 | Catastrophic Forgetting, Overfitting 방지 필요 |
| 목적 | 설명 |
|---|---|
| 지식 (Knowledge) | 새로운/도메인 지식 학습 |
| 능력 (Capability) | 특정 태스크 성능 향상 |
| 형식 (Format) | 출력 스타일 변경 |
| 안전 (Safety) | 유해 요청 거부 능력 |