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 da Kueue, incluindo gerenciamento de cotas, agendamento prioritário e políticas de compartilhamento de recursos, para garantir que suas cargas de trabalho 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 obter mais informações gerais sobre governança de tarefas, consulteSageMaker HyperPod governança de tarefas.

Como funciona o gerenciamento da carga de trabalho 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 classe prioritária

Defina classes de prioridade dedicadas para cargas de trabalho 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 tarefas. Essa configuração permite que as cargas de trabalho de inferência antecipem 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 sua equipe ClusterQueue para lidar com os picos de inferência esperados. Durante períodos de baixo tráfego de inferência, os recursos de cota não utilizados podem ser alocados temporariamente para as tarefas de outras equipes. Quando a demanda de inferência aumenta, esses recursos emprestados podem ser recuperados para priorizar os pods de inferência pendentes. Para obter 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: desative o empréstimo e o empréstimo de cotas para garantir que a capacidade reservada da GPU esteja sempre disponível para suas cargas de trabalho. 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 o empréstimo de cotas para utilizar recursos ociosos de outras equipes quando necessário. As cápsulas emprestadas são marcadas como preemptivas e podem ser despejadas se a equipe de crédito recuperar a capacidade.

Preempção dentro da equipe

Ative a preempção dentro da equipe ao executar cargas de trabalho 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 obter mais informações, consulte Preempção.

Exemplo de configuração da carga de trabalho 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 cluster e configuração de políticas

Seu cluster tem a seguinte configuração:

  • Equipe A: cota de 10 GPU P4

  • Equipe B: cota de 20 GPU P4

  • Provisionamento estático: sem escalonamento automático

  • Capacidade total: 30 P4 GPUs

O pool 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

Kueue impõe cotas de equipe e classes prioritárias, com a preempção e o empréstimo de cotas habilitados.

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 Kueue detecta que os novos pods são:

  • Dentro do namespace da Equipe B

  • Prioridade 100 (inferência em tempo real)

  • Admissão pendente devido a restrições de cota

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

Opção 1: Empréstimo de cotas - Se a Equipe A usar apenas 6 de seus 10 P4s, Kueue poderá admitir os pods da Equipe B usando os 4 P4s ociosos. No entanto, esses recursos emprestados são preemptivos. Se a Equipe A enviar trabalhos para atingir sua cota total, Kueue despeja os módulos de inferência emprestados da 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 esperando, Kueue antecipa os trabalhos de avaliação dentro da cota da Equipe B e admite os pods de inferência. Essa abordagem fornece alocação segura de recursos sem risco de despejo externo.

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

  1. Verificação de cota

    Pergunta: A equipe B tem uma cota não utilizada?

    • Sim → Admita as cápsulas

    • Não → Prossiga para a Etapa 2

  2. Autopreempção na Equipe B

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

    • Sim → Antecipe trabalhos de avaliação (prioridade 50), libere 5 P4s e admita cápsulas de inferência

    • Não → Prossiga para a Etapa 3

    Essa abordagem mantém as cargas de trabalho dentro da cota garantida da Equipe B, evitando riscos de despejo externo.

  3. Empréstimos de outras equipes

    Pergunta: Existe uma cota ociosa e emprestável de outras equipes?

    • Sim → Admitir o uso da cota emprestada (marcada como preemptiva)

    • Não → O pod permanece no NotAdmitted estado