Sobre a inferência de modelos de IA/ML no GKE


Nesta página, descrevemos os principais conceitos, benefícios e etapas para executar cargas de trabalho de inferência de modelos de IA/ML generativa no Google Kubernetes Engine (GKE) usando os recursos de IA generativa do GKE.

A disponibilização de inferências é fundamental para implantar seus modelos de IA generativa em aplicativos do mundo real. O GKE oferece uma plataforma robusta e escalonável para gerenciar suas cargas de trabalho em contêineres, o que o torna uma opção interessante para veicular seus modelos em desenvolvimento ou produção. Com o GKE, é possível usar os recursos do Kubernetes para orquestração, escalonamento e alta disponibilidade para implantar e gerenciar com eficiência seus serviços de inferência.

Reconhecendo as demandas específicas da inferência de IA/ML, o Google Cloud apresentou os recursos de IA generativa do GKE, um conjunto de recursos projetados especificamente para melhorar e otimizar a veiculação de inferências no GKE. Para mais informações sobre recursos específicos, consulte Recursos de IA generativa do GKE.

Começar a usar a inferência de modelos de IA/ML no GKE

Comece a explorar a inferência de modelos de IA/ML no GKE em minutos. Use o nível gratuito do GKE, que permite começar a usar o Kubernetes sem gerar custos de gerenciamento de clusters.

  1. Acessar a página de IA/ML do GKE no Google Cloud console

  2. Siga as etapas em Implantar modelos para implantar um modelo e um servidor de modelo conteinerizados.
  3. Leia Planejamento para inferência, que tem orientações e recursos para planejar e executar cargas de trabalho de inferência no GKE.

Terminologia

Nesta página, usamos a seguinte terminologia relacionada à inferência no GKE:

  • Inferência: o processo de execução de um modelo de IA generativa, como um modelo de linguagem grande ou de difusão, em um cluster do GKE para gerar texto, embeddings ou outras saídas com base em dados de entrada. A inferência de modelo no GKE usa aceleradores para processar de maneira eficiente cálculos complexos para processamento em tempo real ou em lote.
  • Modelo: um modelo de IA generativa que aprendeu padrões com dados e é usado para inferência. Os modelos variam em tamanho e arquitetura, desde modelos menores específicos do domínio até redes neurais massivas de vários bilhões de parâmetros otimizadas para diversas tarefas de linguagem.
  • Servidor de modelo: um serviço em contêiner responsável por receber solicitações de inferência e retornar inferências. Esse serviço pode ser um app Python ou uma solução mais robusta, como vLLM, JetStream, TensorFlow Serving ou Triton Inference Server. O servidor de modelos processa o carregamento de modelos na memória e executa cálculos em aceleradores para retornar inferências de maneira eficiente.
  • Acelerador: hardware especializado, como unidades de processamento gráfico (GPUs) da NVIDIA e unidades de processamento de tensor (TPUs) do Google, que podem ser anexadas a nós do GKE para acelerar os cálculos, principalmente para tarefas de treinamento e inferência.

Benefícios do GKE para inferência

A veiculação de inferências no GKE oferece vários benefícios:

  • Preço-performance eficiente:tenha valor e velocidade para suas necessidades de serviço de inferência. O GKE permite escolher entre uma variedade de aceleradores potentes (GPUs e TPUs), para que você pague apenas pelo desempenho necessário.
  • Implantação mais rápida: acelere seu tempo de lançamento no mercado com práticas recomendadas, qualificações e práticas recomendadas personalizadas fornecidas pelas capacidades de IA generativa do GKE.
  • Performance escalonável: escalonar horizontalmente a performance com monitoramento pré-criado usando o GKE Inference Gateway, o escalonamento automático horizontal de pods (HPA) e métricas personalizadas. É possível executar vários modelos pré-treinados ou personalizados, de 8 bilhões a 671 bilhões de parâmetros.
  • Portabilidade total: aproveite a portabilidade total com padrões abertos. O Google contribui para as principais APIs do Kubernetes, incluindo Gateway e LeaderWorkerSet, e todas as APIs são portáteis com distribuições do Kubernetes.
  • Suporte ao ecossistema: crie com base no ecossistema robusto do GKE, que oferece suporte a ferramentas como Kueue para gerenciamento e filas de recursos avançados e Ray para computação distribuída, facilitando o treinamento e a inferência de modelos escalonáveis e eficientes.

