En este instructivo, se muestra cómo implementar y entregar un modelo de lenguaje gpt-oss-120b
con el framework de vLLM.
Implementas este modelo en un clúster de Autopilot de Google Kubernetes Engine (GKE) y
consumes una sola máquina virtual A4 (VM) que tiene 8 GPU B200.
Este instructivo está dirigido a ingenieros de aprendizaje automático (AA), administradores y operadores de plataformas, y especialistas en datos y en IA que estén interesados en usar las funciones de organización de contenedores de Kubernetes para controlar las cargas de trabajo de inferencia.
Objetivos
- Accede a
gpt-oss-120bcon Hugging Face. - Prepara tu entorno.
- Crear un clúster de GKE en modo Autopilot
- Crea un Secret de Kubernetes para las credenciales de Hugging Face.
- Crear un bucket de Cloud Storage
- Descarga el modelo en tu bucket de Cloud Storage.
- Implementar un contenedor de vLLM en tu clúster de GKE.
- Interactúa con el modelo de lenguaje gpt-oss con curl.
- Realizar una limpieza
Costos
En este instructivo, se usan componentes facturables de Google Cloud, incluidos los siguientes:
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un proyecto de Google Cloud .
Roles necesarios para seleccionar o crear un proyecto
- Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto de Google Cloud que estás creando. -
Selecciona el proyecto de Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API requerida, si aún no está habilitada:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.gcloud services enable container.googleapis.com
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un proyecto de Google Cloud .
Roles necesarios para seleccionar o crear un proyecto
- Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto de Google Cloud que estás creando. -
Selecciona el proyecto de Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API requerida, si aún no está habilitada:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.gcloud services enable container.googleapis.com
-
Otorga roles a tu cuenta de usuario. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM:
roles/container.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Reemplaza lo siguiente:
PROJECT_ID: ID del proyectoUSER_IDENTIFIER: Es el identificador de tu cuenta de usuario de . Por ejemplo,myemail@example.com. cuenta deROLE: Es el rol de IAM que otorgas a tu cuenta de usuario.
- Accede a una cuenta de Hugging Face o crea una.
Accede a gpt-oss con Hugging Face
Para usar Hugging Face y acceder a gpt-oss, haz lo siguiente:
- Accede a Hugging Face y explora el modelo gpt-oss.
- Crea un token de acceso de Hugging Face
read. - Copia y guarda el valor del token
read access. Lo usarás más adelante en este instructivo.
Prepara el entorno
Para preparar tu entorno, configura las variables de entorno predeterminadas:
Reemplaza lo siguiente:
YOUR_PROJECT_ID: Es el ID del proyecto de Google Cloud en el que deseas crear el clúster de GKE.YOUR_RESERVATION_NAME: Es la URL de la reserva que deseas usar para crear tu clúster de GKE. Según el proyecto en el que existe la reserva, especifica uno de los siguientes valores:La reserva existe en tu proyecto:
RESERVATION_NAMELa reserva existe en un proyecto diferente, y tu proyecto puede usarla:
projects/RESERVATION_PROJECT_ID/reservations/RESERVATION_NAME
YOUR_REGION: Es la región en la que deseas crear tu clúster de GKE. Solo puedes crear el clúster en la región en la que existe tu reserva.YOUR_CLUSTER_NAME: Es el nombre del clúster de GKE que se creará.YOUR_GCS_BUCKET: Es el nombre del bucket de Cloud Storage en el que descargas el modelo.YOUR_HF_TOKEN: Es el token de acceso de Hugging Face que creaste en la sección anterior.YOUR_NETWORK_NAME: Es la red que usa el clúster de GKE. Especifica uno de los siguientes valores:Si creaste una red personalizada, especifica el nombre de tu red.
De lo contrario, especifica
default.
YOUR_SUBNETWORK_NAME: Es la subred que usa el clúster de GKE. Especifica uno de los siguientes valores:Si creaste una subred personalizada, especifica el nombre de tu subred. Solo puedes especificar una subred que exista en la misma región que la reserva.
De lo contrario, especifica
default.
Crea un clúster de GKE en modo Autopilot
Para crear un clúster de GKE en el modo Autopilot, ejecuta el siguiente comando:
La creación del clúster de GKE puede tardar un tiempo en completarse. Para verificar que Google Cloud haya terminado de crear tu clúster, ve a Clústeres de Kubernetes en la consola de Google Cloud .
Crea un secreto de Kubernetes para las credenciales de Hugging Face
Para crear un Secret de Kubernetes para las credenciales de Hugging Face, haz lo siguiente:
Configura
kubectlpara que se comunique con tu clúster de GKE:Crea un Secret de Kubernetes para almacenar tu token de Hugging Face:
Cree un bucket de Cloud Storage
Si usas un bucket de Cloud Storage existente, asegúrate de que se cumplan las siguientes condiciones:
- Tu bucket de Cloud Storage está en la misma región que tu clúster de GKE.
- Tu cuenta de servicio tiene los permisos
writenecesarios en el bucket.
Para almacenar tu modelo en un bucket de Cloud Storage nuevo, completa los siguientes pasos:
Ejecuta el siguiente comando para crear un bucket:
Otorga permisos de
writeen el bucket de Cloud Storage a la cuenta de servicio predeterminada.
Descarga el modelo en tu bucket de Cloud Storage
Para descargar el modelo en tu bucket de Cloud Storage, completa los siguientes pasos:
Crea un archivo
gpt-download-job.yaml:Para inicializar el trabajo de descarga, aplica el manifiesto
gpt-download-job.yaml.El recurso de trabajo descarga los pesos del modelo
gpt-oss-120bde Hugging Face en tu bucket de Cloud Storage. La descarga tarda unos 30 minutos en completarse. Cuando finalice la descarga, continúa con la siguiente sección para iniciar la implementación del modelo.Para ver el estado de finalización, ejecuta el siguiente comando:
La marca
--timeoutespecifica cuánto tiempo supervisa el comando el trabajo antes de que se agote el tiempo de espera.Para borrar el trabajo, ejecuta el siguiente comando:
Implementa un contenedor de vLLM en tu clúster de GKE
Después de descargar el modelo en tu bucket de Cloud Storage, implementa un contenedor de vLLM en tu clúster de GKE:
Crea un archivo
vllm-gpt-oss-120b.yamlcon la implementación de vLLM que elegiste:Aplica el archivo
vllm-gpt-oss-120b.yamla tu clúster de GKE:Para ver el estado de finalización, ejecuta el siguiente comando:
La marca--timeoutpermite que el comando supervise la implementación durante el período especificado.
Interactúa con el modelo gpt-oss con curl
Para verificar el modelo de gpt-oss que implementaste, haz lo siguiente:
Configura la redirección de puertos al modelo
gpt-oss:Abre una nueva ventana de terminal. Luego, puedes chatear con tu modelo usando
curl:El resultado que ves es similar al siguiente:
{ "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 }
Observa el rendimiento del modelo
Para observar el rendimiento de tu modelo, puedes usar la integración del panel de vLLM en Cloud Monitoring. Este panel te ayuda a ver métricas de rendimiento fundamentales para tu modelo, como la capacidad de procesamiento de tokens, la latencia de red y las tasas de error. Para obtener información, consulta vLLM en la documentación de Monitoring.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra recursos
Cuando termines el instructivo, borra los recursos que ya no necesites.
Para borrar el Deployment y el Service definidos en el archivo
vllm-gpt-oss-120b.yamly el Secret de Kubernetes del clúster de GKE, ejecuta el siguiente comando:Para borrar tu bucket de Cloud Storage, ejecuta el siguiente comando:
Para borrar tu clúster de GKE, haz lo siguiente:
Borra tu proyecto
Borra un proyecto de Google Cloud :
gcloud projects delete PROJECT_ID