Governança de tarefas para implantação de modelos em HyperPod - 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á.

Governança de tarefas para implantação de modelos em HyperPod

Esta seção aborda como otimizar seus clusters compartilhados do Amazon SageMaker HyperPod EKS para cargas de trabalho de inferência em tempo real. Você aprenderá a configurar os recursos de governança de tarefas do Kueue, como gerenciamento de cotas, agendamento prioritário e políticas de compartilhamento de recursos, para garantir que suas workloads de inferência recebam os recursos de GPU de que precisam durante picos de tráfego, mantendo uma alocação justa nas atividades de treinamento, avaliação e teste de suas equipes. Para ter mais informações gerais sobre governança de tarefas, consulte SageMaker HyperPod governança de tarefas.

Como funciona o gerenciamento de workloads de inferência

Para gerenciar com eficácia os picos de tráfego de inferência em tempo real em clusters HyperPod EKS compartilhados, implemente as seguintes estratégias de governança de tarefas usando os recursos existentes da Kueue.

Configuração de classes prioritárias

Defina classes prioritárias dedicadas a workloads de inferência com pesos altos (como 100) para garantir que os pods de inferência sejam admitidos e programados antes de outros tipos de tarefa. Essa configuração permite que as workloads de inferência impeçam trabalhos de menor prioridade durante a carga do cluster, o que é essencial para manter os requisitos de baixa latência durante picos de tráfego.

Dimensionamento e alocação de cotas

Reserve recursos de GPU suficientes na ClusterQueue de sua equipe para lidar com os picos de inferência esperados. Durante períodos de baixo tráfego de inferência, os recursos com cota não utilizada podem ser alocados temporariamente a tarefas de outras equipes. Quando a demanda de inferência aumenta, esses recursos tomados emprestados podem ser recuperados para priorizar os pods de inferência pendentes. Para ter mais informações, consulte Cluster Queue.

Estratégias de compartilhamento de recursos

Escolha entre duas abordagens de compartilhamento de cotas com base em seus requisitos:

  1. Controle estrito de recursos: desabilite o empréstimo e a tomada de empréstimo de cotas para garantir que a capacidade reservada de GPU esteja sempre disponível para suas workloads. Essa abordagem exige o dimensionamento de cotas grandes o suficiente para lidar de forma independente com picos de demanda e pode resultar em nós ociosos durante períodos de baixo tráfego.

  2. Compartilhamento flexível de recursos: permita a tomada de empréstimo de cotas para utilizar recursos ociosos de outras equipes quando necessário. Os pods tomados emprestados são marcados como passíveis de preempção e podem ser removidos se a equipe que está emprestando reivindicar capacidade.

Preempção dentro da equipe

Habilite a preempção dentro da equipe ao executar workloads mistas (avaliação, treinamento e inferência) sob a mesma cota. Isso permite que a Kueue antecipe trabalhos de baixa prioridade em sua equipe para acomodar pods de inferência de alta prioridade, garantindo que a inferência em tempo real possa ser executada sem depender do empréstimo de cotas externas. Para ter mais informações, consulte Preempção.

Exemplo de configuração de workload de inferência

O exemplo a seguir mostra como a Kueue gerencia os recursos de GPU em um cluster compartilhado da Amazon. SageMaker HyperPod

Configuração de clusters e configuração de políticas

Seu cluster tem a seguinte configuração:

  • Equipe A: cota de 10 GPUs P4

  • Equipe B: cota de 20 GPUs P4

  • Provisionamento estático: sem ajuste de escala automático

  • Capacidade total: 30 P4 GPUs

O grupo compartilhado de GPU usa esta política de prioridade:

  1. Inferência em tempo real: prioridade 100

  2. Treinamento: prioridade 75

  3. Avaliação: prioridade 50

O Kueue impõe cotas de equipe e classes prioritárias, com as opções de preempção e tomada de cotas emprestadas habilitadas.

Estado inicial: utilização normal do cluster

Em operações normais:

  • A equipe A executa trabalhos de treinamento e avaliação em todos os 10 P4 GPUs

  • A Equipe B executa inferência em tempo real (10 P4s) e avaliação (10 P4s) dentro de sua cota de 20 GPUs.

  • O cluster é totalmente utilizado com todas as tarefas admitidas e em execução.

Aumento de inferência: a equipe B precisa de mais GPUs

Quando a equipe B experimenta um pico de tráfego, pods de inferência adicionais exigem mais 5 P4. GPUs O Kueue detecta que os novos pods:

  • Estão dentro do namespace da Equipe B.

  • Têm prioridade 100 (inferência em tempo real).

  • Têm admissão pendente devido a restrições de cota.

O processo de resposta do Kueue escolhe entre duas opções:

Opção 1 (tomar cotas emprestadas): se a Equipe A usar apenas seis de suas dez P4s, o Kueue poderá admitir os pods da Equipe B usando as quatro P4s ociosas. No entanto, esses recursos tomados emprestados podem sofrer preempção. Se a Equipe A enviar trabalhos para atingir sua cota total, o Kueue removerá os pods de inferência tomados emprestados pela Equipe B.

Opção 2 (autopreempção, recomendada): a Equipe B executa trabalhos de avaliação de baixa prioridade (prioridade 50). Quando os pods de inferência de alta prioridade estão aguardando, o Kueue impede os trabalhos de avaliação dentro da cota da Equipe B e admite os pods de inferência. Essa abordagem oferece uma alocação segura de recursos sem risco de remoção externa.

O Kueue segue um processo de três etapas para alocar recursos:

  1. Verificação de cota

    Pergunta: A Equipe B tem cota não utilizada?

    • Sim → Admita os pods.

    • Não → Prossiga para a Etapa 2.

  2. Autopreempção na Equipe B

    Pergunta: Os trabalhos de menor prioridade da Equipe B podem ser impedidos?

    • Sim → Impeça trabalhos de avaliação (prioridade 50), libere cinco P4s e admita pods de inferência.

    • Não → Prossiga para a Etapa 3.

    Essa abordagem mantém as workloads dentro da cota garantida da Equipe B, evitando riscos de remoção externa.

  3. Tomar emprestado de outras equipes

    Pergunta: Existe uma cota ociosa que possa ser tomada emprestada de outras equipes?

    • Sim → Admita o uso da cota tomada emprestada (marcada como passível de preempção).

    • Não → O pod permanece no estado NotAdmitted.