1. Introduzione
Panoramica
Cloud Run è una piattaforma di container su Google Cloud che semplifica l'esecuzione del codice in un container, senza richiedere la gestione di un cluster.
Cloud Run offre una GPU L4 o NVIDIA RTX PRO 6000 Blackwell. C'è una GPU per istanza Cloud Run e la scalabilità automatica di Cloud Run è ancora applicabile, inclusa la riduzione a zero istanze quando non ci sono richieste.
Un caso d'uso delle GPU è l'esecuzione dei tuoi modelli linguistici di grandi dimensioni (LLM) open source. Questo tutorial spiega come eseguire il deployment di un servizio che esegue un LLM.
Questo codelab descrive come eseguire il deployment dei modelli aperti Gemma 4 su Cloud Run utilizzando un container predefinito con la libreria di inferenza vLLM.
Cosa imparerai a fare
- Come utilizzare le GPU su Cloud Run.
- Come eseguire il deployment del modello Gemma 4 2B ottimizzato per le istruzioni di Google su Cloud Run utilizzando vLLM come motore di inferenza.
2. Configurazione e requisiti
Prerequisiti
- Hai eseguito l'accesso a Cloud Console.
- Hai già eseguito il deployment di un servizio Cloud Run. Ad esempio, puoi seguire la guida rapida per il deployment di un servizio web dal codice sorgente per iniziare.
3. Abilita le API e imposta le variabili di ambiente
Abilita API
Prima di poter iniziare a utilizzare questo codelab, devi abilitare diverse API. Questo codelab richiede l'utilizzo delle seguenti API. Puoi abilitare queste API eseguendo il seguente comando:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com
Imposta le variabili di ambiente
Configura l'ID progetto di seguito.
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. Crea un account di servizio
Questo service account viene utilizzato come identità del servizio Cloud Run.
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="Cloud Run gemma 4 SA"
5. Esegui il deployment del servizio
Per eseguire il deployment dei modelli Gemma su Cloud Run, utilizza il seguente comando gcloud CLI con le impostazioni consigliate:
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. Testare il servizio
Una volta eseguito il deployment, puoi utilizzare il servizio proxy di sviluppo Cloud Run, che aggiunge automaticamente un token ID, oppure eseguire il comando curl sull'URL del servizio direttamente.
Utilizzo del servizio proxy di sviluppo Cloud Run
Innanzitutto, avvia il proxy.
gcloud run services proxy $SERVICE_NAME \
--project $PROJECT \
--region $REGION \
--port=9090
Esegui questo comando per inviare una richiesta in una scheda del terminale separata, lasciando in esecuzione il proxy. Il proxy viene eseguito su 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
}'
Dovresti vedere un output simile al seguente:
{
"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
}
}
Utilizzo diretto dell'URL del servizio
Innanzitutto, recupera l'URL del servizio di cui è stato eseguito il deployment.
SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region $REGION --format 'value(status.url)')
Esegui il comando curl sul servizio
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. Complimenti!
Congratulazioni per aver completato il codelab.
Ti consigliamo di consultare la documentazione Cloud Run.
Argomenti trattati
- Come utilizzare le GPU su Cloud Run.
- Come eseguire il deployment del modello Gemma 4 (2B) di Google su Cloud Run utilizzando vLLM come motore di inferenza.
8. Esegui la pulizia
Per evitare addebiti involontari (ad esempio, se i servizi Cloud Run vengono richiamati inavvertitamente più volte rispetto all'allocazione mensile di chiamate di Cloud Run nel livello senza costi), puoi eliminare Cloud Run o il progetto che hai creato nel passaggio 2.
Per eliminare il servizio Cloud Run, vai alla console Cloud Run all'indirizzo https://console.cloud.google.com/run ed elimina il servizio gemma4-cr-codelab. Potresti anche voler eliminare il service account gemma4-cr-codelab-sa.
Se scegli di eliminare l'intero progetto, puoi andare alla pagina https://console.cloud.google.com/cloud-resource-manager, selezionare il progetto che hai creato nel passaggio 2 e scegliere Elimina. Se elimini il progetto, dovrai cambiare progetto in Cloud SDK. Puoi visualizzare l'elenco di tutti i progetti disponibili eseguendo gcloud projects list.