1. Wprowadzenie
Przegląd
Cloud Run to platforma kontenerowa w Google Cloud, która ułatwia uruchamianie kodu w kontenerze bez konieczności zarządzania klastrem.
Cloud Run oferuje procesory graficzne L4 lub NVIDIA RTX PRO 6000 Blackwell. Na każdą instancję Cloud Run przypada 1 procesor GPU, a autoskalowanie Cloud Run nadal obowiązuje, w tym skalowanie w dół do zera instancji, gdy nie ma żądań.
Jednym z przypadków użycia procesorów graficznych jest uruchamianie własnych otwartych dużych modeli językowych (LLM). Z tego samouczka dowiesz się, jak wdrożyć usługę, która uruchamia LLM.
W tym ćwiczeniu z programowania dowiesz się, jak wdrożyć otwarte modele Gemma 4 w Cloud Run przy użyciu gotowego kontenera z biblioteką wnioskowania vLLM.
Czego się nauczysz
- Jak korzystać z GPU w Cloud Run.
- Jak wdrożyć w Cloud Run model Gemma 4 2B od Google dostosowany do instrukcji, używając vLLM jako silnika wnioskowania.
2. Konfiguracja i wymagania
Wymagania wstępne
- Jesteś zalogowany(-a) w Cloud Console.
- Usługa Cloud Run została już wdrożona. Na początek możesz na przykład skorzystać z przewodnika szybkiego startu dotyczącego wdrażania usługi internetowej z kodu źródłowego.
3. Włączanie interfejsów API i ustawianie zmiennych środowiskowych
Włącz interfejsy API
Zanim zaczniesz korzystać z tego samouczka, musisz włączyć kilka interfejsów API. W tym ćwiczeniu musisz użyć tych interfejsów API: Możesz włączyć te interfejsy API, uruchamiając to polecenie:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com
Ustawianie zmiennych środowiskowych
Skonfiguruj poniżej identyfikator projektu.
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. Tworzenie konta usługi
To konto usługi jest używane jako tożsamość usługi Cloud Run.
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="Cloud Run gemma 4 SA"
5. Wdrażanie usługi
Aby wdrożyć modele Gemma w Cloud Run, użyj tego polecenia interfejsu wiersza poleceń gcloud z zalecanymi ustawieniami:
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. Testowanie usługi
Po wdrożeniu możesz użyć usługi serwera proxy deweloperskiego Cloud Run, która automatycznie dodaje token tożsamości, lub bezpośrednio wywołać adres URL usługi.
Korzystanie z usługi serwera proxy Cloud Run Dev
Najpierw uruchom serwer proxy.
gcloud run services proxy $SERVICE_NAME \
--project $PROJECT \
--region $REGION \
--port=9090
Aby wysłać żądanie w osobnej karcie terminala, pozostaw serwer proxy uruchomiony. Serwer proxy działa na 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
}'
Zostaną wyświetlone dane wyjściowe podobne do tych:
{
"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
}
}
Bezpośrednie używanie adresu URL usługi
Najpierw pobierz adres URL wdrożonej usługi.
SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region $REGION --format 'value(status.url)')
Wywołanie usługi
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. Gratulacje!
Gratulujemy ukończenia ćwiczenia!
Zalecamy zapoznanie się z dokumentacją Cloud Run.
Omówione zagadnienia
- Jak korzystać z GPU w Cloud Run.
- Jak wdrożyć model Gemma 4 (2B) od Google w Cloud Run przy użyciu vLLM jako silnika wnioskowania.
8. Czyszczenie danych
Aby uniknąć przypadkowych opłat (np. jeśli usługi Cloud Run zostaną przypadkowo wywołane więcej razy niż miesięczna liczba wywołań Cloud Run w bezpłatnej wersji), możesz usunąć Cloud Run lub projekt utworzony w kroku 2.
Aby usunąć usługę Cloud Run, otwórz konsolę Cloud Run w Cloud Console na stronie https://console.cloud.google.com/run i usuń usługę gemma4-cr-codelab. Możesz też usunąć gemma4-cr-codelab-sa konto usługi.
Jeśli zdecydujesz się usunąć cały projekt, otwórz stronę https://console.cloud.google.com/cloud-resource-manager, wybierz projekt utworzony w kroku 2 i kliknij Usuń. Jeśli usuniesz projekt, musisz zmienić projekty w Cloud SDK. Listę wszystkich dostępnych projektów możesz wyświetlić, uruchamiając polecenie gcloud projects list.