টিপিইউ সহ জিকেই অটোপাইলট ক্লাস্টার, জিকেই পরিচালিত ড্র্যানেট এবং জেমা ৪

১. সংক্ষিপ্ত বিবরণ

এই ল্যাবটি আপনাকে এআই ইনফ্রাস্ট্রাকচারের সাথে পরিচয় করিয়ে দেবে, যা এআই ওয়ার্কলোড চালানোর জন্য ব্যবহার করা যেতে পারে। আপনি নিম্নলিখিত বিষয়গুলো নিয়ে কাজ করবেন:

গুগল কুবারনেটিস ইঞ্জিন (GKE) - কন্টেইনার অর্কেস্ট্রেশনের মূল প্ল্যাটফর্ম।

GKE পরিচালিত DRANET — ডাইনামিক রিসোর্স অ্যালোকেশন নেটওয়ার্কিং, যা সরাসরি আপনার TPU পডগুলিতে উচ্চ-গতির ইন্টারকানেক্ট ফ্যাব্রিক বরাদ্দ করে।

টেনসর প্রসেসিং ইউনিট (টিপিইউ) - গুগলের নিজস্বভাবে নির্মিত অ্যাক্সিলারেটর চিপ।

কনফিগার করার জন্য আপনাকে একটি কাস্টম ভিপিসি (VPC) এবং একটি অটোপাইলট জিকেই (GKE) ক্লাস্টার ডেপ্লয় করতে হবে। ম্যানেজড ড্র্যানেট (DRANET) সক্রিয় করতে আপনাকে একটি কম্পিউটক্লাস (ComputeClass) এবং একটি রিসোর্স ক্লেইম টেমপ্লেট (Resource Claim Template) তৈরি করতে হবে। এরপর আপনি এমন একটি ওয়ার্কলোড ডেপ্লয় করবেন যা ভিএলএলএম (vLLM) , হাগিং ফেস (Hugging Face) , কম্পিউটক্লাস এবং রিসোর্স ক্লেইম টেমপ্লেট ব্যবহার করে। সবশেষে আপনি জেমা ৪ (Gemma 4) মডেলের সাথে নেটওয়ার্কিং সেটআপ এবং কানেক্টিভিটি পরীক্ষা করবেন।

কনফিগারেশনগুলোতে Terraform , gcloud এবং kubectl এর সমন্বয় ব্যবহার করা হবে।

এই ল্যাবে তোমরা নিম্নলিখিত কাজটি কীভাবে সম্পাদন করতে হয় তা শিখবে:

  • একটি VPC নেটওয়ার্ক সেট আপ করুন
  • একটি GKE অটোপাইলট ক্লাস্টার সেট আপ করুন
  • ComputeClass এবং ResourceClaimTemplate তৈরি করুন।
  • Hugging Face-এর মাধ্যমে এমন একটি ডেপ্লয়মেন্ট তৈরি করুন যা TPU, vLLM, মনিটরিং এবং Gemma 4 চালায়।
  • এলএলএম-এর সাথে সংযোগ পরীক্ষা করুন

এই ল্যাবে, আপনারা নিম্নলিখিত প্যাটার্নটি তৈরি করবেন।

চিত্র ১। d38a898255a06e25.png

২. গুগল ক্লাউড পরিষেবা সেটআপ

