Escolher uma estratégia de balanceamento de carga para inferência de modelos de IA/ML no GKE


Nesta página, você vai escolher a estratégia de balanceamento de carga adequada para cargas de trabalho de inferência de modelos de IA/ML no Google Kubernetes Engine (GKE).

Esta página é destinada aos seguintes perfis:

  • Engenheiros de machine learning (ML), administradores e operadores de plataforma e especialistas em dados e IA interessados em usar os recursos de orquestração de contêineres do Kubernetes para veiculação de cargas de trabalho de IA/ML.
  • Arquitetos de nuvem e especialistas em redes que interagem com redes do Kubernetes.

Para saber mais sobre papéis comuns e tarefas de exemplo que mencionamos no conteúdo do Google Cloud , consulte Tarefas e funções de usuário comuns do GKE.

Antes de ler esta página, confira se você conhece os seguintes conceitos:

Ao implantar cargas de trabalho de inferência de modelos de IA/ML no Google Kubernetes Engine (GKE), escolha a estratégia de balanceamento de carga certa para otimizar a performance, a escalonabilidade e a eficiência de custos. Google Cloud oferece as seguintes soluções distintas:

Combinar soluções de balanceamento de carga

É possível usar o gateway de inferência do GKE e o gateway do GKE com métricas personalizadas em algumas arquiteturas. Nessas arquiteturas, o balanceador de carga de aplicativo é usado com o gateway do GKE e métricas personalizadas. Por exemplo, um balanceador de carga de aplicativo externo global direciona o tráfego para a região apropriada com base em fatores como geografia e verificações de integridade. Para mais informações, consulte Balanceadores de carga de aplicativo. Depois que o tráfego chega a uma região específica, o gateway de inferência do GKE realiza um balanceamento de carga refinado e compatível com IA para rotear solicitações ao servidor de modelo ideal. Para mais informações, consulte a documentação do GKE Inference Gateway.

Para escolher a solução de balanceamento de carga Google Cloud que melhor atende aos seus aplicativos de inferência no GKE, considere as características da carga de trabalho, os requisitos de performance e o modelo operacional.

Para direcionar o tráfego à réplica de servidor de modelo mais adequada e menos carregada, a extensão Endpoint Picker do GKE Inference Gateway monitora métricas críticas específicas de IA. Essas métricas incluem a utilização do cache KV do servidor de modelo, o comprimento da fila de solicitações pendentes, o carregamento geral da GPU ou TPU, a disponibilidade do adaptador LoRA e o custo computacional de solicitações individuais. Além do roteamento sofisticado, o gateway de inferência do GKE oferece priorização de solicitações e escalonamento automático otimizado para servidores de modelos.

Visão geral do gateway do GKE com métricas personalizadas

Os balanceadores de carga de aplicativo, como o balanceador de carga de aplicativo externo global e o balanceador de carga de aplicativo externo regional, são balanceadores de carga de uso geral que distribuem o tráfego com base em métricas personalizadas informadas pelos serviços de back-end. Esse recurso oferece controle refinado sobre a distribuição de carga com base em indicadores de performance específicos do aplicativo.

O GKE Gateway funciona como uma interface nativa do Kubernetes para provisionar e gerenciar balanceadores de carga de aplicativo. Basicamente, quando você define um recurso de gateway no cluster do GKE, o controlador de gateway do GKE configura automaticamente o balanceador de carga de aplicativo subjacente, oferecendo uma maneira simplificada de gerenciar o tráfego HTTP/HTTPS externo para os serviços do GKE diretamente do Kubernetes, usando a infraestrutura de balanceamento de carga do Google Cloud.

Comparar soluções de balanceamento de carga

A tabela a seguir compara os recursos do GKE Inference Gateway e do GKE Gateway com métricas personalizadas.

