Acerca da inferência de modelos de IA/ML no GKE

Esta página descreve os principais conceitos, vantagens e passos para executar cargas de trabalho de inferência de modelos de IA/ML generativa no Google Kubernetes Engine (GKE), usando as capacidades de IA generativa do GKE.

A publicação de inferências é fundamental na implementação dos seus modelos de IA generativa em aplicações do mundo real. O GKE oferece uma plataforma robusta e escalável para gerir as suas cargas de trabalho em contentores, o que o torna uma escolha atraente para publicar os seus modelos em desenvolvimento ou produção. Com o GKE, pode usar as capacidades do Kubernetes para orquestração, escalabilidade e alta disponibilidade para implementar e gerir eficientemente os seus serviços de inferência.

Reconhecendo as exigências específicas da inferência de IA/ML, a Google introduziu as capacidades de IA gen do GKE, um conjunto de funcionalidades especificamente concebidas para melhorar e otimizar a publicação de inferências no GKE. Google Cloud Para mais informações sobre funcionalidades específicas, consulte o artigo Capacidades de IA gen do GKE.

Comece a usar a inferência de modelos de IA/ML no GKE

Pode começar a explorar a inferência de modelos de IA/ML no GKE em minutos. Pode usar o nível gratuito do GKE, que lhe permite começar a usar o Kubernetes sem incorrer em custos de gestão de clusters.

  1. Aceda à página de IA/ML do GKE na Google Cloud consola

  2. Experimente os passos em Implementar modelos para implementar um modelo contentorizado e um servidor de modelos.
  3. Leia o artigo Planeamento da inferência, que contém orientações e recursos para planear e executar as suas cargas de trabalho de inferência no GKE.

Terminologia

Esta página usa a seguinte terminologia relacionada com a inferência no GKE:

  • Inferência: o processo de execução de um modelo de IA generativa, como um modelo de linguagem grande ou um modelo de difusão, num cluster do GKE para gerar texto, incorporações ou outros resultados a partir de dados de entrada. A inferência de modelos no GKE tira partido dos aceleradores para processar de forma eficiente cálculos complexos para processamento em tempo real ou em lote.
  • Modelo: um modelo de IA generativa que aprendeu padrões a partir de dados e é usado para inferência. Os modelos variam em tamanho e arquitetura, desde modelos mais pequenos específicos do domínio a redes neurais massivas com vários milhares de milhões de parâmetros otimizadas para diversas tarefas de linguagem.
  • Servidor de modelos: um serviço em contentor responsável por receber pedidos de inferência e devolver inferências. Este serviço pode ser uma 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 devolver inferências de forma eficiente.
  • Acelerador: hardware especializado, como unidades de processamento gráfico (GPUs) da NVIDIA e unidades de processamento tensor (TPUs) da Google, que podem ser anexadas a nós do GKE para acelerar os cálculos, especialmente para tarefas de preparação e inferência.

Vantagens do GKE para inferência

A publicação de inferências no GKE oferece várias vantagens:

  • Preço/desempenho eficiente: obtenha valor e velocidade para as suas necessidades de serviço de inferência. O GKE permite-lhe escolher entre uma variedade de aceleradores potentes (GPUs e TPUs), para que só pague pelo desempenho de que precisa.
  • Implementação mais rápida: acelere o seu tempo de comercialização com qualificações, práticas recomendadas e práticas recomendadas personalizadas fornecidas pelas capacidades de IA gen do GKE.
  • Desempenho escalável: aumente o desempenho com a monitorização pré-criada através do GKE Inference Gateway, escala automática horizontal de pods (HPA) e métricas personalizadas. Pode executar uma variedade de modelos pré-preparados ou personalizados, de 8 mil milhões de parâmetros até 671 mil milhões de parâmetros.
  • Portabilidade total: tire partido da portabilidade total com normas abertas. A Google contribui para as principais APIs Kubernetes, incluindo Gateway e LeaderWorkerSet, e todas as APIs são portáteis com distribuições Kubernetes.
  • Suporte do ecossistema: crie com base no ecossistema robusto do GKE, que suporta ferramentas como o Kueue para gestão e colocação em fila de recursos avançada e o Ray para computação distribuída, para facilitar a inferência e a preparação de modelos escaláveis e eficientes.

Como funciona a inferência no GKE

