Executar a prática recomendada de inferência com receitas de início rápido da inferência do GKE


Nesta página, descrevemos como usar o GGE Inference Quickstart para simplificar a implantação de cargas de trabalho de inferência de IA/ML no Google Kubernetes Engine (GKE). O Guia de início rápido da inferência é um utilitário que permite especificar seus requisitos de negócios de inferência e obter configurações otimizadas do Kubernetes com base nas práticas recomendadas e nos comparativos do Google para modelos, servidores de modelos, aceleradores (GPUs, TPUs) e escalonamento. Isso ajuda a evitar o processo de ajuste e teste manual de configurações.

Esta página é destinada a engenheiros de machine learning (ML), administradores e operadores de plataforma e especialistas em dados e IA que querem entender como gerenciar e otimizar o GKE de maneira eficiente para inferência de IA/ML. Para saber mais sobre papéis comuns e exemplos de tarefas mencionados no conteúdo do Google Cloud , consulte Tarefas e funções de usuário comuns do GKE Enterprise.

Para saber mais sobre os conceitos e a terminologia de disponibilização de modelos e como os recursos de IA do GKE podem melhorar e oferecer suporte à performance da disponibilização de modelos, consulte Sobre a inferência de modelos no GKE.

Antes de ler esta página, confira o Kubernetes, o GKE e a execução de modelos.

Como usar o guia de início rápido da inferência

As etapas gerais para usar o Guia de início rápido da inferência são as seguintes. Clique nos links para ver instruções detalhadas.

  1. Conferir práticas recomendadas personalizadas: usando a CLI do Google Cloud no terminal, comece fornecendo entradas como seu modelo aberto preferido (por exemplo, Llama, Gemma ou Mistral).
    • É possível especificar o objetivo de latência do aplicativo, indicando se ele é sensível à latência (como um chatbot) ou ao throughput (como a Análise em lote).
    • Com base nos seus requisitos, o Inference Quickstart oferece opções de acelerador, métricas de desempenho e manifestos do Kubernetes, que oferecem controle total para implantação ou outras modificações. Os manifestos gerados fazem referência a imagens públicas do servidor de modelos para que você não precise criar essas imagens.
  2. Implantar manifestos: usando o comando kubectl apply, implante os manifestos recomendados na linha de comando. Antes da implantação, é necessário ter cota de acelerador suficiente para as GPUs ou TPUs selecionadas no projeto Google Cloud .
  3. Monitorar o desempenho: use o Cloud Monitoring para monitorar as métricas do GKE para monitorar o desempenho da carga de trabalho. É possível conferir painéis específicos do servidor de modelos e ajustar a implantação conforme necessário.

Vantagens

O guia de início rápido de inferência ajuda a economizar tempo e recursos com configurações otimizadas. Essas otimizações melhoram a performance e reduzem os custos de infraestrutura das seguintes maneiras:

  • Você recebe práticas recomendadas detalhadas e personalizadas para definir aceleradores (GPU e TPU), servidor de modelo e configurações de escalonamento. O GKE atualiza a ferramenta regularmente com as correções, imagens e comparativos de desempenho mais recentes.
  • É possível especificar os requisitos de latência e throughput da carga de trabalho em uma interface de linha de comando e receber práticas recomendadas detalhadas e personalizadas conforme a implantação do Kubernetes se manifesta.

Casos de uso

O guia de início rápido de inferência é adequado para cenários como estes:

  • Descubra as arquiteturas de inferência ideais do GKE: se você estiver fazendo a transição de outro ambiente, como local ou um provedor de nuvem diferente, e quiser as arquiteturas de inferência recomendadas mais atualizadas no GKE para suas necessidades de desempenho específicas.
  • Acelerar implantações de inferência de IA/ML: se você é um usuário experiente do Kubernetes e quer começar a implantar rapidamente cargas de trabalho de inferência de IA, o Inference Quickstart ajuda a descobrir e implementar implantações de práticas recomendadas no GKE, com configurações YAML detalhadas com base nas práticas recomendadas.
  • Conheça os TPUs para melhorar o desempenho: se você já usa o Kubernetes no GKE com GPUs, use o Inference Quickstart para conhecer os benefícios do uso de TPUs para melhorar o desempenho.

Como funciona

O guia de início rápido de inferência oferece práticas recomendadas personalizadas com base nos benchmarks internos completos do Google de desempenho de uma única réplica para combinações de modelo, servidor de modelo e topologia de acelerador. Esses comparativos mostram a latência em relação ao throughput, incluindo o tamanho da fila e as métricas de cache KV, que mapeiam as curvas de desempenho de cada combinação.

