기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
HyperPod에서 Slurm을 사용하여 분산 훈련 워크로드 실행
SageMaker HyperPod는 대규모 언어 모델(LLM) 및 파운데이션 모델(FM) 훈련의 워크로드에 특화되었습니다. 이러한 워크로드에는 여러 병렬 처리 기법을 사용하고 ML 인프라 및 리소스에 최적화된 작업이 필요한 경우가 많습니다. SageMaker HyperPod를 사용하면 다음 SageMaker AI 분산 훈련 프레임워크를 사용할 수 있습니다.
-
에 최적화된 집합 통신 작업을 제공하는 SageMaker AI 분산 데이터 병렬 처리(SMDDP) 라이브러리입니다 AWS.
SageMaker HyperPod에서 SMDDP 사용
SMDDP 라이브러리는 분산 데이터 병렬 훈련의 컴퓨팅 성능을 개선하는 집합 통신 라이브러리입니다. SMDDP 라이브러리는 다음과 같은 오픈 소스 분산 훈련 프레임워크에서 작동합니다.
SMDDP 라이브러리는 SageMaker HyperPod에 대해 다음을 제공하여 키 집합 통신 작업의 통신 오버헤드를 해결합니다.
-
라이브러리는에
AllGather
최적화되어 있습니다 AWS.AllGather
는 샤딩된 데이터 병렬 훈련에 사용되는 키 작업으로, 인기 있는 라이브러리에서 제공하는 메모리 효율적인 데이터 병렬 처리 기법입니다. 여기에는 SageMaker AI 모델 병렬 처리(SMP) 라이브러리, DeepSpeed Zero Redundancy Optimizer(ZeRO) 및 PyTorch 완전 샤딩 데이터 병렬 처리(FSDP)가 포함됩니다. -
라이브러리는 AWS 네트워크 인프라와 SageMaker AI ML 인스턴스 토폴로지를 완전히 활용하여 최적화된 node-to-node 통신을 수행합니다.
샘플 데이터 병렬 훈련 작업을 실행하려면
SMDDP 라이브러리를 사용하여 데이터 병렬 처리 기술을 구현하는 다음 분산 훈련 샘플을 살펴보세요.
SageMaker HyperPod에서 SMDDP 라이브러리를 사용하기 위한 환경을 설정하려면
다음은 SageMaker HyperPod 에서 SMDDP 라이브러리를 사용하기 위한 훈련 환경 요구 사항입니다.
-
PyTorch v2.0.1 이상
-
CUDA v11.8 이상
-
3보다 큰
libstdc++
런타임 버전 -
Python v3.10.x 이상
-
SMDDP 라이브러리에서 지원하는 인스턴스 유형인
ml.p4d.24xlarge
및ml.p4de.24xlarge
-
imdsv2
훈련 호스트에서 활성화됨
분산 훈련 작업을 실행하는 방법에 따라 SMDDP 라이브러리를 설치하는 두 가지 옵션이 있습니다.
-
SMDDP 바이너리 파일을 사용한 직접 설치입니다.
-
SMDDP 라이브러리와 함께 사전 설치된 SageMaker AI 딥 러닝 컨테이너(DLCs) 사용.
SMDDP 라이브러리 또는 SMDDP 바이너리 파일의 URL이 사전 설치된 Docker 이미지는 SMDDP 라이브러리 설명서의 지원되는 프레임워크에 나열되어 있습니다.
SageMaker HyperPod DLAMI에 SMDDP 라이브러리를 설치하려면
-
pip install --no-cache-dir https://smdataparallel.s3.amazonaws.com/binary/pytorch/
<pytorch-version>/cuXYZ/YYYY-MM-DD/smdistributed_dataparallel-X.Y.Z-cp310-cp310-linux_x86_64
.whl참고
Conda 환경에서 작업하는 경우
pip
대신conda install
를 사용하여 PyTorch를 설치해야 합니다.conda install pytorch==
X.Y.Z
torchvision==X.Y.Z
torchaudio==X.Y.Z
pytorch-cuda=X.Y.Z
-c pytorch -c nvidia
Docker 컨테이너에서 SMDDP 라이브러리를 사용하려면
-
SMDDP 라이브러리는 SageMaker AI 딥 러닝 컨테이너(DLCs. SMDDP 라이브러리가 있는 PyTorch용 SageMaker AI 프레임워크 DLCs 목록을 찾으려면 SMDDP 라이브러리 설명서의 지원되는 프레임워크를 참조하세요. PyTorch SMDDP 라이브러리를 사용하기 위해 필요한 종속 항목이 설치된 자체 Docker 컨테이너를 가져올 수도 있습니다. SMDDP 라이브러리를 사용하도록 사용자 지정 Docker 컨테이너를 설정하는 방법에 대한 자세한 내용은 SageMaker AI 분산 데이터 병렬 라이브러리를 사용하여 자체 Docker 컨테이너 생성 섹션도 참조하세요.
중요
Docker 컨테이너에서 SMDDP 라이브러리를 사용하려면 호스트 시스템의
/var/log
디렉터리를 컨테이너의/var/log
에 탑재합니다. 컨테이너를 실행할 때 다음 옵션을 추가하여 이 작업을 수행할 수 있습니다.docker run
<OTHER_OPTIONS>
-v /var/log:/var/log ...
일반적으로 SMDDP를 사용하여 데이터 병렬 훈련 작업을 실행하는 방법을 알아보려면 SageMaker AI 분산 데이터 병렬 처리 라이브러리를 사용한 분산 훈련 섹션을 참조하세요.
SageMaker HyperPod 클러스터에서 SMP 사용
SageMaker AI 모델 병렬 처리(SMP) 라이브러리는 다음과 같은 다양한 state-of-the-art 모델 병렬 처리 기술을 제공합니다.
-
완전히 샤딩된 데이터 병렬 처리
-
전문가 병렬 처리
-
FP16/BF16 및 FP8 데이터 유형을 사용한 혼합 정밀도 훈련
-
텐서 병렬 처리
SMP 라이브러리는 PyTorch FSDP, NVIDIA Megatron 및 NVIDIA Transformer Engine과 같은 오픈 소스 프레임워크와도 호환됩니다.
샘플 모델 병렬 훈련 워크로드를 실행하려면
SageMaker AI 서비스 팀은에서 SMP 라이브러리를 사용하여 모델 병렬 처리를 구현하는 샘플 훈련 작업을 제공합니다awsome-distributed-training/3.test_cases/17.SM-modelparallelv2