Todos os produtos
Search
Central de documentação

Platform For AI:Inferência distribuída em vários nós

Última atualização: Sep 10, 2026

A inferência distribuída em vários nós do EAS permite implantar modelos MoE grandes, como o DeepSeek 671B, que excedem a capacidade de um único dispositivo.

Pré-requisitos

As imagens oficiais do SGLang e vLLM do EAS ou do Model Gallery suportam nativamente a inferência distribuída. Para usar uma imagem personalizada, verifique se ela atende aos requisitos de rede do framework de inferência distribuída e segue os padrões convencionais de processamento distribuído. Para obter detalhes, consulte How it works.

Como funciona

Principais conceitos e princípios de implementação da inferência distribuída:

Unidade de instância

A inferência distribuída introduz unidades de instância (referidas como Unit neste tópico). As instâncias dentro de uma Unit utilizam comunicação de rede de alto desempenho e estratégias de paralelismo, como paralelismo de tensores (TP) e paralelismo de pipeline (PP), para processar cada solicitação. As instâncias em uma Unit são stateful. As Units são totalmente simétricas e stateless entre si.

ID da instância

Cada instância em uma Unit recebe um ID de instância sequencial por meio de uma variável de ambiente. Para obter a lista de variáveis de ambiente, consulte Appendix. Use esses IDs para atribuir tarefas diferentes às instâncias.

Tratamento de tráfego

Por padrão, cada Unit lida com o tráfego apenas pela instância 0 (RANK_ID = 0). O sistema roteia o tráfego do usuário para a instância 0 de cada Unit usando descoberta de service. Cada Unit processa solicitações de maneira distribuída e gerencia o tráfego independentemente.

image

Atualizações contínuas

Durante uma atualização contínua, a Unit é reconstruída como um todo. Todas as instâncias na nova Unit iniciam em paralelo. Depois que todas as novas instâncias estiverem prontas, o sistema remove o tráfego da Unit antiga e exclui suas instâncias.

image

Ciclo de vida

Reconstrução da Unit

Quando uma Unit é recriada, todas as instâncias na Unit antiga são excluídas em paralelo e todas as instâncias na nova Unit são criadas em paralelo. Não ocorre nenhum tratamento especial baseado no ID da instância.

Recriação de instância

Por padrão, cada instância em uma Unit compartilha o ciclo de vida da instância 0. Quando a instância 0 é recriada, todas as outras instâncias na Unit também são recriadas. Se uma instância diferente de zero for recriada, as demais instâncias permanecem inalteradas.

Tolerância a falhas distribuída

  • Tratamento de falha de instância

    • Ao detectar uma falha em qualquer instância de um service distribuído, o sistema reinicia automaticamente todas as instâncias na Unit.

    • Essa medida evita inconsistências no estado do cluster causadas por falhas de ponto único e garante que todas as instâncias iniciem com um ambiente limpo e consistente.

  • Recuperação coordenada

    • Após a reinicialização das instâncias, o sistema aguarda até que todas as instâncias na Unit atinjam um estado pronto consistente, utilizando uma barreira de sincronização. Os processos de negócio iniciam somente depois que todas as instâncias estiverem prontas.

    • Isso atende às seguintes finalidades:

      • Evita falhas no grupo de comunicação NCCL causadas por estados inconsistentes das instâncias.

      • Garante uma sincronização rigorosa de inicialização em todos os nós de uma tarefa de inferência distribuída.

A tolerância a falhas distribuída está desativada por padrão. Para ativá-la, defina o parâmetro unit.guard conforme mostrado no exemplo a seguir:

{
  "unit": {
    "size": 2,
    "guard": true
  }
}

Procedimento

Implantar usando o Model Gallery

Recomenda-se o uso do Model Gallery para implantação distribuída em vários nós.

  • A inferência distribuída é suportada apenas quando o mecanismo de inferência é SGLang ou vLLM.

  • Selecione recursos de implantação compatíveis com o modelo escolhido.

No cartão do modelo, clique em Deploy. Em seguida, clique no ícone de edição ao lado do modelo de implantação. Na caixa de diálogo aberta, selecione Distributed.

Implantar usando uma imagem personalizada

  1. Faça login no PAI console. Selecione uma região na parte superior da página. Em seguida, selecione o workspace desejado e clique em Enter Elastic Algorithm Service (EAS).

    • Criar um service: Na aba Inference Service, clique em Deploy Service. Selecione Custom Model Deployment> Custom Deployment.

    • Atualizar um service: Na aba Inference Service, localize o service de destino na lista de services. Na coluna Actions, clique em Update.

  2. No formulário de configuração de parâmetros, defina os seguintes parâmetros. Para mais detalhes, consulte Custom Deployment.

    • Na seção Environment Information, configure a imagem de runtime e o comando de início:

      • Image Configuration: Na lista Alibaba Cloud Image, selecione uma imagem vllm ou sglang.

      • Command: Após selecionar uma imagem, o sistema define o comando de início automaticamente. Não o modifique.

    • Na área Features, ative a chave Distributed Inference e configure os seguintes parâmetros principais:

      Parâmetro

      Descrição

      Number of Machines for Single-Replica Deployment

      Número de máquinas para uma única instância de inferência de modelo. O valor mínimo é 2.

      RDMA Network

      Ative o RDMA para garantir conexões de rede de alta velocidade entre as máquinas.

      Nota

      O RDMA está disponível apenas para services implantados em recursos Lingjun.

  3. Após configurar os parâmetros, clique em Deploy ou Update.

Apêndice

Ao implantar um service de inferência distribuída, configure a rede para frameworks como Torch Distributed ou Ray. Se você ativar VPC ou RDMA, cada instância terá múltiplas NICs. Especifique qual NIC usar para comunicação entre instâncias.

  • RDMA ativado: Usa a NIC RDMA (net0) por padrão.

  • RDMA desativado: Usa a NIC VPC (eth1) configurada pelo usuário.

Passe essas configurações como variáveis de ambiente no comando de início:

Nome da Variável de Ambiente

Descrição

Valor de Exemplo

RANK_ID

ID da instância, começando em 0 e incrementando de 1 em 1.

0

COMM_IFNAME

NIC para comunicação entre instâncias:

  • RDMA ativado: net0.

  • RDMA desativado: eth1 (NIC para VPC configurada).

net0

RANK_IP

Endereço IP para comunicação entre instâncias, correspondente à NIC especificada por COMM_IFNAME.

11...*

MASTER_ADDRESS

Endereço IP da instância 0 (RANK_ID = 0), correspondente à NIC especificada por COMM_IFNAME para a instância 0.

11...*