Esta secção descreve, de forma geral, os passos para usar o GKE para a publicação de inferências:

  1. Coloque o modelo num contentor: implemente um modelo colocando o servidor do modelo num contentor (como o vLLM) e carregando os pesos do modelo a partir do Cloud Storage ou de um repositório como o Hugging Face. Quando usa o GKE Inference Quickstart, a imagem em contentor é gerida automaticamente no manifesto.

  2. Crie um cluster do GKE: crie um cluster do GKE para alojar a sua implementação. Escolha o modo automático para uma experiência gerida ou o modo padrão para personalização. Configure o tamanho do cluster, os tipos de nós e os aceleradores. Para uma configuração otimizada, use o Inference Quickstart.

  3. Implemente o seu modelo como uma implementação do Kubernetes: crie uma implementação do Kubernetes para gerir o seu serviço de inferência. Uma implementação é um objeto da API Kubernetes que lhe permite executar várias réplicas de pods distribuídas entre os nós num cluster. Especifique a imagem do Docker, as réplicas e as definições. O Kubernetes extrai a imagem e executa os seus contentores nos nós do cluster do GKE. Configure os pods com o servidor de modelos e o modelo, incluindo adaptadores LoRA, se necessário.

  4. Exponha o seu serviço de inferência: torne o seu serviço de inferência acessível através da criação de um serviço do Kubernetes para fornecer um ponto final de rede para a sua implementação. Use o Inference Gateway para o equilíbrio de carga e o encaminhamento inteligentes especificamente adaptados para cargas de trabalho de inferência de IA generativa. Use o Inference Gateway para um balanceamento de carga inteligente adaptado às cargas de trabalho de IA generativa ou consulte a comparação de estratégias de balanceamento de carga para escolher a melhor opção para as suas necessidades.

  5. Processar pedidos de inferência: enviar dados no formato esperado (JSON, gRPC) dos clientes da sua aplicação para o ponto final do seu serviço. Se estiver a usar um balanceador de carga, este distribui os pedidos pelas réplicas do modelo. O servidor de modelos processa o pedido, executa o modelo e devolve a inferência.

  6. Dimensione e monitorize a implementação da inferência: dimensione a inferência com o HPA para ajustar automaticamente as réplicas com base na CPU ou na latência. Use o Inference Quickstart para receber recomendações de escalabilidade geradas automaticamente. Para acompanhar o desempenho, use o Cloud Monitoring e o Cloud Logging com observabilidade pré-criada, incluindo painéis de controlo para servidores de modelos populares como o vLLM.

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

Capacidades de IA gen do GKE

Pode usar estas capacidades em conjunto ou individualmente para resolver desafios importantes na publicação de modelos de IA generativa e melhorar a utilização de recursos no seu ambiente do GKE, sem custos adicionais.

Nome Descrição Vantagens
Início rápido da inferência do GKE

Analise o desempenho e a rentabilidade das suas cargas de trabalho de inferência. Especifique as necessidades da sua empresa e receba práticas recomendadas personalizadas para a combinação de aceleradores, configurações de escalabilidade e armazenamento, e servidores de modelos que melhor satisfazem as suas necessidades. Pode aceder a este serviço com a CLI gcloud e a Google Cloud consola.

Para mais informações, consulte o artigo Analise o desempenho e os custos da inferência de modelos com o início rápido da inferência do GKE.

  • Poupe tempo automatizando os passos iniciais de escolha e configuração da sua infraestrutura.
  • Permite-lhe manter o controlo total sobre a configuração do Kubernetes para uma otimização adicional.
GKE Inference Gateway (pré-visualização)

Obtenha o encaminhamento com base em métricas, como a utilização da cache KV, para uma melhor latência.

Para mais informações, consulte o artigo Acerca do GKE Inference Gateway

  • Partilhe modelos otimizados que usam ficheiros LoRA, com seleção de pontos finais baseada na afinidade para rentabilidade.
  • Alcance uma elevada disponibilidade acedendo dinamicamente à capacidade de GPU e TPU em várias regiões.
  • Melhore a segurança dos seus modelos com políticas do suplemento Model Armor.
Aceleradores de carregamento de pesos do modelo

Aceda rapidamente aos dados no Cloud Storage através do Cloud Storage FUSE com a colocação em cache e transferências paralelas.

Para cargas de trabalho de inferência que exigem um desempenho de expansão consistente, o Google Cloud Hyperdisk ML é um disco ligado à rede que pode ser ligado a até 2500 pods.

  • Otimize o tempo de arranque da inferência minimizando a latência do modelo de carregamento de pesos no GKE.
  • Para implementações com escalabilidade de nós limitada, pondere usar o Cloud Storage FUSE para montar os pesos dos modelos.
  • Para cenários de grande escala que exigem um acesso consistente e de baixa latência a grandes pesos de modelos, o Google Cloud Hyperdisk ML oferece uma solução de armazenamento em blocos dedicada.

Planeamento da inferência

Esta secção aborda algumas das principais considerações que deve ter em conta para as suas cargas de trabalho de inferência no GKE.

Relação custo-eficácia

A publicação de grandes modelos de IA generativa pode ser dispendiosa devido à utilização de aceleradores, pelo que deve concentrar-se na utilização eficiente dos recursos. Selecionar o tipo de máquina e o acelerador certos é fundamental para garantir que faz corresponder a memória do acelerador ao tamanho do modelo e ao nível de quantização. Por exemplo, as instâncias G2 com GPUs NVIDIA L4 podem ser rentáveis para modelos mais pequenos, enquanto as instâncias A3 são mais adequadas para modelos maiores.

Siga estas sugestões e recomendações para maximizar a rentabilidade:

Desempenho

Para otimizar o desempenho da inferência no GKE, foque-se nas seguintes métricas de testes de referência:

