Atualize sua versão da AMI em seu SageMaker HyperPod cluster - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Atualize sua versão da AMI em seu SageMaker HyperPod cluster

Amazon SageMaker HyperPod Amazon Machine Images (AMIs) são imagens de máquina especializadas para cargas de trabalho distribuídas de aprendizado de máquina e computação de alto desempenho. Cada AMI vem pré-carregada com drivers, frameworks de machine learning, bibliotecas de treinamento e ferramentas de monitoramento de desempenho. Ao atualizar a versão da AMI no cluster, você pode usar as versões mais recentes desses componentes e pacotes para suas tarefas de treinamento e fluxos de trabalho.

Ao atualizar a versão da AMI no cluster, você tem a opção de processar a atualização imediatamente, agendar uma atualização única ou usar uma expressão cron para criar uma programação recorrente. Você também pode optar por atualizar todas as instâncias em um grupo de instâncias ou apenas lotes de instâncias. Se você optar por atualizar os lotes, defina a porcentagem ou a quantidade de instâncias que a SageMaker IA deve atualizar por vez. Se você usar esse método de atualização, definirá um intervalo de quanto tempo a SageMaker IA deve esperar entre os lotes.

Se você optar por atualizar em lote, também poderá incluir uma lista de alarmes e métricas. Durante o intervalo de espera, a SageMaker IA observa essas métricas e, se alguma exceder seu limite, o alarme correspondente entra no estado ALARM e a SageMaker IA reverte a atualização da AMI. Para utilizar reversões automáticas, o perfil de execução do IAM deve ter a permissão cloudwatch:DescribeAlarms.

nota

A atualização do seu cluster em lotes está disponível somente para HyperPod clusters integrados ao Amazon EKS. Além disso, se você estiver criando vários agendamentos, recomendamos que ter um intervalo de tempo entre os agendamentos. Se os horários se sobrepuserem, as atualizações poderão falhar.

Para obter mais informações sobre cada versão da AMI para seu HyperPod cluster, consulteAmazon SageMaker HyperPod AMI. Para obter mais informações sobre HyperPod versões gerais, consulteNotas SageMaker HyperPod de lançamento da Amazon.

Você pode usar a API de SageMaker IA ou as operações da CLI para atualizar seu cluster ou ver atualizações programadas para um cluster específico. Se você estiver usando o AWS console, siga estas etapas:

nota

A atualização da sua AMI com o AWS console está disponível somente para clusters integrados ao Amazon EKS. Se você tiver um cluster do Slurm, deverá usar as operações da API de SageMaker IA ou da CLI.

  1. Abra o console do Amazon SageMaker AI em https://console.aws.amazon.com/sagemaker/.

  2. À esquerda, expanda HyperPod Clusters e escolha Cluster Management.

  3. Escolha o cluster que você deseja atualizar e selecione Detalhes e Atualizar AMI.

Para criar e gerenciar cronogramas de atualização de forma programática, use as seguintes operações de API:

Permissões obrigatórias

Dependendo de como você configurou seu Pod Disruption Budget em seu cluster Amazon HyperPod EKS, remove pods, libera nós e impede qualquer programação de atualização durante o processo de atualização da AMI. Se alguma restrição dentro do orçamento for violada, HyperPod ignore esse nó durante a atualização da AMI. SageMaker HyperPod Para remover corretamente os pods, você deve adicionar as permissões necessárias à função vinculada ao HyperPod serviço. O arquivo yaml a seguir tem as permissões necessárias.

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

Use os comandos a seguir para aplicar as permissões.

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

Expressão cron

Para configurar uma atualização única em um determinado horário ou uma programação recorrente, use expressões cron. As expressões cron permitem três campos e são separadas por um espaço em branco. Todos os campos são obrigatórios.

cron(Minutes Hours Day-of-month Month Day-of-week Year)
Campos Valores Curingas

Minutos

00-59

N/D

Horas

00-23

N/D

D ay-of-month

01-31

?

Mês

01-12

* /

D ay-of-week

1-7 ou MON-SUN

? # L

Ano

Ano atual: 2099

*
Curingas
  • O * (asterisco) curinga inclui todos os valores no campo. No campo Hours, * incluirá cada hora.

  • A / (barra) curinga especifica incrementos. No campo Months, você pode inserir */3 para especificar a cada três meses.

  • O curinga ? (interrogação) especifica um ou outro. No Day-of-month campo, você poderia inserir 7 e, se não se importasse em que dia da semana era o sétimo, poderia inserir? no Day-of-week campo.

  • O curinga L nos campos ou day-of-week especifica o último dia do mês ou da semana. Por exemplo, 5L significa a última sexta-feira do mês.

  • O caractere curinga # no ay-of-week campo especifica uma determinada instância do dia da semana especificado em um mês. Por exemplo, 3#2 seria a segunda terça-feira do mês: o 3 refere-se a terça-feira, porque é o terceiro dia de cada semana, e o 2 refere-se ao segundo dia desse tipo dentro do mês.

É possível usar o expressões cron nos seguintes cenários:

  • Programação única que é executada em um determinado horário e dia. Você pode usar o ? caractere curinga para indicar isso day-of-month ou day-of-week não.

    cron(30 14 ? 12 MON 2024)
    cron(30 14 15 12 ? 2024)
  • Programação semanal que é executada em um determinado horário e dia. O exemplo a seguir cria uma programação que é executada às 12h de todas as segundas-feiras, independentemente de day-of-month.

    cron(00 12 ? * 1 *)
  • Programação mensal que é executada todos os meses, independentemente do day-of-week. A programação a seguir é executada às 12h30 do dia 15 de cada mês.

    cron(30 12 15 * ? *)
  • Uma programação mensal que usa day-of-week.

    cron(30 12 ? * MON *)
  • Para criar uma programação que seja executada a cada enésimo mês, use o caractere curinga /. O exemplo a seguir cria uma programação mensal que é executada a cada três meses. Os dois exemplos a seguir demonstram como ele funciona com day-of-week day-of-month e.

    cron(30 12 15 */3 ? *)
    cron(30 12 ? */3 MON *)
  • Uma programação que é executada em uma determinada instância do dia especificado da semana. O exemplo a seguir cria uma programação que é executada às 12h30 na segunda segunda-feira de cada mês.

    cron(30 12 ? * 1#2 *)
  • Uma programação que é executada na última instância do dia especificado da semana. A programação a seguir é executada às 12h30 na última segunda-feira de cada mês.

    cron(30 12 ? * 1L *)