Como as práticas recomendadas personalizadas são geradas

Medimos a latência em tempo normalizado por token de saída (NTPOT, na sigla em inglês) em milissegundos e taxa de transferência em tokens de saída por segundo, saturando os aceleradores. Para saber mais sobre essas métricas de desempenho, consulte Sobre a inferência de modelos no GKE.

O exemplo de perfil de latência a seguir ilustra o ponto de inflexão em que a taxa de transferência diminui (verde), o ponto pós-influxo em que a latência piora (vermelho) e a zona ideal (azul) para a taxa de transferência ideal no destino de latência. O Inference Quickstart fornece dados de desempenho e configurações para essa zona ideal.

Perfil de latência com marcador verde inferior a 2.000 tokens de saída por segundo e marcador vermelho superior a 2.000 tokens de saída por segundo

Com base nos requisitos de latência de um aplicativo de inferência, o Inference Quickstart identifica combinações adequadas e determina o ponto de operação ideal na curva de latência-throughput. Esse ponto define o limite do escalonamento automático de pod horizontal (HPA, na sigla em inglês), com um buffer para considerar a latência de escalonamento. O limite geral também informa o número inicial de réplicas necessárias, embora o HPA ajuste esse número dinamicamente com base na carga de trabalho.

Comparativo de mercado

As configurações e os dados de desempenho fornecidos são baseados em comparativos que usam o conjunto de dados ShareGPT para enviar tráfego com a seguinte distribuição de entrada e saída.

Tokens de entrada Tokens de saída
Mín. Mediana Média P90 P99 Máx. Mín. Mediana Média P90 P99 Máx.
4 108 226 635 887 1024 1 132 195 488 778 1024

Para executar o comparativo, siga as instruções em AI-Hypercomputer/inference-benchmark. Oferecemos diferentes opções que podem ser usadas durante o comparativo de mercado para simular padrões de carga que representam sua carga de trabalho.

Antes de começar

Antes de começar, veja se você realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a CLI do Google Cloud para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a gcloud CLI anteriormente, instale a versão mais recente executando gcloud components update.
  • No console do Google Cloud, na página do seletor de projetos, selecione ou crie um Google Cloud projeto.

  • Verifique se o faturamento foi ativado para o projeto Google Cloud .

  • Verifique se você tem capacidade de aceleração suficiente para seu projeto:

  • Gerencie um token de acesso do Hugging Face e um Secret do Kubernetes correspondente, se ainda não tiver um. Para criar um secret do Kubernetes que contenha o token do Hugging Face, execute o seguinte comando:

    kubectl create secret generic hf-secret \
        --from-literal=hf_api_token=HUGGING_FACE_TOKEN \
        --namespace=NAMESPACE
    

    Substitua os seguintes valores:

    • HUGGING_FACE_TOKEN: o token do Hugging Face que você criou anteriormente.
    • NAMESPACE: o namespace do Kubernetes em que você quer implantar o servidor de modelos.
  • Alguns modelos também podem exigir que você aceite e assine o contrato de licença de consentimento.

Se você usar a CLI gcloud para executar o Inference Quickstart, também precisará executar estes comandos adicionais:

  1. Ative a gkerecommender.googleapis.com API:

    gcloud services enable gkerecommender.googleapis.com
    
  2. Ative a autenticação de comando. Essa etapa é necessária para definir o projeto de faturamento e cota usado para chamadas de API:

    gcloud auth application-default login
    

Limitações

Antes de começar a usar o Inference Quickstart, esteja ciente das seguintes limitações:

  • O guia de início rápido de inferência não fornece perfis para todos os modelos com suporte a um determinado servidor de modelos.

Receber configurações otimizadas para inferência de modelo

Use o comando gcloud alpha container ai recommender para conferir e acessar combinações otimizadas de modelo, servidor de modelo, versão do servidor de modelo e aceleradores:

Modelos

Para explorar e selecionar um modelo, use a opção models.

  gcloud alpha container ai recommender models list

A saída será assim:

  Supported models:
  -  deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
  -  google/gemma-2-27b-it
  -  google/gemma-2-2b-it
  -  meta-llama/Llama-3.2-1B-Instruct
  -  meta-llama/Llama-3.3-70B-Instruct
  -  meta-llama/Meta-Llama-3-8B
  -  mistralai/Mixtral-8x22B-Instruct-v0.1
  -  mistralai/Mixtral-8x7B-Instruct-v0.1

