Slurm을 켠 상태에서 분산 교육 워크로드를 실행하세요. HyperPod - 아마존 SageMaker

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

Slurm을 켠 상태에서 분산 교육 워크로드를 실행하세요. HyperPod

SageMaker HyperPod 대형 언어 모델 (LLM) 및 기초 모델 (FM) 교육 워크로드에 특화되어 있습니다. 이러한 워크로드에는 여러 병렬 처리 기술을 사용하고 ML 인프라 및 리소스를 위한 최적화된 운영이 필요한 경우가 많습니다. 를 사용하면 SageMaker HyperPod 다음과 같은 SageMaker 분산 교육 프레임워크를 사용할 수 있습니다.

에서 SMDDP 사용하기 SageMaker HyperPod

SMDDP 라이브러리는 분산 데이터 병렬 훈련의 컴퓨팅 성능을 향상시키는 집단 통신 라이브러리입니다. SMDDP 라이브러리는 다음과 같은 오픈 소스 분산 교육 프레임워크와 함께 작동합니다.

SMDDP 라이브러리는 다음과 같은 형식을 제공하여 주요 집단 통신 작업의 통신 오버헤드를 해결합니다. SageMaker HyperPod

  • 이 라이브러리는 다음에 최적화된 서비스를 제공합니다AllGather. AWSAllGather널리 사용되는 라이브러리에서 제공하는 메모리 효율적인 데이터 병렬 처리 기술인 샤드 데이터 병렬 훈련에 사용되는 주요 연산입니다. 여기에는 SageMaker 모델 병렬화 (SMP) 라이브러리, DeepSpeed 제로 리던던시 옵티마이저 (Zero), 완전 샤딩된 데이터 병렬화 (FSDP) 가 포함됩니다. PyTorch

  • 라이브러리는 네트워크 인프라와 ML 인스턴스 토폴로지를 완전히 node-to-node 활용하여 최적화된 통신을 수행합니다. AWS SageMaker

샘플 데이터 병렬 훈련 작업을 실행하려면

SMDDP 라이브러리를 사용하여 데이터 병렬화 기법을 구현하는 다음 분산 교육 샘플을 살펴보세요.

SMDDP 라이브러리를 사용하기 위한 환경을 설정하려면 SageMaker HyperPod

다음은 SMDDP 라이브러리를 사용하기 위한 교육 환경 요구 사항입니다. SageMaker HyperPod

  • PyTorch v2.0.1 이상

  • CUDA v11.8 이상

  • libstdc++3보다 큰 런타임 버전

  • 파이썬 v3.10.x 이상

  • ml.p4d.24xlargeml.p4de.24xlarge, SMDDP 라이브러리에서 지원하는 인스턴스 유형은 다음과 같습니다.

  • imdsv2교육 호스트에서 활성화됨

분산 교육 작업을 실행하려는 방법에 따라 SMDDP 라이브러리를 설치하는 두 가지 옵션이 있습니다.

  • SMDDP 바이너리 파일을 사용한 직접 설치

  • SMDDP 라이브러리와 함께 사전 설치된 SageMaker 딥 러닝 컨테이너 (DLC) 사용

SMDDP 라이브러리와 함께 사전 설치된 Docker 이미지 또는 SMDDP 바이너리 파일의 URL은 SMDDP 라이브러리 문서의 지원 프레임워크에 나열되어 있습니다.

DLAMI에 SMDDP 라이브러리를 설치하려면 SageMaker HyperPod
  • 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 환경에서 작업하는 경우 대신 를 사용하여 설치해야 합니다. PyTorch conda install pip

    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 라이브러리는 DLC ( SageMaker 딥 러닝 컨테이너) 에 사전 설치되어 있습니다. SMDDP 라이브러리의 SageMaker 프레임워크 DLC 목록을 찾으려면 SMDDP 라이브러리 설명서에서 지원되는 프레임워크를 참조하십시오. PyTorch 필수 종속성이 설치된 자체 Docker 컨테이너를 가져와 SMDDP 라이브러리를 사용할 수도 있습니다. SMDDP 라이브러리를 사용하도록 사용자 지정 Docker 컨테이너를 설정하는 방법에 대한 자세한 내용은 을 참조하십시오. SageMaker 분산 데이터 병렬 라이브러리를 사용하여 자체 Docker 컨테이너를 만드세요.

    중요

    Docker 컨테이너에서 SMDDP 라이브러리를 사용하려면 호스트 시스템의 /var/log 디렉터리를 컨테이너에 마운트하십시오. /var/log 컨테이너를 실행할 때 다음 옵션을 추가하면 이 작업을 수행할 수 있습니다.

    docker run <OTHER_OPTIONS> -v /var/log:/var/log ...

일반적으로 SMDDP를 사용하여 데이터 병렬 훈련 작업을 실행하는 방법을 알아보려면 을 참조하십시오. 분산 데이터 병렬화 라이브러리를 사용하여 SageMaker 분산 교육 작업을 실행하는 방법

클러스터에서 SMP 사용 SageMaker HyperPod

SageMaker 모델 병렬화 (SMP) 라이브러리는 다음과 같은 다양한 state-of-the-art모델 병렬화 기법을 제공합니다.

  • 완전 샤딩된 데이터 병렬화

  • 전문가 병렬 처리

  • FP16/BF16 및 FP8 데이터 유형을 사용한 혼합 정밀 훈련

  • 텐서 병렬성

SMP 라이브러리는 PyTorch FSDP, NVIDIA 메가트론, NVIDIA 트랜스포머 엔진과 같은 오픈 소스 프레임워크와도 호환됩니다.

샘플 모델 병렬 교육 워크로드를 실행하려면

SageMaker 서비스 팀은 의 SMP 라이브러리를 사용하여 모델 병렬화를 구현하는 샘플 교육 작업을 제공합니다. awsome-distributed-training/3.test_cases/17.SM-modelparallelv2