기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon에서 분산 훈련 시작하기 SageMaker
다음 페이지에서는 Amazon 에서 분산 훈련을 시작하는 데 필요한 단계에 대한 정보를 제공합니다 SageMaker. 이미 분산 훈련에 익숙하다면 선호하는 전략 또는 프레임워크에 맞는 다음 옵션 중 하나를 선택하여 시작하세요. 분산 훈련 전반에 대해 알아보려면 분산 훈련 개념을(를) 참조하세요.
SageMaker 분산 훈련 라이브러리는 SageMaker 훈련 환경에 최적화되어 있으며, 분산 훈련 작업을 에 맞게 조정 SageMaker하고 훈련 속도와 처리량을 개선하는 데 도움이 됩니다. 라이브러리는 데이터 병렬 및 모델 병렬 훈련 전략을 모두 제공합니다. 소프트웨어와 하드웨어 기술을 결합하여 노드 간GPU 및 노드 간 통신을 개선하고, SageMaker의 훈련 기능을 훈련 스크립트에 대한 코드 변경을 최소화하는 내장 옵션으로 확장합니다.
시작하기 전에
SageMaker 훈련은 단일 인스턴스와 여러 인스턴스에서 분산 훈련을 지원하므로 대규모로 모든 규모의 훈련을 실행할 수 있습니다. 다양한 분산 훈련 옵션이 있는 훈련 작업 시작 관리자SDK인 SageMaker Python TensorFlowCreateTrainingJob
API에서 를 실행하고, 현재 세션이 실행되는 리전을 찾고, AWS 딥 러닝 프레임워크, 분산 훈련 프레임워크, EFA 드라이버를 포함한 여러 라이브러리로 미리 패키징된 사전 빌드된 딥 러닝 컨테이너 중 하나를 가져옵니다. FSx 파일 시스템을 훈련 인스턴스에 탑재하려면 VPC 서브넷 및 보안 그룹 ID를 추정기에 전달해야 합니다. 에서 분산 훈련 작업을 실행하기 전에 기본 인프라 설정에 대한 다음 일반 지침을 SageMaker읽어보세요.
가용 영역 및 네트워크 백플레인
여러 인스턴스(노드라고도 함)를 사용할 때는 인스턴스를 연결하는 네트워크, 훈련 데이터를 읽는 방법 및 인스턴스가 서로 정보를 공유하는 방법을 이해하는 것이 중요합니다. 예를 들어 분산 데이터 병렬 훈련 작업을 실행할 때 AllReduce
작업을 실행하기 위한 컴퓨팅 클러스터의 노드 간 통신 및 Amazon Simple Storage Service 또는 Amazon FSx for Lustre의 노드와 데이터 스토리지 간 데이터 전송과 같은 여러 요소가 컴퓨팅 리소스를 최적으로 사용하고 훈련 속도를 높이는 데 중요한 역할을 합니다. 통신 오버헤드를 줄이려면 동일한 AWS 리전 가용 영역에서 인스턴스, VPC 서브넷 및 데이터 스토리지를 구성해야 합니다.
GPU 더 빠른 네트워크 및 고처리량 스토리지를 갖춘 인스턴스
엄밀히 따지자면 어떤 인스턴스든 분산 훈련에 사용할 수 있습니다. 더 빠른 노드 간 정류가 필요한 대규모 언어 모델(LLMs) 및 확산 모델과 같은 대규모 모델을 훈련하기 위해 다중 노드 분산 훈련 작업을 실행해야 하는 경우 EFA에서 지원하는 활성화된 GPU 인스턴스를 SageMaker
SageMaker 분산 데이터 병렬 처리(SMDDP) 라이브러리 사용
SMDDP 라이브러리는 AWS 네트워크 인프라 AllReduce
및 Amazon SageMaker ML 인스턴스 토폴로지에 최적화된 및 AllGather
집합 통신 작업을 구현하여 노드 간 통신을 개선합니다. SMDDP 라이브러리를 분산 데이터 병렬(), 완전히 샤딩된 데이터 병렬(), 및 Megatron-과 같은 PyTorch기반 분산 훈련 패키지의 백엔드로 사용할 수 있습니다. PyTorch DDPml.p4d.24xlarge
인스턴스에서 분산 훈련 작업을 시작하기 위해 PyTorch
추정기를 설정하는 방법을 보여줍니다.
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", # Activate distributed training with SMDDP distribution={ "pytorchddp": { "enabled": True } } # mpirun, activates SMDDP AllReduce OR AllGather # distribution={ "torch_distributed": { "enabled": True } } # torchrun, activates SMDDP AllGather # distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } # mpirun, activates SMDDP AllReduce OR AllGather )
훈련 스크립트를 준비하고 에서 분산 데이터 병렬 훈련 작업을 시작하는 방법을 알아보려면 섹션을 SageMaker참조하세요분산 데이터 병렬화 라이브러리를 사용하여 SageMaker 분산 훈련 실행.
SageMaker 모델 병렬 처리 라이브러리 사용(SMP)
SageMaker 는 SMP 라이브러리를 제공하며 샤딩된 데이터 병렬 처리, 파이프라이닝, 텐서 병렬 처리, 옵티마이저 상태 샤딩 등과 같은 다양한 분산 훈련 기술을 지원합니다. SMP 라이브러리가 제공하는 기능에 대한 자세한 내용은 섹션을 참조하세요 SageMaker 모델 병렬화 라이브러리의 핵심 기능.
SageMaker의 모델 병렬 처리 라이브러리를 사용하려면 SageMaker 프레임워크 추정기의 distribution
파라미터를 구성합니다. 지원되는 프레임워크 추정기는 PyTorchml.p4d.24xlarge
인스턴스에서 모델 병렬화 라이브러리를 사용하여 분산 훈련을 위한 프레임워크 예측기를 구성하는 방법을 보여줍니다.
from sagemaker.
framework
importFramework
distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # enter parameter key-value pairs here } }, }, "mpi": { "enabled" : True, ... # enter parameter key-value pairs here } } estimator =Framework
( ..., instance_count=2
, instance_type="ml.p4d.24xlarge
", distribution=distribution )
훈련 스크립트를 조정하고, estimator
클래스에서 배포 파라미터를 구성하고, 분산 훈련 작업을 시작하는 방법을 알아보려면 SageMaker의 모델 병렬 처리 라이브러리를 참조하세요(SageMaker Python SDK 설명서의 분산 훈련 APIs
오픈 소스 분산 훈련 프레임워크 사용
SageMaker 는 백엔드torchrun
에서 mpirun
및 를 작동하는 다음 옵션도 지원합니다.
-
에서
mpirun
백엔드와 SageMaker 함께 PyTorch DistributedDataParallel (DDP)를 사용하려면 distribution={"pytorchddp": {"enabled": True}}
를 PyTorch 추정기에 추가합니다. 자세한 내용은 SageMaker Python SDK 설명서 의 PyTorch 분산 훈련및 SageMaker PyTorch 추정기 distribution
인수를 참조하세요.참고
이 옵션은 PyTorch 1.12.0 이상에서 사용할 수 있습니다.
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", distribution={"pytorchddp": {"enabled": True}} # runs mpirun in the backend ) -
SageMaker 는 P3 및 P4와 같은 GPU기반 Amazon EC2 인스턴스뿐만 아니라 AWS Trainium
디바이스로 구동되는 Trn1에 대한 분산 훈련을 위한 PyTorch torchrun
시작 관리자를 지원합니다. torchrun
백엔드와 SageMaker 함께 에서 PyTorch DistributedDataParallel (DDP)를 사용하려면 distribution={"torch_distributed": {"enabled": True}}
를 PyTorch 추정기에 추가합니다.참고
이 옵션은 PyTorch 1.13.0 이상에서 사용할 수 있습니다.
다음 코드 조각은
torch_distributed
배포 옵션이 있는 두ml.p4d.24xlarge
인스턴스에서 분산 훈련을 실행하도록 SageMaker PyTorch 추정기를 구성하는 예를 보여줍니다.from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", distribution={"torch_distributed": {"enabled": True}} # runs torchrun in the backend )자세한 내용은 SageMaker Python SDK 설명서의 분산 PyTorch 훈련
및 SageMaker PyTorch 추정기 distribution
인수를 참조하세요.Trn1의 분산 훈련에 대한 참고 사항
Trn1 인스턴스는 최대 16개의 Trainium 디바이스로 구성되며 각 Trainium 디바이스는 2개의 로 구성됩니다NeuronCores
. AWS Trainium 디바이스 사양은 AWS Neuron 설명서의 Trainium 아키텍처 를 참조하세요. Trainium 기반 인스턴스에서 훈련하려면 SageMaker PyTorch 추정기 클래스의
instance_type
인수에 문자열로 Trn1 인스턴스 코드ml.trn1.*
만 지정하면 됩니다. 사용 가능한 Trn1 인스턴스 유형을 찾으려면 AWS Neuron 설명서의 AWS Trn1 아키텍처를 참조하세요. 참고
SageMaker Amazon EC2 Trn1 인스턴스에 대한 교육은 현재 v1.11.0부터 PyTorch Neuron용 AWS 딥 러닝 컨테이너의 PyTorch 프레임워크에만 사용할 수 있습니다. 지원되는 PyTorch Neuron 버전의 전체 목록을 찾으려면 Deep Learning Containers 리포지토리의 Neuron
Containers를 참조하세요. AWS GitHub SageMaker Python을 사용하여 Trn1 인스턴스에서 훈련 작업을 시작하면 SageMaker는 AWS Deep Learning Containers에서 제공하는 Neuron Containers
에서 올바른 컨테이너를 SDK자동으로 픽업하고 실행합니다. Neuron Containers는 훈련 환경 설정 및 종속성이 사전 패키징되어 훈련 작업을 SageMaker 훈련 플랫폼 및 Amazon EC2 Trn1 인스턴스에 더 쉽게 적용할 수 있습니다. 참고
를 사용하여 Trn1 인스턴스에서 PyTorch 훈련 작업을 실행하려면
xla
백엔드로 프로세스 그룹을 초기화하고 PyTorch/XLA를 사용하도록 훈련 스크립트를 수정 SageMaker해야 합니다. XLA 채택 프로세스를 지원하기 위해 AWS Neuron은 에서 PyTorch 작업을 Trainium 지침으로 변환하는 XLA 데 사용하는 PyTorch Neuron을 SDK 제공합니다. 훈련 스크립트를 수정하는 방법을 알아보려면 PyTorch Neuron 설명서의 Neuron 훈련 개발자 안내서( torch-neuronx
)를 참조하세요. AWS 자세한 내용은 SageMaker Python SDK 설명서의 Trn1 인스턴스 및 Estimator 인수에 대한 PyTorch Neuron과의 분산 훈련
을 참조하세요. SageMaker PyTorch distribution
-
MPI 에서 를 사용하려면 추정기에
distribution={"mpi": {"enabled": True}}
를 SageMaker추가합니다. MPI 배포 옵션은 MXNet, PyTorch및 프레임워크에 사용할 수 있습니다 TensorFlow. -
에서 파라미터 서버를 사용하려면
distribution={"parameter_server": {"enabled": True}}
를 추정기에 SageMaker추가합니다. 파라미터 서버 옵션은 MXNet, PyTorch및 프레임워크에 사용할 수 있습니다 TensorFlow.작은 정보
프레임워크당 MPI 및 파라미터 서버 옵션 사용에 대한 자세한 내용은 SageMaker Python SDK 설명서 에 대한 다음 링크를 사용하세요.
-
MXNet 분산 훈련
및 SageMaker MXNet 추정 기의 distribution
인수 -
PyTorch 분산 훈련
및 SageMaker PyTorch 추정 기의 distribution
인수 -
TensorFlow 분산 훈련
및 SageMaker TensorFlow 추정기의 distribution
인수입니다.
-