기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
하이브리드 샤딩된 데이터 병렬 처리
샤딩된 데이터 병렬 처리는 디바이스 간에 모델 상태(모델 파라미터, 그라데이션 및 옵티마이저 상태)를 분할하는 메모리 절약형 분산 훈련 기법입니다. 이렇게 하면 더 큰 모델에 맞추거나 여유 GPU 메모리를 사용하여 배치 크기를 늘릴 수 있습니다. SMP 라이브러리는 사용 GPUs 중인 전체 세트에 걸쳐 기본적으로 샤드를 PyTorch 완전히 샤드된 데이터 병렬(FSDP) PyTorch FSDP로 샤드된 데이터 병렬 처리를 실행하는 기능을 제공합니다. SMP v2에서 라이브러리는 , , FULL_SHARD
, 에서 제공하는 샤딩 전략 중 하나인 PyTorch 하이브리드 샤딩(HYBRID_SHARD
)을 확장하여 이 샤딩된 데이터 병렬 처리를 제공합니다 PyTorch FSDPSHARD_GRAD_OP
HYBRID_SHARD
_HYBRID_SHARD_ZERO2
. PyTorch FSDP
SMP 라이브러리를 사용하면 구성 가능한 수의 _HYBRID_SHARD_ZERO2
에서 HYBRID_SHARD
및 를 쉽게 사용할 수 있으므로 단일 노드(HYBRID_SHARD
) 또는 모든 GPUs ()에서 샤딩을 지원하는 네이티브 PyTorch FSDP를 GPUs확장할 수 있습니다FULL_SHARD
. PyTorch FSDP 호출은 그대로 유지될 수 있으며 다음 코드 예제와 같이 SMP 구성에 hybrid_shard_degree
인수만 추가하면 됩니다. PyTorch 모델 주변의 FSDP 래퍼에서 sharding_strategy
PyTorch 인수 값을 변경할 필요가 없습니다. ShardingStrategy.HYBRID_SHARD
를 값으로 전달할 수 있습니다. 또는 SMP 라이브러리는 스크립트의 전략을 재정의하고 hybrid_shard_degree
파라미터에 2보다 크거나 같은 값을 지정하는 ShardingStrategy.HYBRID_SHARD
경우 로 설정합니다.
다음 코드 조각은 에 도입된 2단계 프로세스를 따르면서 훈련 스크립트torch.sagemaker.init()
에 SMP 초기화 모듈을 추가하고 훈련 작업 시작 관리자를 위한 JSON 형식으로 SMP 구성 사전을 설정하는 방법을 보여줍니다 SageMaker 모델 병렬 처리 라이브러리 v2 사용. PyTorch 모델 또는 PyTorch FSDPhybrid_shard_degree
파라미터에 대한 자세한 내용은 SMPv2 핵심 기능 구성 매개변수을 참조하세요.
SMP 구성 사전
{ "hybrid_shard_degree": 16 }
훈련 스크립트에서
import torch.sagemaker as tsm tsm.init() # Set up a PyTorch model model = ... # Wrap the PyTorch model using the PyTorch FSDP module model = FSDP( model, ... ) # Optimizer needs to be created after FSDP wrapper optimizer = ...