텐서 병렬 처리 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

텐서 병렬 처리

텐서 병렬 처리는 특정 모델 가중치, 그라디언트, 옵티마이저 상태가 디바이스 간에 분할되는 일종의 모델 병렬 처리입니다. 개별 가중치는 그대로 유지하되 가중치 세트는 분할하는 파이프라인 병렬 처리와 달리 텐서 병렬 처리는 개별 가중치를 분할합니다. 여기에는 일반적으로 해당 모델의 특정 연산, 모듈 또는 계층에 대한 분산 계산이 포함됩니다.

단일 파라미터가 대부분의 GPU 메모리를 소비하는 경우(예: 어휘 크기가 큰 대형 임베딩 테이블 또는 클래스 개수가 많은 대규모 소프트맥스 레이어) 텐서 병렬 처리가 필요합니다. 이 경우 이렇게 큰 텐서 또는 연산을 원자 단위로 처리하는 것은 비효율적이며 메모리 부하의 균형을 맞추는 데 방해가 됩니다.

텐서 병렬 처리는 순수 파이프라이닝만으로는 충분하지 않은 초대형 모델에도 유용합니다. 예를 들어 수십 개의 인스턴스를 분할해야 하는 GPT-3 스케일 모델의 경우 파이프라인 깊이가 너무 높고 오버헤드가 엄청나게 커지기 때문에 순수 마이크로배치 파이프라이닝은 비효율적입니다.

참고

텐서 병렬 처리는 SageMaker 모델 병렬 처리 라이브러리 v1.6.0 PyTorch 이상에서 사용할 수 있습니다.