Trainer — loop 짜기 싫을 때
HuggingFace Trainer 가 표준 PyTorch training loop 를 batteries 로 wrap: distributed training, mixed precision, gradient accumulation, evaluation, checkpointing, logging, battle-tested default set. 대부분 fine-tuning task 에 너 loop 짜기보다 Trainer 사용이 빠름.
세 조각
- model — 보통
AutoModelFor[Task].from_pretrained(...). - dataset — 보통 HuggingFace Dataset,
.map(tokenizer, batched=True)통해 tokenize. - training argument —
TrainingArguments객체가 모든 거 encode: epoch, batch size, LR, eval strategy, save strategy, FP16/BF16, logging dir.
raw PyTorch 와 비교 잃는 거
Trainer 가 opinionated. training loop 가 unusual structure (두 loss 교대, custom gradient surgery, multi-stage curricula) 면 싸움. 'fine-tune model X on dataset Y' 엔 옳은 도구. '이 novel architecture 를 이 novel objective 로 train' 은 너 loop 짜기.
Trainer vs Lightning vs raw PyTorch 언제
- HF Trainer — HF model 을 HF dataset 에 fine-tune 하는 데 best. 통합이 빡빡.
- PyTorch Lightning — loop boilerplate 처리 원하지만 model 이 HF 아님이거나, Trainer 보다 더 유연성 필요.
- raw PyTorch — novel architecture, research, 또는 max 통제. Track 4 에 짠 loop 가 production 에 충분.