স্ব-গতিতে পরিবেশ সেটআপ

  1. Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
  • প্রজেক্ট আইডি সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (একবার সেট করার পর এটি পরিবর্তন করা যায় না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রজেক্ট আইডি উল্লেখ করতে হবে (যা সাধারণত PROJECT_ID হিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি আপনার নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে।
  • আপনার অবগতির জন্য জানাচ্ছি যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নম্বর , এবং কিছু এপিআই এটি ব্যবহার করে থাকে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
  1. এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হবে না, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর বিলিং এড়াতে রিসোর্সগুলো বন্ধ করার জন্য, আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা প্রজেক্টটি ডিলিট করে দিতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

ক্লাউড শেল শুরু করুন

যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালনা করা যায়, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চালিত একটি কমান্ড লাইন পরিবেশ।

গুগল ক্লাউড কনসোল থেকে, উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনটিতে ক্লিক করুন:

ক্লাউড শেল সক্রিয় করুন

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

গুগল ক্লাউড শেল টার্মিনালের স্ক্রিনশট, যা দেখাচ্ছে যে পরিবেশটি সংযুক্ত হয়েছে।

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যেই করা যাবে। আপনাকে কিছুই ইনস্টল করতে হবে না।

৩. টেরাফর্ম দিয়ে পরিবেশ সেটআপ করুন

এই ল্যাবটি করার জন্য আপনার টিপিইউ ব্যবহারের সুযোগ প্রয়োজন। ব্যবহৃত নির্দিষ্ট সংস্করণটি হলো টিপিইউ ভি৬ই।

  • অ্যাক্সেস পেতে আপনাকে টিপিইউ প্ল্যান ডকুমেন্টটি অনুসরণ করতে হবে এবং টিপিইউ কোটা সক্রিয় করতে হবে
  • আমরা একটি ছোট আকারের ডেপ্লয়মেন্ট ব্যবহার করছি যার জন্য ৪টি TPU v6e চিপ ( ct6e-standard-4t) প্রয়োজন হবে, যা একটি একক রিজিয়নে একটি 2x2 স্লাইস হিসেবে থাকবে।
  • হাগিং ফেস টোকেন: জেমা মডেলের ওয়েটগুলো ডাউনলোড করার জন্য একটি অ্যাক্সেস টোকেন প্রয়োজন।

আমরা ফায়ারওয়াল নিয়ম, একটি সাবনেট এবং তারপর একটি অটোপাইলট ক্লাস্টার সহ একটি কাস্টম ভিপিসি তৈরি করব। ক্লাউড কনসোল খুলুন এবং আপনি যে প্রজেক্টটি ব্যবহার করবেন তা নির্বাচন করুন।

  1. আপনার কনসোলের উপরে ডানদিকে অবস্থিত ক্লাউড শেল খুলুন, নিশ্চিত করুন যে আপনি ক্লাউড শেলে সঠিক প্রজেক্ট আইডি দেখতে পাচ্ছেন, অ্যাক্সেসের অনুমতি দেওয়ার জন্য যেকোনো প্রম্পট নিশ্চিত করুন। b51b80043d3bac90.png
  2. gke-auto-tpu নামে একটি ফোল্ডার তৈরি করুন এবং ফোল্ডারটিতে যান
mkdir -p gke-auto-tpu && cd gke-auto-tpu
export PROJECT_ID=$(gcloud config get-value project)
echo $PROJECT_ID
  1. এখন কিছু কনফিগারেশন ফাইল যোগ করুন। এগুলো terraform.tfvars , variables.tf , net.tf ফাইলগুলো তৈরি করবে।
cat << EOF > terraform.tfvars
project_id = "${PROJECT_ID}"
EOF

cat << 'EOF' > variables.tf
variable "project_id" {
  type = string
}

variable "region" {
  type    = string
  default = "us-east5"
}

variable "network_name" {
  type    = string
  default = "tpu-gke-vpc"
}

variable "subnet_name" {
  type    = string
  default = "tpu-sub1"
}

variable "cluster_name" {
  type    = string
  default = "tpu-auto-dra-cluster"
}
EOF

cat << 'EOF' > net.tf
terraform {
  required_version = ">= 1.5.0"
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "~> 7.32.0"
    }
  }
}

provider "google" {
  project = var.project_id
  region  = var.region
}

resource "google_compute_network" "tpu_vpc" {
  project                 = var.project_id
  name                    = var.network_name
  auto_create_subnetworks = false
  mtu                     = 8896
}

resource "google_compute_subnetwork" "tpu_subnet" {
  project       = var.project_id
  name          = var.subnet_name
  ip_cidr_range = "192.168.100.0/24"
  region        = var.region
  network       = google_compute_network.tpu_vpc.id
}

resource "google_compute_firewall" "allow_ssh" {
  project     = var.project_id
  name        = "${var.network_name}-allow-ssh"
  network     = google_compute_network.tpu_vpc.id
  direction   = "INGRESS"
  priority    = 1000

  allow {
    protocol = "tcp"
    ports    = ["22"]
  }

  source_ranges = ["0.0.0.0/0"]
}

resource "google_compute_firewall" "allow_internal" {
  project     = var.project_id
  name        = "${var.network_name}-allow-internal"
  network     = google_compute_network.tpu_vpc.id
  direction   = "INGRESS"
  priority    = 1000

  allow {
    protocol = "all"
  }

  source_ranges = ["172.16.0.0/12", "192.168.0.0/16"]
}

