mirror of https://github.com/bmaltais/kohya_ss
180 lines
3.5 KiB
Markdown
180 lines
3.5 KiB
Markdown
Max train epoch
|
||
training epochs (overrides max_train_steps). 0 = no override
|
||
```
|
||
|
||
### **해석:**
|
||
- **"Max train epoch"**: 최대 학습 에포크 수
|
||
- **"overrides max_train_steps"**: 이 값을 설정하면 max_train_steps를 **무시함**
|
||
- **"0 = no override"**: `0`으로 설정하면 max_train_steps를 **따름**
|
||
|
||
---
|
||
|
||
## 🎯 사용 방법
|
||
|
||
### **케이스 1: Epoch 기준으로 학습** ⭐ 일반적
|
||
```
|
||
Max train epoch: 10
|
||
Max train steps: 0 (또는 비워둠)
|
||
```
|
||
**결과:** 10 에포크 학습
|
||
|
||
---
|
||
|
||
### **케이스 2: Steps 기준으로 학습**
|
||
```
|
||
Max train epoch: 0
|
||
Max train steps: 2000
|
||
```
|
||
**결과:** 2000 스텝 학습
|
||
|
||
---
|
||
|
||
### **케이스 3: 둘 다 설정 (Epoch 우선!)**
|
||
```
|
||
Max train epoch: 10
|
||
Max train steps: 5000
|
||
```
|
||
**결과:** 10 에포크만 학습 (max_train_steps **무시됨**)
|
||
|
||
---
|
||
|
||
## 🔍 우선순위 정리
|
||
```
|
||
Max train epoch > 0 → 이것만 사용 (steps 무시)
|
||
Max train epoch = 0 → max_train_steps 사용
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 실전 설정
|
||
|
||
### **일반적인 LoRA 학습:**
|
||
```
|
||
Max train epoch: 10 ← 여기만 설정
|
||
Max train steps: 0 ← 0 또는 비워둠
|
||
Save every N epochs: 1
|
||
```
|
||
|
||
### **정밀한 스텝 컨트롤이 필요할 때:**
|
||
```
|
||
Max train epoch: 0 ← 0으로 설정
|
||
Max train steps: 2500 ← 여기 설정
|
||
Save every N steps: 500
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 예시 계산
|
||
|
||
### **50장, 4회 반복 기준:**
|
||
|
||
#### **설정 A: Epoch 우선**
|
||
```
|
||
Max train epoch: 10
|
||
Max train steps: 999999 ← 아무리 커도 무시됨
|
||
```
|
||
**실제 학습:** 50 × 4 × 10 = **2000 스텝**
|
||
|
||
#### **설정 B: Steps 우선**
|
||
```
|
||
Max train epoch: 0
|
||
Max train steps: 1500
|
||
```
|
||
**실제 학습:** **1500 스텝** (7.5 에포크)
|
||
|
||
---
|
||
|
||
## ⚠️ 흔한 실수
|
||
|
||
### ❌ **틀린 설정:**
|
||
```
|
||
Max train epoch: 10
|
||
Max train steps: 2000
|
||
```
|
||
→ Steps 값이 **무시됨!** (Epoch만 적용)
|
||
|
||
### ✅ **올바른 설정:**
|
||
|
||
**Epoch 쓰고 싶으면:**
|
||
```
|
||
Max train epoch: 10
|
||
Max train steps: 0
|
||
```
|
||
|
||
**Steps 쓰고 싶으면:**
|
||
```
|
||
Max train epoch: 0
|
||
Max train steps: 2000
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 **최종 답변**
|
||
|
||
### **같은 값 넣으면 되나요?**
|
||
❌ **아니요!**
|
||
|
||
### **어떻게 설정해야 하나요?**
|
||
|
||
#### **대부분의 경우 (권장):**
|
||
```
|
||
Max train epoch: 10 ← 원하는 에포크 수
|
||
Max train steps: 0 ← 0으로!
|
||
```
|
||
|
||
#### **스텝 수를 정확히 지정하고 싶으면:**
|
||
```
|
||
Max train epoch: 0 ← 0으로!
|
||
Max train steps: 2500 ← 원하는 스텝 수
|
||
|
||
|
||
----------------
|
||
|
||
|
||
|
||
총 스텝 = 이미지 수 × 반복 횟수 × 에포크 수
|
||
|
||
3000 = 100 × 2 × 에포크
|
||
3000 = 200 × 에포크
|
||
에포크 = 3000 ÷ 200
|
||
에포크 = 15
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ 답: **15 에포크**
|
||
|
||
### **설정:**
|
||
```
|
||
폴더명: 2_character_name
|
||
이미지: 100장
|
||
Max train epoch: 15
|
||
Max train steps: 0
|
||
```
|
||
|
||
### **결과:**
|
||
```
|
||
1 에포크 = 100 × 2 = 200 스텝
|
||
15 에포크 = 200 × 15 = 3000 스텝 ✅
|
||
|
||
✅ 고정 Seed (추천!)
|
||
시드: Seed: 42 (또는 1234, 777 등 아무 숫자)
|
||
|
||
**이유:**
|
||
|
||
### ✅ **고정 Seed (추천!)**
|
||
```
|
||
Seed: 42
|
||
```
|
||
**장점:**
|
||
- **재현성** - 똑같은 결과 재생산 가능
|
||
- **실험 비교** - 다른 하이퍼파라미터 테스트 시 공정한 비교
|
||
- **디버깅** - 문제 발생 시 재현 가능
|
||
- **협업** - 다른 사람도 같은 결과 얻을 수 있음
|
||
|
||
**사용 케이스:**
|
||
- 대부분의 경우 ✅
|
||
- 하이퍼파라미터 튜닝
|
||
- 안정적인 학습 원함
|
||
|
||
--- |