Servidores de modelo

Para conferir os servidores de modelo recomendados para o modelo de seu interesse, use a opção model-servers. Exemplo:

  gcloud alpha container ai recommender model-servers list \
      --model=meta-llama/Meta-Llama-3-8B

A saída será assim:

  Supported model servers:
  -  vllm

Versões do servidor

Se preferir, para conferir as versões com suporte do servidor de modelo que você quer usar, use a opção model-server-versions. Se você pular esta etapa, o guia de início rápido de inferência vai usar a versão mais recente por padrão. Exemplo:

  gcloud alpha container ai recommender model-server-versions list \
      --model=meta-llama/Meta-Llama-3-8B \
      --model-server=vllm

A saída será assim:

  Supported model server versions:
  -  e92694b6fe264a85371317295bca6643508034ef
  -  v0.7.2

Aceleradores

Para conferir os aceleradores recomendados para a combinação de modelo e servidor de modelo de seu interesse, use a opção accelerators. Exemplo:

  gcloud alpha container ai recommender accelerators list \
      --model=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
      --model-server-version=v0.7.2

A saída será assim:

  Supported accelerators:
  accelerator          | model                                   | model server | model server version                     | accelerator count | output tokens per second | ntpot ms
  ---------------------|-----------------------------------------|--------------|------------------------------------------|-------------------|--------------------------|---------
  nvidia-tesla-a100    | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm         | v0.7.2                                   | 1                 | 3357                     | 72
  nvidia-h100-80gb     | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm         | v0.7.2                                   | 1                 | 6934                     | 30

  For more details on each accelerator, use --format=yaml

A saída retorna uma lista de tipos de acelerador e estas métricas:

  • Capacidade de processamento, em tokens de saída por segundo
  • Tempo normalizado por token de saída (NTPOT), em milissegundos

Os valores representam a performance observada no ponto em que a taxa de transferência para de aumentar e a latência começa a aumentar drasticamente (ou seja, o ponto de inflexão ou de saturação) para um determinado perfil com esse tipo de acelerador. Para saber mais sobre essas métricas de desempenho, consulte Sobre a inferência de modelos no GKE.

Para mais opções, consulte a documentação da CLI do Google Cloud.

Depois de escolher um modelo, um servidor de modelo, uma versão do servidor de modelo e um acelerador, você pode criar um manifesto de implantação.

Gerar e implantar configurações recomendadas

Esta seção descreve como gerar e implantar recomendações de configuração usando a CLI gcloud.

  1. Gerar manifestos: no terminal, use a opção manifests para gerar manifestos de implantação, serviço e PodMonitoring:

    gcloud alpha container ai recommender manifests create
    

    Use os parâmetros --model, --model-server, --model-server-version e --accelerator para personalizar seu manifesto.

    Também é possível definir estes parâmetros:

    • --target-ntpot-milliseconds: defina esse parâmetro para especificar o limite da HPA. Esse parâmetro permite definir um limite de escalonamento para manter a latência P50 do NTPOT (tempo normalizado por token de saída), que é medida no 50º quartil, abaixo do valor especificado. Escolha um valor acima da latência mínima do acelerador. O HPA será configurado para a taxa de transferência máxima se você especificar o NTPOT acima da latência máxima do acelerador. Confira um exemplo:

      gcloud alpha container ai recommender manifests create \
          --model=google/gemma-2-27b-it \
          --model-server=vllm \
          --model-server-version=v0.7.2 \
          --accelerator-type=nvidia-l4 \
          --target-ntpot-milliseconds=200
      
    • --output: os valores válidos incluem manifest, comments e all. Por padrão, essa opção é definida como all. Você pode gerar apenas o manifesto para implantar cargas de trabalho ou apenas os comentários se quiser ver instruções para ativar recursos.

    • --output-path: se especificado, a saída será salva no caminho fornecido em vez de ser impressa no terminal para que você possa editar a saída antes da implantação. Por exemplo, você pode usar isso com a opção --output=manifest se quiser salvar o manifesto em um arquivo YAML. Veja um exemplo:

      gcloud alpha container ai recommender manifests create \
          --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
          --model-server vllm \
          --accelerator-type=nvidia-tesla-a100 \
          --output=manifest \
          --output-path  /tmp/manifests.yaml
      

    Para mais opções, consulte a documentação da CLI do Google Cloud.

  2. Provisionar a infraestrutura: siga estas etapas para garantir que a infraestrutura esteja configurada corretamente para implantação, monitoramento e escalonamento de modelos.

  3. Implantar os manifestos: execute o comando kubectl apply e transmita o arquivo YAML para seus manifestos. Exemplo:

    kubectl apply -f ./manifests.yaml
    