Como funciona a inferência no GKE

Nesta seção, descrevemos, em um nível geral, as etapas para usar o GKE na veiculação de inferências:

  1. Containerizar seu modelo: implante um modelo containerizando o servidor de modelo (como vLLM) e carregando pesos de modelo do Cloud Storage ou de um repositório como o Hugging Face. Ao usar o guia de início rápido da inferência do GKE, a imagem em contêineres é gerenciada automaticamente no manifesto.

  2. Criar um cluster do GKE: crie um cluster do GKE para hospedar sua implantação. Escolha o Autopilot para uma experiência gerenciada ou o Standard para personalização. Configure o tamanho do cluster, os tipos de nós e os aceleradores. Para uma configuração otimizada, use o guia de início rápido de inferência.

  3. Implante seu modelo como uma implantação do Kubernetes: crie uma implantação do Kubernetes para gerenciar seu serviço de inferência. Uma implantação é um objeto da API Kubernetes que permite executar várias réplicas de pods distribuídos entre os nós de um cluster. Especifique a imagem do Docker, as réplicas e as configurações. O Kubernetes extrai a imagem e executa os contêineres nos nós do cluster do GKE. Configure os pods com o servidor e o modelo, incluindo adaptadores LoRA, se necessário.

  4. Exponha seu serviço de inferência: crie um serviço do Kubernetes para fornecer um endpoint de rede para sua implantação e tornar o serviço de inferência acessível. Use o Gateway de inferência para balanceamento de carga e roteamento inteligentes especificamente adaptados para cargas de trabalho de inferência de IA generativa.

  5. Processar solicitações de inferência: envie dados dos clientes do aplicativo para o endpoint do serviço no formato esperado (JSON, gRPC). Se você estiver usando um balanceador de carga, ele vai distribuir as solicitações para as réplicas do modelo. O servidor de modelo processa a solicitação, executa o modelo e retorna a inferência.

  6. Escalone e monitore sua implantação de inferência: escale a inferência com o HPA para ajustar automaticamente as réplicas com base na CPU ou na latência. Use o início rápido de inferência para receber recomendações de escalonamento geradas automaticamente. Para acompanhar o desempenho, use o Cloud Monitoring e o Cloud Logging com observabilidade pré-criada, incluindo painéis para servidores de modelos conhecidos como o vLLM.

Para exemplos detalhados que usam modelos, servidores de modelos e aceleradores específicos, consulte Exemplos de inferência.

Recursos de IA generativa do GKE

É possível usar esses recursos juntos ou individualmente para resolver os principais desafios de veiculação de modelos de IA generativa e melhorar a utilização de recursos no seu ambiente do GKE, sem custo adicional.

Nome Descrição Vantagens
Guia de início rápido da inferência do GKE (pré-lançamento)

Especifique suas necessidades de negócios e receba práticas recomendadas personalizadas para a combinação de aceleradores, configurações de escalonamento e servidores de modelos que melhor atendam às suas necessidades. É possível acessar esse serviço com a CLI gcloud.

Para mais informações, consulte Executar a inferência de práticas recomendadas com as receitas de início rápido da inferência do GKE.

  • Economiza tempo ao automatizar as etapas iniciais de escolha e configuração da sua infraestrutura.
  • Permite manter o controle total da configuração do Kubernetes para ajustes futuros.
GKE Inference Gateway (prévia)

Receba roteamento com base em métricas, como utilização do cache KV, para melhorar a latência.

Para mais informações, consulte Sobre o GKE Inference Gateway.

  • Compartilhe modelos ajustados que usam arquivos LoRA, com seleção de endpoints com base em afinidade para eficiência de custos.
  • Tenha alta disponibilidade acessando dinamicamente a capacidade de GPU e TPU em várias regiões.
  • Melhore a segurança dos seus modelos com políticas complementares do Model Armor.
Aceleradores de carregamento de peso do modelo

Acesse dados no Cloud Storage rapidamente usando o Cloud Storage FUSE com armazenamento em cache e downloads paralelos.

