쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

SageMaker HyperPod 클러스터 복원력

포커스 모드
SageMaker HyperPod 클러스터 복원력 - Amazon SageMaker AI

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

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

SageMaker HyperPod는 다음과 같은 클러스터 복원력 기능을 제공합니다.

클러스터 상태 확인

이 섹션에서는 SageMaker HyperPod가 클러스터 인스턴스 상태를 정기적으로 모니터링하여 액셀러레이터(GPU 및 Trainium 코어) 및 네트워킹(EFA)과 같은 디바이스 관련 문제를 모니터링하는 데 사용하는 상태 확인 세트를 설명합니다.

범주 유틸리티 이름 인스턴스 유형 호환성 설명
액셀러레이터 DCGM 정책 GPU 클러스터의 각 인스턴스는 NVIDIA DCGM을 사용하여 XID 오류를 포함한 모든 GPU 관련 정책을 지속적으로 모니터링합니다.
액셀러레이터 NVIDIA SMI GPU nvidia-smi 유틸리티는 GPU를 관리 및 모니터링하기 위한 잘 알려진 CLI입니다. 기본 제공 상태 확인기는 nvidia-smi의 출력을 구문 분석하여 인스턴스의 상태를 확인합니다.
액셀러레이터 Neuron sysfs Trainium Trainium 기반 인스턴스의 경우 Neuron 드라이버가 직접 전파하는 Neuron sysfs의 카운터를 읽고 Neuron 디바이스의 상태를 확인합니다.
네트워크 EFA GPU 및 Trainium EFA(Elastic Fabric Adaptor) 디바이스의 진단을 돕기 위해 EFA 상태 확인기는 인스턴스 내에서 사용 가능한 모든 EFA 카드를 사용하여 일련의 연결 테스트를 실행합니다.
스트레스 DCGM 진단 수준 2 GPU DCGM 진단 수준 2는 시스템에서 GPU를 실행하고 상태에 대한 철저한 인사이트를 얻기 위해 GPU를 압박하는 데 사용됩니다.
스트레스 CPU 스트레스 GPU 및 Trainium CPU 상태는 100% CPU 사용률을 달성하고 I/O 작업을 수행하기 위해 여러 스레드를 실행하는 Linux 스트레스 도구를 사용하여 결정됩니다.

자동 재개

이 섹션에서는 노드가 16개 이상인 클러스터에 하드웨어 장애가 발생할 경우 마지막으로 저장된 체크포인트에서 훈련 작업을 자동으로 복구할 수 있는 제로 터치 복원력 인프라를 제공하는 SageMaker HyperPod 자동 재개 기능을 사용하여 훈련 작업을 실행하는 방법을 설명합니다.

자동 재개 기능을 사용하면 하드웨어 장애 또는 훈련 간 일시적인 문제로 인해 작업이 실패하는 경우 SageMaker HyperPod 자동 재개는 노드 교체 워크플로를 시작하고 결함이 있는 노드를 교체한 후 작업을 다시 시작합니다.

참고

일반 리소스(GRES)가 Slurm 노드에 연결된 경우 Slurm은 일반적으로 노드 교체와 같은 노드 할당 변경을 허용하지 않으므로 가 실패한 작업을 재개할 수 없습니다. 명시적으로 금지되지 않는 한 HyperPod 자동 재개 기능은 GRES 지원 노드와 연결된 결함이 있는 작업을 자동으로 다시 대기열에 추가합니다. 이 프로세스에는 작업을 중지하고 작업 대기열에 다시 배치한 다음 처음부터 작업을 다시 시작하는 작업이 포함됩니다.

Slurm에서 SageMaker HyperPod 자동 재개 기능 사용

SageMaker HyperPod 자동 재개를 Slurm과 함께 사용하는 경우 salloc 또는 sbatch를 사용하여 획득한 독점 할당 내에서 작업을 실행해야 합니다. 어떤 경우든 작업을 재개할 때 모든 설정 단계가 단일 srun 명령으로 실행되도록 하려면 진입점 스크립트를 수정해야 합니다. 진입점 스크립트를 통해 작업 단계가 중지되기 전에 실행 중이었던 환경과 일치하도록 교체된 노드의 환경을 설정하는 것이 중요합니다. 다음 절차에서는 환경을 일관되게 유지하고 단일 srun 명령으로 실행하도록 진입점 스크립트를 준비하는 방법을 보여줍니다.

작은 정보

