LLM 학습 스케일링: 단일 칩에서 데이터 센터까지. 제4장. Transformer 학습
이 장에서는 여러 가속기에서 transformer를 학습하기 위한 네 가지 병렬화 방식, 즉 데이터 병렬화(data parallelism), 완전 샤딩 데이터 병렬화(fully-sharded data parallelism, FSDP), 텐서 병렬화(tensor parallelism), 파이프라인 병렬화(pipeline parallelism)를 검토한다. 각 방식의 장단점과 언제 결합해야 하는지 논의하며, 확장성을 위해 계산 병목(computation-bound) 성능을 달성하는 것의 중요성을 강조한다.
이 기사는 트랜스포머를 효율적으로 그리고 대규모로 훈련하는 방법을 설명합니다. 모델 차원(D, F, B, T, L)과 하드웨어(C, W, X, Y, Z)에 대한 표기법을 소개합니다. 네 가지 병렬 처리 유형이 설명됩니다: 데이터 병렬 처리는 배치를 가속기들에 분할하고, 경사도 집계를 위해 AllReduce가 필요하며, 모델이 하나의 가속기에 맞을 때 효과적입니다. FSDP(ZeRO)는 모델 가중치, 경사도, 옵티마이저 상태를 분할하고, AllGather와 ReduceScatter를 사용하며, 작은 배치 크기로 계산 중심입니다. 텐서 병렬 처리는 가중치 행렬을 분할하고 활성화를 교환하며, 활성화 크기를 가중치에 비해 줄이기 위해 FSDP와 결합하는 것이 가장 좋습니다. 파이프라인 병렬 처리는 모델을 계층별로 분할하여 데이터 전송을 최소화하지만 '파이프라인 버블'을 도입하며, 이는 마이크로배칭이나 계산 중복으로 완화할 수 있습니다. 기사는 FSDP+TP 조합이 거의 항상 계산 중심이며, 파이프라인 처리가 GPU 클러스터에서 일반적이라고 지적합니다. 결론적으로 목표는 오버헤드를 관리하면서 확장하는 것입니다.
출처: Habr — хаб ИИ —
원문