Para cargas de trabalho de inferência que exigem desempenho escalonar horizontalmente consistente, o Google Cloud Hyperdisk ML é um disco anexado à rede que pode ser anexado a até 2.500 pods.

  • Otimize o tempo de inicialização da inferência minimizando a latência do modelo de carregamento de peso no GKE.
  • Para implantações com escalonamento limitado de nós, use o Cloud Storage FUSE para montar pesos de modelo.
  • Para cenários de grande escala que exigem acesso consistente e de baixa latência a ponderações de modelos grandes, o Hyperdisk ML do Google Cloud oferece uma solução de armazenamento em blocos dedicada.

Planejamento para inferência

Esta seção aborda algumas das principais considerações que você precisa levar em conta para suas cargas de trabalho de inferência no GKE.

Economia

A veiculação de modelos grandes de IA generativa pode ser cara devido ao uso de aceleradores. Por isso, é importante focar na utilização eficiente de recursos. Selecionar o tipo de máquina e o acelerador certos é crucial para garantir que a memória do acelerador corresponda ao tamanho do modelo e ao nível de quantização. Por exemplo, as instâncias G2 com GPUs NVIDIA L4 podem ser econômicas para modelos menores, enquanto as instâncias A3 são mais adequadas para modelos maiores.

Siga estas dicas e recomendações para maximizar a eficiência de custos:

Desempenho

Para otimizar a performance de inferência no GKE, concentre-se nas seguintes métricas de comparativo de mercado:

Indicadores de comparativo de mercado Métrica (unidade) Descrição
Latência Tempo para o primeiro token (TTFT) (ms) Tempo necessário para gerar o primeiro token de uma solicitação.
Tempo normalizado por token de saída (NTPOT) (ms) Latência de solicitação normalizada pelo número de tokens de saída, medida como request_latency / total_output_tokens.
Tempo por token de saída (TPOT) (ms) Tempo necessário para gerar um token de saída, medido como (request_latency - time_to_first_token) / (total_output_tokens - 1).
Latência entre tokens (ITL, na sigla em inglês) (ms) Mede a latência entre duas gerações de tokens de saída. Ao contrário do TPOT, que mede a latência em toda a solicitação, o ITL mede o tempo para gerar cada token de saída individual. Essas medições individuais são agregadas para produzir valores de média, mediana e percentil, como p90.
Latência da solicitação (ms) Tempo de ponta a ponta para concluir uma solicitação.
Capacidade Solicitações por segundo Número total de solicitações veiculadas por segundo. Essa métrica pode não ser uma maneira confiável de medir a taxa de transferência do LLM, porque ela pode variar muito para diferentes tamanhos de contexto.
Tokens de saída por segundo Uma métrica comum medida como total_output_tokens_generated_by_server / elapsed_time_in_seconds.
Tokens de entrada por segundo Medido como total_input_tokens_generated_by_server / elapsed_time_in_seconds.
Tokens por segundo Medido como total_tokens_generated_by_server / elapsed_time_in_seconds. Essa métrica conta tokens de entrada e saída, ajudando você a comparar cargas de trabalho com tempos altos de pré-preenchimento e decodificação.

Confira estas dicas e recomendações adicionais para melhorar a performance:

  • Para receber os aceleradores recomendados com base nas suas necessidades de performance, use o Início rápido de inferência.
  • Para melhorar a performance, use técnicas de otimização do servidor de modelos, como agrupamento em lotes e PagedAttention, que estão no nosso guia de práticas recomendadas. Além disso, priorize o gerenciamento eficiente de memória e o cálculo de atenção para latências consistentes e baixas entre tokens.
  • Use métricas padronizadas em servidores de modelos (como Hugging Face TGI, vLLM ou NVIDIA Triton) para melhorar o escalonamento automático e o balanceamento de carga, o que pode ajudar você a alcançar uma capacidade de processamento maior na latência escolhida. O GKE oferece monitoramento automático de aplicativos para vários servidores de modelos.
  • Use recursos da infraestrutura de rede do GKE, como o gateway de inferência, para minimizar a latência.
  • Use o Cloud Storage FUSE com downloads paralelos e armazenamento em cache ou o Hyperdisk ML para acelerar o carregamento de pesos de modelos do armazenamento permanente.

  • Para treinamento ou inferência em grande escala, use os Programas. O Pathways simplifica computações de machine learning em grande escala ao permitir que um único cliente JAX orquestre cargas de trabalho em várias frações grandes de TPU. Para mais informações, consulte Programas.