Recurso Gateway de inferência Gateway do GKE com métricas personalizadas (usando balanceadores de carga de aplicativo)
Caso de uso principal Otimiza cargas de trabalho de inferência de IA/ML generativa no Kubernetes, como a disponibilização de modelos de linguagem grandes (LLMs). Funciona bem para veicular vários casos de uso em um único modelo, garantindo acesso justo aos recursos do modelo e otimizando cargas de trabalho de LLM sensíveis à latência e baseadas em GPU/TPU. Oferece balanceamento de carga HTTP(S) de uso geral para cargas de trabalho que precisam de distribuição precisa de tráfego com base em métricas personalizadas informadas pelo aplicativo (indicadores de carga). Funciona bem para serviços sensíveis à latência, como servidores de jogos em tempo real ou plataformas de negociação de alta frequência, que informam dados de utilização personalizados.
Roteamento básico Compatível com roteamento HTTP(S) padrão por host e caminho, estendendo a API GKE Gateway. Compatível com o roteamento HTTP(S) padrão por host e caminho, configurado usando os recursos padrão da API GKE Gateway.
Lógica de roteamento avançado Realiza roteamento com reconhecimento de modelo (por exemplo, nome do modelo com base no corpo), divisão e espelhamento de tráfego e aplica níveis de prioridade e gravidade. Balanceia o tráfego com base em métricas personalizadas informadas pelo aplicativo usando o padrão de agregação de custo de solicitação aberta (ORCA). Isso permite políticas como WEIGHTED_ROUND_ROBIN para ponderação de endpoints em uma localidade.
Métricas compatíveis Usa um conjunto de indicadores integrados e específicos de IA que estão prontos para uso, como utilização de GPU/TPU, "acertos de cache KV" e "comprimento da fila de solicitações". Também é possível configurar para usar métricas informadas pelo aplicativo enviadas com um mecanismo de cabeçalho HTTP padronizado. Usa métricas informadas pelo aplicativo usando um mecanismo de cabeçalho HTTP padronizado, conhecido como _relatório de carga da ORCA_. Esse formato permite gerar relatórios de métricas padrão, como CPU e memória, ou métricas com nomes personalizados para recursos restritos específicos do aplicativo.
Processamento de solicitações Reduz os custos de solicitações não uniformes, que são comuns em LLMs. Suporta níveis de [criticidade de solicitação](/kubernetes-engine/docs/concepts/about-gke-inference-gateway#traffic-distribution). Otimizado para custos de solicitação relativamente uniformes. Não inclui a priorização de solicitações integrada.
Compatibilidade com adaptadores LoRa Fornece roteamento nativo baseado em afinidade para back-ends equipados com LoRa adequados. Não oferece suporte nativo.
Integração com escalonamento automático Otimiza o escalonamento para servidores de modelos com base em métricas específicas de IA, como "acertos de cache KV". O escalonador automático de pod horizontal (HPA) pode usar métricas personalizadas, mas a configuração é genérica com base nas métricas informadas para o balanceador de carga de aplicativo.
Configuração Configure com a API GKE Gateway. Estende a API padrão com InferencePool e InferenceModel especializados Definições de recursos personalizados (CRDs, na sigla em inglês) para ativar os recursos com reconhecimento de IA. Configure com os recursos padrão da API GKE Gateway. O aplicativo precisa implementar o mecanismo baseado em cabeçalho HTTP para informar métricas personalizadas.
Segurança Fornece filtragem de conteúdo de IA com o Model Armor no gateway. Usa recursos básicos de segurança do GKE, como TLS, IAM, controle de acesso baseado em função (RBAC) e namespaces. Usa a pilha de segurança padrão do balanceador de carga de aplicativo, incluindo Model Armor, terminação TLS e IAM. O Model Armor também pode ser integrado como uma extensão de serviço.
Observabilidade Oferece capacidade de observação integrada em métricas específicas de IA, incluindo utilização de GPU ou TPU, "acertos de cache KV", "comprimento da fila de solicitações" e latência do modelo. A capacidade de observação depende de todas as métricas personalizadas que o aplicativo está configurado para informar. É possível conferir essas informações no Cloud Monitoring. Elas podem incluir métricas padrão ou com nomes personalizados.
Extensibilidade Criado com base em uma fundação extensível e de código aberto que oferece suporte a um algoritmo de seleção de endpoints gerenciado pelo usuário. Estende a API GKE Gateway com definições de recursos personalizados (CRDs, na sigla em inglês) especializados (InferencePool, InferenceModel) para simplificar casos de uso comuns de IA/ML. Projetado para flexibilidade, permitindo que o balanceamento de carga seja estendido com qualquer métrica personalizada (sinal de carga) que o aplicativo possa informar usando o padrão ORCA.
Etapa do lançamento Visualizar GA

Quando usar o gateway de inferência do GKE

Use o gateway de inferência do GKE para otimizar cargas de trabalho sofisticadas de inferência de IA/ML no GKE, especialmente para LLMs.

Escolha o gateway de inferência do GKE quando precisar fazer o seguinte:

  • Roteamento com reconhecimento de modelo: direciona o tráfego com base em estados específicos de LLM, como acertos de cache KV ou comprimento da fila de solicitações, ou para adaptadores LoRA específicos.
  • Balanceamento de carga com reconhecimento de custos: processe solicitações de inferência de maneira eficiente com custos de processamento variáveis e priorize-as por níveis de criticidade (crítico, padrão ou descartável).
  • Escalonamento automático específico de IA: escalone dinamicamente os servidores de modelos com base em métricas de IA relevantes para otimizar o uso de recursos.
  • Segurança e capacidade de observação de IA integradas: use a integração nativa do Model Armor para verificações de segurança de IA e receba insights prontos para uso sobre a utilização de GPU/TPU, hits de cache KV e comprimento da fila de solicitações.
  • Implantação simplificada da IA generativa: aproveite uma solução extensível e criada para simplificar padrões comuns de implantação da IA generativa no GKE, oferecendo personalização com a base da API GKE Gateway.

Quando usar o gateway do GKE com métricas personalizadas

Use o GKE Gateway com métricas personalizadas para balanceamento de carga flexível e de uso geral que se adapta aos indicadores de desempenho exclusivos do seu aplicativo, incluindo alguns cenários de inferência.

Escolha o GKE Gateway com métricas personalizadas quando precisar fazer o seguinte:

  • Lidar com altos volumes de tráfego com custos de solicitação relativamente uniformes.
  • Distribua a carga com base em métricas personalizadas informadas pelo aplicativo usando o relatório de carga ORCA.
  • Evite a inteligência de roteamento específica de IA/LLM oferecida pelo gateway de inferência do GKE.
  • Priorize a consistência com as implantações atuais do balanceador de carga de aplicativo que atendem às necessidades do seu serviço de inferência.

A seguir