Esecuzione dei processi con kubectl - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esecuzione dei processi con kubectl

Nota

La ripresa automatica del job di addestramento richiede Kubeflow Training Operator versione 1.7.0, 1.8.0 o 1.8.1.

Tieni presente che Kubeflow Training Operator dovrebbe essere installato nei cluster con un grafico Helm. Per ulteriori informazioni, consulta Installazione di pacchetti sul cluster Amazon EKS con Helm. Verifica che il piano di controllo (control-plane) di Kubeflow Training Operator sia configurato correttamente eseguendo questo comando.

kubectl get pods -n kubeflow

Questo restituisce un output simile al seguente.

NAME READY STATUS RESTARTS AGE training-operator-658c68d697-46zmn 1/1 Running 0 90s

Per inviare un job di addestramento

Per eseguire un job di addestramento, prepara il file di configurazione del processo ed esegui il comando kubectl apply come segue.

kubectl apply -f /path/to/training_job.yaml

Per descrivere un job di addestramento

Per recuperare i dettagli del processo inviato al cluster EKS, utilizza il comando seguente. Restituisce informazioni sul processo come l’ora di invio, l’ora di completamento, lo stato e i dettagli di configurazione.

kubectl get -o yaml training-job -n kubeflow

Per arrestare un job di addestramento ed eliminare le risorse EKS

Per arrestare un job di addestramento, utilizza kubectl delete. Di seguito è riportato un esempio di come arrestare il job di addestramento creato dal file di configurazione pytorch_job_simple.yaml.

kubectl delete -f /path/to/training_job.yaml

Dovrebbe essere restituito l’output seguente.

pytorchjob.kubeflow.org "training-job" deleted

Per abilitare la ripresa automatica del processo

SageMaker HyperPod supporta la funzionalità di ripristino automatico dei lavori per i lavori Kubernetes, integrandosi con il piano di controllo Kubeflow Training Operator.

Assicurati che ci siano nodi sufficienti nel cluster che abbiano superato il controllo di integrità. SageMaker HyperPod Il taint sagemaker.amazonaws.com/node-health-status dei nodi deve essere impostato su Schedulable. Consigliamo di includere un selettore di nodi nel file YAML del processo per selezionare i nodi con la configurazione appropriata come descritto di seguito.

sagemaker.amazonaws.com/node-health-status: Schedulable

Il seguente frammento di codice è un esempio di come modificare una configurazione YAML di un PyTorch lavoro Kubeflow per abilitare la funzionalità di ripristino automatico del lavoro. È necessario aggiungere due annotazioni e impostare restartPolicy su OnFailure come segue.

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

Per controllare lo stato di ripresa automatica del processo

Per controllare lo stato di ripresa automatica del processo, utilizza il comando seguente.

kubectl describe pytorchjob -n kubeflow <job-name>

A seconda dei modelli di errore, potrebbero essere riavviati due modelli del job di addestramento Kubeflow, come riportato di seguito.

Modello 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.

Modello 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