本教學課程說明如何部署及提供 Llama 4 Scout (17Bx16E),這是一個 17B 大型語言模型 (LLM),並使用 vLLM 架構提供服務。您會在 Google Kubernetes Engine (GKE) 的單一 A4 虛擬機器 (VM) 執行個體上部署這個模型。
本教學課程的適用對象為機器學習 (ML) 工程師、平台管理員和操作員,以及有興趣使用 Kubernetes 容器自動化調度管理功能處理推論工作負載的資料和 AI 專家。
目標
使用 Hugging Face 存取 Llama 4。
準備環境。
在 Autopilot 模式中建立 GKE 叢集。
建立 Hugging Face 憑證的 Kubernetes 密鑰。
將 vLLM 容器部署至 GKE 叢集。
使用 curl 與 Llama 4 互動。
清除所用資源。
費用
本教學課程使用 Google Cloud 的計費元件包括:
如要根據預測用量估算費用,請使用 Pricing Calculator。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
啟用必要的 API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable container.googleapis.com
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
啟用必要的 API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable container.googleapis.com
-
將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令:
roles/container.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
更改下列內容:
PROJECT_ID:專案 ID。USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com。ROLE:授予使用者帳戶的 IAM 角色。
- 登入或建立 Hugging Face 帳戶。
使用 Hugging Face 存取 Llama 4
如要使用 Hugging Face 存取 Llama 4,請按照下列步驟操作:
- 簽署同意聲明協議,即可使用 Llama 4。
- 建立 Hugging Face
read存取權杖。 - 複製並儲存
read存取權杖值。本教學課程後續將用到這個位址。
準備環境
如要準備環境,請設定下列變數:
gcloud config set project PROJECT_ID
gcloud config set billing/quota_project PROJECT_ID
export PROJECT_ID=$(gcloud config get project)
export RESERVATION_URL=RESERVATION_URL
export REGION=REGION
export CLUSTER_NAME=CLUSTER_NAME
export HUGGING_FACE_TOKEN=HUGGING_FACE_TOKEN
export NETWORK=NETWORK_NAME
export SUBNETWORK=SUBNETWORK_NAME
更改下列內容:
PROJECT_ID:您要在其中建立 GKE 叢集的 Google Cloud 專案 ID。RESERVATION_URL:您要用來建立 GKE 叢集的預訂網址。根據預留項目所在的專案,指定下列其中一個值:專案中已有預留項目:
RESERVATION_NAME預留項目位於其他專案,且您的專案可以使用該預留項目:
projects/RESERVATION_PROJECT_ID/reservations/RESERVATION_NAME
REGION:要建立 GKE 叢集的區域。您只能在預留項目所在的區域建立叢集。CLUSTER_NAME:要建立的 GKE 叢集名稱。HUGGING_FACE_TOKEN:您在上一節中建立的 Hugging Face 存取權杖。NETWORK_NAME:GKE 叢集使用的網路。請指定下列其中一個值:如果您建立的是自訂網路,請指定網路名稱。
否則,請指定
default。
SUBNETWORK_NAME:GKE 叢集使用的子網路。請指定下列其中一個值:如果您建立的是自訂子網路,請指定子網路名稱。您只能指定與預留項目位於相同區域的子網路。
否則,請指定
default。
建立及設定 Google Cloud 資源
請按照本節的指示建立必要資源。
在 Autopilot 模式中建立 GKE 叢集
如要在 Autopilot 模式中建立 GKE 叢集,請執行下列指令:
gcloud container clusters create-auto $CLUSTER_NAME \
--project=$PROJECT_ID \
--region=$REGION \
--release-channel=rapid \
--network=$NETWORK \
--subnetwork=$SUBNETWORK
建立 GKE 叢集可能需要一段時間。 如要確認 Google Cloud 已完成叢集建立作業,請前往 Google Cloud 控制台的「Kubernetes clusters」(Kubernetes 叢集)。
建立 Kubernetes 密鑰來儲存 Hugging Face 憑證
如要建立 Kubernetes 密鑰來儲存 Hugging Face 憑證,請按照下列步驟操作:
設定
kubectl,與 GKE 叢集通訊:gcloud container clusters get-credentials $CLUSTER_NAME \ --location=$REGION建立 Kubernetes 密鑰,內含您在前一個步驟建立的 Hugging Face
read access權杖:kubectl create secret generic hf-secret \ --from-literal=hf_api_token=${HUGGING_FACE_TOKEN} \ --dry-run=client -o yaml | kubectl apply -f -
將 vLLM 容器部署至 GKE 叢集
如要部署 vLLM 容器來提供 Llama-4-Scout-17B-16E-Instruct 模型服務,請按照下列步驟操作:
建立
vllm-l4-17b.yaml檔案,並選擇 vLLM 部署作業:apiVersion: apps/v1 kind: Deployment metadata: name: vllm-llama4-deployment spec: replicas: 1 selector: matchLabels: app: llama4-server template: metadata: labels: app: llama4-server ai.gke.io/model: llama-4-scout-17b ai.gke.io/inference-server: vllm examples.ai.gke.io/source: user-guide spec: containers: - name: inference-server image: us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250722_0916_RC01 resources: requests: cpu: "10" memory: "128Gi" ephemeral-storage: "240Gi" nvidia.com/gpu: "8" limits: cpu: "10" memory: "128Gi" ephemeral-storage: "240Gi" nvidia.com/gpu: "8" command: ["python3", "-m", "vllm.entrypoints.openai.api_server"] args: - --model=$(MODEL_ID) - --tensor-parallel-size=8 - --host=0.0.0.0 - --port=8000 - --max-model-len=4096 - --max-num-seqs=4 env: - name: MODEL_ID value: meta-llama/Llama-4-Scout-17B-16E-Instruct - name: HUGGING_FACE_HUB_TOKEN valueFrom: secretKeyRef: name: hf-secret key: hf_api_token volumeMounts: - mountPath: /dev/shm name: dshm livenessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 1800 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 1800 periodSeconds: 5 volumes: - name: dshm emptyDir: medium: Memory nodeSelector: cloud.google.com/gke-accelerator: nvidia-b200 cloud.google.com/reservation-name: RESERVATION_URL cloud.google.com/reservation-affinity: "specific" cloud.google.com/gke-gpu-driver-version: latest --- apiVersion: v1 kind: Service metadata: name: llm-service spec: selector: app: llama4-server type: ClusterIP ports: - protocol: TCP port: 8000 targetPort: 8000 --- apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: vllm-llama4-monitoring spec: selector: matchLabels: app: llama4-server endpoints: - port: 8000 path: /metrics interval: 30s將
vllm-l4-17b.yaml檔案套用至 GKE 叢集:kubectl apply -f vllm-l4-17b.yaml部署期間,容器必須從 Hugging Face 下載
Llama-4-Scout-17B-16E-Instruct模型。因此,容器部署作業最多可能需要 30 分鐘才能完成。如要查看完成狀態,請執行下列指令:
kubectl wait \ --for=condition=Available \ --timeout=1800s deployment/vllm-llama4-deployment--timeout=1800s標記可讓指令監控部署作業最多 30 分鐘。
使用 curl 與 Llama 4 互動
如要驗證您部署的 Llama 4 Scout 模型,請按照下列步驟操作:
設定通訊埠轉送至 Llama 4 Scout:
kubectl port-forward service/llm-service 8000:8000開啟新的終端機視窗。然後,您可以使用
curl與模型對話:curl http://127.0.0.1:8000/v1/chat/completions \ -X POST \ -H "Content-Type: application/json" \ -d '{ "model": "meta-llama/Llama-4-Scout-17B-16E-Instruct", "messages": [ { "role": "user", "content": "Describe a sailboat in one short sentence?" } ] }'您看到的輸出內容類似如下:
{ "id": "chatcmpl-ec0ad6310c494a889b17600881c06e3d", "object": "chat.completion", "created": 1754073279, "model": "meta-llama/Llama-4-Scout-17B-16E-Instruct", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "A sailboat is a type of watercraft that uses the wind for propulsion, typically featuring a hull, mast, and one or more sails.", "refusal": null, "annotations": null, "audio": null, "function_call": null, "tool_calls": [], "reasoning_content": null }, "logprobs": null, "finish_reason": "stop", "stop_reason": null } ], "service_tier": null, "system_fingerprint": null, "usage": { "prompt_tokens": 19, "total_tokens": 49, "completion_tokens": 30, "prompt_tokens_details": null }, "prompt_logprobs": null, "kv_transfer_params": null }
觀察模型成效
如要觀察模型效能,可以使用 Cloud Monitoring 中的 vLLM 資訊主頁整合功能。您可以使用這個資訊主頁查看重要成效指標,例如權杖輸送量、要求延遲時間和錯誤率。
如要瞭解如何使用 Google Cloud Managed Service for Prometheus 從模型收集指標,請參閱 Cloud Monitoring 說明文件中的 vLLM 可觀測性指南。
清除所用資源
為避免因為本教學課程所用資源,導致系統向 Google Cloud 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
刪除專案
刪除 Google Cloud 專案:
gcloud projects delete PROJECT_ID
刪除資源
如要刪除
vllm-l4-17b.yaml檔案中的部署和服務,以及 GKE 叢集中的 Kubernetes 密鑰,請執行下列指令:kubectl delete -f vllm-l4-17b.yaml kubectl delete secret hf-secret如要刪除 GKE 叢集,請執行下列指令:
gcloud container clusters delete $CLUSTER_NAME \ --region=$REGION