Aggiorna la versione AMI nel tuo SageMaker HyperPod cluster - 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à.

Aggiorna la versione AMI nel tuo SageMaker HyperPod cluster

Amazon SageMaker HyperPod Amazon Machine Images (AMIs) sono immagini di macchine specializzate per carichi di lavoro di apprendimento automatico distribuiti e calcolo ad alte prestazioni. In ogni AMI sono precaricati driver, framework di machine learning, librerie di addestramento e strumenti di monitoraggio delle prestazioni. Aggiornando la versione AMI nel cluster, puoi utilizzare le versioni più recenti di questi componenti e pacchetti per i tuoi job di addestramento e flussi di lavoro.

Quando aggiorni la versione AMI all’interno del tuo cluster, hai la possibilità di elaborare immediatamente l’aggiornamento, pianificare un aggiornamento una tantum o utilizzare un’espressione Cron per creare una pianificazione ricorrente. Puoi anche scegliere di aggiornare tutte le istanze in un gruppo di istanze o solo batch di istanze. Se scegli di aggiornare i batch, imposti la percentuale o la quantità di istanze che l' SageMaker IA deve aggiornare alla volta. Se utilizzi questo metodo di aggiornamento, imposti un intervallo di tempo di attesa dell' SageMaker IA tra un batch e l'altro.

Se scegli di eseguire l’aggiornamento in batch, puoi anche includere un elenco di allarmi e metriche. Durante l'intervallo di attesa, l' SageMaker IA osserva queste metriche e, se alcune superano la soglia, l'allarme corrispondente passa allo stato ALARM e l' SageMaker IA ripristina l'aggiornamento dell'AMI. Per utilizzare i rollback automatici, il ruolo di esecuzione IAM deve disporre dell’autorizzazione cloudwatch:DescribeAlarms.

Nota

L'aggiornamento del cluster in batch è disponibile solo per HyperPod i cluster integrati con Amazon EKS. Inoltre, se stai creando più pianificazioni, ti consigliamo di inserire un buffer temporale tra le pianificazioni. Se le pianificazioni si sovrappongono, gli aggiornamenti potrebbero non riuscire.

Per ulteriori informazioni su ogni versione AMI per il tuo HyperPod cluster, consultaSageMaker HyperPod AMI Amazon. Per ulteriori informazioni sulle HyperPod versioni generali, vedereNote di SageMaker HyperPod rilascio di Amazon.

Puoi utilizzare l'API SageMaker AI o le operazioni CLI per aggiornare il cluster o visualizzare gli aggiornamenti pianificati per un cluster specifico. Se utilizzi la AWS console, segui questi passaggi:

Nota

L'aggiornamento dell'AMI con la AWS console è disponibile solo per i cluster integrati con Amazon EKS. Se disponi di un cluster Slurm, devi utilizzare l'API SageMaker AI o le operazioni CLI.

  1. Apri la console Amazon SageMaker AI all'indirizzo https://console.aws.amazon.com/sagemaker/.

  2. A sinistra, espandi HyperPod Clusters e scegli Cluster Management.

  3. Scegli il cluster da aggiornare, quindi scegli Dettagli e Aggiorna AMI.

Per creare e gestire le pianificazioni degli aggiornamenti in modo programmatico, utilizza le seguenti operazioni API:

Autorizzazioni richieste

