Questo tutorial mostra come eseguire il deployment e pubblicare un modello linguistico gpt-oss-120b utilizzando il framework vLLM.
Esegui il deployment di questo modello in un cluster GKE Autopilot e
utilizza una singola macchina virtuale A4 (VM) con 8 GPU B200.
Questo tutorial è rivolto a machine learning (ML) engineer, amministratori e operatori di piattaforme e 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
gpt-oss-120butilizzando Hugging Face. - Prepara l'ambiente.
- Creare un cluster GKE in modalità Autopilot.
- Crea un secret Kubernetes per le credenziali di Hugging Face.
- Creare un bucket Cloud Storage.
- Scarica il modello nel bucket Cloud Storage.
- Esegui il deployment di un container vLLM nel cluster GKE.
- Interagisci con il modello linguistico gpt-oss utilizzando curl.
- Eseguire la pulizia.
Costi
Questo tutorial utilizza 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
-
Installa Google Cloud CLI.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi 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 cui 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 attivata per il tuo progetto Google Cloud .
Abilita l'API richiesta:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). 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 account. Per esempi, vedi Rappresenta gli utenti del pool di forza lavoro nelle policy IAM.ROLE: il ruolo IAM che concedi al tuo account utente.
- Accedi o crea un account Hugging Face.
Accedere a gpt-oss utilizzando Hugging Face
Per utilizzare Hugging Face per accedere a gpt-oss:
- Accedi a Hugging Face ed esplora il modello gpt-oss.
- Crea un token di accesso
readdi Hugging Face. - Copia e salva il valore del token
read access. Lo utilizzerai più avanti in questo tutorial.
prepara l'ambiente
Per preparare l'ambiente, imposta le variabili di ambiente predefinite:
Sostituisci quanto segue:
YOUR_PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi creare il cluster GKE.YOUR_RESERVATION_NAME: 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
YOUR_REGION: la regione in cui vuoi creare il cluster GKE. Puoi creare il cluster solo nella regione in cui esiste la prenotazione.YOUR_CLUSTER_NAME: il nome del cluster GKE da creare.YOUR_GCS_BUCKET: il nome del bucket Cloud Storage da cui scaricare il modello.YOUR_HF_TOKEN: il token di accesso a Hugging Face che hai creato nella sezione precedente.YOUR_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.
YOUR_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.
Crea un cluster GKE in modalità Autopilot
Per creare un cluster GKE in modalità Autopilot, esegui questo comando:
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 le credenziali di Hugging Face
Per creare un secret di Kubernetes per le credenziali di Hugging Face:
Configura
kubectlper comunicare con il cluster GKE:Crea un secret di Kubernetes per archiviare il token Hugging Face:
Crea un bucket Cloud Storage
Se utilizzi un bucket Cloud Storage esistente, assicurati che le seguenti condizioni siano vere:
- Il bucket Cloud Storage si trova nella stessa regione del cluster GKE.
- Il account di servizio dispone delle autorizzazioni
writerichieste sul bucket.
Per archiviare il modello in un nuovo bucket Cloud Storage, completa i seguenti passaggi:
Esegui questo comando per creare un bucket:
Concedi le autorizzazioni
writesul bucket Cloud Storage al account di servizio predefinito.
Scarica il modello nel bucket Cloud Storage
Per scaricare il modello nel bucket Cloud Storage, completa i seguenti passaggi:
Crea un file
gpt-download-job.yaml:Per inizializzare il job di download, applica il manifest
gpt-download-job.yaml.La risorsa job scarica i pesi del modello
gpt-oss-120bda Hugging Face nel tuo bucket Cloud Storage. Il download richiede circa 30 minuti. Al termine del download, passa alla sezione successiva per avviare la distribuzione del modello.Per visualizzare lo stato di completamento, esegui questo comando:
Il flag
--timeoutspecifica per quanto tempo il comando monitora il job prima del timeout.Per eliminare il job, esegui questo comando:
Esegui il deployment di un container vLLM nel cluster GKE
Dopo aver scaricato il modello nel bucket Cloud Storage, esegui il deployment di un container vLLM nel cluster GKE:
Crea un file
vllm-gpt-oss-120b.yamlcon il deployment vLLM che hai scelto:Applica il file
vllm-gpt-oss-120b.yamlal cluster GKE:Per visualizzare lo stato di completamento, esegui questo comando:
Il flag--timeoutconsente al comando di monitorare il deployment per il periodo di tempo specificato.
Interagisci con il modello gpt-oss utilizzando curl
Per verificare il modello gpt-oss che hai eseguito il deployment:
Configura il port forwarding per il modello
gpt-oss:Apri una nuova finestra del terminale. Puoi quindi chattare con il modello utilizzando
curl:L'output visualizzato è simile al seguente:
{ "id": "chatcmpl-2235c39759c040daae23ce2addc40c0a", "object": "chat.completion", "created": 1756831629, "model": "openai/gpt-oss-120b", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "A sleek vessel gliding on water, its cloth sails billowing like captured wind.", "refusal": null, "annotations": null, "audio": null, "function_call": null, "tool_calls": [], "reasoning_content": "User asks: \"Describe a sailboat in one short sentence?\" We need to produce a short sentence description. Should comply with policy. It's fine. Provide a short sentence." }, "logprobs": null, "finish_reason": "stop", "stop_reason": null } ], "service_tier": null, "system_fingerprint": null, "usage": { "prompt_tokens": 80, "total_tokens": 142, "completion_tokens": 62, "prompt_tokens_details": null }, "prompt_logprobs": null, "kv_transfer_params": null }
Osserva le prestazioni del modello
Per osservare il rendimento del modello, puoi utilizzare l'integrazione della dashboard vLLM in Cloud Monitoring. Questa dashboard ti aiuta a visualizzare le metriche di rendimento critiche per il tuo modello, come velocità effettiva dei token, latenza di rete e tassi di errore. Per informazioni, consulta vLLM nella documentazione di 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 le risorse
Al termine del tutorial, elimina le risorse che non ti servono più.
Per eliminare il deployment e il servizio definiti nel file
vllm-gpt-oss-120b.yamle il secret Kubernetes dal cluster GKE, esegui questo comando:Per eliminare il bucket Cloud Storage, esegui questo comando:
Per eliminare il cluster GKE:
Elimina il progetto
Elimina un progetto Google Cloud :
gcloud projects delete PROJECT_ID