C.W.K.
Stream
Lesson 05 of 08 · published

Accelerate: 멀티 디바이스, Mixed Precision, FSDP

~22 min · ops, accelerate

Level 0스카우트
0 XP0/50 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

accelerate 가 주는 거

accelerate 가 Trainer 아래 추상화 — 디바이스 placement, mixed precision, gradient accumulation, 분산 학습 (DDP, FSDP, DeepSpeed), resumability 핸들. Trainer 가 wrap; 커스텀 학습 루프 있으면 직접 사용 가능.

진입 둘

  • Trainer 통해TrainingArguments 노브 (fsdp, deepspeed) 셋, accelerate 가 plumb.
  • 직접Accelerator() + accelerator.prepare(model, optimizer, dataloader) + 너 .backward() / .step().

2026 의 FSDP vs DeepSpeed

FSDP (Fully Sharded Data Parallel, native PyTorch) 가 이제 큰 모델 학습 디폴트 — 더 나은 통합, 단순 config. DeepSpeed (Microsoft) 가 일부 advanced 워크로드에 여전히 강함, runtime dependency 추가. Fine-tuning + 우리가 고려할 스케일의 pre-training 대부분엔 FSDP 가 right starting point.

Code

accelerate config 생성 + 실행·bash
# Interactive — 답 ~/.cache/huggingface/accelerate/default_config.yaml 에
accelerate config

# config 로 스크립트 launch
accelerate launch train.py
accelerate 와 커스텀 학습 루프·python
from accelerate import Accelerator
from torch.utils.data import DataLoader
from transformers import AutoModelForCausalLM, AutoTokenizer, get_cosine_schedule_with_warmup
import torch

acc = Accelerator(mixed_precision="bf16")  # bf16 / fp16 / no
device = acc.device

model = AutoModelForCausalLM.from_pretrained("...")
tok = AutoTokenizer.from_pretrained("...")
optim = torch.optim.AdamW(model.parameters(), lr=1e-4)

# loader = DataLoader(...)
# scheduler = get_cosine_schedule_with_warmup(optim, num_warmup_steps=100, num_training_steps=10_000)

model, optim, loader, scheduler = acc.prepare(model, optim, loader, scheduler)

for step, batch in enumerate(loader):
    out = model(**batch)
    acc.backward(out.loss)
    optim.step(); scheduler.step(); optim.zero_grad()
    if step % 50 == 0 and acc.is_main_process:
        print(step, out.loss.item())

External links

Exercise

accelerate config interactively 실행. 단일 GPU 에서 IMDB Trainer 셋업을 accelerate launch 로 학습. multi-GPU 접근 있으면 FSDP 로 스위치, 같은 레시피가 더 높은 effective batch size + 비슷한 loss 곡선에 동작 검증.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.