vLLM की मदद से, Cloud Run के जीपीयू पर एलएलएम इन्फ़रेंस को चलाने का तरीका

1. परिचय

खास जानकारी

Cloud Run, Google Cloud पर मौजूद एक कंटेनर प्लैटफ़ॉर्म है. इसकी मदद से, कंटेनर में अपना कोड आसानी से चलाया जा सकता है. इसके लिए, आपको क्लस्टर मैनेज करने की ज़रूरत नहीं होती.

Cloud Run, L4 या NVIDIA RTX PRO 6000 Blackwell जीपीयू उपलब्ध कराता है. Cloud Run के हर इंस्टेंस के लिए एक जीपीयू होता है. साथ ही, Cloud Run की ऑटो स्केलिंग की सुविधा भी काम करती है. इसमें, कोई अनुरोध न मिलने पर, इंस्टेंस की संख्या को शून्य तक कम किया जा सकता है.

जीपीयू का एक इस्तेमाल, अपने ओपन लार्ज लैंग्वेज मॉडल (एलएलएम) चलाना है. इस ट्यूटोरियल में, एलएलएम चलाने वाली सेवा को डिप्लॉय करने का तरीका बताया गया है.

इस कोडलैब में, vLLM इन्फ़रेंस लाइब्रेरी के साथ पहले से बनाए गए कंटेनर का इस्तेमाल करके, Cloud Run पर Gemma 4 के ओपन मॉडल डिप्लॉय करने का तरीका बताया गया है.

आपको क्या सीखने को मिलेगा

  • Cloud Run पर जीपीयू का इस्तेमाल करने का तरीका.
  • इन्फ़रेंस इंजन के तौर पर vLLM का इस्तेमाल करके, Cloud Run पर Google के Gemma 4 2B इंस्ट्रक्शन-ट्यून मॉडल को डिप्लॉय करने का तरीका.

2. सेटअप और ज़रूरी शर्तें

ज़रूरी शर्तें

3. एपीआई चालू करना और एनवायरमेंट वैरिएबल सेट करना

एपीआई चालू करना

इस कोडलैब का इस्तेमाल करने से पहले, आपको कई एपीआई चालू करने होंगे. इस कोडलैब के लिए, इन एपीआई का इस्तेमाल करना ज़रूरी है. इन एपीआई को चालू करने के लिए, यह कमांड चलाएं:

gcloud services enable run.googleapis.com \
    cloudbuild.googleapis.com \
    artifactregistry.googleapis.com

एनवायरमेंट वैरिएबल सेट करना

यहां अपना प्रोजेक्ट आईडी कॉन्फ़िगर करें.

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. सेवा खाता बनाना

इस सेवा खाते का इस्तेमाल, Cloud Run सेवा की पहचान के तौर पर किया जाता है.

gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
  --display-name="Cloud Run gemma 4 SA"

5. सेवा डिप्लॉय करना

Cloud Run पर Gemma मॉडल डिप्लॉय करने के लिए, gcloud सीएलआई का यह कमांड, सुझाए गए सेटिंग के साथ इस्तेमाल करें:

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. सेवा की जांच करना

डिप्लॉय करने के बाद, Cloud Run के डेवलपमेंट प्रॉक्सी सेवा का इस्तेमाल किया जा सकता है. यह सेवा, आपके लिए आईडी टोकन अपने-आप जोड़ देती है. इसके अलावा, सेवा के यूआरएल को सीधे कर्ल किया जा सकता है.

Cloud Run के डेवलपमेंट प्रॉक्सी सेवा का इस्तेमाल करना

सबसे पहले, प्रॉक्सी शुरू करें

gcloud run services proxy $SERVICE_NAME \
  --project $PROJECT \
  --region $REGION \
  --port=9090

प्रॉक्सी को चालू रखते हुए, अलग टर्मिनल टैब में अनुरोध भेजने के लिए, यह कमांड चलाएं. प्रॉक्सी, 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
  }'

आपको ऐसा आउटपुट दिखेगा:

{
 "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
 }
}

सेवा के यूआरएल का सीधे इस्तेमाल करना

सबसे पहले, डिप्लॉय की गई सेवा का यूआरएल वापस पाएं.

SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region $REGION --format 'value(status.url)')

सेवा को कर्ल करें

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. बधाई हो!

कोडलैब पूरा करने के लिए बधाई!

हमारा सुझाव है कि Cloud Run से जुड़ा दस्तावेज़ देखें

हमने क्या-क्या कवर किया

  • Cloud Run पर जीपीयू का इस्तेमाल करने का तरीका.
  • इन्फ़रेंस इंजन के तौर पर vLLM का इस्तेमाल करके, Cloud Run पर Google के Gemma 4 (2B) मॉडल को डिप्लॉय करने का तरीका.

8. व्यवस्थित करें

अनजाने में शुल्क लगने से बचने के लिए, Cloud Run को मिटाया जा सकता है. उदाहरण के लिए, अगर Cloud Run की सेवाओं को, मुफ़्त टियर में Cloud Run के लिए हर महीने मिलने वाले अनुरोधों की संख्या से ज़्यादा बार अनजाने में कॉल किया जाता है, तो Cloud Run को मिटाया जा सकता है. इसके अलावा, दूसरे चरण में बनाया गया प्रोजेक्ट भी मिटाया जा सकता है.

Cloud Run सेवा को मिटाने के लिए, Cloud Run के Cloud Console पर जाएं. इसके लिए, https://console.cloud.google.com/run पर जाएं और gemma4-cr-codelab सेवा मिटाएं. gemma4-cr-codelab-sa सेवा खाता भी मिटाया जा सकता है.

पूरा प्रोजेक्ट मिटाने के लिए, https://console.cloud.google.com/cloud-resource-manager पर जाएं. इसके बाद, दूसरे चरण में बनाया गया प्रोजेक्ट चुनें और 'मिटाएं' को चुनें. प्रोजेक्ट मिटाने पर, आपको अपने Cloud SDK में प्रोजेक्ट बदलने होंगे. gcloud projects list चलाकर, उपलब्ध सभी प्रोजेक्ट की सूची देखी जा सकती है.