https://devocean.sk.com/blog/techBoardDetail.do?ID=167242&boardType=techBlog
Batch, Step 그리고 Epoch은 LLM 학습 과정에서 데이터 처리를 정의 하는 단위로, 학습 효율성과 성능에 직접적인 영향을 미칩니다.
또한 학습 과정을 효과적으로 모니터링하려면 어떤 지표를 중심으로 관찰 할지 명확히 이해 하는 것도 중요합니다.
이 섹션에서는 이러한 기본 개념들을 다시 한번 정리해보겠습니다.
per_device_train_batch_size=8,
per_device_eval_batch_size=8,
logging_steps=2,
evaluation_strategy='steps',
eval_steps=100,
save_steps=1000,
num_train_epochs=3,
1.1 Batch
Batch 크기는 한 번의 학습 단계(Training Step)에서 사용하는 데이터 샘플의 개수를 의미합니다.
그림1에서 데이터셋에서 학습에 사용하기 위해 선택된 데이터 묶음이 Batch를 나타냅니다.
예를 들어, Batch 크기가 10이라면, 한 번의 Training Step에서 모델은 데이터셋의 10개 샘플을 사용해 모델의 파라미터를 업데이트합니다.
Batch 크기는 학습의 속도와 메모리 사용량에 큰 영향을 미칩니다. 특히 크기에 따라 학습 과정의 특성이 달라집니다.
1.2 Step
흔히 Step이라고 줄여서 부르는 Training Step은 모델의 파라미터가 한 번 업데이트되는 과정을 말합니다.
그림1에서 보면 Batch 만큼의 학습 데이터셋을 GPU에 로드해서 학습을 하고 모델의 파라미터를 업데이트하는 과정입니다.
예를 들어, 데이터셋의 크기가 10,000개이고 Batch 크기가 10이라면
Training Step 수 = 전체 샘플 수 / Batch 크기 = 10,000 / 10 = 1,000
따라서, 데이터셋 전체를 한 번 학습하기 위해 1,000번의 Training Step이 필요합니다.
1.3 Epoch
Epoch은 학습 데이터셋의 모든 샘플을 한 번씩 모델에 보여주는 과정을 의미합니다.
쉽게 말해, 데이터셋 전체를 한 번 학습한 상태를 1 Epoch 이라 합니다.
1.4 LLM 학습에서 Training Step vs Epoch
LLM 학습에서는 일반적으로 Training Step을 기준으로 학습 지표를 설정합니다.
이는 LLM 학습의 특성과 효율적인 학습 관리를 고려 했을 때 Step 단위의 관리가 더 적합하기 때문입니다.
1.4.1 Step을 기준으로 해야 하는 이유
- 모델 파라미터 업데이트의 기본 단위
- LLM 학습은 모델의 파라미터를 업데이트하는 과정을 중심으로 이루어지며, 이 과정은 Training Step 단위로 실행됩니다.
- 학습률 조정 및 스케줄링
- 학습률 조정(Warm-up 및 Decay)과 같은 주요 메커니즘은 일반적으로 Step 단위를 기준으로 설정합니다.
- Gradient Accumulation 또한 Step 단위로 관리되며, 이를 통해 학습의 안정성과 효율성을 높일 수 있습니다.
- Early Stopping 및 모델 모니터링
- 목표 성능에 도달하거나 더 이상의 개선이 없을 경우 학습을 중단하는 Early Stopping은 보통 Training Step을 기준으로 작동합니다.
1.4.2 Epoch을 기준으로 하는 경우
- 소규모 데이터셋 기반의 파인튜닝
- 소규모 데이터셋을 사용하는 경우, 모델이 데이터셋 전체를 몇 번 학습했는지 (Epoch 수)가 성능 개선의 중요한 지표가 됩니다.
- 과적합(Overfitting) 방지
- Epoch 단위로 학습 곡선을 관찰함으로써 과적합 징후(예: Validation Loss의 급격한 증가)를 사전에 파악할 수 있습니다.
-