AI

[개념정리] Distributed Training

마농농 2025. 2. 25. 19:32

https://www.youtube.com/watch?v=tiAZUme2ST0

참고 영상

해당 목차 중 4번까지만 내용 서술

  • 이전 내용까지는 inference를 가속화 하는 방법에 대해 다룸
    • 예로, pruning, quantization, knowledge distillation..
  • 이번 내용은 training을 더 빠르게 만드는 방법에 대해 다룰 예정

1. Background and motivation

  • 더 높은 정확도를 위해서는 더 많은 연산량이 필요함
  • 시간이 지날수록 모델 사이즈는 커지고 있음

GPU 1개로 훈련하는데 걸리는 시

  • gpu 하나로는 training을 감당할 수 없음 > 시간이 너무 오래 걸림
    • 하지만 gpu가 여러 개라면 훈련 시간을 대폭 줄일 수 있음
    • GPU 예 : V100, A100, B100
  • More gpu,, more design cycles..

2. Parallelization methods for distributed training

1) Data Parallelism

  • spliting data > each gpu sharing same model

2) Pipeline Parallelism

  • sharing the same dataset, spliting the model

3) Tensor Parallelism

 

  • spliting the layer
  • also shring the same data

4) Sequence Parallelism

  • 작년 강의에 포함되어 있지 않는 새로운 내용

  • batch dimension : data parallelism
    • spliting the book
  • token dimension : long sequence to short sequence
    • data에서 또 data를 자르는 것,, nlp의 sequence가 too long한 점으로부터 착안된 것 같아보임

3. Data Parallelism

Parameter server

  • centralization approach, 더 이상 사용하지 않는 방법
  • 그림 설명
    • 4명의 workers 로부터 서버가 데이터를 받아서(centralization) gradient를 update함

전체 overview

 

  • 모델 복제
  • 각 worker는 model을 가져옴

2. split training data to workers

  • data에는 weight, activation

  • spliting된 dataset 사용 = 4 workers 는 서로 다른 dataset을 사용해서 training
    • 따라서 각 model의 local gradient는 다름

  • 2개의 synchronize steps : 빨간 박스 (each worker, server)

4. Communication Primitives