Objetivos
A Gemma 4 é a família de modelos abertos mais eficiente do Google, oferecendo recursos de raciocínio e de agente avançados. O contexto longo, a multimodalidade, o raciocínio e a chamada de função permitem que o Gemma 4 lide com lógica complexa, planejamento em várias etapas, programação e fluxos de trabalho de agentes.
Este guia mostra como executar a inferência de LLM em GPUs do Cloud Run com o Gemma e o Ollama, e tem os seguintes objetivos:
- Implante o Ollama com o modelo Gemma 4 em um serviço do Cloud Run com GPU.
- Envie comandos para o serviço Ollama no endpoint particular.
Para aprender uma maneira alternativa de implantar modelos abertos do Gemma 4 no Cloud Run usando um contêiner vLLM, consulte Executar modelos do Gemma 4 no Cloud Run.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
ativar a API Cloud Run;
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.- Instale e inicialize a gcloud CLI.
- Solicite a cota
Total Nvidia RTX Pro 6000 GPU allocation, in milli GPU, without zonal redundancy, per project per regionna API Cloud Run Admin na página Cotas e limites do sistema para concluir este tutorial.
Funções exigidas
Para conseguir as permissões necessárias para concluir o tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:
-
Administrador do Cloud Run (
roles/run.admin) -
Administrador de projetos do IAM (
roles/resourcemanager.projectIamAdmin) -
Usuário da conta de serviço (
roles/iam.serviceAccountUser) -
Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Conceder os papéis
Console
-
No console do Google Cloud , acesse a página IAM.
Acessar IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos principais, digite seu identificador de usuário. Normalmente, esse é o endereço de e-mail usado para implantar o serviço do Cloud Run.
- Na lista Selecionar papel, escolha um.
- Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
- Clique em Salvar.
gcloud
Para conceder os papéis do IAM necessários à sua conta no projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Substitua:
- PROJECT_NUMBER pelo número do projeto do Google Cloud .
- PROJECT_ID com o ID do seu projeto Google Cloud .
- PRINCIPAL com a conta a que você está adicionando a vinculação. Normalmente, esse é o endereço de e-mail usado para implantar o serviço do Cloud Run.
- ROLE com o papel que você está adicionando à conta do implantador.
Implantar o serviço Ollama para inferência de LLM
Implante o serviço no Cloud Run:
gcloud beta run deploy SERVICE-NAME \
--image "ollama/ollama:latest" \
--project PROJECT_ID \
--region REGION \
--no-allow-unauthenticated \
--cpu 20 \
--memory 80Gi \
--gpu 1 \
--gpu-type nvidia-rtx-pro-6000 \
--no-gpu-zonal-redundancy \
--max-instances 1 \
--concurrency 16 \
--timeout 600 \
--set-env-vars=OLLAMA_NUM_PARALLEL=16 \
--set-env-vars=OLLAMA_HOST=0.0.0.0:8080 \
--set-env-vars=OLLAMA_DEBUG=false \
--set-env-vars=OLLAMA_KEEP_ALIVE=-1 \
--startup-probe tcpSocket.port=8080,initialDelaySeconds=240,failureThreshold=1,timeoutSeconds=240,periodSeconds=240 \
--command "bash" \
--args="-c,(sleep 15 && ollama pull MODEL_NAME) & ollama serve"Substitua:
SERVICE-NAMEcom um nome exclusivo para o serviço do Cloud Run.PROJECTcom o Google Cloud ID do projeto.REGIONcom uma região Google Cloud em que as GPUsnvidia-rtx-pro-6000são compatíveis com o Cloud Run, comous-central1. Para conferir uma lista completa de regiões compatíveis com implantações habilitadas para GPU, consulte Configuração de GPU.MODEL_NAMEcom o nome completo de uma variante do Gemma 4.- Gemma 4 E2B:
gemma4:e2b - Gemma 4 E4B:
gemma4:e4b
- Gemma 4 E2B:
O Gemma 4 26B e 31B exigem uma configuração mais avançada do Cloud Run e do vLLM com saída direta da VPC e o Model Streamer do Run:ai.
Observe as seguintes flags importantes neste comando:
--concurrency 16está definido para corresponder ao valor da variável de ambienteOLLAMA_NUM_PARALLEL.--gpu 1com--gpu-type nvidia-rtx-pro-6000atribui uma GPU NVIDIA RTX PRO 6000 Blackwell a cada instância do Cloud Run no serviço.--max-instances 1especifica o número máximo de instâncias para escalonar. Ela precisa ser igual ou menor que a cota de GPU NVIDIA RTX Pro 6000 (Total NVIDIA RTX Pro 6000 GPU allocation, in milli GPU, without zonal redundancy, per project per region) do seu projeto.--no-allow-unauthenticatedrestringe o acesso não autenticado ao serviço. Ao manter o serviço privado, você pode confiar na API integrada do Cloud Run Autenticação do Identity and Access Management (IAM) para comunicação de serviço a serviço. Consulte Como gerenciar o acesso usando o IAM.--no-cpu-throttlingé necessário para ativar a GPU.- O
--no-gpu-zonal-redundancydefine opções de redundância zonal dependendo dos seus requisitos de failover zonal e da cota disponível. Consulte Opções de redundância zonal de GPU para mais detalhes.
Configurações de simultaneidade para performance ideal
Nesta seção, fornecemos contexto sobre as configurações de simultaneidade recomendadas. Para uma
latência de solicitação ideal, verifique se a configuração --concurrency é igual à variável de ambiente
OLLAMA_NUM_PARALLEL do Ollama.
OLLAMA_NUM_PARALLELdetermina quantos slots de solicitação estão disponíveis para cada modelo para processar solicitações de inferência simultaneamente.- O
--concurrencydetermina quantas solicitações o Cloud Run envia para uma instância do Ollama ao mesmo tempo.
Se --concurrency exceder OLLAMA_NUM_PARALLEL, o Cloud Run poderá enviar
mais solicitações a um modelo em Ollama do que os slots disponíveis para ele.
Isso leva à formação de filas de solicitações no Ollama, aumentando a latência das solicitações
na fila. Isso também leva a um escalonamento automático menos responsivo, já que as solicitações em fila
não acionam o Cloud Run para escalonar horizontalmente e iniciar novas instâncias.
O Ollama também oferece suporte à exibição de vários modelos de uma GPU. Para
evitar a fila de solicitações na instância do Ollama, defina
--concurrency para corresponder a OLLAMA_NUM_PARALLEL.
Aumentar OLLAMA_NUM_PARALLEL também faz com que as solicitações paralelas demorem mais.
Otimizar o uso da GPU
Para uma utilização ideal da GPU, aumente --concurrency, mantendo-o dentro
do dobro do valor de OLLAMA_NUM_PARALLEL. Embora isso leve à fila de solicitações no Ollama, ele pode ajudar a melhorar a utilização: as instâncias do Ollama podem processar imediatamente as solicitações da fila, e as filas ajudam a absorver picos de tráfego.
Testar o serviço Ollama implantado com curl
Agora que você implantou o serviço Ollama, é possível enviar solicitações para ele. No entanto,
se você enviar uma solicitação diretamente, o Cloud Run responderá com HTTP 401 Unauthorized.
Isso é intencional, porque uma API de inferência de LLM é destinada a outros serviços para
chamada, como um aplicativo de front-end. Para mais informações sobre serviços
no Cloud Run, consulte Como autenticar serviço a serviço.
Para enviar solicitações ao serviço do Ollama, adicione um cabeçalho com um token OIDC válido às solicitações, por exemplo, usando o proxy de desenvolvedor do Cloud Run:
Inicie o proxy e, quando solicitado a instalar o componente
cloud-run-proxy, escolhaY:gcloud run services proxy SERVICE-NAME \ --project PROJECT_ID \ --region REGION \ --port=9090Envie uma solicitação para ele em uma guia de terminal separada, deixando o proxy em execução. Observe que o proxy é executado em
localhost:9090:curl http://localhost:9090/api/generate -d '{ "model": "MODEL_NAME", "prompt": "Why is the sky blue?", "stream": false }' | jq -r '.response'O comando vai fornecer uma saída de streaming semelhante a esta:
This is one of the most beautiful and fundamental questions in physics! The reason the sky appears blue is due to a phenomenon called **Rayleigh Scattering**. ...
Limpar
Para evitar cobranças extras na sua conta do Google Cloud , exclua todos os recursos implantados com este tutorial.
Excluir o projeto
Se você criou um novo projeto para este tutorial, exclua-o. Se você usou um projeto atual e precisa mantê-lo sem as mudanças adicionadas neste tutorial, exclua os recursos criados para o tutorial.
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Excluir recursos do tutorial
Exclua o serviço do Cloud Run que você implantou neste tutorial. Os serviços do Cloud Run não geram custos até receberem solicitações.
Para excluir o serviço do Cloud Run, execute o seguinte comando:
gcloud run services delete SERVICE-NAME
SERVICE-NAME pelo nome do serviço;
Também é possível excluir os serviços do Cloud Run no consoleGoogle Cloud .
Remova a configuração da região padrão do
gcloudque você adicionou durante a configuração do tutorial:gcloud config unset run/regionRemova a configuração do projeto:
gcloud config unset project