기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
참고
훈련 작업 자동 재개에는 Kubeflow 훈련 운영자 릴리스 버전 1.7.0
, 1.8.0
또는가 필요합니다1.8.1
.
참고로 Helm 차트를 사용하여 클러스터에 Kubeflow 훈련 연산자를 설치해야 합니다. 자세한 내용은 헬름을 사용하여 Amazon EKS 클러스터에 패키지 설치 섹션을 참조하세요. 다음 명령을 실행하여 Kubeflow 훈련 운영자 제어 영역이 제대로 설정되었는지 확인합니다.
kubectl get pods -n kubeflow
이는 다음과 비슷한 출력을 반환합니다.
NAME READY STATUS RESTARTS AGE
training-operator-658c68d697-46zmn 1/1 Running 0 90s
훈련 작업을 제출하려면
훈련 작업을 실행하려면 다음과 같이 작업 구성 파일을 준비하고 kubectl apply
kubectl apply -f
/path/to/training_job.yaml
교육 작업을 설명하려면
EKS 클러스터에 제출된 작업의 세부 정보를 검색하려면 다음 명령을 사용합니다. 작업 제출 시간, 완료 시간, 작업 상태, 구성 세부 정보와 같은 작업 정보를 반환합니다.
kubectl get -o yaml
training-job
-nkubeflow
훈련 작업을 중지하고 EKS 리소스를 삭제하려면
훈련 작업을 중지하려면 kubectl 삭제를 사용합니다. 다음은 구성 파일 pytorch_job_simple.yaml
에서 생성된 훈련 작업을 중지하는 예입니다.
kubectl delete -f
/path/to/training_job.yaml
이는 다음 출력을 반환해야 합니다.
pytorchjob.kubeflow.org "training-job" deleted
작업 자동 재개를 활성화하려면
SageMaker HyperPod는 Kubernetes 작업에 대한 작업 자동 재개 기능을 지원하며 Kubeflow 훈련 운영자 제어 영역과 통합됩니다.
클러스터에 SageMaker HyperPod 상태 확인을 통과한 노드가 충분한지 확인합니다. 노드에는 테인트 sagemaker.amazonaws.com/node-health-status
이 Schedulable
로 설정되어 있어야 합니다. 작업 YAML 파일에 노드 선택기를 포함하여 다음과 같이 적절한 구성을 가진 노드를 선택하는 것이 좋습니다.
sagemaker.amazonaws.com/node-health-status: Schedulable
다음 코드 조각은 Kubeflow PyTorch 작업 YAML 구성을 수정하여 작업 자동 재개 기능을 활성화하는 방법의 예입니다. 두 개의 주석을 추가하고 다음과 같이 OnFailure
를 restartPolicy
로 설정해야 합니다.
apiVersion: "kubeflow.org/v1"
kind: PyTorchJob
metadata:
name: pytorch-simple
namespace: kubeflow
annotations: { // config for job auto resume
sagemaker.amazonaws.com/enable-job-auto-resume: "true"
sagemaker.amazonaws.com/job-max-retry-count: "2"
}
spec:
pytorchReplicaSpecs:
......
Worker:
replicas: 10
restartPolicy: OnFailure
template:
spec:
nodeSelector:
sagemaker.amazonaws.com/node-health-status: Schedulable
작업 자동 재개 상태를 확인하려면
다음 명령을 실행하여 작업 자동 재개의 상태를 검색합니다.
kubectl describe pytorchjob -n kubeflow
<job-name>
실패 패턴에 따라 다음과 같이 Kubeflow 훈련 작업 재시작의 두 가지 패턴이 표시될 수 있습니다.
패턴 1:
Start Time: 2024-07-11T05:53:10Z
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreateService 9m45s pytorchjob-controller Created service: pt-job-1-worker-0
Normal SuccessfulCreateService 9m45s pytorchjob-controller Created service: pt-job-1-worker-1
Normal SuccessfulCreateService 9m45s pytorchjob-controller Created service: pt-job-1-master-0
Warning PyTorchJobRestarting 7m59s pytorchjob-controller PyTorchJob pt-job-1 is restarting because 1 Master replica(s) failed.
Normal SuccessfulCreatePod 7m58s (x2 over 9m45s) pytorchjob-controller Created pod: pt-job-1-worker-0
Normal SuccessfulCreatePod 7m58s (x2 over 9m45s) pytorchjob-controller Created pod: pt-job-1-worker-1
Normal SuccessfulCreatePod 7m58s (x2 over 9m45s) pytorchjob-controller Created pod: pt-job-1-master-0
Warning PyTorchJobRestarting 7m58s pytorchjob-controller PyTorchJob pt-job-1 is restarting because 1 Worker replica(s) failed.
패턴 2:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreatePod 19m pytorchjob-controller Created pod: pt-job-2-worker-0
Normal SuccessfulCreateService 19m pytorchjob-controller Created service: pt-job-2-worker-0
Normal SuccessfulCreatePod 19m pytorchjob-controller Created pod: pt-job-2-master-0
Normal SuccessfulCreateService 19m pytorchjob-controller Created service: pt-job-2-master-0
Normal SuccessfulCreatePod 4m48s pytorchjob-controller Created pod: pt-job-2-worker-0
Normal SuccessfulCreatePod 4m48s pytorchjob-controller Created pod: pt-job-2-master-0