1. Introdução
Visão geral
O Cloud Run é uma plataforma de contêineres no Google Cloud que facilita a execução do seu código em um contêiner, sem exigir o gerenciamento de um cluster.
O Cloud Run oferece uma GPU L4 ou NVIDIA RTX PRO 6000 Blackwell. Há uma GPU por instância do Cloud Run, e o escalonamento automático do Cloud Run ainda é aplicado, incluindo a redução para zero instâncias quando não há solicitações.
Um caso de uso para GPUs é executar seus próprios modelos de linguagem grandes (LLMs) abertos. Neste tutorial, mostramos como implantar um serviço que executa um LLM.
Este codelab descreve como implantar modelos abertos do Gemma 4 no Cloud Run usando um contêiner pré-criado com a biblioteca de inferência vLLM.
O que você vai aprender
- Como usar GPUs no Cloud Run.
- Como implantar o modelo ajustado por instruções Gemma 4 2B do Google no Cloud Run usando o vLLM como um mecanismo de inferência.
2. Configuração e requisitos
Pré-requisitos
- Você fez login no console do Cloud.
- Você já implantou um serviço do Cloud Run. Por exemplo, siga o guia de início rápido para implantar um serviço da Web usando o código-fonte.
3. Ativar APIs e definir variáveis de ambiente
Ativar APIs
Antes de começar a usar este codelab, você precisa ativar várias APIs. Este codelab exige o uso das seguintes APIs. Para ativar essas APIs, execute o seguinte comando:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com
Definir variáveis de ambiente
Configure o ID do projeto abaixo.
export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=europe-west4
export SERVICE_NAME=gemma4-cr-codelab
export SERVICE_ACCOUNT_NAME=gemma4-cr-sa
export SERVICE_ACCOUNT_ADDRESS=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
4. Criar uma conta de serviço
Essa conta de serviço é usada como a identidade do serviço do Cloud Run.
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="Cloud Run gemma 4 SA"
5. Implante o serviço
Para implantar modelos do Gemma no Cloud Run, use o seguinte comando da CLI gcloud com as configurações recomendadas:
CONTAINER_ARGS=(
"serve"
"google/gemma-4-E2B-it"
"--enable-chunked-prefill"
"--enable-prefix-caching"
"--generation-config=auto"
"--enable-auto-tool-choice"
"--tool-call-parser=gemma4"
"--reasoning-parser=gemma4"
"--dtype=bfloat16"
"--max-num-seqs=64"
"--gpu-memory-utilization=0.95"
"--tensor-parallel-size=1"
"--port=8080"
"--host=0.0.0.0"
)
gcloud beta run deploy $SERVICE_NAME \
--image "us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:gemma4" \
--project $PROJECT_ID \
--region $REGION \
--execution-environment gen2 \
--no-allow-unauthenticated \
--cpu 20 \
--memory 80Gi \
--gpu 1 \
--gpu-type nvidia-rtx-pro-6000 \
--no-gpu-zonal-redundancy \
--no-cpu-throttling \
--max-instances 3 \
--concurrency 64 \
--timeout 600 \
--service-account $SERVICE_ACCOUNT_ADDRESS \
--startup-probe tcpSocket.port=8080,initialDelaySeconds=240,failureThreshold=1,timeoutSeconds=240,periodSeconds=240 \
--command "vllm" \
--args=$(IFS=','; echo "${CONTAINER_ARGS[*]}")
6. Testar o serviço
Depois da implantação, use o serviço de proxy de desenvolvimento do Cloud Run, que adiciona automaticamente um token de ID, ou faça curl diretamente no URL do serviço.
Como usar o serviço de proxy de desenvolvimento do Cloud Run
Primeiro, inicie o proxy
gcloud run services proxy $SERVICE_NAME \
--project $PROJECT \
--region $REGION \
--port=9090
Execute o comando a seguir para enviar uma solicitação em uma guia de terminal separada, deixando o proxy em execução. O proxy é executado em localhost:9090.
curl http://localhost:9090/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemma-4-E2B-it",
"messages": [{"role": "user", "content": "Why is the sky blue?"}],
"chat_template_kwargs": {
"enable_thinking": true
},
"skip_special_tokens": false
}'
A resposta será semelhante a esta:
{
"id": "chatcmpl-9cf1ab1450487047",
"object": "chat.completion",
"created": 1774904187,
"model": "google/gemma-4-E2B-it",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The short answer is a phenomenon called **Rayleigh scattering**...",
"function_call": null,
"tool_calls": [],
"reasoning": "* Question: \"Why is the sky blue?\"\n..."
},
"finish_reason": "stop",
"stop_reason": 106
}
],
"usage": {
"prompt_tokens": 21,
"total_tokens": 877,
"completion_tokens": 856
}
}
Usar o URL do serviço diretamente
Primeiro, recupere o URL do serviço implantado.
SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region $REGION --format 'value(status.url)')
Fazer curl do serviço
curl $SERVICE_URL/v1/chat/completions \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemma-4-E2B-it",
"messages": [{"role": "user", "content": "Why is the sky blue?"}],
"chat_template_kwargs": {
"enable_thinking": true
},
"skip_special_tokens": false
}'
7. Parabéns!
Parabéns por concluir o codelab!
Recomendamos consultar a documentação do Cloud Run.
O que vimos
- Como usar GPUs no Cloud Run.
- Como implantar o modelo Gemma 4 (2B) do Google no Cloud Run usando o vLLM como um mecanismo de inferência.
8. Limpar
Para evitar cobranças acidentais, por exemplo, se os serviços do Cloud Run forem invocados mais vezes do que sua alocação mensal de invocações do Cloud Run no nível sem custo financeiro, exclua o Cloud Run ou o projeto criado na etapa 2.
Para excluir o serviço do Cloud Run, acesse o console do Cloud Run em https://console.cloud.google.com/run e exclua o serviço gemma4-cr-codelab. Também é possível excluir a conta de serviço gemma4-cr-codelab-sa.
Se você quiser excluir todo o projeto, acesse https://console.cloud.google.com/cloud-resource-manager, selecione o projeto criado na Etapa 2 e escolha "Excluir". Se você excluir o projeto, vai precisar mudar de projeto no SDK Cloud. Para conferir a lista de todos os projetos disponíveis, execute gcloud projects list.