Capacidade de receber recursos

Garantir a obtenção de recursos (CPUs, GPUs e TPUs) é crucial para manter o desempenho, a disponibilidade e a eficiência de custos das cargas de trabalho de inferência. As cargas de trabalho de inferência geralmente exibem padrões de tráfego irregulares e imprevisíveis, o que pode desafiar a capacidade do hardware. O GKE resolve esses desafios com recursos como:

  • Opções de consumo de recursos: escolha entre opções como reservas para capacidade garantida, escalonamento econômico, Programador dinâmico de cargas de trabalho e VMs spot para otimização de custos e acesso sob demanda para disponibilidade imediata.
  • Dimensionamento adequado de recursos: por exemplo, o Google Cloud oferece VMs A3 High menores com GPUs NVIDIA H100 (1g, 2g ou 4g) para escalonamento econômico de inferência de IA generativa que aceita VMs spot.
  • Classes de computação para aceleradores: é possível usar classes de computação personalizadas para ter um controle mais granular, evitar o provisionamento excessivo e maximizar a capacidade de obtenção de recursos com opções de fallback automáticas.

Upgrades de nós

O GKE automatiza grande parte do processo de upgrade, mas é necessário considerar estratégias de upgrade, especialmente para compatibilidade e testes. Para upgrades manuais, escolha entre upgrades súbitos ou azul-verde com base na tolerância a interrupções da sua carga de trabalho de inferência. Os upgrades de pico são rápidos, mas podem afetar brevemente os serviços. Os upgrades azul-verde oferecem inatividade quase zero, o que é crucial para a inferência em tempo real. Para saber mais, consulte Estratégias de upgrade de nós.

GPUs e TPUs não são compatíveis com a migração em tempo real. Portanto, a manutenção exige a reinicialização dos pods. Use as notificações do GKE para se preparar para interrupções. Recomendamos usar orçamentos de interrupção de pods (PDBs) para garantir que um número mínimo de pods permaneça disponível. Verifique se os pods podem processar o encerramento normalmente. As frações de TPU podem ser interrompidas por eventos de host único. Portanto, planeje a redundância. Para mais práticas recomendadas, consulte Gerenciar a interrupção de nós do GKE para GPUs e TPUs.

Testar exemplos de inferência

Encontre exemplos de implantação do GKE para modelos de IA generativa, aceleradores e servidores de modelos. Se você estiver começando agora, recomendamos conferir o tutorial Disponibilizar modelos abertos do Gemma usando GPUs no GKE com vLLM.

Ou pesquise um tutorial por palavra-chave:

Accelerator Servidor de modelo Tutorial
GPUs vLLM Disponibilizar LLMs como DeepSeek-R1 671B ou Llama 3.1 405B no GKE
GPUs vLLM Disponibilizar modelos Llama usando GPUs no GKE com vLLM
GPUs vLLM Disponibilizar modelos abertos do Gemma usando GPUs no GKE com vLLM
GPUs vLLM Disponibilizar um LLM com o GKE Inference Gateway
GPUs NVIDIA Triton Disponibilizar um modelo com uma única GPU no GKE
GPUs Ray Serve Disponibilizar um LLM em GPUs L4 com Ray
GPUs TGI Disponibilizar um LLM com várias GPUs no GKE
GPUs NVIDIA Triton Disponibilizar modelos abertos do Gemma usando GPUs no GKE com Triton e TensorRT-LLM
GPUs TGI do Hugging Face Disponibilizar modelos abertos do Gemma usando GPUs no GKE com o TGI Hugging Face
GPUs TensorFlow Serving Disponibilizar um modelo com uma única GPU no GKE
TPUs vLLM Disponibilizar um LLM usando a TPU Trillium no GKE com o vLLM
TPUs vLLM Disponibilizar um LLM usando TPUs no GKE com o KubeRay
TPUs JetStream Disponibilizar um LLM usando TPUs no GKE com o JetStream e o PyTorch
TPUs JetStream Disponibilizar o Gemma usando TPUs no GKE com o JetStream
TPUs MaxDiffusion Disponibilizar o Stable Diffusion XL (SDXL) usando TPUs no GKE com o MaxDiffusion
TPUs TPU ideal Disponibilizar modelos de código aberto usando TPUs no GKE com o TPU Optimum

A seguir