Questo tutorial mostra come eseguire il deployment e pubblicare un modello Llama 4 Scout (17Bx16E), un modello linguistico di grandi dimensioni (LLM) da 17 miliardi di parametri, e pubblicarlo utilizzando il framework vLLM. Esegui il deployment di questo modello su una singola istanza di macchina virtuale (VM) A4 su Google Kubernetes Engine (GKE).
Questo tutorial è rivolto a ingegneri di machine learning (ML), amministratori e operatori di piattaforme e a specialisti di dati e AI interessati a utilizzare le funzionalità di orchestrazione dei container Kubernetes per gestire i carichi di lavoro di inferenza.
Obiettivi
Accedi a Llama 4 utilizzando Hugging Face.
Prepara l'ambiente.
Creare un cluster GKE in modalità Autopilot.
Crea un secret Kubernetes per le credenziali di Hugging Face.
Esegui il deployment di un container vLLM nel cluster GKE.
Interagisci con Llama 4 utilizzando curl.
Eseguire la pulizia.
Costi
Questo tutorial utilizza i componenti fatturabili di Google Cloud, tra cui:
Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Creare un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il progetto Google Cloud che stai creando. -
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del progetto Google Cloud .
-
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .
Abilita l'API richiesta:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.gcloud services enable container.googleapis.com
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Creare un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il progetto Google Cloud che stai creando. -
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del progetto Google Cloud .
-
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .
Abilita l'API richiesta:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.gcloud services enable container.googleapis.com
-
Concedi ruoli al tuo account utente. Esegui il seguente comando una volta per ciascuno dei seguenti ruoli IAM:
roles/container.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.USER_IDENTIFIER: l'identificatore del tuo account utente . Ad esempio:myemail@example.com.ROLE: il ruolo IAM che concedi al tuo account utente.
- Accedi o crea un account Hugging Face.
Accedere a Llama 4 utilizzando Hugging Face
Per utilizzare Hugging Face per accedere a Llama 4:
- Firma il contratto di consenso per utilizzare Llama 4.
- Crea un token di accesso
readdi Hugging Face. - Copia e salva il valore del token di accesso
read. Lo utilizzerai più avanti in questo tutorial.
prepara l'ambiente
Per preparare l'ambiente, imposta le seguenti variabili:
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
Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi creare il cluster GKE.RESERVATION_URL: l'URL della prenotazione che vuoi utilizzare per creare il cluster GKE. In base al progetto in cui esiste la prenotazione, specifica uno dei seguenti valori:La prenotazione esiste nel tuo progetto:
RESERVATION_NAMELa prenotazione esiste in un progetto diverso e il tuo progetto può utilizzarla:
projects/RESERVATION_PROJECT_ID/reservations/RESERVATION_NAME
REGION: la regione in cui vuoi creare il cluster GKE. Puoi creare il cluster solo nella regione in cui esiste la prenotazione.CLUSTER_NAME: il nome del cluster GKE da creare.HUGGING_FACE_TOKEN: il token di accesso a Hugging Face che hai creato nella sezione precedente.NETWORK_NAME: la rete utilizzata dal cluster GKE. Specifica uno dei seguenti valori:Se hai creato una rete personalizzata, specifica il nome della rete.
In caso contrario, specifica
default.
SUBNETWORK_NAME: la subnet utilizzata dal cluster GKE. Specifica uno dei seguenti valori:Se hai creato una subnet personalizzata, specifica il nome della subnet. Puoi specificare solo una subnet che si trova nella stessa regione della prenotazione.
In caso contrario, specifica
default.
Creare e configurare risorse Google Cloud
Segui le istruzioni riportate in questa sezione per creare le risorse richieste.
Crea un cluster GKE in modalità Autopilot
Per creare un cluster GKE in modalità Autopilot, esegui questo comando:
gcloud container clusters create-auto $CLUSTER_NAME \
--project=$PROJECT_ID \
--region=$REGION \
--release-channel=rapid \
--network=$NETWORK \
--subnetwork=$SUBNETWORK
La creazione del cluster GKE potrebbe richiedere un po' di tempo. Per verificare che Google Cloud abbia terminato la creazione del cluster, vai a Cluster Kubernetes nella console Google Cloud .
Crea un secret Kubernetes per archiviare le credenziali di Hugging Face
Per creare un secret di Kubernetes in cui archiviare le credenziali di Hugging Face:
Configura
kubectlper comunicare con il cluster GKE:gcloud container clusters get-credentials $CLUSTER_NAME \ --location=$REGIONCrea un secret di Kubernetes che contenga il token
read accessHugging Face creato in un passaggio precedente:kubectl create secret generic hf-secret \ --from-literal=hf_api_token=${HUGGING_FACE_TOKEN} \ --dry-run=client -o yaml | kubectl apply -f -
Esegui il deployment di un container vLLM nel cluster GKE
Per eseguire il deployment del container vLLM per pubblicare il modello Llama-4-Scout-17B-16E-Instruct,
segui questi passaggi:
Crea un file
vllm-l4-17b.yamlcon il deployment vLLM che hai scelto: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: 30sApplica il file
vllm-l4-17b.yamlal cluster GKE:kubectl apply -f vllm-l4-17b.yamlDurante il processo di deployment, il container deve scaricare il modello
Llama-4-Scout-17B-16E-Instructda Hugging Face. Per questo motivo, il deployment del container potrebbe richiedere fino a 30 minuti.Per visualizzare lo stato di completamento, esegui questo comando:
kubectl wait \ --for=condition=Available \ --timeout=1800s deployment/vllm-llama4-deploymentIl flag
--timeout=1800sconsente al comando di monitorare il deployment per un massimo di 30 minuti.
Interagire con Llama 4 utilizzando curl
Per verificare il modello Llama 4 Scout che hai eseguito il deployment:
Configura il port forwarding a Llama 4 Scout:
kubectl port-forward service/llm-service 8000:8000Apri una nuova finestra del terminale. Puoi quindi chattare con il modello utilizzando
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?" } ] }'L'output visualizzato è simile al seguente:
{ "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 }
Osserva le prestazioni del modello
Per osservare le prestazioni del modello, puoi utilizzare l'integrazione della dashboard vLLM in Cloud Monitoring. Puoi utilizzare questa dashboard per visualizzare metriche di rendimento critiche come velocità effettiva dei token, latenza delle richieste e tassi di errore.
Per informazioni sull'utilizzo di Google Cloud Managed Service per Prometheus per raccogliere le metriche dal modello, consulta le indicazioni sull'osservabilità vLLM nella documentazione di Cloud Monitoring.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Elimina un progetto Google Cloud :
gcloud projects delete PROJECT_ID
Elimina le risorse
Per eliminare il deployment e il servizio nel file
vllm-l4-17b.yamle il secret Kubernetes dal cluster GKE, esegui questo comando:kubectl delete -f vllm-l4-17b.yaml kubectl delete secret hf-secretPer eliminare il cluster GKE, esegui questo comando:
gcloud container clusters delete $CLUSTER_NAME \ --region=$REGION