Neste guia, implementa e publica MDIs com nós de GPU de anfitrião único no GKE com a framework de publicação vLLM. Este guia fornece instruções e configurações para implementar os seguintes modelos abertos:
Este guia destina-se a engenheiros de aprendizagem automática (ML) e especialistas em dados e IA que tenham interesse em explorar as capacidades de orquestração de contentores do Kubernetes para publicar modelos abertos para inferência. Para saber mais sobre as funções comuns e as tarefas de exemplo referidas no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud
Para uma análise detalhada do desempenho e dos custos da publicação de modelos para estes modelos abertos, também pode usar a ferramenta de início rápido do GKE Inference. Para saber mais, consulte o guia de início rápido da inferência do GKE e o notebook do Colab que o acompanha.
Aceda ao modelo
Para aceder ao modelo através do Hugging Face, precisa de um token do Hugging Face.
Siga estes passos para gerar um novo token se ainda não tiver um:
- Clique em O seu perfil > Definições > Tokens de acesso.
- Selecione Novo token.
- Especifique um Nome à sua escolha e uma Função de, pelo menos, Leitura.
- Selecione Gerar um token.
- Copie o token gerado para a área de transferência.
Aprovisione o ambiente de inferência do GKE
Nesta secção, implementa a infraestrutura necessária para publicar o seu modelo.
Inicie o Cloud Shell
Este guia usa o Cloud Shell para executar comandos. O Cloud Shell é pré-instalado com as ferramentas necessárias, incluindo gcloud
, kubectl
e git
.
Na Google Cloud consola, inicie uma instância do Cloud Shell:
Esta ação inicia uma sessão no painel inferior da consola Google Cloud .
Implemente a arquitetura base
Para aprovisionar o cluster do GKE e os recursos necessários para aceder aos modelos da Hugging Face, siga estes passos:
No Cloud Shell, clone o seguinte repositório:
git clone https://github.com/GoogleCloudPlatform/accelerated-platforms --branch hf-model-tutorial && \ cd accelerated-platforms && \ export ACP_REPO_DIR="$(pwd)"
Defina as variáveis de ambiente:
export TF_VAR_platform_default_project_id=PROJECT_ID export HF_TOKEN_READ=HF_TOKEN
Substitua os seguintes valores:
PROJECT_ID
: o seu Google Cloud ID do projeto.HF_TOKEN
: o token do Hugging Face que gerou anteriormente.
Este guia requer a versão 1.8.0 ou posterior do Terraform. O Cloud Shell tem o Terraform v1.5.7 instalado por predefinição.
Para atualizar a versão do Terraform no Cloud Shell, pode executar o seguinte script. Este script instala a ferramenta
terraform-switcher
e faz alterações ao seu ambiente de shell."${ACP_REPO_DIR}/tools/bin/install_terraform.sh" source ~/.bashrc
Execute o seguinte guião de implementação. O script de implementação ativa as APIs necessárias e aprovisiona a infraestrutura necessária para este guia. Google Cloud Isto inclui uma nova rede VPC, um cluster do GKE com nós privados e outros recursos de apoio. O script pode demorar vários minutos a ser concluído.
Pode publicar modelos com GPUs num cluster padrão ou do GKE Autopilot. Um cluster do Autopilot oferece uma experiência do Kubernetes totalmente gerida. Para mais informações sobre como escolher o modo de funcionamento do GKE mais adequado para as suas cargas de trabalho, consulte o artigo Acerca dos modos de funcionamento do GKE.
Piloto automático
"${ACP_REPO_DIR}/platforms/gke/base/tutorials/hf-gpu-model/deploy-ap.sh"
Standard
"${ACP_REPO_DIR}/platforms/gke/base/tutorials/hf-gpu-model/deploy-standard.sh"
Depois de este script ser concluído, tem um cluster do GKE pronto para cargas de trabalho de inferência.
Execute o seguinte comando para definir variáveis de ambiente a partir da configuração partilhada:
source "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/terraform/_shared_config/scripts/set_environment_variables.sh"
O script de implementação cria um segredo no Secret Manager para armazenar o seu token do Hugging Face. Tem de adicionar manualmente o seu token a este segredo antes de implementar o cluster. No Cloud Shell, execute este comando para adicionar o token ao Secret Manager.
echo ${HF_TOKEN_READ} | gcloud secrets versions add ${huggingface_hub_access_token_read_secret_manager_secret_name} \ --data-file=- \ --project=${huggingface_secret_manager_project_id}
Implemente um modelo aberto
Já tem tudo pronto para transferir e implementar o modelo.
Defina as variáveis de ambiente para o modelo que quer implementar:
Gemma 3 27B-it
export ACCELERATOR_TYPE="h100" export HF_MODEL_ID="google/gemma-3-27b-it"
Llama 4 Scout 17B-16E-Instruct
export ACCELERATOR_TYPE="h100" export HF_MODEL_ID="meta-llama/llama-4-scout-17b-16e-instruct"
Qwen3 32B
export ACCELERATOR_TYPE="h100" export HF_MODEL_ID="qwen/qwen3-32b"
gpt-oss 20B
export ACCELERATOR_TYPE="h100" export HF_MODEL_ID="openai/gpt-oss-20b"
Para configurações adicionais, incluindo outras variantes de modelos e tipos de GPUs, consulte os manifestos disponíveis no
accelerated-platforms
repositório do GitHub.Obtenha as variáveis de ambiente da sua implementação. Estas variáveis de ambiente contêm os detalhes de configuração necessários da infraestrutura que aprovisionou.
source "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/terraform/_shared_config/scripts/set_environment_variables.sh"
Execute o seguinte script para configurar a tarefa do Kubernetes que transfere o modelo para o Cloud Storage:
"${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/model-download/configure_huggingface.sh"
Implemente a tarefa de transferência do modelo:
kubectl apply --kustomize "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/model-download/huggingface"
Aguarde pela conclusão da transferência. Monitorize o estado da tarefa e, quando
COMPLETIONS
estiver1/1
, primaCtrl+C
para sair.watch --color --interval 5 --no-title "kubectl --namespace=${huggingface_hub_downloader_kubernetes_namespace_name} get job/${HF_MODEL_ID_HASH}-hf-model-to-gcs
Implemente a carga de trabalho de inferência no seu cluster do GKE.
"${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/online-inference-gpu/configure_deployment.sh" kubectl apply --kustomize "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/online-inference-gpu/vllm/${ACCELERATOR_TYPE}-${HF_MODEL_NAME}"
Teste a implementação
Aguarde até que o pod do servidor de inferência esteja pronto. Quando a coluna
READY
for1/1
, primaCtrl+C
para sair.watch --color --interval 5 --no-title "kubectl --namespace=${ira_online_gpu_kubernetes_namespace_name} get deployment/vllm-${ACCELERATOR_TYPE}-${HF_MODEL_NAME}"
Execute o seguinte script para configurar o encaminhamento de portas e enviar um pedido de exemplo ao modelo. Este exemplo usa o formato de payload para um modelo Gemma 3 27b-it.
kubectl --namespace=${ira_online_gpu_kubernetes_namespace_name} port-forward service/vllm-${ACCELERATOR_TYPE}-${HF_MODEL_NAME} 8000:8000 >/dev/null & PF_PID=$! curl http://127.0.0.1:8000/v1/chat/completions \ --data '{ "model": "/gcs/'${HF_MODEL_ID}'", "messages": [ { "role": "user", "content": "What is GKE?" } ] }' \ --header "Content-Type: application/json" \ --request POST \ --show-error \ --silent | jq kill -9 ${PF_PID}
Deve ver uma resposta JSON do modelo a responder à pergunta.
Limpar
Para evitar incorrer em custos, elimine todos os recursos que criou.
Elimine a carga de trabalho de inferência:
kubectl delete --ignore-not-found --kustomize "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/online-inference-gpu/vllm/${ACCELERATOR_TYPE}-${HF_MODEL_NAME}"
Remova o cluster do GKE fundamental:
Piloto automático
"${ACP_REPO_DIR}/platforms/gke/base/tutorials/hf-gpu-model/teardown-ap.sh"
Standard
"${ACP_REPO_DIR}/platforms/gke/base/tutorials/hf-gpu-model/teardown-standard.sh"
O que se segue?
- Saiba mais sobre a inferência do modelo de IA/ML no GKE.
- Analise o desempenho e os custos da inferência de modelos com a ferramenta de início rápido da inferência do GKE.
- Explore outros exemplos de utilização e padrões no GitHub criados com base nesta arquitetura.