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 Rede que interagem com redes do Kubernetes.

Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo doGoogle Cloud , consulte Tarefas e papéis 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 modelo de IA/ML no GKE, escolha a estratégia de balanceamento de carga certa para otimizar o desempenho, a escalonabilidade e a relação custo-benefício:

  • Escolha o gateway de inferência do GKE para roteamento e balanceamento de carga otimizados ao veicular cargas de trabalho de IA/ML.
  • Escolha o GKE Gateway com métricas personalizadas, que usa balanceadores de carga de aplicativo. Essa opção oferece controle de uso geral e permite configurar a distribuição de tráfego com base em métricas específicas do aplicativo ou requisitos de infraestrutura.

Visão geral do GKE Inference Gateway

O GKE Inference Gateway otimiza e gerencia cargas de trabalho exigentes de inferência de IA generativa (GenAI) e de modelos de linguagem grandes (LLMs) complexos. Ela estende a API GKE Gateway, oferecendo várias vantagens importantes:

  • Roteamento inteligente e com reconhecimento de IA:o gateway de inferência do GKE monitora métricas críticas específicas de IA, incluindo:

    • Uso do cache KV do servidor de modelo
    • Tamanho da fila de solicitações pendentes
    • Uso geral de GPU/TPU
    • Disponibilidade do adaptador LoRA
    • O custo computacional de solicitações individuais. Com base nessas métricas, o gateway distribui o tráfego de maneira inteligente para a réplica de servidor de modelo mais adequada e menos carregada.
  • Priorização de solicitações:o gateway oferece mecanismos para priorizar solicitações.

  • Escalonamento automático otimizado:o gateway oferece mecanismos de escalonamento automático otimizado para servidores de modelos.

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

OGoogle Cloud oferece recursos do balanceador de carga de aplicativo que aceitam escopos como global externo e regional externo. Esses balanceadores de carga de uso geral distribuem o tráfego com base em métricas personalizadas informadas pelos serviços de back-end. Essa abordagem oferece controle refinado sobre a distribuição de carga, permitindo que você a baseie em indicadores de performance específicos do aplicativo.

Comparar o GKE Inference Gateway e o GKE Gateway com métricas personalizadas

Use a tabela a seguir para comparar os recursos do GKE Inference Gateway e do GKE Gateway com métricas personalizadas e escolha a solução de balanceamento de carga certa para suas cargas de trabalho de inferência de IA/ML no GKE.

Recurso GKE Inference Gateway GKE Gateway com métricas personalizadas (via balanceadores de carga de aplicativo)
Caso de uso principal Otimiza cargas de trabalho de inferência de IA generativa e aprendizado de máquina no Kubernetes, incluindo a disponibilização de modelos de linguagem grandes (LLMs). Ele garante o acesso justo aos recursos do modelo e otimiza cargas de trabalho de LLM sensíveis à latência e baseadas em GPU ou TPU. Fornece balanceamento de carga HTTP(S) de uso geral, distribuindo o tráfego com base em métricas personalizadas informadas pelo aplicativo. Esse balanceamento de carga é ideal 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 com base em host e caminho, estendendo a API GKE Gateway. Aceita o roteamento HTTP(S) padrão com base no host e no caminho. Você configura isso usando os recursos padrão da API GKE Gateway.
Lógica de roteamento avançada Oferece recursos avançados, como roteamento com reconhecimento de modelo, divisão e espelhamento de tráfego, além da aplicação de níveis de prioridade e importância às solicitações. Balanceia o tráfego com base em métricas personalizadas informadas pelo aplicativo pelo padrão Open Request Cost Aggregation (ORCA). Isso permite políticas como WEIGHTED_ROUND_ROBIN para ponderação de endpoints em uma localidade.
Métricas disponíveis Usa um conjunto de métricas nativas específicas de IA, como utilização de GPU ou TPU, acertos de cache KV e comprimento da fila de solicitações. Ele também pode ser configurado para usar métricas informadas pelo aplicativo com um mecanismo de cabeçalho HTTP padronizado. Usa métricas informadas pelo aplicativo com um mecanismo de cabeçalho HTTP padronizado, especificamente o relatório de carga da agregação de custo de solicitação aberta (ORCA, na sigla em inglês). Esse mecanismo oferece suporte a métricas padrão, como CPU e memória, além de métricas com nomes personalizados para recursos restritos específicos do aplicativo.
Processamento de solicitações Projetado para lidar com cargas de trabalho com custos de solicitação não uniformes, que são comuns em LLMs devido à variação na complexidade dos comandos. Ele oferece suporte a níveis de criticidade de solicitação, permitindo a priorização de diferentes tipos de solicitações de inferência. Mais adequado para cargas de trabalho em que as solicitações individuais têm custos de processamento relativamente uniformes. Essa solução não inclui recursos nativos de priorização de solicitações.
Compatibilidade com adaptadores LoRa Oferece roteamento nativo baseado em afinidade para back-ends equipados com adaptadores LoRa específicos, garantindo que as solicitações sejam direcionadas aos recursos apropriados. Não oferece suporte nativo para adaptadores LoRa ou roteamento baseado em afinidade com base em configurações LoRa.
Integração com escalonamento automático Otimiza o escalonamento automático para servidores de modelos usando métricas específicas de IA, como utilização do cache KV, para tomar decisões de escalonamento mais embasadas. Integra-se ao escalonador automático horizontal de pods (HPA) usando métricas personalizadas. Essas métricas são informadas ao balanceador de carga de aplicativo e usadas de maneira genérica para escalonamento, com base nos indicadores de carga informados.
Configuração Configure com a API GKE Gateway. Estende a API padrão com definições de recursos personalizados (CRDs) InferencePool e InferenceModel especializados para ativar os recursos com reconhecimento de IA. Você configura essa solução usando os recursos padrão da API GKE Gateway. O aplicativo precisa implementar um mecanismo baseado em cabeçalho HTTP, como a agregação de custo de solicitação aberta (ORCA, na sigla em inglês), para informar métricas personalizadas de balanceamento de carga.
Segurança Essa solução inclui filtragem de conteúdo de IA usando o Model Armor no nível do gateway. Ele também aproveita recursos básicos de segurança do GKE, como TLS, Identity and Access Management (IAM), controle de acesso baseado em papéis (RBAC) e namespaces. Essa solução usa a pilha de segurança padrão do balanceador de carga de aplicativo, que inclui o Google Cloud Armor, término de TLS e o IAM. Para ativar a filtragem de conteúdo de IA, integre o Google Cloud Armor como uma extensão de serviço.
Observabilidade Oferece capacidade de observação integrada em métricas específicas de IA, incluindo uso 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, permitindo um algoritmo de seleção de endpoint gerenciado pelo usuário. Ele estende a API GKE Gateway com [definições de recursos personalizados (CRDs)](/kubernetes-engine/docs/how-to/deploy-gke-inference-gateway) especializados, como InferencePool e InferenceModel, para simplificar casos de uso comuns de IA. Projetado para flexibilidade, permitindo estender o balanceamento de carga usando qualquer [métrica personalizada (indicador de carga)](/load-balancing/docs/https/applb-custom-metrics) que o aplicativo informa usando o padrão ORCA.
Etapa do lançamento GA GA