A seconda di come hai configurato Pod Disruption Budget nel cluster Amazon EKS, elimina HyperPod i pod, rilascia nodi e impedisce qualsiasi pianificazione degli aggiornamenti durante il processo di aggiornamento dell'AMI. Se vengono violati alcuni vincoli all'interno del budget, HyperPod salta quel nodo durante l'aggiornamento dell'AMI. SageMaker HyperPod Per rimuovere correttamente i pod, è necessario aggiungere le autorizzazioni necessarie al ruolo collegato al servizio. HyperPod Il file yaml seguente ha le autorizzazioni necessarie.

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: hyperpod-patching rules: - apiGroups: [""] resources: ["pods"] verbs: ["list"] - apiGroups: [""] resources: ["pods/eviction"] verbs: ["create"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: hyperpod-patching subjects: - kind: User name: hyperpod-service-linked-role roleRef: kind: ClusterRole name: hyperpod-patching apiGroup: rbac.authorization.k8s.io

Utilizza il comando seguente per impostare le autorizzazioni.

git clone https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli/helm_chart helm upgrade hyperpod-dependencies HyperPodHelmChart --namespace kube-system --install

Espressioni Cron

Per configurare un aggiornamento una tantum in un determinato momento o una pianificazione ricorrente, utilizza le espressioni Cron. Le espressioni Cron supportano sei campi e sono separate da uno spazio vuoto. Tutti e sei i campi sono obbligatori.

cron(Minutes Hours Day-of-month Month Day-of-week Year)
Campi Valori Caratteri jolly

Minuti

00-59

N/D

Ore

00-23

N/D

D ay-of-month

01-31

?

Mese

01-12

* /

D ay-of-week

1-7 o LUN-DOM

? # L

Anno

Anno corrente: 2099

*
Caratteri jolly
  • Il carattere jolly * (asterisco) include tutti i valori nel campo. Nel campo Hours, * include ogni ora.

  • Il carattere jolly / (barra) specifica gli incrementi. Nel campo Months, puoi inserire */3 per specificare ogni terzo mese.

  • Il carattere jolly ? (punto interrogativo) specifica un valore. Nel Day-of-month campo puoi inserire 7, e se non ti interessa in che giorno della settimana è il settimo, puoi inserire? sul Day-of-week campo.

  • Il carattere jolly L nel campo day-of-week specifica l’ultimo giorno del mese o della settimana. Ad esempio, 5L significa l’ultimo venerdì del mese.

  • Il carattere jolly # nel ay-of-week campo specifica una determinata istanza del giorno della settimana specificato nell'arco di un mese. Ad esempio, 3#2 sarebbe il secondo martedì del mese: il 3 fa riferimento a martedì perché è il terzo giorno di ogni settimana e il 2 fa riferimento al secondo giorno di questo tipo in un mese.

Puoi utilizzare le espressioni Cron per gli scenari seguenti:

  • Pianificazione una tantum che viene eseguita in un giorno e a un’ora predefiniti. Puoi usare il carattere ? jolly per indicarlo day-of-month o day-of-week non importa.

    cron(30 14 ? 12 MON 2024)
    cron(30 14 15 12 ? 2024)
  • Pianificazione settimanale eseguita in un orario e in giorno determinati. L'esempio seguente crea una pianificazione che viene eseguita alle 12:00 di ogni lunedì indipendentemente. day-of-month

    cron(00 12 ? * 1 *)
  • Pianificazione mensile che viene eseguita ogni mese indipendentemente da. day-of-week La pianificazione seguente viene eseguita alle 12:30 del 15 di ogni mese.

    cron(30 12 15 * ? *)
  • Una pianificazione mensile che utilizza day-of-week.

    cron(30 12 ? * MON *)
  • Per creare una pianificazione eseguita ogni tot mesi, utilizza il carattere jolly /. Nell’esempio seguente viene creata una pianificazione mensile eseguita ogni 3 mesi. I due esempi seguenti mostrano come funziona con day-of-week e day-of-month.

    cron(30 12 15 */3 ? *)
    cron(30 12 ? */3 MON *)
  • Pianificazione eseguita su una determinata istanza del giorno della settimana specificato. L’esempio seguente crea una pianificazione che viene eseguita alle 12:30 del secondo lunedì di ogni mese.

    cron(30 12 ? * 1#2 *)
  • Pianificazione eseguita nell’ultima istanza del giorno della settimana specificato. La pianificazione seguente viene eseguita alle 12:30 dell’ultimo lunedì di ogni mese.

    cron(30 12 ? * 1L *)