resource "google_container_cluster" "tpu_autopilot" {
  project  = var.project_id
  name     = var.cluster_name
  location = var.region

  enable_autopilot = true

  network    = google_compute_network.tpu_vpc.id
  subnetwork = google_compute_subnetwork.tpu_subnet.id

  release_channel {
    channel = "RAPID"
  }

  ip_allocation_policy {}

  deletion_protection = false 
}
EOF
  1. নিশ্চিত করুন যে আপনি gke-auto-tpu ডিরেক্টরিতে আছেন এবং নিম্নলিখিত কমান্ডগুলি চালান।
    terraform init ওয়ার্কিং ডিরেক্টরি প্রস্তুত করে। এটি প্রথম ধাপ এবং এটি প্রদত্ত কনফিগারেশনের জন্য প্রয়োজনীয় প্রোভাইডারগুলো ডাউনলোড করে।
    terraform plan -out একটি এক্সিকিউশন প্ল্যান তৈরি করে, যা দেখায় আপনার ইনফ্রাস্ট্রাকচার ডেপ্লয় করতে Terraform কী কী পদক্ষেপ নেবে। ` -out অপশনটি আপনাকে এক্সিকিউশন প্ল্যানটি একটি নামযুক্ত বাইনারি ফাইলে সেভ করার সুযোগ দেয়। এর ফলে আপনি কোনো পরিবর্তন না করেই দেখতে পারবেন কী ঘটবে।
    terraform apply আপডেটগুলো চালায়।
terraform init 
terraform plan -out vpc 
  1. এখন terraform apply চালানোর পর ডিপ্লয়মেন্টটি চালান, যেহেতু আপনি সংরক্ষিত এক্সিকিউশন প্ল্যানটি প্রয়োগ করছেন, এটি কোনো নিশ্চিতকরণের অনুরোধ ছাড়াই অবিলম্বে কার্যকর হবে (এতে ৬-১০ মিনিট সময় লাগতে পারে)।
terraform apply vpc
  1. সেটআপ যাচাই করুন
echo -e "\n=== Verifying GKE Autopilot Cluster ==="
gcloud container clusters list --filter="name:tpu-auto-dra-cluster" --project=$PROJECT_ID

echo -e "\n=== Verifying VPC Network ==="
gcloud compute networks list --filter="name:tpu-gke-vpc" --project=$PROJECT_ID

echo -e "\n=== Verifying Subnetwork ==="
gcloud compute networks subnets list --filter="name:tpu-sub1" --project=$PROJECT_ID

echo -e "\n=== Verifying Firewall Rules ==="
gcloud compute firewall-rules list --filter="name~tpu-gke-vpc-allow" --project=$PROJECT_ID

৪. কম্পিউট ক্লাস এবং রিসোর্স ক্লেইম টেমপ্লেট তৈরি করুন

নোড পুলের কনফিগারেশন নির্ধারণ করার জন্য আমাদের একটি কাস্টম ComputeClass রিসোর্স তৈরি করতে হবে। এক্ষেত্রে আমরা TPU v6e চিপস ( ct6e-standard-4t) এবং পরিচালিত DRANET নেটওয়ার্ক ব্যবহার করব।

  1. আপনার তৈরি করা ক্লাস্টারের সাথে সংযোগ করুন। ( ps কমান্ড ব্যবহার করে অঞ্চলটি পরিবর্তন করে সেই অঞ্চলে সেট করুন যেখানে আপনি আপনার ক্লাস্টারটি স্থাপন করেছেন। )
gcloud container clusters get-credentials tpu-auto-dra-cluster --region us-east5 --project=$PROJECT_ID
  1. নিশ্চিত করুন যে আপনি gke-auto-tpu ডিরেক্টরিতে আছেন এবং নিম্নলিখিত কমান্ডগুলি চালান। এটি ComputeClass ম্যানিফেস্ট তৈরি করবে। অনুগ্রহ করে মনে রাখবেন, আপনি যদি একটি ভিন্ন অঞ্চল ব্যবহার করে থাকেন, তাহলে আপনাকে আপনার ক্লাস্টারের অঞ্চলের মধ্যে থাকা একটি জোনে জোনের তথ্য পরিবর্তন করতে হবে।
cat << 'EOF' > computeclass.yaml
apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
  name: dranet-auto
spec:
  nodePoolAutoCreation:
    enabled: true
  nodePoolConfig:
    dra:
      networking:
        enabled: true
  priorities:
  - tpu:
      type: tpu-v6e-slice
      count: 4
      topology: "2x2" 
    acceleratorNetworkProfile: auto
    location:
      zones: 
      - us-east5-b
EOF
  1. এখন ComputeClass তৈরি করুন।
kubectl apply -f computeclass.yaml

kubectl describe computeclass dranet-auto
  1. gke-auto-tpu ডিরেক্টরিতে নিচের কমান্ডগুলো চালান। এটি ResourceClaimTemplate ম্যানিফেস্ট তৈরি করে, যা নন-RDMA নেটওয়ার্ক ডিভাইস সমর্থন করে।
cat << 'EOF' > resourceclaimtpu.yaml
apiVersion: resource.k8s.io/v1
kind: ResourceClaimTemplate
metadata:
  name: all-netdev
spec:
  spec:
    devices:
      requests:
      - name: req-netdev
        exactly:
          deviceClassName: netdev.google.com
          allocationMode: All
EOF
  1. এখন ResourceClaimTemplate তৈরি করুন।
kubectl apply -f resourceclaimtpu.yaml

kubectl describe resourceclaimtemplate all-netdev

আপনার গোপনীয়তা তৈরি করুন

  1. এই ল্যাবটি google/gemma-4-31B-it ব্যবহার করে, তাই আপনাকে একটি HF টোকেন তৈরি করতে হবে। নিচের YOUR_ACTUAL_HUGGING_FACE_TOKEN জায়গায় আপনার আসল টোকেনটি বসান।
export HF_TOKEN="YOUR_ACTUAL_HUGGING_FACE_TOKEN"
  1. নিশ্চিত করুন যে আপনি gke-auto-tpu ডিরেক্টরিতে আছেন এবং নিম্নলিখিত কমান্ডগুলো চালান।
kubectl create secret generic hf-secret --from-literal=hf_token=${HF_TOKEN} 

kubectl get secrets hf-secret

৫. ওয়ার্কলোড vLLM এবং Gemma স্থাপন করুন

এই সেটআপটি প্রয়োজনীয় হার্ডওয়্যার এবং নেটওয়ার্কিং (TPU v6e এবং পরিচালিত DRANET) স্বয়ংক্রিয়ভাবে সরবরাহ করার জন্য ComputeClass ব্যবহার করে। এটি সেই উচ্চ-গতির নেটওয়ার্কে অ্যাক্সেসের অনুরোধ করার জন্য একটি ব্লুপ্রিন্ট সংজ্ঞায়িত করতে ResourceClaimTemplate ব্যবহার করে, এবং এমন একটি ডেপ্লয়মেন্ট তৈরি করে যা প্রতিটি পডের স্কেল বাড়ার সাথে সাথে সেগুলোর জন্য স্বতন্ত্র নেটওয়ার্ক ক্লেইম তৈরি করার মাধ্যমে সেগুলোকে একত্রিত করে।

  1. নিশ্চিত করুন যে আপনি gke-auto-tpu ডিরেক্টরিতে আছেন এবং নিম্নলিখিতটি চালান।
cat << 'EOF' > gem4-auto-dra-tpu.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gem4-dra-auto
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gemma4-tpu
  template:
    metadata:
      labels:
        app: gemma4-tpu
        ai.gke.io/model: gemma-4-31b-it
        ai.gke.io/inference-server: vllm-tpu
    spec:
      dnsPolicy: Default
      resourceClaims:
      - name: netdev-claim        
        resourceClaimTemplateName: all-netdev
      containers:
      - name: vllm-tpu-inference
        image: vllm/vllm-tpu:latest
        resources:
          requests:
            cpu: "30"
            memory: "240Gi"
            ephemeral-storage: "100Gi"
            google.com/tpu: "4"
          limits:
            cpu: "30"
            memory: "240Gi"
            ephemeral-storage: "100Gi"
            google.com/tpu: "4"
          claims:
          - name: netdev-claim
        command: ["python3", "-m", "vllm.entrypoints.openai.api_server"]
        args:
        - --model=$(MODEL_ID)
        - --tensor-parallel-size=4
        - --host=0.0.0.0
        - --port=8000
        - --max-model-len=32768
        - --max-num-batched-tokens=8192
        env:
        - name: MODEL_ID
          value: google/gemma-4-31B-it
        - name: HUGGING_FACE
          valueFrom:
            secretKeyRef:
              name: hf-secret
              key: hf_token
        - name: HF_TOKEN
          valueFrom:
            secretKeyRef:
              name: hf-secret
              key: hf_token
        volumeMounts:
        - mountPath: /dev/shm
          name: dshm
        startupProbe:
          httpGet:
            path: /health
            port: 8000
          failureThreshold: 240
          periodSeconds: 10
        livenessProbe:
          httpGet:
            path: /health
            port: 8000
          periodSeconds: 10
        readinessProbe:
          httpGet:
            path: /health
            port: 8000
          periodSeconds: 5
      volumes:
      - name: dshm
        emptyDir:
          medium: Memory
      nodeSelector:
        cloud.google.com/compute-class: dranet-auto
---
apiVersion: v1
kind: Service
metadata:
  name: gem4-dra-service
spec:
  selector:
    app: gemma4-tpu
  type: ClusterIP
  ports:
    - protocol: TCP
      port: 8000
      targetPort: 8000
---
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  name: gem4-monitoring
spec:
  selector:
    matchLabels:
      app: gemma4-tpu
  endpoints:
  - port: 8000
    path: /metrics
    interval: 30s
EOF
  1. ডিপ্লয়মেন্টটি তৈরি করুন।
kubectl apply -f gem4-auto-dra-tpu.yaml
  1. সমাপ্তির অবস্থা পর্যবেক্ষণ করতে, নিম্নলিখিত কমান্ডগুলি চালান। নোডটি প্রোভিশন না হওয়া পর্যন্ত পডগুলি অপেক্ষা করবে, এরপরই তারা কাজ শুরু করতে পারবে; এতে ১৩ মিনিটের বেশি সময় লাগতে পারে।
kubectl get pods

kubectl get deployments

kubectl describe pods -l app=gemma4-tpu

echo "       __|__"
echo "  --@--(_|_)--@--"
echo ""
echo "Waiting for Autopilot to register the TPU node (this takes a few minutes)..."

until kubectl get nodes -l gke.networks.io/accelerator-network-profile=auto -o name | grep -q "node/"; do
  sleep 60
done

echo "TPU Node detected in cluster! Waiting for hardware to provision and become Ready..."

kubectl wait --for=condition=Ready nodes -l gke.networks.io/accelerator-network-profile=auto --timeout=900s
  1. নোড তৈরি এবং পড শিডিউল করার পরে, আপনি পডগুলির লগ দেখতে কমান্ডটি চালাতে পারেন। ( দ্রষ্টব্য: স্ট্রিমিংয়ের জন্য আপনি ** -f f** ফ্ল্যাগটি যোগ করতে পারেন)। এটি সম্পূর্ণ হতে **১৫+ মিনিট** পর্যন্ত সময় লাগতে পারে। আপনি যদি লগগুলি দেখেন, তাহলে যখন এই স্ট্রিংটি দেখবেন (APIServer pid=1) INFO: 169.254.4.6:44290 - "GET /health HTTP/1.1" 200 OK তার মানে মডেলটি সার্ভ করার জন্য প্রস্তুত।
kubectl logs -l app=gemma4-tpu -f | sed -u '\,"GET /health HTTP/1.1" 200 OK,q'
  1. ডেপ্লয়মেন্টটি উপলব্ধ হয়ে গেলে, আপনি যাচাই করে দেখতে পারেন যে হাই-স্পিড নেটওয়ার্কিং আপনার TPU পডগুলোর সাথে সঠিকভাবে সংযুক্ত হয়েছে কিনা। নিম্নলিখিত কমান্ডটি চালান:
for pod in $(kubectl get pods -l app=gemma4-tpu -o name); do
  echo "=== Checking Networking for $pod ==="
  kubectl exec $pod -- ls /sys/class/net
  echo ""
done

যা দেখতে হবে: আপনি সাধারণ eth0 পাশাপাশি eth1 থেকে ethxx মতো অতিরিক্ত ইন্টারফেসগুলোও দেখতে পাবেন।

এই অতিরিক্ত ইন্টারফেসগুলো নিশ্চিত করে যে উচ্চ-গতির পরিচালিত DRANET ফ্যাব্রিকটি আপনার পডের সাথে সফলভাবে সংযুক্ত হয়েছে।

৬. কার্ল (curl) ব্যবহার করে এআই মডেলের সাথে যোগাযোগ করুন

আপনার স্থাপন করা gemma-4-31B মডেলটি যাচাই করতে, সার্ভিসটি থেকে আপনার স্থানীয় মেশিনে পোর্ট ফরওয়ার্ডিং সেট আপ করুন।

  1. আপনার বর্তমান ক্লাউড শেলে এটি চালান:
kubectl port-forward service/gem4-dra-service 8000:8000 &
  1. এখন, curl ব্যবহার করে আপনার মডেলের সাথে চ্যাট করার জন্য একই প্রজেক্টের জন্য একটি অতিরিক্ত ক্লাউড শেল উইন্ডো খুলুন। এই কমান্ডটি একটি প্রম্পট পাঠায় এবং এর আউটপুট সরাসরি আপনার টার্মিনালে স্ট্রিম করে।
time curl -sN http://127.0.0.1:8000/v1/chat/completions \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemma-4-31B-it",
    "messages": [
      {
        "role": "user",
        "content": "How can GKE help deployment of AI workloads? Provide concise information. Keep the explanation under 300 words."
      }
    ],
    "max_tokens": 1024,
    "temperature": 0.7,
    "stream": true,
    "stream_options": {"include_usage": true}
  }' | grep '^data:' | sed 's/^data: //' | grep -v '\[DONE\]' | jq --unbuffered -j '
    (.choices[0].delta.content // empty), 
    if .usage then "\n\n--- Usage ---\nPrompt: \(.usage.prompt_tokens)\nCompletion: \(.usage.completion_tokens)\nTotal: \(.usage.total_tokens)\n" else empty end 
  '
  1. আপনার মডেলের প্রতিক্রিয়া যাচাই করুন।

পর্যবেক্ষণযোগ্যতা

যেহেতু আমরা PodMonitoring কাস্টম রিসোর্সটি প্রয়োগ করেছি, Cloud Monitoring পোর্ট 8000-এ থাকা vLLM কন্টেইনার থেকে মেট্রিক্স সংগ্রহ করবে। আপনি Google Cloud Console-এর Monitoring -> Dashboards- এ গিয়ে টোকেন জেনারেশন ল্যাটেন্সি, কিউ লেংথ এবং KV ক্যাশে ব্যবহারের মতো মেট্রিক্স সরাসরি দেখতে পারবেন।

607bcf95ce4d9a82.png

৭. পরিষ্কার করুন

  1. নিম্নলিখিতটি চালিয়ে রিসোর্সগুলো মুছে ফেলুন।
cd ~/gke-auto-tpu

kubectl delete -f gem4-auto-dra-tpu.yaml
kubectl delete -f resourceclaimtpu.yaml
kubectl delete -f computeclass.yaml
kubectl delete secret hf-secret
  1. নিম্নলিখিত কমান্ডের মাধ্যমে পরিকাঠামোটি পরিষ্কার করুন, নিশ্চিত করতে yes টাইপ করুন।
terraform destroy

৮. অভিনন্দন

আপনি সফলভাবে GKE Autopilot-এ একটি পরিচালিত DRANET পরিবেশ স্থাপন করেছেন, গতিশীলভাবে TPU v6e হার্ডওয়্যার প্রোভিশন করেছেন, এবং vLLM ব্যবহার করে বিশাল ৩১-বিলিয়ন প্যারামিটার বিশিষ্ট Gemma 4 মডেলটি পরিবেশন করেছেন।

GKE Autopilot ব্যবহার করে, আপনি Kubernetes-কে অন্তর্নিহিত নোড প্রভিশনিং এবং অবকাঠামো ব্যবস্থাপনার দায়িত্ব নিতে দেন, ফলে আপনি সম্পূর্ণরূপে আপনার AI ওয়ার্কলোড ডেপ্লয় করার উপর মনোযোগ দিতে পারেন।

পরবর্তী পদক্ষেপ / আরও জানুন

আপনি GKE নেটওয়ার্কিং সম্পর্কে আরও পড়তে পারেন।

আপনার পরবর্তী ল্যাব নিন

গুগল ক্লাউডের সাথে আপনার অনুসন্ধান চালিয়ে যান, এবং এই অন্যান্য গুগল ক্লাউড ল্যাবগুলোও দেখে নিন: