Cluster e carga de trabalho do GKE de inferência pré-treinada de IA

Os modelos de inferência pré-treinados de IA no Application Design Center permitem provisionar a infraestrutura do Google Kubernetes Engine (GKE) e implantar cargas de trabalho de disponibilização de modelos. Use o modelo de cluster do GKE de inferência pré-treinada de IA para configurar um cluster do GKE seguro e particular para inferência de alto desempenho. Em seguida, use o modelo de carga de trabalho do GKE de inferência pré-treinada de IA (pré-lançamento) para implantar um modelo pré-treinado do Gemma com um gráfico do Helm e o mecanismo de exibição vLLM. A carga de trabalho configura solicitações de recursos de GPU e um Autoescalonador Horizontal de Pods (HPA, na sigla em inglês) que é escalonado com base na utilização da CPU.

Por exemplo, é possível implantar os modelos de cluster e carga de trabalho para atender às seguintes necessidades de negócios:

Exemplo Necessidade comercial Implementação
Análise de vídeo em tempo real Uma empresa de segurança precisa processar streams de vídeo de centenas de câmeras para detectar anomalias ou objetos específicos em tempo real. Implante modelos de processamento de vídeo no pool de nós com GPU. As GPUs podem processar as demandas de alta capacidade de processamento e baixa latência de streams de vídeo simultâneos.
Processamento de documentos especializado Uma seguradora precisa extrair automaticamente informações de milhares de formulários de sinistro diários, que têm layouts e caligrafias variados. Use o cluster do GKE para hospedar modelos personalizados e garantir que os dados nunca saiam do ambiente seguro durante o processamento.
Mecanismo de recomendação de alto volume Uma plataforma de e-commerce precisa fornecer recomendações de produtos personalizadas aos usuários durante os períodos de pico de compras de fim de ano. Use a API Gateway do Google Kubernetes Engine para rotear grandes volumes de tráfego de usuários para os modelos de recomendação. A API Gateway pode lidar com picos repentinos de tráfego sem degradação da latência.

Arquitetura

A imagem a seguir mostra os componentes e as conexões no modelo:

Um cluster conectado a um pool de nós na tela de design

Veja a seguir as configurações de componentes neste modelo:

  • Cluster do GKE Standard: um cluster seguro e particular em que a carga de trabalho de IA é executada.

    A tabela a seguir descreve a configuração do cluster neste modelo:

    Configuração Finalidade
    node_locations, definida como ["us-central1-a", "us-central1-b", "us-central1-c"]. Garante alta disponibilidade e resiliência ao distribuir os nós do cluster em três zonas na região us-central1.
    enable_intranode_visibility, definida como true. Ativa a visibilidade do tráfego entre pods no mesmo nó nos registros de fluxo de VPC. Essa visibilidade é necessária para monitoramento de rede, solução de problemas e análise de segurança.
    O gateway_api_config é ativado usando {"channel":"CHANNEL_STANDARD"}. A API GKE Inference Gateway ajuda a gerenciar o tráfego de entrada para seus serviços do Kubernetes. A API ajuda a configurar o roteamento detalhado, o balanceamento de carga avançado e a anexação de políticas centralizada.
    private_cluster_config.enable_private_endpoint, definida como false. private_cluster_config.enable_private_nodes é true. control_plane_endpoints_config.dns_endpoint_config.allow_external_traffic está definido como true. Garante que os nós de trabalho em que os modelos de IA são executados tenham endereços IP particulares. Isso isola os nós da Internet pública. O plano de controle do GKE está configurado para ser acessível publicamente, permitindo que você gerencie o cluster fora da rede de nuvem privada virtual (VPC).
    release_channel, definida como {"channel":"REGULAR"}. Garante que o cluster do GKE receba atualizações estáveis e previsíveis, proporcionando um equilíbrio entre novos recursos e confiabilidade.
  • Pool de nós do GKE: um grupo de nós de trabalho que executam os contêineres do aplicativo.

    A tabela a seguir descreve as configurações do pool de nós neste modelo:

    Configuração Finalidade
    autoscaling.min_node_count, definida como 0. autoscaling.max_node_count está definido como 3 (o padrão é 100). O pool de nós pode reduzir escala vertical vertical completamente quando não há cargas de trabalho de IA em execução, reduzindo os custos durante períodos de inatividade. O limite superior de escalonamento ajuda a controlar os custos e o consumo de recursos.
    O parâmetro node_config.guest_accelerator foi adicionado. gpu_driver_installation_config.gpu_driver_version: está definido como "LATEST". gpu_sharing_config está ativado com TIME_SHARING. max_shared_clients_per_gpu: está definido como 2. Especifica o uso de GPUs NVIDIA L4 para tarefas de inferência de IA. Os drivers de GPU necessários são instalados automaticamente. Várias cargas de trabalho menores podem compartilhar uma única GPU.
    node_config.machine_type mudou para "g2-standard-8". O tipo de máquina foi projetado especificamente para complementar as GPUs L4. As vCPUs (8) e a memória (32 GB) são criadas para dar suporte à GPU e executar seus aplicativos de inferência de IA.
    node_config.oauth_scopes inclui https://www.googleapis.com/auth/cloud-platform. A conta de serviço do nó tem amplo acesso aos serviços do Google Cloud , o que permite a interação da API para tarefas como geração de registros, monitoramento e extração de imagens de contêiner.
    node_config.shielded_instance_config.enable_secure_boot, definida como true. A inicialização segura ajuda a proteger os nós contra malware no nível da inicialização, verificando as assinaturas criptográficas do carregador de inicialização e do kernel antes que eles sejam executados.

Configuração do gráfico Helm

A tabela a seguir lista as configurações do gráfico do Helm, que foram personalizadas para implantar e escalonar um serviço de inferência de IA no GKE.

Configuração Finalidade
replicaCount: 1 Cria uma única réplica inicial.
image.repository: vllm/vllm-openai Usa uma imagem vLLM, uma biblioteca otimizada para inferência de modelos de linguagem grandes (LLMs), exposta usando uma API compatível com a OpenAI.
model.id: google/gemma-7b-it Define o modelo ajustado por instruções do Gemma 7B como o modelo a ser disponibilizado.
model.hfSecret: hf-secret Indica que o modelo requer autenticação usando um Secret do Kubernetes para gerenciamento seguro de credenciais.
resources.limits e requests para nvidia.com/gpu: "1" Garante que cada pod receba uma GPU dedicada.
nodeSelector.cloud.google.com/gke-accelerator: nvidia-l4 Garante que os pods do modelo de IA sejam programados exclusivamente em nós do GKE Standard equipados com GPUs NVIDIA L4, que são ideais para inferências econômicas e de alto desempenho.
hpa.enabled: true Ativa o Autoescalonador Horizontal de Pods, que permite que o aplicativo escalone automaticamente o número de pods (entre minReplicas: 1 e maxReplicas: 10) com base em targetCPUUtilizationPercentage: 80%. Garante o desempenho durante picos de carga e a eficiência de custos durante períodos de baixo uso.
tensorParallelSize: 1 Indica que o modelo não é dividido em várias GPUs em um único pod.
maxModelLen: 512 Controla o tamanho máximo da sequência que o modelo Gemma 7B pode processar.
service.type: ClusterIP O serviço está configurado para acesso interno no cluster.
pdb.enabled: true e minAvailable: 1 Um orçamento de interrupção de pods está ativado para garantir alta disponibilidade. Pelo menos uma réplica do seu modelo de IA permanece disponível durante interrupções voluntárias, como manutenção de nós.

Criar seu aplicativo de IA

Use os modelos de cluster do GKE e carga de trabalho de inferência pré-treinada de IA para implantar seu aplicativo de IA.

Implantar sua infraestrutura de IA

Configure e implante o modelo de cluster do GKE de inferência pré-treinada de IA para criar a infraestrutura básica em que sua carga de trabalho de IA é executada.

  1. Duplique e implante o modelo de cluster do GKE de inferência pré-treinada de IA como um aplicativo.

    Um cluster do GKE é criado no projeto de implantação que você escolher.

  2. Configure os componentes. Para ver mais informações, consulte os seguintes tópicos:

  3. Clique em Implantar. O aplicativo é implantado após alguns minutos.

  4. No painel Detalhes do aplicativo, clique na guia Saídas.

  5. Identifique o cluster_id do aplicativo. Você vai usar essas informações ao implantar o gráfico do Helm.

Implantar sua carga de trabalho de IA

Use o modelo de carga de trabalho do GKE de inferência pré-treinada de IA para implantar sua carga de trabalho de IA no cluster que você criou. Você vai implantar um gráfico do Helm que inclui a configuração da carga de trabalho de IA.

  1. Na página Catálogo do Google, no modelo Carga de trabalho do GKE de inferência pré-treinada de IA, clique em Criar novo aplicativo.

  2. No campo Nome, insira um nome exclusivo para o aplicativo.

  3. Na área Destino de implantação do GKE, faça o seguinte:

    1. Na lista de projetos, selecione o projeto em que você implantou o cluster do GKE do aplicativo Cluster do GKE de inferência pré-treinada de IA.

    2. Na lista Região, selecione a região em que você implantou o cluster do GKE.

    3. Na lista Clusters, selecione o cluster do GKE implantado.

    4. Na lista Namespace, insira o namespace em que você implantou o cluster do GKE. Se você não mudou o nome, digite default.

    5. Clique em Criar aplicativo.

    O aplicativo é criado e os arquivos de configuração são exibidos.

  4. No painel Gráfico do Helm, faça o seguinte:

    1. Revise os detalhes da configuração.

    2. Opcional: personalize a configuração para atender às suas necessidades específicas.

    3. Para implantar o gráfico do Helm no cluster, clique em Implantar.

      Para conferir as etapas detalhadas, consulte Implantar aplicativos.

    Após alguns minutos, a configuração do gráfico do Helm será implantada no cluster do GKE.

A seguir