sbatch를 사용하는 경우 환경을 설정하고 단일 srun 명령을 사용하여 별도의 스크립트를 생성하여 배치 스크립트를 간단하게 유지할 수 있습니다.

  1. 다음 코드 예제를 사용하여 스크립트를 생성하고 train_auto_resume.sh로 저장합니다. 이 스크립트는 이전에 교체된 노드에 대해 수행된 수동 구성이 없다고 가정하여 훈련 환경 설정을 배포합니다. 이렇게 하면 환경이 노드에 구애받지 않으므로 노드를 교체할 때 작업을 재개하기 전에 노드에서 동일한 환경이 프로비저닝됩니다.

    참고

    다음 코드 예제는 작업과 연결된 Slurm 노드 목록을 검색하는 방법을 보여줍니다. SageMaker HyperPod가 작업을 자동 재개한 후 값이 오래되었을 수 있으므로 Slurm에서 제공하는 $SLURM_JOB_NODELIST 환경 변수를 사용하지 마세요. 다음 코드 예제에서는 SLURM_JOB_NODELIST를 대체할 새 NODE_LIST 변수를 정의한 다음 NODE_LIST 변수에서 MASTER_NODEMASTER_ADDR 변수를 설정하는 방법을 보여줍니다.

    #!/bin/bash # Filename: train_auto_resume.sh # Sample containerized script to launch a training job with a single srun which can be auto-resumed. # Place your training environment setup here. # Example: Install conda, docker, activate virtual env, etc. # Get the list of nodes for a given job NODE_LIST=$(scontrol show jobid=$SLURM_JOBID | \ # Show details of the SLURM job awk -F= '/NodeList=/{print $2}' | \ # Extract NodeList field grep -v Exc) # Exclude nodes marked as excluded # Determine the master node from the node list MASTER_NODE=$(scontrol show hostname $NODE_LIST | \ # Convert node list to hostnames head -n 1) # Select the first hostname as master node # Get the master node address MASTER_ADDR=$(scontrol show node=$MASTER_NODE | \ # Show node information awk -F= '/NodeAddr=/{print $2}' | \ # Extract NodeAddr awk '{print $1}') # Print the first part of NodeAddr # Torchrun command to launch the training job torchrun_cmd="torchrun --nnodes=$SLURM_NNODES \ --nproc_per_node=1 \ --node_rank=$SLURM_NODE \ --master-addr=$MASTER_ADDR \ --master_port=1234 \ <your_training_script.py>" # Execute the torchrun command in the 'pytorch' Conda environment, # streaming output live /opt/conda/bin/conda run --live-stream -n pytorch $torchrun_cmd
    작은 정보

    위의 스크립트를 사용하여 작업에 대한 추가 종속성을 설치하기 위한 명령을 더 추가할 수 있습니다. 그러나 클러스터 생성 중에 사용되는 수명 주기 스크립트 세트에 종속성 설치 스크립트를 보관하는 것이 좋습니다. 공유 디렉터리에서 호스팅되는 가상 환경을 사용하는 경우 이 스크립트를 사용하여 가상 환경을 활성화할 수도 있습니다.

  2. 하드웨어 실패 시 srun 명령을 자동으로 재시도해야 함을 나타내는 --auto-resume=1 플래그를 추가하여 SageMaker HyperPod 자동 재개가 활성화된 작업을 시작합니다.

    참고

    sbatch 또는 salloc를 사용하여 리소스 할당을 설정한 경우 할당 내에서 여러 srun 명령을 실행할 수 있습니다. 장애가 발생할 경우 SageMaker HyperPod 자동 재개 기능은 플래그 --auto-resume=1가 있는 srun 명령의 현재 작업 단계에서만 작동합니다. 즉, srun 명령에서 자동 재개를 활성화하는 것은 리소스 할당 세션 내에서 시작된 다른 srun 명령에는 적용되지 않습니다.

    다음은 auto-resume이 사용 설정된 srun 명령의 예입니다.

    sbatch 사용

    환경을 설정하기 위한 대부분의 로직은 이미 train_auto_resume.sh에 있으므로 배치 스크립트는 간단하고 다음 코드 예제와 유사해야 합니다. 다음 배치 스크립트가 batch.sh로 저장된다고 가정합니다.

    #!/bin/bash #SBATCH --nodes 2 #SBATCH --exclusive srun --auto-resume=1 train_auto_resume.sh

    다음 명령을 사용하여 앞의 배치 스크립트를 실행하세요.

    sbatch batch.sh

    salloc 사용

    먼저 독점 할당을 획득하고 --auto-resume 플래그와 진입점 스크립트로 srun 명령을 실행합니다.

    salloc -N 2 --exclusive srun --auto-resume=1 train_auto_resume.sh

HyperPod에서 자동으로 재개되지 않는 결함이 있는 노드를 교체하는 방법

HyperPod 자동 재개 기능은 Slurm 노드의 상태가 fail 또는 down으로 바뀌는지 모니터링합니다. sinfo를 실행하여 Slurm 노드의 상태를 확인할 수 있습니다.

노드에 문제가 있지만 HyperPod 자동 재개 기능으로 해결되지 않는 경우 다음 명령을 실행하여 노드의 상태를 fail로 변경하는 것이 좋습니다.

scontrol update node=<ip-ipv4> state=fail reason="Action:Replace"

이전 명령 예제에서 <ip-ipv4>를 교체하려는 결함이 있는 인스턴스의 Slurm 노드 이름(호스트 이름)으로 바꿉니다.

이 명령을 실행한 후 노드는 fail 상태로 전환되고, 현재 실행 중인 작업이 완료될 때까지 대기하고, 정상 인스턴스로 대체되고, 동일한 호스트 이름으로 복구됩니다. 이 프로세스는 가용 영역에서 사용 가능한 인스턴스와 수명 주기 스크립트를 실행하는 데 걸리는 시간에 따라 시간이 걸립니다. 업데이트 및 교체 프로세스 중에는 노드의 상태를 수동으로 다시 변경하거나 Slurm 컨트롤러를 다시 시작하지 마세요. 이렇게 하면 교체가 실패할 수 있습니다. 노드가 오랜 시간 후에도 복구되지 않거나 idle 상태로 전환되지 않으면 AWS 지원 부서에 문의하세요.

결함이 있는 노드가 fail 상태에서 계속 중단되면 시도할 수 있는 마지막 수단은 노드 상태를 down으로 강제 변경하는 것입니다. 여기에는 관리자 권한(sudo 권한)이 필요합니다.

주의

다음 명령을 실행하기 전에 주의 깊게 진행하세요. 강제로 모든 작업이 종료되고 저장되지 않은 모든 작업이 손실될 수 있습니다.

scontrol update node=<ip-ipv4> state=down reason="Action:Replace"
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.