Quando usar o gateway de inferência do GKE

Escolha o GKE Inference Gateway para otimizar cargas de trabalho sofisticadas de inferência de IA e machine learning no GKE, especialmente para modelos de linguagem grandes (LLMs). Recomendamos essa solução nas seguintes situações:

  • Servir LLMs:você precisa de decisões de roteamento com base em estados específicos de LLM, como utilização do cache KV ou comprimento da fila de solicitações, ao usar servidores de modelos como o vLLM.
  • Implantação de modelos com adaptadores LoRa:você precisa de um roteamento inteligente e baseado em afinidade para back-ends equipados com os adaptadores LoRa corretos e disponíveis.
  • Como processar solicitações de inferência com custos de processamento altamente variáveis:por exemplo, tamanhos ou complexidade de comandos dinâmicos exigem um balanceador de carga com reconhecimento de custos.
  • Implementar a priorização de solicitações:é necessário priorizar diferentes classes de tráfego de inferência, como solicitações críticas, padrão ou descartáveis.
  • Otimizar o escalonamento automático:você quer um mecanismo de escalonamento automático fortemente acoplado a métricas de performance específicas de servidores de modelos de IA generativa (GenAI), como utilização do cache KV, para tomar decisões de escalonamento mais embasadas.
  • Usar a integração do Model Armor:você precisa usar o Model Armor para verificações de segurança de IA no nível do gateway.
  • Como ganhar capacidade de observação pronta para uso:você precisa de capacidade de observação integrada para métricas críticas específicas de IA, incluindo utilização de GPU ou TPU, acertos de cache KV e comprimento da fila de solicitações.
  • Simplificar implantações de IA generativa:se você prefere uma solução criada especificamente para simplificar padrões comuns de implantação de IA generativa no GKE, mantendo opções de personalização futura com a base extensível da API GKE Gateway.

Quando usar o gateway do GKE com métricas personalizadas

Para ter um balanceamento de carga flexível e de uso geral com base nos indicadores de desempenho exclusivos do seu aplicativo, use o GKE Gateway com métricas personalizadas. Essa abordagem permite a distribuição de carga com base em indicadores de performance exclusivos e definidos pelo aplicativo, incluindo cenários de inferência específicos. Recomendamos isso nos seguintes cenários:

  • Sua carga de trabalho tem um alto volume de tráfego com custos de processamento relativamente uniformes por solicitação.
  • A distribuição de carga pode ser gerenciada de maneira eficaz por uma ou duas métricas personalizadas específicas informadas pelo aplicativo, geralmente por cabeçalhos de resposta HTTP usando o padrão de relatório de carga Open Request Cost Aggregation (ORCA).
  • Seus requisitos de balanceamento de carga não dependem de recursos específicos da IA generativa ou de LLMs.
  • Seu modelo operacional não exige a inteligência especializada específica de IA fornecida pelo GKE Inference Gateway, evitando complexidade arquitetônica desnecessária.
  • Manter a consistência com as implantações atuais do balanceador de carga de aplicativo é uma prioridade, e essas implantações atendem aos requisitos de balanceamento de carga do serviço de inferência.

A seguir