Provisionar sua infraestrutura

Siga estas etapas para garantir que sua infraestrutura esteja configurada corretamente para implantação, monitoramento e escalonamento de modelos:

  1. Crie um cluster: é possível disponibilizar seu modelo em clusters do GKE Autopilot ou Standard. Recomendamos que você use um cluster do Autopilot para ter uma experiência totalmente gerenciada do Kubernetes. Para escolher o modo de operação do GKE mais adequado para suas cargas de trabalho, consulte Escolher um modo de operação do GKE.

    Se você não tiver um cluster, siga estas etapas:

    Piloto automático

    Siga estas instruções para criar um cluster do Autopilot. O GKE processa o provisionamento dos nós com capacidade de GPU ou TPU com base nos manifestos de implantação, se você tiver a cota necessária no projeto.

    Padrão

    1. Crie um cluster zonal ou regional.
    2. Crie um pool de nós com os aceleradores apropriados. Siga estas etapas com base no tipo de acelerador escolhido:

  2. (Opcional, mas recomendado) Ativar recursos de observabilidade: na seção de comentários do manifesto gerado, comandos adicionais são fornecidos para ativar os recursos de observabilidade sugeridos. Ativar esses recursos oferece mais insights para ajudar a monitorar o desempenho e o status das cargas de trabalho e da infraestrutura subjacente.

    Confira a seguir um exemplo de comando para ativar os recursos de observabilidade:

    gcloud beta container clusters update $CLUSTER_NAME
        --project=$PROJECT_ID
        --location=$LOCATION \
        --enable-managed-prometheus \
        --logging=SYSTEM,WORKLOAD \
        --monitoring=SYSTEM,DEPLOYMENT,HPA,POD,DCGM \
        --auto-monitoring-scope=ALL
    

    Para mais informações, consulte Monitorar suas cargas de trabalho de inferência.

  3. (Somente HPA) Implantar um adaptador de métricas: um adaptador de métricas, como o adaptador de métricas personalizadas do Stackdriver, é necessário se os recursos do HPA foram gerados nos manifestos de implantação. O adaptador de métricas permite que o HPA acesse as métricas do servidor de modelo que usam a API kube external metrics. Para implantar o adaptador, consulte a documentação do adaptador no GitHub.

Testar os endpoints de implantação

O serviço implantado é exposto no seguinte endpoint:

http://model-model_server-service:port/

Teste o serviço. Em um terminal separado, configure o encaminhamento de portas executando o seguinte comando:

kubectl port-forward service/model-model_server-service 8000:8000

Para conferir exemplos de como criar e enviar uma solicitação para o endpoint, consulte a documentação do vLLM.

Monitorar as cargas de trabalho de inferência

Para monitorar as cargas de trabalho de inferência implantadas, acesse o Metrics Explorer no console do Google Cloud.

Ativar o monitoramento automático

O GKE inclui um recurso de monitoramento automático que faz parte dos recursos de observabilidade mais amplos. Esse recurso verifica se há cargas de trabalho que são executadas em servidores de modelo com suporte no cluster e implanta os recursos do PodMonitoring que permitem que essas métricas de carga de trabalho fiquem visíveis no Cloud Monitoring. Para mais informações sobre como ativar e configurar o monitoramento automático, consulte Configurar o monitoramento automático de aplicativos para cargas de trabalho.

Depois de ativar o recurso, o GKE instala painéis predefinidos para monitorar aplicativos de cargas de trabalho com suporte.

Solução de problemas

  • Se você definir a latência muito baixa, o Inference Quickstart talvez não gere uma recomendação. Para corrigir esse problema, selecione uma meta de latência entre a latência mínima e máxima observada para os aceleradores selecionados.
  • O guia de início rápido de inferência existe independentemente dos componentes do GKE. Portanto, a versão do cluster não é diretamente relevante para usar o serviço. No entanto, recomendamos usar um cluster novo ou atualizado para evitar discrepâncias no desempenho.
  • Se você receber um erro PERMISSION_DENIED para comandos gkerecommender.googleapis.com informando que um projeto de cota está ausente no ADC, será necessário defini-lo manualmente. Execute gcloud config set billing/quota_project PROJECT_ID para corrigir isso.

A seguir