Actualice la versión de AMI en su SageMaker HyperPod clúster - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Actualice la versión de AMI en su SageMaker HyperPod clúster

SageMaker HyperPod Amazon Machine Images (AMIs) son imágenes de máquinas especializadas para cargas de trabajo de aprendizaje automático distribuidas y computación de alto rendimiento. Cada AMI incluye controladores, marcos de machine learning, bibliotecas de entrenamiento y herramientas de supervisión del rendimiento. Actualice la versión de la AMI en su clúster, puede utilizar las versiones más recientes de estos componentes y paquetes para sus trabajos y flujos de trabajo de entrenamiento.

Al actualizar la versión de la AMI en su clúster, tiene la opción de procesar la actualización inmediatamente, programar una actualización única o utilizar una expresión cron para crear una programación periódica. También puede optar por actualizar todas las instancias de un grupo de instancias o solo los lotes de instancias. Si decide actualizar los lotes, establece el porcentaje o la cantidad de instancias que la SageMaker IA debe actualizar a la vez. Si utilizas este método de actualización, estableces un intervalo de tiempo para que la SageMaker IA espere entre los lotes.

Si decide actualizar por lotes, también puede incluir una lista de alarmas y métricas. Durante el intervalo de espera, la SageMaker IA observa estas métricas y, si alguna supera su umbral, la alarma correspondiente pasa al estado de ALARMA y la SageMaker IA revierte la actualización de la AMI. Para utilizar las reversiones automáticas, su rol de ejecución de IAM debe tener el permiso cloudwatch:DescribeAlarms.

nota

La actualización del clúster por lotes solo está disponible para HyperPod los clústeres integrados con Amazon EKS. Además, si va a crear varios programaciones, le recomendamos que incluya un tiempo de margen entre las programaciones. Si las programaciones se superponen, es posible que las actualizaciones fallen.

Para obtener más información sobre cada versión de AMI HyperPod del clúster, consulteAmazon SageMaker HyperPod AMI. Para obtener más información sobre las HyperPod versiones generales, consulteNotas de SageMaker HyperPod lanzamiento de Amazon.

Puede usar la API de SageMaker IA o las operaciones de CLI para actualizar el clúster o ver las actualizaciones programadas de un clúster específico. Si utilizas la AWS consola, sigue estos pasos:

nota

La actualización de la AMI con la AWS consola solo está disponible para los clústeres integrados con Amazon EKS. Si tiene un clúster de Slurm, debe usar la API de SageMaker IA o las operaciones de CLI.

  1. Abre la consola Amazon SageMaker AI en https://console.aws.amazon.com/sagemaker/.

  2. A la izquierda, expande HyperPod Clústeres y selecciona Administración de clústeres.

  3. Elija el clúster que desea actualizar y, a continuación, seleccione Detalles y Actualizar AMI.

Para crear y administrar las programaciones de actualización mediante programación, utilice las siguientes operaciones de API:

Permisos necesarios

En función de cómo haya configurado su presupuesto de interrupción de pods en su clúster de Amazon EKS, HyperPod desaloja los pods, libera nodos e impide cualquier programación de actualizaciones durante el proceso de actualización de la AMI. Si se infringe alguna restricción dentro del presupuesto, HyperPod omite ese nodo durante la actualización de la AMI. SageMaker HyperPod Para desalojar los pods correctamente, debe añadir los permisos necesarios a la función vinculada al HyperPod servicio. El siguiente archivo yaml tiene los permisos necesarios.

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

Utilice los siguientes comandos para aplicar los permisos.

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

Expresiones cron

Para configurar una actualización única a una hora determinada o de forma periódica, utilice expresiones cron. Las expresiones cron admiten seis campos y están separadas por espacios en blanco. Los seis campos son obligatorios.

cron(Minutes Hours Day-of-month Month Day-of-week Year)
Campos Valores Caracteres comodín

Minutos

De 0 a 59

N/A

Horas

De 0 a 23

N/A

D ay-of-month

De 1 a 31

?

Mes

De 1 a 12

* /

D ay-of-week

De 1 a 7 o de lunes a domingo

? # L

Año

Año actual — 2099

*
Caracteres comodín
  • El * (asterisco) incluye todos los valores del campo. En el campo Hours, * incluiría cada hora.

  • El comodín / (barra inclinada) especifica incrementos. En el campo Months debe indicar */3 para especificar cada tercer mes.

  • El comodín ? (signo de interrogación) especifica uno u otro. En el Day-of-month campo podía introducir 7, y si no le importaba qué día de la semana era el séptimo, ¿podía introducir? en el Day-of-week campo.

  • El comodín L en el campo day-of-week indica el último día del mes o de la semana. Por ejemplo, 5L significa el último viernes del mes.

  • El comodín # del ay-of-week campo especifica una instancia determinada del día de la semana especificado dentro de un mes. Por ejemplo, 3#2 sería el segundo martes del mes: el número 3 hace referencia al martes, ya que es el tercer día de la semana en el calendario anglosajón, mientras que 2 hace referencia al segundo día de ese tipo dentro de un mes.

Puede utilizar expresiones cron en los siguientes casos:

  • Programación única que se ejecuta en una hora y día determinados. Puede usar el ? comodín para indicar eso day-of-month o day-of-week no importa.

    cron(30 14 ? 12 MON 2024)
    cron(30 14 15 12 ? 2024)
  • Programación semanal que se ejecuta en una hora y día determinados. El siguiente ejemplo crea un horario que se ejecuta a las 12:00 p. m. todos los lunes, independientemente de si. day-of-month

    cron(00 12 ? * 1 *)
  • Programación mensual que se ejecuta todos los meses, independientemente del day-of-week. La siguiente programación se ejecuta a las 12:30 del día 15 de cada mes.

    cron(30 12 15 * ? *)
  • Un programa mensual que utiliza day-of-week.

    cron(30 12 ? * MON *)
  • Para crear una programación que se ejecute cada enésimo mes, debe usar el comodín /. En el siguiente ejemplo, se crea una programación mensual que se ejecuta cada 3 meses. Los dos ejemplos siguientes muestran cómo funciona con day-of-week y day-of-month.

    cron(30 12 15 */3 ? *)
    cron(30 12 ? */3 MON *)
  • Programación que se ejecuta en una instancia concreta del día de la semana especificado. En el siguiente ejemplo, se crea una programación que se ejecuta a las 12:30 cada segundo lunes de cada mes.

    cron(30 12 ? * 1#2 *)
  • Programación que se ejecuta en la última instancia del día de la semana especificado. La siguiente programación se ejecuta a las 12:30 del último lunes de cada mes.

    cron(30 12 ? * 1L *)