AutoModel과 Accelerator로 모델 준비하기

PyTorch로 AI 모델 효율적으로 학습시키기

Dennis Lee

Data Engineer, Amazon

강사를 소개합니다!

$$

  • 데이터 엔지니어

강사 사진

서버 아이콘

PyTorch로 AI 모델 효율적으로 학습시키기

강사를 소개합니다!

$$

  • 데이터 엔지니어
  • 데이터 과학자

강사 사진

서버와 전구 아이콘

PyTorch로 AI 모델 효율적으로 학습시키기

강사를 소개합니다!

$$

  • 데이터 엔지니어
  • 데이터 과학자
  • 전기공학 박사

강사 사진

서버, 전구, 학사모 아이콘

PyTorch로 AI 모델 효율적으로 학습시키기

강사를 소개합니다!

$$

  • 데이터 엔지니어
  • 데이터 과학자
  • 전기공학 박사

강사 사진

서버, 전구, 학사모 아이콘

$$

$$

$$

모범 사례를 공유하게 되어 기쁩니다!

PyTorch로 AI 모델 효율적으로 학습시키기

효율적인 AI 학습을 위한 로드맵

  • 분산 AI 모델 학습

노트북

PyTorch로 AI 모델 효율적으로 학습시키기

효율적인 AI 학습을 위한 로드맵

  • 분산 AI 모델 학습

노트북과 기다리는 사람

PyTorch로 AI 모델 효율적으로 학습시키기

효율적인 AI 학습을 위한 로드맵

  • 분산 AI 모델 학습

노트북, 기다리는 사람, 메모리 칩

  • ↓ ↓ 대규모 언어 모델의 학습 시간

달력

PyTorch로 AI 모델 효율적으로 학습시키기

효율적인 AI 학습을 위한 로드맵

강좌 주제를 나타내는 플로우차트: 데이터 준비, 분산 학습, 효율적 학습, 옵티마이저.

$$

  • 데이터 준비: 여러 디바이스에 데이터 배치
PyTorch로 AI 모델 효율적으로 학습시키기

효율적인 AI 학습을 위한 로드맵

강좌 주제를 나타내는 플로우차트: 데이터 준비, 분산 학습, 효율적 학습, 옵티마이저.

$$

  • 데이터 준비: 여러 디바이스에 데이터 배치
  • 분산 학습: 여러 디바이스로 학습 확장
PyTorch로 AI 모델 효율적으로 학습시키기

효율적인 AI 학습을 위한 로드맵

강좌 주제를 나타내는 플로우차트: 데이터 준비, 분산 학습, 효율적 학습, 옵티마이저.

$$

  • 데이터 준비: 여러 디바이스에 데이터 배치
  • 분산 학습: 여러 디바이스로 학습 확장
  • 효율적 학습: 사용 가능한 디바이스 최적화
PyTorch로 AI 모델 효율적으로 학습시키기

효율적인 AI 학습을 위한 로드맵

강좌 주제를 나타내는 플로우차트: 데이터 준비, 분산 학습, 효율적 학습, 옵티마이저.

$$

  • 데이터 준비: 여러 디바이스에 데이터 배치
  • 분산 학습: 여러 디바이스로 학습 확장
  • 효율적 학습: 사용 가능한 디바이스 최적화
  • 옵티마이저: 학습 가속화
PyTorch로 AI 모델 효율적으로 학습시키기

CPU

  • 대부분의 노트북에는 CPU가 탑재됨

         

CPU 노트북

GPU

  • GPU는 대형 모델 학습 가능

         

GPU 노트북

PyTorch로 AI 모델 효율적으로 학습시키기

CPU vs GPU

CPU

  • 대부분의 노트북에 탑재
  • 범용 연산에 최적화
  • 더 나은 제어 흐름

         

일상 작업에 사용되는 노트북

GPU

  • GPU는 대형 모델 학습 가능
  • 고도 병렬 연산 특화
  • 행렬 연산에 뛰어남

         

병렬 연산에 사용되는 노트북

PyTorch로 AI 모델 효율적으로 학습시키기

분산 학습

모델 복제와 데이터 샤딩을 나타내는 분산 학습 다이어그램.

  • 데이터 샤딩: 각 디바이스가 데이터의 일부를 병렬로 처리
PyTorch로 AI 모델 효율적으로 학습시키기

분산 학습

모델 복제와 데이터 샤딩을 나타내는 분산 학습 다이어그램.

  • 데이터 샤딩: 각 디바이스가 데이터의 일부를 병렬로 처리
  • 모델 복제: 각 디바이스가 순전파/역전파 수행
  • 그래디언트 집계: 지정된 디바이스가 그래디언트를 집계
  • 파라미터 동기화: 지정된 디바이스가 업데이트된 파라미터를 공유
PyTorch로 AI 모델 효율적으로 학습시키기

간편한 효율화: 사전 학습 모델 활용

  • 사전 학습된 Transformer 모델 활용
  • AutoModelForSequenceClassification으로 모델 파라미터 초기화
  • 구성 출력
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
PyTorch로 AI 모델 효율적으로 학습시키기

Accelerator로 디바이스 배치하기

  • Hugging Face 클래스 🤗
  • Accelerator는 사용 가능한 디바이스를 자동으로 감지
  • accelerator.prepare()로 디바이스 배치 및 데이터 병렬화 자동화
  • torch.nn.Module 타입의 모델을 첫 번째 사용 가능한 GPU에 배치
  • GPU가 없으면 CPU로 기본 설정
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
PyTorch로 AI 모델 효율적으로 학습시키기

연습해 봅시다!

PyTorch로 AI 모델 효율적으로 학습시키기

Preparing Video For Download...