Indicadores de testes de referência Métrica (unidade) Descrição
Latência Tempo até ao primeiro token (TTFT) (ms) Tempo necessário para gerar o primeiro token para um pedido.
Tempo normalizado por token de saída (NTPOT) (ms) Latência do pedido 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) (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 todo o pedido, o ITL mede o tempo necessário para gerar cada token de saída individual. Estas medições individuais são, em seguida, agregadas para produzir valores médios, medianos e percentis, como p90.
Latência do pedido (ms) Tempo total para concluir um pedido.
Débito Pedidos por segundo O número total de pedidos que publica por segundo. Tenha em atenção que esta métrica pode não ser uma forma fiável de medir o débito do MDG porque pode variar bastante para diferentes comprimentos de contexto.
Símbolos de saída por segundo Uma métrica comum que é 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. Esta métrica contabiliza os tokens de entrada e saída, o que ajuda a comparar cargas de trabalho com tempos de preenchimento prévio elevados em comparação com tempos de descodificação elevados.

Considere estas sugestões e recomendações adicionais para o desempenho:

  • Para receber os aceleradores recomendados com base nas suas necessidades de desempenho, use o Início rápido de inferência.
  • Para melhorar o desempenho, use técnicas de otimização do servidor de modelos, como o processamento em lote e a atenção paginada, que se encontram no nosso guia de práticas recomendadas. Além disso, dê prioridade à gestão eficiente da memória e ao cálculo da atenção para latências entre tokens consistentemente baixas.
  • Use métricas padronizadas em servidores de modelos (como Hugging Face TGI, vLLM ou NVIDIA Triton) para melhorar o dimensionamento automático e o equilíbrio de carga, o que pode ajudar a alcançar um débito mais elevado na latência escolhida. O GKE oferece monitorização automática de aplicações para vários servidores de modelos.
  • Use funcionalidades de infraestrutura de rede do GKE, como o Inference Gateway para minimizar a latência.
  • Use o FUSE do Cloud Storage com transferências paralelas e colocação em cache, ou o Hyperdisk ML para acelerar o carregamento de ponderações de modelos a partir do armazenamento persistente.

  • Para a preparação ou a inferência em grande escala, use o Pathways. O Pathways simplifica os cálculos de aprendizagem automática em grande escala, permitindo que um único cliente JAX organize cargas de trabalho em várias grandes fatias de TPUs. Para mais informações, consulte o artigo Pathways.

Obtenção

Garantir a obtenção de recursos (CPUs, GPUs e TPUs) é fundamental para manter o desempenho, a disponibilidade e a rentabilidade dos seus carregamentos de trabalho de inferência. As cargas de trabalho de inferência apresentam frequentemente padrões de tráfego instáveis e imprevisíveis, o que pode desafiar a capacidade do hardware. O GKE resolve estes desafios com funcionalidades como as seguintes:

  • Opções de consumo de recursos: escolha entre opções como reservas para capacidade garantida, dimensionamento rentável, Dynamic Workload Scheduler, e VMs do Spot para otimização de custos e acesso a pedido para disponibilidade imediata.
  • Ajuste do tamanho dos recursos: por exemplo, Google Cloud oferece VMs A3 High mais pequenas com GPUs NVIDIA H100 (1g, 2g ou 4g) para uma escalabilidade de inferência de IA generativa económica que suporta VMs Spot.
  • Classes de computação para aceleradores: pode usar classes de computação personalizadas para um controlo mais detalhado, para evitar o aprovisionamento excessivo e maximizar a obtenção de recursos com opções de alternativa automáticas.

Atualizações de nós

O GKE automatiza grande parte do processo de atualização, mas tem de considerar as estratégias de atualização, especialmente para compatibilidade e testes. Para atualizações manuais, pode escolher entre atualizações de picos ou azul-verde com base na tolerância da sua carga de trabalho de inferência a interrupções. As atualizações rápidas são rápidas, mas podem afetar brevemente os serviços. As atualizações azul-verde oferecem um tempo de inatividade quase nulo, o que é fundamental para a inferência em tempo real. Para saber mais, consulte as Estratégias de atualização de nós.

As GPUs e as TPUs não suportam a migração em direto, pelo que a manutenção requer o reinício dos pods. Use as notificações do GKE para se preparar para interrupções. Recomendamos que use orçamentos de interrupção de pods (PDBs) para garantir que um número mínimo de pods permanece disponível. Certifique-se de que os seus pods conseguem processar o encerramento corretamente. As fatias de TPU podem ser interrompidas por eventos de anfitrião único, por isso, planeie a redundância. Para ver mais práticas recomendadas, consulte o artigo Faça a gestão da interrupção de nós do GKE para GPUs e TPUs.

Experimente exemplos de inferência

Encontre exemplos de implementação do GKE para modelos de IA generativa, aceleradores e servidores de modelos. Se está a começar, recomendamos que explore o tutorial Apresente modelos abertos Gemma com GPUs no GKE com o vLLM.

Em alternativa, pesquise um tutorial por palavra-chave:

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

O que se segue?